|
From: <jue...@we...> - 2003-06-02 11:51:30
|
Um9kLCBldmVyeW9uZSwNCg0KSSd2ZSBqdXN0IGFuYWx5emVkIGV4aXN0aW5nIFNwcmluZyBtZWNo YW5pc21zIGZvciBhdXRob3JpemF0aW9uIGNoZWNrcy4NCg0KTGV0J3MgYXNzdW1lIGEgc2ltcGxl IGxvZ2luIGNhc2U6IEFuIGFwcGxpY2F0aW9uIHVzZXMgYSBMb2dpbkNvbnRyb2xsZXIgbWFwcGVk IHRvICIvbG9naW4iLCBkaXNwbGF5aW5nIGEgbG9naW4gZm9ybSwgcGVyZm9ybWluZyBjdXN0b20g YXV0aGVudGljYXRpb24gaW4gaXRzIHBlcmZvcm1TdWJtaXQgaW1wbGVtZW50YXRpb24sIGFuZCBy ZWRpcmVjdGluZyB0byBzb21lIG1haW4gbWVudSBvbiBzdWNjZXNzZnVsIHN1Ym1pdC4gSW4gdGhl IGNvdXJzZSBvZiB0aGUgbGF0dGVyLCBpdCBhZGRzIGFuIGF0dHJpYnV0ZSByZXByZXNlbnRpbmcg dGhlIGN1cnJlbnQgdXNlcidzIHNldHRpbmdzIHRvIHRoZSBzZXNzaW9uLCBtYXliZSBldmVuIGp1 c3QgYSAibG9nZ2VkSW4iIHdpdGggdmFsdWUgQm9vbGVhbi5UUlVFIHRvIG1hcmsgdGhlIHNlc3Np b24gYXMgbG9nZ2VkIGluLiBBIHBzZXVkbyBleGFtcGxlIHVzaW5nIEFic3RyYWN0Rm9ybUNvbnRy b2xsZXIgKG9mIGNvdXJzZSwgU2ltcGxlRm9ybUNvbnRyb2xsZXIgd291bGQgZml0IHRvbywgbm90 IGxldmVyYWdpbmcgc3VjY2Vzc1ZpZXcgdGhvdWdoKToNCg0KcHVibGljIGNsYXNzIExvZ2luQ29u dHJvbGxlciBleHRlbmRzIEFic3RyYWN0Rm9ybUNvbnRyb2xsZXIgew0KCXB1YmxpYyBMb2dpbkNv bnRyb2xsZXIoKSB7DQoJCXNldENvbW1hbmRDbGFzcyhMb2dpbkZvcm0uY2xhc3MpOw0KCQlzZXRC ZWFuTmFtZSgibG9naW5Gb3JtIik7DQoJfQ0KCXByb3RlY3RlZCBNb2RlbEFuZFZpZXcgc2hvd0Zv cm0oSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9u c2UsIEJpbmRFeGNlcHRpb24gZXJyb3JzKSB7DQoJCXJldHVybiBzaG93Rm9ybShyZXF1ZXN0LCBl cnJvcnMsICJsb2dpbkZvcm1WaWV3Iik7DQoJfQ0KCXByb3RlY3RlZCBNb2RlbEFuZFZpZXcgcHJv Y2Vzc1N1Ym1pdChIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25z ZSByZXNwb25zZSwgT2JqZWN0IGNvbW1hbmQsIEJpbmRFeGNlcHRpb24gZXJyb3JzKSB7DQoJCUxv Z2luRm9ybSBsb2dpbkZvcm0gPSAoTG9naW5Gb3JtKSBjb21tYW5kOw0KCQlpZiAobG9naW5TZXJ2 aWNlLmxvZ2luKGxvZ2luRm9ybS5nZXRVc2VybmFtZSgpLCBsb2dpbkZvcm0uZ2V0UGFzc3dvcmQo KSkpIHsNCgkJCXJlcXVlc3QuZ2V0U2Vzc2lvbigpLnNldEF0dHJpYnV0ZSgibG9nZ2VkSW4iLCBC b29sZWFuLlRSVUUpOw0KCQkJcmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCIvbWFpbm1lbnUiKTsNCgkJ CXJldHVybiBudWxsOw0KCQl9DQoJCWVsc2Ugew0KCQkJcmV0dXJuIHNob3dGb3JtKHJlcXVlc3Qs IHJlc3BvbnNlLCBlcnJvcnMpOw0KCQl9DQoJfQ0KCXB1YmxpYyBzdGF0aWMgY2xhc3MgTG9naW5G b3JtIHsNCgkJcHJpdmF0ZSBTdHJpbmcgdXNlcm5hbWU7DQoJCXByaXZhdGUgU3RyaW5nIHBhc3N3 b3JkOw0KCQkvLyBnZXR0ZXJzL3NldHRlcnMgZm9sbG93aW5nDQoJfQ0KfQ0KDQpTbyBob3cgdG8g cGVyZm9ybSBhdXRoZW50aWNhdGlvbiBjaGVja3MgZm9yIGFsbCBvdGhlciBjb250cm9sbGVycz8g TGV0J3MgYXNzdW1lIHRoYXQgYWxsIG9mIHRoZW0gcmVxdWlyZSBhIHN1Y2Nlc3NmdWwgbG9naW4s IGFuZCBzaG91bGQgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIGNvbnRyb2xsZXIgaWYgdGhlIHVzZXIg aXNuJ3QgbG9nZ2VkIGluLiBBbmQgd2UnZCBsaWtlIHRvIGF2b2lkIGhhdmluZyB0byBjaGVjayB0 aGUgc2Vzc2lvbiBhdHRyaWJ1dGUgaW4gZXZlcnkgY29udHJvbGxlciBpbXBsZW1lbnRhdGlvbi4g VGhlcmUgYXJlIG51bWVyb3VzIGV4aXN0aW5nIGhvb2tzIGZvciB0aGlzLCBhbGwgb2YgdGhlbSBs ZXR0aW5nIG9ubHkgTG9naW5Db250cm9sbGVyIHRocm91Z2ggaWYgdGhlICJsb2dnZWRJbiIgc2Vz c2lvbiBhdHRyaWJ1dGUgaXNuJ3QgYXZhaWxhYmxlOg0KDQoxLiB1c2luZyBhIHN0YW5kYXJkIFNl cnZsZXQgZmlsdGVyLCByZWRpcmVjdGluZyB0byBsb2dpbiAob3Igc2VuZGluZyBhbiBlcnJvcikg aWYgbm90IGF1dGhvcml6ZWQ6DQoNCnB1YmxpYyBjbGFzcyBMb2dpbkhhbmRsZXJGaWx0ZXIgaW1w bGVtZW50cyBGaWx0ZXIgew0KCXB1YmxpYyB2b2lkIGRvRmlsdGVyKFNlcnZsZXRSZXF1ZXN0IHJl cXVlc3QsIFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSwgRmlsdGVyQ2hhaW4gZmlsdGVyQ2hhaW4p IHsNCgkJSHR0cFNlcnZsZXRSZXF1ZXN0IGh0dHBSZXF1ZXN0ID0gKEh0dHBTZXJ2bGV0UmVxdWVz dCkgcmVxdWVzdDsNCgkJSHR0cFNlcnZsZXRSZXNwb25zZSBodHRwUmVzcG9uc2UgPSAoSHR0cFNl cnZsZXRSZXNwb25zZSkgcmVzcG9uc2U7DQoJCWlmIChodHRwUmVxdWVzdC5nZXRSZXF1ZXN0VVJJ KCkuZXF1YWxzKCIvbG9naW4iKSB8fCBXZWJVdGlscy5nZXRTZXNzaW9uQXR0cmlidXRlKGh0dHBS ZXF1ZXN0LCAibG9nZ2VkSW4iKSAhPSBudWxsKSB7DQoJCQlmaWx0ZXJDaGFpbi5kb0ZpbHRlcihy ZXF1ZXN0LCByZXNwb25zZSk7DQoJCX0NCgkJZWxzZSB7DQoJCQlodHRwUmVzcG9uc2Uuc2VuZFJl ZGlyZWN0KCIvbG9naW4iKTsNCgkJCS8vIGh0dHBSZXNwb25zZS5zZW5kRXJyb3IoSHR0cFNlcnZs ZXRSZXNwb25zZS5TQ19GT1JCSURERU4pOw0KCQl9DQoJfQ0KfQ0KDQoyLiB1c2luZyBhIGN1c3Rv bSBIYW5kbGVyQWRhcHRlciBpbXBsZW1lbnRhdGlvbiwgcmVkaXJlY3RpbmcgdG8gbG9naW4gKG9y IHNlbmRpbmcgYW4gZXJyb3IpIGlmIG5vdCBhdXRob3JpemVkOg0KDQpwdWJsaWMgY2xhc3MgTG9n aW5IYW5kbGVyQWRhcHRlciBleHRlbmRzIFNpbXBsZUNvbnRyb2xsZXJIYW5kbGVyQWRhcHRlciB7 DQoJcHVibGljIE1vZGVsQW5kVmlldyBoYW5kbGUoSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3Qs IEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UsIE9iamVjdCBoYW5kbGVyKSB7DQoJCWlmICho YW5kbGVyIGluc3RhbmNlb2YgTG9naW5Db250cm9sbGVyIHx8IFdlYlV0aWxzLmdldFNlc3Npb25B dHRyaWJ1dGUocmVxdWVzdCwgImxvZ2dlZEluIikgIT0gbnVsbCkgew0KCQkJcmV0dXJuIHN1cGVy LmhhbmRsZShyZXF1ZXN0LCByZXNwb25zZSwgaGFuZGxlcik7DQoJCX0NCgkJZWxzZSB7DQoJCQly ZXNwb25zZS5zZW5kUmVkaXJlY3QoIi9sb2dpbiIpOw0KCQkJLy8gcmVzcG9uc2Uuc2VuZEVycm9y KEh0dHBTZXJ2bGV0UmVzcG9uc2UuU0NfRk9SQklEREVOKTsNCgkJCXJldHVybiBudWxsOw0KCQl9 DQoJfQ0KfQ0KDQozLiB1c2luZyBhIGN1c3RvbSBIYW5kbGVyTWFwcGluZyBpbXBsZW1lbnRhdGlv biwgcmV0dXJuaW5nIHRoZSBsb2dpbiBoYW5kbGVyIGlmIG5vdCBhdXRob3JpemVkIChpbnN0ZWFk IG9mIHVzaW5nIGxvb2t1cEhhbmRsZXIgZWxzZSwgb25lIGNvdWxkIGFsc28gc2V0IGEgZGVmYXVs dCBoYW5kbGVyIGZvciB0aGUgbWFwcGluZyBhbmQgcmVseSBvbiB0aGUgZmFsbGJhY2sgdG8gaXQp Og0KDQpwdWJsaWMgY2xhc3MgTG9naW5IYW5kbGVyTWFwcGluZyBleHRlbmRzIFNpbXBsZVVybEhh bmRsZXJNYXBwaW5nIHsNCglwcm90ZWN0ZWQgT2JqZWN0IGdldEhhbmRsZXJJbnRlcm5hbChIdHRw U2VydmxldFJlcXVlc3QgcmVxdWVzdCkgew0KCQlPYmplY3QgaGFuZGxlciA9IHN1cGVyLmdldEhh bmRsZXJJbnRlcm5hbChyZXF1ZXN0KTsNCgkJaWYgKGhhbmRsZXIgaW5zdGFuY2VvZiBMb2dpbkNv bnRyb2xsZXIgfHwgV2ViVXRpbHMuZ2V0U2Vzc2lvbkF0dHJpYnV0ZShyZXF1ZXN0LCAibG9nZ2Vk SW4iKSAhPSBudWxsKSB7DQoJCQlyZXR1cm4gaGFuZGxlcjsNCgkJfQ0KCQllbHNlIHsNCgkJCXJl dHVybiBsb29rdXBIYW5kbGVyKCIvbG9naW4iKTsNCgkJfQ0KCX0NCn0NCg0KVGhlIFNlcnZsZXQg ZmlsdGVyIGhhcyB0aGUgYWR2YW50YWdlIG9mIHNwYW5uaW5nIGFsbCBDb250cm9sbGVyU2Vydmxl dHMsIHNvIHRoZSBhdXRob3JpemF0aW9uIGNoZWNrIGRvZXNuJ3QgaGF2ZSB0byBiZSByZWdpc3Rl cmVkIGluIGFsbCBDb250cm9sbGVyU2VydmxldHMgb2YgYW4gYXBwbGljYXRpb24gdGhhdCBqdXN0 IGhhcyBvbmUgc2luZ2xlIGNlbnRyYWwgbG9naW4uIEl0IGNhbid0IGNoZWNrIGZvciB0aGUgdHlw ZSBvZiBjb250cm9sbGVyIHRob3VnaCwgdGh1cyBpdCBoYXMgdG8gbWF0Y2ggdGhlIGxvZ2luIFVS SS4gTG9naW5IYW5kbGVyQWRhcHRlciBjYW4gY2hlY2sgdGhlIGNvbnRyb2xsZXIgdHlwZSwgYnV0 IHdvdWxkIGhhdmUgdG8gYmUgcmVnaXN0ZXJlZCBpbiBlYWNoIENvbnRyb2xsZXJTZXJ2bGV0LCB1 c2luZyBhIHJlZGlyZWN0IGJlY2F1c2Ugb25seSBvbmUgb2YgdGhlIENvbnRyb2xsZXJTZXJ2bGV0 cyBmZWF0dXJlcyBMb2dpbkNvbnRyb2xsZXIgaXRzZWxmLiBMb2dpbkhhbmRsZXJNYXBwaW5nIHdp bGwgb25seSB3b3JrIHdpdGggYSBzaW5nbGUgQ29udHJvbGxlclNlcnZsZXQsIGJ1dCBpdCBjYW4g cmV0dXJuIHRoZSBsb2NhbCBMb2dpbkNvbnRyb2xsZXIgaW5zdGFuY2UgaWYgdGhlIHVzZXIgaXNu J3QgYXV0aG9yaXplZC4NCg0KQSB3ZWIgYXV0aGVudGljYXRpb24gQU9QIGludGVyY2VwdG9yIHdv dWxkIGJlIGFibGUgdG8gcGVyZm9ybSB0aGUgc2FtZSBzdHJhdGVneSBvbiBDb250cm9sbGVyIGlt cGxlbWVudGF0aW9ucywgYmVpbmcgdGlnaHRseSBjb3VwbGVkIHRvIHRoZSBwYXJhbWV0ZXIgdHlw ZXMgb2YgaGFuZGxlUmVxdWVzdCB0aG91Z2guIEEgZ2VuZXJpYyBhdXRoZW50aWNhdGlvbiBpbnRl cmNlcHRvciBmb3IgYW55IGJlYW5zIHdvdWxkIGhhdmUgdG8gdXNlIHNvbWUgVGhyZWFkTG9jYWwg Y3JlZGVudGlhbHMsIGJ1dCB3aG8gaXMgcmVzcG9uc2libGUgZm9yIGFkZGluZyB0aGVtIG9uIGV2 ZXJ5IHJlcXVlc3Q/IEFuZCB3aXRoIHRoZSBjdXJyZW50IGludGVyY2VwdG9yIGRlY2xhcmF0aW9u IGFwcHJvYWNoLCBvbmUgaGFzIHRvIGRlZmluZSBib3RoIGEgcHJveHkgYW5kIGEgdGFyZ2V0IGZv ciBlYWNoIGFuZCBldmVyeSBjb250cm9sbGVyIGluIHRoZSB3ZWIgYXBwLiBUaGF0IGRvZXNuJ3Qg c2VlbSB2ZXJ5IGNvbWZvcnRhYmxlIHRvIG1lLCBzbyBJJ2QgcHJlZmVyIG9uZSBvZiB0aGUgYWJv dmUgc29sdXRpb25zLg0KDQpJJ3ZlIGFsc28gY29uc2lkZXJlZCBtb2RpZnlpbmcgQ29udHJvbGxl clNlcnZsZXQgdG8gaW50cm9kdWNlIEhhbmRsZXJJbnRlcmNlcHRvcnMgdGhhdCB3b3VsZCBnZXQg YXBwbGllZCBiZWZvcmUgaW52b2tpbmcgYSBoYW5kbGVyLiBCdXQgZWZmZWN0aXZlbHksIHRoZSBt ZXRob2Qgc2lnbmF0dXJlIHdvdWxkIGV4YWN0bHkgbG9vayBsaWtlIEhhbmRsZXJBZGFwdGVyLmhh bmRsZS4gU28gSSd2ZSBkZWNpZGVkIHRvIHNob3cgZXh0ZW5kaW5nIFNpbXBsZUNvbnRyb2xsZXJI YW5kbGVyQWRhcHRlciBhYm92ZS4gSSdtIGF3YXJlIHRoYXQgdGhpcyB3aWRlbnMgSGFuZGxlckFk YXB0ZXIncyByb2xlIChjaGVja2luZyBoYW5kbGVyIHR5cGUgKyBhdXRob3JpemF0aW9uKSwgYnV0 IGR1cGxpY2F0aW5nIHRoZSBoYW5kbGUgbWV0aG9kIHNpZ25hdHVyZSB2aWEgYSBIYW5kbGVySW50 ZXJjZXB0b3IgKHRoZW4ganVzdCByZXNwb25zaWJsZSBmb3IgYXV0aG9yaXphdGlvbikgZG9lc24n dCBzZWVtIGlkZWFsIHRvby4NCg0KT2YgY291cnNlLCBtb3JlIHNvcGhpc3RpY2F0ZWQgYXV0aG9y aXphdGlvbiBjYW4gYmUgaW1wbGVtZW50ZWQgdmlhIGEgdXNlciBvYmplY3QgYXMgc2Vzc2lvbiBh dHRyaWJ1dGUuIEEgY3VzdG9tIGF1dGhvcml6YXRpb24gY2hlY2sgY2FuIHRoZW4gY2hlY2sgdGhl IHVzZXIncyByb2xlLCByaWdodHMsIG9yIHdoYXRldmVyLiBUaGUgcXVlc3Rpb24gaXMsIHdoZXJl IHRvIGRyYXcgdGhlIGxpbmUgdG8gY2hlY2tpbmcgd2l0aGluIHRoZSBjb250cm9sbGVyIGltcGxl bWVudGF0aW9uPyBGb3IgZXhhbXBsZSwgYW4gYWN0dWFsIGltcGxlbWVudGF0aW9uIG1pZ2h0IHBy b3ZpZGUgYW4gYWRhcHRlZCBtb2RlbCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgdXNlcidzIHJp Z2h0cywgbm90IGJlaW5nIG9ydGhvZ29uYWwgYW55bW9yZS4gQnV0IGluIG1hbnkgY2FzZXMsIG9u ZSB3aWxsIHNpbXBseSB3YW50IHRvIGZvcmJpZCBhY2Nlc3MgdG8gY2VydGFpbiByZXNvdXJjZXMg Y29tcGxldGVseSB3aXRob3V0IGxvZ2luLg0KDQpJJ20gZWFnZXIgdG8gaGVhciBvcGluaW9ucyBv biB0aGlzLiBIb3cgZG9lcyBldmVyeWJvZHkgc29sdmUgbG9naW4gbmVlZHMgY3VycmVudGx5PyBB bnlvbmUgdXNpbmcgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCB3YXkgdGhhbiB0aGUgb25lcyBhYm92 ZT8gQXQgd2VyazNBVCwgd2UndmUgYWRvcHRlZCB0aGUgZmlsdGVyIGFwcHJvYWNoIGJlY2F1c2Ug d2UgaGF2ZSBudW1lcm91cyBDb250cm9sbGVyU2VydmxldHMgd2l0aCBvbmUgY2VudHJhbCBsb2dp bi4NCg0KUmVnYXJkcywNCkp1ZXJnZW4NCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K RnJvbTogUm9kIEpvaG5zb24gW21haWx0bzpyb2Quam9obnNvbkBpbnRlcmZhY2UyMS5jb21dDQpT ZW50OiBUdWVzZGF5LCBNYXkgMjcsIDIwMDMgMTA6NDggQU0NClRvOiBqw7xyZ2VuIGjDtmxsZXIg W3dlcmszQVRdOw0Kc3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQNClN1YmplY3Q6IFJlOiBbU3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blcl0gQXV0aGVudGljYXRp b24gYW5kDQphdXRob3JpemF0aW9uDQoNCg0KSSBhZ3JlZSwgbWF5YmUgU3ByaW5nIHNob3VsZCBv ZmZlciB0aGlzLg0KDQpTcHJpbmcncyBhbmNlc3RvciwgdGhlIE1WQyBmcmFtZXdvcmsgSSB3cm90 ZSBmb3IgRlQgZ3JvdXAsIGRpZA0KYXV0aGVudGljYXRpb24gYW5kIGl0IHdvcmtlZCB3ZWxsLg0K DQpXaGF0IGFib3V0IGFkZGluZyBhbiBhdXRoZW50aWNhdGlvbiBpbnRlcmNlcHRvcj8gSSB0aGlu ayBhdXRoZW50aWNhdGlvbiBpcw0KYXJndWFibGUgb3J0aG9nb25hbCB0byB0aGUgYXBwIHByb3Bl ciwgaGVuY2UgYSBnb29kIGNhbmRpZGF0ZSBmb3IgQU9QLiBBcw0KYWxsIGNvbnRyb2xsZXJzIGlt cGxlbWVudCBhbiBpbnRlcmZhY2UsIHdlIGNhbiBlYXNpbHkgcHV0IGEgZ2xvYmFsDQppbnRlcmNl cHRvciBpbiBmcm9udCBvZiBhbGwgb2YgdGhlbS4NCg0KSSBhZ3JlZTogc3RhbmRhcmQgSjJFRSBh dXRoZW50aWNhdGlvbiBpcyBub3QgcmVhbGx5IHN0YW5kYXJkLCBhbmQganVzdA0KZG9lc24ndCBj dXQgdGhlIG11c3RhcmQgZm9yIG1vc3QgcmVhbCBhcHBzLg0KDQpUaGlzIGlzIG5vdCBzb21ldGhp bmcgd2Ugc2hvdWxkIGNvbnNpZGVyIGZvciAwLjgsIHRob3VnaCENCg0KUmVnYXJkcywNClJvZA0K |