Return-Path: Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 90541 invoked from network); 7 Mar 2001 00:04:46 -0000 Received: from backup.san.rr.com (24.25.193.55) by h31.sny.collab.net with SMTP; 7 Mar 2001 00:04:46 -0000 Received: from looper ([24.25.203.43]) by backup.san.rr.com (Post.Office MTA v3.5.3 release 223 ID# 0-0U10L2S100V35) with SMTP id com for ; Tue, 6 Mar 2001 16:04:54 -0800 From: David Rees To: ant-dev@jakarta.apache.org Subject: [PATCH] Tests changes Date: Tue, 06 Mar 2001 15:56:08 -0800 Message-ID: X-Mailer: Forte Agent 1.8/32.548 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="--=_o8uaat8oia6eensg5bvrirbbbkkodar6vq.MFSBCHJLHS" X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N ----=_o8uaat8oia6eensg5bvrirbbbkkodar6vq.MFSBCHJLHS Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable The attached changes extend TaskdefsTest with a helper method for accessing its configured project's directory and update the relevant tasks to use this helped method. I did this because I needed to in order to be able to run the test from within VisualAge because I can't control the working directory (JBuilder has the same problem). However, the changes also clean up the tests and reduce the chance of error because they can now refer to files and directories relative to the same place their ant file does. In addition, I added a new method TaskdefsTest.expectSpecificBuildException() which verifies the actual message of the build exception rather than just that any build exception occurs. I guess I am a little more anal than others. I updated Get.xml to use www.apache.org instead of localhost. Either way it may not run for some people, but I think the chances of someone having an internet connection are much higher then them having a local web server. Oh, and I created CopyTest.java. For some reason it seemed to be missing (even though there is a Copy.xml). dave ----=_o8uaat8oia6eensg5bvrirbbbkkodar6vq.MFSBCHJLHS Content-Type: application/octet-stream; name=tests.zip Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=tests.zip UEsDBAoAAAAAAKltZioAAAAAAAAAAAAAAAAIAAAAc3JjL2V0Yy9QSwMECgAAAAAABm5mKgAAAAAA AAAAAAAAABIAAABzcmMvZXRjL3Rlc3RjYXNlcy9QSwMECgAAAAAAqW1mKgAAAAAAAAAAAAAAABsA AABzcmMvZXRjL3Rlc3RjYXNlcy90YXNrZGVmcy9QSwMECgAAAAAAqW1mKgAAAAAAAAAAAAAAACQA AABzcmMvZXRjL3Rlc3RjYXNlcy90YXNrZGVmcy9vcHRpb25hbC9QSwMECgAAAAAAqW1mKgAAAAAA AAAAAAAAACgAAABzcmMvZXRjL3Rlc3RjYXNlcy90YXNrZGVmcy9vcHRpb25hbC9pZGUvUEsDBAoA AAAAAAduZioAAAAAAAAAAAAAAAAYAAAAc3JjL2V0Yy90ZXN0Y2FzZXMvdHlwZXMvUEsDBAoAAAAA AAZuZioAAAAAAAAAAAAAAAAJAAAAc3JjL21haW4vUEsDBAoAAAAAAAduZioAAAAAAAAAAAAAAAAN AAAAc3JjL21haW4vb3JnL1BLAwQKAAAAAAAHbmYqAAAAAAAAAAAAAAAAFAAAAHNyYy9tYWluL29y Zy9hcGFjaGUvUEsDBAoAAAAAAAduZioAAAAAAAAAAAAAAAAaAAAAc3JjL21haW4vb3JnL2FwYWNo ZS90b29scy9QSwMECgAAAAAAB25mKgAAAAAAAAAAAAAAAB4AAABzcmMvbWFpbi9vcmcvYXBhY2hl L3Rvb2xzL2FudC9QSwMECgAAAAAAB25mKgAAAAAAAAAAAAAAACQAAABzcmMvbWFpbi9vcmcvYXBh Y2hlL3Rvb2xzL2FudC90eXBlcy9QSwMECgAAAAAAB25mKgAAAAAAAAAAAAAAAA4AAABzcmMvdGVz dGNhc2VzL1BLAwQKAAAAAAAHbmYqAAAAAAAAAAAAAAAAEgAAAHNyYy90ZXN0Y2FzZXMvb3JnL1BL AwQKAAAAAAAHbmYqAAAAAAAAAAAAAAAAGQAAAHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS9QSwME CgAAAAAAB25mKgAAAAAAAAAAAAAAAB8AAABzcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUvdG9vbHMv UEsDBAoAAAAAAAduZioAAAAAAAAAAAAAAAAjAAAAc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rv 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 AAAQAP9BRQIAAHNyYy9tYWluL29yZy9hcGFjaGUvdG9vbHMvYW50L3R5cGVzL1BLAQIUAAoAAAAA AAduZioAAAAAAAAAAAAAAAAOAAAAAAAAAAAAEAD/QYcCAABzcmMvdGVzdGNhc2VzL1BLAQIUAAoA AAAAAAduZioAAAAAAAAAAAAAAAASAAAAAAAAAAAAEAD/QbMCAABzcmMvdGVzdGNhc2VzL29yZy9Q SwECFAAKAAAAAAAHbmYqAAAAAAAAAAAAAAAAGQAAAAAAAAAAABAA/0HjAgAAc3JjL3Rlc3RjYXNl cy9vcmcvYXBhY2hlL1BLAQIUAAoAAAAAAAduZioAAAAAAAAAAAAAAAAfAAAAAAAAAAAAEAD/QRoD AABzcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUvdG9vbHMvUEsBAhQACgAAAAAAB25mKgAAAAAAAAAA AAAAACMAAAAAAAAAAAAQAP9BVwMAAHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90b29scy9hbnQv UEsBAhQACgAAAAAAB25mKgAAAAAAAAAAAAAAACwAAAAAAAAAAAAQAP9BmAMAAHNyYy90ZXN0Y2Fz ZXMvb3JnL2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMvUEsBAhQAFAAAAAgAc1pmKvyrRRzbBQAA dw0AADkAAAAAAAAAAQAgALaB4gMAAHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90b29scy9hbnQv dGFza2RlZnMvQ29weVRlc3QuamF2YVBLAQIUAAoAAAAAAAduZioAAAAAAAAAAAAAAAA1AAAAAAAA AAAAEAD/QRQKAABzcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUvdG9vbHMvYW50L3Rhc2tkZWZzL29w dGlvbmFsL1BLAQIUAAoAAAAAAAduZioAAAAAAAAAAAAAAAA5AAAAAAAAAAAAEAD/QWcKAABzcmMv dGVzdGNhc2VzL29yZy9hcGFjaGUvdG9vbHMvYW50L3Rhc2tkZWZzL29wdGlvbmFsL2lkZS9QSwEC FAAKAAAAAAAHbmYqAAAAAAAAAAAAAAAAKQAAAAAAAAAAABAA/0G+CgAAc3JjL3Rlc3RjYXNlcy9v cmcvYXBhY2hlL3Rvb2xzL2FudC90eXBlcy9QSwECFAAKAAAAAAAHbmYqAAAAAAAAAAAAAAAABAAA AAAAAAAAABAA/0EFCwAAc3JjL1BLBQYAAAAAFwAXALwGAAAnCwAAAAA= ----=_o8uaat8oia6eensg5bvrirbbbkkodar6vq.MFSBCHJLHS Content-Type: application/octet-stream; name=tests.diff Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=tests.diff VGVzdHMgY2hhbmdlcw0KDQpUaGUgYXR0YWNoZWQgY2hhbmdlcyBleHRlbmQgVGFza2RlZnNUZXN0 IHdpdGggYSBoZWxwZXIgbWV0aG9kIGZvciBhY2Nlc3NpbmcgaXRzIGNvbmZpZ3VyZWQgcHJvamVj dCdzIGRpcmVjdG9yeSBhbmQgdXBkYXRlIHRoZSByZWxldmFudCB0YXNrcyB0byB1c2UgdGhpcyBo ZWxwZWQgbWV0aG9kLiBJIGRpZCB0aGlzIGJlY2F1c2UgSSBuZWVkZWQgdG8gaW4gb3JkZXIgdG8g YmUgYWJsZSB0byBydW4gdGhlIHRlc3QgZnJvbSB3aXRoaW4gVmlzdWFsQWdlIGJlY2F1c2UgSSBj YW4ndCBjb250cm9sIHRoZSB3b3JraW5nIGRpcmVjdG9yeSAoSkJ1aWxkZXIgaGFzIHRoZSBzYW1l IHByb2JsZW0pLiBIb3dldmVyLCB0aGUgY2hhbmdlcyBhbHNvIGNsZWFuIHVwIHRoZSB0ZXN0cyBh bmQgcmVkdWNlIHRoZSBjaGFuY2Ugb2YgZXJyb3IgYmVjYXVzZSB0aGV5IGNhbiBub3cgcmVmZXIg dG8gZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHJlbGF0aXZlIHRvIHRoZSBzYW1lIHBsYWNlIHRoZWly IGFudCBmaWxlIGRvZXMuDQoNCkluIGFkZGl0aW9uLCBJIGFkZGVkIGEgbmV3IG1ldGhvZCBUYXNr ZGVmc1Rlc3QuZXhwZWN0U3BlY2lmaWNCdWlsZEV4Y2VwdGlvbiB3aGljaCB2ZXJpZmllcyB0aGUg bWVzc2FnZSBvZiB0aGUgYnVpbGQgZXhjZXB0aW9uIHJhdGhlciB0aGFuIGp1c3QgdGhhdCBhbnkg YnVpbGQgZXhjZXB0aW9uIG9jY3VycyAoSSBkaWQgX25vdF8gdXBkYXRlIGFsbCB0aGUgdGVzdHMg dG8gdXNlIHRoaXMgOykgLg0KDQpJIHVwZGF0ZWQgR2V0LnhtbCB0byB1c2Ugd3d3LmFwYWNoZS5v cmcgaW5zdGVhZCBvZiBsb2NhbGhvc3QuIEVpdGhlciB3YXkgaXQgbWF5IG5vdCBydW4gZm9yIHNv bWUgcGVvcGxlLCBidXQgSSB0aGluayB0aGUgY2hhbmNlcyBvZiBzb21lb25lIGhhdmluZyBhbiBp bnRlcm5ldCBjb25uZWN0aW9uIGFyZSBtdWNoIGhpZ2hlciB0aGVuIHRoZW0gaGF2aW5nIGEgbG9j YWwgd2ViIHNlcnZlci4NCg0KT2gsIGFuZCBJIGNyZWF0ZWQgQ29weVRlc3QuamF2YS4gRm9yIHNv bWUgcmVhc29uIGl0IHNlZW1lZCB0byBiZSBtaXNzaW5nIChldmVuIHRob3VnaCB0aGVyZSBpcyBh IENvcHkueG1sKS4NCg0KKiBmaWxlcw0KPyBzcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUvdG9vbHMv YW50L3Rhc2tkZWZzL0NvcHlUZXN0LmphdmENCg0KDQpJbmRleDogc3JjL2V0Yy90ZXN0Y2FzZXMv dGFza2RlZnMvY29weS54bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9jdnNwdWJsaWMv amFrYXJ0YS1hbnQvc3JjL2V0Yy90ZXN0Y2FzZXMvdGFza2RlZnMvY29weS54bWwsdg0KcmV0cmll dmluZyByZXZpc2lvbiAxLjMNCmRpZmYgLXUgLXIxLjMgY29weS54bWwNCi0tLSBzcmMvZXRjL3Rl c3RjYXNlcy90YXNrZGVmcy9jb3B5LnhtbAkyMDAwLzEyLzE4IDE1OjQzOjUxCTEuMw0KKysrIHNy Yy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZzL2NvcHkueG1sCTIwMDEvMDMvMDYgMjA6MDg6MjQNCkBA IC0zLDcgKzMsMTcgQEANCiA8cHJvamVjdCBuYW1lPSJjb3B5LXRlc3QiIGJhc2VkaXI9Ii4iIGRl ZmF1bHQ9InRlc3QxIj4NCiANCiAgIDx0YXJnZXQgbmFtZT0idGVzdDEiPg0KLSAgICA8Y29weSBm aWxlPSJjb3B5LnhtbCIgdG9kaXI9Ii4iIG92ZXJ3cml0ZT0idHJ1ZSIvPg0KKyAgICA8Y29weSBm aWxlPSJjb3B5LnhtbCIgdG9maWxlPSJjb3B5dGVzdDEudG1wIiAvPg0KICAgPC90YXJnZXQ+DQor IA0KKyAgPHRhcmdldCBuYW1lPSJ0ZXN0MiI+DQorICAgIDxjb3B5IGZpbGU9ImNvcHkueG1sIiB0 b2Rpcj0iY29weXRlc3QxZGlyIiBvdmVyd3JpdGU9InRydWUiLz4NCisgIDwvdGFyZ2V0Pg0KKyAN CisgIDx0YXJnZXQgbmFtZT0iY2xlYW51cCI+IA0KKyAgICA8ZGVsZXRlIGZpbGU9ImNvcHl0ZXN0 MS50bXAiLz4NCisgICAgPGRlbGV0ZSBkaXI9ImNvcHl0ZXN0MWRpciIvPg0KKyAgPC90YXJnZXQ+ DQorDQogDQogPC9wcm9qZWN0Pg0KSW5kZXg6IHNyYy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZzL2Rl bHRyZWUueG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvY3ZzcHVibGljL2pha2FydGEt YW50L3NyYy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZzL2RlbHRyZWUueG1sLHYNCnJldHJpZXZpbmcg cmV2aXNpb24gMS4yDQpkaWZmIC11IC1yMS4yIGRlbHRyZWUueG1sDQotLS0gc3JjL2V0Yy90ZXN0 Y2FzZXMvdGFza2RlZnMvZGVsdHJlZS54bWwJMjAwMC8xMi8xOCAxNTo0Mzo1MwkxLjINCisrKyBz cmMvZXRjL3Rlc3RjYXNlcy90YXNrZGVmcy9kZWx0cmVlLnhtbAkyMDAxLzAzLzA2IDIwOjA4OjI0 DQpAQCAtNyw3ICs3LDcgQEANCiAgIDwvdGFyZ2V0Pg0KIA0KICAgPHRhcmdldCBuYW1lPSJ0ZXN0 MiI+DQotICAgIDxkZWx0cmVlIGRpcj0ic3JjL2V0Yy90ZXN0Y2FzZXMvdGFza2RlZnMudG1wIi8+ DQorICAgIDxkZWx0cmVlIGRpcj0idGFza2RlZnMudG1wIi8+DQogICA8L3RhcmdldD4NCiANCiA8 L3Byb2plY3Q+DQpJbmRleDogc3JjL2V0Yy90ZXN0Y2FzZXMvdGFza2RlZnMvZ2V0LnhtbA0KPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2c3B1YmxpYy9qYWthcnRhLWFudC9zcmMvZXRjL3Rl c3RjYXNlcy90YXNrZGVmcy9nZXQueG1sLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4yDQpkaWZm IC11IC1yMS4yIGdldC54bWwNCi0tLSBzcmMvZXRjL3Rlc3RjYXNlcy90YXNrZGVmcy9nZXQueG1s CTIwMDAvMTIvMTggMTU6NDM6NTUJMS4yDQorKysgc3JjL2V0Yy90ZXN0Y2FzZXMvdGFza2RlZnMv Z2V0LnhtbAkyMDAxLzAzLzA2IDIwOjA4OjI0DQpAQCAtMTksMTEgKzE5LDExIEBADQogICA8L3Rh cmdldD4NCiANCiAgIDx0YXJnZXQgbmFtZT0idGVzdDUiPg0KLSAgICA8Z2V0IHNyYz0iaHR0cDov L2xvY2FsaG9zdCIgZGVzdD0iIi8+DQorICAgIDxnZXQgc3JjPSJodHRwOi8vd3d3LmFwYWNoZS5v cmciIGRlc3Q9IiIvPg0KICAgPC90YXJnZXQ+DQogDQogICA8dGFyZ2V0IG5hbWU9InRlc3Q2Ij4N Ci0gICAgPGdldCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QiIGRlc3Q9ImdldC50bXAiLz4NCisgICAg PGdldCBzcmM9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZyIgZGVzdD0iZ2V0LnRtcCIvPg0KICAgPC90 YXJnZXQ+DQogDQogPC9wcm9qZWN0Pg0KDQpJbmRleDogc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hl L3Rvb2xzL2FudC90YXNrZGVmcy9Db3B5ZGlyVGVzdC5qYXZhDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls ZTogL2hvbWUvY3ZzcHVibGljL2pha2FydGEtYW50L3NyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90 b29scy9hbnQvdGFza2RlZnMvQ29weWRpclRlc3QuamF2YSx2DQpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMw0KZGlmZiAtdSAtcjEuMyBDb3B5ZGlyVGVzdC5qYXZhDQotLS0gc3JjL3Rlc3RjYXNlcy9v cmcvYXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9Db3B5ZGlyVGVzdC5qYXZhCTIwMDEvMDEvMDMg MTQ6MTg6NDkJMS4zDQorKysgc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90YXNr ZGVmcy9Db3B5ZGlyVGVzdC5qYXZhCTIwMDEvMDMvMDYgMjA6MDg6NDANCkBAIC01NCw2ICs1NCw4 IEBADQogDQogcGFja2FnZSBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmczsNCiANCitpbXBv cnQgamF2YS5pby5GaWxlOw0KKw0KIC8qKg0KICAqIEBhdXRob3IgTmljbyBTZWVzc2xlIDxuaWNv QHNlZXNzbGUuZGU+IA0KICAqLw0KQEAgLTg1LDcgKzg3LDcgQEANCiAgICAgDQogICAgIHB1Ymxp YyB2b2lkIHRlc3Q1KCkgeyANCiAgICAgICAgIGV4ZWN1dGVUYXJnZXQoInRlc3Q1Iik7DQotICAg ICAgICBqYXZhLmlvLkZpbGUgZiA9IG5ldyBqYXZhLmlvLkZpbGUoInNyYy9ldGMvdGVzdGNhc2Vz L3Rhc2tkZWZzLnRtcCIpOw0KKyAgICAgICAgamF2YS5pby5GaWxlIGYgPSBuZXcgamF2YS5pby5G aWxlKGdldFByb2plY3REaXIoKSwgIi4uL3Rhc2tkZWZzLnRtcCIpOw0KICAgICAgICAgaWYgKCFm LmV4aXN0cygpIHx8ICFmLmlzRGlyZWN0b3J5KCkpIHsgDQogICAgICAgICAgICAgZmFpbCgiQ29w eSBmYWlsZWQiKTsNCiAgICAgICAgIH0NCkluZGV4OiBzcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUv dG9vbHMvYW50L3Rhc2tkZWZzL0NvcHlmaWxlVGVzdC5qYXZhDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls ZTogL2hvbWUvY3ZzcHVibGljL2pha2FydGEtYW50L3NyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90 b29scy9hbnQvdGFza2RlZnMvQ29weWZpbGVUZXN0LmphdmEsdg0KcmV0cmlldmluZyByZXZpc2lv biAxLjMNCmRpZmYgLXUgLXIxLjMgQ29weWZpbGVUZXN0LmphdmENCi0tLSBzcmMvdGVzdGNhc2Vz L29yZy9hcGFjaGUvdG9vbHMvYW50L3Rhc2tkZWZzL0NvcHlmaWxlVGVzdC5qYXZhCTIwMDEvMDEv MDMgMTQ6MTg6NDkJMS4zDQorKysgc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90 YXNrZGVmcy9Db3B5ZmlsZVRlc3QuamF2YQkyMDAxLzAzLzA2IDIwOjA5OjI5DQpAQCAtNTQsMTEg KzU0LDE4IEBADQogDQogcGFja2FnZSBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmczsNCiAN CitpbXBvcnQgamF2YS5pby5GaWxlOw0KKw0KIC8qKg0KICAqIEBhdXRob3IgTmljbyBTZWVzc2xl IDxuaWNvQHNlZXNzbGUuZGU+IA0KICAqLw0KIHB1YmxpYyBjbGFzcyBDb3B5ZmlsZVRlc3QgZXh0 ZW5kcyBUYXNrZGVmc1Rlc3QgeyANCiAgICAgDQorLyoNCisgICAgcHVibGljIHZvaWQgdGVzdDYo KSB7IA0KKyAgICAgICAgZXhwZWN0QnVpbGRFeGNlcHRpb24oInRlc3Q2IiwgInRhcmdldCBpcyBk aXJlY3RvcnkiKTsNCisgICAgfQ0KKyovDQogICAgIHB1YmxpYyBDb3B5ZmlsZVRlc3QoU3RyaW5n IG5hbWUpIHsgDQogICAgICAgICBzdXBlcihuYW1lKTsNCiAgICAgfSAgICANCkBAIC04NSw3ICs5 Miw3IEBADQogDQogICAgIHB1YmxpYyB2b2lkIHRlc3Q1KCkgeyANCiAgICAgICAgIGV4ZWN1dGVU YXJnZXQoInRlc3Q1Iik7DQotICAgICAgICBqYXZhLmlvLkZpbGUgZiA9IG5ldyBqYXZhLmlvLkZp bGUoInNyYy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZzL2NvcHlmaWxlLnRtcCIpOw0KKyAgICAgICAg amF2YS5pby5GaWxlIGYgPSBuZXcgamF2YS5pby5GaWxlKGdldFByb2plY3REaXIoKSwgImNvcHlm aWxlLnRtcCIpOw0KICAgICAgICAgaWYgKGYuZXhpc3RzKCkpIHsgDQogICAgICAgICAgICAgZi5k ZWxldGUoKTsNCiAgICAgICAgIH0gZWxzZSB7DQoNCkluZGV4OiBzcmMvdGVzdGNhc2VzL29yZy9h cGFjaGUvdG9vbHMvYW50L3Rhc2tkZWZzL0ZpbHRlclRlc3QuamF2YQ0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT IGZpbGU6IC9ob21lL2N2c3B1YmxpYy9qYWthcnRhLWFudC9zcmMvdGVzdGNhc2VzL29yZy9hcGFj aGUvdG9vbHMvYW50L3Rhc2tkZWZzL0ZpbHRlclRlc3QuamF2YSx2DQpyZXRyaWV2aW5nIHJldmlz aW9uIDEuMw0KZGlmZiAtdSAtcjEuMyBGaWx0ZXJUZXN0LmphdmENCi0tLSBzcmMvdGVzdGNhc2Vz L29yZy9hcGFjaGUvdG9vbHMvYW50L3Rhc2tkZWZzL0ZpbHRlclRlc3QuamF2YQkyMDAxLzAxLzAz IDE0OjE4OjQ5CTEuMw0KKysrIHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90b29scy9hbnQvdGFz a2RlZnMvRmlsdGVyVGVzdC5qYXZhCTIwMDEvMDMvMDYgMjE6MDg6MjkNCkBAIC02NCwxNSArNjQs MTMgQEANCiAgKiBAYXV0aG9yIE5pY28gU2Vlc3NsZSA8bmljb0BzZWVzc2xlLmRlPiANCiAgKi8N CiBwdWJsaWMgY2xhc3MgRmlsdGVyVGVzdCBleHRlbmRzIFRhc2tkZWZzVGVzdCB7IA0KLSAgICAN Ci0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nIFRBU0tERUZTX0RJUiA9ICJzcmMvZXRj L3Rlc3RjYXNlcy90YXNrZGVmcy8iOw0KLSAgICANCisgICAgICANCiAgICAgcHVibGljIEZpbHRl clRlc3QoU3RyaW5nIG5hbWUpIHsgDQogICAgICAgICBzdXBlcihuYW1lKTsNCiAgICAgfSAgICAN CiAgICAgDQogICAgIHB1YmxpYyB2b2lkIHNldFVwKCkgeyANCi0gICAgICAgIGNvbmZpZ3VyZVBy b2plY3QoVEFTS0RFRlNfRElSICsgImZpbHRlci54bWwiKTsNCisgICAgICAgIGNvbmZpZ3VyZVBy b2plY3QoInNyYy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZzL2ZpbHRlci54bWwiKTsNCiAgICAgfQ0K IA0KICAgICBwdWJsaWMgdm9pZCB0ZXN0MSgpIHsgDQpAQCAtOTQsMzIgKzkyLDMyIEBADQogICAg IHB1YmxpYyB2b2lkIHRlc3Q1KCkgew0KICAgICAgICAgZXhlY3V0ZVRhcmdldCgidGVzdDUiKTsN CiAgICAgICAgIGFzc2VydEVxdWFscygiMjAwMCIsDQotICAgICAgICAgICAgICAgICAgICAgZ2V0 RmlsdGVyZWRGaWxlKCI1IiwgVEFTS0RFRlNfRElSICsgImZpbHRlcmVkLnRtcCIpKTsNCisgICAg ICAgICAgICAgICAgICAgICBnZXRGaWx0ZXJlZEZpbGUoIjUiLCAiZmlsdGVyZWQudG1wIikpOw0K ICAgICB9DQotDQorICAgIA0KIA0KICAgICBwdWJsaWMgdm9pZCB0ZXN0NigpIHsNCiAgICAgICAg IGV4ZWN1dGVUYXJnZXQoInRlc3Q2Iik7DQogICAgICAgICBhc3NlcnRFcXVhbHMoIjIwMDAiLA0K LSAgICAgICAgICAgICAgICAgICAgIGdldEZpbHRlcmVkRmlsZSgiNiIsIFRBU0tERUZTX0RJUiAr ICJ0YXNrZGVmcy50bXAvZmlsdGVyMS50eHQiKSk7DQorICAgICAgICAgICAgICAgICAgICAgZ2V0 RmlsdGVyZWRGaWxlKCI2IiwgInRhc2tkZWZzLnRtcC9maWx0ZXIxLnR4dCIpKTsNCiAgICAgfQ0K IA0KICAgICBwdWJsaWMgdm9pZCB0ZXN0NygpIHsNCiAgICAgICAgIGV4ZWN1dGVUYXJnZXQoInRl c3Q3Iik7DQogICAgICAgICBhc3NlcnRFcXVhbHMoIjwlQCBpbmNsdWRlIGZpbGU9XCJyb290L3Nv bWUvaW5jbHVkZS5qc3BcIiU+IiwNCi0gICAgICAgICAgICAgICAgICAgICBnZXRGaWx0ZXJlZEZp bGUoIjciLCBUQVNLREVGU19ESVIgKyAiZmlsdGVyZWQudG1wIikpOw0KKyAgICAgICAgICAgICAg ICAgICAgIGdldEZpbHRlcmVkRmlsZSgiNyIsICJmaWx0ZXJlZC50bXAiKSk7DQogICAgIH0NCi0g ICAgDQorDQogICAgIHB1YmxpYyB2b2lkIHRlc3Q4KCkgew0KICAgICAgICAgZXhlY3V0ZVRhcmdl dCgidGVzdDgiKTsNCiAgICAgICAgIGFzc2VydEVxdWFscygiPCVAIGluY2x1ZGUgZmlsZT1cInJv b3Qvc29tZS9pbmNsdWRlLmpzcFwiJT4iLA0KLSAgICAgICAgICAgICAgICAgICAgIGdldEZpbHRl cmVkRmlsZSgiOCIsIFRBU0tERUZTX0RJUiArICJ0YXNrZGVmcy50bXAvZmlsdGVyMi50eHQiKSk7 DQorICAgICAgICAgICAgICAgICAgICAgZ2V0RmlsdGVyZWRGaWxlKCI4IiwgInRhc2tkZWZzLnRt cC9maWx0ZXIyLnR4dCIpKTsNCiAgICAgfQ0KICAgICANCiAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0 RmlsdGVyZWRGaWxlKFN0cmluZyB0ZXN0TnVtYmVyLCBTdHJpbmcgZmlsdGVyZWRGaWxlKSB7DQog ICAgIA0KICAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOw0KLSAgICAgICAgRmlsZSBmID0gbmV3 IEZpbGUoZmlsdGVyZWRGaWxlKTsNCisgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKGdldFByb2pl Y3REaXIoKSwgZmlsdGVyZWRGaWxlKTsNCiAgICAgICAgIGlmICghZi5leGlzdHMoKSkgew0KICAg ICAgICAgICAgIGZhaWwoImZpbHRlciB0ZXN0Iit0ZXN0TnVtYmVyKyIgZmFpbGVkIik7DQogICAg ICAgICB9IGVsc2Ugew0KDQpJbmRleDogc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2Fu dC90YXNrZGVmcy9HVW56aXBUZXN0LmphdmENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9j dnNwdWJsaWMvamFrYXJ0YS1hbnQvc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90 YXNrZGVmcy9HVW56aXBUZXN0LmphdmEsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjINCmRpZmYg LXUgLXIxLjIgR1VuemlwVGVzdC5qYXZhDQotLS0gc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rv b2xzL2FudC90YXNrZGVmcy9HVW56aXBUZXN0LmphdmEJMjAwMS8wMS8wMyAxNDoxODo0OQkxLjIN CisrKyBzcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUvdG9vbHMvYW50L3Rhc2tkZWZzL0dVbnppcFRl c3QuamF2YQkyMDAxLzAzLzA2IDIwOjA5OjMwDQpAQCAtNTIsNyArNTIsOSBAQA0KICAqIDxodHRw Oi8vd3d3LmFwYWNoZS5vcmcvPi4NCiAgKi8NCiANCi1wYWNrYWdlIG9yZy5hcGFjaGUudG9vbHMu YW50LnRhc2tkZWZzOw0KKyBwYWNrYWdlIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzOw0K KyANCisgaW1wb3J0IGphdmEuaW8uRmlsZTsNCiANCiAvKioNCiAgKiBAYXV0aG9yIE5pY28gU2Vl c3NsZSA8bmljb0BzZWVzc2xlLmRlPiANCkBAIC03NywxMiArNzksMTIgQEANCiANCiAgICAgcHVi bGljIHZvaWQgdGVzdDMoKSB7IA0KICAgICAgICAgZXhlY3V0ZVRhcmdldCgidGVzdDMiKTsNCi0g ICAgICAgIGphdmEuaW8uRmlsZSBmID0gbmV3IGphdmEuaW8uRmlsZSgic3JjL2V0Yy90ZXN0Y2Fz ZXMvdGFza2RlZnMvZ3ppcC50bXAyIik7DQorICAgICAgICBqYXZhLmlvLkZpbGUgZiA9IG5ldyBG aWxlKGdldFByb2plY3REaXIoKSwgImd6aXAudG1wMiIpOw0KICAgICAgICAgaWYgKCFmLmV4aXN0 cygpKSB7IA0KICAgICAgICAgICAgIGZhaWwoImd6aXAgZmFpbGVkIik7DQogICAgICAgICB9IGVs c2Ugew0KICAgICAgICAgICAgIGYuZGVsZXRlKCk7DQotICAgICAgICAgICAgZiA9IG5ldyBqYXZh LmlvLkZpbGUoInNyYy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZzL2d6aXAudG1wIik7DQorICAgICAg ICAgICAgZiA9IG5ldyBGaWxlKGdldFByb2plY3REaXIoKSwgImd6aXAudG1wIik7DQogICAgICAg ICAgICAgaWYgKGYuZXhpc3RzKCkpIGYuZGVsZXRlKCk7DQogICAgICAgICB9DQogICAgIH0NCg0K SW5kZXg6IHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMvR2V0VGVz dC5qYXZhDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvY3ZzcHVibGljL2pha2FydGEtYW50 L3NyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMvR2V0VGVzdC5qYXZh LHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4zDQpkaWZmIC11IC1yMS4zIEdldFRlc3QuamF2YQ0K LS0tIHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMvR2V0VGVzdC5q YXZhCTIwMDEvMDIvMTggMTk6MjU6NTYJMS4zDQorKysgc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hl L3Rvb2xzL2FudC90YXNrZGVmcy9HZXRUZXN0LmphdmEJMjAwMS8wMy8wNiAyMDowOTozMA0KQEAg LTU0LDYgKzU0LDggQEANCiANCiBwYWNrYWdlIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZz Ow0KIA0KK2ltcG9ydCBqYXZhLmlvLkZpbGU7DQorDQogLyoqDQogICogQGF1dGhvciBOaWNvIFNl ZXNzbGUgPG5pY29Ac2Vlc3NsZS5kZT4gDQogICovDQpAQCAtODQsMjEgKzg2LDE4IEBADQogICAg IH0NCiANCiAgICAgcHVibGljIHZvaWQgdGVzdDUoKSB7IA0KLSAgICAgICAgLy8gV2UgY2FuJ3Qg ZXhwZWN0IGEgYnVpbGQtc3lzdGVtIHRvIGhhdmUgYSB3ZWJzZXJ2ZXIgaW5zdGFsbGVkLi4uDQot ICAgICAgICAvL2V4cGVjdEJ1aWxkRXhjZXB0aW9uKCJ0ZXN0NSIsICJkZXN0IGludmFsaWQgKG9y IG5vIGh0dHAtc2VydmVyIG9uIGxvY2FsIG1hY2hpbmUpIik7DQorICAgICAgICBleHBlY3RCdWls ZEV4Y2VwdGlvbigidGVzdDUiLCAiZGVzdCBpbnZhbGlkIChvciBubyBodHRwLXNlcnZlciBvbiBs b2NhbCBtYWNoaW5lKSIpOw0KICAgICB9DQogDQogICAgIHB1YmxpYyB2b2lkIHRlc3Q2KCkgeyAN Ci0gICAgICAgIC8vIFdlIGNhbid0IGV4cGVjdCBhIGJ1aWxkLXN5c3RlbSB0byBoYXZlIGEgd2Vi c2VydmVyIGluc3RhbGxlZC4uLg0KLS8qDQogICAgICAgICBleGVjdXRlVGFyZ2V0KCJ0ZXN0NiIp Ow0KLSAgICAgICAgamF2YS5pby5GaWxlIGYgPSBuZXcgamF2YS5pby5GaWxlKCJzcmMvZXRjL3Rl c3RjYXNlcy90YXNrZGVmcy9nZXQudG1wIik7DQorICAgICAgICBqYXZhLmlvLkZpbGUgZiA9IG5l dyBGaWxlKGdldFByb2plY3REaXIoKSwgImdldC50bXAiKTsNCiAgICAgICAgIGlmICghZi5leGlz dHMoKSkgeyANCiAgICAgICAgICAgICBmYWlsKCJnZXQgZmFpbGVkIik7DQogICAgICAgICB9IGVs c2Ugew0KICAgICAgICAgICAgIGYuZGVsZXRlKCk7DQogICAgICAgICB9DQotKi8gICAgICAgIA0K KyAgICAgICAgDQogICAgIH0NCiAgICAgDQogfQ0KDQpJbmRleDogc3JjL3Rlc3RjYXNlcy9vcmcv YXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9HemlwVGVzdC5qYXZhDQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg ZmlsZTogL2hvbWUvY3ZzcHVibGljL2pha2FydGEtYW50L3NyYy90ZXN0Y2FzZXMvb3JnL2FwYWNo ZS90b29scy9hbnQvdGFza2RlZnMvR3ppcFRlc3QuamF2YSx2DQpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMg0KZGlmZiAtdSAtcjEuMiBHemlwVGVzdC5qYXZhDQotLS0gc3JjL3Rlc3RjYXNlcy9vcmcv YXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9HemlwVGVzdC5qYXZhCTIwMDEvMDEvMDMgMTQ6MTg6 NDkJMS4yDQorKysgc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9H emlwVGVzdC5qYXZhCTIwMDEvMDMvMDYgMjA6MDk6MzANCkBAIC01NCw2ICs1NCw4IEBADQogDQog cGFja2FnZSBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmczsNCiANCitpbXBvcnQgamF2YS5p by5GaWxlOw0KKyANCiAvKioNCiAgKiBAYXV0aG9yIE5pY28gU2Vlc3NsZSA8bmljb0BzZWVzc2xl LmRlPiANCiAgKi8NCkBAIC04NSw3ICs4Nyw3IEBADQogDQogICAgIHB1YmxpYyB2b2lkIHRlc3Q1 KCkgeyANCiAgICAgICAgIGV4ZWN1dGVUYXJnZXQoInRlc3Q1Iik7DQotICAgICAgICBqYXZhLmlv LkZpbGUgZiA9IG5ldyBqYXZhLmlvLkZpbGUoInNyYy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZzL2d6 aXAudG1wIik7DQorICAgICAgICBqYXZhLmlvLkZpbGUgZiA9IG5ldyBqYXZhLmlvLkZpbGUoZ2V0 UHJvamVjdERpcigpLCAiZ3ppcC50bXAiKTsNCiAgICAgICAgIGlmICghZi5leGlzdHMoKSkgeyAN CiAgICAgICAgICAgICBmYWlsKCJnemlwIGZhaWxlZCIpOw0KICAgICAgICAgfQ0KDQpJbmRleDog c3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9KYXJUZXN0LmphdmEN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9jdnNwdWJsaWMvamFrYXJ0YS1hbnQvc3JjL3Rl c3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9KYXJUZXN0LmphdmEsdg0KcmV0 cmlldmluZyByZXZpc2lvbiAxLjINCmRpZmYgLXUgLXIxLjIgSmFyVGVzdC5qYXZhDQotLS0gc3Jj L3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9KYXJUZXN0LmphdmEJMjAw MS8wMS8wMyAxNDoxODo0OQkxLjINCisrKyBzcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUvdG9vbHMv YW50L3Rhc2tkZWZzL0phclRlc3QuamF2YQkyMDAxLzAzLzA2IDIwOjA5OjMwDQpAQCAtNjMsNyAr NjMsNyBAQA0KIHB1YmxpYyBjbGFzcyBKYXJUZXN0IGV4dGVuZHMgVGFza2RlZnNUZXN0IHsNCiAN CiAgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBqYXJNb2RpZmllZERhdGU7DQotICAgIHByaXZhdGUg c3RhdGljIFN0cmluZyB0ZW1wSmFyID0gInNyYy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZzL3RtcC5q YXIiOw0KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgdGVtcEphciA9ICJ0bXAuamFyIjsNCiAN CiAgICAgcHVibGljIEphclRlc3QoU3RyaW5nIG5hbWUpIHsNCiAgICAgICAgIHN1cGVyKG5hbWUp Ow0KQEAgLTg3LDE0ICs4NywxNCBAQA0KIA0KICAgICBwdWJsaWMgdm9pZCB0ZXN0NCgpIHsNCiAg ICAgICAgIGV4ZWN1dGVUYXJnZXQoInRlc3Q0Iik7DQotICAgICAgICBGaWxlIGphckZpbGUgPSBu ZXcgRmlsZSh0ZW1wSmFyKTsNCisgICAgICAgIEZpbGUgamFyRmlsZSA9IG5ldyBGaWxlKGdldFBy b2plY3REaXIoKSwgdGVtcEphcik7DQogICAgICAgICBhc3NlcnQoamFyRmlsZS5leGlzdHMoKSk7 DQogICAgICAgICBqYXJNb2RpZmllZERhdGUgPSBqYXJGaWxlLmxhc3RNb2RpZmllZCgpOw0KICAg ICB9DQogDQogICAgIHB1YmxpYyB2b2lkIFhYWHRlc3Q1KCkgew0KICAgICAgICAgZXhlY3V0ZVRh cmdldCgidGVzdDUiKTsNCi0gICAgICAgIEZpbGUgamFyRmlsZSA9IG5ldyBGaWxlKHRlbXBKYXIp Ow0KKyAgICAgICAgRmlsZSBqYXJGaWxlID0gbmV3IEZpbGUoZ2V0UHJvamVjdERpcigpLCB0ZW1w SmFyKTsNCiAgICAgICAgIGFzc2VydEVxdWFscyhqYXJNb2RpZmllZERhdGUsIGphckZpbGUubGFz dE1vZGlmaWVkKCkpOw0KICAgICB9DQogfQ0KDQpJbmRleDogc3JjL3Rlc3RjYXNlcy9vcmcvYXBh Y2hlL3Rvb2xzL2FudC90YXNrZGVmcy9Na2RpclRlc3QuamF2YQ0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZp bGU6IC9ob21lL2N2c3B1YmxpYy9qYWthcnRhLWFudC9zcmMvdGVzdGNhc2VzL29yZy9hcGFjaGUv dG9vbHMvYW50L3Rhc2tkZWZzL01rZGlyVGVzdC5qYXZhLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g MS4zDQpkaWZmIC11IC1yMS4zIE1rZGlyVGVzdC5qYXZhDQotLS0gc3JjL3Rlc3RjYXNlcy9vcmcv YXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9Na2RpclRlc3QuamF2YQkyMDAxLzAxLzAzIDE0OjE4 OjQ5CTEuMw0KKysrIHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMv TWtkaXJUZXN0LmphdmEJMjAwMS8wMy8wNiAyMDowOTozMA0KQEAgLTEsMyArMSw1IEBADQorcGFj a2FnZSBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmczsNCisNCiAvKg0KICAqIFRoZSBBcGFj aGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjENCiAgKg0KQEAgLTUyLDggKzU0LDYgQEAN CiAgKiA8aHR0cDovL3d3dy5hcGFjaGUub3JnLz4uDQogICovDQogDQotcGFja2FnZSBvcmcuYXBh Y2hlLnRvb2xzLmFudC50YXNrZGVmczsNCi0NCiAvKioNCiAgKiBAYXV0aG9yIE5pY28gU2Vlc3Ns ZSA8bmljb0BzZWVzc2xlLmRlPiANCiAgKi8NCkBAIC02MSw4ICs2MSw4IEBADQogICAgIA0KICAg ICBwdWJsaWMgTWtkaXJUZXN0KFN0cmluZyBuYW1lKSB7IA0KICAgICAgICAgc3VwZXIobmFtZSk7 DQotICAgIH0gICAgDQotICAgIA0KKyAgICB9DQorDQogICAgIHB1YmxpYyB2b2lkIHNldFVwKCkg eyANCiAgICAgICAgIGNvbmZpZ3VyZVByb2plY3QoInNyYy9ldGMvdGVzdGNhc2VzL3Rhc2tkZWZz L21rZGlyLnhtbCIpOw0KICAgICB9DQpAQCAtNzcsMTIgKzc3LDExIEBADQogDQogICAgIHB1Ymxp YyB2b2lkIHRlc3QzKCkgeyANCiAgICAgICAgIGV4ZWN1dGVUYXJnZXQoInRlc3QzIik7DQotICAg ICAgICBqYXZhLmlvLkZpbGUgZiA9IG5ldyBqYXZhLmlvLkZpbGUoInNyYy9ldGMvdGVzdGNhc2Vz L3Rhc2tkZWZzL3Rlc3RkaXIudG1wIik7DQorICAgICAgICBqYXZhLmlvLkZpbGUgZiA9IG5ldyBq YXZhLmlvLkZpbGUoZ2V0UHJvamVjdERpcigpLCAidGVzdGRpci50bXAiKTsNCiAgICAgICAgIGlm ICghZi5leGlzdHMoKSB8fCAhZi5pc0RpcmVjdG9yeSgpKSB7IA0KICAgICAgICAgICAgIGZhaWwo Im1rZGlyIGZhaWxlZCIpOw0KICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICBmLmRlbGV0 ZSgpOw0KICAgICAgICAgfQ0KICAgICB9DQotICAgIA0KIH0NCg0KSW5kZXg6IHNyYy90ZXN0Y2Fz ZXMvb3JnL2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMvVGFza2RlZnNUZXN0LmphdmENCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NClJDUyBmaWxlOiAvaG9tZS9jdnNwdWJsaWMvamFrYXJ0YS1hbnQvc3JjL3Rlc3RjYXNl cy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90YXNrZGVmcy9UYXNrZGVmc1Rlc3QuamF2YSx2DQpyZXRy aWV2aW5nIHJldmlzaW9uIDEuNA0KZGlmZiAtdSAtcjEuNCBUYXNrZGVmc1Rlc3QuamF2YQ0KLS0t IHNyYy90ZXN0Y2FzZXMvb3JnL2FwYWNoZS90b29scy9hbnQvdGFza2RlZnMvVGFza2RlZnNUZXN0 LmphdmEJMjAwMS8wMi8xOCAxMzo0NDo0MwkxLjQNCisrKyBzcmMvdGVzdGNhc2VzL29yZy9hcGFj aGUvdG9vbHMvYW50L3Rhc2tkZWZzL1Rhc2tkZWZzVGVzdC5qYXZhCTIwMDEvMDMvMDYgMjE6MzM6 NTMNCkBAIC03OSwxMiArNzksNyBAQA0KICAgICB9DQogDQogICAgIHByb3RlY3RlZCB2b2lkIGV4 cGVjdEJ1aWxkRXhjZXB0aW9uKFN0cmluZyB0YXNrbmFtZSwgU3RyaW5nIGNhdXNlKSB7IA0KLSAg ICAgICAgdHJ5IHsgDQotICAgICAgICAgICAgZXhlY3V0ZVRhcmdldCh0YXNrbmFtZSk7DQotICAg ICAgICB9IGNhdGNoIChvcmcuYXBhY2hlLnRvb2xzLmFudC5CdWlsZEV4Y2VwdGlvbiBleCkgeyAN Ci0gICAgICAgICAgICByZXR1cm47DQotICAgICAgICB9DQotICAgICAgICBmYWlsKCJTaG91bGQg dGhyb3cgQnVpbGRFeGNlcHRpb24gYmVjYXVzZTogIiArIGNhdXNlKTsNCisgICAgICAgIGV4cGVj dFNwZWNpZmljQnVpbGRFeGNlcHRpb24odGFza25hbWUsIGNhdXNlLCBudWxsKTsNCiAgICAgfQ0K IA0KICAgICBwcm90ZWN0ZWQgdm9pZCBleHBlY3RPdXRwdXQoU3RyaW5nIHRhc2tuYW1lLCBTdHJp bmcgb3V0cHV0KSB7IA0KQEAgLTE3MCw2ICsxNjUsMjEgQEANCiAgICAgICAgIA0KICAgICB9DQog ICAgIA0KKyAgICBwcm90ZWN0ZWQgRmlsZSBnZXRQcm9qZWN0RGlyKCkgew0KKyAgICAgICAgcmV0 dXJuIHByb2plY3QuZ2V0QmFzZURpcigpOw0KKyAgICB9DQorDQorICAgIHByb3RlY3RlZCB2b2lk IGV4cGVjdFNwZWNpZmljQnVpbGRFeGNlcHRpb24oU3RyaW5nIHRhc2tuYW1lLCBTdHJpbmcgY2F1 c2UsIFN0cmluZyBtc2cpIHsgDQorICAgICAgICB0cnkgeyANCisgICAgICAgICAgICBleGVjdXRl VGFyZ2V0KHRhc2tuYW1lKTsNCisgICAgICAgIH0gY2F0Y2ggKG9yZy5hcGFjaGUudG9vbHMuYW50 LkJ1aWxkRXhjZXB0aW9uIGV4KSB7DQorICAgICAgICAgICAgaWYgKChudWxsICE9IG1zZykgJiYg KGV4LmdldE1lc3NhZ2UoKSAhPSBtc2cpKSB7DQorICAgICAgICAgICAgICAgIGZhaWwoIlNob3Vs ZCB0aHJvdyBCdWlsZEV4Y2VwdGlvbiBiZWNhdXNlICciICsgY2F1c2UgKyAiJyB3aXRoIG1lc3Nh Z2UgJyIgKyBtc2cgKyAiJyAocmVjZWl2ZWQgbWVzc2FnZSAnIiArIGV4LmdldE1lc3NhZ2UoKSAr ICInIGluc3RlYWQpIik7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIHJldHVybjsNCisg ICAgICAgIH0NCisgICAgICAgIGZhaWwoIlNob3VsZCB0aHJvdyBCdWlsZEV4Y2VwdGlvbiBiZWNh dXNlOiAiICsgY2F1c2UpOw0KKyAgICB9DQogICAgIHByaXZhdGUgY2xhc3MgQW50T3V0cHV0U3Ry ZWFtIGV4dGVuZHMgamF2YS5pby5PdXRwdXRTdHJlYW0geyANCiAgICAgICAgIHB1YmxpYyB2b2lk IHdyaXRlKGludCBiKSB7IA0KICAgICAgICAgICAgIG91dEJ1ZmZlci5hcHBlbmQoKGNoYXIpYik7 DQo= ----=_o8uaat8oia6eensg5bvrirbbbkkodar6vq.MFSBCHJLHS--