|
From: <jue...@we...> - 2003-05-26 20:05:50
|
SmVhbi1QaWVycmUsDQogDQpJJ3ZlIGp1c3QgY29tbWl0dGVkIG15IHJld29ya2VkIHZlcnNpb24u DQogDQpUaGVyZSdzIG5vdyBhIFNvcnREZWZpbml0aW9uIGludGVyZmFjZSBpbiBjb20uaW50ZXJm YWNlMjEuYmVhbnMsIHdpdGggYSBNdXRhYmxlU29ydERlZmluaXRpb24gaW1wbGVtZW50YXRpb24u IFRoZSBzb3J0IG1ldGhvZHMgaGF2ZSBtb3ZlZCBmcm9tIEJlYW5VdGlscyB0byBQcm9wZXJ0eUNv bXBhcmF0b3IuDQogDQpQYWdlZExpc3RIb2xkZXIgaXMgcXVpdGUgc2ltaWxhciB0byBiZWZvcmUs IHRhcmdldHRlZCBhbiBpbW11dGFibGUgbGlzdHMsIGJ1dCB3aXRoIGJpbmRpbmctZnJpZW5kbHkg c29ydGluZyBzdXBwb3J0IHZpYSBTb3J0RGVmaW5pdGlvbi4gSSd2ZSB0dXJuZWQgUGFnZUxpc3RB dXRvSG9sZGVyIGludG8gUmVmcmVzaGFibGVQYWdlZExpc3RIb2xkZXIsIGFkZGluZyByZWZyZXNo aW5nIGZyb20gYSBzb3VyY2UgcHJvdmlkZXIgb24gY2hhbmdlZCBMb2NhbGUgb3IgZmlsdGVyLiBG aWx0ZXIgaXMgYSBnZW5lcmljIE9iamVjdCBwcm9wZXJ0eSBub3csIGFsbG93aW5nIGZvciBhbnkg ZmlsdGVyIHNldHRpbmdzIGJlaW5nIHBhc3NlZCB0aHJvdWdoIHRvIHRoZSByZXNwZWN0aXZlIHNv dXJjZSBwcm92aWRlci4NCiANCkknbGwgc2VuZCB0aGUgYWRhcHRlZCB2ZXJzaW9uIG9mIHlvdXIg ZXhhbXBsZSBhcHAgdG8gdGhlIGxpc3QgdG9tb3Jyb3cuIFRoZXJlIGhhdmVuJ3QgYmVlbiBtYW55 IGNoYW5nZXMgdG8gdGhlIGNvbnRyb2xsZXIgYW5kIHZpZXcsIGJ1dCB3aHkgZmlndXJlIG91dCB5 b3Vyc2VsZj8gOi0pDQogDQpSZWdhcmRzLA0KSnVlcmdlbg0KIA0KIA0KDQoJLS0tLS1VcnNwcsO8 bmdsaWNoZSBOYWNocmljaHQtLS0tLSANCglWb246IGpwLnBhd2xha0B0aXNjYWxpLmZyIFttYWls dG86anAucGF3bGFrQHRpc2NhbGkuZnJdIA0KCUdlc2VuZGV0OiBTbyAyNS4wNS4yMDAzIDE1OjA4 IA0KCUFuOiBqw7xyZ2VuIGjDtmxsZXIgW3dlcmszQVRdIA0KCUNjOiBzcHJpbmdmcmFtZXdvcmst ZGV2ZWxvcGVyIA0KCUJldHJlZmY6IFJlOiBbU3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blcl0gcGFn ZWQgbGlzdHMNCgkNCgkNCg0KCUhpIErDvHJnZW4sDQoJDQoJWW91ciBzdWdnZXN0cyBhcmUgdmVy eSB3ZWxjb21lLiBBcyB5b3UgaGF2ZSBhICBiZXR0ZXIga25vd2xlZGdlIG9iIHRoZSB3aG9sZSBT cHJpbmcgZnJhbWV3b3JrLCB5b3Ugc2VlbiBxdWlja2x5IGJldHRlciBpbnRlcmFjdGlvbiB1c2Uu IEkgYW0gbm90IGF0IGhvbWUsIEl0IHNlZW1zIHlvdSBhcmUgYWxyZWFkeSBtYWtpbmcgdGhlIGNo YW5nZS4gSWYgeW91IGV4cGV4dCBhbnl0aGluZyBmcm9tIG1lLCB0YWxrIG1lIGp1c3QgYWJvdXQu IA0KCQ0KCVJlZ2FyZHMsDQoJSmVhbi1QaWVycmUNCgkNCgktLS0tLS0tLS0tIEluaXRpYWwgSGVh ZGVyIC0tLS0tLS0tLS0tDQoJDQoJRnJvbSAgICAgIDogc3ByaW5nZnJhbWV3b3JrLWRldmVsb3Bl ci1hZG1pbkBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCglUbyAgICAgICAgICA6ICJKUCBQYXdsYWsi IDxqcC5wYXdsYWtAdGlzY2FsaS5mcj4sIlNwcmluZyBEZXZlbG9wZXJzIiA8c3ByaW5nZnJhbWV3 b3JrLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+DQoJQ2MgICAgICAgICAgOg0KCURh dGUgICAgICA6IFN1biwgMjUgTWF5IDIwMDMgMTQ6NDg6MzQgKzAyMDANCglTdWJqZWN0IDogUmU6 IFtTcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyXSBwYWdlZCBsaXN0cw0KCQ0KCUhpIEplYW4tUGll cnJlLA0KCQ0KCUJUVywgdGhlIHRlc3RzIGhhdmUgYWxsIHdvcmtlZCBmb3IgbWUgb24gRnJpZGF5 IC0gSSdsbCByZWNoZWNrIHRvbW9ycm93Lg0KCQ0KCVJlZ2FyZGluZyBQYWdlZExpc3RBdXRvSG9s ZGVyOiBJIGFwcHJlY2lhdGUgaXRzIGFkZGVkIGZ1bmN0aW9uYWxpdHkuIElmIEkgdW5kZXJzdGFu ZCBjb3JyZWN0bHksIGl0J3MgdGFyZ2V0dGVkIGF0IGVhc3kgdXNhZ2UgaW4gYSB3ZWIgY29udHJv bGxlci4gTXkgaW5pdGlhbCBQYWdlZExpc3RIb2xkZXIgd2FzIGp1c3QgYSBmaXJzdCB0YWtlLCBk cmF3biBmcm9tIGFuIGFwcGxpY2F0aW9uIHByb2plY3QuIEknbSB2ZXJ5IG11Y2ggZm9yIHdvcmtp bmcgYWxsIG9mIHRoaXMgaW50byBhIHJlZmluZWQgdmVyc2lvbiwgZXZlbiBiZWZvcmUgMC44LiBJ J2xsIHByb2JhYmx5IHVzZSBpdCBpbiBvdXIgYXBwbGljYXRpb24gcHJvamVjdCB0b28uDQoJDQoJ LS0tDQoJDQoJSSd2ZSBnb3Qgc29tZSBjb25jcmV0ZSBpc3N1ZXM6DQoJDQoJLSBHZW5lcmFsbHks IHdlIHNob3VsZCB0cnkgdG8gdXNlIGRhdGEgYmluZGluZyB3aGVyZXZlciBwb3NzaWJsZSwgdG8g a2VlcCB0aGUgbW9kZWwgYW5kIHRoZSBhY3Rpb25zIGFzIE9PIHJlc3AuIGJlYW4tc3R5bGUgYXMg cG9zc2libGUuIEknbSBub3QgYSBncmVhdCBmYW4gb2YgbWFudWFsIHBhcmFtZXRlciBwYXJzaW5n IChoYXZlIHVzZWQgaXQgZmFyIHRvbyBtYW55IHRpbWVzIG15c2VsZiksIGJlIGl0IGZyb20gdGhl IFNlcnZsZXRSZXF1ZXN0IG9yIGZyb20gYSBTdHJpbmctYmFzZWQgcGFyYW1ldGVyIG1hcC4gU3By aW5nJ3MgU2VydmxldFJlcXVlc3REYXRhQmluZGVyIGFsbG93cyBmb3IgdmVyeSBwb3dlcmZ1bCBi aW5kaW5nIG9mIHJlcXVlc3QgcGFyYW1ldGVycyB0byBiZWFuIGluc3RhbmNlcywgZXZlbiBvbmUg dG8gcmVxdWVzdCB0byBtdWx0aXBsZSBiZWFucy4gTWFudWFsIFN0cmluZyBwYXJhbWV0ZXIgZXZh bHVhdGlvbiBkb2Vzbid0IGJlbG9uZyBpbiBhIHByb3BlciBtb2RlbCBvYmplY3QsIElNTy4NCgkN CgktIGdldE1heERpc3BsYXlQYWdlcywgZ2V0Rmlyc3REaXNwbGF5UGFnZSwgZ2V0TGFzdERpc3Bs YXlQYWdlIHNob3VsZCBwcm9iYWJseSBiZSBjYWxsZWQgZ2V0TWF4TGlua2VkUGFnZXMsIGdldEZp cnN0TGlua2VkUGFnZSwgZ2V0TGFzdExpbmtlZFBhZ2UgLSBhcyB0aGV5IGFyZW4ndCByZWFsbHkg ZGlzcGxheWVkIHRoZW1zZWx2ZXMgYnV0IHJhdGhlciBqdXN0IGxpbmtlZCBmcm9tIHRoZSBjdXJy ZW50bHkgZGlzcGxheWVkIHBhZ2UuDQoJDQoJLSBJJ2QgbGlrZSB0byB0dXJuIHlvdXIgIlNvcnQi IGlubmVyIGNsYXNzIGludG8gYSBnZW5lcmljIGNvbS5pbnRlcmZhY2UyMS5iZWFucy5Tb3J0RGVm aW5pdGlvbiBpbnRlcmZhY2UsIGFuZCBvZmZlciBhbiBhY2NvbXBhbnlpbmcgQmVhblV0aWxzLnNv cnRCeVByb3BlcnR5KExpc3QsU29ydERlZmluaXRpb24pIG1ldGhvZC4gWW91ciBjdXJyZW50IFNv cnQgaW1wbGVtZW50YXRpb24gY291bGQgc2VydmUgYXMgRGVmYXVsdFNvcnREZWZpbml0aW9uIGlt cGxlbWVudGF0aW9uLg0KCQ0KCS0gQXMgeW91J3ZlIGFkZHJlc3NlZCB3aXRoIGV4dGVuZGVkSW5m bywgcmVsb2FkaW5nIGNhbiBkZXBlbmQgb24gdmFyaW91cyBzcGVjaWZpYyBwYXJhbWV0ZXJzLiBC dXQgZmlsdGVyaW5nIGNvdWxkIGJlIGJhc2VkIG5vdCBvbmx5IG9uIHBlci1maWVsZCBtYXRjaGlu ZyB2YWx1ZXMgYnV0IG9uIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZXRjLiBBIGdlbmVyaWMgImZpbHRl ciIgcHJvcGVydHkgb2YgdHlwZSBPYmplY3Qgd2lsbCBhbGxvdyB0aGUgY29udHJvbGxlciB0byBz dG9yZSBhIHN0YXRlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgZmlsdGVyIHNldHRp bmdzLCBjb21iaW5pbmcgeW91ciBmaWx0ZXJNYXAgYW5kIGV4dGVuZGVkSW5mbyBpbiBvbmUgZ2Vu ZXJpYyBPYmplY3QuIE5vdGUgdGhhdCBQYWdlZExpc3RIb2xkZXIgZG9lcyBub3QgYW5kIHNob3Vs ZCBub3QgbmVlZCB0byBrbm93IGFib3V0IHRoZSBzZW1hbnRpY3Mgb2YgImZpbHRlciIuDQoJDQoJ LSBTb21lIHByb3BlcnRpZXMgcmVwcmVzZW50IExpc3QgbWV0YSBkYXRhOiAic29ydCIgb2YgdHlw ZSBTb3J0RGVmaW5pdGlvbiwgImZpbHRlciIgb2YgdHlwZSBPYmplY3QsICJsb2NhbGUiIG9mIHR5 cGUgTG9jYWxlLiBUaGVzZSBjYW4gZWFzaWx5IGJlIGluY2x1ZGVkIGluIFBhZ2VkTGlzdEhvbGRl ciwganVzdCBsaWtlIHRoZSBsaW5rZWQgcGFnZXMgc3VwcG9ydCB0b28gKGluIHRoZSBlbmQsIGxl dCdzIG1lcmdlIFBhZ2VkTGlzdEhvbGRlciBhbmQgUGFnZWRMaXN0QXV0b0hvbGRlciAtIHdlIHBy b2JhYmx5IGRvbid0IG5lZWQgYm90aCkuIFBhZ2VkTGlzdFNvdXJjZVByb3ZpZGVyIHdvdWxkIGhh dmUgYSBnZW5lcmljIGxvYWRMaXN0KE9iamVjdCBGaWx0ZXIsIExvY2FsZSBsb2NhbGUpIHRoZW4u DQoJDQoJLSBQYWdlZExpc3RIb2xkZXIgcHJvcGVydGllcyBsaWtlIHBhZ2VTaXplLCBwYWdlTnIs IG1heExpbmtlZFBhZ2VzIHNob3VsZCBiZSBwb3B1bGF0ZWQgdmlhIGJpbmRpbmcgKHRoYXQncyBo b3cgbXkgaW5pdGlhbCB2ZXJzaW9uIHdhcyBtZWFudCB0byBiZSB1c2VkKS4gTGV0J3MgdHJlYXQg UGFnZWRMaXN0SG9sZGVyIGFzIGEgZm9ybSBiZWFuLCB3aXRoIHJlcXVlc3QgcGFyYW1ldGVycyBn ZXR0aW5nIGJvdW5kIHRvIGl0IG9uIGV2ZXJ5IHN1Ym1pdCAtIG5vIFN0cmluZyBwYXJhbWV0ZXIg cGFyc2luZywgbm8gSW50ZWdlci5wYXJzZUludC4gVGhlIHNhbWUgYXBwbGllcyB0byAic29ydCIg YW5kICJmaWx0ZXIiOiBBIGNvbnRyb2xsZXIgY2FuIHNldCBzcGVjaWZpYyBpbnN0YW5jZXMgdG8g dGhlIFBhZ2VkTGlzdEhvbGRlciBpbnN0YW5jZSBvbiBzZXR1cC4gVGhlc2UgaW5zdGFuY2VzIGNh biBiZSBwb3B1bGF0ZWQgdmlhIHRoZSBzYW1lIGJpbmRpbmcgc3RlcCwgdXNpbmcgbmVzdGVkIHBh dGhzIGxpa2UgInNvcnQuYXNjZW5kaW5nIiBldGMuDQoJDQoJLSBQYWdlZExpc3RIb2xkZXIncyBy ZWZyZXNoIG1ldGhvZCBzaG91bGQgZG8gZXF1YWxzIGNoZWNrcyBvbiAic29ydCIgYW5kICJmaWx0 ZXIiICh1c2luZyBzdG9yZWQgY29waWVzIGZyb20gdGhlIGxhc3QgcmVmcmVzaCksIGFuZCBwZXJm b3JtIHJlc29ydGluZyByZXNwLiByZWxvYWRpbmcgaWYgbmVjZXNzYXJ5IChzZXR0aW5nIGN1cnJl bnQgdmVyc2lvbnMgYXMgc3RvcmVkIGNvcGllcykuIFRodXMsIGEgY29udHJvbGxlciBzaG91bGQg aW52b2tlIHJlZnJlc2ggYWZ0ZXIgZWFjaCBiZWFuIHBvcHVsYXRpb24sIGkuZS4gb24gZWFjaCBy ZXF1ZXN0LiBBIHJlYWwgcmVmcmVzaCBjYW4gYmUgZW5mb3JjZWQgYnkgYSByZXNwZWN0aXZlIHJl cXVlc3QgcGFyYW1ldGVyLCBidXQgdGhpcyBzaG91bGQgYmUgY2hlY2tlZCBieSB0aGUgc3BlY2lm aWMgd2ViIGNvbnRyb2xsZXIsIHRyaWdnZXJpbmcgYSByZWZyZXNoKGJvb2xlYW4gZW5mb3JjZSkg Y2FsbCB3aXRoIHRydWUgdGhlbi4NCgkNCgktIEFsbCB0aGluZ3MgY29uc2lkZXJlZCwgdGhlIHVu aWZpZWQgUGFnZWRMaXN0SG9sZGVyIHdpbGwgbm90IG5lZWQgdG8ga25vdyBhbnl0aGluZyBhYm91 dCByZXF1ZXN0IHBhcmFtZXRlcnMuIFBhZ2VkTGlzdEF1dG9Ib2xkZXIncyB4eHhQYXJhbSBwcm9w ZXJ0aWVzIGFuZCBpdHMgcXVpdGUgbGVuZ3RoeSBleGVjdXRlIG1ldGhvZCBhcmVuJ3QgbmVjZXNz YXJ5IHRoZW4sIG1vc3Qgc3R1ZmYgY2FuIHdvcmsgdmlhIGRhdGEgYmluZGluZyBhbmQgcmVmcmVz aC4gSWYgb25lIHdhbnRzIHRvIHVzZSBkaWZmZXJlbnQgcmVxdWVzdCBwYXJhbWV0ZXJzLCBvbmUg Y2FuIGFsd2F5cyBwZXJmb3JtIG1hbnVhbCBwb3N0LWJpbmRpbmcsIGJ1dCB0aGUgYmVhbiBwcm9w ZXJ0eSBuYW1lcyBzaG91bGQgYmUgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBhcyBwYXJhbWV0ZXIg bmFtZXMgYW55d2F5LiBUaGUgYmluZGluZyBwYXRocyBtYXRjaCB0aGUgSlNUTCBFTCBleHByZXNz aW9ucyBuaWNlbHksIGxpa2UgInNvcnQuYXNjZW5kaW5nIi4NCgkNCgktLS0NCgkNCglBIGNvbnRy b2xsZXIgaW1wbGVtZW50YXRpb24gaXMgYXMgc2ltcGxlIGFzIGJlZm9yZS4gSXQganVzdCBuZWVk cyB0byB0cmlnZ2VyIHRoZSBiaW5kaW5nIGFuZCBjYWxsIHRoZSByZWZyZXNoIG1ldGhvZCBhZnRl cndhcmRzLCBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IGV4ZWN1dGUgY2FsbC4gVGhlIHJlc3BlY3Rp dmUgY29kZSBpbiB5b3VyIFBhZ2VkTGlzdENvbnRyb2xsZXIgZXhhbXBsZSB3b3VsZCBsb29rIGFi b3V0IGFzIGZvbGxvd3M6DQoJDQoJcHVibGljIE1vZGVsQW5kVmlldyBzaG93TWFpbihIdHRwU2Vy dmxldFJlcXVlc3QgcmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgew0KCSAg UGFnZWRMaXN0QXV0b0hvbGRlciBsaXN0SG9sZGVyID0NCgkgICAgKFBhZ2VkTGlzdEF1dG9Ib2xk ZXIpcmVxdWVzdC5nZXRTZXNzaW9uKHRydWUpLmdldEF0dHJpYnV0ZShDT1VOVFJJRVNfQVRUUik7 DQoJICBpZiAobnVsbCA9PSBsaXN0SG9sZGVyKSB7DQoJICAgIGxpc3RIb2xkZXIgPSAoUGFnZWRM aXN0QXV0b0hvbGRlcil0aGlzLmdldEFwcGxpY2F0aW9uQ29udGV4dCgpLmdldEJlYW4oImF1dG9M aXN0SG9sZGVyIik7DQoJICAgIGxpc3RIb2xkZXIuc2V0U291cmNlUHJvdmlkZXIobmV3IENvdW50 cmllc1Byb3ZpZGVyKCkpOw0KCSAgICBsaXN0SG9sZGVyLnNldEZpbHRlcihuZXcgQ291bnRyaWVz RmlsdGVyKCkpOw0KCSAgICBsaXN0SG9sZGVyLnNldFNvcnQobmV3IERlZmF1bHRTb3J0RGVmaW5p dGlvbigpKTsNCgkgICAgcmVxdWVzdC5nZXRTZXNzaW9uKHRydWUpLnNldEF0dHJpYnV0ZShDT1VO VFJJRVNfQVRUUiwgbGlzdEhvbGRlcik7IA0KCSAgfQ0KCSAgQmluZEV4Y2VwdGlvbiBleCA9IEJp bmRVdGlscy5iaW5kKHJlcXVlc3QsIGxpc3RIb2xkZXIsICJjb3VudHJpZXMiKTsNCgkgIGJvb2xl YW4gZm9yY2VSZWZyZXNoID0gcmVxdWVzdC5nZXRQYXJhbWV0ZXIoImZvcmNlUmVmcmVzaCkgIT0g bnVsbDsNCgkgIGxpc3RIb2xkZXIucmVmcmVzaChmb3JjZVJlZnJlc2gpOw0KCSAgcmV0dXJuIG5l dyBNb2RlbEFuZFZpZXcoIm1haW5WaWV3IiwgZXguZ2V0TW9kZWwoKSk7DQoJfQ0KCQ0KCXB1Ymxp YyBjbGFzcyBDb3VudHJpZXNGaWx0ZXIgew0KCSAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsNCgkgIHBy aXZhdGUgU3RyaW5nIGNvZGU7DQoJICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7DQoJICAgIHJl dHVybiBuYW1lOw0KCSAgfQ0KCSAgcHVibGljIHZvaXMgc2V0TmFtZShTdHJpbmcgbmFtZSkgew0K CSAgICB0aGlzLm5hbWUgPSBuYW1lOw0KCSAgfQ0KCSAgcHVibGljIFN0cmluZyBnZXRDb2RlKCkg ew0KCSAgICByZXR1cm4gY29kZTsNCgkgIH0NCgkgIHB1YmxpYyB2b2lzIHNldENvZGUoU3RyaW5n IGNvZGUpIHsNCgkgICAgdGhpcy5jb2RlID0gY29kZTsNCgkgIH0NCgl9DQoJDQoJRmlsdGVyaW5n IGRvZXNuJ3Qgd29yayB2aWEgcGFyYW1ldGVyIG5hbWVzIHRoYXQgc2VydmUgYXMgZmlsdGVyIG5h bWVzIGFueW1vcmUsIGJ1dCB3aXRoIGEgbmVzdGVkICJmaWx0ZXIiIG9iamVjdCBvZiB0eXBlIENv dW50cmllc0ZpbHRlci4gU28geW91ciBtYWluLmpzcCB3b3VsZCBuZWVkIHRvIHVzZSAiY291bnRy aWVzLmZpbHRlci5jb2RlIiBFTCBmb3IgbWF0Y2hpbmcsIHNlbmRpbmcgImZpbHRlci5jb2RlIiBh cyByZXF1ZXN0IHBhcmFtZXRlciBuYW1lIGZvciBjaGFuZ2luZy4gVGhlIHNhbWUgYXBwbGllcyB0 byBzb3J0aW5nLCB1c2luZyB0aGUgbmVzdGVkICJzb3J0IiBvYmplY3Q6IGUuZy4gImNvdW50cmll cy5zb3J0LmFzY2VuZGluZyIgRUwgZm9yIGV2YWx1YXRpb24gKGp1c3QgbGlrZSBpbiB5b3VyIGN1 cnJlbnQgdmVyc2lvbiksICJzb3J0LmFzY2VuZGluZyIgYXMgcmVxdWVzdCBwYXJhbWV0ZXIgbmFt ZS4NCgkNCgktLS0NCgkNCglXaGF0IGRvIHlvdSB0aGluaz8gSSdtIGtlZW4gb24gYXBwbHlpbmcg dGhlc2UgY2hhbmdlcyBwcm9tcHRseSwgaWYgeW91IGRvbid0IG1pbmQsIGlmIHBvc3NpYmxlIGFs cmVhZHkgdG9tb3Jyb3cuIEJUVywgSSdtIHdyaXRpbmcgdGhpcyBvbiBhIG5vbi1kZXZlbG9wbWVu dCBQQyBhdCBob21lLCBzbyBJIGhhdmVuJ3QgYWN0dWFsbHkgcHJvdG90eXBlZCB0aGUgZGVzaWdu LCBidXQgSSBleHBlY3QgaXQgdG8gd29yayBuaWNlbHkuIFdlIHNob3VsZCBlbmQgdXAgd2l0aCBz aWduaWZpY2FudGx5IGxlc3MgYW5kIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUsIEkgaG9wZS4NCgkN CglSZWdhcmRzLA0KCUp1ZXJnZW4NCgkNCgkNCgkNCgkgICAgICAgIC0tLS0tVXJzcHLDvG5nbGlj aGUgTmFjaHJpY2h0LS0tLS0NCgkgICAgICAgIFZvbjogSlAgUGF3bGFrIFttYWlsdG86anAucGF3 bGFrQHRpc2NhbGkuZnJdDQoJICAgICAgICBHZXNlbmRldDogRnIgMjMuMDUuMjAwMyAyMjoyMA0K CSAgICAgICAgQW46IFNwcmluZyBEZXZlbG9wZXJzDQoJICAgICAgICBDYzoNCgkgICAgICAgIEJl dHJlZmY6IFtTcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyXSBwYWdlZCBsaXN0cw0KCSAgICAgICAN CgkgICAgICAgDQoJDQoJDQoJICAgICAgICBIaSwNCgkgICAgICAgDQoJICAgICAgICBFeGN1c2Ug bWUgZnJvbSBkaXN0dXJiaW5nIGZyb20gZnVuZGFtZW50YWwgaXNzdWVzIGxpa2UgdGhlIEtleUJp bmRlcg0KCSAgICAgICAgcG9zdGVkIGJ5IElzYWJlbGxlIGFuZCB0aGUgYnJva2VuIHRlc3RzIEkn dmUganVzdCBwb3N0ZWQuDQoJICAgICAgIA0KCSAgICAgICAgQXMgSSB0YWxrZWQgYWJvdXQsIEkg aGF2ZSBhZGRlZCB0aHJlZSBmaWxlczoNCgkgICAgICAgIEluIHNyYzoNCgkgICAgICAgICAgIC0g Y29tLmludGVyZmFjZTIxLnV0aWwuUGFnZWRMaXN0QXV0b0hvbGRlci5qYXZhIChDbGFzcyBkZXJp dmVkIGZyb20NCgkgICAgICAgIFBhZ2VkTGlzdEhvbGRlcikNCgkgICAgICAgICAgIC0gY29tLmlu dGVyZmFjZTIxLnV0aWwuUGFnZWRMaXN0U291cmNlUHJvdmlkZXIuamF2YSAoSW50ZXJmYWNlKQ0K CSAgICAgICAgaW4gdGVzdDoNCgkgICAgICAgICAgIC0gY29tLmludGVyZmFjZTIxLnV0aWwuUGFn ZWRMaXN0QXV0b0hvbGRlclRlc3RzLmphdmEgKENsYXNzKQ0KCSAgICAgICANCgkgICAgICAgIFRo aXMgYWxsIGZvciBlYXN5IHVzZSBvZiBhIG1vcmUgcG93ZXJmdWxsIHBhZ2VkIExpc3QuDQoJICAg ICAgICBUaGUgamF2YWRvYyBhbmQgZXZlbnR1YWxseSB0ZXN0IHNvdXJjZSB3aWxsIG5vcm1hbGx5 IHN1ZmZpY2UgdG8NCgkgICAgICAgIHVuZGVyc3RhbmQgdGhlIHVzZS4NCgkgICAgICAgIE5ldmVy dGhlbGVzcywgaWYgSSB3aWxsIG5vdCBiZSBpbXBhY3RlZCBieSB0aGUgY3VycmVudCB0ZXN0IGlz c3VlcywgSQ0KCSAgICAgICAgd2lsbCB0cnkgdG8gcHJvdmlkZSBhIHRpbnkgc2FtcGxlIGFwcGxp Y2F0aW9uIGZvciBkZW1vbnN0cmF0aW5nLg0KCSAgICAgICANCgkgICAgICAgIEFmdGVyIDAuOCB3 aWxsIGJlIHJlbGVhc2VkLCBJIGNvdWxkIGhhdmUgc29tZSBoZWxwIGZvciByZXdpZXZpbmcgdGhl DQoJICAgICAgICBqYXZhZG9jIGNvbW1lbnRzIGFzIG15IEVuZ2xpc2ggaXMgdmVyeSBmYXIgZnJv bSBwZXJmZWN0Lg0KCSAgICAgICANCgkgICAgICAgIFJlZ2FyZHMsDQoJICAgICAgICBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCgkgICAgICAgIEplYW4tUGllcnJlIFBhd2xhaw0KCSAg ICAgICAganAucGF3bGFrQHRpc2NhbGkuZnINCgkgICAgICAgIA0KCSAgICAgICANCgkgICAgICAg DQoJICAgICAgIA0KCSAgICAgICANCgkgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICAgICAgIFRoaXMgU0YubmV0IGVtYWls IGlzIHNwb25zb3JlZCBieTogT2JqZWN0U3RvcmUuDQoJICAgICAgICBJZiBmbGF0dGVuaW5nIG91 dCBDKysgb3IgSmF2YSBjb2RlIHRvIG1ha2UgeW91ciBhcHBsaWNhdGlvbiBmaXQgaW4gYQ0KCSAg ICAgICAgcmVsYXRpb25hbCBkYXRhYmFzZSBpcyBwYWluZnVsLCBkb24ndCBkbyBpdCEgQ2hlY2sg b3V0IE9iamVjdFN0b3JlLg0KCSAgICAgICAgTm93IHBhcnQgb2YgUHJvZ3Jlc3MgU29mdHdhcmUu IGh0dHA6Ly93d3cub2JqZWN0c3RvcmUubmV0L3NvdXJjZWZvcmdlDQoJICAgICAgICBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KCSAgICAgICAgU3ByaW5n ZnJhbWV3b3JrLWRldmVsb3BlciBtYWlsaW5nIGxpc3QNCgkgICAgICAgIFNwcmluZ2ZyYW1ld29y ay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJICAgICAgICBodHRwczovL2xpc3Rz LnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9zcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVy DQoJICAgICAgIA0KCQ0KCQ0KCQ0KCSoqKioqKioqKiogU1BFQ0lBTCBBRFNMICoqKioqKioqKioN CglMJ0FEU0wgw6AgcGFydGlyIGRlIDE1LDk1IEVVUi9tb2lzIGV0IGxlIG1vZGVtIEFEU0wgb2Zm ZXJ0ID8gIEMnZXN0IGVuIGV4Y2x1c2l2aXTDqSBjaGV6IFRpc2NhbGkgIQ0KCVBvdXIgcHJvZml0 ZXIgZGUgY2V0dGUgb2ZmcmUsIGNsaXF1ZXogaWNpOiBodHRwOi8vcmVnaXN0ZXIudGlzY2FsaS5m ci9hZHNsLw0KCU9mZnJlIHNvdW1pc2Ugw6AgY29uZGl0aW9ucy4NCgkNCgkNCgkNCg0K |