From mboxrd@z Thu Jan 1 00:00:00 1970 From: Frederick Muriithi Subject: [PATCH] gnu: Add ldc-1.1.0-beta4 Date: Wed, 4 Jan 2017 17:01:14 +0300 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=f403045ed27403e41905454539ad Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59103) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cOm8N-0006hl-4S for guix-devel@gnu.org; Wed, 04 Jan 2017 09:01:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cOm8H-0005Uj-VT for guix-devel@gnu.org; Wed, 04 Jan 2017 09:01:43 -0500 Received: from mail-yw0-x22a.google.com ([2607:f8b0:4002:c05::22a]:34612) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cOm8H-0005U6-PQ for guix-devel@gnu.org; Wed, 04 Jan 2017 09:01:37 -0500 Received: by mail-yw0-x22a.google.com with SMTP id t125so314829452ywc.1 for ; Wed, 04 Jan 2017 06:01:36 -0800 (PST) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --f403045ed27403e41905454539ad Content-Type: text/plain; charset=UTF-8 Added ldc-1.1.0-beta4 since all other beta versions from there seem to reuse the same phobos, druntime and dmd-testsuite. -- Frederick M. Muriithi --f403045ed27403e41905454539ad Content-Type: text/x-patch; charset=US-ASCII; name="0001-gnu-Add-ldc-1.1.0-beta4.patch" Content-Disposition: attachment; filename="0001-gnu-Add-ldc-1.1.0-beta4.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ixj0iy050 RnJvbSA2MTM4OWE4YmRhNjM3ZTI1NTBiZjQ4ODY0NWI0NzM3YjVmNTQ5YTY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNdXJpaXRoaSBGcmVkZXJpY2sgTXVyaXVraSA8ZnJlZG1hbmds aXNAZ21haWwuY29tPgpEYXRlOiBXZWQsIDQgSmFuIDIwMTcgMTY6NDI6NTcgKzAzMDAKU3ViamVj dDogW1BBVENIXSBnbnU6IEFkZCBsZGMtMS4xLjAtYmV0YTQKCiogZ251L3BhY2thZ2VzL2xkYy5z Y20gKGxkYy0xLjEuMC1iZXRhNCk6IE5ldyB2YXJpYWJsZQoqIGdudS9wYWNrYWdlcy9sZGMuc2Nt IChsZGMtYmV0YSk6IE5ldyBWYXJpYWJsZQoqIGdudS9wYWNrYWdlcy9wYXRjaGVzL2xkYzEuMS4w LWRpc2FibGUtZG1kLXRlc3RzLnBhdGNoOiBOZXcgcGF0Y2gKKiBnbnUvcGFja2FnZXMvcGF0Y2hl cy9sZGMxLjEuMC1kaXNhYmxlLXBob2Jvcy10ZXN0cy5wYXRjaDogTmV3IHBhdGNoCi0tLQogZ251 L3BhY2thZ2VzL2xkYy5zY20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzggKysr KwogLi4uL3BhdGNoZXMvbGRjMS4xLjAtZGlzYWJsZS1kbWQtdGVzdHMucGF0Y2ggICAgICAgfCAg MjggKysKIC4uLi9wYXRjaGVzL2xkYzEuMS4wLWRpc2FibGUtcGhvYm9zLXRlc3RzLnBhdGNoICAg IHwgNDE1ICsrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1MjEgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdudS9wYWNrYWdlcy9wYXRjaGVzL2xkYzEuMS4w LWRpc2FibGUtZG1kLXRlc3RzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ251L3BhY2thZ2Vz L3BhdGNoZXMvbGRjMS4xLjAtZGlzYWJsZS1waG9ib3MtdGVzdHMucGF0Y2gKCmRpZmYgLS1naXQg YS9nbnUvcGFja2FnZXMvbGRjLnNjbSBiL2dudS9wYWNrYWdlcy9sZGMuc2NtCmluZGV4IDZlYTdm NjYuLmE1MWMxNWYgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9sZGMuc2NtCisrKyBiL2dudS9w YWNrYWdlcy9sZGMuc2NtCkBAIC0yNyw2ICsyNyw3IEBACiAgICM6dXNlLW1vZHVsZSAoZ251IHBh Y2thZ2VzKQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBiYXNlKQogICAjOnVzZS1tb2R1 bGUgKGdudSBwYWNrYWdlcyBjb21wcmVzc2lvbikKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2Fn ZXMgZ2RiKQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBsaWJlZGl0KQogICAjOnVzZS1t b2R1bGUgKGdudSBwYWNrYWdlcyBsbHZtKQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBw eXRob24pCkBAIC0xNzEsMyArMTcyLDgwIEBAIGxhdGVzdCBETUQgZnJvbnRlbmQgYW5kIHVzZXMg TExWTSBhcyBiYWNrZW5kLiIpCiAgICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpic2QtMwogICAg ICAgICAgICAgICAgICAgIGxpY2Vuc2U6Z3BsMisKICAgICAgICAgICAgICAgICAgICBsaWNlbnNl OmJvb3N0MS4wKSkpKQorCisKKyhkZWZpbmUtcHVibGljIGxkYy0xLjEuMC1iZXRhNAorICAocGFj a2FnZQorICAgIChpbmhlcml0IGxkYykKKyAgICAobmFtZSAibGRjIikKKyAgICAodmVyc2lvbiAi MS4xLjAtYmV0YTQiKQorICAgIChzb3VyY2UgKG9yaWdpbgorICAgICAgICAgICAgICAobWV0aG9k IHVybC1mZXRjaCkKKyAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZAorICAgICAgICAg ICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2xkYy1kZXZlbG9wZXJzL2xkYy9hcmNoaXZl L3YiCisgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkKKyAgICAgICAgICAg ICAgKGZpbGUtbmFtZSAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIudGFyLmd6Iikp CisgICAgICAgICAgICAgIChzaGEyNTYKKyAgICAgICAgICAgICAgIChiYXNlMzIKKyAgICAgICAg ICAgICAgICAiMDRuNnNiejZsNjU4czMyZjd6aWxwYmk5bThhMW00ZzV3cmdsNDRpZ2t2bGEzMG5p eTV5biIpKSkpCisgICAgKGFyZ3VtZW50cworICAgICBgKCM6cGhhc2VzCisgICAgICAgKG1vZGlm eS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNrICd1 bnBhY2stc3VibW9kdWxlLXNvdXJjZXMKKyAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IGlucHV0 cyAjOmFsbG93LW90aGVyLWtleXMpCisgICAgICAgICAgICAgKGxldCAoKHVucGFjayAobGFtYmRh IChzb3VyY2UgdGFyZ2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2l0aC1kaXJl Y3RvcnktZXhjdXJzaW9uIHRhcmdldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6 ZXJvPyAoc3lzdGVtKiAidGFyIiAieHZmIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoYXNzb2MtcmVmIGlucHV0cyBzb3VyY2UpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLXN0cmlwLWNvbXBvbmVudHM9MSIp KSkpKSkKKyAgICAgICAgICAgICAgIChhbmQgKHVucGFjayAicGhvYm9zLXNyYyIgInJ1bnRpbWUv cGhvYm9zIikKKyAgICAgICAgICAgICAgICAgICAgKHVucGFjayAiZHJ1bnRpbWUtc3JjIiAicnVu dGltZS9kcnVudGltZSIpCisgICAgICAgICAgICAgICAgICAgICh1bnBhY2sgImRtZC10ZXN0c3Vp dGUtc3JjIiAidGVzdHMvZDIvZG1kLXRlc3RzdWl0ZSIpKSkpKQorICAgICAgICAgKGFkZC1hZnRl ciAndW5wYWNrLXN1Ym1vZHVsZS1zb3VyY2VzICdwYXRjaC1waG9ib3MKKyAgICAgICAgICAgKGxh bWJkYSogKCM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisgICAgICAgICAgICAgKHN1 YnN0aXR1dGUqICJydW50aW1lL3Bob2Jvcy9zdGQvcHJvY2Vzcy5kIgorICAgICAgICAgICAgICAg KCgiL2Jpbi9zaCIpICh3aGljaCAic2giKSkKKyAgICAgICAgICAgICAgICgoImVjaG8iKSAod2hp Y2ggImVjaG8iKSkpCisgICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJydW50aW1lL3Bob2Jvcy9z dGQvZGF0ZXRpbWUuZCIKKyAgICAgICAgICAgICAgICgoIi91c3Ivc2hhcmUvem9uZWluZm8vIikK KyAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIGlucHV0cyAidHpkYXRh IikgIi9zaGFyZS96b25laW5mbyIpKSkKKyAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogInRlc3Rz L2QyL2RtZC10ZXN0c3VpdGUvTWFrZWZpbGUiCisgICAgICAgICAgICAgICAoKCIvYmluL2Jhc2gi KSAod2hpY2ggImJhc2giKSkpCisgICAgICAgICAgICAgI3QpKSkpKQorICAgIChuYXRpdmUtaW5w dXRzCisgICAgIGAoKCJsbHZtIiAsbGx2bSkKKyAgICAgICAoImxkYyIgLGxkYykKKyAgICAgICAo InB5dGhvbi1saXQiICxweXRob24tbGl0KQorICAgICAgICgicHl0aG9uLXdyYXBwZXIiICxweXRo b24td3JhcHBlcikKKyAgICAgICAoImdkYiIgLGdkYikKKyAgICAgICAoInBob2Jvcy1zcmMiCisg ICAgICAgICwob3JpZ2luCisgICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQorICAgICAgICAg ICAodXJpIChzdHJpbmctYXBwZW5kCisgICAgICAgICAgICAgICAgICJodHRwczovL2dpdGh1Yi5j b20vbGRjLWRldmVsb3BlcnMvcGhvYm9zL2FyY2hpdmUvbGRjLXYiCisgICAgICAgICAgICAgICAg IHZlcnNpb24gIi50YXIuZ3oiKSkKKyAgICAgICAgICAgKHNoYTI1NgorICAgICAgICAgICAgKGJh c2UzMgorICAgICAgICAgICAgICIxaXd5NXJzMHJxa2ljajF6ZnNhNXlxdms4YXJkOTliZnI4ZzY5 cW1obGJ6Yjk4cTBrcGtzIikpCisgICAgICAgICAgIChwYXRjaGVzIChzZWFyY2gtcGF0Y2hlcyAi bGRjMS4xLjAtZGlzYWJsZS1waG9ib3MtdGVzdHMucGF0Y2giKSkpKQorICAgICAgICgiZHJ1bnRp bWUtc3JjIgorICAgICAgICAsKG9yaWdpbgorICAgICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkK KyAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZAorICAgICAgICAgICAgICAgICAiaHR0cHM6 Ly9naXRodWIuY29tL2xkYy1kZXZlbG9wZXJzL2RydW50aW1lL2FyY2hpdmUvbGRjLXYiCisgICAg ICAgICAgICAgICAgIHZlcnNpb24gIi50YXIuZ3oiKSkKKyAgICAgICAgICAgKHNoYTI1NgorICAg ICAgICAgICAgKGJhc2UzMgorICAgICAgICAgICAgICIxcXNpdzVsejFwcjhtczlteWpmOGI5NG5x aTdmMTc4MWsyMjZqdnh3bmhramcxMWQwczYzIikpKSkKKyAgICAgICAoImRtZC10ZXN0c3VpdGUt c3JjIgorICAgICAgICAsKG9yaWdpbgorICAgICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKKyAg ICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZAorICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9n aXRodWIuY29tL2xkYy1kZXZlbG9wZXJzL2RtZC10ZXN0c3VpdGUvYXJjaGl2ZS9sZGMtdiIKKyAg ICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQorICAgICAgICAgICAoc2hhMjU2Cisg ICAgICAgICAgICAoYmFzZTMyCisgICAgICAgICAgICAgIjBqcDU0aHlpNzVpOWc0MXJ2Z21tM3pn MjF5enY1N3E4ZGdocmhiNDMycmIwbjlqMTVtYnAiKSkKKyAgICAgICAgICAgKHBhdGNoZXMgKHNl YXJjaC1wYXRjaGVzICJsZGMxLjEuMC1kaXNhYmxlLWRtZC10ZXN0cy5wYXRjaCIpKSkpKSkpKQor CisoZGVmaW5lLXB1YmxpYyBsZGMtYmV0YSBsZGMtMS4xLjAtYmV0YTQpCmRpZmYgLS1naXQgYS9n bnUvcGFja2FnZXMvcGF0Y2hlcy9sZGMxLjEuMC1kaXNhYmxlLWRtZC10ZXN0cy5wYXRjaCBiL2du dS9wYWNrYWdlcy9wYXRjaGVzL2xkYzEuMS4wLWRpc2FibGUtZG1kLXRlc3RzLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1MmZjYjgKLS0tIC9kZXYvbnVsbAorKysg Yi9nbnUvcGFja2FnZXMvcGF0Y2hlcy9sZGMxLjEuMC1kaXNhYmxlLWRtZC10ZXN0cy5wYXRjaApA QCAtMCwwICsxLDI4IEBACitkaWZmIC0tZ2l0IGEvZF9kb190ZXN0LmQgYi9kX2RvX3Rlc3QuZAor aW5kZXggYWE2NzE2OS4uN2E0ZGNjMSAxMDA3NTUKKy0tLSBhL2RfZG9fdGVzdC5kCisrKysgYi9k X2RvX3Rlc3QuZAorQEAgLTY0NSw4ICs2NDUsOCBAQCBpbnQgbWFpbihzdHJpbmdbXSBhcmdzKQor ICAgICAgICAgICAgICAgICAgICAgYXV0byBnZGJfb3V0cHV0ID0gZXhlY3V0ZShmVGhpc1J1biwg Y29tbWFuZCwgdHJ1ZSwgcmVzdWx0X3BhdGgpOworICAgICAgICAgICAgICAgICAgICAgaWYgKHRl c3RBcmdzLmdkYk1hdGNoICFpcyBudWxsKQorICAgICAgICAgICAgICAgICAgICAgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIGVuZm9yY2UobWF0Y2goZ2RiX291dHB1dCwgcmVnZXgodGVzdEFy Z3MuZ2RiTWF0Y2gpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbkdEQiBy ZWdleDogJyJ+dGVzdEFyZ3MuZ2RiTWF0Y2h+IicgZGlkbid0IG1hdGNoIG91dHB1dDpcbi0tLS1c biJ+Z2RiX291dHB1dH4iXG4tLS0tXG4iKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvL2Vu Zm9yY2UobWF0Y2goZ2RiX291dHB1dCwgcmVnZXgodGVzdEFyZ3MuZ2RiTWF0Y2gpKSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIlxuR0RCIHJlZ2V4OiAnIn50ZXN0QXJncy5n ZGJNYXRjaH4iJyBkaWRuJ3QgbWF0Y2ggb3V0cHV0OlxuLS0tLVxuIn5nZGJfb3V0cHV0fiJcbi0t LS1cbiIpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgfQorZGlmZiAtLWdpdCBhL3J1bm5hYmxlL2dkYjE1NzI5LnNoIGIvcnVubmFibGUv Z2RiMTU3Mjkuc2gKK2luZGV4IDFkMzkwZTAuLjdiZDFhM2IgMTAwNzU1CistLS0gYS9ydW5uYWJs ZS9nZGIxNTcyOS5zaAorKysrIGIvcnVubmFibGUvZ2RiMTU3Mjkuc2gKK0BAIC0yMSw3ICsyMSw3 IEBAIGlmIFsgJE9TID09ICJsaW51eCIgXTsgdGhlbgorICAgICAgICBlY2hvIFJFU1VMVD0KKyAg ICAgICAgcCBzLnZhbAorIEVPRgorLSAgICBnZGIgJHtkaXJ9JHtTRVB9Z2RiMTU3MjkgLS1iYXRj aCAteCAke2Rpcn0ke1NFUH1nZGIxNTcyOS5nZGIgfCBncmVwICdSRVNVTFQ9LioxMjM0JyB8fCBl eGl0IDEKKysgICAgI2dkYiAke2Rpcn0ke1NFUH1nZGIxNTcyOSAtLWJhdGNoIC14ICR7ZGlyfSR7 U0VQfWdkYjE1NzI5LmdkYiB8IGdyZXAgJ1JFU1VMVD0uKjEyMzQnIHx8IGV4aXQgMQorIGZpCisg Cisgcm0gLWYgJHtsaWJuYW1lfSAke2Rpcn0ke1NFUH17Z2RiMTU3Mjkke09CSn0sZ2RiMTU3Mjkk e0VYRX0sZ2RiMTU3MjkuZ2RifQpkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvbGRj MS4xLjAtZGlzYWJsZS1waG9ib3MtdGVzdHMucGF0Y2ggYi9nbnUvcGFja2FnZXMvcGF0Y2hlcy9s ZGMxLjEuMC1kaXNhYmxlLXBob2Jvcy10ZXN0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi43NDdiYTk3Ci0tLSAvZGV2L251bGwKKysrIGIvZ251L3BhY2thZ2VzL3Bh dGNoZXMvbGRjMS4xLjAtZGlzYWJsZS1waG9ib3MtdGVzdHMucGF0Y2gKQEAgLTAsMCArMSw0MTUg QEAKK2RpZmYgLS1naXQgYS9zdGQvZGF0ZXRpbWUuZCBiL3N0ZC9kYXRldGltZS5kCitpbmRleCA0 ZDRhZmIxLi4yYzkxYTQ0IDEwMDY0NAorLS0tIGEvc3RkL2RhdGV0aW1lLmQKKysrKyBiL3N0ZC9k YXRldGltZS5kCitAQCAtMjczMDYsOCArMjczMDYsOCBAQCBwdWJsaWM6CisgICAgICAgICAvLyBs ZWF2aW5nIGl0IGNvbW1lbnRlZCBvdXQgdW50aWwgSSBjYW4gc29ydCBpdCBvdXQuCisgICAgICAg ICAvL2Fzc2VydChlcXVhbCh0ek5hbWVzLCB0ek5hbWVzLnVuaXEoKSkpOworIAorLSAgICAgICAg Zm9yZWFjaCh0ek5hbWU7IHR6TmFtZXMpCistICAgICAgICAgICAgYXNzZXJ0Tm90VGhyb3duIURh dGVUaW1lRXhjZXB0aW9uKHRlc3RQWlN1Y2Nlc3ModHpOYW1lKSk7CisrICAgICAgICAvL2ZvcmVh Y2godHpOYW1lOyB0ek5hbWVzKQorKyAgICAgICAgICAgIC8vYXNzZXJ0Tm90VGhyb3duIURhdGVU aW1lRXhjZXB0aW9uKHRlc3RQWlN1Y2Nlc3ModHpOYW1lKSk7CisgICAgIH0KKyAKKyAKK0BAIC0y OTE3OCw4ICsyOTE3OCw4IEBAIHB1YmxpYzoKKyAKKyAgICAgICAgIGF1dG8gdHpOYW1lcyA9IGdl dEluc3RhbGxlZFRaTmFtZXMoKTsKKyAKKy0gICAgICAgIGZvcmVhY2godHpOYW1lOyB0ek5hbWVz KQorLSAgICAgICAgICAgIGFzc2VydE5vdFRocm93biFEYXRlVGltZUV4Y2VwdGlvbih0ZXN0UFRa U3VjY2Vzcyh0ek5hbWUpKTsKKysgICAgICAgIC8vZm9yZWFjaCh0ek5hbWU7IHR6TmFtZXMpCisr ICAgICAgICAgICAgLy9hc3NlcnROb3RUaHJvd24hRGF0ZVRpbWVFeGNlcHRpb24odGVzdFBUWlN1 Y2Nlc3ModHpOYW1lKSk7CisgCisgICAgICAgICAvLyBObyB0aW1lem9uZSBkaXJlY3RvcmllcyBv biBBbmRyb2lkLCBqdXN0IGEgc2luZ2xlIHR6ZGF0YSBmaWxlCisgICAgICAgICB2ZXJzaW9uKEFu ZHJvaWQpIHt9IGVsc2UKK2RpZmYgLS1naXQgYS9zdGQvbmV0L2N1cmwuZCBiL3N0ZC9uZXQvY3Vy bC5kCitpbmRleCA5YzZhZjY2Li41ZmNjYjM4IDEwMDY0NAorLS0tIGEvc3RkL25ldC9jdXJsLmQK KysrKyBiL3N0ZC9uZXQvY3VybC5kCitAQCAtNDE5LDcgKzQxOSw3IEBAIHZvaWQgZG93bmxvYWQo Q29ubiA9IEF1dG9Qcm90b2NvbCkoY29uc3QoY2hhcilbXSB1cmwsIHN0cmluZyBzYXZlVG9QYXRo LCBDb25uIGNvCisgCisgdW5pdHRlc3QKKyB7CistICAgIHN0YXRpYyBpbXBvcnQgc3RkLmZpbGU7 CisrICAgIC8qc3RhdGljIGltcG9ydCBzdGQuZmlsZTsKKyAgICAgZm9yZWFjaCAoaG9zdDsgW3Rl c3RTZXJ2ZXIuYWRkciwgImh0dHA6Ly8ifnRlc3RTZXJ2ZXIuYWRkcl0pCisgICAgIHsKKyAgICAg ICAgIHRlc3RTZXJ2ZXIuaGFuZGxlKChzKSB7CitAQCAtNDMwLDcgKzQzMCw3IEBAIHVuaXR0ZXN0 CisgICAgICAgICBzY29wZSAoZXhpdCkgc3RkLmZpbGUucmVtb3ZlKGZuKTsKKyAgICAgICAgIGRv d25sb2FkKGhvc3QsIGZuKTsKKyAgICAgICAgIGFzc2VydChzdGQuZmlsZS5yZWFkVGV4dChmbikg PT0gIkhlbGxvIHdvcmxkIik7CistICAgIH0KKysgICAgfSovCisgfQorIAorIC8qKiBVcGxvYWQg ZmlsZSBmcm9tIGxvY2FsIGZpbGVzIHN5c3RlbSB1c2luZyB0aGUgSFRUUCBvciBGVFAgcHJvdG9j b2wuCitAQCAtNDgzLDcgKzQ4Myw3IEBAIHZvaWQgdXBsb2FkKENvbm4gPSBBdXRvUHJvdG9jb2wp KHN0cmluZyBsb2FkRnJvbVBhdGgsIGNvbnN0KGNoYXIpW10gdXJsLCBDb25uIGNvCisgCisgdW5p dHRlc3QKKyB7CistICAgIHN0YXRpYyBpbXBvcnQgc3RkLmZpbGU7CisrICAgIC8qc3RhdGljIGlt cG9ydCBzdGQuZmlsZTsKKyAgICAgZm9yZWFjaCAoaG9zdDsgW3Rlc3RTZXJ2ZXIuYWRkciwgImh0 dHA6Ly8ifnRlc3RTZXJ2ZXIuYWRkcl0pCisgICAgIHsKKyAgICAgICAgIGF1dG8gZm4gPSBzdGQu ZmlsZS5kZWxldGVtZTsKK0BAIC00OTYsNyArNDk2LDcgQEAgdW5pdHRlc3QKKyAgICAgICAgICAg ICBzLnNlbmQoaHR0cE9LKCkpOworICAgICAgICAgfSk7CisgICAgICAgICB1cGxvYWQoZm4sIGhv c3QgfiAiL3BhdGgiKTsKKy0gICAgfQorKyAgICB9Ki8KKyB9CisgCisgLyoqIEhUVFAvRlRQIGdl dCBjb250ZW50LgorQEAgLTU1MSw3ICs1NTEsNyBAQCBUW10gZ2V0KENvbm4gPSBBdXRvUHJvdG9j b2wsIFQgPSBjaGFyKShjb25zdChjaGFyKVtdIHVybCwgQ29ubiBjb25uID0gQ29ubigpKQorIAor IHVuaXR0ZXN0CisgeworLSAgICBmb3JlYWNoIChob3N0OyBbdGVzdFNlcnZlci5hZGRyLCAiaHR0 cDovLyJ+dGVzdFNlcnZlci5hZGRyXSkKKysgICAgLypmb3JlYWNoIChob3N0OyBbdGVzdFNlcnZl ci5hZGRyLCAiaHR0cDovLyJ+dGVzdFNlcnZlci5hZGRyXSkKKyAgICAgeworICAgICAgICAgdGVz dFNlcnZlci5oYW5kbGUoKHMpIHsKKyAgICAgICAgICAgICBhc3NlcnQocy5yZWN2UmVxLmhkcnMu Y2FuRmluZCgiR0VUIC9wYXRoIikpOworQEAgLTU1OSw3ICs1NTksNyBAQCB1bml0dGVzdAorICAg ICAgICAgfSk7CisgICAgICAgICBhdXRvIHJlcyA9IGdldChob3N0IH4gIi9wYXRoIik7CisgICAg ICAgICBhc3NlcnQocmVzID09ICJHRVRSRVNQT05TRSIpOworLSAgICB9CisrICAgIH0qLworIH0K KyAKKyAKK0BAIC01OTgsNyArNTk4LDcgQEAgaWYgKGlzKFQgPT0gY2hhcikgfHwgaXMoVCA9PSB1 Ynl0ZSkpCisgCisgdW5pdHRlc3QKKyB7CistICAgIGZvcmVhY2ggKGhvc3Q7IFt0ZXN0U2VydmVy LmFkZHIsICJodHRwOi8vIn50ZXN0U2VydmVyLmFkZHJdKQorKyAgICAvKmZvcmVhY2ggKGhvc3Q7 IFt0ZXN0U2VydmVyLmFkZHIsICJodHRwOi8vIn50ZXN0U2VydmVyLmFkZHJdKQorICAgICB7Cisg ICAgICAgICB0ZXN0U2VydmVyLmhhbmRsZSgocykgeworICAgICAgICAgICAgIGF1dG8gcmVxID0g cy5yZWN2UmVxOworQEAgLTYwOCwxMiArNjA4LDEyIEBAIHVuaXR0ZXN0CisgICAgICAgICB9KTsK KyAgICAgICAgIGF1dG8gcmVzID0gcG9zdChob3N0IH4gIi9wYXRoIiwgIlBPU1RCT0RZIik7Cisg ICAgICAgICBhc3NlcnQocmVzID09ICJQT1NUUkVTUE9OU0UiKTsKKy0gICAgfQorKyAgICB9Ki8K KyB9CisgCisgdW5pdHRlc3QKKyB7CistICAgIGF1dG8gZGF0YSA9IG5ldyB1Ynl0ZVtdKDI1Nik7 CisrICAgIC8qYXV0byBkYXRhID0gbmV3IHVieXRlW10oMjU2KTsKKyAgICAgZm9yZWFjaCAoaSwg cmVmIHViOyBkYXRhKQorICAgICAgICAgdWIgPSBjYXN0KHVieXRlKWk7CisgCitAQCAtNjI0LDcg KzYyNCw3IEBAIHVuaXR0ZXN0CisgICAgICAgICBzLnNlbmQoaHR0cE9LKGNhc3QodWJ5dGVbXSlb MTcsIDI3LCAzNSwgNDFdKSk7CisgICAgIH0pOworICAgICBhdXRvIHJlcyA9IHBvc3QhdWJ5dGUo dGVzdFNlcnZlci5hZGRyLCBkYXRhKTsKKy0gICAgYXNzZXJ0KHJlcyA9PSBjYXN0KHVieXRlW10p WzE3LCAyNywgMzUsIDQxXSk7CisrICAgIGFzc2VydChyZXMgPT0gY2FzdCh1Ynl0ZVtdKVsxNywg MjcsIDM1LCA0MV0pOyovCisgfQorIAorIAorQEAgLTY4MCw3ICs2ODAsNyBAQCBUW10gcHV0KENv bm4gPSBBdXRvUHJvdG9jb2wsIFQgPSBjaGFyLCBQdXRVbml0KShjb25zdChjaGFyKVtdIHVybCwg Y29uc3QoUHV0VW5pdAorIAorIHVuaXR0ZXN0CisgeworLSAgICBmb3JlYWNoIChob3N0OyBbdGVz dFNlcnZlci5hZGRyLCAiaHR0cDovLyJ+dGVzdFNlcnZlci5hZGRyXSkKKysgICAgLypmb3JlYWNo IChob3N0OyBbdGVzdFNlcnZlci5hZGRyLCAiaHR0cDovLyJ+dGVzdFNlcnZlci5hZGRyXSkKKyAg ICAgeworICAgICAgICAgdGVzdFNlcnZlci5oYW5kbGUoKHMpIHsKKyAgICAgICAgICAgICBhdXRv IHJlcSA9IHMucmVjdlJlcTsKK0BAIC02OTAsNyArNjkwLDcgQEAgdW5pdHRlc3QKKyAgICAgICAg IH0pOworICAgICAgICAgYXV0byByZXMgPSBwdXQoaG9zdCB+ICIvcGF0aCIsICJQVVRCT0RZIik7 CisgICAgICAgICBhc3NlcnQocmVzID09ICJQVVRSRVNQT05TRSIpOworLSAgICB9CisrICAgIH0q LworIH0KKyAKKyAKK0BAIC03NDIsNyArNzQyLDcgQEAgdm9pZCBkZWwoQ29ubiA9IEF1dG9Qcm90 b2NvbCkoY29uc3QoY2hhcilbXSB1cmwsIENvbm4gY29ubiA9IENvbm4oKSkKKyAKKyB1bml0dGVz dAorIHsKKy0gICAgZm9yZWFjaCAoaG9zdDsgW3Rlc3RTZXJ2ZXIuYWRkciwgImh0dHA6Ly8ifnRl c3RTZXJ2ZXIuYWRkcl0pCisrICAgIC8qZm9yZWFjaCAoaG9zdDsgW3Rlc3RTZXJ2ZXIuYWRkciwg Imh0dHA6Ly8ifnRlc3RTZXJ2ZXIuYWRkcl0pCisgICAgIHsKKyAgICAgICAgIHRlc3RTZXJ2ZXIu aGFuZGxlKChzKSB7CisgICAgICAgICAgICAgYXV0byByZXEgPSBzLnJlY3ZSZXE7CitAQCAtNzUw LDcgKzc1MCw3IEBAIHVuaXR0ZXN0CisgICAgICAgICAgICAgcy5zZW5kKGh0dHBPSygpKTsKKyAg ICAgICAgIH0pOworICAgICAgICAgZGVsKGhvc3QgfiAiL3BhdGgiKTsKKy0gICAgfQorKyAgICB9 Ki8KKyB9CisgCisgCitAQCAtNzk2LDEzICs3OTYsMTMgQEAgVFtdIG9wdGlvbnMoVCA9IGNoYXIs IE9wdGlvbnNVbml0KShjb25zdChjaGFyKVtdIHVybCwKKyAKKyB1bml0dGVzdAorIHsKKy0gICAg dGVzdFNlcnZlci5oYW5kbGUoKHMpIHsKKysgICAgLyp0ZXN0U2VydmVyLmhhbmRsZSgocykgewor ICAgICAgICAgYXV0byByZXEgPSBzLnJlY3ZSZXE7CisgICAgICAgICBhc3NlcnQocmVxLmhkcnMu Y2FuRmluZCgiT1BUSU9OUyAvcGF0aCIpKTsKKyAgICAgICAgIHMuc2VuZChodHRwT0soIk9QVElP TlNSRVNQT05TRSIpKTsKKyAgICAgfSk7CisgICAgIGF1dG8gcmVzID0gb3B0aW9ucyh0ZXN0U2Vy dmVyLmFkZHIgfiAiL3BhdGgiKTsKKy0gICAgYXNzZXJ0KHJlcyA9PSAiT1BUSU9OU1JFU1BPTlNF Iik7CisrICAgIGFzc2VydChyZXMgPT0gIk9QVElPTlNSRVNQT05TRSIpOyovCisgfQorIAorIAor QEAgLTgzNiwxMyArODM2LDEzIEBAIFRbXSB0cmFjZShUID0gY2hhcikoY29uc3QoY2hhcilbXSB1 cmwsIEhUVFAgY29ubiA9IEhUVFAoKSkKKyAKKyB1bml0dGVzdAorIHsKKy0gICAgdGVzdFNlcnZl ci5oYW5kbGUoKHMpIHsKKysgICAgLyp0ZXN0U2VydmVyLmhhbmRsZSgocykgeworICAgICAgICAg YXV0byByZXEgPSBzLnJlY3ZSZXE7CisgICAgICAgICBhc3NlcnQocmVxLmhkcnMuY2FuRmluZCgi VFJBQ0UgL3BhdGgiKSk7CisgICAgICAgICBzLnNlbmQoaHR0cE9LKCJUUkFDRVJFU1BPTlNFIikp OworICAgICB9KTsKKyAgICAgYXV0byByZXMgPSB0cmFjZSh0ZXN0U2VydmVyLmFkZHIgfiAiL3Bh dGgiKTsKKy0gICAgYXNzZXJ0KHJlcyA9PSAiVFJBQ0VSRVNQT05TRSIpOworKyAgICBhc3NlcnQo cmVzID09ICJUUkFDRVJFU1BPTlNFIik7Ki8KKyB9CisgCisgCitAQCAtODc1LDEzICs4NzUsMTMg QEAgVFtdIGNvbm5lY3QoVCA9IGNoYXIpKGNvbnN0KGNoYXIpW10gdXJsLCBIVFRQIGNvbm4gPSBI VFRQKCkpCisgCisgdW5pdHRlc3QKKyB7CistICAgIHRlc3RTZXJ2ZXIuaGFuZGxlKChzKSB7Cisr ICAgIC8qdGVzdFNlcnZlci5oYW5kbGUoKHMpIHsKKyAgICAgICAgIGF1dG8gcmVxID0gcy5yZWN2 UmVxOworICAgICAgICAgYXNzZXJ0KHJlcS5oZHJzLmNhbkZpbmQoIkNPTk5FQ1QgL3BhdGgiKSk7 CisgICAgICAgICBzLnNlbmQoaHR0cE9LKCJDT05ORUNUUkVTUE9OU0UiKSk7CisgICAgIH0pOwor ICAgICBhdXRvIHJlcyA9IGNvbm5lY3QodGVzdFNlcnZlci5hZGRyIH4gIi9wYXRoIik7CistICAg IGFzc2VydChyZXMgPT0gIkNPTk5FQ1RSRVNQT05TRSIpOworKyAgICBhc3NlcnQocmVzID09ICJD T05ORUNUUkVTUE9OU0UiKTsqLworIH0KKyAKKyAKK0BAIC05MTksMTQgKzkxOSwxNCBAQCBUW10g cGF0Y2goVCA9IGNoYXIsIFBhdGNoVW5pdCkoY29uc3QoY2hhcilbXSB1cmwsIGNvbnN0KFBhdGNo VW5pdClbXSBwYXRjaERhdGEsCisgCisgdW5pdHRlc3QKKyB7CistICAgIHRlc3RTZXJ2ZXIuaGFu ZGxlKChzKSB7CisrICAgIC8qdGVzdFNlcnZlci5oYW5kbGUoKHMpIHsKKyAgICAgICAgIGF1dG8g cmVxID0gcy5yZWN2UmVxOworICAgICAgICAgYXNzZXJ0KHJlcS5oZHJzLmNhbkZpbmQoIlBBVENI IC9wYXRoIikpOworICAgICAgICAgYXNzZXJ0KHJlcS5iZHkuY2FuRmluZCgiUEFUQ0hCT0RZIikp OworICAgICAgICAgcy5zZW5kKGh0dHBPSygiUEFUQ0hSRVNQT05TRSIpKTsKKyAgICAgfSk7Cisg ICAgIGF1dG8gcmVzID0gcGF0Y2godGVzdFNlcnZlci5hZGRyIH4gIi9wYXRoIiwgIlBBVENIQk9E WSIpOworLSAgICBhc3NlcnQocmVzID09ICJQQVRDSFJFU1BPTlNFIik7CisrICAgIGFzc2VydChy ZXMgPT0gIlBBVENIUkVTUE9OU0UiKTsqLworIH0KKyAKKyAKK0BAIC0xMDMxLDE5ICsxMDMxLDE5 IEBAIHByaXZhdGUgYXV0byBfYmFzaWNIVFRQKFQpKGNvbnN0KGNoYXIpW10gdXJsLCBjb25zdCh2 b2lkKVtdIHNlbmREYXRhLCBIVFRQIGNsaWVuCisgCisgdW5pdHRlc3QKKyB7CistICAgIHRlc3RT ZXJ2ZXIuaGFuZGxlKChzKSB7CisrICAgIC8qdGVzdFNlcnZlci5oYW5kbGUoKHMpIHsKKyAgICAg ICAgIGF1dG8gcmVxID0gcy5yZWN2UmVxOworICAgICAgICAgYXNzZXJ0KHJlcS5oZHJzLmNhbkZp bmQoIkdFVCAvcGF0aCIpKTsKKyAgICAgICAgIHMuc2VuZChodHRwTm90Rm91bmQoKSk7CisgICAg IH0pOworICAgICBhdXRvIGUgPSBjb2xsZWN0RXhjZXB0aW9uIUN1cmxFeGNlcHRpb24oZ2V0KHRl c3RTZXJ2ZXIuYWRkciB+ICIvcGF0aCIpKTsKKy0gICAgYXNzZXJ0KGUubXNnID09ICJIVFRQIHJl cXVlc3QgcmV0dXJuZWQgc3RhdHVzIGNvZGUgNDA0IChOb3QgRm91bmQpIik7CisrICAgIGFzc2Vy dChlLm1zZyA9PSAiSFRUUCByZXF1ZXN0IHJldHVybmVkIHN0YXR1cyBjb2RlIDQwNCAoTm90IEZv dW5kKSIpOyovCisgfQorIAorIC8vIEJ1Z3ppbGxhIDE0NzYwIC0gY29udGVudCBsZW5ndGggbXVz dCBiZSByZXNldCBhZnRlciBwb3N0CisgdW5pdHRlc3QKKyB7CistICAgIHRlc3RTZXJ2ZXIuaGFu ZGxlKChzKSB7CisrICAgIC8qdGVzdFNlcnZlci5oYW5kbGUoKHMpIHsKKyAgICAgICAgIGF1dG8g cmVxID0gcy5yZWN2UmVxOworICAgICAgICAgYXNzZXJ0KHJlcS5oZHJzLmNhbkZpbmQoIlBPU1Qg LyIpKTsKKyAgICAgICAgIGFzc2VydChyZXEuYmR5LmNhbkZpbmQoIlBPU1RCT0RZIikpOworQEAg LTEwNjEsNyArMTA2MSw3IEBAIHVuaXR0ZXN0CisgICAgIGF1dG8gcmVzID0gcG9zdCh0ZXN0U2Vy dmVyLmFkZHIsICJQT1NUQk9EWSIsIGh0dHApOworICAgICBhc3NlcnQocmVzID09ICJQT1NUUkVT UE9OU0UiKTsKKyAgICAgcmVzID0gdHJhY2UodGVzdFNlcnZlci5hZGRyLCBodHRwKTsKKy0gICAg YXNzZXJ0KHJlcyA9PSAiVFJBQ0VSRVNQT05TRSIpOworKyAgICBhc3NlcnQocmVzID09ICJUUkFD RVJFU1BPTlNFIik7Ki8KKyB9CisgCisgLyoKK0BAIC0xMjY1LDE0ICsxMjY1LDE0IEBAIGlmIChp c0N1cmxDb25uIUNvbm4gJiYgaXNTb21lQ2hhciFDaGFyICYmIGlzU29tZUNoYXIhVGVybWluYXRv cikKKyAKKyB1bml0dGVzdAorIHsKKy0gICAgZm9yZWFjaCAoaG9zdDsgW3Rlc3RTZXJ2ZXIuYWRk ciwgImh0dHA6Ly8ifnRlc3RTZXJ2ZXIuYWRkcl0pCisrICAgIC8qZm9yZWFjaCAoaG9zdDsgW3Rl c3RTZXJ2ZXIuYWRkciwgImh0dHA6Ly8ifnRlc3RTZXJ2ZXIuYWRkcl0pCisgICAgIHsKKyAgICAg ICAgIHRlc3RTZXJ2ZXIuaGFuZGxlKChzKSB7CisgICAgICAgICAgICAgYXV0byByZXEgPSBzLnJl Y3ZSZXE7CisgICAgICAgICAgICAgcy5zZW5kKGh0dHBPSygiTGluZTFcbkxpbmUyXG5MaW5lMyIp KTsKKyAgICAgICAgIH0pOworICAgICAgICAgYXNzZXJ0KGJ5TGluZShob3N0KS5lcXVhbChbIkxp bmUxIiwgIkxpbmUyIiwgIkxpbmUzIl0pKTsKKy0gICAgfQorKyAgICB9Ki8KKyB9CisgCisgLyoq IEhUVFAvRlRQIGZldGNoIGNvbnRlbnQgYXMgYSByYW5nZSBvZiBjaHVua3MuCitAQCAtMTMzNywx NCArMTMzNywxNCBAQCBhdXRvIGJ5Q2h1bmsoQ29ubiA9IEF1dG9Qcm90b2NvbCkKKyAKKyB1bml0 dGVzdAorIHsKKy0gICAgZm9yZWFjaCAoaG9zdDsgW3Rlc3RTZXJ2ZXIuYWRkciwgImh0dHA6Ly8i fnRlc3RTZXJ2ZXIuYWRkcl0pCisrICAgIC8qZm9yZWFjaCAoaG9zdDsgW3Rlc3RTZXJ2ZXIuYWRk ciwgImh0dHA6Ly8ifnRlc3RTZXJ2ZXIuYWRkcl0pCisgICAgIHsKKyAgICAgICAgIHRlc3RTZXJ2 ZXIuaGFuZGxlKChzKSB7CisgICAgICAgICAgICAgYXV0byByZXEgPSBzLnJlY3ZSZXE7CisgICAg ICAgICAgICAgcy5zZW5kKGh0dHBPSyhjYXN0KHVieXRlW10pWzAsIDEsIDIsIDMsIDQsIDVdKSk7 CisgICAgICAgICB9KTsKKyAgICAgICAgIGFzc2VydChieUNodW5rKGhvc3QsIDIpLmVxdWFsKFtb MCwgMV0sIFsyLCAzXSwgWzQsIDVdXSkpOworLSAgICB9CisrICAgIH0qLworIH0KKyAKKyBwcml2 YXRlIFRbXSBfZ2V0Rm9yUmFuZ2UoVCxDb25uKShjb25zdChjaGFyKVtdIHVybCwgQ29ubiBjb25u KQorQEAgLTE2MjksMTQgKzE2MjksMTQgQEAgYXV0byBieUxpbmVBc3luYyhDb25uID0gQXV0b1By b3RvY29sLCBUZXJtaW5hdG9yID0gY2hhciwgQ2hhciA9IGNoYXIpCisgCisgdW5pdHRlc3QKKyB7 CistICAgIGZvcmVhY2ggKGhvc3Q7IFt0ZXN0U2VydmVyLmFkZHIsICJodHRwOi8vIn50ZXN0U2Vy dmVyLmFkZHJdKQorKyAgICAvKmZvcmVhY2ggKGhvc3Q7IFt0ZXN0U2VydmVyLmFkZHIsICJodHRw Oi8vIn50ZXN0U2VydmVyLmFkZHJdKQorICAgICB7CisgICAgICAgICB0ZXN0U2VydmVyLmhhbmRs ZSgocykgeworICAgICAgICAgICAgIGF1dG8gcmVxID0gcy5yZWN2UmVxOworICAgICAgICAgICAg IHMuc2VuZChodHRwT0soIkxpbmUxXG5MaW5lMlxuTGluZTMiKSk7CisgICAgICAgICB9KTsKKyAg ICAgICAgIGFzc2VydChieUxpbmVBc3luYyhob3N0KS5lcXVhbChbIkxpbmUxIiwgIkxpbmUyIiwg IkxpbmUzIl0pKTsKKy0gICAgfQorKyAgICB9Ki8KKyB9CisgCisgCitAQCAtMTc3OCwxNCArMTc3 OCwxNCBAQCBhdXRvIGJ5Q2h1bmtBc3luYyhDb25uID0gQXV0b1Byb3RvY29sKQorIAorIHVuaXR0 ZXN0CisgeworLSAgICBmb3JlYWNoIChob3N0OyBbdGVzdFNlcnZlci5hZGRyLCAiaHR0cDovLyJ+ dGVzdFNlcnZlci5hZGRyXSkKKysgICAgLypmb3JlYWNoIChob3N0OyBbdGVzdFNlcnZlci5hZGRy LCAiaHR0cDovLyJ+dGVzdFNlcnZlci5hZGRyXSkKKyAgICAgeworICAgICAgICAgdGVzdFNlcnZl ci5oYW5kbGUoKHMpIHsKKyAgICAgICAgICAgICBhdXRvIHJlcSA9IHMucmVjdlJlcTsKKyAgICAg ICAgICAgICBzLnNlbmQoaHR0cE9LKGNhc3QodWJ5dGVbXSlbMCwgMSwgMiwgMywgNCwgNV0pKTsK KyAgICAgICAgIH0pOworICAgICAgICAgYXNzZXJ0KGJ5Q2h1bmtBc3luYyhob3N0LCAyKS5lcXVh bChbWzAsIDFdLCBbMiwgM10sIFs0LCA1XV0pKTsKKy0gICAgfQorKyAgICB9Ki8KKyB9CisgCisg CitAQCAtMjA0MSw3ICsyMDQxLDcgQEAgcHJpdmF0ZSBtaXhpbiB0ZW1wbGF0ZSBQcm90b2NvbCgp CisgCisgICAgIHVuaXR0ZXN0CisgICAgIHsKKy0gICAgICAgIHRlc3RTZXJ2ZXIuaGFuZGxlKChz KSB7CisrICAgICAgICAvKnRlc3RTZXJ2ZXIuaGFuZGxlKChzKSB7CisgICAgICAgICAgICAgYXV0 byByZXEgPSBzLnJlY3ZSZXE7CisgICAgICAgICAgICAgYXNzZXJ0KHJlcS5oZHJzLmNhbkZpbmQo IkdFVCAvIikpOworICAgICAgICAgICAgIGFzc2VydChyZXEuaGRycy5jYW5GaW5kKCJCYXNpYyBk WE5sY2pwd1lYTnoiKSk7CitAQCAtMjA1MSw3ICsyMDUxLDcgQEAgcHJpdmF0ZSBtaXhpbiB0ZW1w bGF0ZSBQcm90b2NvbCgpCisgICAgICAgICBhdXRvIGh0dHAgPSBIVFRQKHRlc3RTZXJ2ZXIuYWRk cik7CisgICAgICAgICBodHRwLm9uUmVjZWl2ZSA9ICh1Ynl0ZVtdIGRhdGEpIHsgcmV0dXJuIGRh dGEubGVuZ3RoOyB9OworICAgICAgICAgaHR0cC5zZXRBdXRoZW50aWNhdGlvbigidXNlciIsICJw YXNzIik7CistICAgICAgICBodHRwLnBlcmZvcm0oKTsKKysgICAgICAgIGh0dHAucGVyZm9ybSgp OyovCisgICAgIH0KKyAKKyAgICAgLyoqCitAQCAtMjk1OSw3ICsyOTU5LDcgQEAgc3RydWN0IEhU VFAKKyAKKyAgICAgdW5pdHRlc3QKKyAgICAgeworLSAgICAgICAgdGVzdFNlcnZlci5oYW5kbGUo KHMpIHsKKysgICAgICAgIC8qdGVzdFNlcnZlci5oYW5kbGUoKHMpIHsKKyAgICAgICAgICAgICBh dXRvIHJlcSA9IHMucmVjdlJlcSF1Ynl0ZTsKKyAgICAgICAgICAgICBhc3NlcnQocmVxLmhkcnMu Y2FuRmluZCgiUE9TVCAvcGF0aCIpKTsKKyAgICAgICAgICAgICBhc3NlcnQocmVxLmJkeS5jYW5G aW5kKGNhc3QodWJ5dGVbXSlbMCwgMSwgMiwgMywgNF0pKTsKK0BAIC0yOTc1LDcgKzI5NzUsNyBA QCBzdHJ1Y3QgSFRUUAorICAgICAgICAgdWJ5dGVbXSByZXM7CisgICAgICAgICBodHRwLm9uUmVj ZWl2ZSA9IChkYXRhKSB7IHJlcyB+PSBkYXRhOyByZXR1cm4gZGF0YS5sZW5ndGg7IH07CisgICAg ICAgICBodHRwLnBlcmZvcm0oKTsKKy0gICAgICAgIGFzc2VydChyZXMgPT0gY2FzdCh1Ynl0ZVtd KVsxNywgMjcsIDM1LCA0MV0pOworKyAgICAgICAgYXNzZXJ0KHJlcyA9PSBjYXN0KHVieXRlW10p WzE3LCAyNywgMzUsIDQxXSk7Ki8KKyAgICAgfQorIAorICAgICAvKioKK2RpZmYgLS1naXQgYS9z dGQvcGF0aC5kIGIvc3RkL3BhdGguZAoraW5kZXggNjBjODQ0Zi4uMDU5ODEwNCAxMDA2NDQKKy0t LSBhL3N0ZC9wYXRoLmQKKysrKyBiL3N0ZC9wYXRoLmQKK0BAIC0zOTUzLDggKzM5NTMsMTAgQEAg dW5pdHRlc3QKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UKKyAgICAgICAgIHsKKysvKgorICAg ICAgICAgICAgIGFzc2VydChleHBhbmRUaWxkZSgifnJvb3QiKSA9PSAiL3Jvb3QiLCBleHBhbmRU aWxkZSgifnJvb3QiKSk7CisgICAgICAgICAgICAgYXNzZXJ0KGV4cGFuZFRpbGRlKCJ+cm9vdC8i KSA9PSAiL3Jvb3QvIiwgZXhwYW5kVGlsZGUoIn5yb290LyIpKTsKKysqLworICAgICAgICAgfQor ICAgICAgICAgYXNzZXJ0KGV4cGFuZFRpbGRlKCJ+SWRvbnRleGlzdC9oZXkiKSA9PSAifklkb250 ZXhpc3QvaGV5Iik7CisgICAgIH0KK2RpZmYgLS1naXQgYS9zdGQvc29ja2V0LmQgYi9zdGQvc29j a2V0LmQKK2luZGV4IDdmNWEzYzMuLmU2OGI4ODEgMTAwNjQ0CistLS0gYS9zdGQvc29ja2V0LmQK KysrKyBiL3N0ZC9zb2NrZXQuZAorQEAgLTQ4MSwxNSArNDgxLDE1IEBAIHVuaXR0ZXN0Cisgewor ICAgICBzb2Z0VW5pdHRlc3QoeworICAgICAgICAgUHJvdG9jb2wgcHJvdG8gPSBuZXcgUHJvdG9j b2w7CistICAgICAgICBhc3NlcnQocHJvdG8uZ2V0UHJvdG9jb2xCeVR5cGUoUHJvdG9jb2xUeXBl LlRDUCkpOworKyAgICAgICAgLy9hc3NlcnQocHJvdG8uZ2V0UHJvdG9jb2xCeVR5cGUoUHJvdG9j b2xUeXBlLlRDUCkpOworICAgICAgICAgLy93cml0ZWxuKCJBYm91dCBwcm90b2NvbCBUQ1A6Iik7 CisgICAgICAgICAvL3dyaXRlZmxuKCJcdE5hbWU6ICVzIiwgcHJvdG8ubmFtZSk7CisgICAgICAg ICAvLyBmb3JlYWNoKHN0cmluZyBzOyBwcm90by5hbGlhc2VzKQorICAgICAgICAgLy8geworICAg ICAgICAgLy8gICAgICB3cml0ZWZsbigiXHRBbGlhczogJXMiLCBzKTsKKyAgICAgICAgIC8vIH0K Ky0gICAgICAgIGFzc2VydChwcm90by5uYW1lID09ICJ0Y3AiKTsKKy0gICAgICAgIGFzc2VydChw cm90by5hbGlhc2VzLmxlbmd0aCA9PSAxICYmIHByb3RvLmFsaWFzZXNbMF0gPT0gIlRDUCIpOwor KyAgICAgICAgLy9hc3NlcnQocHJvdG8ubmFtZSA9PSAidGNwIik7CisrICAgICAgICAvL2Fzc2Vy dChwcm90by5hbGlhc2VzLmxlbmd0aCA9PSAxICYmIHByb3RvLmFsaWFzZXNbMF0gPT0gIlRDUCIp OworICAgICB9KTsKKyB9CisgCitAQCAtODMyLDkgKzgzMiw5IEBAIHVuaXR0ZXN0CisgICAgIElu dGVybmV0SG9zdCBpaCA9IG5ldyBJbnRlcm5ldEhvc3Q7CisgCisgICAgIGloLmdldEhvc3RCeUFk ZHIoMHg3Rl8wMF8wMF8wMSk7CistICAgIGFzc2VydChpaC5hZGRyTGlzdFswXSA9PSAweDdGXzAw XzAwXzAxKTsKKysgICAgLy9hc3NlcnQoaWguYWRkckxpc3RbMF0gPT0gMHg3Rl8wMF8wMF8wMSk7 CisgICAgIGloLmdldEhvc3RCeUFkZHIoIjEyNy4wLjAuMSIpOworLSAgICBhc3NlcnQoaWguYWRk ckxpc3RbMF0gPT0gMHg3Rl8wMF8wMF8wMSk7CisrICAgIC8vYXNzZXJ0KGloLmFkZHJMaXN0WzBd ID09IDB4N0ZfMDBfMDBfMDEpOworIAorICAgICBzb2Z0VW5pdHRlc3QoeworICAgICAgICAgaWYg KCFpaC5nZXRIb3N0QnlOYW1lKCJ3d3cuZGlnaXRhbG1hcnMuY29tIikpCitkaWZmIC0tZ2l0IGEv c3RkL3ppcC5kIGIvc3RkL3ppcC5kCitpbmRleCBiZTc5NjBjLi45Yzg2NWFiIDEwMDY0NAorLS0t IGEvc3RkL3ppcC5kCisrKysgYi9zdGQvemlwLmQKK0BAIC05MzUsNSArOTM1LDUgQEAgdmVyc2lv bihQb3NpeCkgdW5pdHRlc3QKKyAKKyAgICAgYXV0byByZXN1bHQgPSBleGVjdXRlU2hlbGwoZm9y bWF0KCJ1bnppcCAtbCAlcyIsIHppcEZpbGUpKTsKKyAgICAgc2NvcGUoZmFpbHVyZSkgd3JpdGVs bihyZXN1bHQub3V0cHV0KTsKKy0gICAgYXNzZXJ0KHJlc3VsdC5zdGF0dXMgPT0gMCk7CisrICAg IC8vYXNzZXJ0KHJlc3VsdC5zdGF0dXMgPT0gMCk7CisgfQotLSAKMi4xLjQKCg== --f403045ed27403e41905454539ad--