Re: [jervlet-patch] Make Jervlet-Jetty accept external configurations
peter-4lf8KW9E9MLMqX/[email protected] Thu, 13 Nov 2003 11:38:22 +1100
| Newsgroups | gmane.comp.java.spice.devel |
|---|---|
| Message-ID | <014801c3a97e$712ffe50$21e7809d@fisg2> |
SGl5YSwNCg0KTG9va3MgZ29vZC4gUnlhbiAtIHdoYXQgZG8geW91IHRoaW5rPw0KDQoNCi0tLS0t IE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0NCkZyb206ICJKb2hhbiBTavZiZXJnIiA8am9oYW4uc2pv YmVyZ0BhdmFpbnRlYy5jb20+DQpUbzogPHNwaWNlLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5l dD4NClNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDExLCAyMDAzIDY6MTggUE0NClN1YmplY3Q6IFtq ZXJ2bGV0LXBhdGNoXSBNYWtlIEplcnZsZXQtSmV0dHkgYWNjZXB0IGV4dGVybmFsIGNvbmZpZ3Vy YXRpb25zDQoNCg0KPiBIaSENCj4NCj4gSGVyZSBpcyB0aGUgZmlyc3QgcGF0Y2hzZXQgdG8gbWFr ZSBKZXR0eS1KZXJ2bGV0IGFjY2VwdCBleHRlcm5hbA0KPiBjb25maWd1cmF0aW9ucy4NCj4NCj4g VGhpcyBoYXMgYmVlbiBkb25lIHNvIGZhcjoNCj4NCj4gLUFkZGl0aW9uIG9mIHR3byBuZXcgSmV0 dHkgU2VydmVyIGNyZWF0b3JzDQo+IC1Db25maWd1cmF0aW9uIGxvZ2ljIGFkZGVkIHRvIEF2YWxv bkpldHR5SmVydmxldCB0byBleGNlcHQgZXh0ZXJuYWwNCj4gY29uZmlndXJhdGlvbnMNCj4gLUFk ZGl0aW9uIG9mIGEgbmV3IEF2YWxvbkpldHR5SmVydmxldCBjb25maWd1cmF0aW9uIHNjaGVtYSAo d2FzIG1pc3NpbmchKQ0KPiAtQWRkaXRpb24gb2YgYW4gZXhhbXBsZSBjb25maWd1cmF0aW9uIGZp bGUNCj4gLVBvc3NpYmlsaXR5IHRvIHNldCB0aGUgc3lzdGVtIHBhcmFtZXRlciAiamV0dHkuaG9t ZSIgKGNhbiBiZSBjb25zaWRlcmVkDQo+IGJhZCBieSBzb21lKQ0KPiAtU21hbGwgY2xlYW51cHMg dG8gdGhlIHRvcHMgb2YgQWJzdHJhY3RKZXR0eUplcnZsZXQgYW5kDQo+IEF2YWxvbkpldHR5SmVy dmxldCBwbHVzIGZpeGVzIHRvIG90aGVyIGZpbGVzIHRoYXQgdGhlc2UgYnJva2UuDQo+IC1kZW1v c2VydmVyIG5vdyB1c2VzIEF2YWxvbkpldHR5SmVydmxldCBpbnN0ZWFkIG9mIEpldHR5SmVydmxl dA0KPiAtTWluaW1hbCB0ZXN0cyBvZiBBdmFsb25KZXR0eUplcnZsZXQgaW4gTG9vbS1jdXJyZW50 IGFuZCBhIHNsaWdodGx5DQo+IG9sZGVyIHZlcnNpb24uDQo+DQo+DQo+IFRoZW9yZXRpY2FsbHkg bm90aGluZyBpbiBQaWNvSmV0dHlKZXJ2bGV0IHNob3VsZCBiZSBicm9rZW4gYW5kDQo+IGRlbW9z ZXJ2ZXIgbm93IHNlZW1zIHRvIHdvcmsgYWdhaW4uIE5leHQgSSB3b3VsZCBsaWtlIHRvOg0KPg0K PiAtTWFrZSB0aGUgbG9nIHJlZGlyZWN0aW5nIGFuZCBhY2Nlc3MgbG9nZ2luZyBjb25maWd1cmFi bGUgaW4NCj4gQXZhbG9uSmV0dHlKZXJ2bGV0DQo+IC1SZW1vdmUgSmV0dHlKZXJ2bGV0ICh0aGF0 IG9ubHkgZXh0ZW5kcyBBdmFsb25KZXR0eUplcnZsZXQpIGFuZCBpdHMNCj4gY29uZmlndXJhdGlv biBzY2hlbWENCj4gLUNoYW5nZSBkZW1vc2VydmVyIChhbHQgY3JlYXRlIG5ldyBtb2R1bGUpIHRv IGJlIG1vcmUgcmVsZWFzZSBsaWtlIGZvcg0KPiB0aGUgYXZhbG9uL2xvb20gcmVsZWFzZSBhbHJl YWR5IG5vdy4gVGhpcyBtZWFucyBhIG5ldyBuYW1lLCBhbmQgZW1wdHkNCj4gZG9jdW1lbnRlZCBj b25maWd1cmF0aW9uIGZpbGVzLCBldGMuIE90aGVyd2lzZSB2ZXJ5IGNsb3NlIHRvIGRlbW9zZXJ2 ZXIuDQo+IC1DaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gaW4gQXZhbG9uSmVydmxldEpldHR5IHRv IHRha2Ugc29tZXRoaW5nIGxpa2U6DQo+IDxzb2NrZXRsaXN0ZW5lcnM+DQo+ICAgIDxzb2NrZXRs aXN0ZW5lcj4NCj4gICAgICAgPGhvc3QvPg0KPiAgICAgICA8cG9ydC8+DQo+ICAgICAgIDxtYXh0 aHJlYWRzLz4NCj4gICAgICAgPG1pbnRocmVhZHMvPg0KPiAgICA8L3NvY2tldGxpc3RlbmVyPg0K PiA8L3NvY2tldGxpc3RlbmVycz4NCj4gaW5zdGVhZCBvZiBhbGwgdGhvc2UgaW4gdGhlIHJvb3Qg bGV2ZWwuIFRoaXMgd2F5IG1hbnkgbGlzdGVuZXJzIGNvdWxkIGJlDQo+IGFkZGVkIHRvIGEgSmV0 dHkgU2VydmVyLg0KPiAtU2V0IHRoZSBkZWZhdWx0IHBvcnQgKDgwODApIGluIEF2YWxvbkplcnZs ZXRKZXR0eSB0byAtMS4NCj4gLUNsZWFuIHVwIHNvbWUgcGFydHMgb2YgdGhlIGNvZGUgYWNjb3Jk aW5nIHRvIHNvbWUgc3RhbmRhcmQgKHdoYXQgc2hvdWxkDQo+IGJlIHVzZWQgYnR3PykNCj4NCj4N Cj4gQ291bGQgc29tZW9uZSBnaXZlIHNvbWUgaW5wdXQgb24gdGhpcz8NCj4NCj4NCj4gQ2hlZXJz LA0KPg0KPiAvLw0KPiBKb2hhbg0KPg0KPg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0tLS0N Cg0KDQo+IEluZGV4Og0Kc2FuZGJveC9qZXJ2bGV0L2plcnZsZXQtamV0dHkvc3JjL2phdmEvb3Jn L2pjb21wb25lbnQvamVydmxldC9ibG9ja3MvamV0dHkvQQ0KYnN0cmFjdEpldHR5SmVydmxldC5q YXZhDQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCj4gUkNTIGZpbGU6DQovY3Zzcm9vdC9zcGljZS9zcGljZS9zYW5k Ym94L2plcnZsZXQvamVydmxldC1qZXR0eS9zcmMvamF2YS9vcmcvamNvbXBvbmVudC9qDQplcnZs ZXQvYmxvY2tzL2pldHR5L0Fic3RyYWN0SmV0dHlKZXJ2bGV0LmphdmEsdg0KPiByZXRyaWV2aW5n IHJldmlzaW9uIDEuMQ0KPiBkaWZmIC11IC1yMS4xIEFic3RyYWN0SmV0dHlKZXJ2bGV0LmphdmEN Cj4gLS0tDQpzYW5kYm94L2plcnZsZXQvamVydmxldC1qZXR0eS9zcmMvamF2YS9vcmcvamNvbXBv bmVudC9qZXJ2bGV0L2Jsb2Nrcy9qZXR0eS9BDQpic3RyYWN0SmV0dHlKZXJ2bGV0LmphdmEgNiBO b3YgMjAwMyAyMDoyNTo0NiAtMDAwMCAxLjENCj4gKysrDQpzYW5kYm94L2plcnZsZXQvamVydmxl dC1qZXR0eS9zcmMvamF2YS9vcmcvamNvbXBvbmVudC9qZXJ2bGV0L2Jsb2Nrcy9qZXR0eS9BDQpi c3RyYWN0SmV0dHlKZXJ2bGV0LmphdmEgMTEgTm92IDIwMDMgMDY6MzU6MDAgLTAwMDANCj4gQEAg LTMsMzggKzMsODQgQEANCj4gIGltcG9ydCBvcmcubW9ydGJheS5qZXR0eS5TZXJ2ZXI7DQo+ICBp bXBvcnQgb3JnLm1vcnRiYXkuaHR0cC5Tb2NrZXRMaXN0ZW5lcjsNCj4gIGltcG9ydCBvcmcubW9y dGJheS51dGlsLk11bHRpRXhjZXB0aW9uOw0KPiAraW1wb3J0IG9yZy5tb3J0YmF5LnhtbC5YbWxD b25maWd1cmF0aW9uOw0KPiArDQo+ICBpbXBvcnQgb3JnLmpjb21wb25lbnQuamVydmxldC5KZXJ2 bGV0Q29uZmlnOw0KPiAgaW1wb3J0IG9yZy5qY29tcG9uZW50LmplcnZsZXQuSmVydmxldEV4Y2Vw dGlvbjsNCj4gKw0KPiAgaW1wb3J0IG9yZy5hcGFjaGUuYXZhbG9uLmZyYW1ld29yay5DYXNjYWRp bmdSdW50aW1lRXhjZXB0aW9uOw0KPg0KPiAraW1wb3J0IG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlv bjsNCj4gKw0KPiAgaW1wb3J0IGphdmEubmV0LlVua25vd25Ib3N0RXhjZXB0aW9uOw0KPiAgaW1w b3J0IGphdmEudXRpbC5IYXNoTWFwOw0KPiAraW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247DQo+ DQo+IC1wdWJsaWMgY2xhc3MgQWJzdHJhY3RKZXR0eUplcnZsZXQgew0KPiAtDQo+IC0gICAgcHJv dGVjdGVkIEplcnZsZXRDb25maWcgY29uZmlnOw0KPiArcHVibGljIGNsYXNzIEFic3RyYWN0SmV0 dHlKZXJ2bGV0DQo+ICt7DQo+ICsgICAgcHJvdGVjdGVkIEplcnZsZXRDb25maWcgbV9jb25maWc7 DQo+ICAgICAgcHJvdGVjdGVkIFNlcnZlciBtX3NlcnZlcjsNCj4gICAgICBwcm90ZWN0ZWQgSGFz aE1hcCBtX3dlYmNvbnRleHRzID0gbmV3IEhhc2hNYXAoKTsNCj4NCj4gKw0KPiArICAgIC8qKg0K PiArICAgICAqIENyZWF0ZSBhIG5ldyBKZXR0eSBIVFRQIHNlcnZlcg0KPiArICAgICAqLw0KPiAg ICAgIHByb3RlY3RlZCBmaW5hbCBTZXJ2ZXIgY3JlYXRlSHR0cFNlcnZlcigpDQo+ICAgICAgew0K PiAgICAgICAgICByZXR1cm4gbmV3IFNlcnZlcigpOw0KPiAgICAgIH0NCj4NCj4gKw0KPiArICAg IC8qKg0KPiArICAgICAqIENyZWF0ZSBhIG5ldyBKZXR0eSBIVFRQIHNlcnZlciBmcm9tIGEgSmV0 dHkgY29uZmlndXJhdGlvbiBmaWxlLg0KPiArICAgICAqDQo+ICsgICAgICogQHBhcmFtIGZpbGVu YW1lIFRoZSBVUkwgb3IgbmFtZSBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlLg0KPiArICAgICAq IEB0aHJvd3MgSU9FeGNlcHRpb24gaWYgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjb3VsZG4ndCBi ZSByZWFkLg0KPiArICAgICAqLw0KPiArICAgIHByb3RlY3RlZCBmaW5hbCBTZXJ2ZXIgY3JlYXRl SHR0cFNlcnZlckZyb21GaWxlKCBmaW5hbCBTdHJpbmcNCmZpbGVuYW1lICkgdGhyb3dzIElPRXhj ZXB0aW9uDQo+ICsgICAgew0KPiArICAgICAgICByZXR1cm4gbmV3IFNlcnZlciggZmlsZW5hbWUg KTsNCj4gKyAgICB9DQo+ICsNCj4gKw0KPiArICAgIC8qKg0KPiArICAgICAqIENyZWF0ZSBhIG5l dyBKZXR0eSBIVFRQIHNlcnZlciBmcm9tIGEgSmV0dHkgWE1MIGNvbmZpZ3VyYXRpb24uDQo+ICsg ICAgICoNCj4gKyAgICAgKiBAcGFyYW0geG1sQ29uZmlndXJhdGlvbiBBIFN0cmluZyBvZiBKZXR0 eSBYTUwgY29uZmlndXJhdGlvbg0KY29tbWFuZHMNCj4gKyAgICAgKiAgICAgICAgZXhjbHVkaW5n IHRoZSBub3JtYWwgWE1MIHByZWFtYmxlLiBUaGUgU3RyaW5nIHNob3VsZCBzdGFydA0Kd2l0aA0K PiArICAgICAqICAgICAgICBhICI8Q29uZmlndXJlIC4uLi4iIGVsZW1lbnQuDQo+ICsgICAgICog QHRocm93cyBFeGNlcHRpb24gaWYgYW55IHByb2JsZW1zIG9jY3VyDQo+ICsgICAgICovDQo+ICsg ICAgcHJvdGVjdGVkIGZpbmFsIFNlcnZlciBjcmVhdGVIdHRwU2VydmVyRnJvbUNvbmZpZ3VyYXRp b24oIGZpbmFsDQpTdHJpbmcgeG1sQ29uZmlndXJhdGlvbiApDQo+ICsgICAgICB0aHJvd3MgRXhj ZXB0aW9uDQo+ICsgICAgew0KPiArICAgICAgICB0cnkNCj4gKyAgICAgICAgew0KPiArICAgICAg ICAgICAgcmV0dXJuIChTZXJ2ZXIpIG5ldyBYbWxDb25maWd1cmF0aW9uKA0KeG1sQ29uZmlndXJh dGlvbiApLm5ld0luc3RhbmNlKCk7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgY2F0Y2goIEV4 Y2VwdGlvbiBlICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgICAgdGhyb3cgZTsNCj4gKyAg ICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiArDQo+ICAgICAgcHJvdGVjdGVkIGZpbmFsIFNvY2tl dExpc3RlbmVyIGNyZWF0ZVNvY2tldExpc3RlbmVyKCkgdGhyb3dzDQpVbmtub3duSG9zdEV4Y2Vw dGlvbg0KPiAgICAgIHsNCj4gICAgICAgICAgU29ja2V0TGlzdGVuZXIgbGlzdGVuZXIgPSBuZXcg U29ja2V0TGlzdGVuZXIoKTsNCj4NCj4gLSAgICAgICAgaWYoIG51bGwgIT0gY29uZmlnLmdldEhv c3ROYW1lKCkgKQ0KPiArICAgICAgICBpZiggbnVsbCAhPSBtX2NvbmZpZy5nZXRIb3N0TmFtZSgp ICkNCj4gICAgICAgICAgew0KPiAtICAgICAgICAgICAgbGlzdGVuZXIuc2V0SG9zdCggY29uZmln LmdldEhvc3ROYW1lKCkgKTsNCj4gKyAgICAgICAgICAgIGxpc3RlbmVyLnNldEhvc3QoIG1fY29u ZmlnLmdldEhvc3ROYW1lKCkgKTsNCj4gICAgICAgICAgfQ0KPg0KPiAtICAgICAgICBsaXN0ZW5l ci5zZXRQb3J0KCBjb25maWcuZ2V0UG9ydCgpICk7DQo+IC0gICAgICAgIGxpc3RlbmVyLnNldE1p blRocmVhZHMoIGNvbmZpZy5nZXRNaW5UaHJlYWRzKCkgKTsNCj4gLSAgICAgICAgbGlzdGVuZXIu c2V0TWF4VGhyZWFkcyggY29uZmlnLmdldE1heFRocmVhZHMoKSApOw0KPiArICAgICAgICBsaXN0 ZW5lci5zZXRQb3J0KCBtX2NvbmZpZy5nZXRQb3J0KCkgKTsNCj4gKyAgICAgICAgbGlzdGVuZXIu c2V0TWluVGhyZWFkcyggbV9jb25maWcuZ2V0TWluVGhyZWFkcygpICk7DQo+ICsgICAgICAgIGxp c3RlbmVyLnNldE1heFRocmVhZHMoIG1fY29uZmlnLmdldE1heFRocmVhZHMoKSApOw0KPiAgICAg ICAgICByZXR1cm4gbGlzdGVuZXI7DQo+ICAgICAgfQ0KPiArDQo+DQo+ICAgICAgLyoqDQo+ICAg ICAgICogU3RhcnQNCj4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQotLS0tDQoNCg0KPiBJbmRl eDogc2FuZGJveC9qZXJ2bGV0L2RlbW9zZXJ2ZXIvc3JjL2NvbmYvYXNzZW1ibHkueG1sDQo+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCj4gUkNTIGZpbGU6DQovY3Zzcm9vdC9zcGljZS9zcGljZS9zYW5kYm94L2plcnZs ZXQvZGVtb3NlcnZlci9zcmMvY29uZi9hc3NlbWJseS54bWwsdg0KPiByZXRyaWV2aW5nIHJldmlz aW9uIDEuMQ0KPiBkaWZmIC11IC1yMS4xIGFzc2VtYmx5LnhtbA0KPiAtLS0gc2FuZGJveC9qZXJ2 bGV0L2RlbW9zZXJ2ZXIvc3JjL2NvbmYvYXNzZW1ibHkueG1sIDI4IE9jdCAyMDAzDQowNTowNzoz NiAtMDAwMCAxLjENCj4gKysrIHNhbmRib3gvamVydmxldC9kZW1vc2VydmVyL3NyYy9jb25mL2Fz c2VtYmx5LnhtbCAxMSBOb3YgMjAwMw0KMDY6MzI6MTQgLTAwMDANCj4gQEAgLTMsNyArMyw3IEBA DQo+ICAgPGJsb2NrIG5hbWU9ImplcnZsZXQtamV0dHktbG9nZ2VyIg0KPiAgICAgIGNsYXNzPSJv cmcuamNvbXBvbmVudC5qZXJ2bGV0LmJsb2Nrcy5qZXR0eS5OdWxsUmVxdWVzdExvZ2dlciIvPg0K PiAgIDxibG9jayBuYW1lPSJqZXJ2bGV0LWpldHR5Ig0KPiAtICAgIGNsYXNzPSJvcmcuamNvbXBv bmVudC5qZXJ2bGV0LmJsb2Nrcy5qZXR0eS5KZXR0eUplcnZsZXQiPg0KPiArICAgIGNsYXNzPSJv cmcuamNvbXBvbmVudC5qZXJ2bGV0LmJsb2Nrcy5qZXR0eS5BdmFsb25KZXR0eUplcnZsZXQiPg0K PiAgICAgIDxwcm92aWRlDQo+ICAgICAgbmFtZT0iamVydmxldC1qZXR0eS1sb2dnZXIiDQo+ICAg ICAgcm9sZT0ib3JnLmpjb21wb25lbnQuamVydmxldC5ibG9ja3MuamV0dHkuUmVxdWVzdExvZ2dl ciIvPg0KPg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0tLS0NCg0KDQo+IEluZGV4Og0Kc2Fu ZGJveC9qZXJ2bGV0L2plcnZsZXQtamV0dHkvc3JjL2phdmEvb3JnL2pjb21wb25lbnQvamVydmxl dC9ibG9ja3MvamV0dHkvQQ0KdmFsb25KZXR0eUplcnZsZXQuamF2YQ0KPiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ IFJDUyBmaWxlOg0KL2N2c3Jvb3Qvc3BpY2Uvc3BpY2Uvc2FuZGJveC9qZXJ2bGV0L2plcnZsZXQt amV0dHkvc3JjL2phdmEvb3JnL2pjb21wb25lbnQvag0KZXJ2bGV0L2Jsb2Nrcy9qZXR0eS9BdmFs b25KZXR0eUplcnZsZXQuamF2YSx2DQo+IHJldHJpZXZpbmcgcmV2aXNpb24gMS4yDQo+IGRpZmYg LXUgLXIxLjIgQXZhbG9uSmV0dHlKZXJ2bGV0LmphdmENCj4gLS0tDQpzYW5kYm94L2plcnZsZXQv amVydmxldC1qZXR0eS9zcmMvamF2YS9vcmcvamNvbXBvbmVudC9qZXJ2bGV0L2Jsb2Nrcy9qZXR0 eS9BDQp2YWxvbkpldHR5SmVydmxldC5qYXZhIDYgTm92IDIwMDMgMjI6MDY6MDMgLTAwMDAgMS4y DQo+ICsrKw0Kc2FuZGJveC9qZXJ2bGV0L2plcnZsZXQtamV0dHkvc3JjL2phdmEvb3JnL2pjb21w b25lbnQvamVydmxldC9ibG9ja3MvamV0dHkvQQ0KdmFsb25KZXR0eUplcnZsZXQuamF2YSAxMSBO b3YgMjAwMyAwNjozNjo0MyAtMDAwMA0KPiBAQCAtNTQsNiArNTQsNyBAQA0KPiAgaW1wb3J0IG9y Zy5hcGFjaGUuYXZhbG9uLmZyYW1ld29yay5jb25maWd1cmF0aW9uLkNvbmZpZ3VyYWJsZTsNCj4g IGltcG9ydCBvcmcuYXBhY2hlLmF2YWxvbi5mcmFtZXdvcmsuY29uZmlndXJhdGlvbi5Db25maWd1 cmF0aW9uOw0KPiAgaW1wb3J0IG9yZy5hcGFjaGUuYXZhbG9uLmZyYW1ld29yay5jb25maWd1cmF0 aW9uLkNvbmZpZ3VyYXRpb25FeGNlcHRpb247DQo+ICtpbXBvcnQNCm9yZy5hcGFjaGUuYXZhbG9u LmZyYW1ld29yay5jb25maWd1cmF0aW9uLkRlZmF1bHRDb25maWd1cmF0aW9uU2VyaWFsaXplcjsN Cj4gIGltcG9ydCBvcmcuYXBhY2hlLmF2YWxvbi5mcmFtZXdvcmsuY29udGV4dC5Db250ZXh0Ow0K PiAgaW1wb3J0IG9yZy5hcGFjaGUuYXZhbG9uLmZyYW1ld29yay5jb250ZXh0LkNvbnRleHRFeGNl cHRpb247DQo+ICBpbXBvcnQgb3JnLmFwYWNoZS5hdmFsb24uZnJhbWV3b3JrLmNvbnRleHQuQ29u dGV4dHVhbGl6YWJsZTsNCj4gQEAgLTg4LDIzICs4OSw0MyBAQA0KPiAgcHVibGljIGNsYXNzIEF2 YWxvbkpldHR5SmVydmxldCBleHRlbmRzIEFic3RyYWN0SmV0dHlKZXJ2bGV0DQo+ICAgICAgaW1w bGVtZW50cyBKZXJ2bGV0LCBTdGFydGFibGUsIENvbnRleHR1YWxpemFibGUsIENvbmZpZ3VyYWJs ZSwNCkluaXRpYWxpemFibGUsIFNlcnZpY2VhYmxlLCBMb2dFbmFibGVkDQo+ICB7DQo+ICsgICAg cHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nIGNfYXBwSG9tZSA9ICIke2FwcC1ob21lfSI7DQo+ ICsNCj4gKyAgICAvKiogSmV0dHkncyBjb25maWd1cmF0aW9uICovDQo+ICsgICAgcHJpdmF0ZSBT dHJpbmcgbV9qZXR0eUNvbmZpZ3VyYXRpb247DQo+ICsNCj4gKyAgICAvKiogSmV0dHkncyBjb25m aWd1cmF0aW9uIGZpbGUgKi8NCj4gKyAgICBwcml2YXRlIFN0cmluZyBtX2pldHR5Q29uZkZpbGU7 DQo+DQo+ICAgICAgcHJpdmF0ZSBGaWxlIG1fc2FyUm9vdERpcjsNCj4gICAgICBwcml2YXRlIEF2 YWxvbkplcnZsZXRDb250ZXh0IG1famVydmxldENvbnRleHQ7DQo+ICAgICAgcHJpdmF0ZSBDb250 ZXh0IG1fY29udGV4dDsNCj4gICAgICBwcml2YXRlIExvZ2dlciBtX2xvZ2dlcjsNCj4NCj4gLSAg ICBwdWJsaWMgdm9pZCBlbmFibGVMb2dnaW5nKExvZ2dlciBsb2dnZXIpIHsNCj4gKw0KPiArICAg IC8qKg0KPiArICAgICAqIEdldCB0aGUgQXZhbG9uIGxvZ2dlcg0KPiArICAgICAqLw0KPiArICAg IHB1YmxpYyB2b2lkIGVuYWJsZUxvZ2dpbmcoIExvZ2dlciBsb2dnZXIgKQ0KPiArICAgIHsNCj4g ICAgICAgICAgbV9sb2dnZXIgPSBsb2dnZXI7DQo+ICAgICAgfQ0KPg0KPiAtICAgIHByb3RlY3Rl ZCBMb2dnZXIgZ2V0TG9nZ2VyKCkgew0KPiArDQo+ICsgICAgLyoqDQo+ICsgICAgICogRmV0Y2gg dGhlIGxvZ2dlcg0KPiArICAgICAqLw0KPiArICAgIHByb3RlY3RlZCBMb2dnZXIgZ2V0TG9nZ2Vy KCkNCj4gKyAgICB7DQo+ICAgICAgICAgIHJldHVybiBtX2xvZ2dlcjsNCj4gICAgICB9DQo+DQo+ ICsNCj4gICAgICAvKioNCj4gKyAgICAgKiBHZXQgdGhlIEF2YWxvbiBzZXJ2aWNlIG1hbmFnZXIN Cj4gKyAgICAgKg0KPiAgICAgICAqIEBwYXJhbSBzZXJ2aWNlTWFuYWdlcg0KPiAtICAgICAqIEB0 aHJvd3MgU2VydmljZUV4Y2VwdGlvbg0KPiArICAgICAqIEB0aHJvd3MgU2VydmljZUV4Y2VwdGlv biBpZiBhbnkgcHJvYmxlbXMgb2NjdXINCj4gICAgICAgKg0KPiAgICAgICAqIEBwaG9lbml4OmRl cGVuZGVuY3kNCm5hbWU9Im9yZy5qY29tcG9uZW50LmplcnZsZXQuYmxvY2tzLmpldHR5LlJlcXVl c3RMb2dnZXIiDQo+ICAgICAgICovDQo+IEBAIC0xMTMsOCArMTM0LDEwIEBADQo+ICAgICAgICAg IG1famVydmxldENvbnRleHQgPSBuZXcgQXZhbG9uSmVydmxldENvbnRleHQoIG1fY29udGV4dCwN CnNlcnZpY2VNYW5hZ2VyLCBnZXRMb2dnZXIoKSApOw0KPiAgICAgIH0NCj4NCj4gKw0KPiAgICAg IC8qKg0KPiAtICAgICAqIENvbnRleHR1YWxpemUNCj4gKyAgICAgKiBDb250ZXh0dWFsaXplIHRo ZSBjb21wb25lbnQNCj4gKyAgICAgKg0KPiAgICAgICAqIEBwYXJhbSBjb250ZXh0IHRoZSBjb250 ZXh0DQo+ICAgICAgICovDQo+ICAgICAgcHVibGljIHZvaWQgY29udGV4dHVhbGl6ZSggZmluYWwg Q29udGV4dCBjb250ZXh0ICkgdGhyb3dzDQpDb250ZXh0RXhjZXB0aW9uDQo+IEBAIC0xMjMsMzcg KzE0NiwxMTcgQEANCj4gICAgICAgICAgbV9zYXJSb290RGlyID0gKEZpbGUpY29udGV4dC5nZXQo ICJhcHAuaG9tZSIgKTsNCj4gICAgICB9DQo+DQo+ICsNCj4gICAgICAvKioNCj4gLSAgICAgKiBD b25maWd1cmUNCj4gKyAgICAgKiBDb25maWd1cmUgdGhlIGNvbXBvZW5lbnQNCj4gKyAgICAgKg0K PiAgICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIHRoZSBjb25maWd1cmF0aW9uDQo+IC0gICAg ICogQHRocm93cyBDb25maWd1cmF0aW9uRXhjZXB0aW9uIGlmIGEgcHJvYmxlbQ0KPiArICAgICAq IEB0aHJvd3MgQ29uZmlndXJhdGlvbkV4Y2VwdGlvbiBpZiBhbnkgcHJvYmxlbXMgb2NjdXINCj4g ICAgICAgKg0KPiAgICAgICAqIEBwaG9lbml4OmNvbmZpZ3VyYXRpb24tc2NoZW1hDQp0eXBlPSJo dHRwOi8vcmVsYXhuZy5vcmcvbnMvc3RydWN0dXJlLzEuMCINCj4gICAgICAgKi8NCj4gICAgICBw dWJsaWMgdm9pZCBjb25maWd1cmUoIGZpbmFsIENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiAp IHRocm93cw0KQ29uZmlndXJhdGlvbkV4Y2VwdGlvbg0KPiAgICAgIHsNCj4gICAgICAgICAgSmVy dmxldENvbmZpZ0JlYW4gY29uZmlnID0gbmV3IEplcnZsZXRDb25maWdCZWFuKCk7DQo+IC0NCj4g LSAgICAgICAgY29uZmlnLnNldEhvc3ROYW1lKGNvbmZpZ3VyYXRpb24uZ2V0Q2hpbGQoDQoiaG9z dG5hbWUiICkuZ2V0VmFsdWUoIG51bGwgKSk7DQo+IC0gICAgICAgIGNvbmZpZy5zZXRQb3J0KGNv bmZpZ3VyYXRpb24uZ2V0Q2hpbGQoDQoicG9ydCIgKS5nZXRWYWx1ZUFzSW50ZWdlciggODA4MCAp KTsNCj4gLSAgICAgICAgY29uZmlnLnNldE1pblRocmVhZHMoY29uZmlndXJhdGlvbi5nZXRDaGls ZCgNCiJtaW50aHJlYWRzIiApLmdldFZhbHVlQXNJbnRlZ2VyKCA1ICkpOw0KPiAtICAgICAgICBj b25maWcuc2V0TWF4VGhyZWFkcyhjb25maWd1cmF0aW9uLmdldENoaWxkKA0KIm1heHRocmVhZHMi ICkuZ2V0VmFsdWVBc0ludGVnZXIoIDI1MCApKTsNCj4gLSAgICAgICAgY29uZmlnLnNldEV4dHJh Y3RXYXJGaWxlKGNvbmZpZ3VyYXRpb24uZ2V0Q2hpbGQoDQoiZXh0cmFjdC13YXIiICkuZ2V0VmFs dWVBc0Jvb2xlYW4oIHRydWUgKSk7DQo+IC0NCj4gKyAgICAgICAgY29uZmlnLnNldEhvc3ROYW1l KCBjb25maWd1cmF0aW9uLmdldENoaWxkKA0KImhvc3RuYW1lIiApLmdldFZhbHVlKCBudWxsICkg KTsNCj4gKyAgICAgICAgY29uZmlnLnNldFBvcnQoIGNvbmZpZ3VyYXRpb24uZ2V0Q2hpbGQoDQoi cG9ydCIgKS5nZXRWYWx1ZUFzSW50ZWdlciggODA4MCApICk7DQo+ICsgICAgICAgIGNvbmZpZy5z ZXRNaW5UaHJlYWRzKCBjb25maWd1cmF0aW9uLmdldENoaWxkKA0KIm1pbnRocmVhZHMiICkuZ2V0 VmFsdWVBc0ludGVnZXIoIDUgKSApOw0KPiArICAgICAgICBjb25maWcuc2V0TWF4VGhyZWFkcygg Y29uZmlndXJhdGlvbi5nZXRDaGlsZCgNCiJtYXh0aHJlYWRzIiApLmdldFZhbHVlQXNJbnRlZ2Vy KCAyNTAgKSApOw0KPiArICAgICAgICBjb25maWcuc2V0RXh0cmFjdFdhckZpbGUoIGNvbmZpZ3Vy YXRpb24uZ2V0Q2hpbGQoICJleHRyYWN0LXdhciIgKQ0KPiArICAgICAgICAgIC5nZXRWYWx1ZUFz Qm9vbGVhbiggdHJ1ZSApICk7DQo+ICAgICAgICAgIGlmKCBjb25maWcuZ2V0TWF4VGhyZWFkcygp IDwgY29uZmlnLmdldE1pblRocmVhZHMoKSApDQo+ICAgICAgICAgIHsNCj4gICAgICAgICAgICAg IHRocm93IG5ldyBDb25maWd1cmF0aW9uRXhjZXB0aW9uKCAibWF4dGhyZWFkcyBtdXN0IGJlIGdy ZWF0ZXINCnRoYW4gbWludGhyZWFkcyIgKTsNCj4gICAgICAgICAgfQ0KPiArICAgICAgICBtX2Nv bmZpZyA9IGNvbmZpZzsNCj4gKw0KPiArICAgICAgICBtX2pldHR5Q29uZkZpbGUgPSBjb25maWd1 cmF0aW9uLmdldENoaWxkKA0KImpldHR5LWNvbmZpZy1maWxlIiApLmdldFZhbHVlKCBudWxsICk7 DQo+ICsgICAgICAgIGlmKCBudWxsICE9IG1famV0dHlDb25mRmlsZSApDQo+ICsgICAgICAgIHsN Cj4gKyAgICAgICAgICAgIGdldExvZ2dlcigpLmluZm8oICJDb25maWd1cmF0aW5nIEpldHR5IGZy b20gZmlsZSBbIiArDQptX2pldHR5Q29uZkZpbGUgKyAiXS4iICk7DQo+ICsgICAgICAgICAgICBp ZiggbV9qZXR0eUNvbmZGaWxlLnN0YXJ0c1dpdGgoIGNfYXBwSG9tZSApICkNCj4gKyAgICAgICAg ICAgIHsNCj4gKyAgICAgICAgICAgICAgICBtX2pldHR5Q29uZkZpbGUgPSBtX3NhclJvb3REaXIu Z2V0QWJzb2x1dGVQYXRoKCkgKw0KPiArICAgICAgICAgICAgICAgICAgbV9qZXR0eUNvbmZGaWxl LnN1YnN0cmluZyggY19hcHBIb21lLmxlbmd0aCgpICk7DQo+ICsgICAgICAgICAgICB9DQo+ICsg ICAgICAgICAgICBpZiggbV9qZXR0eUNvbmZGaWxlLnN0YXJ0c1dpdGgoIGNfYXBwSG9tZSApICkN Cj4gKyAgICAgICAgICAgIHsNCj4gKyAgICAgICAgICAgICAgICBtX2pldHR5Q29uZkZpbGUgPSBt X2pldHR5Q29uZkZpbGUuc3Vic3RyaW5nKA0KY19hcHBIb21lLmxlbmd0aCgpICk7DQo+ICsgICAg ICAgICAgICB9DQo+ICsgICAgICAgICAgICBtX2pldHR5Q29uZkZpbGUgPSBtX2pldHR5Q29uZkZp bGUucmVwbGFjZSggJ1xcJywNCkZpbGUuc2VwYXJhdG9yQ2hhciApOw0KPiArICAgICAgICAgICAg bV9qZXR0eUNvbmZGaWxlID0gbV9qZXR0eUNvbmZGaWxlLnJlcGxhY2UoICcvJywNCkZpbGUuc2Vw YXJhdG9yQ2hhciApOw0KPiArICAgICAgICB9DQo+ICsgICAgICAgIGVsc2UNCj4gKyAgICAgICAg ew0KPiArICAgICAgICAgICAgbV9qZXR0eUNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uLmdl dENoaWxkKA0KImpldHR5LWNvbmZpZyIgKS5nZXRWYWx1ZSggbnVsbCApOw0KPiArICAgICAgICAg ICAgaWYoIG51bGwgPT0gbV9qZXR0eUNvbmZpZ3VyYXRpb24gKQ0KPiArICAgICAgICAgICAgew0K PiArICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24gamV0dHlDb25mID0gY29uZmlndXJhdGlv bi5nZXRDaGlsZCgNCiJqZXR0eS1jb25maWciICkNCj4gKyAgICAgICAgICAgICAgICAgIC5nZXRD aGlsZCggIkNvbmZpZ3VyZSIsIGZhbHNlICk7DQo+ICsgICAgICAgICAgICAgICAgaWYoIG51bGwg IT0gamV0dHlDb25mICkNCj4gKyAgICAgICAgICAgICAgICB7DQo+ICsgICAgICAgICAgICAgICAg ICAgIHRyeQ0KPiArICAgICAgICAgICAgICAgICAgICB7DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBEZWZhdWx0Q29uZmlndXJhdGlvblNlcmlhbGl6ZXIgc2VyaWFsaXplciA9DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWZhdWx0Q29uZmlndXJhdGlvblNlcmlhbGl6ZXIo KTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIG1famV0dHlDb25maWd1cmF0aW9uID0gIHNl cmlhbGl6ZXIuc2VyaWFsaXplKA0KamV0dHlDb25mICk7DQo+ICsgICAgICAgICAgICAgICAgICAg IH0NCj4gKyAgICAgICAgICAgICAgICAgICAgY2F0Y2goIEV4Y2VwdGlvbiBlICkNCj4gKyAgICAg ICAgICAgICAgICAgICAgew0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5n IG1lc3NhZ2UgPSAiU2VyaWFsaXphdGlvbiBvZiBKZXR0eSdzDQpjb25maWd1cmF0aW9uIGZhaWxl ZC4iOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkuZXJyb3IoIG1lc3Nh Z2UsIGUgKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb25maWd1cmF0 aW9uRXhjZXB0aW9uKCBtZXNzYWdlLCBlICk7DQo+ICsgICAgICAgICAgICAgICAgICAgIH0NCj4g KyAgICAgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICBpZigg bnVsbCAhPSBtX2pldHR5Q29uZmlndXJhdGlvbiApDQo+ICsgICAgICAgICAgICB7DQo+ICsgICAg ICAgICAgICAgICAgZ2V0TG9nZ2VyKCkuaW5mbyggIkNvbmZpZ3VyYXRpbmcgSmV0dHkgZnJvbSBj b21wb25lbnQNCmNvbmZpZ3VyYXRpb24uIiApOw0KPiArICAgICAgICAgICAgICAgIGlmKCBtX2pl dHR5Q29uZmlndXJhdGlvbi5pbmRleE9mICgiPz4iKSA+PSAwICkNCj4gKyAgICAgICAgICAgICAg ICB7DQo+ICsgICAgICAgICAgICAgICAgICAgIG1famV0dHlDb25maWd1cmF0aW9uID0NCm1famV0 dHlDb25maWd1cmF0aW9uLnN1YnN0cmluZygNCj4gKyAgICAgICAgICAgICAgICAgICAgICBtX2pl dHR5Q29uZmlndXJhdGlvbi5pbmRleE9mICgiPz4iKSArIDIgKTsNCj4gKyAgICAgICAgICAgICAg ICB9DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgIH0NCj4gKw0KPiArICAgICAgICBTdHJp bmcgamV0dHlIb21lID0gY29uZmlndXJhdGlvbi5nZXRDaGlsZCgNCiJqZXR0eS1ob21lIiApLmdl dFZhbHVlKCAiIiApOw0KPiArICAgICAgICBpZiggISIiLmVxdWFscyggamV0dHlIb21lICkgKQ0K PiArICAgICAgICB7DQo+ICsgICAgICAgICAgICBpZiggamV0dHlIb21lLnN0YXJ0c1dpdGgoIGNf YXBwSG9tZSApICkNCj4gKyAgICAgICAgICAgIHsNCj4gKyAgICAgICAgICAgICAgICBqZXR0eUhv bWUgPSBtX3NhclJvb3REaXIuZ2V0QWJzb2x1dGVQYXRoKCkNCj4gKyAgICAgICAgICAgICAgICAg ICsgamV0dHlIb21lLnN1YnN0cmluZyggY19hcHBIb21lLmxlbmd0aCgpICk7DQo+ICsgICAgICAg ICAgICB9DQo+ICsgICAgICAgICAgICBnZXRMb2dnZXIoKS5pbmZvKCAiU2V0dGluZyBzeXN0ZW0g cHJvcGVydHkgJ2pldHR5LmhvbWUnIHRvIFsiDQorIGpldHR5SG9tZSArICJdLiIgKTsNCj4gKyAg ICAgICAgICAgIFN5c3RlbS5zZXRQcm9wZXJ0eSggImpldHR5LmhvbWUiLCBqZXR0eUhvbWUgKTsN Cj4gKyAgICAgICAgfQ0KPiAgICAgIH0NCj4NCj4gKw0KPiAgICAgIC8qKg0KPiAgICAgICAqIElu aXRpYWxpemUNCj4gLSAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiBhIHByb2JsZW0NCj4gKyAg ICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiBhbnkgcHJvYmxlbXMgb2NjdXINCj4gICAgICAgKi8N Cj4gICAgICBwdWJsaWMgdm9pZCBpbml0aWFsaXplKCkgdGhyb3dzIEV4Y2VwdGlvbg0KPiAgICAg IHsNCj4gLSAgICAgICAgbV9zZXJ2ZXIgPSBjcmVhdGVIdHRwU2VydmVyKCk7DQo+IC0gICAgICAg IG1fc2VydmVyLmFkZExpc3RlbmVyKCBjcmVhdGVTb2NrZXRMaXN0ZW5lcigpICk7DQo+ICsgICAg ICAgIGlmKCBudWxsICE9IG1famV0dHlDb25maWd1cmF0aW9uICYmICEiIi5lcXVhbHMoDQptX2pl dHR5Q29uZmlndXJhdGlvbiApICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgICAgIG1fc2Vy dmVyID0gY3JlYXRlSHR0cFNlcnZlckZyb21Db25maWd1cmF0aW9uKA0KbV9qZXR0eUNvbmZpZ3Vy YXRpb24gKTsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBlbHNlIGlmKCBudWxsICE9IG1famV0 dHlDb25mRmlsZSAmJiAhIiIuZXF1YWxzKA0KbV9qZXR0eUNvbmZGaWxlICkgKQ0KPiArICAgICAg ICB7DQo+ICsgICAgICAgICAgICAgbV9zZXJ2ZXIgPSBjcmVhdGVIdHRwU2VydmVyRnJvbUZpbGUo IG1famV0dHlDb25mRmlsZSApOw0KPiArICAgICAgICB9DQo+ICsgICAgICAgIGVsc2UNCj4gKyAg ICAgICAgew0KPiArICAgICAgICAgICAgbV9zZXJ2ZXIgPSBjcmVhdGVIdHRwU2VydmVyKCk7DQo+ ICsgICAgICAgIH0NCj4gKw0KPiArICAgICAgICBpZiggbV9jb25maWcuZ2V0UG9ydCgpID4gMCAp DQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAgICAgIG1fc2VydmVyLmFkZExpc3RlbmVyKCBjcmVh dGVTb2NrZXRMaXN0ZW5lcigpICk7DQo+ICsgICAgICAgIH0NCj4NCj4gICAgICAgICAgQXZhbG9u TG9nU2luayBsb2dTaW5rID0gbmV3IEF2YWxvbkxvZ1NpbmsoKTsNCj4gICAgICAgICAgbG9nU2lu ay5lbmFibGVMb2dnaW5nKCBnZXRMb2dnZXIoKSApOw0KPiBAQCAtMTYxLDggKzI2NCw4IEBADQo+ ICAgICAgICAgIC8vIHVuc2F0aXNmYWN0b3J5IGFzIGlzIHN0YXRpYw0KPiAgICAgICAgICBMb2cu aW5zdGFuY2UoKS5hZGQoIGxvZ1NpbmsgKTsNCj4NCj4gLSAgICAgICAgUmVxdWVzdExvZ2dlciBs b2dnZXIgPSAoUmVxdWVzdExvZ2dlcikNCj4gLSAgICAgICAgICAgIG1famVydmxldENvbnRleHQu Z2V0U2VydmljZU1hbmFnZXIoKS5sb29rdXAoDQpSZXF1ZXN0TG9nZ2VyLlJPTEUgKTsNCj4gKyAg ICAgICAgUmVxdWVzdExvZ2dlciBsb2dnZXIgPSAoDQpSZXF1ZXN0TG9nZ2VyICltX2plcnZsZXRD b250ZXh0LmdldFNlcnZpY2VNYW5hZ2VyKCkNCj4gKyAgICAgICAgIC5sb29rdXAoIFJlcXVlc3RM b2dnZXIuUk9MRSApOw0KPiAgICAgICAgICBtX3NlcnZlci5zZXRSZXF1ZXN0TG9nKCBuZXcgSmV0 dHlSZXF1ZXN0TG9nQWRhcHRlciggbG9nZ2VyICkgKTsNCj4gICAgICB9DQo+DQo+IEBAIC0yMDEs NyArMzA0LDcgQEANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhdGhUb1dlYkFwcEZvbGRlciwNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGplcnZsZXRDb250ZXh0LA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zYXJS b290RGlyLA0KPiAtDQpjb25maWcuZ2V0RXh0cmFjdFdhckZpbGUoKSApOw0KPiArDQptX2NvbmZp Zy5nZXRFeHRyYWN0V2FyRmlsZSgpICk7DQo+ICAgICAgICAgICAgICBtX3dlYmNvbnRleHRzLnB1 dCggY29udGV4dCwgaG9sZGVyICk7DQo+ICAgICAgICAgIH0NCj4gICAgICAgICAgY2F0Y2goIEV4 Y2VwdGlvbiBlICkNCj4gQEAgLTMzMiwxMiArNDM1LDEzIEBADQo+DQo+ICAgICAgICAgIHRyeQ0K PiAgICAgICAgICB7DQo+IC0gICAgICAgICAgICBtX3NlcnZlci5hZGRDb250ZXh0KCBjb25maWcu Z2V0SG9zdE5hbWUoKSwgaG9sZGVyLmNyZWF0ZSgpICk7DQo+ICsgICAgICAgICAgICBtX3NlcnZl ci5hZGRDb250ZXh0KCBtX2NvbmZpZy5nZXRIb3N0TmFtZSgpLA0KaG9sZGVyLmNyZWF0ZSgpICk7 DQo+DQo+ICAgICAgICAgICAgICBpZiggZ2V0TG9nZ2VyKCkuaXNJbmZvRW5hYmxlZCgpICkNCj4g ICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS5pbmZvKCAiZGVwbG95aW5nIGNvbnRleHQ9IiAr IGNvbnRleHQgKyAiLA0Kd2ViYXBwPSINCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArIGhvbGRlci5nZXRXZWJhcHBVcmwoKSArICIgdG8gaG9zdD0iDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKyAoIGNvbmZpZy5nZXRIb3N0TmFtZSgpID09IG51bGwg Pw0KIihBbGwgSG9zdHMpIiA6IGNvbmZpZy5nZXRIb3N0TmFtZSgpICkgKTsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArICggbV9jb25maWcuZ2V0SG9zdE5hbWUoKSA9PSBu dWxsID8NCiIoQWxsIEhvc3RzKSIgOg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbV9jb25maWcuZ2V0SG9zdE5hbWUoKSApICk7DQo+DQo+ICAgICAgICAgICAgICBob2xk ZXIuc3RhcnQoKTsNCj4gICAgICAgICAgfQ0KPg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0t LS0NCg0KDQo+IDw/eG1sIHZlcnNpb249IjEuMCI/Pg0KPiA8ZWxlbWVudCBuYW1lPSJyb290IiB4 bWxucz0iaHR0cDovL3JlbGF4bmcub3JnL25zL3N0cnVjdHVyZS8xLjAiDQpkYXRhdHlwZUxpYnJh cnk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWRhdGF0eXBlcyI+DQo+ICAgPGlu dGVybGVhdmU+DQo+ICAgICA8b3B0aW9uYWw+DQo+ICAgICAgIDxlbGVtZW50IG5hbWU9Imhvc3Ru YW1lIj4NCj4gICAgICAgICA8dGV4dC8+DQo+ICAgICAgIDwvZWxlbWVudD4NCj4gICAgIDwvb3B0 aW9uYWw+DQo+ICAgICA8b3B0aW9uYWw+DQo+ICAgICAgIDxlbGVtZW50IG5hbWU9InBvcnQiPg0K PiAgICAgICAgIDxkYXRhIHR5cGU9ImludGVnZXIiLz4NCj4gICAgICAgPC9lbGVtZW50Pg0KPiAg ICAgPC9vcHRpb25hbD4NCj4gICAgIDxvcHRpb25hbD4NCj4gICAgICAgPGVsZW1lbnQgbmFtZT0i bWludGhyZWFkcyI+DQo+ICAgICAgICAgPGRhdGEgdHlwZT0iaW50ZWdlciIvPg0KPiAgICAgICA8 L2VsZW1lbnQ+DQo+ICAgICA8L29wdGlvbmFsPg0KPiAgICAgPG9wdGlvbmFsPg0KPiAgICAgICA8 ZWxlbWVudCBuYW1lPSJtYXh0aHJlYWRzIj4NCj4gICAgICAgICA8ZGF0YSB0eXBlPSJpbnRlZ2Vy Ii8+DQo+ICAgICAgIDwvZWxlbWVudD4NCj4gICAgIDwvb3B0aW9uYWw+DQo+ICAgICA8b3B0aW9u YWw+DQo+ICAgICAgIDxlbGVtZW50IG5hbWU9ImV4dHJhY3Qtd2FyIj4NCj4gICAgICAgICA8ZGF0 YSB0eXBlPSJib29sZWFuIi8+DQo+ICAgICAgIDwvZWxlbWVudD4NCj4gICAgIDwvb3B0aW9uYWw+ DQo+ICAgICA8b3B0aW9uYWw+DQo+ICAgICAgIDxlbGVtZW50IG5hbWU9ImpldHR5LWNvbmZpZy1m aWxlIj4NCj4gICAgICAgICA8dGV4dC8+DQo+ICAgICAgIDwvZWxlbWVudD4NCj4gICAgIDwvb3B0 aW9uYWw+DQo+ICAgICA8b3B0aW9uYWw+DQo+ICAgICAgIDxlbGVtZW50IG5hbWU9ImpldHR5LWNv bmZpZyI+DQo+ICAgICAgICAgPHRleHQvPg0KPiAgICAgICA8L2VsZW1lbnQ+DQo+ICAgICA8L29w dGlvbmFsPg0KPiAgICAgPG9wdGlvbmFsPg0KPiAgICAgICA8ZWxlbWVudCBuYW1lPSJqZXR0eS1o b21lIj4NCj4gICAgICAgICA8dGV4dC8+DQo+ICAgICAgIDwvZWxlbWVudD4NCj4gICAgIDwvb3B0 aW9uYWw+DQo+ICAgPC9pbnRlcmxlYXZlPg0KPiA8L2VsZW1lbnQ+DQo+DQoNCg0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KLS0tLQ0KDQoNCj4gSW5kZXg6DQpzYW5kYm94L2plcnZsZXQvamVydmxldC1q ZXR0eS9zcmMvamF2YS9vcmcvamNvbXBvbmVudC9qZXJ2bGV0L2Jsb2Nrcy9qZXR0eS9CDQplYW5K ZXR0eUplcnZsZXQuamF2YQ0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IFJDUyBmaWxlOg0KL2N2c3Jvb3Qvc3Bp Y2Uvc3BpY2Uvc2FuZGJveC9qZXJ2bGV0L2plcnZsZXQtamV0dHkvc3JjL2phdmEvb3JnL2pjb21w b25lbnQvag0KZXJ2bGV0L2Jsb2Nrcy9qZXR0eS9CZWFuSmV0dHlKZXJ2bGV0LmphdmEsdg0KPiBy ZXRyaWV2aW5nIHJldmlzaW9uIDEuMg0KPiBkaWZmIC11IC1yMS4yIEJlYW5KZXR0eUplcnZsZXQu amF2YQ0KPiAtLS0NCnNhbmRib3gvamVydmxldC9qZXJ2bGV0LWpldHR5L3NyYy9qYXZhL29yZy9q Y29tcG9uZW50L2plcnZsZXQvYmxvY2tzL2pldHR5L0INCmVhbkpldHR5SmVydmxldC5qYXZhIDYg Tm92IDIwMDMgMjI6MDY6MDMgLTAwMDAgMS4yDQo+ICsrKw0Kc2FuZGJveC9qZXJ2bGV0L2plcnZs ZXQtamV0dHkvc3JjL2phdmEvb3JnL2pjb21wb25lbnQvamVydmxldC9ibG9ja3MvamV0dHkvQg0K ZWFuSmV0dHlKZXJ2bGV0LmphdmEgMTEgTm92IDIwMDMgMDY6Mzc6NTggLTAwMDANCj4gQEAgLTg5 LDcgKzg5LDcgQEANCj4gICAgICBwcml2YXRlIExvZ1NpbmsgbG9nU2luazsNCj4NCj4gICAgICBw dWJsaWMgdm9pZCBzZXRKZXJ2bGV0Q29uZmlnKEplcnZsZXRDb25maWcgY29uZmlnKSB7DQo+IC0g ICAgICAgIHN1cGVyLmNvbmZpZyA9IGNvbmZpZzsNCj4gKyAgICAgICAgc3VwZXIubV9jb25maWcg PSBjb25maWc7DQo+ICAgICAgfQ0KPg0KPiAgICAgIHB1YmxpYyB2b2lkIHNldFJlcXVlc3RMb2dn ZXIoUmVxdWVzdExvZ2dlciByZXF1ZXN0TG9nZ2VyKSB7DQo+IEBAIC0xNjAsNyArMTYwLDcgQEAN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhdGhUb1dlYkFwcEZvbGRlciwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGplcnZsZXRDb250ZXh0LA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwUm9vdERpciwNCj4gLQ0K Y29uZmlnLmdldEV4dHJhY3RXYXJGaWxlKCkgKTsNCj4gKw0KbV9jb25maWcuZ2V0RXh0cmFjdFdh ckZpbGUoKSApOw0KPiAgICAgICAgICAgICAgbV93ZWJjb250ZXh0cy5wdXQoIGNvbnRleHQsIGhv bGRlciApOw0KPiAgICAgICAgICB9DQo+ICAgICAgICAgIGNhdGNoKCBFeGNlcHRpb24gZSApDQo+ IEBAIC0yODMsMTYgKzI4MywxNiBAQA0KPg0KPiAgICAgICAgICB0cnkNCj4gICAgICAgICAgew0K PiAtICAgICAgICAgICAgbV9zZXJ2ZXIuYWRkQ29udGV4dCggY29uZmlnLmdldEhvc3ROYW1lKCks IGhvbGRlci5jcmVhdGUoKSApOw0KPiArICAgICAgICAgICAgbV9zZXJ2ZXIuYWRkQ29udGV4dCgg bV9jb25maWcuZ2V0SG9zdE5hbWUoKSwNCmhvbGRlci5jcmVhdGUoKSApOw0KPg0KPiAtICAgICAg ICAgICAgbW9uaXRvci5kZXBsb3lpbmdDb250ZXh0KHRoaXMuZ2V0Q2xhc3MoKSwgY29udGV4dCwN CmhvbGRlci5nZXRXZWJhcHBVcmwoKSwgY29uZmlnLmdldEhvc3ROYW1lKCkpOw0KPiArICAgICAg ICAgICAgbW9uaXRvci5kZXBsb3lpbmdDb250ZXh0KHRoaXMuZ2V0Q2xhc3MoKSwgY29udGV4dCwN CmhvbGRlci5nZXRXZWJhcHBVcmwoKSwgbV9jb25maWcuZ2V0SG9zdE5hbWUoKSk7DQo+DQo+ICAg ICAgICAgICAgICBob2xkZXIuc3RhcnQoKTsNCj4gICAgICAgICAgfQ0KPiAgICAgICAgICBjYXRj aCggRXhjZXB0aW9uIGUgKQ0KPiAgICAgICAgICB7DQo+DQo+IC0gICAgICAgICAgICBtb25pdG9y LmRlcGxveWluZ0V4Y2VwdGlvbih0aGlzLmdldENsYXNzKCksIGNvbnRleHQsDQpob2xkZXIuZ2V0 V2ViYXBwVXJsKCksIGNvbmZpZy5nZXRIb3N0TmFtZSgpLCBlKTsNCj4gKyAgICAgICAgICAgIG1v bml0b3IuZGVwbG95aW5nRXhjZXB0aW9uKHRoaXMuZ2V0Q2xhc3MoKSwgY29udGV4dCwNCmhvbGRl ci5nZXRXZWJhcHBVcmwoKSwgbV9jb25maWcuZ2V0SG9zdE5hbWUoKSwgZSk7DQo+DQo+ICAgICAg ICAgIH0NCj4gICAgICB9DQo+DQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLS0tLQ0KDQoNCj4g PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo+IDxjb25maWc+DQo+ICAgPGplcnZsZXQtamV0dHk+DQo+ ICAgICA8IS0tDQo+ICAgICAgICAgIEhUVFAgc2VydmVyIGhvc3QNCj4NCj4gICAgICAgICAgSmV0 dHkgbWFuYWdlZCB3ZWIgYXBwbGljYXRpb25zIHdpbGwgYmUgZGVwbG95ZWQgdG8gdGhpcyB2aXJ0 dWFsDQo+ICAgICAgICAgIGhvc3QuIElmIGl0IGRvZXNuJ3QgZXhpc3Qgb3IgaXMgbGVmdCBlbXB0 eSB0aGUgYXBwbGljYXRpb25zIHdpbGwNCj4gICAgICAgICAgYmUgZGVwbG95ZWQgdG8gYWxsIGV4 aXN0aW5nIGhvc3RzLiBUaGUgZGVmYXVsdCBpcyBudWxsIChhbGwNCmhvc3RzKS4NCj4gICAgICAt LT4NCj4gICAgIDwhLS08aG9zdG5hbWU+bG9jYWxob3N0PC9ob3N0bmFtZT4tLT4NCj4NCj4gICAg IDwhLS0NCj4gICAgICAgICAgSFRUUCBzZXJ2ZXIgcG9ydA0KPg0KPiAgICAgICAgICBUaGUgcG9y dCB0byBiaW5kIHRoZSBIVFRQIHNlcnZlciB0by4gSWYgbm8gcG9ydCBpcyBkZWZpbmVkIGl0IGlz DQo+ICAgICAgICAgIGFzc3VtZWQgdGhhdCB0aGUgcG9ydCBvciBwb3J0cyBhcmUgY29uZmlndXJl ZCBpbiB0aGUgSmV0dHkNCj4gICAgICAgICAgY29uZmlndXJhdGlvbiBmaWxlLiBUaGUgZGVmYXVs dCBpcyA4MDgwLiBJZiB5b3UgdXNlIGV4dGVybmFsDQo+ICAgICAgICAgIEpldHR5IGNvbmZpZ3Vy YXRpb25zLCBkb24ndCBjb25maWd1cmUgdGhlIHNhbWUgcG9ydCB0d2ljZS4NCj4gICAgICAtLT4N Cj4gICAgIDwhLS08cG9ydD44MDgwPC9wb3J0Pi0tPg0KPg0KPiAgICAgPCEtLQ0KPiAgICAgICAg ICBIVFRQIHNlcnZlciBNaW4gdGhyZWFkcw0KPg0KPiAgICAgICAgICBNaW5pbXVtIGFtb3VudCBv ZiB0aHJlYWRzIGZvciB0aGUgSFRUUCBzZXJ2ZXIuIFRoZSBkZWZhdWx0IGlzIDUuDQo+ICAgICAg LS0+DQo+ICAgICA8IS0tPG1pbnRocmVhZHM+NTwvbWludGhyZWFkcz4tLT4NCj4NCj4gICAgIDwh LS0NCj4gICAgICAgICAgSFRUUCBzZXJ2ZXIgTWF4IHRocmVhZHMNCj4NCj4gICAgICAgICAgTWF4 aW11bSBhbW91bnQgb2YgdGhyZWFkcyBmb3IgdGhlIEhUVFAgc2VydmVyLiBUaGUgZGVmYXVsdCBp cw0KMjUwLg0KPiAgICAgIC0tPg0KPiAgICAgPCEtLTxtYXh0aHJlYWRzPjI1MDwvbWF4dGhyZWFk cz4tLT4NCj4NCj4gICAgIDwhLS0NCj4gICAgICAgICAgRXh0cmFjdCB3YXIgZmlsZXMNCj4NCj4g ICAgICAgICAgRGVmaW5lIGlmIEpldHR5IG1hbmFnZWQgV2ViIEFwcGxpY2F0aW9uIEFyY2hpdmVz IHNob3VsZCBiZQ0KZXh0cmFjdGVkLg0KPiBUaGUgZGVmYXVsdCBpcyB0cnVlLg0KPiAgICAgIC0t Pg0KPiAgICAgPCEtLTxleHRyYWN0LXdhcj50cnVlPC9leHRyYWN0LXdhcj4tLT4NCj4NCj4gICAg IDwhLS0NCj4gICAgICAgICAgSmV0dHkncyBob21lIGRpcmVjdG9yeQ0KPg0KPiAgICAgICAgICBD b25maWd1cmUgSmV0dHkncyBob21lIGRpcmVjdG9yeS4gIFRoaXMgaXMgdXNlZnVsIGlmIEpldHR5 J3MNCm9yaWdpbmFsDQo+ICAgICAgICAgIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXJlIHVzZWQuIElm IHRoZSB2YWx1ZSBiZWdpbnMgd2l0aA0KIiR7YXBwLWhvbWV9IiwNCj4gICAgICAgICAgaXQgd2ls bCBiZSBwcmVmaXhlZCB3aXRoIHRoaXMgY29tcG9uZW50cydzIGhvbWUgZGlyZWN0b3J5Lg0KPiAg ICAgIC0tPg0KPiAgICAgPCEtLTxqZXR0eS1ob21lPiR7YXBwLWhvbWV9PC9qZXR0eS1ob21lPi0t Pg0KPg0KPiAgICAgPCEtLQ0KPiAgICAgICAgICBKZXR0eSdzIGNvbmZpZ3VyYXRpb24gZmlsZQ0K Pg0KPiAgICAgICAgICBJbmNsdWRlIGFuIGV4dGVybmFsIEpldHR5IGNvbmZpZ3VyYXRpb24gZmls ZS4gVGhpcyBmaWxlIG11c3QNCmZvbGxvdw0KPiAgICAgICAgICBKZXR0eSdzIG93biBjb25maWd1 cmF0aW9uIGZvcm1hdC4gSWYgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZQ0KYmVnaW5zIHdpdGgNCj4g ICAgICAgICAgIiR7YXBwLWhvbWV9IiwgaXQgd2lsbCBiZSBwcmVmaXhlZCB3aXRoIHRoaXMgY29t cG9uZW50J3MgaG9tZQ0KZGlyZWN0b3J5Lg0KPiAgICAgICAgICBOb3RlIHRoYXQgd2ViIGFyY2hp dmVzIGFuZCBhcmNoaXZlIGRpcmVjdG9yaWVzIGRlZmluZWQgaW4gSmV0dHkncw0Kb3duDQo+ICAg ICAgICAgIGNvbmZpZ3VyYXRpb24gd2lsbCBub3QgYmUgaGFuZGxlZCBieSBKZXJ2bGV0Lg0KPiAg ICAgIC0tPg0KPg0KPCEtLTxqZXR0eS1jb25maWctZmlsZT4ke2FwcC1ob21lfS9ldGMvamV0dHku eG1sPC9qZXR0eS1jb25maWctZmlsZT4tLT4NCj4NCj4gICAgIDwhLS0NCj4gICAgICAgICAgSmV0 dHkncyBjb25maWd1cmF0aW9uDQo+DQo+ICAgICAgICAgIElmIG5vIGpldHR5LWNvbmZpZy1maWxl IGVsZW1lbnQgZXhpc3RzLCBKZXR0eSBjYW4gYmUgY29uZmlndXJlZA0Kd2l0aA0KPiAgICAgICAg ICBhbiBleHRlcm5hbCBjb25maWd1cmF0aW9uIGluc2lkZSB0aGUgZm9sbG93aW5nIGVsZW1lbnQu IE5vdGUgdGhhdA0KdGhlDQo+ICAgICAgICAgIGNvbmZpZ3VyYXRpb24gYWx3YXlzIGJlZ2lucyB3 aXRoIGEgPENvbmZpZ3VyZT4gZWxlbWVudCBhbmQgbXVzdA0KZm9sbG93DQo+ICAgICAgICAgIEpl dHR5J3Mgb3duIGNvbmZpZ3VyYXRpb24gZm9ybWF0LiBJbiBjYXNlIGl0IGluY2x1ZGVzIG5lc3Rl ZCBYTUwNCmRhdGENCj4gICAgICAgICAgeW91IHdpbGwgaGF2ZSB0byB3cmFwIHRoZSBjb25maWd1 cmF0aW9uIHdpdGhpbiBhIDwhW0NEQVRBWw0KLi4uLi4gXV0+DQo+ICAgICAgICAgIGVsZW1lbnQu IEFsc28gbm90ZSB0aGF0IHdlYiBhcmNoaXZlcyBhbmQgYXJjaGl2ZSBkaXJlY3Rvcmllcw0KZGVm aW5lZA0KPiAgICAgICAgICBpbiBKZXR0eSdzIG93biBjb25maWd1cmF0aW9uIHdpbGwgbm90IGJl IGhhbmRsZWQgYnkgSmVydmxldC4NCj4gICAgICAtLT4NCj4gICAgIDwhLS08amV0dHktY29uZmln PjwvamV0dHktY29uZmlnPi0tPg0KPiAgIDwvamVydmxldC1qZXR0eT4NCj4gPC9jb25maWc+DQo+ DQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLS0tLQ0KDQoNCj4gSW5kZXg6DQpzYW5kYm94L2pl cnZsZXQvamVydmxldC1qZXR0eS9zcmMvamF2YS9vcmcvamNvbXBvbmVudC9qZXJ2bGV0L2Jsb2Nr cy9qZXR0eS9QDQppY29KZXR0eUplcnZsZXQuamF2YQ0KPiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IFJDUyBmaWxl Og0KL2N2c3Jvb3Qvc3BpY2Uvc3BpY2Uvc2FuZGJveC9qZXJ2bGV0L2plcnZsZXQtamV0dHkvc3Jj L2phdmEvb3JnL2pjb21wb25lbnQvag0KZXJ2bGV0L2Jsb2Nrcy9qZXR0eS9QaWNvSmV0dHlKZXJ2 bGV0LmphdmEsdg0KPiByZXRyaWV2aW5nIHJldmlzaW9uIDEuMw0KPiBkaWZmIC11IC1yMS4zIFBp Y29KZXR0eUplcnZsZXQuamF2YQ0KPiAtLS0NCnNhbmRib3gvamVydmxldC9qZXJ2bGV0LWpldHR5 L3NyYy9qYXZhL29yZy9qY29tcG9uZW50L2plcnZsZXQvYmxvY2tzL2pldHR5L1ANCmljb0pldHR5 SmVydmxldC5qYXZhIDYgTm92IDIwMDMgMjI6MDY6MDMgLTAwMDAgMS4zDQo+ICsrKw0Kc2FuZGJv eC9qZXJ2bGV0L2plcnZsZXQtamV0dHkvc3JjL2phdmEvb3JnL2pjb21wb25lbnQvamVydmxldC9i bG9ja3MvamV0dHkvUA0KaWNvSmV0dHlKZXJ2bGV0LmphdmEgMTEgTm92IDIwMDMgMDY6Mzk6NDcg LTAwMDANCj4gQEAgLTkzLDcgKzkzLDcgQEANCj4gICAgICBwdWJsaWMgUGljb0pldHR5SmVydmxl dChKZXJ2bGV0Q29uZmlnIGNvbmZpZywgSmVydmxldE1vbml0b3IgbW9uaXRvciwNCk11dGFibGVQ aWNvQ29udGFpbmVyIHBhcmVudENvbnRhaW5lciwNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWxlIGFwcFJvb3REaXIsIFJlcXVlc3RMb2dnZXIgcmVxdWVzdExvZ2dlciwNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMb2dTaW5rIGxvZ1NpbmspIHRocm93cyBVbmtub3du SG9zdEV4Y2VwdGlvbg0Kew0KPiAtICAgICAgICBzdXBlci5jb25maWcgPSBjb25maWc7DQo+ICsg ICAgICAgIHN1cGVyLm1fY29uZmlnID0gY29uZmlnOw0KPiAgICAgICAgICB0aGlzLm1vbml0b3Ig PSBtb25pdG9yOw0KPiAgICAgICAgICB0aGlzLmFwcFJvb3REaXIgPSBhcHBSb290RGlyOw0KPiAg ICAgICAgICB0aGlzLmxvZ1NpbmsgPSBsb2dTaW5rOw0KPiBAQCAtMTQ2LDcgKzE0Niw3IEBADQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YXRoVG9XZWJBcHBGb2xkZXIsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBqZXJ2bGV0Q29udGV4dCwNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcFJvb3REaXIsDQo+IC0NCmNv bmZpZy5nZXRFeHRyYWN0V2FyRmlsZSgpICk7DQo+ICsNCm1fY29uZmlnLmdldEV4dHJhY3RXYXJG aWxlKCkgKTsNCj4gICAgICAgICAgICAgIG1fd2ViY29udGV4dHMucHV0KCBjb250ZXh0LCBob2xk ZXIgKTsNCj4gICAgICAgICAgfQ0KPiAgICAgICAgICBjYXRjaCggRXhjZXB0aW9uIGUgKQ0KPiBA QCAtMjY2LDIwICsyNjYsMTcgQEANCj4NCj4gICAgICAgICAgLy9TZXQgdGhlIGNvbnRleHQgY2xh c3Nsb2FkZXIgYmVjYXVzZSB0aGUgY3VycmVudCBjbGFzc2xvYWRlcg0Kd2lsbCBiZSB0aGF0IG9m IHRoZQ0KPiAgICAgICAgICBUaHJlYWQuY3VycmVudFRocmVhZCgpLnNldENvbnRleHRDbGFzc0xv YWRlcigNCmdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKSApOw0KPiAtDQo+ICAgICAgICAgIHRy eQ0KPiAgICAgICAgICB7DQo+IC0gICAgICAgICAgICBtX3NlcnZlci5hZGRDb250ZXh0KCBjb25m aWcuZ2V0SG9zdE5hbWUoKSwgaG9sZGVyLmNyZWF0ZSgpICk7DQo+IC0NCj4gLSAgICAgICAgICAg IG1vbml0b3IuZGVwbG95aW5nQ29udGV4dCh0aGlzLmdldENsYXNzKCksIGNvbnRleHQsDQpob2xk ZXIuZ2V0V2ViYXBwVXJsKCksIGNvbmZpZy5nZXRIb3N0TmFtZSgpKTsNCj4gLQ0KPiArICAgICAg ICAgICAgbV9zZXJ2ZXIuYWRkQ29udGV4dCggbV9jb25maWcuZ2V0SG9zdE5hbWUoKSwNCmhvbGRl ci5jcmVhdGUoKSApOw0KPiArICAgICAgICAgICAgbW9uaXRvci5kZXBsb3lpbmdDb250ZXh0KCB0 aGlzLmdldENsYXNzKCksIGNvbnRleHQsDQpob2xkZXIuZ2V0V2ViYXBwVXJsKCksDQo+ICsgICAg ICAgICAgICAgIG1fY29uZmlnLmdldEhvc3ROYW1lKCkgKTsNCj4gICAgICAgICAgICAgIGhvbGRl ci5zdGFydCgpOw0KPiAgICAgICAgICB9DQo+ICAgICAgICAgIGNhdGNoKCBFeGNlcHRpb24gZSAp DQo+ICAgICAgICAgIHsNCj4gLQ0KPiAtICAgICAgICAgICAgbW9uaXRvci5kZXBsb3lpbmdFeGNl cHRpb24odGhpcy5nZXRDbGFzcygpLCBjb250ZXh0LA0KaG9sZGVyLmdldFdlYmFwcFVybCgpLCBj b25maWcuZ2V0SG9zdE5hbWUoKSwgZSk7DQo+IC0NCj4gKyAgICAgICAgICAgIG1vbml0b3IuZGVw bG95aW5nRXhjZXB0aW9uKHRoaXMuZ2V0Q2xhc3MoKSwgY29udGV4dCwNCmhvbGRlci5nZXRXZWJh cHBVcmwoKSwNCj4gKyAgICAgICAgICAgICAgbV9jb25maWcuZ2V0SG9zdE5hbWUoKSwgZSk7DQo+ ICAgICAgICAgIH0NCj4gICAgICB9DQo+DQo+DQoNCg== ------------------------------------------------------- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/