From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,WEIRD_QUOTING autolearn=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 6e17d3f0 for ; Wed, 25 Dec 2019 06:09:06 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============2898502356595094595==" MIME-Version: 1.0 Subject: [PR PATCH] python-docutils: update to 0.16rc1. To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org Message-ID: Date: Wed, 25 Dec 2019 07:09:06 +0100 GitHub notification mails are now in MIME to allow UTF8. --===============2898502356595094595== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHNnbiBhZ2FpbnN0IG1hc3RlciBvbiB0aGUg dm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vc2duL3ZvaWQtcGFj a2FnZXMgcHl0aG9uLWRvY3V0aWxzLXVwZGF0ZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvMTc3NjgKCnB5dGhvbi1kb2N1dGlsczogdXBkYXRlIHRvIDAu MTZyYzEuCi0gcHl0aG9uMyBjaGVjayBwYXNzZWQNCi0gcHl0aG9uIDIgY2hlY2sgZmFpbGVkIGZv ciBzb21lIHRlc3RjYXNlcwoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzE3NzY4LnBhdGNoIGlzIGF0dGFjaGVk --===============2898502356595094595== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-python-docutils-update-17768.patch" RnJvbSBkYmJlOTRlNjliMDJiZTQ4MmJlZmFmNzhjOWY1ZTk0YzFlNjQwOWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWls LmNvbT4KRGF0ZTogV2VkLCAyNSBEZWMgMjAxOSAxMjo1MzozMiArMDcwMApTdWJqZWN0OiBbUEFU Q0hdIHB5dGhvbi1kb2N1dGlsczogdXBkYXRlIHRvIDAuMTZyYzEuCgotLS0KIC4uLi8wMDAxLXB5 My1Vc2UtbmV3LXN0eWxlLWNsYXNzZXMucGF0Y2ggICAgICB8ICAzOTQgLS0tLQogLi4uLzAwMDIt cHkzLVN3aXRjaC10by1wcmludC1mdW5jdGlvbnMucGF0Y2ggIHwgMTUxNyAtLS0tLS0tLS0tLS0t LS0KIC4uLjMtU3dpdGNoLXRvLWV4Y2VwdC1mb28tYXMtYmFyLXN5bnRheC5wYXRjaCB8ICA3MTkg LS0tLS0tLQogLi4uLXB5My1BZGQtYWxpYXNlcy1mb3ItcmVtb3ZlZC1zeW1ib2xzLnBhdGNoIHwg IDU5OSAtLS0tLS0KIC4uLnZlLXNvbWUtYWRkaXRpb25hbC11bmRlZmluZWQtc3ltYm9scy5wYXRj aCB8ICAgODAgLQogLi4uZGVwcmVjYXRlZC1mb3JtLW9mLXJhaXNpbmctZXhjZXB0aW9uLnBhdGNo IHwgIDI2MyAtLS0KIC4uLi1SZXBsYWNlLXN5cy5tYXhpbnQtd2l0aC1zeXMubWF4c2l6ZS5wYXRj aCB8ICAxMDMgLQogLi4ucy5TbGljZVR5cGUtd2l0aC1zbGljZS1yZW1vdmUtdHlwZXMuLnBhdGNo IHwgIDEyOCAtLQogLi4uLzAwMDktcHkzLVVzZS1hYnNvbHV0ZV9pbXBvcnQtZnV0dXJlLnBhdGNo IHwgMTY5OSAtLS0tLS0tLS0tLS0tLS0tLQogLi4uMy1Vc2Utc29ydGVkLWZvby1pbnN0ZWFkLW9m LWZvby5zb3J0LnBhdGNoIHwgIDIzNiAtLS0KIC4uLm1wbGlmeS1jb2RlLWZvbGxvd2luZy1yZWNl bnQtY2hhbmdlcy5wYXRjaCB8ICAgNDkgLQogLi4uZS1mb28tYmFyLWluc3RlYWQtb2YtdHlwZS1m b28taXMtYmFyLnBhdGNoIHwgIDEyMCAtLQogLi4uLzAwMTMtQ29uc2lzdGVudC1QeXRob24tMy1j aGVja3MucGF0Y2ggICAgIHwgIDU5NCAtLS0tLS0KIC4uLjQtcHkzLVJlcGxhY2UtZm9vLm5leHQt d2l0aC1uZXh0LWZvby5wYXRjaCB8ICAgNzQgLQogLi4ubGFjZS1mb28uaGFzX2tleS1iYXItd2l0 aC1iYXItaW4tZm9vLnBhdGNoIHwgICAzOCAtCiAuLi4tZGVmaW5pdGlvbi1vZi1ub2Rlcy5FbGVt ZW50Ll9fY29udGEucGF0Y2ggfCAgIDQ3IC0KIC4uLi1Db25maWdQYXJzZXItdG8tY29uZmlncGFy c2VyLXJlbmFtZS5wYXRjaCB8ICAgOTMgLQogLi4uL3BhdGNoZXMvMDAxOC1weTMtUmVwbGFjZS11 ci1wcmVmaXgucGF0Y2ggIHwgIDU5OSAtLS0tLS0KIC4uLmVzLXRvLWZhY2lsaXRhdGUtaW50ZWdy YXRpb24tb2YtcHkzLS5wYXRjaCB8ICA5MjAgLS0tLS0tLS0tCiAuLi5weTMtSGFuZGxlLVN0cmlu Z0lPLXRvLWlvLXRyYW5zaXRpb24ucGF0Y2ggfCAgIDc4IC0KIC4uLi1QeXRob24tMi0zLWNvbXBh dGliaWxpdHktZGVmaW5pdGlvbi5wYXRjaCB8ICAgOTEgLQogLi4ubmRsZS11cmxsaWItdXJsbGli Mi10by11cmxpYi4tcmVuYW1lLnBhdGNoIHwgIDIwMiAtLQogLi4uL3BhdGNoZXMvMDAyMy1weTMt Rml4LW1hZ2ljLW1ldGhvZHMucGF0Y2ggIHwgIDM1MiAtLS0tCiAuLi55My1XcmFwLWZvby5rZXlz LXppcC1mb28tYmFyLWluLWxpc3QucGF0Y2ggfCAgMTQ3IC0tCiAuLi4vcGF0Y2hlcy8wMDI1LVNp bXBsaWZ5LWNvZGUucGF0Y2ggICAgICAgICAgfCAgIDg0IC0KIC4uLmFuZGxlLW9zLmdldGN3ZHUt dG8tb3MuZ2V0Y3dkLXJlbmFtZS5wYXRjaCB8ICAgNDIgLQogLi4uL3B5dGhvbi1kb2N1dGlscy9w YXRjaGVzL3Rlc3QtaW1wb3J0LnBhdGNoIHwgICAyMCArCiBzcmNwa2dzL3B5dGhvbi1kb2N1dGls cy90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgIDEyICstCiAyOCBmaWxlcyBjaGFuZ2VkLCAyOCBp bnNlcnRpb25zKCspLCA5MjcyIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwMS1weTMtVXNlLW5ldy1zdHlsZS1jbGFzc2Vz LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hl cy8wMDAyLXB5My1Td2l0Y2gtdG8tcHJpbnQtZnVuY3Rpb25zLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDAzLXB5My1Td2l0Y2gtdG8t ZXhjZXB0LWZvby1hcy1iYXItc3ludGF4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA0LXB5My1BZGQtYWxpYXNlcy1mb3ItcmVtb3Zl ZC1zeW1ib2xzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRp bHMvcGF0Y2hlcy8wMDA1LXB5My1SZXNvbHZlLXNvbWUtYWRkaXRpb25hbC11bmRlZmluZWQtc3lt Ym9scy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3Bh dGNoZXMvMDAwNi1weTMtUmVwbGFjZS1kZXByZWNhdGVkLWZvcm0tb2YtcmFpc2luZy1leGNlcHRp b24ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRj aGVzLzAwMDctcHkzLVJlcGxhY2Utc3lzLm1heGludC13aXRoLXN5cy5tYXhzaXplLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA4LXB5 My1SZXBsYWNlLXR5cGVzLlNsaWNlVHlwZS13aXRoLXNsaWNlLXJlbW92ZS10eXBlcy4ucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDkt cHkzLVVzZS1hYnNvbHV0ZV9pbXBvcnQtZnV0dXJlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDEwLXB5My1Vc2Utc29ydGVkLWZvby1p bnN0ZWFkLW9mLWZvby5zb3J0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRo b24tZG9jdXRpbHMvcGF0Y2hlcy8wMDExLUNsZWFudXAtc2ltcGxpZnktY29kZS1mb2xsb3dpbmct cmVjZW50LWNoYW5nZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1k b2N1dGlscy9wYXRjaGVzLzAwMTItVXNlLWlzaW5zdGFuY2UtZm9vLWJhci1pbnN0ZWFkLW9mLXR5 cGUtZm9vLWlzLWJhci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRv Y3V0aWxzL3BhdGNoZXMvMDAxMy1Db25zaXN0ZW50LVB5dGhvbi0zLWNoZWNrcy5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxNC1weTMt UmVwbGFjZS1mb28ubmV4dC13aXRoLW5leHQtZm9vLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE1LXB5My1SZXBsYWNlLWZvby5oYXNf a2V5LWJhci13aXRoLWJhci1pbi1mb28ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTYtUmVtb3ZlLWR1cGxpY2F0ZS1kZWZpbml0aW9u LW9mLW5vZGVzLkVsZW1lbnQuX19jb250YS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxNy1IYW5kbGUtQ29uZmlnUGFyc2VyLXRvLWNv bmZpZ3BhcnNlci1yZW5hbWUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhv bi1kb2N1dGlscy9wYXRjaGVzLzAwMTgtcHkzLVJlcGxhY2UtdXItcHJlZml4LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE5LUZvcm1h dHRpbmctY2hhbmdlcy10by1mYWNpbGl0YXRlLWludGVncmF0aW9uLW9mLXB5My0ucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjAtcHkz LUhhbmRsZS1TdHJpbmdJTy10by1pby10cmFuc2l0aW9uLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDIxLVJlbW92ZS1hdXhpbGlhcnkt UHl0aG9uLTItMy1jb21wYXRpYmlsaXR5LWRlZmluaXRpb24ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjItcHkzLUhhbmRsZS11cmxs aWItdXJsbGliMi10by11cmxpYi4tcmVuYW1lLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDIzLXB5My1GaXgtbWFnaWMtbWV0aG9kcy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMv MDAyNC1weTMtV3JhcC1mb28ua2V5cy16aXAtZm9vLWJhci1pbi1saXN0LnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDI1LVNpbXBsaWZ5 LWNvZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9w YXRjaGVzLzAwMjYtcHkzLUhhbmRsZS1vcy5nZXRjd2R1LXRvLW9zLmdldGN3ZC1yZW5hbWUucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzL3Rl c3QtaW1wb3J0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0 Y2hlcy8wMDAxLXB5My1Vc2UtbmV3LXN0eWxlLWNsYXNzZXMucGF0Y2ggYi9zcmNwa2dzL3B5dGhv bi1kb2N1dGlscy9wYXRjaGVzLzAwMDEtcHkzLVVzZS1uZXctc3R5bGUtY2xhc3Nlcy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxNGVlNjI5OGEuLjAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwMS1weTMtVXNlLW5ldy1zdHls ZS1jbGFzc2VzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzk0ICswLDAgQEAKLUZyb20gNDFm NDM2YzQ3NmIxY2I2NzM2MDUwYTEyZGUwYzk3MzJjODAwMDE5YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTog VHVlLCAxOSBOb3YgMjAxOSAyMzo0MDo1OCArMDcwMAotU3ViamVjdDogW1BBVENIIDAxLzI2XSBw eTM6IFVzZSBuZXcgc3R5bGUgY2xhc3NlcwotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEZpbnVj YW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNm Lm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM0NSA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1i YTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5o cXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvX19pbml0X18ucHkgICAgICAgICAgICAgICAg fCAgMiArLQotIGRvY3V0aWxzL2NvcmUucHkgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBk b2N1dGlscy9ub2Rlcy5weSAgICAgICAgICAgICAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3Qvcm9sZXMucHkgICAgICAgfCAgNCAr LS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkgICAgICB8ICA0ICstLQotIGRvY3V0 aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5IHwgIDIgKy0KLSBkb2N1dGlscy9zdGF0ZW1h Y2hpbmUucHkgICAgICAgICAgICB8ICA4ICsrLS0tCi0gZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2lu aXRfXy5weSAgICAgfCAgMiArLQotIGRvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5ICAgICAgICAg IHwgIDIgKy0KLSBkb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weSB8ICAyICstCi0g dGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5ICAgICAgICAgfCAgMiArLQotIHRlc3QvYWxsdGVz dHMucHkgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSB0ZXN0L3Rlc3Rfc3RhdGVtYWNoaW5l LnB5ICAgICAgICAgICB8ICAyICstCi0gdG9vbHMvYnVpbGRodG1sLnB5ICAgICAgICAgICAgICAg ICAgfCAgNCArLS0KLSB0b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weSAgICAgICAgICB8ICA0ICst LQotIHRvb2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkgICAgICAgIHwgIDIgKy0KLSAxNiBmaWxl cyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL2RvY3V0aWxzL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvX19pbml0X18ucHkKLWluZGV4IGYw NmU4MTAuLjdkNmE2NzkgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9fX2luaXRfXy5weQotKysrIGIv ZG9jdXRpbHMvX19pbml0X18ucHkKLUBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIEFwcGxpY2F0aW9u RXJyb3IoU3RhbmRhcmRFcnJvcik6IHBhc3MKLSBjbGFzcyBEYXRhRXJyb3IoQXBwbGljYXRpb25F cnJvcik6IHBhc3MKLSAKLSAKLS1jbGFzcyBTZXR0aW5nc1NwZWM6Ci0rY2xhc3MgU2V0dGluZ3NT cGVjKG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICBSdW50aW1lIHNldHRpbmcgc3BlY2lmaWNh dGlvbiBiYXNlIGNsYXNzLgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2NvcmUucHkgYi9kb2N1dGls cy9jb3JlLnB5Ci1pbmRleCAzZGMxMmU4Li4yZWViYmYyIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMv Y29yZS5weQotKysrIGIvZG9jdXRpbHMvY29yZS5weQotQEAgLTIzLDcgKzIzLDcgQEAgZnJvbSBk b2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCBUcmFuc2Zvcm1lcgotIGZyb20gZG9jdXRpbHMudXRp bHMuZXJyb3JfcmVwb3J0aW5nIGltcG9ydCBFcnJvck91dHB1dCwgRXJyb3JTdHJpbmcKLSBpbXBv cnQgZG9jdXRpbHMucmVhZGVycy5kb2N0cmVlCi0gCi0tY2xhc3MgUHVibGlzaGVyOgotK2NsYXNz IFB1Ymxpc2hlcihvYmplY3QpOgotIAotICAgICAiIiIKLSAgICAgQSBmYWNhZGUgZW5jYXBzdWxh dGluZyB0aGUgaGlnaC1sZXZlbCBsb2dpYyBvZiBhIERvY3V0aWxzIHN5c3RlbS4KLWRpZmYgLS1n aXQgYS9kb2N1dGlscy9ub2Rlcy5weSBiL2RvY3V0aWxzL25vZGVzLnB5Ci1pbmRleCBkODMwNjE2 Li45NTczMjA4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvbm9kZXMucHkKLSsrKyBiL2RvY3V0aWxz L25vZGVzLnB5Ci1AQCAtMTExMiwxMiArMTExMiwxMiBAQCBjbGFzcyBGaXhlZFRleHRFbGVtZW50 KFRleHRFbGVtZW50KToKLSAjICBNaXhpbnMKLSAjID09PT09PT09Ci0gCi0tY2xhc3MgUmVzb2x2 YWJsZToKLStjbGFzcyBSZXNvbHZhYmxlKG9iamVjdCk6Ci0gCi0gICAgIHJlc29sdmVkID0gMAot IAotIAotLWNsYXNzIEJhY2tMaW5rYWJsZToKLStjbGFzcyBCYWNrTGlua2FibGUob2JqZWN0KToK LSAKLSAgICAgZGVmIGFkZF9iYWNrcmVmKHNlbGYsIHJlZmlkKToKLSAgICAgICAgIHNlbGZbJ2Jh Y2tyZWZzJ10uYXBwZW5kKHJlZmlkKQotQEAgLTExMjcsMzkgKzExMjcsNjMgQEAgY2xhc3MgQmFj a0xpbmthYmxlOgotICMgIEVsZW1lbnQgQ2F0ZWdvcmllcwotICMgPT09PT09PT09PT09PT09PT09 PT0KLSAKLS1jbGFzcyBSb290OiBwYXNzCi0rY2xhc3MgUm9vdChvYmplY3QpOgotKyAgICBwYXNz Ci0rCi0rCi0rY2xhc3MgVGl0dWxhcihvYmplY3QpOgotKyAgICBwYXNzCi0gCi0tY2xhc3MgVGl0 dWxhcjogcGFzcwotIAotLWNsYXNzIFByZUJpYmxpb2dyYXBoaWM6Ci0rY2xhc3MgUHJlQmlibGlv Z3JhcGhpYyhvYmplY3QpOgotICAgICAiIiJDYXRlZ29yeSBvZiBOb2RlIHdoaWNoIG1heSBvY2N1 ciBiZWZvcmUgQmlibGlvZ3JhcGhpYyBOb2Rlcy4iIiIKLSAKLS1jbGFzcyBCaWJsaW9ncmFwaGlj OiBwYXNzCi0gCi0tY2xhc3MgRGVjb3JhdGl2ZShQcmVCaWJsaW9ncmFwaGljKTogcGFzcwotK2Ns YXNzIEJpYmxpb2dyYXBoaWMob2JqZWN0KToKLSsgICAgcGFzcwotKwotKwotK2NsYXNzIERlY29y YXRpdmUoUHJlQmlibGlvZ3JhcGhpYyk6Ci0rICAgIHBhc3MKLSsKLSsKLStjbGFzcyBTdHJ1Y3R1 cmFsKG9iamVjdCk6Ci0rICAgIHBhc3MKLSsKLSsKLStjbGFzcyBCb2R5KG9iamVjdCk6Ci0rICAg IHBhc3MKLSAKLS1jbGFzcyBTdHJ1Y3R1cmFsOiBwYXNzCi0gCi0tY2xhc3MgQm9keTogcGFzcwot K2NsYXNzIEdlbmVyYWwoQm9keSk6Ci0rICAgIHBhc3MKLSAKLS1jbGFzcyBHZW5lcmFsKEJvZHkp OiBwYXNzCi0gCi0gY2xhc3MgU2VxdWVudGlhbChCb2R5KToKLSAgICAgIiIiTGlzdC1saWtlIGVs ZW1lbnRzLiIiIgotIAotKwotIGNsYXNzIEFkbW9uaXRpb24oQm9keSk6IHBhc3MKLSAKLSsKLSBj bGFzcyBTcGVjaWFsKEJvZHkpOgotICAgICAiIiJTcGVjaWFsIGludGVybmFsIGJvZHkgZWxlbWVu dHMuIiIiCi0gCi0rCi0gY2xhc3MgSW52aXNpYmxlKFByZUJpYmxpb2dyYXBoaWMpOgotICAgICAi IiJJbnRlcm5hbCBlbGVtZW50cyB0aGF0IGRvbid0IGFwcGVhciBpbiBvdXRwdXQuIiIiCi0gCi0t Y2xhc3MgUGFydDogcGFzcwotIAotLWNsYXNzIElubGluZTogcGFzcwotK2NsYXNzIFBhcnQob2Jq ZWN0KToKLSsgICAgcGFzcwotKwotKwotK2NsYXNzIElubGluZShvYmplY3QpOgotKyAgICBwYXNz Ci0rCi0gCi0tY2xhc3MgUmVmZXJlbnRpYWwoUmVzb2x2YWJsZSk6IHBhc3MKLStjbGFzcyBSZWZl cmVudGlhbChSZXNvbHZhYmxlKToKLSsgICAgcGFzcwotIAotIAotIGNsYXNzIFRhcmdldGFibGUo UmVzb2x2YWJsZSk6Ci1AQCAtMTE3MSw3ICsxMTk1LDcgQEAgY2xhc3MgVGFyZ2V0YWJsZShSZXNv bHZhYmxlKToKLSAgICAgUmVxdWlyZWQgZm9yIE1vaW5Nb2luL3JlU1QgY29tcGF0aWJpbGl0eS4i IiIKLSAKLSAKLS1jbGFzcyBMYWJlbGVkOgotK2NsYXNzIExhYmVsZWQob2JqZWN0KToKLSAgICAg IiIiQ29udGFpbnMgYSBgbGFiZWxgIGFzIGl0cyBmaXJzdCBlbGVtZW50LiIiIgotIAotIAotQEAg LTE4NTYsNyArMTg4MCw3IEBAIG5vZGVfY2xhc3NfbmFtZXMgPSAiIiIKLSAiIiJBIGxpc3Qgb2Yg bmFtZXMgb2YgYWxsIGNvbmNyZXRlIE5vZGUgc3ViY2xhc3Nlcy4iIiIKLSAKLSAKLS1jbGFzcyBO b2RlVmlzaXRvcjoKLStjbGFzcyBOb2RlVmlzaXRvcihvYmplY3QpOgotIAotICAgICAiIiIKLSAg ICAgIlZpc2l0b3IiIHBhdHRlcm4gW0dvRjk1XV8gYWJzdHJhY3Qgc3VwZXJjbGFzcyBpbXBsZW1l bnRhdGlvbiBmb3IKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9yb2xlcy5weSBi L2RvY3V0aWxzL3BhcnNlcnMvcnN0L3JvbGVzLnB5Ci1pbmRleCA5MThlNTY0Li5hYTQyYzgwIDEw MDY0NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3Qvcm9sZXMucHkKLSsrKyBiL2RvY3V0aWxz L3BhcnNlcnMvcnN0L3JvbGVzLnB5Ci1AQCAtMTgxLDcgKzE4MSw3IEBAIGRlZiByZWdpc3Rlcl9n ZW5lcmljX3JvbGUoY2Fub25pY2FsX25hbWUsIG5vZGVfY2xhc3MpOgotICAgICByZWdpc3Rlcl9j YW5vbmljYWxfcm9sZShjYW5vbmljYWxfbmFtZSwgcm9sZSkKLSAKLSAKLS1jbGFzcyBHZW5lcmlj Um9sZToKLStjbGFzcyBHZW5lcmljUm9sZShvYmplY3QpOgotIAotICAgICAiIiIKLSAgICAgR2Vu ZXJpYyBpbnRlcnByZXRlZCB0ZXh0IHJvbGUsIHdoZXJlIHRoZSBpbnRlcnByZXRlZCB0ZXh0IGlz IHNpbXBseQotQEAgLTE5OCw3ICsxOTgsNyBAQCBjbGFzcyBHZW5lcmljUm9sZToKLSAgICAgICAg IHJldHVybiBbc2VsZi5ub2RlX2NsYXNzKHJhd3RleHQsIHV0aWxzLnVuZXNjYXBlKHRleHQpLCAq Km9wdGlvbnMpXSwgW10KLSAKLSAKLS1jbGFzcyBDdXN0b21Sb2xlOgotK2NsYXNzIEN1c3RvbVJv bGUob2JqZWN0KToKLSAKLSAgICAgIiIiCi0gICAgIFdyYXBwZXIgZm9yIGN1c3RvbSBpbnRlcnBy ZXRlZCB0ZXh0IHJvbGVzLgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRl cy5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weQotaW5kZXggZDhjYTlmMC4uMmVj ZTNiMyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weQotKysrIGIv ZG9jdXRpbHMvcGFyc2Vycy9yc3Qvc3RhdGVzLnB5Ci1AQCAtMTI2LDcgKzEyNiw3IEBAIGNsYXNz IFBhcnNlckVycm9yKEFwcGxpY2F0aW9uRXJyb3IpOiBwYXNzCi0gY2xhc3MgTWFya3VwTWlzbWF0 Y2goRXhjZXB0aW9uKTogcGFzcwotIAotIAotLWNsYXNzIFN0cnVjdDoKLStjbGFzcyBTdHJ1Y3Qo b2JqZWN0KToKLSAKLSAgICAgIiIiU3RvcmVzIGRhdGEgYXR0cmlidXRlcyBmb3IgZG90dGVkLWF0 dHJpYnV0ZSBhY2Nlc3MuIiIiCi0gCi1AQCAtNDU5LDcgKzQ1OSw3IEBAIGRlZiBidWlsZF9yZWdl eHAoZGVmaW5pdGlvbiwgY29tcGlsZT1UcnVlKToKLSAgICAgICAgIHJldHVybiByZWdleHAKLSAK LSAKLS1jbGFzcyBJbmxpbmVyOgotK2NsYXNzIElubGluZXIob2JqZWN0KToKLSAKLSAgICAgIiIi Ci0gICAgIFBhcnNlIGlubGluZSBtYXJrdXA7IGNhbGwgdGhlIGBwYXJzZSgpYCBtZXRob2QuCi1k aWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJzZXIucHkgYi9kb2N1dGls cy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weQotaW5kZXggZTE5Mzg4Yi4uNDVhZjcyZiAxMDA2 NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5Ci0rKysgYi9kb2N1 dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weQotQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3Mg VGFibGVNYXJrdXBFcnJvcihEYXRhRXJyb3IpOgotICAgICAgICAgICAgIERhdGFFcnJvci5fX2lu aXRfXyhzZWxmLCAqYXJncykKLSAKLSAKLS1jbGFzcyBUYWJsZVBhcnNlcjoKLStjbGFzcyBUYWJs ZVBhcnNlcihvYmplY3QpOgotIAotICAgICAiIiIKLSAgICAgQWJzdHJhY3Qgc3VwZXJjbGFzcyBm b3IgdGhlIGNvbW1vbiBwYXJ0cyBvZiB0aGUgc3ludGF4LXNwZWNpZmljIHBhcnNlcnMuCi1kaWZm IC0tZ2l0IGEvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5IGIvZG9jdXRpbHMvc3RhdGVtYWNoaW5l LnB5Ci1pbmRleCA2YmIzYzZiLi4yMTg4OTgyIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvc3RhdGVt YWNoaW5lLnB5Ci0rKysgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLUBAIC0xMTQsNyArMTE0 LDcgQEAgZnJvbSBkb2N1dGlscyBpbXBvcnQgdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLmVy cm9yX3JlcG9ydGluZyBpbXBvcnQgRXJyb3JPdXRwdXQKLSAKLSAKLS1jbGFzcyBTdGF0ZU1hY2hp bmU6Ci0rY2xhc3MgU3RhdGVNYWNoaW5lKG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICBBIGZp bml0ZSBzdGF0ZSBtYWNoaW5lIGZvciB0ZXh0IGZpbHRlcnMgdXNpbmcgcmVndWxhciBleHByZXNz aW9ucy4KLUBAIC01MTgsNyArNTE4LDcgQEAgY2xhc3MgU3RhdGVNYWNoaW5lOgotICAgICAgICAg ICAgIG9ic2VydmVyKCppbmZvKQotIAotIAotLWNsYXNzIFN0YXRlOgotK2NsYXNzIFN0YXRlKG9i amVjdCk6Ci0gCi0gICAgICIiIgotICAgICBTdGF0ZSBzdXBlcmNsYXNzLiBDb250YWlucyBhIGxp c3Qgb2YgdHJhbnNpdGlvbnMsIGFuZCB0cmFuc2l0aW9uIG1ldGhvZHMuCi1AQCAtMTAzNCw3ICsx MDM0LDcgQEAgY2xhc3MgU3RhdGVXUyhTdGF0ZSk6Ci0gICAgICAgICByZXR1cm4gY29udGV4dCwg bmV4dF9zdGF0ZSwgcmVzdWx0cwotIAotIAotLWNsYXNzIF9TZWFyY2hPdmVycmlkZToKLStjbGFz cyBfU2VhcmNoT3ZlcnJpZGUob2JqZWN0KToKLSAKLSAgICAgIiIiCi0gICAgIE1peC1pbiBjbGFz cyB0byBvdmVycmlkZSBgU3RhdGVNYWNoaW5lYCByZWd1bGFyIGV4cHJlc3Npb24gYmVoYXZpb3Iu Ci1AQCAtMTA2Nyw3ICsxMDY3LDcgQEAgY2xhc3MgU2VhcmNoU3RhdGVNYWNoaW5lV1MoX1NlYXJj aE92ZXJyaWRlLCBTdGF0ZU1hY2hpbmVXUyk6Ci0gICAgIHBhc3MKLSAKLSAKLS1jbGFzcyBWaWV3 TGlzdDoKLStjbGFzcyBWaWV3TGlzdChvYmplY3QpOgotIAotICAgICAiIiIKLSAgICAgTGlzdCB3 aXRoIGV4dGVuZGVkIGZ1bmN0aW9uYWxpdHk6IHNsaWNlcyBvZiBWaWV3TGlzdCBvYmplY3RzIGFy ZSBjaGlsZAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvX19pbml0X18ucHkgYi9k b2N1dGlscy90cmFuc2Zvcm1zL19faW5pdF9fLnB5Ci1pbmRleCBiMDA5YzVmLi45MjcxMTMzIDEw MDY0NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5weQotKysrIGIvZG9jdXRp bHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5weQotQEAgLTMwLDcgKzMwLDcgQEAgZnJvbSBkb2N1dGls cyBpbXBvcnQgbGFuZ3VhZ2VzLCBBcHBsaWNhdGlvbkVycm9yLCBUcmFuc2Zvcm1TcGVjCi0gY2xh c3MgVHJhbnNmb3JtRXJyb3IoQXBwbGljYXRpb25FcnJvcik6IHBhc3MKLSAKLSAKLS1jbGFzcyBU cmFuc2Zvcm06Ci0rY2xhc3MgVHJhbnNmb3JtKG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICBE b2N1dGlscyB0cmFuc2Zvcm0gY29tcG9uZW50IGFic3RyYWN0IGJhc2UgY2xhc3MuCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkgYi9kb2N1dGlscy91dGlscy9fX2luaXRf Xy5weQotaW5kZXggYmUxYzM3ZS4uNzc2MGYzOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxz L19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weQotQEAgLTMzLDcg KzMzLDcgQEAgY2xhc3MgU3lzdGVtTWVzc2FnZShBcHBsaWNhdGlvbkVycm9yKToKLSBjbGFzcyBT eXN0ZW1NZXNzYWdlUHJvcGFnYXRpb24oQXBwbGljYXRpb25FcnJvcik6IHBhc3MKLSAKLSAKLS1j bGFzcyBSZXBvcnRlcjoKLStjbGFzcyBSZXBvcnRlcihvYmplY3QpOgotIAotICAgICAiIiIKLSAg ICAgSW5mby93YXJuaW5nL2Vycm9yIHJlcG9ydGVyIGFuZCBgYHN5c3RlbV9tZXNzYWdlYGAgZWxl bWVudCBnZW5lcmF0b3IuCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJt YXRobWwucHkgYi9kb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weQotaW5kZXggYmNi NDg3Ny4uMWEwMWJjOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0 aG1sLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weQotQEAgLTE1 NSw3ICsxNTUsNyBAQCBuZWdhdGFibGVzID0geyc9JzogdSdcdTIyNjAnLAotICAgICAgICAgICAg ICAgcidcZXF1aXYnOiB1J1x1MjI2Mid9Ci0gCi0gIyBMYVRlWCB0byBNYXRoTUwgdHJhbnNsYXRp b24gc3R1ZmY6Ci0tY2xhc3MgbWF0aDoKLStjbGFzcyBtYXRoKG9iamVjdCk6Ci0gICAgICIiIkJh c2UgY2xhc3MgZm9yIE1hdGhNTCBlbGVtZW50cy4iIiIKLSAKLSAgICAgbmNoaWxkcmVuID0gMTAw MDAwMAotZGlmZiAtLWdpdCBhL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSBiL3Rlc3QvRG9j dXRpbHNUZXN0U3VwcG9ydC5weQotaW5kZXggNTRiYTFjNC4uZjc5ODZmNSAxMDA2NDQKLS0tLSBh L3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotKysrIGIvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBw b3J0LnB5Ci1AQCAtOTIsNyArOTIsNyBAQCBleGNlcHQ6Ci0gU3RyaW5nTGlzdC5fX3JlcHJfXyA9 IFN0cmluZ0xpc3QuX19zdHJfXwotIAotIAotLWNsYXNzIERldk51bGw6Ci0rY2xhc3MgRGV2TnVs bChvYmplY3QpOgotIAotICAgICAiIiJPdXRwdXQgc2luay4iIiIKLSAKLWRpZmYgLS1naXQgYS90 ZXN0L2FsbHRlc3RzLnB5IGIvdGVzdC9hbGx0ZXN0cy5weQotaW5kZXggNGE5YjUwZi4uOTM3MzEy NCAxMDA3NTUKLS0tLSBhL3Rlc3QvYWxsdGVzdHMucHkKLSsrKyBiL3Rlc3QvYWxsdGVzdHMucHkK LUBAIC0yNCw3ICsyNCw3IEBAIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0ICAgICAgICAgICAg ICAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzCi0g Ci0gCi0tY2xhc3MgVGVlOgotK2NsYXNzIFRlZShvYmplY3QpOgotIAotICAgICAiIiJXcml0ZSB0 byBhIGZpbGUgYW5kIGEgc3RyZWFtIChkZWZhdWx0OiBzdGRvdXQpIHNpbXVsdGFuZW91c2x5LiIi IgotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9zdGF0ZW1hY2hpbmUucHkgYi90ZXN0L3Rlc3Rf c3RhdGVtYWNoaW5lLnB5Ci1pbmRleCAwZTQxMzM3Li4wN2M1NjFlIDEwMDc1NQotLS0tIGEvdGVz dC90ZXN0X3N0YXRlbWFjaGluZS5weQotKysrIGIvdGVzdC90ZXN0X3N0YXRlbWFjaGluZS5weQot QEAgLTIwMyw3ICsyMDMsNyBAQCBjbGFzcyBTTVdTVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgot ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNtLnJ1bih0ZXN0dGV4dCksIGV4cGVjdGVk KQotIAotIAotLWNsYXNzIEVtcHR5Q2xhc3M6Ci0rY2xhc3MgRW1wdHlDbGFzcyhvYmplY3QpOgot ICAgICBwYXNzCi0gCi0gCi1kaWZmIC0tZ2l0IGEvdG9vbHMvYnVpbGRodG1sLnB5IGIvdG9vbHMv YnVpbGRodG1sLnB5Ci1pbmRleCAzMzMzZWFiLi5hYTRjNzU5IDEwMDc1NQotLS0tIGEvdG9vbHMv YnVpbGRodG1sLnB5Ci0rKysgYi90b29scy9idWlsZGh0bWwucHkKLUBAIC0xMDcsNyArMTA3LDcg QEAgY2xhc3MgT3B0aW9uUGFyc2VyKGZyb250ZW5kLk9wdGlvblBhcnNlcik6Ci0gICAgICAgICBy ZXR1cm4gc291cmNlLCBkZXN0aW5hdGlvbgotIAotIAotLWNsYXNzIFN0cnVjdDoKLStjbGFzcyBT dHJ1Y3Qob2JqZWN0KToKLSAKLSAgICAgIiIiU3RvcmVzIGRhdGEgYXR0cmlidXRlcyBmb3IgZG90 dGVkLWF0dHJpYnV0ZSBhY2Nlc3MuIiIiCi0gCi1AQCAtMTE1LDcgKzExNSw3IEBAIGNsYXNzIFN0 cnVjdDoKLSAgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGtleXdvcmRhcmdzKQotIAotIAot LWNsYXNzIEJ1aWxkZXI6Ci0rY2xhc3MgQnVpbGRlcihvYmplY3QpOgotIAotICAgICBkZWYgX19p bml0X18oc2VsZik6Ci0gICAgICAgICBzZWxmLnB1Ymxpc2hlcnMgPSB7Ci1kaWZmIC0tZ2l0IGEv dG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkgYi90b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weQot aW5kZXggMGU0NTQ1OC4uYTFkOTJhYyAxMDA3NTUKLS0tLSBhL3Rvb2xzL2Rldi9jcmVhdGVfdW5p bWFwLnB5Ci0rKysgYi90b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weQotQEAgLTI4LDggKzI4LDgg QEAgZGVmIHcocyk6Ci0gdGV4dF9tYXAgPSB7fQotIG1hdGhfbWFwID0ge30KLSAKLS1jbGFzcyBW aXNpdG9yOgotLSAgICAKLSsKLStjbGFzcyBWaXNpdG9yKG9iamVjdCk6Ci0gICAgICIiIk5vZGUg dmlzaXRvciBmb3IgY29udGVudHMgb2YgdW5pY29kZS54bWwuIiIiCi0gCi0gICAgIGRlZiB2aXNp dF9jaGFyYWN0ZXIoc2VsZiwgbm9kZSk6Ci1kaWZmIC0tZ2l0IGEvdG9vbHMvZGV2L3VuaWNvZGUy cnN0c3Vicy5weSBiL3Rvb2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkKLWluZGV4IGI3NDE4OTQu LmQ3MTkwMDUgMTAwNzU1Ci0tLS0gYS90b29scy9kZXYvdW5pY29kZTJyc3RzdWJzLnB5Ci0rKysg Yi90b29scy9kZXYvdW5pY29kZTJyc3RzdWJzLnB5Ci1AQCAtNTksNyArNTksNyBAQCBkZWYgcHJv Y2VzcyhpbmZpbGUpOgotICAgICBncm91cGVyLndyaXRlX3NldHMoKQotIAotIAotLWNsYXNzIENo YXJhY3RlckVudGl0eVNldEV4dHJhY3RvcjoKLStjbGFzcyBDaGFyYWN0ZXJFbnRpdHlTZXRFeHRy YWN0b3Iob2JqZWN0KToKLSAKLSAgICAgIiIiCi0gICAgIEV4dHJhY3RzIGNoYXJhY3RlciBlbnRp dHkgaW5mb3JtYXRpb24gZnJvbSB1bmljb2RlLnhtbCBmaWxlLCBncm91cHMgaXQgYnkKLS0tIAot Mi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1 dGlscy9wYXRjaGVzLzAwMDItcHkzLVN3aXRjaC10by1wcmludC1mdW5jdGlvbnMucGF0Y2ggYi9z cmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDItcHkzLVN3aXRjaC10by1wcmludC1m dW5jdGlvbnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YzczNTIzNDMz Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDIt cHkzLVN3aXRjaC10by1wcmludC1mdW5jdGlvbnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx NTE3ICswLDAgQEAKLUZyb20gZWRlMjU2OTBiNGI3MWZiYWIwMjUwNmYzYTA5MTllOTEwMWI3Yjcz YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBo ZW5AdGhhdC5ndXJ1PgotRGF0ZTogVHVlLCAxOSBOb3YgMjAxOSAyMzo0Nzo1NSArMDcwMAotU3Vi amVjdDogW1BBVENIIDAyLzI2XSBweTM6IFN3aXRjaCB0byBwcmludCBmdW5jdGlvbnMKLQotUmVt b3ZlIGFsbCB1c2VzIG9mIHByaW50IGFzIGEgc3RhdGVtZW50LiBUaGlzIGluY2x1ZGVzIGNvbW1l bnRzLCBtYW55IG9mCi13aGljaCBhcmUgc2ltcGx5IHJlbW92ZWQgYXMgbm9pc2UgKHRoZXkncmUg aW4gdmVyc2lvbiBjb250cm9sIGFuZCBjYW4gYmUKLXJlLWFkZGVkIGxhdGVyLCBpZiBuZWNlc3Nh cnkpLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3Vy dT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUv dHJ1bmtAODM0NiA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1v ZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0g ZG9jdXRpbHMvY29yZS5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzcgKysrKysr Ky0tLS0tLQotIGRvY3V0aWxzL2lvLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA3ICsrLQotIGRvY3V0aWxzL25vZGVzLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAzICstCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9ib2R5LnB5ICAgICAgIHwg IDMgKy0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9yb2xlcy5weSAgICAgICAgICAgICAgICAgfCAg MSAtCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3Qvc3RhdGVzLnB5ICAgICAgICAgICAgICAgIHwgIDQg Ky0KLSBkb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgICAgICAgICAgICAgICAgICAgICAgfCA1NSAr KysrKysrKystLS0tLS0tLS0tCi0gZG9jdXRpbHMvdHJhbnNmb3Jtcy91bml2ZXJzYWwucHkgICAg ICAgICAgICAgIHwgIDMgKy0KLSBkb2N1dGlscy91dGlscy9fX2luaXRfXy5weSAgICAgICAgICAg ICAgICAgICAgfCAgMSAtCi0gZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwucHkgICAg ICAgICAgIHwgIDEgLQotIGRvY3V0aWxzL3V0aWxzL21hdGgvdGV4Mm1hdGhtbF9leHRlcm4ucHkg ICAgICB8ICA3ICsrLQotIGRvY3V0aWxzL3V0aWxzL3NtYXJ0cXVvdGVzLnB5ICAgICAgICAgICAg ICAgICB8IDE5ICsrKystLS0KLSBkb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkgICAgICAg ICAgICAgICAgfCAgOSAtLS0KLSBkb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkg ICAgICAgICAgfCAgOSArKy0KLSBpbnN0YWxsLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNSArLQotIHNldHVwLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrLS0KLSB0ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgICAgICAgICAg ICAgICAgICAgfCAyNyArKysrLS0tLS0KLSB0ZXN0L2FsbHRlc3RzLnB5ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAzMiArKysrKy0tLS0tLQotIHRlc3QvcGFja2FnZV91bml0dGVzdC5w eSAgICAgICAgICAgICAgICAgICAgICB8IDExICsrLS0KLSB0ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0 aW5nLnB5ICAgICAgICAgICAgICAgICAgfCAgNyArKy0KLSB0ZXN0L3Rlc3RfZnVuY3Rpb25hbC5w eSAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLQotIHRlc3QvdGVzdF9pby5weSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X2NvZGUucHkgICAgIHwgMTQgKysrLS0KLSAuLi4vdGVzdF9kaXJlY3RpdmVzL3Rl c3RfY29kZV9sb25nLnB5ICAgICAgICAgfCAgNyArKy0KLSAuLi4vdGVzdF9kaXJlY3RpdmVzL3Rl c3RfY29kZV9ub25lLnB5ICAgICAgICAgfCAgNCArLQotIC4uLi90ZXN0X3JzdC90ZXN0X2RvY3Rl c3RfYmxvY2tzLnB5ICAgICAgICAgICB8IDEyICsrLS0KLSB0ZXN0L3Rlc3Rfc2V0dGluZ3MucHkg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArLS0KLSB0ZXN0L3Rlc3Rfc3RhdGVtYWNoaW5l LnB5ICAgICAgICAgICAgICAgICAgICAgfCAyMyArKysrLS0tLQotIHRlc3QvdGVzdF90cmFuc2Zv cm1zL3Rlc3Rfc21hcnRxdW90ZXMucHkgICAgICB8IDEwICsrLS0KLSAuLi4vdGVzdF9zdHJpcF9l bGVtZW50c193aXRoX2NsYXNzLnB5ICAgICAgICAgfCAgMiArLQotIHRlc3QvdGVzdF92aWV3bGlz dC5weSAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0IC0tLS0tCi0gdG9vbHMvZGV2L2NyZWF0 ZV91bmltYXAucHkgICAgICAgICAgICAgICAgICAgIHwgIDEgKwotIHRvb2xzL2Rldi9nZW5lcmF0 ZV9wdW5jdHVhdGlvbl9jaGFycy5weSAgICAgICB8IDQ4ICstLS0tLS0tLS0tLS0tLS0KLSB0b29s cy9kZXYvcHJvZmlsZV9kb2N1dGlscy5weSAgICAgICAgICAgICAgICAgfCAgMSArCi0gdG9vbHMv ZGV2L3VuaWNvZGUycnN0c3Vicy5weSAgICAgICAgICAgICAgICAgIHwgIDEgKwotIHRvb2xzL3F1 aWNrdGVzdC5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKLSB0b29scy9yc3Qy b2R0X3ByZXBzdHlsZXMucHkgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKy0tLS0tCi0gMzcg ZmlsZXMgY2hhbmdlZCwgMTk1IGluc2VydGlvbnMoKyksIDI0MSBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2RvY3V0aWxzL2NvcmUucHkgYi9kb2N1dGlscy9jb3JlLnB5Ci1pbmRleCAyZWVi YmYyLi42YTk5MDIwIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvY29yZS5weQotKysrIGIvZG9jdXRp bHMvY29yZS5weQotQEAgLTExLDYgKzExLDcgQEAgY3VzdG9tIGNvbXBvbmVudCBvYmplY3RzIGZp cnN0LCBhbmQgcGFzcyAqdGhlbSogdG8KLSAKLSAuLiBfVGhlIERvY3V0aWxzIFB1Ymxpc2hlcjog aHR0cDovL2RvY3V0aWxzLnNmLm5ldC9kb2NzL2FwaS9wdWJsaXNoZXIuaHRtbAotICIiIgotK2Zy b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLSBfX2RvY2Zvcm1hdF9fID0g J3JlU3RydWN0dXJlZFRleHQnCi0gCi1AQCAtMjQzLDI0ICsyNDQsMjQgQEAgY2xhc3MgUHVibGlz aGVyKG9iamVjdCk6Ci0gICAgICAgICBpZiBub3Qgc2VsZi5kb2N1bWVudDoKLSAgICAgICAgICAg ICByZXR1cm4KLSAgICAgICAgIGlmIHNlbGYuc2V0dGluZ3MuZHVtcF9zZXR0aW5nczoKLS0gICAg ICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgJ1xuOjo6IFJ1bnRpbWUgc2V0dGluZ3M6Jwot LSAgICAgICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCBwcHJpbnQucGZvcm1hdChzZWxmLnNl dHRpbmdzLl9fZGljdF9fKQotKyAgICAgICAgICAgIHByaW50KCdcbjo6OiBSdW50aW1lIHNldHRp bmdzOicsIGZpbGU9c2VsZi5fc3RkZXJyKQotKyAgICAgICAgICAgIHByaW50KHBwcmludC5wZm9y bWF0KHNlbGYuc2V0dGluZ3MuX19kaWN0X18pLCBmaWxlPXNlbGYuX3N0ZGVycikKLSAgICAgICAg IGlmIHNlbGYuc2V0dGluZ3MuZHVtcF9pbnRlcm5hbHM6Ci0tICAgICAgICAgICAgcHJpbnQgPj5z ZWxmLl9zdGRlcnIsICdcbjo6OiBEb2N1bWVudCBpbnRlcm5hbHM6JwotLSAgICAgICAgICAgIHBy aW50ID4+c2VsZi5fc3RkZXJyLCBwcHJpbnQucGZvcm1hdChzZWxmLmRvY3VtZW50Ll9fZGljdF9f KQotKyAgICAgICAgICAgIHByaW50KCdcbjo6OiBEb2N1bWVudCBpbnRlcm5hbHM6JywgZmlsZT1z ZWxmLl9zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQocHByaW50LnBmb3JtYXQoc2VsZi5kb2N1 bWVudC5fX2RpY3RfXyksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgaWYgc2VsZi5zZXR0 aW5ncy5kdW1wX3RyYW5zZm9ybXM6Ci0tICAgICAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIs ICdcbjo6OiBUcmFuc2Zvcm1zIGFwcGxpZWQ6JwotLSAgICAgICAgICAgIHByaW50ID4+c2VsZi5f c3RkZXJyLCAoJyAocHJpb3JpdHksIHRyYW5zZm9ybSBjbGFzcywgJwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdwZW5kaW5nIG5vZGUgZGV0YWlscywga2V5d29yZCBhcmdzKScp Ci0tICAgICAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsIHBwcmludC5wZm9ybWF0KAotKyAg ICAgICAgICAgIHByaW50KCdcbjo6OiBUcmFuc2Zvcm1zIGFwcGxpZWQ6JywgZmlsZT1zZWxmLl9z dGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQoJyAocHJpb3JpdHksIHRyYW5zZm9ybSBjbGFzcywg cGVuZGluZyBub2RlIGRldGFpbHMsICcKLSsgICAgICAgICAgICAgICAgICAna2V5d29yZCBhcmdz KScsIGZpbGU9c2VsZi5fc3RkZXJyKQotKyAgICAgICAgICAgIHByaW50KHBwcmludC5wZm9ybWF0 KAotICAgICAgICAgICAgICAgICBbKHByaW9yaXR5LCAnJXMuJXMnICUgKHhjbGFzcy5fX21vZHVs ZV9fLCB4Y2xhc3MuX19uYW1lX18pLAotICAgICAgICAgICAgICAgICAgIHBlbmRpbmcgYW5kIHBl bmRpbmcuZGV0YWlscywga3dhcmdzKQotICAgICAgICAgICAgICAgICAgZm9yIHByaW9yaXR5LCB4 Y2xhc3MsIHBlbmRpbmcsIGt3YXJncwotLSAgICAgICAgICAgICAgICAgaW4gc2VsZi5kb2N1bWVu dC50cmFuc2Zvcm1lci5hcHBsaWVkXSkKLSsgICAgICAgICAgICAgICAgIGluIHNlbGYuZG9jdW1l bnQudHJhbnNmb3JtZXIuYXBwbGllZF0pLCBmaWxlPXNlbGYuX3N0ZGVycikKLSAgICAgICAgIGlm IHNlbGYuc2V0dGluZ3MuZHVtcF9wc2V1ZG9feG1sOgotLSAgICAgICAgICAgIHByaW50ID4+c2Vs Zi5fc3RkZXJyLCAnXG46OjogUHNldWRvLVhNTDonCi0tICAgICAgICAgICAgcHJpbnQgPj5zZWxm Ll9zdGRlcnIsIHNlbGYuZG9jdW1lbnQucGZvcm1hdCgpLmVuY29kZSgKLS0gICAgICAgICAgICAg ICAgJ3Jhd191bmljb2RlX2VzY2FwZScpCi0rICAgICAgICAgICAgcHJpbnQoJ1xuOjo6IFBzZXVk by1YTUw6JywgZmlsZT1zZWxmLl9zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQoc2VsZi5kb2N1 bWVudC5wZm9ybWF0KCkuZW5jb2RlKAotKyAgICAgICAgICAgICAgICAncmF3X3VuaWNvZGVfZXNj YXBlJyksIGZpbGU9c2VsZi5fc3RkZXJyKQotIAotICAgICBkZWYgcmVwb3J0X0V4Y2VwdGlvbihz ZWxmLCBlcnJvcik6Ci0gICAgICAgICBpZiBpc2luc3RhbmNlKGVycm9yLCB1dGlscy5TeXN0ZW1N ZXNzYWdlKToKLUBAIC0yNzUsOCArMjc2LDggQEAgY2xhc3MgUHVibGlzaGVyKG9iamVjdCk6Ci0g ICAgICAgICAgICAgICAgIHUnVW5hYmxlIHRvIG9wZW4gZGVzdGluYXRpb24gZmlsZSBmb3Igd3Jp dGluZzpcbicKLSAgICAgICAgICAgICAgICAgdScgICVzXG4nICUgRXJyb3JTdHJpbmcoZXJyb3Ip KQotICAgICAgICAgZWxzZToKLS0gICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgdScl cycgJSBFcnJvclN0cmluZyhlcnJvcikKLS0gICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVy ciwgKCIiIlwKLSsgICAgICAgICAgICBwcmludCh1JyVzJyAlIEVycm9yU3RyaW5nKGVycm9yKSwg ZmlsZT1zZWxmLl9zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQoKCIiIlwKLSBFeGl0aW5nIGR1 ZSB0byBlcnJvci4gIFVzZSAiLS10cmFjZWJhY2siIHRvIGRpYWdub3NlLgotIFBsZWFzZSByZXBv cnQgZXJyb3JzIHRvIDxkb2N1dGlscy11c2Vyc0BsaXN0cy5zZi5uZXQ+LgotIEluY2x1ZGUgIi0t dHJhY2ViYWNrIiBvdXRwdXQsIERvY3V0aWxzIHZlcnNpb24gKCVzJXMpLAotQEAgLTI4NCwxMiAr Mjg1LDEyIEBAIFB5dGhvbiB2ZXJzaW9uICglcyksIHlvdXIgT1MgdHlwZSAmIHZlcnNpb24sIGFu ZCB0aGUKLSBjb21tYW5kIGxpbmUgdXNlZC4iIiIgJSAoX192ZXJzaW9uX18sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgIGRvY3V0aWxzLl9fdmVyc2lvbl9kZXRhaWxzX18gYW5kCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICcgWyVzXSclZG9jdXRpbHMuX192ZXJzaW9uX2RldGFpbHNfXyBv ciAnJywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnZlcnNpb24uc3BsaXQoKVswXSkp Ci0rICAgICAgICAgICAgICAgICAgICAgICAgIHN5cy52ZXJzaW9uLnNwbGl0KClbMF0pKSwgZmls ZT1zZWxmLl9zdGRlcnIpCi0gCi0gICAgIGRlZiByZXBvcnRfU3lzdGVtTWVzc2FnZShzZWxmLCBl cnJvcik6Ci0tICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgKCdFeGl0aW5nIGR1ZSB0byBs ZXZlbC0lcyAoJXMpIHN5c3RlbSBtZXNzYWdlLicKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICUgKGVycm9yLmxldmVsLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRp bHMuUmVwb3J0ZXIubGV2ZWxzW2Vycm9yLmxldmVsXSkpCi0rICAgICAgICBwcmludCgnRXhpdGlu ZyBkdWUgdG8gbGV2ZWwtJXMgKCVzKSBzeXN0ZW0gbWVzc2FnZS4nICUgKAotKyAgICAgICAgICAg IGVycm9yLmxldmVsLCB1dGlscy5SZXBvcnRlci5sZXZlbHNbZXJyb3IubGV2ZWxdKSwKLSsgICAg ICAgICAgICAgIGZpbGU9c2VsZi5fc3RkZXJyKQotIAotICAgICBkZWYgcmVwb3J0X1VuaWNvZGVF cnJvcihzZWxmLCBlcnJvcik6Ci0gICAgICAgICBkYXRhID0gZXJyb3Iub2JqZWN0W2Vycm9yLnN0 YXJ0OmVycm9yLmVuZF0KLWRpZmYgLS1naXQgYS9kb2N1dGlscy9pby5weSBiL2RvY3V0aWxzL2lv LnB5Ci1pbmRleCA3OWNiMDEyLi4zYjBmOTNlIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvaW8ucHkK LSsrKyBiL2RvY3V0aWxzL2lvLnB5Ci1AQCAtNiw2ICs2LDcgQEAKLSBJL08gY2xhc3NlcyBwcm92 aWRlIGEgdW5pZm9ybSBBUEkgZm9yIGxvdy1sZXZlbCBpbnB1dCBhbmQgb3V0cHV0LiAgU3ViY2xh c3NlcwotIGV4aXN0IGZvciBhIHZhcmlldHkgb2YgaW5wdXQvb3V0cHV0IG1lY2hhbmlzbXMuCi0g IiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotIAotIF9fZG9jZm9y bWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4dCcKLSAKLUBAIC0zNDMsOSArMzQ0LDkgQEAgY2xhc3Mg RmlsZU91dHB1dChPdXRwdXQpOgotICAgICAgICAgZWxpZiAoIyBkZXN0aW5hdGlvbiBpcyBmaWxl LXR5cGUgb2JqZWN0IC0+IGNoZWNrIG1vZGU6Ci0gICAgICAgICAgICAgICBtb2RlIGFuZCBoYXNh dHRyKHNlbGYuZGVzdGluYXRpb24sICdtb2RlJykKLSAgICAgICAgICAgICAgIGFuZCBtb2RlICE9 IHNlbGYuZGVzdGluYXRpb24ubW9kZSk6Ci0tICAgICAgICAgICAgICAgIHByaW50ID4+c2VsZi5f c3RkZXJyLCAoJ1dhcm5pbmc6IERlc3RpbmF0aW9uIG1vZGUgIiVzIiAnCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdkaWZmZXJzIGZyb20gc3BlY2lmaWVkIG1vZGUgIiVzIicgJQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5kZXN0aW5hdGlvbi5tb2RlLCBt b2RlKSkKLSsgICAgICAgICAgICAgICAgcHJpbnQoJ1dhcm5pbmc6IERlc3RpbmF0aW9uIG1vZGUg IiVzIiBkaWZmZXJzIGZyb20gc3BlY2lmaWVkICcKLSsgICAgICAgICAgICAgICAgICAgICAgJ21v ZGUgIiVzIicgJSAoc2VsZi5kZXN0aW5hdGlvbi5tb2RlLCBtb2RlKSwKLSsgICAgICAgICAgICAg ICAgICAgICAgZmlsZT1zZWxmLl9zdGRlcnIpCi0gICAgICAgICBpZiBub3QgZGVzdGluYXRpb25f cGF0aDoKLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIHNlbGYuZGVzdGluYXRp b25fcGF0aCA9IHNlbGYuZGVzdGluYXRpb24ubmFtZQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL25v ZGVzLnB5IGIvZG9jdXRpbHMvbm9kZXMucHkKLWluZGV4IDk1NzMyMDguLjhhNWI3YmIgMTAwNjQ0 Ci0tLS0gYS9kb2N1dGlscy9ub2Rlcy5weQotKysrIGIvZG9jdXRpbHMvbm9kZXMucHkKLUBAIC0x OSw2ICsxOSw3IEBAIGhpZXJhcmNoeS4KLSAKLSAuLiBfRFREOiBodHRwOi8vZG9jdXRpbHMuc291 cmNlZm9yZ2UubmV0L2RvY3MvcmVmL2RvY3V0aWxzLmR0ZAotICIiIgotK2Zyb20gX19mdXR1cmVf XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLSBfX2RvY2Zvcm1hdF9fID0gJ3JlU3RydWN0dXJl ZFRleHQnCi0gCi1AQCAtMTcyNCw3ICsxNzI1LDcgQEAgY2xhc3Mgc3lzdGVtX21lc3NhZ2UoU3Bl Y2lhbCwgQmFja0xpbmthYmxlLCBQcmVCaWJsaW9ncmFwaGljLCBFbGVtZW50KToKLSAgICAgICAg IHRyeToKLSAgICAgICAgICAgICBFbGVtZW50Ll9faW5pdF9fKHNlbGYsIHJhd3NvdXJjZSwgKmNo aWxkcmVuLCAqKmF0dHJpYnV0ZXMpCi0gICAgICAgICBleGNlcHQ6Ci0tICAgICAgICAgICAgcHJp bnQgJ3N5c3RlbV9tZXNzYWdlOiBjaGlsZHJlbj0lcicgJSAoY2hpbGRyZW4sKQotKyAgICAgICAg ICAgIHByaW50KCdzeXN0ZW1fbWVzc2FnZTogY2hpbGRyZW49JXInICUgKGNoaWxkcmVuLCkpCi0g ICAgICAgICAgICAgcmFpc2UKLSAKLSAgICAgZGVmIGFzdGV4dChzZWxmKToKLWRpZmYgLS1naXQg YS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2JvZHkucHkgYi9kb2N1dGlscy9wYXJz ZXJzL3JzdC9kaXJlY3RpdmVzL2JvZHkucHkKLWluZGV4IGM4YmYxNzIuLmI2MGMzYWQgMTAwNjQ0 Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2JvZHkucHkKLSsrKyBiL2Rv Y3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvYm9keS5weQotQEAgLTExLDEzICsxMSwxMyBA QCBTZWUgYGRvY3V0aWxzLnBhcnNlcnMucnN0LmRpcmVjdGl2ZXNgIGZvciBBUEkgZGV0YWlscy4K LSBfX2RvY2Zvcm1hdF9fID0gJ3JlU3RydWN0dXJlZFRleHQnCi0gCi0gCi0taW1wb3J0IHN5cwot IGZyb20gZG9jdXRpbHMgaW1wb3J0IG5vZGVzCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBp bXBvcnQgRGlyZWN0aXZlCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgZGlyZWN0 aXZlcwotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3Qucm9sZXMgaW1wb3J0IHNldF9jbGFzc2Vz Ci0gZnJvbSBkb2N1dGlscy51dGlscy5jb2RlX2FuYWx5emVyIGltcG9ydCBMZXhlciwgTGV4ZXJF cnJvciwgTnVtYmVyTGluZXMKLSAKLSsKLSBjbGFzcyBCYXNlUHNldWRvU2VjdGlvbihEaXJlY3Rp dmUpOgotIAotICAgICByZXF1aXJlZF9hcmd1bWVudHMgPSAxCi1AQCAtMTY3LDcgKzE2Nyw2IEBA IGNsYXNzIENvZGVCbG9jayhEaXJlY3RpdmUpOgotICAgICAgICAgICAgIG5vZGUuYXR0cmlidXRl c1snc291cmNlJ10gPSBzZWxmLm9wdGlvbnNbJ3NvdXJjZSddCi0gICAgICAgICAjIGFuYWx5emUg Y29udGVudCBhbmQgYWRkIG5vZGVzIGZvciBldmVyeSB0b2tlbgotICAgICAgICAgZm9yIGNsYXNz ZXMsIHZhbHVlIGluIHRva2VuczoKLS0gICAgICAgICAgICAjIHByaW50IChjbGFzc2VzLCB2YWx1 ZSkKLSAgICAgICAgICAgICBpZiBjbGFzc2VzOgotICAgICAgICAgICAgICAgICBub2RlICs9IG5v ZGVzLmlubGluZSh2YWx1ZSwgdmFsdWUsIGNsYXNzZXM9Y2xhc3NlcykKLSAgICAgICAgICAgICBl bHNlOgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3JvbGVzLnB5IGIvZG9jdXRp bHMvcGFyc2Vycy9yc3Qvcm9sZXMucHkKLWluZGV4IGFhNDJjODAuLmJmNzg2YjcgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9yb2xlcy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vy cy9yc3Qvcm9sZXMucHkKLUBAIC0zNDIsNyArMzQyLDYgQEAgZGVmIGNvZGVfcm9sZShyb2xlLCBy YXd0ZXh0LCB0ZXh0LCBsaW5lbm8sIGlubGluZXIsIG9wdGlvbnM9e30sIGNvbnRlbnQ9W10pOgot IAotICAgICAjIGFuYWx5c2UgY29udGVudCBhbmQgYWRkIG5vZGVzIGZvciBldmVyeSB0b2tlbgot ICAgICBmb3IgY2xhc3NlcywgdmFsdWUgaW4gdG9rZW5zOgotLSAgICAgICAgIyBwcmludCAoY2xh c3NlcywgdmFsdWUpCi0gICAgICAgICBpZiBjbGFzc2VzOgotICAgICAgICAgICAgIG5vZGUgKz0g bm9kZXMuaW5saW5lKHZhbHVlLCB2YWx1ZSwgY2xhc3Nlcz1jbGFzc2VzKQotICAgICAgICAgZWxz ZToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkgYi9kb2N1dGls cy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkKLWluZGV4IDJlY2UzYjMuLmEyOTcwYzggMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNl cnMvcnN0L3N0YXRlcy5weQotQEAgLTI3NTgsOCArMjc1OCw4IEBAIGNsYXNzIFRleHQoUlNUU3Rh dGUpOgotICAgICAgICAgICAgIHNyYywgc3JjbGluZSA9IHNlbGYuc3RhdGVfbWFjaGluZS5nZXRf c291cmNlX2FuZF9saW5lKCkKLSAgICAgICAgICAgICAjIFRPRE86IHdoeSBpcyBhYnNfbGluZV9u dW1iZXIoKSA9PSBzcmNsaW5lKzEKLSAgICAgICAgICAgICAjIGlmIHRoZSBlcnJvciBpcyBpbiBh IHRhYmxlICh0cnkgd2l0aCB0ZXN0X3RhYmxlcy5weSk/Ci0tICAgICAgICAgICAgIyBwcmludCAi Z2V0X3NvdXJjZV9hbmRfbGluZSIsIHNyY2xpbmUKLS0gICAgICAgICAgICAjIHByaW50ICJhYnNf bGluZV9udW1iZXIiLCBzZWxmLnN0YXRlX21hY2hpbmUuYWJzX2xpbmVfbnVtYmVyKCkKLSsgICAg ICAgICAgICAjIHByaW50KCJnZXRfc291cmNlX2FuZF9saW5lIiwgc3JjbGluZSkKLSsgICAgICAg ICAgICAjIHByaW50KCJhYnNfbGluZV9udW1iZXIiLCBzZWxmLnN0YXRlX21hY2hpbmUuYWJzX2xp bmVfbnVtYmVyKCkpCi0gICAgICAgICAgICAgbXNnID0gc2VsZi5yZXBvcnRlci5zZXZlcmUoJ1Vu ZXhwZWN0ZWQgc2VjdGlvbiB0aXRsZS4nLAotICAgICAgICAgICAgICAgICBub2Rlcy5saXRlcmFs X2Jsb2NrKGJsb2NrdGV4dCwgYmxvY2t0ZXh0KSwKLSAgICAgICAgICAgICAgICAgc291cmNlPXNy YywgbGluZT1zcmNsaW5lKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weSBi L2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotaW5kZXggMjE4ODk4Mi4uNjcxNGEwNCAxMDA2NDQK LS0tLSBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotKysrIGIvZG9jdXRpbHMvc3RhdGVtYWNo aW5lLnB5Ci1AQCAtMTAzLDYgKzEwMyw3IEBAIEhvdyBUbyBVc2UgVGhpcyBNb2R1bGUKLSAKLSAg ICAgICAgc20udW5saW5rKCkKLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1 bmN0aW9uCi0gCi0gX19kb2Nmb3JtYXRfXyA9ICdyZXN0cnVjdHVyZWR0ZXh0JwotIAotQEAgLTIx MywxNSArMjE0LDE1IEBAIGNsYXNzIFN0YXRlTWFjaGluZShvYmplY3QpOgotICAgICAgICAgc2Vs Zi5saW5lX29mZnNldCA9IC0xCi0gICAgICAgICBzZWxmLmN1cnJlbnRfc3RhdGUgPSBpbml0aWFs X3N0YXRlIG9yIHNlbGYuaW5pdGlhbF9zdGF0ZQotICAgICAgICAgaWYgc2VsZi5kZWJ1ZzoKLS0g ICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgKAotKyAgICAgICAgICAgIHByaW50KCgK LSAgICAgICAgICAgICAgICAgdSdcblN0YXRlTWFjaGluZS5ydW46IGlucHV0X2xpbmVzIChsaW5l X29mZnNldD0lcyk6XG58ICVzJwotLSAgICAgICAgICAgICAgICAlIChzZWxmLmxpbmVfb2Zmc2V0 LCB1J1xufCAnLmpvaW4oc2VsZi5pbnB1dF9saW5lcykpKQotKyAgICAgICAgICAgICAgICAlIChz ZWxmLmxpbmVfb2Zmc2V0LCB1J1xufCAnLmpvaW4oc2VsZi5pbnB1dF9saW5lcykpKSwgZmlsZT1z ZWxmLl9zdGRlcnIpCi0gICAgICAgICB0cmFuc2l0aW9ucyA9IE5vbmUKLSAgICAgICAgIHJlc3Vs dHMgPSBbXQotICAgICAgICAgc3RhdGUgPSBzZWxmLmdldF9zdGF0ZSgpCi0gICAgICAgICB0cnk6 Ci0gICAgICAgICAgICAgaWYgc2VsZi5kZWJ1ZzoKLS0gICAgICAgICAgICAgICAgcHJpbnQgPj5z ZWxmLl9zdGRlcnIsICdcblN0YXRlTWFjaGluZS5ydW46IGJvZiB0cmFuc2l0aW9uJwotKyAgICAg ICAgICAgICAgICBwcmludCgnXG5TdGF0ZU1hY2hpbmUucnVuOiBib2YgdHJhbnNpdGlvbicsIGZp bGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgICAgIGNvbnRleHQsIHJlc3VsdCA9IHN0YXRlLmJv Zihjb250ZXh0KQotICAgICAgICAgICAgIHJlc3VsdHMuZXh0ZW5kKHJlc3VsdCkKLSAgICAgICAg ICAgICB3aGlsZSBUcnVlOgotQEAgLTIzMSwxNyArMjMyLDE3IEBAIGNsYXNzIFN0YXRlTWFjaGlu ZShvYmplY3QpOgotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWc6Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgb2Zmc2V0ID0gc2VsZi5pbnB1dF9saW5l cy5pbmZvKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5saW5lX29mZnNl dCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsICgK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoKAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdSdcblN0YXRlTWFjaGluZS5ydW46IGxpbmUgKHNvdXJjZT0lciwgJwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdvZmZzZXQ9JXIpOlxufCAlcycKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHNvdXJjZSwgb2Zmc2V0LCBzZWxmLmxp bmUpKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoc291cmNlLCBvZmZzZXQs IHNlbGYubGluZSkpLCBmaWxlPXNlbGYuX3N0ZGVycikKLSAgICAgICAgICAgICAgICAgICAgICAg ICBjb250ZXh0LCBuZXh0X3N0YXRlLCByZXN1bHQgPSBzZWxmLmNoZWNrX2xpbmUoCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsIHN0YXRlLCB0cmFuc2l0aW9ucykKLSAgICAg ICAgICAgICAgICAgICAgIGV4Y2VwdCBFT0ZFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBzZWxmLmRlYnVnOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCA+PnNl bGYuX3N0ZGVyciwgKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgoCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG5TdGF0ZU1hY2hpbmUucnVuOiAlcy5lb2Yg dHJhbnNpdGlvbicKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgc3RhdGUuX19j bGFzc19fLl9fbmFtZV9fKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBzdGF0 ZS5fX2NsYXNzX18uX19uYW1lX18pLCBmaWxlPXNlbGYuX3N0ZGVycikKLSAgICAgICAgICAgICAg ICAgICAgICAgICByZXN1bHQgPSBzdGF0ZS5lb2YoY29udGV4dCkKLSAgICAgICAgICAgICAgICAg ICAgICAgICByZXN1bHRzLmV4dGVuZChyZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWsKLUBAIC0yNTEsMTAgKzI1MiwxMCBAQCBjbGFzcyBTdGF0ZU1hY2hpbmUob2JqZWN0KToK LSAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJldmlvdXNfbGluZSgpICMgYmFjayB1cCBmb3Ig YW5vdGhlciB0cnkKLSAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zID0gKGV4Y2VwdGlv bi5hcmdzWzBdLCkKLSAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWc6Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsICgKLSsgICAgICAgICAgICAg ICAgICAgICAgICBwcmludCgoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuU3Rh dGVNYWNoaW5lLnJ1bjogVHJhbnNpdGlvbkNvcnJlY3Rpb24gdG8gJwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdzdGF0ZSAiJXMiLCB0cmFuc2l0aW9uICVzLicKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAlIChzdGF0ZS5fX2NsYXNzX18uX19uYW1lX18sIHRyYW5zaXRp b25zWzBdKSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzdGF0ZS5fX2NsYXNz X18uX19uYW1lX18sIHRyYW5zaXRpb25zWzBdKSksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAg ICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgZXhjZXB0IFN0YXRlQ29y cmVjdGlvbiwgZXhjZXB0aW9uOgotICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmV2aW91c19s aW5lKCkgIyBiYWNrIHVwIGZvciBhbm90aGVyIHRyeQotQEAgLTI2NCwxMCArMjY1LDEwIEBAIGNs YXNzIFN0YXRlTWFjaGluZShvYmplY3QpOgotICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAg ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9ucyA9IChleGNlcHRpb24uYXJnc1sxXSwp Ci0gICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmRlYnVnOgotLSAgICAgICAgICAgICAgICAg ICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAoCi0rICAgICAgICAgICAgICAgICAgICAgICAg cHJpbnQoKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcblN0YXRlTWFjaGluZS5y dW46IFN0YXRlQ29ycmVjdGlvbiB0byBzdGF0ZSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJyIlcyIsIHRyYW5zaXRpb24gJXMuJwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICUgKG5leHRfc3RhdGUsIHRyYW5zaXRpb25zWzBdKSkKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAlIChuZXh0X3N0YXRlLCB0cmFuc2l0aW9uc1swXSkpLCBmaWxlPXNlbGYuX3N0 ZGVycikKLSAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgIHRyYW5z aXRpb25zID0gTm9uZQotICAgICAgICAgICAgICAgICBzdGF0ZSA9IHNlbGYuZ2V0X3N0YXRlKG5l eHRfc3RhdGUpCi1AQCAtMjg4LDExICsyODksMTEgQEAgY2xhc3MgU3RhdGVNYWNoaW5lKG9iamVj dCk6Ci0gICAgICAgICAiIiIKLSAgICAgICAgIGlmIG5leHRfc3RhdGU6Ci0gICAgICAgICAgICAg aWYgc2VsZi5kZWJ1ZyBhbmQgbmV4dF9zdGF0ZSAhPSBzZWxmLmN1cnJlbnRfc3RhdGU6Ci0tICAg ICAgICAgICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAoCi0rICAgICAgICAgICAgICAgIHBy aW50KCgKLSAgICAgICAgICAgICAgICAgICAgICdcblN0YXRlTWFjaGluZS5nZXRfc3RhdGU6IENo YW5naW5nIHN0YXRlIGZyb20gJwotICAgICAgICAgICAgICAgICAgICAgJyIlcyIgdG8gIiVzIiAo aW5wdXQgbGluZSAlcykuJwotICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5jdXJyZW50X3N0 YXRlLCBuZXh0X3N0YXRlLAotLSAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hYnNfbGluZV9u dW1iZXIoKSkpCi0rICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFic19saW5lX251bWJlcigp KSksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgICAgIHNlbGYuY3VycmVudF9zdGF0ZSA9 IG5leHRfc3RhdGUKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICByZXR1cm4gc2VsZi5zdGF0 ZXNbc2VsZi5jdXJyZW50X3N0YXRlXQotQEAgLTM4MiwxNSArMzgzLDExIEBAIGNsYXNzIFN0YXRl TWFjaGluZShvYmplY3QpOgotICAgICAgICAgICAgICMgbGluZSBpcyBOb25lIGlmIGluZGV4IGlz ICJKdXN0IHBhc3QgdGhlIGVuZCIKLSAgICAgICAgICAgICBzcmMsIHNyY2xpbmUgPSBzZWxmLmdl dF9zb3VyY2VfYW5kX2xpbmUob2Zmc2V0ICsgc2VsZi5pbnB1dF9vZmZzZXQpCi0gICAgICAgICAg ICAgcmV0dXJuIHNyYywgc3JjbGluZSArIDEKLS0gICAgICAgIGV4Y2VwdCAoSW5kZXhFcnJvcik6 ICMgYG9mZnNldGAgaXMgb2ZmIHRoZSBsaXN0Ci0rICAgICAgICBleGNlcHQgKEluZGV4RXJyb3Ip OiAgIyBgb2Zmc2V0YCBpcyBvZmYgdGhlIGxpc3QKLSAgICAgICAgICAgICBzcmMsIHNyY2xpbmUg PSBOb25lLCBOb25lCi0gICAgICAgICAgICAgIyByYWlzZSBBc3NlcnRpb25FcnJvcignY2Fubm90 IGZpbmQgbGluZSAlZCBpbiAlcyBsaW5lcycgJQotICAgICAgICAgICAgICMgICAgICAgICAgICAg ICAgICAgICAgKG9mZnNldCwgbGVuKHNlbGYuaW5wdXRfbGluZXMpKSkKLSAgICAgICAgICAgICAj ICAgICAgICAgICAgICAgICAgICAgICMgbGlzdChzZWxmLmlucHV0X2xpbmVzLmxpbmVzKCkpKSkK LS0gICAgICAgICMgYXNzZXJ0IG9mZnNldCA9PSBzcmNvZmZzZXQsIHN0cihzZWxmLmlucHV0X2xp bmVzKQotLSAgICAgICAgIyBwcmludCAiZ2V0X3NvdXJjZV9hbmRfbGluZSglcyk6IiAlIGxpbmVu bywKLS0gICAgICAgICMgcHJpbnQgb2Zmc2V0ICsgMSwgJy0+Jywgc3JjLCBzcmNsaW5lCi0tICAg ICAgICAjIHByaW50IHNlbGYuaW5wdXRfbGluZXMKLSAgICAgICAgIHJldHVybiAoc3JjLCBzcmNs aW5lKQotIAotICAgICBkZWYgaW5zZXJ0X2lucHV0KHNlbGYsIGlucHV0X2xpbmVzLCBzb3VyY2Up OgotQEAgLTQ0NSwyNCArNDQyLDI0IEBAIGNsYXNzIFN0YXRlTWFjaGluZShvYmplY3QpOgotICAg ICAgICAgICAgIHRyYW5zaXRpb25zID0gIHN0YXRlLnRyYW5zaXRpb25fb3JkZXIKLSAgICAgICAg IHN0YXRlX2NvcnJlY3Rpb24gPSBOb25lCi0gICAgICAgICBpZiBzZWxmLmRlYnVnOgotLSAgICAg ICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAoCi0rICAgICAgICAgICAgcHJpbnQoKAotICAg ICAgICAgICAgICAgICAgICdcblN0YXRlTWFjaGluZS5jaGVja19saW5lOiBzdGF0ZT0iJXMiLCB0 cmFuc2l0aW9ucz0lci4nCi0tICAgICAgICAgICAgICAgICAgJSAoc3RhdGUuX19jbGFzc19fLl9f bmFtZV9fLCB0cmFuc2l0aW9ucykpCi0rICAgICAgICAgICAgICAgICAgJSAoc3RhdGUuX19jbGFz c19fLl9fbmFtZV9fLCB0cmFuc2l0aW9ucykpLCBmaWxlPXNlbGYuX3N0ZGVycikKLSAgICAgICAg IGZvciBuYW1lIGluIHRyYW5zaXRpb25zOgotICAgICAgICAgICAgIHBhdHRlcm4sIG1ldGhvZCwg bmV4dF9zdGF0ZSA9IHN0YXRlLnRyYW5zaXRpb25zW25hbWVdCi0gICAgICAgICAgICAgbWF0Y2gg PSBwYXR0ZXJuLm1hdGNoKHNlbGYubGluZSkKLSAgICAgICAgICAgICBpZiBtYXRjaDoKLSAgICAg ICAgICAgICAgICAgaWYgc2VsZi5kZWJ1ZzoKLS0gICAgICAgICAgICAgICAgICAgIHByaW50ID4+ c2VsZi5fc3RkZXJyLCAoCi0rICAgICAgICAgICAgICAgICAgICBwcmludCgoCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAnXG5TdGF0ZU1hY2hpbmUuY2hlY2tfbGluZTogTWF0Y2hlZCB0cmFu c2l0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICciJXMiIGluIHN0YXRlICIlcyIu JwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgJSAobmFtZSwgc3RhdGUuX19jbGFzc19fLl9f bmFtZV9fKSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUsIHN0YXRlLl9fY2xh c3NfXy5fX25hbWVfXykpLCBmaWxlPXNlbGYuX3N0ZGVycikKLSAgICAgICAgICAgICAgICAgcmV0 dXJuIG1ldGhvZChtYXRjaCwgY29udGV4dCwgbmV4dF9zdGF0ZSkKLSAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgaWYgc2VsZi5kZWJ1ZzoKLS0gICAgICAgICAgICAgICAgcHJpbnQgPj5zZWxm Ll9zdGRlcnIsICgKLSsgICAgICAgICAgICAgICAgcHJpbnQoKAotICAgICAgICAgICAgICAgICAg ICAgICAnXG5TdGF0ZU1hY2hpbmUuY2hlY2tfbGluZTogTm8gbWF0Y2ggaW4gc3RhdGUgIiVzIi4n Ci0tICAgICAgICAgICAgICAgICAgICAgICUgc3RhdGUuX19jbGFzc19fLl9fbmFtZV9fKQotKyAg ICAgICAgICAgICAgICAgICAgICAlIHN0YXRlLl9fY2xhc3NfXy5fX25hbWVfXyksIGZpbGU9c2Vs Zi5fc3RkZXJyKQotICAgICAgICAgICAgIHJldHVybiBzdGF0ZS5ub19tYXRjaChjb250ZXh0LCB0 cmFuc2l0aW9ucykKLSAKLSAgICAgZGVmIGFkZF9zdGF0ZShzZWxmLCBzdGF0ZV9jbGFzcyk6Ci1A QCAtNDk0LDEwICs0OTEsMTAgQEAgY2xhc3MgU3RhdGVNYWNoaW5lKG9iamVjdCk6Ci0gICAgIGRl ZiBlcnJvcihzZWxmKToKLSAgICAgICAgICIiIlJlcG9ydCBlcnJvciBkZXRhaWxzLiIiIgotICAg ICAgICAgdHlwZSwgdmFsdWUsIG1vZHVsZSwgbGluZSwgZnVuY3Rpb24gPSBfZXhjZXB0aW9uX2Rh dGEoKQotLSAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsIHUnJXM6ICVzJyAlICh0eXBlLCB2 YWx1ZSkKLS0gICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAnaW5wdXQgbGluZSAlcycgJSAo c2VsZi5hYnNfbGluZV9udW1iZXIoKSkKLS0gICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAo dSdtb2R1bGUgJXMsIGxpbmUgJXMsIGZ1bmN0aW9uICVzJyAlCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtb2R1bGUsIGxpbmUsIGZ1bmN0aW9uKSkKLSsgICAgICAgIHByaW50KHUn JXM6ICVzJyAlICh0eXBlLCB2YWx1ZSksIGZpbGU9c2VsZi5fc3RkZXJyKQotKyAgICAgICAgcHJp bnQoJ2lucHV0IGxpbmUgJXMnICUgKHNlbGYuYWJzX2xpbmVfbnVtYmVyKCkpLCBmaWxlPXNlbGYu X3N0ZGVycikKLSsgICAgICAgIHByaW50KCh1J21vZHVsZSAlcywgbGluZSAlcywgZnVuY3Rpb24g JXMnICUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZHVsZSwgbGluZSwgZnVu Y3Rpb24pKSwgZmlsZT1zZWxmLl9zdGRlcnIpCi0gCi0gICAgIGRlZiBhdHRhY2hfb2JzZXJ2ZXIo c2VsZiwgb2JzZXJ2ZXIpOgotICAgICAgICAgIiIiCi1AQCAtMTMyOSw3ICsxMzI2LDcgQEAgY2xh c3MgVmlld0xpc3Qob2JqZWN0KToKLSAgICAgZGVmIHBwcmludChzZWxmKToKLSAgICAgICAgICIi IlByaW50IHRoZSBsaXN0IGluIGBncmVwYCBmb3JtYXQgKGBzb3VyY2U6b2Zmc2V0OnZhbHVlYCBs aW5lcykiIiIKLSAgICAgICAgIGZvciBsaW5lIGluIHNlbGYueGl0ZW1zKCk6Ci0tICAgICAgICAg ICAgcHJpbnQgIiVzOiVkOiVzIiAlIGxpbmUKLSsgICAgICAgICAgICBwcmludCgiJXM6JWQ6JXMi ICUgbGluZSkKLSAKLSAKLSBjbGFzcyBTdHJpbmdMaXN0KFZpZXdMaXN0KToKLWRpZmYgLS1naXQg YS9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5weSBiL2RvY3V0aWxzL3RyYW5zZm9ybXMv dW5pdmVyc2FsLnB5Ci1pbmRleCAzZjhkZGJjLi40N2UxMjc2IDEwMDY0NAotLS0tIGEvZG9jdXRp bHMvdHJhbnNmb3Jtcy91bml2ZXJzYWwucHkKLSsrKyBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5p dmVyc2FsLnB5Ci1AQCAtMTcsMTIgKzE3LDEyIEBAIFRyYW5zZm9ybXMgbmVlZGVkIGJ5IG1vc3Qg b3IgYWxsIGRvY3VtZW50czoKLSBfX2RvY2Zvcm1hdF9fID0gJ3JlU3RydWN0dXJlZFRleHQnCi0g Ci0gaW1wb3J0IHJlCi0taW1wb3J0IHN5cwotIGltcG9ydCB0aW1lCi0gZnJvbSBkb2N1dGlscyBp bXBvcnQgbm9kZXMsIHV0aWxzCi0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCBUcmFu c2Zvcm1FcnJvciwgVHJhbnNmb3JtCi0gZnJvbSBkb2N1dGlscy51dGlscyBpbXBvcnQgc21hcnRx dW90ZXMKLSAKLSsKLSBjbGFzcyBEZWNvcmF0aW9ucyhUcmFuc2Zvcm0pOgotIAotICAgICAiIiIK LUBAIC0yNTcsNyArMjU3LDYgQEAgY2xhc3MgU21hcnRRdW90ZXMoVHJhbnNmb3JtKToKLSAgICAg ICAgICAgICBhbHRlcm5hdGl2ZSA9IHNtYXJ0X3F1b3Rlcy5zdGFydHN3aXRoKCdhbHQnKQotICAg ICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgIGFsdGVybmF0aXZlID0g RmFsc2UKLS0gICAgICAgICMgcHJpbnQgcmVwcihhbHRlcm5hdGl2ZSkKLSAKLSAgICAgICAgIGRv Y3VtZW50X2xhbmd1YWdlID0gc2VsZi5kb2N1bWVudC5zZXR0aW5ncy5sYW5ndWFnZV9jb2RlCi0g ICAgICAgICBsY19zbWFydHF1b3RlcyA9IHNlbGYuZG9jdW1lbnQuc2V0dGluZ3Muc21hcnRxdW90 ZXNfbG9jYWxlcwotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5IGIvZG9j dXRpbHMvdXRpbHMvX19pbml0X18ucHkKLWluZGV4IDc3NjBmMzguLjY5MjMzNWEgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvX19p bml0X18ucHkKLUBAIC0xNzMsNyArMTczLDYgQEAgY2xhc3MgUmVwb3J0ZXIob2JqZWN0KToKLSAg ICAgICAgIGlmIG5vdCAnc291cmNlJyBpbiBhdHRyaWJ1dGVzOiAjICdsaW5lJyBpcyBhYnNvbHV0 ZSBsaW5lIG51bWJlcgotICAgICAgICAgICAgIHRyeTogIyBsb29rIHVwIChzb3VyY2UsIGxpbmUt aW4tc291cmNlKQotICAgICAgICAgICAgICAgICBzb3VyY2UsIGxpbmUgPSBzZWxmLmdldF9zb3Vy Y2VfYW5kX2xpbmUoYXR0cmlidXRlcy5nZXQoJ2xpbmUnKSkKLS0gICAgICAgICAgICAgICAgIyBw cmludCAibG9jYXRvciBsb29rdXAiLCBrd2FyZ3MuZ2V0KCdsaW5lJyksICItPiIsIHNvdXJjZSwg bGluZQotICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgICAg ICAgc291cmNlLCBsaW5lID0gTm9uZSwgTm9uZQotICAgICAgICAgICAgIGlmIHNvdXJjZSBpcyBu b3QgTm9uZToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5w eSBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5Ci1pbmRleCAxYTAxYmM4Li4y NTVlOTZmIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwucHkK LSsrKyBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5Ci1AQCAtMzg0LDcgKzM4 NCw2IEBAIGRlZiBwYXJzZV9sYXRleF9tYXRoKHN0cmluZywgaW5saW5lPVRydWUpOgotICAgICAg ICAgICAgIGMyID0gc3RyaW5nWzFdCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIGMyID0g JycKLS0jIyAgICAgICAgcHJpbnQgbiwgc3RyaW5nLCBjLCBjMiwgbm9kZS5fX2NsYXNzX18uX19u YW1lX18KLSAgICAgICAgIGlmIGMgPT0gJyAnOgotICAgICAgICAgICAgIHBhc3MKLSAgICAgICAg IGVsaWYgYyA9PSAnXFwnOgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL21hdGgvdGV4Mm1h dGhtbF9leHRlcm4ucHkgYi9kb2N1dGlscy91dGlscy9tYXRoL3RleDJtYXRobWxfZXh0ZXJuLnB5 Ci1pbmRleCBlNDYxODM2Li4zZTdmMTU4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvbWF0 aC90ZXgybWF0aG1sX2V4dGVybi5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvbWF0aC90ZXgybWF0 aG1sX2V4dGVybi5weQotQEAgLTE1LDYgKzE1LDcgQEAKLSAjIFdyYXBwZXJzIGZvciBUZVgtPk1h dGhNTCBjb252ZXJzaW9uIGJ5IGV4dGVybmFsIHRvb2xzCi0gIyA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIAotK2Zyb20gX19mdXR1cmVfXyBp bXBvcnQgcHJpbnRfZnVuY3Rpb24KLSBpbXBvcnQgc3VicHJvY2VzcwotIAotIGRvY3VtZW50X3Rl bXBsYXRlID0gciIiIlxkb2N1bWVudGNsYXNze2FydGljbGV9Ci1AQCAtMTQxLDYgKzE0Miw2IEBA IGRlZiBibGFodGV4bWwobWF0aF9jb2RlLCBpbmxpbmU9VHJ1ZSwgcmVwb3J0ZXI9Tm9uZSk6Ci0g Ci0gaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAgZXhhbXBsZSA9IHVyJ1xmcmFje1xw YXJ0aWFsIFxzaW5eMihcYWxwaGEpfXtccGFydGlhbCBcdmVjIHJ9IFx2YXJwaSBcLCBcdGV4dHtH csO8w59lfScKLS0gICAgIyBwcmludCBsYXRleG1sKGV4YW1wbGUpLmVuY29kZSgndXRmOCcpCi0t ICAgICMgcHJpbnQgdHRtKGV4YW1wbGUpIy5lbmNvZGUoJ3V0ZjgnKQotLSAgICBwcmludCBibGFo dGV4bWwoZXhhbXBsZSkuZW5jb2RlKCd1dGY4JykKLSsgICAgIyBwcmludChsYXRleG1sKGV4YW1w bGUpLmVuY29kZSgndXRmOCcpKQotKyAgICAjIHByaW50KHR0bShleGFtcGxlKSkKLSsgICAgcHJp bnQoYmxhaHRleG1sKGV4YW1wbGUpLmVuY29kZSgndXRmOCcpKQotZGlmZiAtLWdpdCBhL2RvY3V0 aWxzL3V0aWxzL3NtYXJ0cXVvdGVzLnB5IGIvZG9jdXRpbHMvdXRpbHMvc21hcnRxdW90ZXMucHkK LWluZGV4IGViZjAyNDAuLjE0OGE0YzkgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9zbWFy dHF1b3Rlcy5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvc21hcnRxdW90ZXMucHkKLUBAIC0zMTUs NiArMzE1LDcgQEAgVmVyc2lvbiBIaXN0b3J5Ci0gMS41XzEuMDogVHVlLCAwOSBNYXIgMjAwNCAw ODowODozNSAtMDUwMAotICAgICAgICAgLSBJbml0aWFsIHJlbGVhc2UKLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gCi0gb3B0aW9ucyA9IHIiIiIKLSBPcHRp b25zCi1AQCAtOTY0LDE2ICs5NjUsMTYgQEAgaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAg ICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLSAKLSAgICAgaWYgYXJncy5kb2M6Ci0tICAg ICAgICBwcmludCAoX19kb2NfXykKLSsgICAgICAgIHByaW50KF9fZG9jX18pCi0gICAgIGVsaWYg YXJncy5hY3Rpb25oZWxwOgotLSAgICAgICAgcHJpbnQgb3B0aW9ucwotKyAgICAgICAgcHJpbnQo b3B0aW9ucykKLSAgICAgZWxpZiBhcmdzLnN0eWxlaGVscDoKLS0gICAgICAgIHByaW50Ci0tICAg ICAgICBwcmludCAiQXZhaWxhYmxlIHN0eWxlcyAocHJpbWFyeSBvcGVuL2Nsb3NlLCBzZWNvbmRh cnkgb3Blbi9jbG9zZSkiCi0tICAgICAgICBwcmludCAibGFuZ3VhZ2UgdGFnICAgcXVvdGVzIgot LSAgICAgICAgcHJpbnQgIj09PT09PT09PT09PSAgID09PT09PSIKLSsgICAgICAgIHByaW50KCkK LSsgICAgICAgIHByaW50KCJBdmFpbGFibGUgc3R5bGVzIChwcmltYXJ5IG9wZW4vY2xvc2UsIHNl Y29uZGFyeSBvcGVuL2Nsb3NlKSIpCi0rICAgICAgICBwcmludCgibGFuZ3VhZ2UgdGFnICAgcXVv dGVzIikKLSsgICAgICAgIHByaW50KCI9PT09PT09PT09PT0gICA9PT09PT0iKQotICAgICAgICAg Zm9yIGtleSBpbiBzb3J0ZWQoc21hcnRjaGFycy5xdW90ZXMua2V5cygpKToKLS0gICAgICAgICAg ICBwcmludCAiJS0xNHMgJXMiICUgKGtleSwgc21hcnRjaGFycy5xdW90ZXNba2V5XSkKLSsgICAg ICAgICAgICBwcmludCgiJS0xNHMgJXMiICUgKGtleSwgc21hcnRjaGFycy5xdW90ZXNba2V5XSkp Ci0gICAgIGVsaWYgYXJncy50ZXN0OgotICAgICAgICAgIyBVbml0IHRlc3Qgb3V0cHV0IGdvZXMg dG8gc3RkZXJyLgotICAgICAgICAgaW1wb3J0IHVuaXR0ZXN0Ci1AQCAtMTAwNiw1ICsxMDA3LDUg QEAgaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAgICAgICAgICBlbHNlOgotICAgICAg ICAgICAgICAgICBhcmdzLmxhbmd1YWdlICs9ICcteC1hbHRxdW90JwotICAgICAgICAgdGV4dCA9 IHN5cy5zdGRpbi5yZWFkKCkuZGVjb2RlKGFyZ3MuZW5jb2RpbmcpCi0tICAgICAgICBwcmludCBz bWFydHlQYW50cyh0ZXh0LCBhdHRyPWFyZ3MuYWN0aW9uLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgbGFuZ3VhZ2U9YXJncy5sYW5ndWFnZSkuZW5jb2RlKGFyZ3MuZW5jb2RpbmcpCi0rICAg ICAgICBwcmludChzbWFydHlQYW50cyh0ZXh0LCBhdHRyPWFyZ3MuYWN0aW9uLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2U9YXJncy5sYW5ndWFnZSkuZW5jb2RlKGFyZ3MuZW5j b2RpbmcpKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weSBiL2Rv Y3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotaW5kZXggYjM1NzEyMC4uZmEyNzkxMSAxMDA2 NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotKysrIGIvZG9jdXRpbHMv d3JpdGVycy9faHRtbF9iYXNlLnB5Ci1AQCAtNDk0LDcgKzQ5NCw2IEBAIGNsYXNzIEhUTUxUcmFu c2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgIyB0aGUgZW5kIG9mIHRoaXMgZmlsZSku Ci0gCi0gICAgIGRlZiBpc19jb21wYWN0YWJsZShzZWxmLCBub2RlKToKLS0gICAgICAgICMgcHJp bnQgImlzX2NvbXBhY3RhYmxlICVzID8iICUgbm9kZS5fX2NsYXNzX18sCi0gICAgICAgICAjIGV4 cGxpY2l0ZSBjbGFzcyBhcmd1bWVudHMgaGF2ZSBwcmVjZWRlbmNlCi0gICAgICAgICBpZiAnY29t cGFjdCcgaW4gbm9kZVsnY2xhc3NlcyddOgotICAgICAgICAgICAgIHJldHVybiBUcnVlCi1AQCAt NTAzLDExICs1MDIsOSBAQCBjbGFzcyBIVE1MVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6 Ci0gICAgICAgICAjIGNoZWNrIGNvbmZpZyBzZXR0aW5nOgotICAgICAgICAgaWYgKGlzaW5zdGFu Y2Uobm9kZSwgKG5vZGVzLmZpZWxkX2xpc3QsIG5vZGVzLmRlZmluaXRpb25fbGlzdCkpCi0gICAg ICAgICAgICAgYW5kIG5vdCBzZWxmLnNldHRpbmdzLmNvbXBhY3RfZmllbGRfbGlzdHMpOgotLSAg ICAgICAgICAgICMgcHJpbnQgImBjb21wYWN0LWZpZWxkLWxpc3RzYCBpcyBGYWxzZSIKLSAgICAg ICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgIGlmIChpc2luc3RhbmNlKG5vZGUsIChub2Rl cy5lbnVtZXJhdGVkX2xpc3QsIG5vZGVzLmJ1bGxldF9saXN0KSkKLSAgICAgICAgICAgICBhbmQg bm90IHNlbGYuc2V0dGluZ3MuY29tcGFjdF9saXN0cyk6Ci0tICAgICAgICAgICAgIyBwcmludCAi YGNvbXBhY3QtbGlzdHNgIGlzIEZhbHNlIgotICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAg ICAgICAgIyBtb3JlIHNwZWNpYWwgY2FzZXM6Ci0gICAgICAgICBpZiAoc2VsZi50b3BpY19jbGFz c2VzID09IFsnY29udGVudHMnXSk6ICMgVE9ETzogc2VsZi5pbl9jb250ZW50cwotQEAgLTg4Miw3 ICs4NzksNiBAQCBjbGFzcyBIVE1MVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6Ci0gICAg ICAgICBpZiAnc2VjdG51bScgaW4gbm9kZVsnY2xhc3NlcyddOgotICAgICAgICAgICAgICMgZ2V0 IHNlY3Rpb24gbnVtYmVyIChzdHJpcCB0cmFpbGluZyBuby1icmVhay1zcGFjZXMpCi0gICAgICAg ICAgICAgc2VjdG51bSA9IG5vZGUuYXN0ZXh0KCkucnN0cmlwKHUnwqAnKQotLSAgICAgICAgICAg ICMgcHJpbnQgc2VjdG51bS5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgICAgICBzZWxmLmJvZHku YXBwZW5kKCc8c3BhbiBjbGFzcz0ic2VjdG51bSI+JXM8L3NwYW4+ICcKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAlIHNlbGYuZW5jb2RlKHNlY3RudW0pKQotICAgICAgICAg ICAgICMgQ29udGVudCBhbHJlYWR5IHByb2Nlc3NlZDoKLUBAIC0xMTk0LDcgKzExOTAsNiBAQCBj bGFzcyBIVE1MVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6Ci0gICAgICAgICBwYXNzICMg bmV2ZXIgcmVhY2hlZAotIAotICAgICBkZWYgdmlzaXRfbWF0aF9ibG9jayhzZWxmLCBub2RlKToK LS0gICAgICAgICMgcHJpbnQgbm9kZS5hc3RleHQoKS5lbmNvZGUoJ3V0ZjgnKQotICAgICAgICAg bWF0aF9lbnYgPSBwaWNrX21hdGhfZW52aXJvbm1lbnQobm9kZS5hc3RleHQoKSkKLSAgICAgICAg IHNlbGYudmlzaXRfbWF0aChub2RlLCBtYXRoX2Vudj1tYXRoX2VudikKLSAKLUBAIC0xNjExLDIw ICsxNjA2LDE2IEBAIGNsYXNzIFNpbXBsZUxpc3RDaGVja2VyKG5vZGVzLkdlbmVyaWNOb2RlVmlz aXRvcik6Ci0gICAgICAgICByYWlzZSBub2Rlcy5Ob2RlRm91bmQKLSAKLSAgICAgZGVmIHZpc2l0 X2xpc3RfaXRlbShzZWxmLCBub2RlKToKLS0gICAgICAgICMgcHJpbnQgInZpc2l0aW5nIGxpc3Qg aXRlbSIsIG5vZGUuX19jbGFzc19fCi0gICAgICAgICBjaGlsZHJlbiA9IFtjaGlsZCBmb3IgY2hp bGQgaW4gbm9kZS5jaGlsZHJlbgotICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFu Y2UoY2hpbGQsIG5vZGVzLkludmlzaWJsZSldCi0tICAgICAgICAjIHByaW50ICJoYXMgJXMgdmlz aWJsZSBjaGlsZHJlbiIgJSBsZW4oY2hpbGRyZW4pCi0gICAgICAgICBpZiAoY2hpbGRyZW4gYW5k IGlzaW5zdGFuY2UoY2hpbGRyZW5bMF0sIG5vZGVzLnBhcmFncmFwaCkKLSAgICAgICAgICAgICBh bmQgKGlzaW5zdGFuY2UoY2hpbGRyZW5bLTFdLCBub2Rlcy5idWxsZXRfbGlzdCkgb3IKLSAgICAg ICAgICAgICAgICAgIGlzaW5zdGFuY2UoY2hpbGRyZW5bLTFdLCBub2Rlcy5lbnVtZXJhdGVkX2xp c3QpIG9yCi0gICAgICAgICAgICAgICAgICBpc2luc3RhbmNlKGNoaWxkcmVuWy0xXSwgbm9kZXMu ZmllbGRfbGlzdCkpKToKLSAgICAgICAgICAgICBjaGlsZHJlbi5wb3AoKQotLSAgICAgICAgIyBw cmludCAiJXMgY2hpbGRyZW4gcmVtYWluIiAlIGxlbihjaGlsZHJlbikKLSAgICAgICAgIGlmIGxl bihjaGlsZHJlbikgPD0gMToKLSAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIGVsc2U6Ci0t ICAgICAgICAgICAgIyBwcmludCAiZm91bmQiLCBjaGlsZC5fX2NsYXNzX18sICJpbiIsIG5vZGUu X19jbGFzc19fCi0gICAgICAgICAgICAgcmFpc2Ugbm9kZXMuTm9kZUZvdW5kCi0gCi0gICAgIGRl ZiBwYXNzX25vZGUoc2VsZiwgbm9kZSk6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9s YXRleDJlL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5 Ci1pbmRleCAyZWUxMjcwLi41YzMzZDBhIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9s YXRleDJlL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0 X18ucHkKLUBAIC0xNSw3ICsxNSw2IEBAIF9fZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4 dCcKLSAKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IG9zCi0taW1wb3J0IHRpbWUKLSBpbXBvcnQgcmUK LSBpbXBvcnQgc3RyaW5nCi0gaW1wb3J0IHVybGxpYgotQEAgLTI4LDYgKzI3LDcgQEAgZnJvbSBk b2N1dGlscy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IFNhZmVTdHJpbmcKLSBmcm9tIGRv Y3V0aWxzLnRyYW5zZm9ybXMgaW1wb3J0IHdyaXRlcl9hdXgKLSBmcm9tIGRvY3V0aWxzLnV0aWxz Lm1hdGggaW1wb3J0IHBpY2tfbWF0aF9lbnZpcm9ubWVudCwgdW5pY2hhcjJ0ZXgKLSAKLSsKLSBj bGFzcyBXcml0ZXIod3JpdGVycy5Xcml0ZXIpOgotIAotICAgICBzdXBwb3J0ZWQgPSAoJ2xhdGV4 JywnbGF0ZXgyZScpCi1AQCAtMjI4MywxNCArMjI4MywxNCBAQCBjbGFzcyBMYVRlWFRyYW5zbGF0 b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAgIGhyZWYgPSBzZWxmLmRvY3VtZW50 Lm5hbWVpZHNbbm9kZVsncmVmbmFtZSddXQotICAgICAgICAgIyBpZiBub3Qgc2VsZi5kb2N1dGls c19mb290bm90ZXM6Ci0gICAgICAgICAgICAgIyBUT0RPOiBpbnNlcnQgZm9vdG5vdGUgY29udGVu dCBhdCAob3IgbmVhcikgdGhpcyBwbGFjZQotLSAgICAgICAgICAgICMgcHJpbnQgImZvb3Rub3Rl LXJlZiB0byIsIG5vZGVbJ3JlZmlkJ10KLSsgICAgICAgICAgICAjIHByaW50KCJmb290bm90ZS1y ZWYgdG8iLCBub2RlWydyZWZpZCddKQotICAgICAgICAgICAgICMgZm9vdG5vdGVzID0gKHNlbGYu ZG9jdW1lbnQuZm9vdG5vdGVzICsKLSAgICAgICAgICAgICAjICAgICAgICAgICAgICBzZWxmLmRv Y3VtZW50LmF1dG9mb290bm90ZXMgKwotICAgICAgICAgICAgICMgICAgICAgICAgICAgIHNlbGYu ZG9jdW1lbnQuc3ltYm9sX2Zvb3Rub3RlcykKLSAgICAgICAgICAgICAjIGZvciBmb290bm90ZSBp biBmb290bm90ZXM6Ci0tICAgICAgICAgICAgIyAgICAgIyBwcmludCBmb290bm90ZVsnaWRzJ10K LSsgICAgICAgICAgICAjICAgICAjIHByaW50KGZvb3Rub3RlWydpZHMnXSkKLSAgICAgICAgICAg ICAjICAgICBpZiBub2RlLmdldCgncmVmaWQnLCAnJykgaW4gZm9vdG5vdGVbJ2lkcyddOgotLSAg ICAgICAgICAgICMgICAgICAgICBwcmludCAnbWF0Y2hlcycsIGZvb3Rub3RlWydpZHMnXQotKyAg ICAgICAgICAgICMgICAgICAgICBwcmludCgnbWF0Y2hlcycsIGZvb3Rub3RlWydpZHMnXSkKLSAg ICAgICAgIGZvcm1hdCA9IHNlbGYuc2V0dGluZ3MuZm9vdG5vdGVfcmVmZXJlbmNlcwotICAgICAg ICAgaWYgZm9ybWF0ID09ICdicmFja2V0cyc6Ci0gICAgICAgICAgICAgc2VsZi5hcHBlbmRfaHlw ZXJ0YXJnZXRzKG5vZGUpCi1AQCAtMjYyMyw3ICsyNjIzLDYgQEAgY2xhc3MgTGFUZVhUcmFuc2xh dG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByJ1xiZWdpbnslc30nICUgbWF0aF9lbnYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJyVzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByJ1xlbmR7JXN9 JyAlIG1hdGhfZW52XSkKLS0gICAgICAgICMgcHJpbnQgcmVwcih3cmFwcGVyKSwgcmVwcihtYXRo X2NvZGUpCi0gICAgICAgICBzZWxmLm91dC5hcHBlbmQod3JhcHBlciAlIG1hdGhfY29kZSkKLSAg ICAgICAgIGlmIG5vZGVbJ2NsYXNzZXMnXToKLSAgICAgICAgICAgICBzZWxmLmRlcGFydF9pbmxp bmUobm9kZSkKLWRpZmYgLS1naXQgYS9pbnN0YWxsLnB5IGIvaW5zdGFsbC5weQotaW5kZXggMjA4 NTYyNy4uYjdkZTI3OCAxMDA3NTUKLS0tLSBhL2luc3RhbGwucHkKLSsrKyBiL2luc3RhbGwucHkK LUBAIC0xNSwxMiArMTUsMTMgQEAgb25lIG9mOjoKLSAgICAgcHl0aG9uIHNldHVwLnB5IGluc3Rh bGwgLS1oZWxwCi0gICAgIHB5dGhvbiBzZXR1cC5weSAtLWhlbHAKLSAiIiIKLStmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gCi0gZnJvbSBkaXN0dXRpbHMgaW1wb3J0IGNv cmUKLSBmcm9tIHNldHVwIGltcG9ydCBkb19zZXR1cAotIAotLWlmIF9fbmFtZV9fID09ICdfX21h aW5fXycgOgotLSAgICBwcmludCBfX2RvY19fCi0raWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK LSsgICAgcHJpbnQoX19kb2NfXykKLSAgICAgY29yZS5fc2V0dXBfc3RvcF9hZnRlciA9ICdjb25m aWcnCi0gICAgIGRpc3QgPSBkb19zZXR1cCgpCi0gICAgIGRpc3QuY29tbWFuZHMgPSBbJ2luc3Rh bGwnXQotZGlmZiAtLWdpdCBhL3NldHVwLnB5IGIvc2V0dXAucHkKLWluZGV4IGY4MDFlYTIuLjQy ODBiOTggMTAwNzU1Ci0tLS0gYS9zZXR1cC5weQotKysrIGIvc2V0dXAucHkKLUBAIC0yLDkgKzIs MTIgQEAKLSAjICRJZDogc2V0dXAucHkgODMwNCAyMDE5LTA3LTMwIDA5OjUxOjA3WiBncnViZXJ0 ICQKLSAjIENvcHlyaWdodDogVGhpcyBmaWxlIGhhcyBiZWVuIHBsYWNlZCBpbiB0aGUgcHVibGlj IGRvbWFpbi4KLSAKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0rCi0g aW1wb3J0IHN5cwotIGltcG9ydCBvcwotIGltcG9ydCBnbG9iCi0rCi0gdHJ5OgotICAgICBpbXBv cnQgc2V0dXB0b29scwotICAgICBmcm9tIGRpc3R1dGlscy5jb3JlIGltcG9ydCBzZXR1cCwgQ29t bWFuZAotQEAgLTE3LDEwICsyMCwxMCBAQCB0cnk6Ci0gICAgIGZyb20gZGlzdHV0aWxzLnV0aWwg aW1wb3J0IGNvbnZlcnRfcGF0aAotICAgICBmcm9tIGRpc3R1dGlscyBpbXBvcnQgbG9nCi0gZXhj ZXB0IEltcG9ydEVycm9yOgotLSAgICBwcmludCAoJ0Vycm9yOiBUaGUgImRpc3R1dGlscyIgc3Rh bmRhcmQgbW9kdWxlLCB3aGljaCBpcyByZXF1aXJlZCBmb3IgdGhlICcpCi0tICAgIHByaW50ICgn aW5zdGFsbGF0aW9uIG9mIERvY3V0aWxzLCBjb3VsZCBub3QgYmUgZm91bmQuICBZb3UgbWF5IG5l ZWQgdG8gJykKLS0gICAgcHJpbnQgKCdpbnN0YWxsIGEgcGFja2FnZSBjYWxsZWQgInB5dGhvbi1k ZXZlbCIgKG9yIHNpbWlsYXIpIG9uIHlvdXIgJykKLS0gICAgcHJpbnQgKCdzeXN0ZW0gdXNpbmcg eW91ciBwYWNrYWdlIG1hbmFnZXIuJykKLSsgICAgcHJpbnQoJ0Vycm9yOiBUaGUgImRpc3R1dGls cyIgc3RhbmRhcmQgbW9kdWxlLCB3aGljaCBpcyByZXF1aXJlZCBmb3IgdGhlICcpCi0rICAgIHBy aW50KCdpbnN0YWxsYXRpb24gb2YgRG9jdXRpbHMsIGNvdWxkIG5vdCBiZSBmb3VuZC4gIFlvdSBt YXkgbmVlZCB0byAnKQotKyAgICBwcmludCgnaW5zdGFsbCBhIHBhY2thZ2UgY2FsbGVkICJweXRo b24tZGV2ZWwiIChvciBzaW1pbGFyKSBvbiB5b3VyICcpCi0rICAgIHByaW50KCdzeXN0ZW0gdXNp bmcgeW91ciBwYWNrYWdlIG1hbmFnZXIuJykKLSAgICAgc3lzLmV4aXQoMSkKLSAKLSAKLWRpZmYg LS1naXQgYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgYi90ZXN0L0RvY3V0aWxzVGVzdFN1 cHBvcnQucHkKLWluZGV4IGY3OTg2ZjUuLjI1MTk2ZWMgMTAwNjQ0Ci0tLS0gYS90ZXN0L0RvY3V0 aWxzVGVzdFN1cHBvcnQucHkKLSsrKyBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotQEAg LTM4LDYgKzM4LDcgQEAgRXhwb3J0cyB0aGUgZm9sbG93aW5nOgotICAgICAtIGBIdG1sRnJhZ21l bnRUZXN0U3VpdGVgCi0gICAgIC0gYERldk51bGxgIChvdXRwdXQgc2luaykKLSAiIiIKLStmcm9t IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gX19kb2Nmb3JtYXRfXyA9ICdyZVN0 cnVjdHVyZWRUZXh0JwotIAotIGltcG9ydCBzeXMKLUBAIC0yMzAsMTcgKzIzMSwxNyBAQCBjbGFz cyBDdXN0b21UZXN0Q2FzZShTdGFuZGFyZFRlc3RDYXNlKToKLSAgICAgICAgIHRyeToKLSAgICAg ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dHB1dCwgZXhwZWN0ZWQpCi0gICAgICAgICBleGNl cHQgQXNzZXJ0aW9uRXJyb3IsIGVycm9yOgotLSAgICAgICAgICAgIHByaW50ID4+c3lzLnN0ZGVy ciwgJ1xuJXNcbmlucHV0OicgJSAoc2VsZiwpCi0tICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3Rk ZXJyLCBpbnB1dAotKyAgICAgICAgICAgIHByaW50KCdcbiVzXG5pbnB1dDonICUgKHNlbGYsKSwg ZmlsZT1zeXMuc3RkZXJyKQotKyAgICAgICAgICAgIHByaW50KGlucHV0LCBmaWxlPXN5cy5zdGRl cnIpCi0gICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICBjb21wYXJpc29uID0gJycu am9pbihzZWxmLmNvbXBhcmUoZXhwZWN0ZWQuc3BsaXRsaW5lcygxKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC5zcGxpdGxpbmVzKDEp KSkKLS0gICAgICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAnLTogZXhwZWN0ZWRcbis6 IG91dHB1dCcKLS0gICAgICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCBjb21wYXJpc29u Ci0rICAgICAgICAgICAgICAgIHByaW50KCctOiBleHBlY3RlZFxuKzogb3V0cHV0JywgZmlsZT1z eXMuc3RkZXJyKQotKyAgICAgICAgICAgICAgICBwcmludChjb21wYXJpc29uLCBmaWxlPXN5cy5z dGRlcnIpCi0gICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOiAgICAgICMgZXhwZWN0 ZWQgb3Igb3V0cHV0IG5vdCBhIHN0cmluZwotICAgICAgICAgICAgICAgICAjIGFsdGVybmF0aXZl IG91dHB1dCBmb3Igbm9uLXN0cmluZ3M6Ci0tICAgICAgICAgICAgICAgIHByaW50ID4+c3lzLnN0 ZGVyciwgJ2V4cGVjdGVkOiAlcicgJSBleHBlY3RlZAotLSAgICAgICAgICAgICAgICBwcmludCA+ PnN5cy5zdGRlcnIsICdvdXRwdXQ6ICAgJXInICUgb3V0cHV0Ci0rICAgICAgICAgICAgICAgIHBy aW50KCdleHBlY3RlZDogJXInICUgZXhwZWN0ZWQsIGZpbGU9c3lzLnN0ZGVycikKLSsgICAgICAg ICAgICAgICAgcHJpbnQoJ291dHB1dDogICAlcicgJSBvdXRwdXQsIGZpbGU9c3lzLnN0ZGVycikK LSAgICAgICAgICAgICByYWlzZSBlcnJvcgotIAotIAotQEAgLTM3NSwyMCArMzc2LDIwIEBAIGNs YXNzIFRyYW5zZm9ybVRlc3RDYXNlKEN1c3RvbVRlc3RDYXNlKToKLSAgICAgZGVmIHRlc3RfdHJh bnNmb3Jtc192ZXJib3NlbHkoc2VsZik6Ci0gICAgICAgICBpZiBzZWxmLnJ1bl9pbl9kZWJ1Z2dl cjoKLSAgICAgICAgICAgICBwZGIuc2V0X3RyYWNlKCkKLS0gICAgICAgIHByaW50ICdcbicsIHNl bGYuaWQKLS0gICAgICAgIHByaW50ICctJyAqIDcwCi0tICAgICAgICBwcmludCBzZWxmLmlucHV0 Ci0rICAgICAgICBwcmludCgnXG4nLCBzZWxmLmlkKQotKyAgICAgICAgcHJpbnQoJy0nICogNzAp Ci0rICAgICAgICBwcmludChzZWxmLmlucHV0KQotICAgICAgICAgc2V0dGluZ3MgPSBzZWxmLnNl dHRpbmdzLmNvcHkoKQotICAgICAgICAgc2V0dGluZ3MuX19kaWN0X18udXBkYXRlKHNlbGYuc3Vp dGVfc2V0dGluZ3MpCi0gICAgICAgICBkb2N1bWVudCA9IHV0aWxzLm5ld19kb2N1bWVudCgndGVz dCBkYXRhJywgc2V0dGluZ3MpCi0gICAgICAgICBzZWxmLnBhcnNlci5wYXJzZShzZWxmLmlucHV0 LCBkb2N1bWVudCkKLS0gICAgICAgIHByaW50ICctJyAqIDcwCi0tICAgICAgICBwcmludCBkb2N1 bWVudC5wZm9ybWF0KCkKLSsgICAgICAgIHByaW50KCctJyAqIDcwKQotKyAgICAgICAgcHJpbnQo ZG9jdW1lbnQucGZvcm1hdCgpKQotICAgICAgICAgZm9yIHRyYW5zZm9ybUNsYXNzIGluIHNlbGYu dHJhbnNmb3JtczoKLSAgICAgICAgICAgICB0cmFuc2Zvcm1DbGFzcyhkb2N1bWVudCkuYXBwbHko KQotICAgICAgICAgb3V0cHV0ID0gZG9jdW1lbnQucGZvcm1hdCgpCi0tICAgICAgICBwcmludCAn LScgKiA3MAotLSAgICAgICAgcHJpbnQgb3V0cHV0Ci0rICAgICAgICBwcmludCgnLScgKiA3MCkK LSsgICAgICAgIHByaW50KG91dHB1dCkKLSAgICAgICAgIHNlbGYuY29tcGFyZV9vdXRwdXQoc2Vs Zi5pbnB1dCwgb3V0cHV0LCBzZWxmLmV4cGVjdGVkKQotIAotIAotZGlmZiAtLWdpdCBhL3Rlc3Qv YWxsdGVzdHMucHkgYi90ZXN0L2FsbHRlc3RzLnB5Ci1pbmRleCA5MzczMTI0Li4zNjQ1OTNmIDEw MDc1NQotLS0tIGEvdGVzdC9hbGx0ZXN0cy5weQotKysrIGIvdGVzdC9hbGx0ZXN0cy5weQotQEAg LTEsMTIgKzEsMTIgQEAKLSAjIS9iaW4vc2gKLSAnJycnZXhlYyBweXRob24gLXUgIiQwIiAiJEAi ICMnJycKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gCi0gIyAkSWQ6 IGFsbHRlc3RzLnB5IDgxMjQgMjAxNy0wNi0yMyAwMjoyOToxNlogZ29vZGdlciAkCi0gIyBBdXRo b3I6IERhdmlkIEdvb2RnZXIgPGdvb2RnZXJAcHl0aG9uLm9yZz4KLSAjIENvcHlyaWdodDogVGhp cyBtb2R1bGUgaGFzIGJlZW4gcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluLgotIAotLV9fZG9j X18gPSBcCi0tIiIiCi0rX19kb2NfXyA9ICIiIlwKLSBBbGwgbW9kdWxlcyBuYW1lZCAndGVzdF8q LnB5JyBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnksIGFuZCByZWN1cnNpdmVseSBpbgotIHN1YmRp cmVjdG9yaWVzIChwYWNrYWdlcykgY2FsbGVkICd0ZXN0XyonLCBhcmUgbG9hZGVkIGFuZCB0ZXN0 IHN1aXRlcyB3aXRoaW4KLSBhcmUgcnVuLgotQEAgLTE1LDcgKzE1LDcgQEAgYXJlIHJ1bi4KLSBp bXBvcnQgdGltZQotICMgU3RhcnQgcG9pbnQgZm9yIGFjdHVhbCBlbGFwc2VkIHRpbWUsIGluY2x1 ZGluZyBpbXBvcnRzCi0gIyBhbmQgc2V0dXAgb3V0c2lkZSBvZiB1bml0dGVzdC4KLS1zdGFydCA9 IHRpbWUudGltZSgpCi0rc3RhcnQgPSB0aW1lLnRpbWUoKSAgIyBub3FhCi0gCi0gaW1wb3J0IHN5 cwotIGltcG9ydCBvcwotQEAgLTU3LDEyICs1NywxMyBAQCBkZWYgcGZvcm1hdChzdWl0ZSk6Ci0g ICAgICAgICBpZiBsaW5lWy0xOl0gPT0gJ1snOgotICAgICAgICAgICAgIGluZGVudCArPSBzdGVw Ci0gICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIGlmIGxpbmUgWy01Ol0gPT0gJ10+XT4sJzoK LSsgICAgICAgICAgICBpZiBsaW5lWy01Ol0gPT0gJ10+XT4sJzoKLSAgICAgICAgICAgICAgICAg aW5kZW50IC09IHN0ZXAgKiAyCi0gICAgICAgICAgICAgZWxpZiBsaW5lWy0zOl0gPT0gJ10+LCc6 Ci0gICAgICAgICAgICAgICAgIGluZGVudCAtPSBzdGVwCi0gICAgIHJldHVybiAnXG4nLmpvaW4o b3V0cHV0KQotIAotKwotIGRlZiBzdWl0ZSgpOgotICAgICBwYXRoLCBzY3JpcHQgPSBvcy5wYXRo LnNwbGl0KHN5cy5hcmd2WzBdKQotICAgICBzdWl0ZSA9IHBhY2thZ2VfdW5pdHRlc3QubG9hZFRl c3RNb2R1bGVzKERvY3V0aWxzVGVzdFN1cHBvcnQudGVzdHJvb3QsCi1AQCAtNzAsMjYgKzcxLDI1 IEBAIGRlZiBzdWl0ZSgpOgotICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKLSAgICAgcmV0dXJuIHN1 aXRlCi0gCi0rCi0gIyBtdXN0IHJlZGlyZWN0IHN0ZGVyciAqYmVmb3JlKiBmaXJzdCBpbXBvcnQg b2YgdW5pdHRlc3QKLSBzeXMuc3Rkb3V0ID0gc3lzLnN0ZGVyciA9IFRlZSgnYWxsdGVzdHMub3V0 JykKLSAKLS1pbXBvcnQgcGFja2FnZV91bml0dGVzdAotK2ltcG9ydCBwYWNrYWdlX3VuaXR0ZXN0 ICAjIG5vcWEKLSAKLSAKLSBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICBzdWl0ZSA9 IHN1aXRlKCkKLS0gICAgcHJpbnQgKCdUZXN0aW5nIERvY3V0aWxzICVzIHdpdGggUHl0aG9uICVz IG9uICVzIGF0ICVzJwotLSAgICAgICAgICAgJSAoZG9jdXRpbHMuX192ZXJzaW9uX18sIHN5cy52 ZXJzaW9uLnNwbGl0KClbMF0sCi0tICAgICAgICAgICAgICB0aW1lLnN0cmZ0aW1lKCclWS0lbS0l ZCcpLCB0aW1lLnN0cmZ0aW1lKCclSDolTTolUycpKSkKLS0gICAgcHJpbnQgKCdPUzogJXMgJXMg JXMgKCVzLCAlcyknCi0tICAgICAgICAlIChwbGF0Zm9ybS5zeXN0ZW0oKSwgcGxhdGZvcm0ucmVs ZWFzZSgpLCBwbGF0Zm9ybS52ZXJzaW9uKCksCi0tICAgICAgICAgICBzeXMucGxhdGZvcm0sIHBs YXRmb3JtLnBsYXRmb3JtKCkpKQotLSAgICBwcmludCAnV29ya2luZyBkaXJlY3Rvcnk6ICVzJyAl IG9zLmdldGN3ZCgpCi0tICAgIHByaW50ICdEb2N1dGlscyBwYWNrYWdlOiAlcycgJSBvcy5wYXRo LmRpcm5hbWUoZG9jdXRpbHMuX19maWxlX18pCi0rICAgIHByaW50KCdUZXN0aW5nIERvY3V0aWxz ICVzIHdpdGggUHl0aG9uICVzIG9uICVzIGF0ICVzJyAlICgKLSsgICAgICAgIGRvY3V0aWxzLl9f dmVyc2lvbl9fLCBzeXMudmVyc2lvbi5zcGxpdCgpWzBdLAotKyAgICAgICAgdGltZS5zdHJmdGlt ZSgnJVktJW0tJWQnKSwgdGltZS5zdHJmdGltZSgnJUg6JU06JVMnKSkpCi0rICAgIHByaW50KCdP UzogJXMgJXMgJXMgKCVzLCAlcyknICUgKAotKyAgICAgICAgcGxhdGZvcm0uc3lzdGVtKCksIHBs YXRmb3JtLnJlbGVhc2UoKSwgcGxhdGZvcm0udmVyc2lvbigpLAotKyAgICAgICAgc3lzLnBsYXRm b3JtLCBwbGF0Zm9ybS5wbGF0Zm9ybSgpKSkKLSsgICAgcHJpbnQoJ1dvcmtpbmcgZGlyZWN0b3J5 OiAlcycgJSBvcy5nZXRjd2QoKSkKLSsgICAgcHJpbnQoJ0RvY3V0aWxzIHBhY2thZ2U6ICVzJyAl IG9zLnBhdGguZGlybmFtZShkb2N1dGlscy5fX2ZpbGVfXykpCi0gICAgIHN5cy5zdGRvdXQuZmx1 c2goKQotICAgICByZXN1bHQgPSBwYWNrYWdlX3VuaXR0ZXN0Lm1haW4oc3VpdGUpCi0tICAgICNp ZiBwYWNrYWdlX3VuaXR0ZXN0LnZlcmJvc2l0eSA+IDE6Ci0tICAgICMgICAgcHJpbnQgPj5zeXMu c3RkZXJyLCBwZm9ybWF0KHN1aXRlKSAjIGNoZWNrIHRoZSB0ZXN0IHN1aXRlCi0gICAgIGZpbmlz aCA9IHRpbWUudGltZSgpCi0tICAgIHByaW50ICdFbGFwc2VkIHRpbWU6ICUuM2Ygc2Vjb25kcycg JSAoZmluaXNoIC0gc3RhcnQpCi0rICAgIHByaW50KCdFbGFwc2VkIHRpbWU6ICUuM2Ygc2Vjb25k cycgJSAoZmluaXNoIC0gc3RhcnQpKQotICAgICBzeXMuZXhpdChub3QgcmVzdWx0Lndhc1N1Y2Nl c3NmdWwoKSkKLWRpZmYgLS1naXQgYS90ZXN0L3BhY2thZ2VfdW5pdHRlc3QucHkgYi90ZXN0L3Bh Y2thZ2VfdW5pdHRlc3QucHkKLWluZGV4IDBlZmFiMTIuLmRhZjExZjQgMTAwNjQ0Ci0tLS0gYS90 ZXN0L3BhY2thZ2VfdW5pdHRlc3QucHkKLSsrKyBiL3Rlc3QvcGFja2FnZV91bml0dGVzdC5weQot QEAgLTksNiArOSw3IEBAIFRoaXMgbW9kdWxlIGV4dGVuZHMgdW5pdHRlc3QucHkgd2l0aCBgbG9h ZFRlc3RNb2R1bGVzKClgLCBieSBsb2FkaW5nIG11bHRpcGxlCi0gdGVzdCBtb2R1bGVzIGZyb20g YSBkaXJlY3RvcnkuICBPcHRpb25hbGx5LCB0ZXN0IHBhY2thZ2VzIGFyZSBhbHNvIGxvYWRlZCwK LSByZWN1cnNpdmVseS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0 aW9uCi0gCi0gaW1wb3J0IHN5cwotIGltcG9ydCBvcwotQEAgLTM3LDggKzM4LDggQEAgT3B0aW9u czoKLSBkZWYgdXNhZ2VFeGl0KG1zZz1Ob25lKToKLSAgICAgIiIiUHJpbnQgdXNhZ2UgYW5kIGV4 aXQuIiIiCi0gICAgIGlmIG1zZzoKLS0gICAgICAgIHByaW50IG1zZwotLSAgICBwcmludCBVU0FH RQotKyAgICAgICAgcHJpbnQobXNnKQotKyAgICBwcmludChVU0FHRSkKLSAgICAgc3lzLmV4aXQo MikKLSAKLSBkZWYgcGFyc2VBcmdzKGFyZ3Y9c3lzLmFyZ3YpOgotQEAgLTk2LDExICs5NywxMSBA QCBkZWYgbG9hZFRlc3RNb2R1bGVzKHBhdGgsIG5hbWU9JycsIHBhY2thZ2VzPU5vbmUpOgotICAg ICBzeXMucGF0aC5pbnNlcnQoMCwgcGF0aCkKLSAgICAgZm9yIG1vZCBpbiB0ZXN0TW9kdWxlczoK LSAgICAgICAgIGlmIGRlYnVnOgotLSAgICAgICAgICAgIHByaW50ID4+c3lzLnN0ZGVyciwgImlt cG9ydGluZyAlcyIgJSBtb2QKLSsgICAgICAgICAgICBwcmludCgiaW1wb3J0aW5nICVzIiAlIG1v ZCwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIG1vZHVsZSA9 IGltcG9ydF9tb2R1bGUobW9kKQotICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotLSAgICAg ICAgICAgIHByaW50ID4+c3lzLnN0ZGVyciwgIkVSUk9SOiBDYW4ndCBpbXBvcnQgJXMsIHNraXBw aW5nIGl0cyB0ZXN0czoiICUgbW9kCi0rICAgICAgICAgICAgcHJpbnQoIkVSUk9SOiBDYW4ndCBp bXBvcnQgJXMsIHNraXBwaW5nIGl0cyB0ZXN0czoiICUgbW9kLCBmaWxlPXN5cy5zdGRlcnIpCi0g ICAgICAgICAgICAgc3lzLmV4Y2VwdGhvb2soKnN5cy5leGNfaW5mbygpKQotICAgICAgICAgZWxz ZToKLSAgICAgICAgICAgICAjIGlmIHRoZXJlJ3MgYSBzdWl0ZSBkZWZpbmVkLCBpbmNvcnBvcmF0 ZSBpdHMgY29udGVudHMKLUBAIC0xNDgsNyArMTQ5LDcgQEAgZGVmIG1haW4oc3VpdGU9Tm9uZSk6 Ci0gICAgICAgICBzdWl0ZSA9IHVuaXR0ZXN0LmRlZmF1bHRUZXN0TG9hZGVyLmxvYWRUZXN0c0Zy b21Nb2R1bGUoCi0gICAgICAgICAgICAgICBfX2ltcG9ydF9fKCdfX21haW5fXycpKQotICAgICBp ZiBkZWJ1ZzoKLS0gICAgICAgIHByaW50ID4+c3lzLnN0ZGVyciwgIkRlYnVnOiBTdWl0ZT0lcyIg JSBzdWl0ZQotKyAgICAgICAgcHJpbnQoIkRlYnVnOiBTdWl0ZT0lcyIgJSBzdWl0ZSwgZmlsZT1z eXMuc3RkZXJyKQotICAgICB0ZXN0UnVubmVyID0gdW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIodmVy Ym9zaXR5PXZlcmJvc2l0eSkKLSAgICAgIyBydW4gc3VpdGVzIChpZiB3ZSB3ZXJlIGNhbGxlZCBm cm9tIHRlc3RfYWxsKSBvciBzdWl0ZS4uLgotICAgICBpZiB0eXBlKHN1aXRlKSA9PSB0eXBlKFtd KToKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5IGIvdGVzdC90ZXN0 X2Vycm9yX3JlcG9ydGluZy5weQotaW5kZXggOTAyZTg3OC4uYzRlYWU0MCAxMDA2NDQKLS0tLSBh L3Rlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkKLSsrKyBiL3Rlc3QvdGVzdF9lcnJvcl9yZXBv cnRpbmcucHkKLUBAIC0yMCwxMyArMjAsMTQgQEAgaW5zdGFuY2VzIGxpa2UsIGUuZy4sIDo6Ci0g ICB0cnk6Ci0gICAgIHNvbWV0aGluZwotICAgZXhjZXB0IElPRXJyb3IsIGVycm9yOgotLSAgICBw cmludCAnRm91bmQgJXMnICUgZXJyb3IKLSsgICAgcHJpbnQoJ0ZvdW5kICVzJyAlIGVycm9yKQot IAotIHVubGVzcyB0aGUgbWluaW1hbCByZXF1aXJlZCBQeXRob24gdmVyc2lvbiBoYXMgdGhpcyBw cm9ibGVtIGZpeGVkLgotICIiIgotIAotIGltcG9ydCB1bml0dGVzdAotLWltcG9ydCBzeXMsIG9z Ci0raW1wb3J0IHN5cwotK2ltcG9ydCBvcwotIGltcG9ydCBjb2RlY3MKLSBmcm9tIGlvIGltcG9y dCBTdHJpbmdJTywgQnl0ZXNJTwotIAotQEAgLTQyLDcgKzQzLDcgQEAgaWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLDApOiAjIHByb2JsZW1zIHNvbHZlZCBpbiBweTNrCi0gICAgICAgICAjIFdoeSBk b2VzIGdldGxvY2FsZSByZXR1cm4gdGhlIGRlZmF1bHRsb2NhbGUgaW4gUHl0aG9uIDMuMiA/Pz8/ Ci0gICAgICAgICAjIG9sZGxvY2FsZSA9IChOb25lLCBOb25lKSAjIHRlc3Qgc3VpdGUgcnVucyB3 aXRob3V0IGxvY2FsZQotICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0tICAgICAgICBwcmludCAo J2Nhbm5vdCB0ZXN0IGVycm9yIHJlcG9ydGluZyB3aXRoIHByb2JsZW1hdGljIGxvY2FsZXMsXG4n Ci0rICAgICAgICBwcmludCgnY2Fubm90IHRlc3QgZXJyb3IgcmVwb3J0aW5nIHdpdGggcHJvYmxl bWF0aWMgbG9jYWxlcyxcbicKLSAgICAgICAgICAgICAnYGltcG9ydCBsb2NhbGVgIGZhaWxlZC4n KQotIAotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9mdW5jdGlvbmFsLnB5IGIvdGVzdC90ZXN0 X2Z1bmN0aW9uYWwucHkKLWluZGV4IDQzNzEwZGUuLjVkM2JlYjkgMTAwNzU1Ci0tLS0gYS90ZXN0 L3Rlc3RfZnVuY3Rpb25hbC5weQotKysrIGIvdGVzdC90ZXN0X2Z1bmN0aW9uYWwucHkKLUBAIC05 LDYgKzksNyBAQCBQZXJmb3JtIHRlc3RzIHdpdGggdGhlIGRhdGEgaW4gdGhlIGZ1bmN0aW9uYWwv IGRpcmVjdG9yeS4KLSAKLSBSZWFkIFJFQURNRS50eHQgZm9yIGRldGFpbHMgb24gaG93IHRoaXMg aXMgZG9uZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0g Ci0gaW1wb3J0IHN5cwotIGltcG9ydCBvcwotQEAgLTE5NCw4ICsxOTUsOCBAQCBleHBlY3RlZCBv dXRwdXQgYW5kIGNoZWNrIGl0IGluOgotICAgICAgICAgICAgICAgICBleHBlY3RlZF9wYXRoLCBw YXJhbXNbJ2Rlc3RpbmF0aW9uX3BhdGgnXSkpCi0gICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLDApOgotICAgICAgICAgICAgICAgICBkaWZmID0gZGlmZi5lbmNvZGUoc3lzLnN0 ZGVyci5lbmNvZGluZyBvciAnYXNjaWknLCAncmVwbGFjZScpCi0tICAgICAgICAgICAgcHJpbnQg Pj5zeXMuc3RkZXJyLCAnXG4lczonICUgKHNlbGYsKQotLSAgICAgICAgICAgIHByaW50ID4+c3lz LnN0ZGVyciwgZGlmZgotKyAgICAgICAgICAgIHByaW50KCdcbiVzOicgJSAoc2VsZiwpLCBmaWxl PXN5cy5zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQoZGlmZiwgZmlsZT1zeXMuc3RkZXJyKQot ICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAjIEV4ZWN1dGUgb3B0aW9uYWwgZnVuY3Rpb24g Y29udGFpbmluZyBleHRyYSB0ZXN0czoKLSAgICAgICAgIGlmICdfdGVzdF9tb3JlJyBpbiBuYW1l c3BhY2U6Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2lvLnB5IGIvdGVzdC90ZXN0X2lvLnB5Ci1p bmRleCA2ZWE0Nzg5Li43MzdhMTlkIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X2lvLnB5Ci0rKysg Yi90ZXN0L3Rlc3RfaW8ucHkKLUBAIC02OSw3ICs2OSw3IEBAIGJsYWgKLSAgICAgICAgIGlucHV0 ID0gaW8uU3RyaW5nSW5wdXQoc291cmNlPWIiIiJcCi0gIyEgcHl0aG9uCi0gIyAtKi0gY29kaW5n OiBhc2NpaSAtKi0KLS1wcmludCAiaGVsbG8gd29ybGQiCi0rcHJpbnQoImhlbGxvIHdvcmxkIikK LSAiIiIpCi0gICAgICAgICBkYXRhID0gaW5wdXQucmVhZCgpCi0gICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKGlucHV0LnN1Y2Nlc3NmdWxfZW5jb2RpbmcsICdhc2NpaScpCi1AQCAtNzcsNyArNzcs NyBAQCBwcmludCAiaGVsbG8gd29ybGQiCi0gIyEgcHl0aG9uCi0gIyBleHRyYW5lb3VzIGNvbW1l bnQ7IHByZXZlbnRzIGNvZGluZyBzbHVnIGZyb20gYmVpbmcgcmVhZAotICMgLSotIGNvZGluZzog YXNjaWkgLSotCi0tcHJpbnQgImhlbGxvIHdvcmxkIgotK3ByaW50KCJoZWxsbyB3b3JsZCIpCi0g IiIiKQotICAgICAgICAgZGF0YSA9IGlucHV0LnJlYWQoKQotICAgICAgICAgc2VsZi5hc3NlcnRO b3RFcXVhbChpbnB1dC5zdWNjZXNzZnVsX2VuY29kaW5nLCAnYXNjaWknKQotZGlmZiAtLWdpdCBh L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGUucHkg Yi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlLnB5 Ci1pbmRleCAzMGZlNzRmLi41MWMxNTU4IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZS5weQotKysrIGIvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZS5weQotQEAgLTk4LDcgKzk4 LDcgQEAgdG90ZXN0Wydjb2RlLXBhcnNpbmcnXSA9IFsKLSAuLiBjb2RlOjogcHl0aG9uCi0gICA6 Y2xhc3M6IHRlc3RjbGFzcwotIAotLSAgIHByaW50ICdoZWxsbyB3b3JsZCcgIyB0byBzdGRvdXQK LSsgICBwcmludCgnaGVsbG8gd29ybGQnKSAjIHRvIHN0ZG91dAotICIiIiwKLSAiIiJcCi0gPGRv Y3VtZW50IHNvdXJjZT0idGVzdCBkYXRhIj4KLUBAIC0xMDYsOSArMTA2LDEyIEBAIHRvdGVzdFsn Y29kZS1wYXJzaW5nJ10gPSBbCi0gICAgICAgICAgXG5cCi0gICAgICAgICA8aW5saW5lIGNsYXNz ZXM9ImtleXdvcmQiPgotICAgICAgICAgICAgIHByaW50Ci0tICAgICAgICAgXG5cCi0rICAgICAg ICA8aW5saW5lIGNsYXNzZXM9InB1bmN0dWF0aW9uIj4KLSsgICAgICAgICAgICAoCi0gICAgICAg ICA8aW5saW5lIGNsYXNzZXM9ImxpdGVyYWwgc3RyaW5nIHNpbmdsZSI+Ci0gICAgICAgICAgICAg J2hlbGxvIHdvcmxkJwotKyAgICAgICAgPGlubGluZSBjbGFzc2VzPSJwdW5jdHVhdGlvbiI+Ci0r ICAgICAgICAgICAgKQotICAgICAgICAgIFxuXAotICAgICAgICAgPGlubGluZSBjbGFzc2VzPSJj b21tZW50IHNpbmdsZSI+Ci0gICAgICAgICAgICAgIyB0byBzdGRvdXQKLUBAIC0xMjQsNyArMTI3 LDcgQEAgdG90ZXN0Wydjb2RlLXBhcnNpbmcnXSA9IFsKLSAgICAgICAnJycKLSAKLSAgICAgICAj IGFuZCBub3cgZm9yIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudAotLSAgICAgIHByaW50 IDgvMgotKyAgICAgIHByaW50KDgvMikKLSAiIiIsCi0gIiIiXAotIDxkb2N1bWVudCBzb3VyY2U9 InRlc3QgZGF0YSI+Ci1AQCAtMTYzLDEzICsxNjYsMTYgQEAgdG90ZXN0Wydjb2RlLXBhcnNpbmcn XSA9IFsKLSAgICAgICAgICAgICBcblwKLSAgICAgICAgIDxpbmxpbmUgY2xhc3Nlcz0ia2V5d29y ZCI+Ci0gICAgICAgICAgICAgcHJpbnQKLS0gICAgICAgICBcblwKLSsgICAgICAgIDxpbmxpbmUg Y2xhc3Nlcz0icHVuY3R1YXRpb24iPgotKyAgICAgICAgICAgICgKLSAgICAgICAgIDxpbmxpbmUg Y2xhc3Nlcz0ibGl0ZXJhbCBudW1iZXIgaW50ZWdlciI+Ci0gICAgICAgICAgICAgOAotICAgICAg ICAgPGlubGluZSBjbGFzc2VzPSJvcGVyYXRvciI+Ci0gICAgICAgICAgICAgLwotICAgICAgICAg PGlubGluZSBjbGFzc2VzPSJsaXRlcmFsIG51bWJlciBpbnRlZ2VyIj4KLSAgICAgICAgICAgICAy Ci0rICAgICAgICA8aW5saW5lIGNsYXNzZXM9InB1bmN0dWF0aW9uIj4KLSsgICAgICAgICAgICAp Ci0gIiIiXSwKLSBbIiIiXAotIC4uIGNvZGU6OiBsYXRleAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbG9uZy5weSBiL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbG9uZy5w eQotaW5kZXggNDNlYjg4Ni4uNzRmMTZkNSAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbG9uZy5weQotKysrIGIvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZV9sb25nLnB5Ci1A QCAtMjksNyArMjksNyBAQCB0b3Rlc3RbJ2NvZGUtcGFyc2luZy1sb25nJ10gPSBbCi0gICAgICAg JycnCi0gCi0gICAgICAgIyBhbmQgbm93IGZvciBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJl bnQKLS0gICAgICBwcmludCA4LzIKLSsgICAgICBwcmludCg4LzIpCi0gIiIiLAotICIiIlwKLSA8 ZG9jdW1lbnQgc291cmNlPSJ0ZXN0IGRhdGEiPgotQEAgLTY4LDEzICs2OCwxNiBAQCB0b3Rlc3Rb J2NvZGUtcGFyc2luZy1sb25nJ10gPSBbCi0gICAgICAgICAgICAgXG5cCi0gICAgICAgICA8aW5s aW5lIGNsYXNzZXM9ImtleXdvcmQiPgotICAgICAgICAgICAgIHByaW50Ci0tICAgICAgICAgXG5c Ci0rICAgICAgICA8aW5saW5lIGNsYXNzZXM9InB1bmN0dWF0aW9uIj4KLSsgICAgICAgICAgICAo Ci0gICAgICAgICA8aW5saW5lIGNsYXNzZXM9ImxpdGVyYWwgbnVtYmVyIGludGVnZXIiPgotICAg ICAgICAgICAgIDgKLSAgICAgICAgIDxpbmxpbmUgY2xhc3Nlcz0ib3BlcmF0b3IiPgotICAgICAg ICAgICAgIC8KLSAgICAgICAgIDxpbmxpbmUgY2xhc3Nlcz0ibGl0ZXJhbCBudW1iZXIgaW50ZWdl ciI+Ci0gICAgICAgICAgICAgMgotKyAgICAgICAgPGlubGluZSBjbGFzc2VzPSJwdW5jdHVhdGlv biI+Ci0rICAgICAgICAgICAgKQotICIiIl0sCi0gWyIiIlwKLSAuLiBjb2RlOjogbGF0ZXgKLWRp ZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVz dF9jb2RlX25vbmUucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2 ZXMvdGVzdF9jb2RlX25vbmUucHkKLWluZGV4IDg2NjUzZTYuLjUxNTc3MmMgMTAwNjQ0Ci0tLS0g YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlX25v bmUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90 ZXN0X2NvZGVfbm9uZS5weQotQEAgLTM3LDcgKzM3LDcgQEAgdG90ZXN0Wydjb2RlLXBhcnNpbmct bm9uZSddID0gWwotICAgICAgICcnJwotIAotICAgICAgICMgYW5kIG5vdyBmb3Igc29tZXRoaW5n IGNvbXBsZXRlbHkgZGlmZmVyZW50Ci0tICAgICAgcHJpbnQgOC8yCi0rICAgICAgcHJpbnQoOC8y KQotICIiIiwKLSAiIiJcCi0gPGRvY3VtZW50IHNvdXJjZT0idGVzdCBkYXRhIj4KLUBAIC01OSw3 ICs1OSw3IEBAIHRvdGVzdFsnY29kZS1wYXJzaW5nLW5vbmUnXSA9IFsKLSAgICAgICAgICAgICAj IGFuZCBub3cgZm9yIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudAotICAgICAgICAgPGlu bGluZSBjbGFzc2VzPSJsbiI+Ci0gICAgICAgICAgICAgMTIgXG5cCi0tICAgICAgICAgICAgcHJp bnQgOC8yCi0rICAgICAgICAgICAgcHJpbnQoOC8yKQotICIiIl0sCi0gWyIiIlwKLSAuLiBjb2Rl OjogbGF0ZXgKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rv Y3Rlc3RfYmxvY2tzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kb2N0ZXN0 X2Jsb2Nrcy5weQotaW5kZXggZGFiYzJlYy4uNGYzNjdkYiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZG9jdGVzdF9ibG9ja3MucHkKLSsrKyBiL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZG9jdGVzdF9ibG9ja3MucHkKLUBAIC0yMSw3ICsyMSw3 IEBAIHRvdGVzdFsnZG9jdGVzdF9ibG9ja3MnXSA9IFsKLSBbIiIiXAotIFBhcmFncmFwaC4KLSAK LS0+Pj4gcHJpbnQgIkRvY3Rlc3QgYmxvY2suIgotKz4+PiBwcmludCgiRG9jdGVzdCBibG9jay4i KQotIERvY3Rlc3QgYmxvY2suCi0gCi0gUGFyYWdyYXBoLgotQEAgLTMxLDcgKzMxLDcgQEAgUGFy YWdyYXBoLgotICAgICA8cGFyYWdyYXBoPgotICAgICAgICAgUGFyYWdyYXBoLgotICAgICA8ZG9j dGVzdF9ibG9jayB4bWw6c3BhY2U9InByZXNlcnZlIj4KLS0gICAgICAgID4+PiBwcmludCAiRG9j dGVzdCBibG9jay4iCi0rICAgICAgICA+Pj4gcHJpbnQoIkRvY3Rlc3QgYmxvY2suIikKLSAgICAg ICAgIERvY3Rlc3QgYmxvY2suCi0gICAgIDxwYXJhZ3JhcGg+Ci0gICAgICAgICBQYXJhZ3JhcGgu Ci1AQCAtMzksNyArMzksNyBAQCBQYXJhZ3JhcGguCi0gWyIiIlwKLSBQYXJhZ3JhcGguCi0gCi0t Pj4+IHByaW50ICIgICAgSW5kZW50ZWQgb3V0cHV0LiIKLSs+Pj4gcHJpbnQoIiAgICBJbmRlbnRl ZCBvdXRwdXQuIikKLSAgICAgSW5kZW50ZWQgb3V0cHV0LgotICIiIiwKLSAiIiJcCi1AQCAtNDcs MTMgKzQ3LDEzIEBAIFBhcmFncmFwaC4KLSAgICAgPHBhcmFncmFwaD4KLSAgICAgICAgIFBhcmFn cmFwaC4KLSAgICAgPGRvY3Rlc3RfYmxvY2sgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Ci0tICAgICAg ICA+Pj4gcHJpbnQgIiAgICBJbmRlbnRlZCBvdXRwdXQuIgotKyAgICAgICAgPj4+IHByaW50KCIg ICAgSW5kZW50ZWQgb3V0cHV0LiIpCi0gICAgICAgICAgICAgSW5kZW50ZWQgb3V0cHV0LgotICIi Il0sCi0gWyIiIlwKLSBQYXJhZ3JhcGguCi0gCi0tICAgID4+PiBwcmludCAiICAgIEluZGVudGVk IGJsb2NrICYgb3V0cHV0LiIKLSsgICAgPj4+IHByaW50KCIgICAgSW5kZW50ZWQgYmxvY2sgJiBv dXRwdXQuIikKLSAgICAgICAgIEluZGVudGVkIGJsb2NrICYgb3V0cHV0LgotICIiIiwKLSAiIiJc Ci1AQCAtNjIsNyArNjIsNyBAQCBQYXJhZ3JhcGguCi0gICAgICAgICBQYXJhZ3JhcGguCi0gICAg IDxibG9ja19xdW90ZT4KLSAgICAgICAgIDxkb2N0ZXN0X2Jsb2NrIHhtbDpzcGFjZT0icHJlc2Vy dmUiPgotLSAgICAgICAgICAgID4+PiBwcmludCAiICAgIEluZGVudGVkIGJsb2NrICYgb3V0cHV0 LiIKLSsgICAgICAgICAgICA+Pj4gcHJpbnQoIiAgICBJbmRlbnRlZCBibG9jayAmIG91dHB1dC4i KQotICAgICAgICAgICAgICAgICBJbmRlbnRlZCBibG9jayAmIG91dHB1dC4KLSAiIiJdLAotIF0K LWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rfc2V0dGluZ3MucHkgYi90ZXN0L3Rlc3Rfc2V0dGluZ3Mu cHkKLWluZGV4IDViNjg3ZWIuLmQxMDFhNTkgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfc2V0dGlu Z3MucHkKLSsrKyBiL3Rlc3QvdGVzdF9zZXR0aW5ncy5weQotQEAgLTgsNiArOCw3IEBACi0gIiIi Ci0gVGVzdHMgb2YgcnVudGltZSBzZXR0aW5ncy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1w b3J0IHByaW50X2Z1bmN0aW9uCi0gCi0gaW1wb3J0IHN5cwotIGltcG9ydCBvcwotQEAgLTExMSwx MCArMTEyLDEwIEBAIGNsYXNzIENvbmZpZ0ZpbGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsIGV4cGVj dGVkKQotICAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgotLSAgICAgICAgICAgIHByaW50 ID4+c3lzLnN0ZGVyciwgJ1xuJXNcbicgJSAoc2VsZiwpCi0tICAgICAgICAgICAgcHJpbnQgPj5z eXMuc3RkZXJyLCAnLTogZXhwZWN0ZWRcbis6IHJlc3VsdCcKLS0gICAgICAgICAgICBwcmludCA+ PnN5cy5zdGRlcnIsICcnLmpvaW4oc2VsZi5jb21wYXJlKGV4cGVjdGVkLnNwbGl0bGluZXMoMSks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXN1bHQuc3BsaXRsaW5lcygxKSkpCi0rICAgICAgICAgICAgcHJpbnQoJ1xuJXNcbicgJSAoc2Vs ZiwpLCBmaWxlPXN5cy5zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQoJy06IGV4cGVjdGVkXG4r OiByZXN1bHQnLCBmaWxlPXN5cy5zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQoJycuam9pbihz ZWxmLmNvbXBhcmUoZXhwZWN0ZWQuc3BsaXRsaW5lcygxKSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zcGxpdGxpbmVzKDEpKSks IGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgICAgICByYWlzZQotIAotICAgICBkZWYgdGVzdF9u b2ZpbGVzKHNlbGYpOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9zdGF0ZW1hY2hpbmUucHkgYi90 ZXN0L3Rlc3Rfc3RhdGVtYWNoaW5lLnB5Ci1pbmRleCAwN2M1NjFlLi42MzUyY2E0IDEwMDc1NQot LS0tIGEvdGVzdC90ZXN0X3N0YXRlbWFjaGluZS5weQotKysrIGIvdGVzdC90ZXN0X3N0YXRlbWFj aGluZS5weQotQEAgLTcsNiArNyw3IEBACi0gIiIiCi0gVGVzdCBtb2R1bGUgZm9yIHN0YXRlbWFj aGluZS5weS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0g Ci0gaW1wb3J0IHVuaXR0ZXN0Ci0gaW1wb3J0IHN5cwotQEAgLTU2LDQ3ICs1Nyw0NyBAQCBjbGFz cyBNb2NrU3RhdGUoc3RhdGVtYWNoaW5lLlN0YXRlV1MpOgotICAgICBkZWYgYm9mKHNlbGYsIGNv bnRleHQpOgotICAgICAgICAgc2VsZi5sZXZlbGhvbGRlclswXSArPSAxCi0gICAgICAgICBzZWxm LmxldmVsID0gc2VsZi5sZXZlbGhvbGRlclswXQotLSAgICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJp bnQgPj5zeXMuc3RkZXJyLCAnU3RhdGVNYWNoaW5lJXMnICUgc2VsZi5sZXZlbAotKyAgICAgICAg aWYgc2VsZi5kZWJ1ZzogcHJpbnQoJ1N0YXRlTWFjaGluZSVzJyAlIHNlbGYubGV2ZWwsIGZpbGU9 c3lzLnN0ZGVycikKLSAgICAgICAgIHJldHVybiBbXSwgWydTdGF0ZU1hY2hpbmUlcycgJSBzZWxm LmxldmVsXQotIAotICAgICBkZWYgYmxhbmsoc2VsZiwgbWF0Y2gsIGNvbnRleHQsIG5leHRfc3Rh dGUpOgotICAgICAgICAgcmVzdWx0ID0gWydibGFuayVzJyAlIHNlbGYubGV2ZWxdCi0tICAgICAg ICBpZiBzZWxmLmRlYnVnOiBwcmludCA+PnN5cy5zdGRlcnIsICdibGFuayVzJyAlIHNlbGYubGV2 ZWwKLSsgICAgICAgIGlmIHNlbGYuZGVidWc6IHByaW50KCdibGFuayVzJyAlIHNlbGYubGV2ZWws IGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgIGlmIGNvbnRleHQgYW5kIGNvbnRleHRbLTFdIGFu ZCBjb250ZXh0Wy0xXVstMjpdID09ICc6Oic6Ci0gICAgICAgICAgICAgcmVzdWx0LmV4dGVuZChz ZWxmLmxpdGVyYWxibG9jaygpKQotICAgICAgICAgcmV0dXJuIFtdLCBOb25lLCByZXN1bHQKLSAK LSAgICAgZGVmIGluZGVudChzZWxmLCBtYXRjaCwgY29udGV4dCwgbmV4dF9zdGF0ZSk6Ci0tICAg ICAgICBpZiBzZWxmLmRlYnVnOiBwcmludCA+PnN5cy5zdGRlcnIsICdpbmRlbnQlcycgJSBzZWxm LmxldmVsCi0rICAgICAgICBpZiBzZWxmLmRlYnVnOiBwcmludCgnaW5kZW50JXMnICUgc2VsZi5s ZXZlbCwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgY29udGV4dCwgbmV4dF9zdGF0ZSwgcmVz dWx0ID0gc3RhdGVtYWNoaW5lLlN0YXRlV1MuaW5kZW50KAotICAgICAgICAgICAgICAgc2VsZiwg bWF0Y2gsIGNvbnRleHQsIG5leHRfc3RhdGUpCi0gICAgICAgICByZXR1cm4gY29udGV4dCwgbmV4 dF9zdGF0ZSwgWydpbmRlbnQlcycgJSBzZWxmLmxldmVsXSArIHJlc3VsdAotIAotICAgICBkZWYg a25vd25faW5kZW50KHNlbGYsIG1hdGNoLCBjb250ZXh0LCBuZXh0X3N0YXRlKToKLS0gICAgICAg IGlmIHNlbGYuZGVidWc6IHByaW50ID4+c3lzLnN0ZGVyciwgJ2tub3duX2luZGVudCVzJyAlIHNl bGYubGV2ZWwKLSsgICAgICAgIGlmIHNlbGYuZGVidWc6IHByaW50KCdrbm93bl9pbmRlbnQlcycg JSBzZWxmLmxldmVsLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICBjb250ZXh0LCBuZXh0X3N0 YXRlLCByZXN1bHQgPSBzdGF0ZW1hY2hpbmUuU3RhdGVXUy5rbm93bl9pbmRlbnQoCi0gICAgICAg ICAgICAgICBzZWxmLCBtYXRjaCwgY29udGV4dCwgbmV4dF9zdGF0ZSkKLSAgICAgICAgIHJldHVy biBjb250ZXh0LCBuZXh0X3N0YXRlLCBbJ2tub3duX2luZGVudCVzJyAlIHNlbGYubGV2ZWxdICsg cmVzdWx0Ci0gCi0gICAgIGRlZiBidWxsZXQoc2VsZiwgbWF0Y2gsIGNvbnRleHQsIG5leHRfc3Rh dGUpOgotLSAgICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJpbnQgPj5zeXMuc3RkZXJyLCAnYnVsbGV0 JXMnICUgc2VsZi5sZXZlbAotKyAgICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJpbnQoJ2J1bGxldCVz JyAlIHNlbGYubGV2ZWwsIGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgIGNvbnRleHQsIG5leHRf c3RhdGUsIHJlc3VsdCBcCi0gICAgICAgICAgICAgICA9IHNlbGYua25vd25faW5kZW50KG1hdGNo LCBjb250ZXh0LCBuZXh0X3N0YXRlKQotICAgICAgICAgcmV0dXJuIFtdLCBuZXh0X3N0YXRlLCBb J2J1bGxldCVzJyAlIHNlbGYubGV2ZWxdICsgcmVzdWx0Ci0gCi0gICAgIGRlZiB0ZXh0KHNlbGYs IG1hdGNoLCBjb250ZXh0LCBuZXh0X3N0YXRlKToKLS0gICAgICAgIGlmIHNlbGYuZGVidWc6IHBy aW50ID4+c3lzLnN0ZGVyciwgJ3RleHQlcycgJSBzZWxmLmxldmVsCi0rICAgICAgICBpZiBzZWxm LmRlYnVnOiBwcmludCgndGV4dCVzJyAlIHNlbGYubGV2ZWwsIGZpbGU9c3lzLnN0ZGVycikKLSAg ICAgICAgIHJldHVybiBbbWF0Y2guc3RyaW5nXSwgbmV4dF9zdGF0ZSwgWyd0ZXh0JXMnICUgc2Vs Zi5sZXZlbF0KLSAKLSAgICAgZGVmIGxpdGVyYWxibG9jayhzZWxmKToKLSAgICAgICAgIGluZGVu dGVkLCBpbmRlbnQsIG9mZnNldCwgZ29vZCA9IHNlbGYuc3RhdGVfbWFjaGluZS5nZXRfaW5kZW50 ZWQoKQotLSAgICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJpbnQgPj5zeXMuc3RkZXJyLCAnbGl0ZXJh bGJsb2NrJXMoJXMpJyAlIChzZWxmLmxldmVsLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnQpCi0rICAgICAg ICBpZiBzZWxmLmRlYnVnOiBwcmludCgnbGl0ZXJhbGJsb2NrJXMoJXMpJyAlIChzZWxmLmxldmVs LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbmRlbnQpLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICByZXR1cm4g WydsaXRlcmFsYmxvY2slcyglcyknICUgKHNlbGYubGV2ZWwsIGluZGVudCldCi0gCi0gICAgIGRl ZiBlb2Yoc2VsZiwgY29udGV4dCk6Ci0gICAgICAgICBzZWxmLmxldmVsaG9sZGVyWzBdIC09IDEK LS0gICAgICAgIGlmIHNlbGYuZGVidWc6IHByaW50ID4+c3lzLnN0ZGVyciwgJ2ZpbmlzaGVkJXMn ICUgc2VsZi5sZXZlbAotKyAgICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJpbnQoJ2ZpbmlzaGVkJXMn ICUgc2VsZi5sZXZlbCwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgcmV0dXJuIFsnZmluaXNo ZWQlcycgJSBzZWxmLmxldmVsXQotIAotIAotQEAgLTE2OSwxMCArMTcwLDEwIEBAIGNsYXNzIFNN V1NUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBzZWxmLmFzc2VydFRydWUoZ29v ZCkKLSAgICAgICAgIHNlbGYuc20ucHJldmlvdXNfbGluZSgzKQotICAgICAgICAgaWYgc2VsZi5z bS5kZWJ1ZzoKLS0gICAgICAgICAgICBwcmludCAnXG50ZXN0X2dldF9pbmRlbnRlZDogc2VsZi5z bS5saW5lOlxuJywgc2VsZi5zbS5saW5lCi0rICAgICAgICAgICAgcHJpbnQoJ1xudGVzdF9nZXRf aW5kZW50ZWQ6IHNlbGYuc20ubGluZTpcbicsIHNlbGYuc20ubGluZSkKLSAgICAgICAgIGluZGVu dGVkLCBpbmRlbnQsIG9mZnNldCwgZ29vZCA9IHNlbGYuc20uZ2V0X2luZGVudGVkKCkKLSAgICAg ICAgIGlmIHNlbGYuc20uZGVidWc6Ci0tICAgICAgICAgICAgcHJpbnQgJ1xudGVzdF9nZXRfaW5k ZW50ZWQ6IGluZGVudGVkOlxuJywgaW5kZW50ZWQKLSsgICAgICAgICAgICBwcmludCgnXG50ZXN0 X2dldF9pbmRlbnRlZDogaW5kZW50ZWQ6XG4nLCBpbmRlbnRlZCkKLSAgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwoaW5kZW50LCBsYmluZGVudCkKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5k ZW50ZWQsIGxpdGVyYWxibG9jaykKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob2Zmc2V0LCAo bGVuKHBhcmExKSArIGxlbihpdGVtMSkgKyBsZW4oaXRlbTIpCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9zbWFydHF1b3Rlcy5weSBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1z L3Rlc3Rfc21hcnRxdW90ZXMucHkKLWluZGV4IGZiNDZiMzAuLmUyODc0YzAgMTAwNjQ0Ci0tLS0g YS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3NtYXJ0cXVvdGVzLnB5Ci0rKysgYi90ZXN0L3Rl c3RfdHJhbnNmb3Jtcy90ZXN0X3NtYXJ0cXVvdGVzLnB5Ci1AQCAtMTgsNyArMTgsNyBAQCBUZXN0 IG1vZHVsZSBmb3IgdW5pdmVyc2FsLlNtYXJ0UXVvdGVzIHRyYW5zZm9ybS4KLSAiIiIKLSAKLSAK LS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0ICMgbXVzdCBiZSBpbXBv cnRlZCBiZWZvcmUgZG9jdXRpbHMKLStmcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RT dXBwb3J0ICAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0aWxzCi0gZnJvbSBkb2N1dGls cy50cmFuc2Zvcm1zLnVuaXZlcnNhbCBpbXBvcnQgU21hcnRRdW90ZXMKLSBmcm9tIGRvY3V0aWxz LnBhcnNlcnMucnN0IGltcG9ydCBQYXJzZXIKLSAKLUBAIC02OSwxMSArNjksMTEgQEAgRG8gbm90 ICJlZHVjYXRlIiBxdW90ZXMgYGBpbnNpZGUgImxpdGVyYWwiIHRleHRgYCBhbmQgOjoKLSAgICJs aXRlcmFsIiBibG9ja3MuCi0gCi0gS2VlcCBxdW90ZXMgc3RyYWlnaHQgaW4gY29kZSBhbmQgbWF0 aDogCi0tOmNvZGU6YHByaW50ICJoZWxsbyJgIDptYXRoOmAxJyAxMiJgLgotKzpjb2RlOmBwcmlu dCgiaGVsbG8iKWAgOm1hdGg6YDEnIDEyImAuCi0gCi0gLi4gY29kZTo6Ci0gCi0tICAgcHJpbnQg ImhlbGxvIgotKyAgIHByaW50KCJoZWxsbyIpCi0gICAKLSAuLiBtYXRoOjoKLSAKLUBAIC05Miwx MyArOTIsMTMgQEAgdSIiIlwKLSAgICAgPHBhcmFncmFwaD4KLSAgICAgICAgIEtlZXAgcXVvdGVz IHN0cmFpZ2h0IGluIGNvZGUgYW5kIG1hdGg6Ci0gICAgICAgICA8bGl0ZXJhbCBjbGFzc2VzPSJj b2RlIj4KLS0gICAgICAgICAgICBwcmludCAiaGVsbG8iCi0rICAgICAgICAgICAgcHJpbnQoImhl bGxvIikKLSAgICAgICAgICAKLSAgICAgICAgIDxtYXRoPgotICAgICAgICAgICAgIDEnIDEyIgot ICAgICAgICAgLgotICAgICA8bGl0ZXJhbF9ibG9jayBjbGFzc2VzPSJjb2RlIiB4bWw6c3BhY2U9 InByZXNlcnZlIj4KLS0gICAgICAgIHByaW50ICJoZWxsbyIKLSsgICAgICAgIHByaW50KCJoZWxs byIpCi0gICAgIDxtYXRoX2Jsb2NrIHhtbDpzcGFjZT0icHJlc2VydmUiPgotICAgICAgICAgZico eCkgPSBkZih4KS9keAotICIiIl0sCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMv dGVzdF9zdHJpcF9lbGVtZW50c193aXRoX2NsYXNzLnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMv dGVzdF9zdHJpcF9lbGVtZW50c193aXRoX2NsYXNzLnB5Ci1pbmRleCA3YTM2ZmI5Li42NTAzNTg2 IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zdHJpcF9lbGVtZW50c193 aXRoX2NsYXNzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N0cmlwX2VsZW1l bnRzX3dpdGhfY2xhc3MucHkKLUBAIC0zNyw3ICszNyw3IEBAIHRoaXMgaXMgaGFtCi0gLi4gY29k ZTo6Ci0gICAgOmNsYXNzOiBzcGFtCi0gICAgCi0tICAgcHJpbnQgInNwYW0iCi0rICAgcHJpbnQo InNwYW0iKQotICAgIAotIC4uIGltYWdlOjogc3BhbS5qcGcKLSAgICA6Y2xhc3M6IHNwYW0KLWRp ZmYgLS1naXQgYS90ZXN0L3Rlc3Rfdmlld2xpc3QucHkgYi90ZXN0L3Rlc3Rfdmlld2xpc3QucHkK LWluZGV4IDIzYmEwMzMuLmY1ZGY1NDggMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfdmlld2xpc3Qu cHkKLSsrKyBiL3Rlc3QvdGVzdF92aWV3bGlzdC5weQotQEAgLTksOCArOSw2IEBAIFRlc3QgbW9k dWxlIGZvciB0aGUgVmlld0xpc3QgY2xhc3MgZnJvbSBzdGF0ZW1hY2hpbmUucHkuCi0gIiIiCi0g Ci0gaW1wb3J0IHVuaXR0ZXN0Ci0taW1wb3J0IHN5cwotLWltcG9ydCByZQotIGZyb20gRG9jdXRp bHNUZXN0U3VwcG9ydCBpbXBvcnQgc3RhdGVtYWNoaW5lCi0gCi0gCi1AQCAtNzYsNyArNzQsNiBA QCBjbGFzcyBWaWV3TGlzdFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoYSwgYV9saXN0KQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLml0ZW1z LCBbKCdhJywgaSsxKSBmb3IgKGksIHYpIGluIGVudW1lcmF0ZShhX2xpc3QpXSkKLSAgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWwoYS5wYXJlbnQsIHNlbGYuYSkKLS0gICAgICAgICMgYS5wcHJpbnQo KQotIAotICAgICBkZWYgdGVzdF9zZXRfc2xpY2Uoc2VsZik6Ci0gICAgICAgICBhID0gc3RhdGVt YWNoaW5lLlZpZXdMaXN0KHNlbGYuYVs6XSkKLUBAIC04NCw4ICs4MSw2IEBAIGNsYXNzIFZpZXdM aXN0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgc1syOjJdID0gc2VsZi5iCi0g ICAgICAgICBzX2xpc3QgPSBzZWxmLmFfbGlzdFsyOi0yXQotICAgICAgICAgc19saXN0WzI6Ml0g PSBzZWxmLmJfbGlzdAotLSAgICAgICAgIyBzLnBwcmludCgpCi0tICAgICAgICAjIHNbMTo0XS5w cHJpbnQoKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLCBzX2xpc3QpCi0gICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKHMsIGFbMjotMl0pCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMu aXRlbXMsIGFbMjotMl0uaXRlbXMpCi1AQCAtMTE5LDcgKzExNCw2IEBAIGNsYXNzIFZpZXdMaXN0 VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgYSA9IHN0YXRlbWFjaGluZS5WaWV3 TGlzdChzZWxmLmEpCi0gICAgICAgICBhLmFwcGVuZCgnUScsICdydW50aW1lJykKLSAgICAgICAg IGEuYXBwZW5kKHNlbGYuYikKLS0gICAgICAgICMgYS5wcHJpbnQoKQotICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChhLCBhX2xpc3QpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuaW5mbyhs ZW4oc2VsZi5hKSksICgncnVudGltZScsIDApKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChh LmluZm8oLTIpLCAoJ2InLCBsZW4oc2VsZi5iKSAtIDIpKQotQEAgLTEzMSw3ICsxMjUsNiBAQCBj bGFzcyBWaWV3TGlzdFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIGEuZXh0ZW5k KHNlbGYuYikKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYSwgYV9saXN0KQotICAgICAgICAg c2VsZi5hc3NlcnRFcXVhbChhLmluZm8obGVuKHNlbGYuYSkgKyAxKSwgKCdiJywgMSkpCi0tICAg ICAgICAjIGEucHByaW50KCkKLSAKLSAgICAgZGVmIHRlc3RfdmlldyhzZWxmKToKLSAgICAgICAg IGEgPSBzdGF0ZW1hY2hpbmUuVmlld0xpc3Qoc2VsZi5hWzpdKQotQEAgLTE3NiwxNiArMTY5LDkg QEAgY2xhc3MgVmlld0xpc3RUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIGRlZiB0ZXN0 X3NvcnQoc2VsZik6Ci0gICAgICAgICBjID0gc2VsZi5jWzpdCi0gICAgICAgICBjLnJldmVyc2Uo KQotLSAgICAgICAgIyBjLnBwcmludCgpCi0gICAgICAgICBjLnNvcnQoKQotICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChzZWxmLmMsIGMpCi0gCi0tIyAgICAgICAgIHByaW50Ci0tIyAgICAgICAg IHByaW50IGEKLS0jICAgICAgICAgcHJpbnQgcwotLSMgICAgICAgICBwcmludCBhLml0ZW1zCi0t IyAgICAgICAgIHByaW50IHMuaXRlbXMKLS0KLSAKLSBjbGFzcyBTdHJpbmdMaXN0KHVuaXR0ZXN0 LlRlc3RDYXNlKToKLSAKLWRpZmYgLS1naXQgYS90b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weSBi L3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFwLnB5Ci1pbmRleCBhMWQ5MmFjLi44NWFjMjY0IDEwMDc1 NQotLS0tIGEvdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkKLSsrKyBiL3Rvb2xzL2Rldi9jcmVh dGVfdW5pbWFwLnB5Ci1AQCAtOSw2ICs5LDcgQEAKLSAjIEdldCB1bmljb2RlLnhtbCBmcm9tCi0g IyA8aHR0cDovL3d3dy53My5vcmcvMjAwMy9lbnRpdGllcy94bWwvdW5pY29kZS54bWw+LgotIAot K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSBmcm9tIHhtbC5kb20gaW1w b3J0IG1pbmlkb20KLSBpbXBvcnQgc3lzCi0gaW1wb3J0IHBwcmludAotZGlmZiAtLWdpdCBhL3Rv b2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlvbl9jaGFycy5weSBiL3Rvb2xzL2Rldi9nZW5lcmF0 ZV9wdW5jdHVhdGlvbl9jaGFycy5weQotaW5kZXggZTA1NTE1ZC4uNTk0N2ZlNSAxMDA2NDQKLS0t LSBhL3Rvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlvbl9jaGFycy5weQotKysrIGIvdG9vbHMv ZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5Ci1AQCAtMzMsMTQgKzMzLDEzIEBACi0g IyAuLiBfaW5saW5lIG1hcmt1cCByZWNvZ25pdGlvbiBydWxlczoKLSAjICAgICAuLi8uLi9kb2Nz L3JlZi9yc3QvcmVzdHJ1Y3R1cmVkdGV4dC5odG1sI2lubGluZS1tYXJrdXAKLSAKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gCi0tIyBTZXR1cDo6Ci0tCi0taW1wb3J0 IHN5cywgcmUKLStpbXBvcnQgc3lzCi0gaW1wb3J0IHVuaWNvZGVkYXRhCi0gCi0gaWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywpOgotLSAgICB1bmljaHIgPSBjaHIgIyB1bmljaHIgbm90IGF2YWls YWJsZSBpbiBQeTNrCi0rICAgIHVuaWNociA9IGNociAgIyB1bmljaHIgbm90IGF2YWlsYWJsZSBp biBQeTNrCi0gZWxzZToKLSAgICAgaW1wb3J0IGNvZGVjcwotICAgICBzeXMuc3Rkb3V0ID0gY29k ZWNzLmdldHdyaXRlcignVVRGLTgnKShzeXMuc3Rkb3V0KQotQEAgLTQyMSw0NCArNDIwLDMgQEAg aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICAgICAgIH0KLSAKLSAgICAgcHJpbnQobW9k dWxlX3RlbXBsYXRlICUgc3Vic3RpdHV0aW9ucykKLS0KLS0KLS0jIHRlc3QgcHJpbnRzCi0tIyB+ fn5+fn5+fn5+fgotLSMKLS0jIEZvciBpbnRlcmFjdGl2ZSB1c2UgaW4gZGV2ZWxvcG1lbnQgeW91 IG1heSB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZwotLSMgZGVmaW5pdGlvbnM6OgotLQotLSAgICAj IHByaW50ICJ3aWRlIiBVbmljb2RlIGNoYXJhY3RlcnM6Ci0tICAgICMgdWNoYXJsaXN0cyA9IHVu aWNvZGVfY2hhcmxpc3RzKHVuaWNvZGVfcHVuY3R1YXRpb25fY2F0ZWdvcmllcykKLS0gICAgIyBm b3Iga2V5IGluIHVjaGFybGlzdHM6Ci0tICAgICMgICAgIGlmIGtleS5lbmRzd2l0aCgnd2lkZScp OgotLSAgICAjICAgICAgICAgcHJpbnQga2V5LCB1Y2hhcmxpc3RzW2tleV0KLS0KLS0gICAgIyBw cmludCAnb3BlbmVycyA9ICcsIHJlcHIob3BlbmVycykKLS0gICAgIyBwcmludCAnY2xvc2VycyA9 ICcsIHJlcHIoY2xvc2VycykKLS0gICAgIyBwcmludCAnZGVsaW1pdGVycyA9ICcsIHJlcHIoZGVs aW1pdGVycykKLS0gICAgIyBwcmludCAnY2xvc2luZ19kZWxpbWl0ZXJzID0gJywgcmVwcihjbG9z aW5nX2RlbGltaXRlcnMpCi0tCi0tICAgICMgdWNoYXJsaXN0cyA9IHVuaWNvZGVfY2hhcmxpc3Rz KHVuaWNvZGVfcHVuY3R1YXRpb25fY2F0ZWdvcmllcykKLS0gICAgIyBmb3IgY2F0LCBjaGFycyBp biB1Y2hhcmxpc3RzLml0ZW1zKCk6Ci0tICAgICMgICAgICMgcHJpbnQgY2F0LCBjaGFycwotLSAg ICAjICAgICAjIGNvbXBhY3Qgb3V0cHV0ICh2aXNpYmxlIHdpdGggYSBjb21wcmVoZW5zaXZlIGZv bnQpOgotLSAgICAjICAgICBwcmludCAodSI6JXM6ICVzIiAlIChjYXQsIHUnJy5qb2luKGNoYXJz KSkpLmVuY29kZSgndXRmOCcpCi0tCi0tIyB2ZXJib3NlIHByaW50Ci0tIwotLSMgOjoKLS0KLS0g ICAgIyBwcmludCAnb3BlbmVyczonCi0tICAgICMgZm9yIGNoIGluIG9wZW5lcnM6Ci0tICAgICMg ICAgIHByaW50IGNoLmVuY29kZSgndXRmOCcpLCB1bmljb2RlZGF0YS5uYW1lKGNoKQotLSAgICAj IHByaW50ICdjbG9zZXJzOicKLS0gICAgIyBmb3IgY2ggaW4gY2xvc2VyczoKLS0gICAgIyAgICAg cHJpbnQgY2guZW5jb2RlKCd1dGY4JyksIHVuaWNvZGVkYXRhLm5hbWUoY2gpCi0tICAgICMgcHJp bnQgJ2RlbGltaXRlcnM6JwotLSAgICAjIGZvciBjaCBpbiBkZWxpbWl0ZXJzOgotLSAgICAjICAg ICBwcmludCBjaC5lbmNvZGUoJ3V0ZjgnKSwgdW5pY29kZWRhdGEubmFtZShjaCkKLS0gICAgIyBw cmludCAnY2xvc2luZ19kZWxpbWl0ZXJzOicKLS0gICAgIyBmb3IgY2ggaW4gY2xvc2luZ19kZWxp bWl0ZXJzOgotLSAgICAjICAgICBwcmludCBjaC5lbmNvZGUoJ3V0ZjgnKSwgdW5pY29kZWRhdGEu bmFtZShjaCkKLWRpZmYgLS1naXQgYS90b29scy9kZXYvcHJvZmlsZV9kb2N1dGlscy5weSBiL3Rv b2xzL2Rldi9wcm9maWxlX2RvY3V0aWxzLnB5Ci1pbmRleCAxZjQzZWNjLi40YjkxMjVkIDEwMDc1 NQotLS0tIGEvdG9vbHMvZGV2L3Byb2ZpbGVfZG9jdXRpbHMucHkKLSsrKyBiL3Rvb2xzL2Rldi9w cm9maWxlX2RvY3V0aWxzLnB5Ci1AQCAtNCw2ICs0LDcgQEAKLSAjIEF1dGhvcjogTGVhIFdpZW1h bm4gPExlV2llbWFubkBnbWFpbC5jb20+Ci0gIyBDb3B5cmlnaHQ6IFRoaXMgc2NyaXB0IGhhcyBi ZWVuIHBsYWNlZCBpbiB0aGUgcHVibGljIGRvbWFpbi4KLSAKLStmcm9tIF9fZnV0dXJlX18gaW1w b3J0IHByaW50X2Z1bmN0aW9uCi0gaW1wb3J0IG9zLnBhdGgKLSBpbXBvcnQgZG9jdXRpbHMuY29y ZQotIGltcG9ydCBob3RzaG90LnN0YXRzCi1kaWZmIC0tZ2l0IGEvdG9vbHMvZGV2L3VuaWNvZGUy cnN0c3Vicy5weSBiL3Rvb2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkKLWluZGV4IGQ3MTkwMDUu LmI1MWVlYzQgMTAwNzU1Ci0tLS0gYS90b29scy9kZXYvdW5pY29kZTJyc3RzdWJzLnB5Ci0rKysg Yi90b29scy9kZXYvdW5pY29kZTJyc3RzdWJzLnB5Ci1AQCAtMTksNiArMTksNyBAQCBUaGUgaW5w dXQgZmlsZSwgdW5pY29kZS54bWwsIGlzIG1haW50YWluZWQgYXMgcGFydCBvZiB0aGUgTWF0aE1M IDIKLSBSZWNvbW1lbnRhdGlvbiBYTUwgc291cmNlLCBhbmQgaXMgYXZhaWxhYmxlIGZyb20KLSA8 aHR0cDovL3d3dy53My5vcmcvMjAwMy9lbnRpdGllcy94bWwvPi4KLSAiIiIKLStmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gCi0gaW1wb3J0IHN5cwotIGltcG9ydCBvcwot ZGlmZiAtLWdpdCBhL3Rvb2xzL3F1aWNrdGVzdC5weSBiL3Rvb2xzL3F1aWNrdGVzdC5weQotaW5k ZXggNGRkYmU1OS4uM2I2YjZiNCAxMDA3NTUKLS0tLSBhL3Rvb2xzL3F1aWNrdGVzdC5weQotKysr IGIvdG9vbHMvcXVpY2t0ZXN0LnB5Ci1AQCAtNSw2ICs1LDcgQEAKLSAjICAgICAgICAgIERhdmlk IEdvb2RnZXIgPGdvb2RnZXJAcHl0aG9uLm9yZz4KLSAjIENvcHlyaWdodDogVGhpcyBtb2R1bGUg aGFzIGJlZW4gcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluLgotIAotK2Zyb20gX19mdXR1cmVf XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSB0cnk6Ci0gICAgIGltcG9ydCBsb2NhbGUKLSAgICAg bG9jYWxlLnNldGxvY2FsZShsb2NhbGUuTENfQUxMLCAnJykKLWRpZmYgLS1naXQgYS90b29scy9y c3Qyb2R0X3ByZXBzdHlsZXMucHkgYi90b29scy9yc3Qyb2R0X3ByZXBzdHlsZXMucHkKLWluZGV4 IGIwYjdkY2MuLjY3Zjg5NDIgMTAwNzU1Ci0tLS0gYS90b29scy9yc3Qyb2R0X3ByZXBzdHlsZXMu cHkKLSsrKyBiL3Rvb2xzL3JzdDJvZHRfcHJlcHN0eWxlcy5weQotQEAgLTksOSArOSwxMCBAQCBG aXggYSB3b3JkLXByb2Nlc3Nvci1nZW5lcmF0ZWQgc3R5bGVzLm9kdCBmb3Igb2R0d3JpdGVyIHVz ZTogRHJvcCBwYWdlIHNpemUKLSBzcGVjaWZpY2F0aW9ucyBmcm9tIHN0eWxlcy54bWwgaW4gU1RZ TEVfRklMRS5vZHQuCi0gIiIiCi0gCi0tIwotICMgQXV0aG9yOiBNaWNoYWVsIFNjaHV0dGUgPG1p Y2hpQHVpYWUuYXQ+Ci0gCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgot KwotIGZyb20gbHhtbCBpbXBvcnQgZXRyZWUKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IHppcGZpbGUK LUBAIC0yNCwyOCArMjUsMjkgQEAgTkFNRVNQQUNFUyA9IHsKLSAgICAgImZvIjogInVybjpvYXNp czpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6eHNsLWZvLWNvbXBhdGlibGU6MS4wIgotIH0K LSAKLSsKLSBkZWYgcHJlcHN0eWxlKGZpbGVuYW1lKToKLS0gICAgCi0rCi0gICAgIHppbiA9IHpp cGZpbGUuWmlwRmlsZShmaWxlbmFtZSkKLSAgICAgc3R5bGVzID0gemluLnJlYWQoInN0eWxlcy54 bWwiKQotLSAgICAKLSsKLSAgICAgcm9vdCA9IGV0cmVlLmZyb21zdHJpbmcoc3R5bGVzKQotLSAg ICBmb3IgZWwgaW4gcm9vdC54cGF0aCgiLy9zdHlsZTpwYWdlLWxheW91dC1wcm9wZXJ0aWVzIiwg Ci0tICAgICAgICBuYW1lc3BhY2VzPU5BTUVTUEFDRVMpOgotKyAgICBmb3IgZWwgaW4gcm9vdC54 cGF0aCgiLy9zdHlsZTpwYWdlLWxheW91dC1wcm9wZXJ0aWVzIiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZXNwYWNlcz1OQU1FU1BBQ0VTKToKLSAgICAgICAgIGZvciBhdHRyIGluIGVs LmF0dHJpYjoKLSAgICAgICAgICAgICBpZiBhdHRyLnN0YXJ0c3dpdGgoInslc30iICUgTkFNRVNQ QUNFU1siZm8iXSk6Ci0gICAgICAgICAgICAgICAgIGRlbCBlbC5hdHRyaWJbYXR0cl0KLS0gICAg Ci0rCi0gICAgIHRlbXBuYW1lID0gbWtzdGVtcCgpCi0gICAgIHpvdXQgPSB6aXBmaWxlLlppcEZp bGUob3MuZmRvcGVuKHRlbXBuYW1lWzBdLCAidyIpLCAidyIsCi0tICAgICAgICB6aXBmaWxlLlpJ UF9ERUZMQVRFRCkKLS0gICAgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgemlwZmlsZS5a SVBfREVGTEFURUQpCi0rCi0gICAgIGZvciBpdGVtIGluIHppbi5pbmZvbGlzdCgpOgotICAgICAg ICAgaWYgaXRlbS5maWxlbmFtZSA9PSAic3R5bGVzLnhtbCI6Ci0gICAgICAgICAgICAgem91dC53 cml0ZXN0cihpdGVtLCBldHJlZS50b3N0cmluZyhyb290KSkKLSAgICAgICAgIGVsc2U6Ci0gICAg ICAgICAgICAgem91dC53cml0ZXN0cihpdGVtLCB6aW4ucmVhZChpdGVtLmZpbGVuYW1lKSkKLS0g ICAgCi0rCi0gICAgIHpvdXQuY2xvc2UoKQotICAgICB6aW4uY2xvc2UoKQotICAgICBzaHV0aWwu bW92ZSh0ZW1wbmFtZVsxXSwgZmlsZW5hbWUpCi1AQCAtNTQsMTQgKzU2LDEyIEBAIGRlZiBwcmVw c3R5bGUoZmlsZW5hbWUpOgotIGRlZiBtYWluKCk6Ci0gICAgIGFyZ3MgPSBzeXMuYXJndlsxOl0K LSAgICAgaWYgbGVuKGFyZ3MpICE9IDE6Ci0tICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCBf X2RvY19fCi0tICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiVXNhZ2U6ICVzIFNUWUxFX0ZJ TEUub2R0XG4iICUgc3lzLmFyZ3ZbMF0KLSsgICAgICAgIHByaW50KF9fZG9jX18sIGZpbGU9c3lz LnN0ZGVycikKLSsgICAgICAgIHByaW50KCJVc2FnZTogJXMgU1RZTEVfRklMRS5vZHRcbiIgJSBz eXMuYXJndlswXSwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICAg ZmlsZW5hbWUgPSBhcmdzWzBdCi0gICAgIHByZXBzdHlsZShmaWxlbmFtZSkKLSAKLSsKLSBpZiBf X25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICBtYWluKCkKLS0KLS0KLS0jIHZpbTp0dz03ODpz dz00OnN0cz00OmV0OgotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwMy1weTMtU3dpdGNoLXRvLWV4Y2Vw dC1mb28tYXMtYmFyLXN5bnRheC5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNo ZXMvMDAwMy1weTMtU3dpdGNoLXRvLWV4Y2VwdC1mb28tYXMtYmFyLXN5bnRheC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjYxZWI2MmMxNGUuLjAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwMy1weTMtU3dpdGNoLXRvLWV4Y2Vw dC1mb28tYXMtYmFyLXN5bnRheC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcxOSArMCwwIEBA Ci1Gcm9tIGMzNjEyNzBmYjRlZTkxNzJhMzM3ZjVlOWMwYjAxNGIzNjJmYjBiNzEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3Vy dT4KLURhdGU6IFR1ZSwgMTkgTm92IDIwMTkgMjM6NDk6MzUgKzA3MDAKLVN1YmplY3Q6IFtQQVRD SCAwMy8yNl0gcHkzOiBTd2l0Y2ggdG8gJ2V4Y2VwdCBmb28gYXMgYmFyJyBzeW50YXgKLQotVGhp cyBpcyB0aGUgb25seSBmb3JtIHN1cHBvcnRlZCBpbiBQeXRob24gMy54LgotCi1TaWduZWQtb2Zm LWJ5OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDog aHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM0NyA5Mjk1NDNm Ni1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBD b25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvY29yZS5weSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KLSBkb2N1dGlscy9mcm9udGVuZC5w eSAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KLSBkb2N1dGlscy9pby5weSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tCi0gZG9jdXRpbHMv cGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weSB8ICA2ICsrKy0tLQotIGRvY3V0aWxz L3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvYm9keS5weSAgICAgfCAgMiArLQotIGRvY3V0aWxzL3Bh cnNlcnMvcnN0L2RpcmVjdGl2ZXMvaHRtbC5weSAgICAgfCAgMiArLQotIGRvY3V0aWxzL3BhcnNl cnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weSAgICAgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQot IGRvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5ICAgfCAxMCArKysrKy0t LS0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3Qvcm9sZXMucHkgICAgICAgICAgICAgICB8ICA0ICsr LS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkgICAgICAgICAgICAgIHwgMjAgKysr KysrKysrKy0tLS0tLS0tLS0KLSBkb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgICAgICAgICAgICAg ICAgICAgIHwgIDYgKysrLS0tCi0gZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkgICAgICAgICAg ICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5ICAgICAg ICAgICB8ICA0ICsrLS0KLSBkb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkgICAgICAgICAg ICAgIHwgIDQgKystLQotIGRvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5ICAgICAgICAg ICAgfCAgMiArLQotIGRvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weSAgICAgICAg fCAgMiArLQotIHRlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSAgICAgICAgICAgICAgICAgfCAg OCArKysrLS0tLQotIHRlc3QvcGFja2FnZV91bml0dGVzdC5weSAgICAgICAgICAgICAgICAgICAg fCAgMiArLQotIHRlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkgICAgICAgICAgICAgICAgfCAx NCArKysrKysrLS0tLS0tLQotIHRlc3QvdGVzdF9sYW5ndWFnZS5weSAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArKy0tCi0gdGVzdC90ZXN0X3B1Ymxpc2hlci5weSAgICAgICAgICAgICAgICAg ICAgICB8ICA0ICsrLS0KLSB0ZXN0L3Rlc3RfdXRpbHMucHkgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KLSAyMiBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCA3MSBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2NvcmUucHkgYi9kb2N1dGlscy9jb3Jl LnB5Ci1pbmRleCA2YTk5MDIwLi4xMmEwYzkzIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvY29yZS5w eQotKysrIGIvZG9jdXRpbHMvY29yZS5weQotQEAgLTIxOSwxMCArMjE5LDEwIEBAIGNsYXNzIFB1 Ymxpc2hlcihvYmplY3QpOgotICAgICAgICAgICAgIHNlbGYuYXBwbHlfdHJhbnNmb3JtcygpCi0g ICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi53cml0ZXIud3JpdGUoc2VsZi5kb2N1bWVudCwgc2Vs Zi5kZXN0aW5hdGlvbikKLSAgICAgICAgICAgICBzZWxmLndyaXRlci5hc3NlbWJsZV9wYXJ0cygp Ci0tICAgICAgICBleGNlcHQgU3lzdGVtRXhpdCwgZXJyb3I6Ci0rICAgICAgICBleGNlcHQgU3lz dGVtRXhpdCBhcyBlcnJvcjoKLSAgICAgICAgICAgICBleGl0ID0gMQotICAgICAgICAgICAgIGV4 aXRfc3RhdHVzID0gZXJyb3IuY29kZQotLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZXJyb3I6 Ci0rICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOgotICAgICAgICAgICAgIGlmIG5v dCBzZWxmLnNldHRpbmdzOiAgICAgICAjIGV4Y2VwdGlvbiB0b28gZWFybHkgdG8gcmVwb3J0IG5p Y2VseQotICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgIGlmIHNlbGYuc2V0dGlu Z3MudHJhY2ViYWNrOiAjIFByb3BhZ2F0ZSBleGNlcHRpb25zPwotZGlmZiAtLWdpdCBhL2RvY3V0 aWxzL2Zyb250ZW5kLnB5IGIvZG9jdXRpbHMvZnJvbnRlbmQucHkKLWluZGV4IDFhZWFlNWMuLjY4 OWQ5MDQgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9mcm9udGVuZC5weQotKysrIGIvZG9jdXRpbHMv ZnJvbnRlbmQucHkKLUBAIC02Miw3ICs2Miw3IEBAIGRlZiByZWFkX2NvbmZpZ19maWxlKG9wdGlv biwgb3B0LCB2YWx1ZSwgcGFyc2VyKToKLSAgICAgIiIiCi0gICAgIHRyeToKLSAgICAgICAgIG5l d19zZXR0aW5ncyA9IHBhcnNlci5nZXRfY29uZmlnX2ZpbGVfc2V0dGluZ3ModmFsdWUpCi0tICAg IGV4Y2VwdCBWYWx1ZUVycm9yLCBlcnJvcjoKLSsgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZXJy b3I6Ci0gICAgICAgICBwYXJzZXIuZXJyb3IoZXJyb3IpCi0gICAgIHBhcnNlci52YWx1ZXMudXBk YXRlKG5ld19zZXR0aW5ncywgcGFyc2VyKQotIAotQEAgLTM0Niw3ICszNDYsNyBAQCBjbGFzcyBP cHRpb24ob3B0cGFyc2UuT3B0aW9uKToKLSAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRhdHRy KHZhbHVlcywgc2V0dGluZykKLSAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg ICAgICAgbmV3X3ZhbHVlID0gc2VsZi52YWxpZGF0b3Ioc2V0dGluZywgdmFsdWUsIHBhcnNlcikK LS0gICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZXJyb3I6Ci0rICAgICAgICAgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICByYWlz ZSAob3B0cGFyc2UuT3B0aW9uVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAn RXJyb3IgaW4gb3B0aW9uICIlcyI6XG4gICAgJXMnCi0gICAgICAgICAgICAgICAgICAgICAgICAg JSAob3B0LCBFcnJvclN0cmluZyhlcnJvcikpKSwKLUBAIC02MDUsNyArNjA1LDcgQEAgY2xhc3Mg T3B0aW9uUGFyc2VyKG9wdHBhcnNlLk9wdGlvblBhcnNlciwgZG9jdXRpbHMuU2V0dGluZ3NTcGVj KToKLSAgICAgICAgIGlmIHJlYWRfY29uZmlnX2ZpbGVzIGFuZCBub3Qgc2VsZi5kZWZhdWx0c1sn X2Rpc2FibGVfY29uZmlnJ106Ci0gICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICBj b25maWdfc2V0dGluZ3MgPSBzZWxmLmdldF9zdGFuZGFyZF9jb25maWdfc2V0dGluZ3MoKQotLSAg ICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlcnJvcjoKLSsgICAgICAgICAgICBleGNlcHQg VmFsdWVFcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgc2VsZi5lcnJvcihTYWZlU3Ry aW5nKGVycm9yKSkKLSAgICAgICAgICAgICBzZWxmLnNldF9kZWZhdWx0c19mcm9tX2RpY3QoY29u ZmlnX3NldHRpbmdzLl9fZGljdF9fKQotIAotQEAgLTgyNiw3ICs4MjYsNyBAQCBTa2lwcGluZyAi JXMiIGNvbmZpZ3VyYXRpb24gZmlsZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfdmFs dWUgPSBvcHRpb24udmFsaWRhdG9yKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0 aW5nLCB2YWx1ZSwgb3B0aW9uX3BhcnNlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uZmlnX3BhcnNlcj1zZWxmLCBjb25maWdfc2VjdGlvbj1zZWN0aW9uKQotLSAgICAgICAgICAg ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZXJyb3I6Ci0rICAgICAgICAgICAgICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOgotICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNl IChWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRXJyb3IgaW4gY29u ZmlnIGZpbGUgIiVzIiwgc2VjdGlvbiAiWyVzXSI6XG4nCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICcgICAgJXNcbicKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9pby5weSBiL2RvY3V0aWxz L2lvLnB5Ci1pbmRleCAzYjBmOTNlLi40NDY2ZmRiIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvaW8u cHkKLSsrKyBiL2RvY3V0aWxzL2lvLnB5Ci1AQCAtMTE0LDcgKzExNCw3IEBAIGNsYXNzIElucHV0 KFRyYW5zZm9ybVNwZWMpOgotICAgICAgICAgICAgICAgICBzZWxmLnN1Y2Nlc3NmdWxfZW5jb2Rp bmcgPSBlbmMKLSAgICAgICAgICAgICAgICAgIyBSZXR1cm4gZGVjb2RlZCwgcmVtb3ZpbmcgQk9N cy4KLSAgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZWQucmVwbGFjZSh1J1x1ZmVmZicsIHUn JykKLS0gICAgICAgICAgICBleGNlcHQgKFVuaWNvZGVFcnJvciwgTG9va3VwRXJyb3IpLCBlcnI6 Ci0rICAgICAgICAgICAgZXhjZXB0IChVbmljb2RlRXJyb3IsIExvb2t1cEVycm9yKSBhcyBlcnI6 Ci0gICAgICAgICAgICAgICAgIGVycm9yID0gZXJyICMgaW4gUHl0aG9uIDMsIHRoZSA8ZXhjZXB0 aW9uIGluc3RhbmNlPiBpcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxvY2FsIHRv IHRoZSBleGNlcHQgY2xhdXNlCi0gICAgICAgICByYWlzZSBVbmljb2RlRXJyb3IoCi1AQCAtMjQ0 LDcgKzI0NCw3IEBAIGNsYXNzIEZpbGVJbnB1dChJbnB1dCk6Ci0gCi0gICAgICAgICAgICAgICAg IHRyeToKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYuc291cmNlID0gb3Blbihzb3VyY2VfcGF0 aCwgbW9kZSwgKiprd2FyZ3MpCi0tICAgICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlcnJv cjoKLSsgICAgICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICAg ICAgICAgICAgICByYWlzZSBJbnB1dEVycm9yKGVycm9yLmVycm5vLCBlcnJvci5zdHJlcnJvciwg c291cmNlX3BhdGgpCi0gICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgc2VsZi5z b3VyY2UgPSBzeXMuc3RkaW4KLUBAIC0yNzIsNyArMjcyLDcgQEAgY2xhc3MgRmlsZUlucHV0KElu cHV0KToKLSAgICAgICAgICAgICAgICAgZGF0YSA9IGInXG4nLmpvaW4oZGF0YS5zcGxpdGxpbmVz KCkpICsgYidcbicKLSAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICBkYXRhID0g c2VsZi5zb3VyY2UucmVhZCgpCi0tICAgICAgICBleGNlcHQgKFVuaWNvZGVFcnJvciwgTG9va3Vw RXJyb3IpLCBlcnI6ICMgKGluIFB5M2sgcmVhZCgpIGRlY29kZXMpCi0rICAgICAgICBleGNlcHQg KFVuaWNvZGVFcnJvciwgTG9va3VwRXJyb3IpIGFzIGVycjogIyAoaW4gUHkzayByZWFkKCkgZGVj b2RlcykKLSAgICAgICAgICAgICBpZiBub3Qgc2VsZi5lbmNvZGluZyBhbmQgc2VsZi5zb3VyY2Vf cGF0aDoKLSAgICAgICAgICAgICAgICAgIyByZS1yZWFkIGluIGJpbmFyeSBtb2RlIGFuZCBkZWNv ZGUgd2l0aCBoZXVyaXN0aWNzCi0gICAgICAgICAgICAgICAgIGJfc291cmNlID0gb3BlbihzZWxm LnNvdXJjZV9wYXRoLCAncmInKQotQEAgLTM2Miw3ICszNjIsNyBAQCBjbGFzcyBGaWxlT3V0cHV0 KE91dHB1dCk6Ci0gICAgICAgICAgICAga3dhcmdzID0ge30KLSAgICAgICAgIHRyeToKLSAgICAg ICAgICAgICBzZWxmLmRlc3RpbmF0aW9uID0gb3BlbihzZWxmLmRlc3RpbmF0aW9uX3BhdGgsIHNl bGYubW9kZSwgKiprd2FyZ3MpCi0tICAgICAgICBleGNlcHQgSU9FcnJvciwgZXJyb3I6Ci0rICAg ICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICByYWlzZSBPdXRwdXRF cnJvcihlcnJvci5lcnJubywgZXJyb3Iuc3RyZXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kZXN0aW5hdGlvbl9wYXRoKQotICAgICAgICAgc2VsZi5vcGVuZWQgPSBU cnVlCi1AQCAtMzg0LDcgKzM4NCw3IEBAIGNsYXNzIEZpbGVPdXRwdXQoT3V0cHV0KToKLSAKLSAg ICAgICAgIHRyeToKLSAgICAgICAgICAgICBzZWxmLmRlc3RpbmF0aW9uLndyaXRlKGRhdGEpCi0t ICAgICAgICBleGNlcHQgVHlwZUVycm9yLCBlOgotKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvciBh cyBlOgotICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCkgYW5kIGlzaW5z dGFuY2UoZGF0YSwgYnl0ZXMpOgotICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg ICAgICAgICBzZWxmLmRlc3RpbmF0aW9uLmJ1ZmZlci53cml0ZShkYXRhKQotQEAgLTM5Nyw3ICsz OTcsNyBAQCBjbGFzcyBGaWxlT3V0cHV0KE91dHB1dCk6Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGVzdGluYXRpb24uZW5jb2RpbmcsIHNlbGYuZW5jb2RpbmcpKQotICAgICAg ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBlCi0t ICAgICAgICBleGNlcHQgKFVuaWNvZGVFcnJvciwgTG9va3VwRXJyb3IpLCBlcnI6Ci0rICAgICAg ICBleGNlcHQgKFVuaWNvZGVFcnJvciwgTG9va3VwRXJyb3IpIGFzIGVycjoKLSAgICAgICAgICAg ICByYWlzZSBVbmljb2RlRXJyb3IoCi0gICAgICAgICAgICAgICAgICdVbmFibGUgdG8gZW5jb2Rl IG91dHB1dCBkYXRhLiBvdXRwdXQtZW5jb2RpbmcgaXM6ICcKLSAgICAgICAgICAgICAgICAgJyVz LlxuKCVzKScgJSAoc2VsZi5lbmNvZGluZywgRXJyb3JTdHJpbmcoZXJyKSkpCi1kaWZmIC0tZ2l0 IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weSBiL2RvY3V0aWxz L3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvX19pbml0X18ucHkKLWluZGV4IGUwZDA5ZmMuLjg3ODkz NDYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9f LnB5Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5Ci1A QCAtODYsNyArODYsNyBAQCBkZWYgZGlyZWN0aXZlKGRpcmVjdGl2ZV9uYW1lLCBsYW5ndWFnZV9t b2R1bGUsIGRvY3VtZW50KToKLSAgICAgY2Fub25pY2FsbmFtZSA9IE5vbmUKLSAgICAgdHJ5Ogot ICAgICAgICAgY2Fub25pY2FsbmFtZSA9IGxhbmd1YWdlX21vZHVsZS5kaXJlY3RpdmVzW25vcm1u YW1lXQotLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3IsIGVycm9yOgotKyAgICBleGNlcHQgQXR0 cmlidXRlRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICBtc2dfdGV4dC5hcHBlbmQoJ1Byb2JsZW0g cmV0cmlldmluZyBkaXJlY3RpdmUgZW50cnkgZnJvbSBsYW5ndWFnZSAnCi0gICAgICAgICAgICAg ICAgICAgICAgICAgJ21vZHVsZSAlcjogJXMuJyAlIChsYW5ndWFnZV9tb2R1bGUsIGVycm9yKSkK LSAgICAgZXhjZXB0IEtleUVycm9yOgotQEAgLTExMyw3ICsxMTMsNyBAQCBkZWYgZGlyZWN0aXZl KGRpcmVjdGl2ZV9uYW1lLCBsYW5ndWFnZV9tb2R1bGUsIGRvY3VtZW50KToKLSAgICAgICAgIHJl dHVybiBOb25lLCBtZXNzYWdlcwotICAgICB0cnk6Ci0gICAgICAgICBtb2R1bGUgPSBfX2ltcG9y dF9fKG1vZHVsZW5hbWUsIGdsb2JhbHMoKSwgbG9jYWxzKCksIGxldmVsPTEpCi0tICAgIGV4Y2Vw dCBJbXBvcnRFcnJvciwgZGV0YWlsOgotKyAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZGV0YWls OgotICAgICAgICAgbWVzc2FnZXMuYXBwZW5kKGRvY3VtZW50LnJlcG9ydGVyLmVycm9yKAotICAg ICAgICAgICAgICdFcnJvciBpbXBvcnRpbmcgZGlyZWN0aXZlIG1vZHVsZSAiJXMiIChkaXJlY3Rp dmUgIiVzIik6XG4lcycKLSAgICAgICAgICAgICAlIChtb2R1bGVuYW1lLCBkaXJlY3RpdmVfbmFt ZSwgZGV0YWlsKSwKLUBAIC0zMDksNyArMzA5LDcgQEAgZGVmIHVuaWNvZGVfY29kZShjb2RlKToK LSAgICAgICAgICAgICAgICAgcmV0dXJuIHVuaWNocihpbnQodmFsdWUsIDE2KSkKLSAgICAgICAg ICAgICBlbHNlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3RoZXIgdGV4dAotICAgICAg ICAgICAgICAgICByZXR1cm4gY29kZQotLSAgICBleGNlcHQgT3ZlcmZsb3dFcnJvciwgZGV0YWls OgotKyAgICBleGNlcHQgT3ZlcmZsb3dFcnJvciBhcyBkZXRhaWw6Ci0gICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCdjb2RlIHRvbyBsYXJnZSAoJXMpJyAlIGRldGFpbCkKLSAKLSBkZWYgc2luZ2xl X2NoYXJfb3JfdW5pY29kZShhcmd1bWVudCk6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFyc2Vy cy9yc3QvZGlyZWN0aXZlcy9ib2R5LnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZl cy9ib2R5LnB5Ci1pbmRleCBiNjBjM2FkLi5lZWYxZGY1IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMv cGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9ib2R5LnB5Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3Jz dC9kaXJlY3RpdmVzL2JvZHkucHkKLUBAIC0xNDcsNyArMTQ3LDcgQEAgY2xhc3MgQ29kZUJsb2Nr KERpcmVjdGl2ZSk6Ci0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgdG9rZW5zID0gTGV4ZXIo dSdcbicuam9pbihzZWxmLmNvbnRlbnQpLCBsYW5ndWFnZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnN0YXRlLmRvY3VtZW50LnNldHRpbmdzLnN5bnRheF9oaWdobGlnaHQpCi0t ICAgICAgICBleGNlcHQgTGV4ZXJFcnJvciwgZXJyb3I6Ci0rICAgICAgICBleGNlcHQgTGV4ZXJF cnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICByYWlzZSBzZWxmLndhcm5pbmcoZXJyb3IpCi0g Ci0gICAgICAgICBpZiAnbnVtYmVyLWxpbmVzJyBpbiBzZWxmLm9wdGlvbnM6Ci1kaWZmIC0tZ2l0 IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9odG1sLnB5IGIvZG9jdXRpbHMvcGFy c2Vycy9yc3QvZGlyZWN0aXZlcy9odG1sLnB5Ci1pbmRleCA3ODY3MWU4Li5lYTM2OTM2IDEwMDY0 NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9odG1sLnB5Ci0rKysgYi9k b2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2h0bWwucHkKLUBAIC01NSw3ICs1NSw3IEBA IGNsYXNzIE1ldGFCb2R5KHN0YXRlcy5TcGVjaWFsaXplZEJvZHkpOgotICAgICAgICAgICAgIHRy eToKLSAgICAgICAgICAgICAgICAgYXR0bmFtZSwgdmFsID0gdXRpbHMuZXh0cmFjdF9uYW1lX3Zh bHVlKHRva2VuKVswXQotICAgICAgICAgICAgICAgICBub2RlW2F0dG5hbWUubG93ZXIoKV0gPSB2 YWwKLS0gICAgICAgICAgICBleGNlcHQgdXRpbHMuTmFtZVZhbHVlRXJyb3IsIGRldGFpbDoKLSsg ICAgICAgICAgICBleGNlcHQgdXRpbHMuTmFtZVZhbHVlRXJyb3IgYXMgZGV0YWlsOgotICAgICAg ICAgICAgICAgICBsaW5lID0gc2VsZi5zdGF0ZV9tYWNoaW5lLmxpbmUKLSAgICAgICAgICAgICAg ICAgbXNnID0gc2VsZi5yZXBvcnRlci5lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgJ0Vy cm9yIHBhcnNpbmcgbWV0YSB0YWcgYXR0cmlidXRlICIlcyI6ICVzLicKLWRpZmYgLS1naXQgYS9k b2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2MucHkgYi9kb2N1dGlscy9wYXJzZXJz L3JzdC9kaXJlY3RpdmVzL21pc2MucHkKLWluZGV4IDc2NzJkZTYuLjBmYzM2MTAgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2MucHkKLSsrKyBiL2RvY3V0 aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weQotQEAgLTczLDEyICs3MywxMiBAQCBj bGFzcyBJbmNsdWRlKERpcmVjdGl2ZSk6Ci0gICAgICAgICAgICAgaW5jbHVkZV9maWxlID0gaW8u RmlsZUlucHV0KHNvdXJjZV9wYXRoPXBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVuY29kaW5nPWVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlcnJvcl9oYW5kbGVyPWVfaGFuZGxlcikKLS0gICAgICAgIGV4Y2Vw dCBVbmljb2RlRW5jb2RlRXJyb3IsIGVycm9yOgotKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNv ZGVFcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICByYWlzZSBzZWxmLnNldmVyZSh1J1Byb2Js ZW1zIHdpdGggIiVzIiBkaXJlY3RpdmUgcGF0aDpcbicKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnQ2Fubm90IGVuY29kZSBpbnB1dCBmaWxlIHBhdGggIiVzIiAnCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJyh3cm9uZyBsb2NhbGU/KS4nICUKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc2VsZi5uYW1lLCBTYWZlU3RyaW5nKHBhdGgpKSkKLS0gICAgICAg IGV4Y2VwdCBJT0Vycm9yLCBlcnJvcjoKLSsgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycm9y OgotICAgICAgICAgICAgIHJhaXNlIHNlbGYuc2V2ZXJlKHUnUHJvYmxlbXMgd2l0aCAiJXMiIGRp cmVjdGl2ZSBwYXRoOlxuJXMuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgIChzZWxmLm5hbWUs IEVycm9yU3RyaW5nKGVycm9yKSkpCi0gICAgICAgICBzdGFydGxpbmUgPSBzZWxmLm9wdGlvbnMu Z2V0KCdzdGFydC1saW5lJywgTm9uZSkKLUBAIC04OSw3ICs4OSw3IEBAIGNsYXNzIEluY2x1ZGUo RGlyZWN0aXZlKToKLSAgICAgICAgICAgICAgICAgcmF3dGV4dCA9ICcnLmpvaW4obGluZXNbc3Rh cnRsaW5lOmVuZGxpbmVdKQotICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIHJh d3RleHQgPSBpbmNsdWRlX2ZpbGUucmVhZCgpCi0tICAgICAgICBleGNlcHQgVW5pY29kZUVycm9y LCBlcnJvcjoKLSsgICAgICAgIGV4Y2VwdCBVbmljb2RlRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAg ICAgICAgcmFpc2Ugc2VsZi5zZXZlcmUodSdQcm9ibGVtIHdpdGggIiVzIiBkaXJlY3RpdmU6XG4l cycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLm5hbWUsIEVycm9yU3Ry aW5nKGVycm9yKSkpCi0gICAgICAgICAjIHN0YXJ0LWFmdGVyL2VuZC1iZWZvcmU6IG5vIHJlc3Ry aWN0aW9ucyBvbiBuZXdsaW5lcyBpbiBtYXRjaC10ZXh0LAotQEAgLTIxMywxMiArMjEzLDEyIEBA IGNsYXNzIFJhdyhEaXJlY3RpdmUpOgotICAgICAgICAgICAgICAgICAjIFRPRE86IGN1cnJlbnRs eSwgcmF3IGlucHV0IGZpbGVzIGFyZSByZWNvcmRlZCBhcwotICAgICAgICAgICAgICAgICAjIGRl cGVuZGVuY2llcyBldmVuIGlmIG5vdCB1c2VkIGZvciB0aGUgY2hvc2VuIG91dHB1dCBmb3JtYXQu Ci0gICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUuZG9jdW1lbnQuc2V0dGluZ3MucmVjb3JkX2Rl cGVuZGVuY2llcy5hZGQocGF0aCkKLS0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciwgZXJyb3I6 Ci0rICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICAgICAgICAg IHJhaXNlIHNlbGYuc2V2ZXJlKHUnUHJvYmxlbXMgd2l0aCAiJXMiIGRpcmVjdGl2ZSBwYXRoOlxu JXMuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzZWxmLm5hbWUsIEVy cm9yU3RyaW5nKGVycm9yKSkpCi0gICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICB0 ZXh0ID0gcmF3X2ZpbGUucmVhZCgpCi0tICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvciwg ZXJyb3I6Ci0rICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvciBhcyBlcnJvcjoKLSAgICAg ICAgICAgICAgICAgcmFpc2Ugc2VsZi5zZXZlcmUodSdQcm9ibGVtIHdpdGggIiVzIiBkaXJlY3Rp dmU6XG4lcycKLSAgICAgICAgICAgICAgICAgICAgICUgKHNlbGYubmFtZSwgRXJyb3JTdHJpbmco ZXJyb3IpKSkKLSAgICAgICAgICAgICBhdHRyaWJ1dGVzWydzb3VyY2UnXSA9IHBhdGgKLUBAIC0y MzAsNyArMjMwLDcgQEAgY2xhc3MgUmF3KERpcmVjdGl2ZSk6Ci0gICAgICAgICAgICAgaW1wb3J0 IHVybGxpYjIKLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIHJhd190ZXh0ID0g dXJsbGliMi51cmxvcGVuKHNvdXJjZSkucmVhZCgpCi0tICAgICAgICAgICAgZXhjZXB0ICh1cmxs aWIyLlVSTEVycm9yLCBJT0Vycm9yLCBPU0Vycm9yKSwgZXJyb3I6Ci0rICAgICAgICAgICAgZXhj ZXB0ICh1cmxsaWIyLlVSTEVycm9yLCBJT0Vycm9yLCBPU0Vycm9yKSBhcyBlcnJvcjoKLSAgICAg ICAgICAgICAgICAgcmFpc2Ugc2VsZi5zZXZlcmUodSdQcm9ibGVtcyB3aXRoICIlcyIgZGlyZWN0 aXZlIFVSTCAiJXMiOlxuJXMuJwotICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5uYW1lLCBz ZWxmLm9wdGlvbnNbJ3VybCddLCBFcnJvclN0cmluZyhlcnJvcikpKQotICAgICAgICAgICAgIHJh d19maWxlID0gaW8uU3RyaW5nSW5wdXQoc291cmNlPXJhd190ZXh0LCBzb3VyY2VfcGF0aD1zb3Vy Y2UsCi1AQCAtMjM4LDcgKzIzOCw3IEBAIGNsYXNzIFJhdyhEaXJlY3RpdmUpOgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfaGFuZGxlcj1lX2hhbmRsZXIpCi0g ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICB0ZXh0ID0gcmF3X2ZpbGUucmVhZCgp Ci0tICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvciwgZXJyb3I6Ci0rICAgICAgICAgICAg ZXhjZXB0IFVuaWNvZGVFcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgcmFpc2Ugc2Vs Zi5zZXZlcmUodSdQcm9ibGVtIHdpdGggIiVzIiBkaXJlY3RpdmU6XG4lcycKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5uYW1lLCBFcnJvclN0cmluZyhlcnJvcikp KQotICAgICAgICAgICAgIGF0dHJpYnV0ZXNbJ3NvdXJjZSddID0gc291cmNlCi1AQCAtMzIwLDcg KzMyMCw3IEBAIGNsYXNzIFVuaWNvZGUoRGlyZWN0aXZlKToKLSAgICAgICAgIGZvciBjb2RlIGlu IGNvZGVzOgotICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgZGVjb2RlZCA9IGRp cmVjdGl2ZXMudW5pY29kZV9jb2RlKGNvZGUpCi0tICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJy b3IsIGVycm9yOgotKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGVycm9yOgotICAg ICAgICAgICAgICAgICByYWlzZSBzZWxmLmVycm9yKHUnSW52YWxpZCBjaGFyYWN0ZXIgY29kZTog JXNcbiVzJwotICAgICAgICAgICAgICAgICAgICAgJSAoY29kZSwgRXJyb3JTdHJpbmcoZXJyb3Ip KSkKLSAgICAgICAgICAgICBlbGVtZW50ICs9IG5vZGVzLlRleHQodXRpbHMudW5lc2NhcGUoZGVj b2RlZCksIGRlY29kZWQpCi1AQCAtNDA2LDcgKzQwNiw3IEBAIGNsYXNzIFJvbGUoRGlyZWN0aXZl KToKLSAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZS5wYXJzZV9kaXJlY3RpdmVfYmxvY2soCi0g ICAgICAgICAgICAgICAgIHNlbGYuY29udGVudFsxOl0sIHNlbGYuY29udGVudF9vZmZzZXQsIGNv bnZlcnRlZF9yb2xlLAotICAgICAgICAgICAgICAgICBvcHRpb25fcHJlc2V0cz17fSkpCi0tICAg ICAgICBleGNlcHQgc3RhdGVzLk1hcmt1cEVycm9yLCBkZXRhaWw6Ci0rICAgICAgICBleGNlcHQg c3RhdGVzLk1hcmt1cEVycm9yIGFzIGRldGFpbDoKLSAgICAgICAgICAgICBlcnJvciA9IHNlbGYu c3RhdGVfbWFjaGluZS5yZXBvcnRlci5lcnJvcigKLSAgICAgICAgICAgICAgICAgJ0Vycm9yIGlu ICIlcyIgZGlyZWN0aXZlOlxuJXMuJyAlIChzZWxmLm5hbWUsIGRldGFpbCksCi0gICAgICAgICAg ICAgICAgIG5vZGVzLmxpdGVyYWxfYmxvY2soc2VsZi5ibG9ja190ZXh0LCBzZWxmLmJsb2NrX3Rl eHQpLAotQEAgLTQxNSw3ICs0MTUsNyBAQCBjbGFzcyBSb2xlKERpcmVjdGl2ZSk6Ci0gICAgICAg ICBpZiAnY2xhc3MnIG5vdCBpbiBvcHRpb25zOgotICAgICAgICAgICAgIHRyeToKLSAgICAgICAg ICAgICAgICAgb3B0aW9uc1snY2xhc3MnXSA9IGRpcmVjdGl2ZXMuY2xhc3Nfb3B0aW9uKG5ld19y b2xlX25hbWUpCi0tICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGRldGFpbDoKLSsgICAg ICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBkZXRhaWw6Ci0gICAgICAgICAgICAgICAgIGVy cm9yID0gc2VsZi5zdGF0ZV9tYWNoaW5lLnJlcG9ydGVyLmVycm9yKAotICAgICAgICAgICAgICAg ICAgICAgdSdJbnZhbGlkIGFyZ3VtZW50IGZvciAiJXMiIGRpcmVjdGl2ZTpcbiVzLicKLSAgICAg ICAgICAgICAgICAgICAgICUgKHNlbGYubmFtZSwgU2FmZVN0cmluZyhkZXRhaWwpKSwgbm9kZXMu bGl0ZXJhbF9ibG9jaygKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3Rp dmVzL3RhYmxlcy5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5 Ci1pbmRleCA4M2I3YjUzLi5iMGE0ZWFjIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9y c3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVj dGl2ZXMvdGFibGVzLnB5Ci1AQCAtMjU5LDkgKzI1OSw5IEBAIGNsYXNzIENTVlRhYmxlKFRhYmxl KToKLSAgICAgICAgICAgICBjb2xfd2lkdGhzID0gc2VsZi5nZXRfY29sdW1uX3dpZHRocyhtYXhf Y29scykKLSAgICAgICAgICAgICBzZWxmLmV4dGVuZF9zaG9ydF9yb3dzX3dpdGhfZW1wdHlfY2Vs bHMobWF4X2NvbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh0YWJsZV9oZWFkLCB0YWJsZV9ib2R5KSkKLS0gICAgICAgIGV4Y2VwdCBTeXN0 ZW1NZXNzYWdlUHJvcGFnYXRpb24sIGRldGFpbDoKLSsgICAgICAgIGV4Y2VwdCBTeXN0ZW1NZXNz YWdlUHJvcGFnYXRpb24gYXMgZGV0YWlsOgotICAgICAgICAgICAgIHJldHVybiBbZGV0YWlsLmFy Z3NbMF1dCi0tICAgICAgICBleGNlcHQgY3N2LkVycm9yLCBkZXRhaWw6Ci0rICAgICAgICBleGNl cHQgY3N2LkVycm9yIGFzIGRldGFpbDoKLSAgICAgICAgICAgICBtZXNzYWdlID0gc3RyKGRldGFp bCkKLSAgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKSBhbmQgJzEtY2hhcmFj dGVyIHN0cmluZycgaW4gbWVzc2FnZToKLSAgICAgICAgICAgICAgICAgbWVzc2FnZSArPSAnXG53 aXRoIFB5dGhvbiAyLnggdGhpcyBtdXN0IGJlIGFuIEFTQ0lJIGNoYXJhY3Rlci4nCi1AQCAtMzIw LDcgKzMyMCw3IEBAIGNsYXNzIENTVlRhYmxlKFRhYmxlKToKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9ZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2hhbmRsZXI9ZXJyb3JfaGFuZGxlcikKLSAg ICAgICAgICAgICAgICAgY3N2X2RhdGEgPSBjc3ZfZmlsZS5yZWFkKCkuc3BsaXRsaW5lcygpCi0t ICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IsIGVycm9yOgotKyAgICAgICAgICAgIGV4Y2VwdCBJ T0Vycm9yIGFzIGVycm9yOgotICAgICAgICAgICAgICAgICBzZXZlcmUgPSBzZWxmLnN0YXRlX21h Y2hpbmUucmVwb3J0ZXIuc2V2ZXJlKAotICAgICAgICAgICAgICAgICAgICAgdSdQcm9ibGVtcyB3 aXRoICIlcyIgZGlyZWN0aXZlIHBhdGg6XG4lcy4nCi0gICAgICAgICAgICAgICAgICAgICAlIChz ZWxmLm5hbWUsIFNhZmVTdHJpbmcoZXJyb3IpKSwKLUBAIC0zMzYsNyArMzM2LDcgQEAgY2xhc3Mg Q1NWVGFibGUoVGFibGUpOgotICAgICAgICAgICAgIHNvdXJjZSA9IHNlbGYub3B0aW9uc1sndXJs J10KLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIGNzdl90ZXh0ID0gdXJsbGli Mi51cmxvcGVuKHNvdXJjZSkucmVhZCgpCi0tICAgICAgICAgICAgZXhjZXB0ICh1cmxsaWIyLlVS TEVycm9yLCBJT0Vycm9yLCBPU0Vycm9yLCBWYWx1ZUVycm9yKSwgZXJyb3I6Ci0rICAgICAgICAg ICAgZXhjZXB0ICh1cmxsaWIyLlVSTEVycm9yLCBJT0Vycm9yLCBPU0Vycm9yLCBWYWx1ZUVycm9y KSBhcyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgc2V2ZXJlID0gc2VsZi5zdGF0ZV9tYWNoaW5l LnJlcG9ydGVyLnNldmVyZSgKLSAgICAgICAgICAgICAgICAgICAgICAgJ1Byb2JsZW1zIHdpdGgg IiVzIiBkaXJlY3RpdmUgVVJMICIlcyI6XG4lcy4nCi0gICAgICAgICAgICAgICAgICAgICAgICUg KHNlbGYubmFtZSwgc2VsZi5vcHRpb25zWyd1cmwnXSwgU2FmZVN0cmluZyhlcnJvcikpLAotQEAg LTQyNCw3ICs0MjQsNyBAQCBjbGFzcyBMaXN0VGFibGUoVGFibGUpOgotICAgICAgICAgICAgIGhl YWRlcl9yb3dzID0gc2VsZi5vcHRpb25zLmdldCgnaGVhZGVyLXJvd3MnLCAwKQotICAgICAgICAg ICAgIHN0dWJfY29sdW1ucyA9IHNlbGYub3B0aW9ucy5nZXQoJ3N0dWItY29sdW1ucycsIDApCi0g ICAgICAgICAgICAgc2VsZi5jaGVja190YWJsZV9kaW1lbnNpb25zKHRhYmxlX2RhdGEsIGhlYWRl cl9yb3dzLCBzdHViX2NvbHVtbnMpCi0tICAgICAgICBleGNlcHQgU3lzdGVtTWVzc2FnZVByb3Bh Z2F0aW9uLCBkZXRhaWw6Ci0rICAgICAgICBleGNlcHQgU3lzdGVtTWVzc2FnZVByb3BhZ2F0aW9u IGFzIGRldGFpbDoKLSAgICAgICAgICAgICByZXR1cm4gW2RldGFpbC5hcmdzWzBdXQotICAgICAg ICAgdGFibGVfbm9kZSA9IHNlbGYuYnVpbGRfdGFibGVfZnJvbV9saXN0KHRhYmxlX2RhdGEsIGNv bF93aWR0aHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaGVhZGVyX3Jvd3MsIHN0dWJfY29sdW1ucykKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJz ZXJzL3JzdC9yb2xlcy5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3JvbGVzLnB5Ci1pbmRleCBi Zjc4NmI3Li40OWI2MWRjIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3Qvcm9sZXMu cHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3JvbGVzLnB5Ci1AQCAtMTA5LDcgKzEwOSw3 IEBAIGRlZiByb2xlKHJvbGVfbmFtZSwgbGFuZ3VhZ2VfbW9kdWxlLCBsaW5lbm8sIHJlcG9ydGVy KToKLSAgICAgICAgIGNhbm9uaWNhbG5hbWUgPSBOb25lCi0gICAgICAgICB0cnk6Ci0gICAgICAg ICAgICAgY2Fub25pY2FsbmFtZSA9IGxhbmd1YWdlX21vZHVsZS5yb2xlc1tub3JtbmFtZV0KLS0g ICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciwgZXJyb3I6Ci0rICAgICAgICBleGNlcHQgQXR0 cmlidXRlRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICAgICAgbXNnX3RleHQuYXBwZW5kKCdQcm9i bGVtIHJldHJpZXZpbmcgcm9sZSBlbnRyeSBmcm9tIGxhbmd1YWdlICcKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ21vZHVsZSAlcjogJXMuJyAlIChsYW5ndWFnZV9tb2R1bGUsIGVycm9y KSkKLSAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLUBAIC0zMzMsNyArMzMzLDcgQEAgZGVmIGNv ZGVfcm9sZShyb2xlLCByYXd0ZXh0LCB0ZXh0LCBsaW5lbm8sIGlubGluZXIsIG9wdGlvbnM9e30s IGNvbnRlbnQ9W10pOgotICAgICB0cnk6Ci0gICAgICAgICB0b2tlbnMgPSBMZXhlcih1dGlscy51 bmVzY2FwZSh0ZXh0LCBUcnVlKSwgbGFuZ3VhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBp bmxpbmVyLmRvY3VtZW50LnNldHRpbmdzLnN5bnRheF9oaWdobGlnaHQpCi0tICAgIGV4Y2VwdCBM ZXhlckVycm9yLCBlcnJvcjoKLSsgICAgZXhjZXB0IExleGVyRXJyb3IgYXMgZXJyb3I6Ci0gICAg ICAgICBtc2cgPSBpbmxpbmVyLnJlcG9ydGVyLndhcm5pbmcoZXJyb3IpCi0gICAgICAgICBwcmIg PSBpbmxpbmVyLnByb2JsZW1hdGljKHJhd3RleHQsIHJhd3RleHQsIG1zZykKLSAgICAgICAgIHJl dHVybiBbcHJiXSwgW21zZ10KLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0 ZXMucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkKLWluZGV4IGEyOTcwYzguLmM5 YjRmYTMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkKLSsrKyBi L2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weQotQEAgLTE0OTcsNyArMTQ5Nyw3IEBAIGNs YXNzIEJvZHkoUlNUU3RhdGUpOgotICAgICAgICAgKG9wdGlvbmxpc3Quc291cmNlLCBvcHRpb25s aXN0LmxpbmUpID0gc2VsZi5zdGF0ZV9tYWNoaW5lLmdldF9zb3VyY2VfYW5kX2xpbmUoKQotICAg ICAgICAgdHJ5OgotICAgICAgICAgICAgIGxpc3RpdGVtLCBibGFua19maW5pc2ggPSBzZWxmLm9w dGlvbl9saXN0X2l0ZW0obWF0Y2gpCi0tICAgICAgICBleGNlcHQgTWFya3VwRXJyb3IsIGVycm9y OgotKyAgICAgICAgZXhjZXB0IE1hcmt1cEVycm9yIGFzIGVycm9yOgotICAgICAgICAgICAgICMg VGhpcyBzaG91bGRuJ3QgaGFwcGVuOyBwYXR0ZXJuIHdvbid0IG1hdGNoLgotICAgICAgICAgICAg IG1zZyA9IHNlbGYucmVwb3J0ZXIuZXJyb3IodSdJbnZhbGlkIG9wdGlvbiBsaXN0IG1hcmtlcjog JXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKQotQEAg LTE2ODYsNyArMTY4Niw3IEBAIGNsYXNzIEJvZHkoUlNUU3RhdGUpOgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKyAxKQotICAgICAgICAgICAgICAgICB0YWJsZSA9IHNlbGYuYnVpbGRf dGFibGUodGFibGVkYXRhLCB0YWJsZWxpbmUpCi0gICAgICAgICAgICAgICAgIG5vZGVsaXN0ID0g W3RhYmxlXSArIG1lc3NhZ2VzCi0tICAgICAgICAgICAgZXhjZXB0IHRhYmxlcGFyc2VyLlRhYmxl TWFya3VwRXJyb3IsIGVycjoKLSsgICAgICAgICAgICBleGNlcHQgdGFibGVwYXJzZXIuVGFibGVN YXJrdXBFcnJvciBhcyBlcnI6Ci0gICAgICAgICAgICAgICAgIG5vZGVsaXN0ID0gc2VsZi5tYWxm b3JtZWRfdGFibGUoYmxvY2ssICcgJy5qb2luKGVyci5hcmdzKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ9ZXJyLm9mZnNldCkgKyBtZXNz YWdlcwotICAgICAgICAgZWxzZToKLUBAIC0xNjk4LDcgKzE2OTgsNyBAQCBjbGFzcyBCb2R5KFJT VFN0YXRlKToKLSAgICAgICAgIGJsYW5rX2ZpbmlzaCA9IDEKLSAgICAgICAgIHRyeToKLSAgICAg ICAgICAgICBibG9jayA9IHNlbGYuc3RhdGVfbWFjaGluZS5nZXRfdGV4dF9ibG9jayhmbHVzaF9s ZWZ0PVRydWUpCi0tICAgICAgICBleGNlcHQgc3RhdGVtYWNoaW5lLlVuZXhwZWN0ZWRJbmRlbnRh dGlvbkVycm9yLCBlcnI6Ci0rICAgICAgICBleGNlcHQgc3RhdGVtYWNoaW5lLlVuZXhwZWN0ZWRJ bmRlbnRhdGlvbkVycm9yIGFzIGVycjoKLSAgICAgICAgICAgICBibG9jaywgc3JjLCBzcmNsaW5l ID0gZXJyLmFyZ3MKLSAgICAgICAgICAgICBtZXNzYWdlcy5hcHBlbmQoc2VsZi5yZXBvcnRlci5l cnJvcignVW5leHBlY3RlZCBpbmRlbnRhdGlvbi4nLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZT1zcmMsIGxpbmU9c3JjbGluZSkpCi1AQCAt MjEzNSw3ICsyMTM1LDcgQEAgY2xhc3MgQm9keShSU1RTdGF0ZSk6Ci0gICAgICAgICAgICAgYXJn dW1lbnRzLCBvcHRpb25zLCBjb250ZW50LCBjb250ZW50X29mZnNldCA9ICgKLSAgICAgICAgICAg ICAgICAgc2VsZi5wYXJzZV9kaXJlY3RpdmVfYmxvY2soaW5kZW50ZWQsIGxpbmVfb2Zmc2V0LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmUsIG9w dGlvbl9wcmVzZXRzKSkKLS0gICAgICAgIGV4Y2VwdCBNYXJrdXBFcnJvciwgZGV0YWlsOgotKyAg ICAgICAgZXhjZXB0IE1hcmt1cEVycm9yIGFzIGRldGFpbDoKLSAgICAgICAgICAgICBlcnJvciA9 IHNlbGYucmVwb3J0ZXIuZXJyb3IoCi0gICAgICAgICAgICAgICAgICdFcnJvciBpbiAiJXMiIGRp cmVjdGl2ZTpcbiVzLicgJSAodHlwZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcgJy5qb2luKGRldGFpbC5hcmdzKSksCi1AQCAtMjE0 Niw3ICsyMTQ2LDcgQEAgY2xhc3MgQm9keShSU1RTdGF0ZSk6Ci0gICAgICAgICAgICAgY29udGVu dF9vZmZzZXQsIGJsb2NrX3RleHQsIHNlbGYsIHNlbGYuc3RhdGVfbWFjaGluZSkKLSAgICAgICAg IHRyeToKLSAgICAgICAgICAgICByZXN1bHQgPSBkaXJlY3RpdmVfaW5zdGFuY2UucnVuKCkKLS0g ICAgICAgIGV4Y2VwdCBkb2N1dGlscy5wYXJzZXJzLnJzdC5EaXJlY3RpdmVFcnJvciwgZXJyb3I6 Ci0rICAgICAgICBleGNlcHQgZG9jdXRpbHMucGFyc2Vycy5yc3QuRGlyZWN0aXZlRXJyb3IgYXMg ZXJyb3I6Ci0gICAgICAgICAgICAgbXNnX25vZGUgPSBzZWxmLnJlcG9ydGVyLnN5c3RlbV9tZXNz YWdlKGVycm9yLmxldmVsLCBlcnJvci5tc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU9bGluZW5vKQotICAgICAgICAgICAgIG1zZ19u b2RlICs9IG5vZGVzLmxpdGVyYWxfYmxvY2soYmxvY2tfdGV4dCwgYmxvY2tfdGV4dCkKLUBAIC0y MjYzLDExICsyMjYzLDExIEBAIGNsYXNzIEJvZHkoUlNUU3RhdGUpOgotICAgICAgICAgICAgIHJl dHVybiAwLCAnaW52YWxpZCBvcHRpb24gYmxvY2snCi0gICAgICAgICB0cnk6Ci0gICAgICAgICAg ICAgb3B0aW9ucyA9IHV0aWxzLmV4dHJhY3RfZXh0ZW5zaW9uX29wdGlvbnMobm9kZSwgb3B0aW9u X3NwZWMpCi0tICAgICAgICBleGNlcHQgS2V5RXJyb3IsIGRldGFpbDoKLSsgICAgICAgIGV4Y2Vw dCBLZXlFcnJvciBhcyBkZXRhaWw6Ci0gICAgICAgICAgICAgcmV0dXJuIDAsICgndW5rbm93biBv cHRpb246ICIlcyInICUgZGV0YWlsLmFyZ3NbMF0pCi0tICAgICAgICBleGNlcHQgKFZhbHVlRXJy b3IsIFR5cGVFcnJvciksIGRldGFpbDoKLSsgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlw ZUVycm9yKSBhcyBkZXRhaWw6Ci0gICAgICAgICAgICAgcmV0dXJuIDAsICgnaW52YWxpZCBvcHRp b24gdmFsdWU6ICVzJyAlICcgJy5qb2luKGRldGFpbC5hcmdzKSkKLS0gICAgICAgIGV4Y2VwdCB1 dGlscy5FeHRlbnNpb25PcHRpb25FcnJvciwgZGV0YWlsOgotKyAgICAgICAgZXhjZXB0IHV0aWxz LkV4dGVuc2lvbk9wdGlvbkVycm9yIGFzIGRldGFpbDoKLSAgICAgICAgICAgICByZXR1cm4gMCwg KCdpbnZhbGlkIG9wdGlvbiBkYXRhOiAlcycgJSAnICcuam9pbihkZXRhaWwuYXJncykpCi0gICAg ICAgICBpZiBibGFua19maW5pc2g6Ci0gICAgICAgICAgICAgcmV0dXJuIDEsIG9wdGlvbnMKLUBA IC0yMzU0LDcgKzIzNTQsNyBAQCBjbGFzcyBCb2R5KFJTVFN0YXRlKToKLSAgICAgICAgICAgICBp ZiBleHBtYXRjaDoKLSAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIG1ldGhvZChzZWxmLCBleHBtYXRjaCkKLS0gICAgICAgICAgICAgICAgZXhjZXB0IE1h cmt1cEVycm9yLCBlcnJvcjoKLSsgICAgICAgICAgICAgICAgZXhjZXB0IE1hcmt1cEVycm9yIGFz IGVycm9yOgotICAgICAgICAgICAgICAgICAgICAgbGluZW5vID0gc2VsZi5zdGF0ZV9tYWNoaW5l LmFic19saW5lX251bWJlcigpCi0gICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gJyAnLmpv aW4oZXJyb3IuYXJncykKLSAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoc2VsZi5y ZXBvcnRlci53YXJuaW5nKG1lc3NhZ2UsIGxpbmU9bGluZW5vKSkKLUBAIC0yNzc3LDcgKzI3Nzcs NyBAQCBjbGFzcyBUZXh0KFJTVFN0YXRlKToKLSAgICAgICAgIG1zZyA9IE5vbmUKLSAgICAgICAg IHRyeToKLSAgICAgICAgICAgICBibG9jayA9IHNlbGYuc3RhdGVfbWFjaGluZS5nZXRfdGV4dF9i bG9jayhmbHVzaF9sZWZ0PVRydWUpCi0tICAgICAgICBleGNlcHQgc3RhdGVtYWNoaW5lLlVuZXhw ZWN0ZWRJbmRlbnRhdGlvbkVycm9yLCBlcnI6Ci0rICAgICAgICBleGNlcHQgc3RhdGVtYWNoaW5l LlVuZXhwZWN0ZWRJbmRlbnRhdGlvbkVycm9yIGFzIGVycjoKLSAgICAgICAgICAgICBibG9jaywg c3JjLCBzcmNsaW5lID0gZXJyLmFyZ3MKLSAgICAgICAgICAgICBtc2cgPSBzZWxmLnJlcG9ydGVy LmVycm9yKCdVbmV4cGVjdGVkIGluZGVudGF0aW9uLicsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzb3VyY2U9c3JjLCBsaW5lPXNyY2xpbmUpCi1kaWZmIC0tZ2l0IGEv ZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5IGIvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5Ci1pbmRl eCA2NzE0YTA0Li42YTIzMjJjIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5 Ci0rKysgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLUBAIC0yNDgsNyArMjQ4LDcgQEAgY2xh c3MgU3RhdGVNYWNoaW5lKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsK LSAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVz dWx0cy5leHRlbmQocmVzdWx0KQotLSAgICAgICAgICAgICAgICBleGNlcHQgVHJhbnNpdGlvbkNv cnJlY3Rpb24sIGV4Y2VwdGlvbjoKLSsgICAgICAgICAgICAgICAgZXhjZXB0IFRyYW5zaXRpb25D b3JyZWN0aW9uIGFzIGV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJldmlv dXNfbGluZSgpICMgYmFjayB1cCBmb3IgYW5vdGhlciB0cnkKLSAgICAgICAgICAgICAgICAgICAg IHRyYW5zaXRpb25zID0gKGV4Y2VwdGlvbi5hcmdzWzBdLCkKLSAgICAgICAgICAgICAgICAgICAg IGlmIHNlbGYuZGVidWc6Ci1AQCAtMjU3LDcgKzI1Nyw3IEBAIGNsYXNzIFN0YXRlTWFjaGluZShv YmplY3QpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0ZSAiJXMiLCB0cmFu c2l0aW9uICVzLicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzdGF0ZS5fX2Ns YXNzX18uX19uYW1lX18sIHRyYW5zaXRpb25zWzBdKSksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAg ICAgICAgICAgICAgICAgICAgY29udGludWUKLS0gICAgICAgICAgICAgICAgZXhjZXB0IFN0YXRl Q29ycmVjdGlvbiwgZXhjZXB0aW9uOgotKyAgICAgICAgICAgICAgICBleGNlcHQgU3RhdGVDb3Jy ZWN0aW9uIGFzIGV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJldmlvdXNf bGluZSgpICMgYmFjayB1cCBmb3IgYW5vdGhlciB0cnkKLSAgICAgICAgICAgICAgICAgICAgIG5l eHRfc3RhdGUgPSBleGNlcHRpb24uYXJnc1swXQotICAgICAgICAgICAgICAgICAgICAgaWYgbGVu KGV4Y2VwdGlvbi5hcmdzKSA9PSAxOgotQEAgLTQxMyw3ICs0MTMsNyBAQCBjbGFzcyBTdGF0ZU1h Y2hpbmUob2JqZWN0KToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmx1c2hfbGVmdCkKLSAgICAgICAgICAgICBzZWxmLm5leHRfbGluZShsZW4o YmxvY2spIC0gMSkKLSAgICAgICAgICAgICByZXR1cm4gYmxvY2sKLS0gICAgICAgIGV4Y2VwdCBV bmV4cGVjdGVkSW5kZW50YXRpb25FcnJvciwgZXJyOgotKyAgICAgICAgZXhjZXB0IFVuZXhwZWN0 ZWRJbmRlbnRhdGlvbkVycm9yIGFzIGVycjoKLSAgICAgICAgICAgICBibG9jayA9IGVyci5hcmdz WzBdCi0gICAgICAgICAgICAgc2VsZi5uZXh0X2xpbmUobGVuKGJsb2NrKSAtIDEpICMgYWR2YW5j ZSB0byBsYXN0IGxpbmUgb2YgYmxvY2sKLSAgICAgICAgICAgICByYWlzZQotZGlmZiAtLWdpdCBh L2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkK LWluZGV4IDY5MjMzNWEuLmM3MWQ1MDggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9fX2lu aXRfXy5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkKLUBAIC0zMjYsNyArMzI2 LDcgQEAgZGVmIGFzc2VtYmxlX29wdGlvbl9kaWN0KG9wdGlvbl9saXN0LCBvcHRpb25zX3NwZWMp OgotICAgICAgICAgICAgIHJhaXNlIER1cGxpY2F0ZU9wdGlvbkVycm9yKCdkdXBsaWNhdGUgb3B0 aW9uICIlcyInICUgbmFtZSkKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBvcHRpb25zW25h bWVdID0gY29udmVydG9yKHZhbHVlKQotLSAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBUeXBl RXJyb3IpLCBkZXRhaWw6Ci0rICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcikg YXMgZGV0YWlsOgotICAgICAgICAgICAgIHJhaXNlIGRldGFpbC5fX2NsYXNzX18oJyhvcHRpb246 ICIlcyI7IHZhbHVlOiAlcilcbiVzJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJSAobmFtZSwgdmFsdWUsICcgJy5qb2luKGRldGFpbC5hcmdzKSkpCi0gICAgIHJldHVybiBv cHRpb25zCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5IGIv ZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5Ci1pbmRleCAwMmU2MmViLi44ZWE3MTA4 IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5Ci0rKysgYi9k b2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLUBAIC00OSw3ICs0OSw3IEBAIGVsc2U6 Ci0gICAgICAgICAjIGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZyhbZG9fc2V0bG9jYWxlPVRy dWV8RmFsc2VdKQotICAgICAgICAgIyBoYXMgc2lkZS1lZmZlY3RzIHwgbWlnaHQgcmV0dXJuIGEg d3JvbmcgZ3Vlc3MuCi0gICAgICAgICAjIChjZi4gVXBkYXRlIDEgaW4gaHR0cDovL3N0YWNrb3Zl cmZsb3cuY29tL3F1ZXN0aW9ucy80MDgyNjQ1L3VzaW5nLXB5dGhvbi0yLXhzLWxvY2FsZS1tb2R1 bGUtdG8tZm9ybWF0LW51bWJlcnMtYW5kLWN1cnJlbmN5KQotLSAgICBleGNlcHQgVmFsdWVFcnJv ciwgZXJyb3I6ICMgT1MgWCBtYXkgc2V0IFVURi04IHdpdGhvdXQgbGFuZ3VhZ2UgY29kZQotKyAg ICBleGNlcHQgVmFsdWVFcnJvciBhcyBlcnJvcjogIyBPUyBYIG1heSBzZXQgVVRGLTggd2l0aG91 dCBsYW5ndWFnZSBjb2RlCi0gICAgICAgICAjIHNlZSBodHRwOi8vYnVncy5weXRob24ub3JnL2lz c3VlMTgzNzgKLSAgICAgICAgICMgYW5kIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3AvZG9jdXRp bHMvYnVncy8yOTgvCi0gICAgICAgICBpZiAidW5rbm93biBsb2NhbGU6IFVURi04IiBpbiBlcnJv ci5hcmdzOgotQEAgLTExMyw3ICsxMTMsNyBAQCBjbGFzcyBTYWZlU3RyaW5nKG9iamVjdCk6Ci0g ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmRhdGEsIEVudmlyb25tZW50RXJyb3IpOgot ICAgICAgICAgICAgICAgICB1ID0gdS5yZXBsYWNlKCI6IHUnIiwgIjogJyIpICMgbm9ybWFsaXpl IGZpbGVuYW1lIHF1b3RpbmcKLSAgICAgICAgICAgICByZXR1cm4gdQotLSAgICAgICAgZXhjZXB0 IFVuaWNvZGVFcnJvciwgZXJyb3I6ICMgY2F0Y2ggLi5FbmNvZGUuLiBhbmQgLi5EZWNvZGUuLiBl cnJvcnMKLSsgICAgICAgIGV4Y2VwdCBVbmljb2RlRXJyb3IgYXMgZXJyb3I6ICMgY2F0Y2ggLi5F bmNvZGUuLiBhbmQgLi5EZWNvZGUuLiBlcnJvcnMKLSAgICAgICAgICAgICBpZiBpc2luc3RhbmNl KHNlbGYuZGF0YSwgRW52aXJvbm1lbnRFcnJvcik6Ci0gICAgICAgICAgICAgICAgIHJldHVybiAg dSJbRXJybm8gJXNdICVzOiAnJXMnIiAlIChzZWxmLmRhdGEuZXJybm8sCi0gICAgICAgICAgICAg ICAgICAgICBTYWZlU3RyaW5nKHNlbGYuZGF0YS5zdHJlcnJvciwgc2VsZi5lbmNvZGluZywKLWRp ZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkgYi9kb2N1dGlscy93cml0 ZXJzL19odG1sX2Jhc2UucHkKLWluZGV4IGZhMjc5MTEuLjIzZWZlZWEgMTAwNjQ0Ci0tLS0gYS9k b2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvX2h0 bWxfYmFzZS5weQotQEAgLTMwMiw3ICszMDIsNyBAQCBjbGFzcyBIVE1MVHJhbnNsYXRvcihub2Rl cy5Ob2RlVmlzaXRvcik6Ci0gICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBpby5GaWxlSW5wdXQo c291cmNlX3BhdGg9cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbmNvZGluZz0ndXRmLTgnKS5yZWFkKCkKLSAgICAgICAgICAgICAgICAgc2VsZi5zZXR0aW5n cy5yZWNvcmRfZGVwZW5kZW5jaWVzLmFkZChwYXRoKQotLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vy cm9yLCBlcnI6Ci0rICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgotICAgICAgICAg ICAgICAgICBtc2cgPSB1IkNhbm5vdCBlbWJlZCBzdHlsZXNoZWV0ICclcyc6ICVzLiIgJSAoCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBTYWZlU3RyaW5nKGVyci5zdHJl cnJvcikpCi0gICAgICAgICAgICAgICAgIHNlbGYuZG9jdW1lbnQucmVwb3J0ZXIuZXJyb3IobXNn KQotQEAgLTExNTksNyArMTE1OSw3IEBAIGNsYXNzIEhUTUxUcmFuc2xhdG9yKG5vZGVzLk5vZGVW aXNpdG9yKToKLSAgICAgICAgICAgICAgICAgICAgICd3aXRoIG1hdGgtb3V0cHV0ICJNYXRoTUwi JykKLSAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgIHJh aXNlIE9TRXJyb3IoJ2lzICJsYXRleG1sbWF0aCIgaW4geW91ciBQQVRIPycpCi0tICAgICAgICAg ICAgZXhjZXB0IFN5bnRheEVycm9yLCBlcnI6Ci0rICAgICAgICAgICAgZXhjZXB0IFN5bnRheEVy cm9yIGFzIGVycjoKLSAgICAgICAgICAgICAgICAgZXJyX25vZGUgPSBzZWxmLmRvY3VtZW50LnJl cG9ydGVyLmVycm9yKGVyciwgYmFzZV9ub2RlPW5vZGUpCi0gICAgICAgICAgICAgICAgIHNlbGYu dmlzaXRfc3lzdGVtX21lc3NhZ2UoZXJyX25vZGUpCi0gICAgICAgICAgICAgICAgIHNlbGYuYm9k eS5hcHBlbmQoc2VsZi5zdGFydHRhZyhub2RlLCAncCcpKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxz L3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwu cHkKLWluZGV4IDE0ODA0MWEuLmU4NzBlZTEgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJz L2RvY3V0aWxzX3htbC5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkK LUBAIC0xODYsNyArMTg2LDcgQEAgY2xhc3MgWE1MVHJhbnNsYXRvcihub2Rlcy5HZW5lcmljTm9k ZVZpc2l0b3IpOgotICAgICAgICAgICAgIHhtbF9zdHJpbmcgPSB4bWxfc3RyaW5nLmVuY29kZSgn dXRmOCcpCi0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgc2VsZi54bWxwYXJzZXIucGFyc2Uo U3RyaW5nSU8oeG1sX3N0cmluZykpCi0tICAgICAgICBleGNlcHQgeG1sLnNheC5fZXhjZXB0aW9u cy5TQVhQYXJzZUV4Y2VwdGlvbiwgZXJyb3I6Ci0rICAgICAgICBleGNlcHQgeG1sLnNheC5fZXhj ZXB0aW9ucy5TQVhQYXJzZUV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgICAgICBjb2xfbnVt ID0gc2VsZi50aGVfaGFuZGxlLmxvY2F0b3IuZ2V0Q29sdW1uTnVtYmVyKCkKLSAgICAgICAgICAg ICBsaW5lX251bSA9ICBzZWxmLnRoZV9oYW5kbGUubG9jYXRvci5nZXRMaW5lTnVtYmVyKCkKLSAg ICAgICAgICAgICBzcmNsaW5lID0gbm9kZS5saW5lCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3Jp dGVycy9sYXRleDJlL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5p dF9fLnB5Ci1pbmRleCA1YzMzZDBhLi41ZWFhN2YwIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3Jp dGVycy9sYXRleDJlL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUv X19pbml0X18ucHkKLUBAIC0xNDE2LDcgKzE0MTYsNyBAQCBjbGFzcyBMYVRlWFRyYW5zbGF0b3Io bm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAgICAgICBjb250ZW50ID0gaW8uRmlsZUlu cHV0KHNvdXJjZV9wYXRoPXBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW5jb2Rpbmc9J3V0Zi04JykucmVhZCgpCi0gICAgICAgICAgICAgICAgIHNlbGYuc2V0 dGluZ3MucmVjb3JkX2RlcGVuZGVuY2llcy5hZGQocGF0aCkKLS0gICAgICAgICAgICBleGNlcHQg SU9FcnJvciwgZXJyOgotKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycjoKLSAgICAg ICAgICAgICAgICAgbXNnID0gdSJDYW5ub3QgZW1iZWQgc3R5bGVzaGVldCAnJXMnOlxuICAlcy4i ICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgU2FmZVN0cmluZyhl cnIuc3RyZXJyb3IpKQotICAgICAgICAgICAgICAgICBzZWxmLmRvY3VtZW50LnJlcG9ydGVyLmVy cm9yKG1zZykKLWRpZmYgLS1naXQgYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgYi90ZXN0 L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLWluZGV4IDI1MTk2ZWMuLmU3NzQ0N2EgMTAwNjQ0Ci0t LS0gYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLSsrKyBiL3Rlc3QvRG9jdXRpbHNUZXN0 U3VwcG9ydC5weQotQEAgLTIzMCw3ICsyMzAsNyBAQCBjbGFzcyBDdXN0b21UZXN0Q2FzZShTdGFu ZGFyZFRlc3RDYXNlKToKLSAgICAgICAgICAgICBvdXRwdXQgPSAnXG4nLmpvaW4ob3V0cHV0LnNw bGl0bGluZXMoKSkKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs KG91dHB1dCwgZXhwZWN0ZWQpCi0tICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3IsIGVycm9y OgotKyAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yIGFzIGVycm9yOgotICAgICAgICAgICAg IHByaW50KCdcbiVzXG5pbnB1dDonICUgKHNlbGYsKSwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAg ICAgICAgIHByaW50KGlucHV0LCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICAgICAgdHJ5Ogot QEAgLTU0Myw3ICs1NDMsNyBAQCBjbGFzcyBHcmlkVGFibGVQYXJzZXJUZXN0Q2FzZShDdXN0b21U ZXN0Q2FzZSk6Ci0gICAgICAgICAgICAgc2VsZi5wYXJzZXIuZmluZF9oZWFkX2JvZHlfc2VwKCkK LSAgICAgICAgICAgICBzZWxmLnBhcnNlci5wYXJzZV90YWJsZSgpCi0gICAgICAgICAgICAgb3V0 cHV0ID0gc2VsZi5wYXJzZXIuY2VsbHMKLS0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGRldGFp bHM6Ci0rICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGRldGFpbHM6Ci0gICAgICAgICAgICAg b3V0cHV0ID0gJyVzOiAlcycgJSAoZGV0YWlscy5fX2NsYXNzX18uX19uYW1lX18sIGRldGFpbHMp Ci0gICAgICAgICBzZWxmLmNvbXBhcmVfb3V0cHV0KHNlbGYuaW5wdXQsIHBmb3JtYXQob3V0cHV0 KSArICdcbicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBmb3JtYXQoc2VsZi5leHBl Y3RlZCkgKyAnXG4nKQotQEAgLTU1Miw3ICs1NTIsNyBAQCBjbGFzcyBHcmlkVGFibGVQYXJzZXJU ZXN0Q2FzZShDdXN0b21UZXN0Q2FzZSk6Ci0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgb3V0 cHV0ID0gc2VsZi5wYXJzZXIucGFyc2UoU3RyaW5nTGlzdChzdHJpbmcybGluZXMoc2VsZi5pbnB1 dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn dGVzdCBkYXRhJykpCi0tICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBkZXRhaWxzOgotKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBkZXRhaWxzOgotICAgICAgICAgICAgIG91dHB1dCA9ICcl czogJXMnICUgKGRldGFpbHMuX19jbGFzc19fLl9fbmFtZV9fLCBkZXRhaWxzKQotICAgICAgICAg c2VsZi5jb21wYXJlX291dHB1dChzZWxmLmlucHV0LCBwZm9ybWF0KG91dHB1dCkgKyAnXG4nLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZm9ybWF0KHNlbGYuZXhwZWN0ZWQpICsgJ1xu JykKLUBAIC04NjUsNyArODY1LDcgQEAgZGVmIGV4Y2VwdGlvbl9kYXRhKGZ1bmMsICphcmdzLCAq Kmt3ZHMpOgotICAgICAiIiIKLSAgICAgdHJ5OgotICAgICAgICAgZnVuYygqYXJncywgKiprd2Rz KQotLSAgICBleGNlcHQgRXhjZXB0aW9uLCBkZXRhaWw6Ci0rICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZGV0YWlsOgotICAgICAgICAgcmV0dXJuIChkZXRhaWwsIGRldGFpbC5hcmdzLAotICAgICAg ICAgICAgICAgICAnJXM6ICVzJyAlIChkZXRhaWwuX19jbGFzc19fLl9fbmFtZV9fLCBkZXRhaWwp KQotIAotZGlmZiAtLWdpdCBhL3Rlc3QvcGFja2FnZV91bml0dGVzdC5weSBiL3Rlc3QvcGFja2Fn ZV91bml0dGVzdC5weQotaW5kZXggZGFmMTFmNC4uMTZiMDBkYyAxMDA2NDQKLS0tLSBhL3Rlc3Qv cGFja2FnZV91bml0dGVzdC5weQotKysrIGIvdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5Ci1AQCAt NjQsNyArNjQsNyBAQCBkZWYgcGFyc2VBcmdzKGFyZ3Y9c3lzLmFyZ3YpOgotICAgICAgICAgICAg ICAgICBkZWJ1ZyA9MQotICAgICAgICAgaWYgbGVuKGFyZ3MpICE9IDA6Ci0gICAgICAgICAgICAg dXNhZ2VFeGl0KCJObyBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHN1cHBvcnRlZCB5ZXQuIikKLS0g ICAgZXhjZXB0IGdldG9wdC5lcnJvciwgbXNnOgotKyAgICBleGNlcHQgZ2V0b3B0LmVycm9yIGFz IG1zZzoKLSAgICAgICAgIHVzYWdlRXhpdChtc2cpCi0gCi0gZGVmIGxvYWRUZXN0TW9kdWxlcyhw YXRoLCBuYW1lPScnLCBwYWNrYWdlcz1Ob25lKToKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfZXJy b3JfcmVwb3J0aW5nLnB5IGIvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weQotaW5kZXggYzRl YWU0MC4uYmFlOWRiNSAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkK LSsrKyBiL3Rlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkKLUBAIC0xOSw3ICsxOSw3IEBAIGlu c3RhbmNlcyBsaWtlLCBlLmcuLCA6OgotIAotICAgdHJ5OgotICAgICBzb21ldGhpbmcKLS0gIGV4 Y2VwdCBJT0Vycm9yLCBlcnJvcjoKLSsgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycm9yOgotICAgICBw cmludCgnRm91bmQgJXMnICUgZXJyb3IpCi0gCi0gdW5sZXNzIHRoZSBtaW5pbWFsIHJlcXVpcmVk IFB5dGhvbiB2ZXJzaW9uIGhhcyB0aGlzIHByb2JsZW0gZml4ZWQuCi1AQCAtMjIzLDI5ICsyMjMs MjkgQEAgY2xhc3MgU2FmZVN0cmluZ1Rlc3RzX2xvY2FsZSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g ICAgIHVzID0gdSdceGZjJwotICAgICB0cnk6Ci0gICAgICAgICBvcGVuKGInXHhmYycpCi0tICAg IGV4Y2VwdCBJT0Vycm9yLCBlOiAjIGluIFB5dGhvbiAzIHRoZSBuYW1lIGZvciB0aGUgZXhjZXB0 aW9uIGluc3RhbmNlCi0rICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6ICMgaW4gUHl0aG9uIDMgdGhl IG5hbWUgZm9yIHRoZSBleGNlcHRpb24gaW5zdGFuY2UKLSAgICAgICAgIGJpb2UgPSBlICAgICAg ICMgaXMgbG9jYWwgdG8gdGhlIGV4Y2VwdCBjbGF1c2UKLSAgICAgdHJ5OgotICAgICAgICAgb3Bl bih1J1x4ZmMnKQotLSAgICBleGNlcHQgSU9FcnJvciwgZToKLSsgICAgZXhjZXB0IElPRXJyb3Ig YXMgZToKLSAgICAgICAgIHVpb2UgPSBlCi0gICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6 Ci0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgb3Blbih1J1x4ZmMnLmVuY29kZShzeXMuZ2V0 ZmlsZXN5c3RlbWVuY29kaW5nKCksICdyZXBsYWNlJykpCi0tICAgICAgICBleGNlcHQgSU9FcnJv ciwgZToKLSsgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICAgdWlvZSA9 IGUKLSAgICAgdHJ5OgotICAgICAgICAgb3MuY2hkaXIoYidceGZjJykKLS0gICAgZXhjZXB0IE9T RXJyb3IsIGU6Ci0rICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICBib3NlID0gZQot ICAgICB0cnk6Ci0gICAgICAgICBvcy5jaGRpcih1J1x4ZmMnKQotLSAgICBleGNlcHQgT1NFcnJv ciwgZToKLSsgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAgICAgICAgIHVvc2UgPSBlCi0gICAg IGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6Ci0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg b3MuY2hkaXIodSdceGZjJy5lbmNvZGUoc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpLCAncmVw bGFjZScpKQotLSAgICAgICAgZXhjZXB0IE9TRXJyb3IsIGU6Ci0rICAgICAgICBleGNlcHQgT1NF cnJvciBhcyBlOgotICAgICAgICAgICAgIHVvc2UgPSBlCi0gICAgICMgd3JhcHBlZCB0ZXN0IGRh dGE6Ci0gICAgIHdiaW9lID0gU2FmZVN0cmluZyhiaW9lKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVz dF9sYW5ndWFnZS5weSBiL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotaW5kZXggNzBhNDk3ZS4uMGUw NWQ0NCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotKysrIGIvdGVzdC90ZXN0 X2xhbmd1YWdlLnB5Ci1AQCAtMTQ0LDcgKzE0NCw3IEBAIGNsYXNzIExhbmd1YWdlVGVzdENhc2Uo RG9jdXRpbHNUZXN0U3VwcG9ydC5DdXN0b21UZXN0Q2FzZSk6Ci0gICAgICAgICAgICAgICAgIGZ1 bmMsIG1zZyA9IGRpcmVjdGl2ZXMuZGlyZWN0aXZlKGQsIG1vZHVsZSwgTm9uZSkKLSAgICAgICAg ICAgICAgICAgaWYgbm90IGZ1bmM6Ci0gICAgICAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBl bmQoJyIlcyI6IHVua25vd24gZGlyZWN0aXZlJyAlIGQpCi0tICAgICAgICAgICAgZXhjZXB0IEV4 Y2VwdGlvbiwgZXJyb3I6Ci0rICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoK LSAgICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKCciJXMiOiAlcycgJSAoZCwgZXJyb3Ip KQotICAgICAgICAgaW52ZXJ0ZWQgPSBzZWxmLl9pbnZlcnQobW9kdWxlLmRpcmVjdGl2ZXMpCi0g ICAgICAgICBjYW5vbmljYWwgPSBkaXJlY3RpdmVzLl9kaXJlY3RpdmVfcmVnaXN0cnkua2V5cygp Ci1AQCAtMTc5LDcgKzE3OSw3IEBAIGNsYXNzIExhbmd1YWdlVGVzdENhc2UoRG9jdXRpbHNUZXN0 U3VwcG9ydC5DdXN0b21UZXN0Q2FzZSk6Ci0gICAgICAgICAgICAgICAgIG1ldGhvZCA9IHJvbGVz Ll9yb2xlX3JlZ2lzdHJ5W2RdCi0gICAgICAgICAgICAgICAgICNpZiBub3QgbWV0aG9kOgotICAg ICAgICAgICAgICAgICAjICAgIGZhaWx1cmVzLmFwcGVuZCgnIiVzIjogdW5rbm93biByb2xlJyAl IGQpCi0tICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yLCBlcnJvcjoKLSsgICAgICAgICAgICBl eGNlcHQgS2V5RXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVu ZCgnIiVzIjogJXMnICUgKGQsIGVycm9yKSkKLSAgICAgICAgIGludmVydGVkID0gc2VsZi5faW52 ZXJ0KG1vZHVsZS5yb2xlcykKLSAgICAgICAgIGNhbm9uaWNhbCA9IHJvbGVzLl9yb2xlX3JlZ2lz dHJ5LmtleXMoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wdWJsaXNoZXIucHkgYi90ZXN0L3Rl c3RfcHVibGlzaGVyLnB5Ci1pbmRleCBmMDRlYmY3Li4wNGQ5YzcxIDEwMDc1NQotLS0tIGEvdGVz dC90ZXN0X3B1Ymxpc2hlci5weQotKysrIGIvdGVzdC90ZXN0X3B1Ymxpc2hlci5weQotQEAgLTY1 LDcgKzY1LDcgQEAgY2xhc3MgUHVibGlzaGVyVGVzdHMoRG9jdXRpbHNUZXN0U3VwcG9ydC5TdGFu ZGFyZFRlc3RDYXNlKToKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBjb3JlLnB1Ymxpc2hf Y21kbGluZShhcmd2PVsnbm9uZXhpc3RpbmcvcGF0aCddLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNldHRpbmdzX292ZXJyaWRlcz17J3RyYWNlYmFjayc6IFRydWV9 KQotLSAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6Ci0rICAgICAgICBleGNlcHQgSU9FcnJvciBh cyBlOgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGUsIGlvLklucHV0 RXJyb3IpKQotIAotIAotQEAgLTc0LDcgKzc0LDcgQEAgY2xhc3MgUHVibGlzaGVyVGVzdHMoRG9j dXRpbHNUZXN0U3VwcG9ydC5TdGFuZGFyZFRlc3RDYXNlKToKLSAgICAgICAgIHRyeToKLSAgICAg ICAgICAgICBjb3JlLnB1Ymxpc2hfY21kbGluZShhcmd2PVsnZGF0YS9pbmNsdWRlLnR4dCcsICdu b25leGlzdGluZy9wYXRoJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2V0dGluZ3Nfb3ZlcnJpZGVzPXsndHJhY2ViYWNrJzogVHJ1ZX0pCi0tICAgICAgICBleGNl cHQgSU9FcnJvciwgZToKLSsgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6Ci0gICAgICAgICAg ICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZSwgaW8uT3V0cHV0RXJyb3IpKQotIAotIAot ZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF91dGlscy5weSBiL3Rlc3QvdGVzdF91dGlscy5weQotaW5k ZXggZTFmY2M4Zi4uNTllMjljOCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF91dGlscy5weQotKysr IGIvdGVzdC90ZXN0X3V0aWxzLnB5Ci1AQCAtODgsNyArODgsNyBAQCBjbGFzcyBSZXBvcnRlclRl c3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIGFuZCBoZW5jZSBmYWlscyB3aXRoIHVu aWNvZGUgbWVzc2FnZSIiIgotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbih1J21lc2lkypInKQotLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZXJyOgotKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6Ci0gICAgICAgICAgICAgc3cgPSBzZWxmLnJlcG9y dGVyLnN5c3RlbV9tZXNzYWdlKDAsIGVycikKLSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs KHN3LnBmb3JtYXQoKSwgdSIiIlwKLSA8c3lzdGVtX21lc3NhZ2UgbGV2ZWw9IjAiIHNvdXJjZT0i dGVzdCBkYXRhIiB0eXBlPSJERUJVRyI+Ci0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA0LXB5My1BZGQt YWxpYXNlcy1mb3ItcmVtb3ZlZC1zeW1ib2xzLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRp bHMvcGF0Y2hlcy8wMDA0LXB5My1BZGQtYWxpYXNlcy1mb3ItcmVtb3ZlZC1zeW1ib2xzLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDZkOWU4NGYwYy4uMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA0LXB5My1BZGQtYWxpYXNl cy1mb3ItcmVtb3ZlZC1zeW1ib2xzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTk5ICswLDAg QEAKLUZyb20gNDQ3ZTQ4OTZjOWIyNDg3ZmIyOGMyNWY3NTY0ZWJjYjY3MzNkMjM2MyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5n dXJ1PgotRGF0ZTogVHVlLCAxOSBOb3YgMjAxOSAyMzo1MDo1MCArMDcwMAotU3ViamVjdDogW1BB VENIIDA0LzI2XSBweTM6IEFkZCBhbGlhc2VzIGZvciByZW1vdmVkIHN5bWJvbHMKLU1JTUUtVmVy c2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotQWRkIGFsaWFzZXMgZm9yIHN5bWJvbHMgdGhh dCBoYXZlIGJlZW4gcmVtb3ZlZCBpbiBQeXRob24gMy54LCBuYW1lbHkKLWJhc2VzdHJpbmcsIHVu aWNvZGUsIHVuaWNociBhbmQgU3RhbmRhcmRFcnJvci4KLQotU2lnbmVkLW9mZi1ieTogU3RlcGhl biBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1zbWFsbCBmaXhlcyBieSBHw7xudGVyIE1p bGRlLgotCi1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29k ZS90cnVua0A4MzQ4IDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVk LW9mZi1ieTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0K LSBkb2N1dGlscy9fX2luaXRfXy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQot IGRvY3V0aWxzL2Zyb250ZW5kLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsKLSBk b2N1dGlscy9pby5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArCi0gZG9j dXRpbHMvbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKystCi0gZG9j dXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weSAgIHwgIDMgKwotIGRvY3V0 aWxzL3N0YXRlbWFjaGluZS5weSAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKy0KLSBkb2N1 dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5ICAgICAgICAgICAgfCAgNiArKwotIGRvY3V0 aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5ICAgICAgICAgICAgICB8ICA1ICsrCi0gZG9jdXRp bHMvdXRpbHMvX19pbml0X18ucHkgICAgICAgICAgICAgICAgICAgIHwgIDMgKwotIGRvY3V0aWxz L3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weSAgICAgICAgICAgICB8IDEwICsrKy0KLSBkb2N1dGls cy91dGlscy9tYXRoL21hdGgyaHRtbC5weSAgICAgICAgICAgICAgfCA1OSArKysrLS0tLS0tLS0t LS0tLS0tCi0gZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5ICAgICAgICAgICAgICAgIHwg IDQgKysKLSBkb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weSAgICAgICAgICAgICAgfCAg MyArCi0gZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5ICAgICAgICAgIHwgIDQg KysKLSBkb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkgICAgICAgICAgICAgICAgICAgfCAgNiAr LQotIHRlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSAgICAgICAgICAgICAgICAgICB8ICA0ICsr Ci0gdGVzdC90ZXN0X19pbml0X18ucHkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysK LSB0ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5ICAgICAgICAgICAgICAgICAgfCAgMyArCi0g dGVzdC90ZXN0X2xhbmd1YWdlLnB5ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKystCi0g dGVzdC90ZXN0X25vZGVzLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKwotIC4u Li90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5ICB8ICA1ICsrCi0gLi4u L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RhYmxlcy5weSAgIHwgIDUgKysKLSAuLi4v dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5pY29kZS5weSAgfCAgNiArKwotIHRvb2xz L2Rldi9jcmVhdGVfdW5pbWFwLnB5ICAgICAgICAgICAgICAgICAgICB8IDEwICsrLS0KLSAyNCBm aWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9kb2N1dGlscy9fX2luaXRfXy5weSBiL2RvY3V0aWxzL19faW5pdF9fLnB5Ci1pbmRl eCA3ZDZhNjc5Li44MTc4ODE2IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvX19pbml0X18ucHkKLSsr KyBiL2RvY3V0aWxzL19faW5pdF9fLnB5Ci1AQCAtODgsNyArODgsOCBAQCBfX3ZlcnNpb25fZGV0 YWlsc19fID0gJ3JlbGVhc2UnCi0gIiIiCi0gCi0gCi0tY2xhc3MgQXBwbGljYXRpb25FcnJvcihT dGFuZGFyZEVycm9yKTogcGFzcwotK2NsYXNzIEFwcGxpY2F0aW9uRXJyb3IoRXhjZXB0aW9uKTog cGFzcwotKwotIGNsYXNzIERhdGFFcnJvcihBcHBsaWNhdGlvbkVycm9yKTogcGFzcwotIAotIAot ZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2Zyb250ZW5kLnB5IGIvZG9jdXRpbHMvZnJvbnRlbmQucHkK LWluZGV4IDY4OWQ5MDQuLmViZGJkNmEgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9mcm9udGVuZC5w eQotKysrIGIvZG9jdXRpbHMvZnJvbnRlbmQucHkKLUBAIC00Myw2ICs0Myw5IEBAIGltcG9ydCBk b2N1dGlscy5ub2RlcwotIGZyb20gZG9jdXRpbHMudXRpbHMuZXJyb3JfcmVwb3J0aW5nIGltcG9y dCAobG9jYWxlX2VuY29kaW5nLCBTYWZlU3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRXJyb3JPdXRwdXQsIEVycm9yU3RyaW5nKQotIAotK2lmIHN5 cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSsK LSAKLSBkZWYgc3RvcmVfbXVsdGlwbGUob3B0aW9uLCBvcHQsIHZhbHVlLCBwYXJzZXIsICphcmdz LCAqKmt3YXJncyk6Ci0gICAgICIiIgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2lvLnB5IGIvZG9j dXRpbHMvaW8ucHkKLWluZGV4IDQ0NjZmZGIuLjNjZGYwMGUgMTAwNjQ0Ci0tLS0gYS9kb2N1dGls cy9pby5weQotKysrIGIvZG9jdXRpbHMvaW8ucHkKLUBAIC0xNyw2ICsxNyw5IEBAIGltcG9ydCBj b2RlY3MKLSBmcm9tIGRvY3V0aWxzIGltcG9ydCBUcmFuc2Zvcm1TcGVjCi0gZnJvbSBkb2N1dGls cy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IGxvY2FsZV9lbmNvZGluZywgRXJyb3JTdHJp bmcsIEVycm9yT3V0cHV0Ci0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAg IHVuaWNvZGUgPSBzdHIgICMgbm9xYQotKwotIAotIGNsYXNzIElucHV0RXJyb3IoSU9FcnJvcik6 IHBhc3MKLSBjbGFzcyBPdXRwdXRFcnJvcihJT0Vycm9yKTogcGFzcwotZGlmZiAtLWdpdCBhL2Rv Y3V0aWxzL25vZGVzLnB5IGIvZG9jdXRpbHMvbm9kZXMucHkKLWluZGV4IDhhNWI3YmIuLmZhMDJj NmUgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9ub2Rlcy5weQotKysrIGIvZG9jdXRpbHMvbm9kZXMu cHkKLUBAIC0zMCw2ICszMCwxMCBAQCBpbXBvcnQgd2FybmluZ3MKLSBpbXBvcnQgdHlwZXMKLSBp bXBvcnQgdW5pY29kZWRhdGEKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsg ICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0rICAgIGJhc2VzdHJpbmcgPSBzdHIgICMgbm9xYQot KwotICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gIyAgRnVuY3Rpb25hbCBOb2Rl IEJhc2UgQ2xhc3NlcwotICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1AQCAtNjEs NyArNjUsNyBAQCBjbGFzcyBOb2RlKG9iamVjdCk6Ci0gICAgICAgICAiIiIKLSAgICAgICAgIHJl dHVybiBUcnVlCi0gCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywpOgotKyAgICBpZiBz eXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgICAgIyBvbiAyLngsIHN0cihub2RlKSB3 aWxsIGJlIGEgYnl0ZSBzdHJpbmcgd2l0aCBVbmljb2RlCi0gICAgICAgICAjIGNoYXJhY3RlcnMg PiAyNTUgZXNjYXBlZDsgb24gMy54IHRoaXMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeQotICAgICAg ICAgZGVmIF9fc3RyX18oc2VsZik6Ci1AQCAtMzAxLDcgKzMwNSw3IEBAIGNsYXNzIE5vZGUob2Jq ZWN0KToKLSAgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgotICAgICAgICAgICAgIHJldHVybiBO b25lCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Ci0raWYgc3lzLnZlcnNpb25faW5m byA8ICgzLCAwKToKLSAgICAgY2xhc3MgcmVwcnVuaWNvZGUodW5pY29kZSk6Ci0gICAgICAgICAi IiIKLSAgICAgICAgIEEgdW5pY29kZSBzdWItY2xhc3MgdGhhdCByZW1vdmVzIHRoZSBpbml0aWFs IHUgZnJvbSB1bmljb2RlJ3MgcmVwci4KLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3Jz dC9kaXJlY3RpdmVzL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZl cy9fX2luaXRfXy5weQotaW5kZXggODc4OTM0Ni4uN2JjY2I1YiAxMDA2NDQKLS0tLSBhL2RvY3V0 aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3Bh cnNlcnMvcnN0L2RpcmVjdGl2ZXMvX19pbml0X18ucHkKLUBAIC0xNiw2ICsxNiw5IEBAIGZyb20g ZG9jdXRpbHMgaW1wb3J0IG5vZGVzCi0gZnJvbSBkb2N1dGlscy51dGlscyBpbXBvcnQgc3BsaXRf ZXNjYXBlZF93aGl0ZXNwYWNlLCBlc2NhcGUybnVsbCwgdW5lc2NhcGUKLSBmcm9tIGRvY3V0aWxz LnBhcnNlcnMucnN0Lmxhbmd1YWdlcyBpbXBvcnQgZW4gYXMgX2ZhbGxiYWNrX2xhbmd1YWdlX21v ZHVsZQotIAotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICB1bmljaHIgPSBj aHIgICMgbm9xYQotKwotIAotIF9kaXJlY3RpdmVfcmVnaXN0cnkgPSB7Ci0gICAgICAgJ2F0dGVu dGlvbic6ICgnYWRtb25pdGlvbnMnLCAnQXR0ZW50aW9uJyksCi1kaWZmIC0tZ2l0IGEvZG9jdXRp bHMvc3RhdGVtYWNoaW5lLnB5IGIvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5Ci1pbmRleCA2YTIz MjJjLi5iNTZmM2M1IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5Ci0rKysg Yi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLUBAIC0xMTQsNiArMTE0LDkgQEAgaW1wb3J0IHVu aWNvZGVkYXRhCi0gZnJvbSBkb2N1dGlscyBpbXBvcnQgdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnV0 aWxzLmVycm9yX3JlcG9ydGluZyBpbXBvcnQgRXJyb3JPdXRwdXQKLSAKLStpZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLCAwKToKLSsgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0rCi0gCi0gY2xh c3MgU3RhdGVNYWNoaW5lKG9iamVjdCk6Ci0gCi1AQCAtMTEyNCw3ICsxMTI3LDEyIEBAIGNsYXNz IFZpZXdMaXN0KG9iamVjdCk6Ci0gICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOiByZXR1cm4g c2VsZi5kYXRhICE9IHNlbGYuX19jYXN0KG90aGVyKQotICAgICBkZWYgX19ndF9fKHNlbGYsIG90 aGVyKTogcmV0dXJuIHNlbGYuZGF0YSA+ICBzZWxmLl9fY2FzdChvdGhlcikKLSAgICAgZGVmIF9f Z2VfXyhzZWxmLCBvdGhlcik6IHJldHVybiBzZWxmLmRhdGEgPj0gc2VsZi5fX2Nhc3Qob3RoZXIp Ci0tICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyKTogcmV0dXJuIGNtcChzZWxmLmRhdGEsIHNl bGYuX19jYXN0KG90aGVyKSkKLSsKLSsgICAgZGVmIF9fY21wX18oc2VsZiwgb3RoZXIpOgotKyAg ICAgICAgIyBmcm9tIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuMC93aGF0c25ldy8zLjAuaHRt bAotKyAgICAgICAgbWluZSA9IHNlbGYuZGF0YQotKyAgICAgICAgeW91cnMgPSBzZWxmLl9fY2Fz dChvdGhlcikKLSsgICAgICAgIHJldHVybiAobWluZSA+IHlvdXJzKSAtICh5b3VycyA8IG1pbmUp Ci0gCi0gICAgIGRlZiBfX2Nhc3Qoc2VsZiwgb3RoZXIpOgotICAgICAgICAgaWYgaXNpbnN0YW5j ZShvdGhlciwgVmlld0xpc3QpOgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvZnJv bnRtYXR0ZXIucHkgYi9kb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci1pbmRleCBm OTRjOWRhLi4xMjc5ZjUwIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1h dHRlci5weQotKysrIGIvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weQotQEAgLTIy LDEwICsyMiwxNiBAQCBUcmFuc2Zvcm1zIHJlbGF0ZWQgdG8gdGhlIGZyb250IG1hdHRlciBvZiBh IGRvY3VtZW50IG9yIGEgc2VjdGlvbgotIF9fZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4 dCcKLSAKLSBpbXBvcnQgcmUKLStpbXBvcnQgc3lzCi0rCi0gZnJvbSBkb2N1dGlscyBpbXBvcnQg bm9kZXMsIHV0aWxzCi0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCBUcmFuc2Zvcm1F cnJvciwgVHJhbnNmb3JtCi0gCi0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0r ICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotKwotKwotIGNsYXNzIFRpdGxlUHJvbW90ZXIoVHJh bnNmb3JtKToKLSAKLSAgICAgIiIiCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy91 bml2ZXJzYWwucHkgYi9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5weQotaW5kZXggNDdl MTI3Ni4uNDlmYjJjOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2Fs LnB5Ci0rKysgYi9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5weQotQEAgLTE3LDEyICsx NywxNyBAQCBUcmFuc2Zvcm1zIG5lZWRlZCBieSBtb3N0IG9yIGFsbCBkb2N1bWVudHM6Ci0gX19k b2Nmb3JtYXRfXyA9ICdyZVN0cnVjdHVyZWRUZXh0JwotIAotIGltcG9ydCByZQotK2ltcG9ydCBz eXMKLSBpbXBvcnQgdGltZQotIGZyb20gZG9jdXRpbHMgaW1wb3J0IG5vZGVzLCB1dGlscwotIGZy b20gZG9jdXRpbHMudHJhbnNmb3JtcyBpbXBvcnQgVHJhbnNmb3JtRXJyb3IsIFRyYW5zZm9ybQot IGZyb20gZG9jdXRpbHMudXRpbHMgaW1wb3J0IHNtYXJ0cXVvdGVzCi0gCi0gCi0raWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotKwotKwot IGNsYXNzIERlY29yYXRpb25zKFRyYW5zZm9ybSk6Ci0gCi0gICAgICIiIgotZGlmZiAtLWdpdCBh L2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkK LWluZGV4IGM3MWQ1MDguLjc3YzcwZjggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9fX2lu aXRfXy5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkKLUBAIC0yMiw2ICsyMiw5 IEBAIGZyb20gZG9jdXRpbHMubm9kZXMgaW1wb3J0IHVuZXNjYXBlCi0gaW1wb3J0IGRvY3V0aWxz LmlvCi0gZnJvbSBkb2N1dGlscy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IEVycm9yT3V0 cHV0LCBTYWZlU3RyaW5nCi0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAg IHVuaWNvZGUgPSBzdHIKLSsKLSAKLSBjbGFzcyBTeXN0ZW1NZXNzYWdlKEFwcGxpY2F0aW9uRXJy b3IpOgotIAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weSBi L2RvY3V0aWxzL3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weQotaW5kZXggOGVhNzEwOC4uOGZjYzgx NiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weQotKysrIGIv ZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5Ci1AQCAtMzUsNyArMzUsOCBAQCBUaGUg YFNhZmVTdHJpbmdgLCBgRXJyb3JTdHJpbmdgIGFuZCBgRXJyb3JPdXRwdXRgIGNsYXNzZXMgaGFu ZGxlCi0gY29tbW9uIGV4Y2VwdGlvbnMuCi0gIiIiCi0gCi0taW1wb3J0IHN5cywgY29kZWNzCi0r aW1wb3J0IGNvZGVjcwotK2ltcG9ydCBzeXMKLSAKLSAjIEd1ZXNzIHRoZSBsb2NhbGUncyBlbmNv ZGluZy4KLSAjIElmIG5vIHZhbGlkIGd1ZXNzIGNhbiBiZSBtYWRlLCBsb2NhbGVfZW5jb2Rpbmcg aXMgc2V0IHRvIGBOb25lYDoKLUBAIC02NCw2ICs2NSw5IEBAIGVsc2U6Ci0gICAgICAgICBsb2Nh bGVfZW5jb2RpbmcgPSBOb25lCi0gCi0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6 Ci0rICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotKwotIAotIGNsYXNzIFNhZmVTdHJpbmcob2Jq ZWN0KToKLSAgICAgIiIiCi1AQCAtMTk5LDkgKzIwMyw5IEBAIGNsYXNzIEVycm9yT3V0cHV0KG9i amVjdCk6Ci0gICAgICAgICAgICAgc2VsZi5zdHJlYW0ud3JpdGUoZGF0YSkKLSAgICAgICAgIGV4 Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6Ci0gICAgICAgICAgICAgc2VsZi5zdHJlYW0ud3JpdGUo ZGF0YS5lbmNvZGUoc2VsZi5lbmNvZGluZywgc2VsZi5lbmNvZGluZ19lcnJvcnMpKQotLSAgICAg ICAgZXhjZXB0IFR5cGVFcnJvcjogCi0rICAgICAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAg ICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgdW5pY29kZSk6ICMgcGFzc2VkIHN0cmVhbSBtYXkg ZXhwZWN0IGJ5dGVzCi0tICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtLndyaXRlKGRhdGEuZW5j b2RlKHNlbGYuZW5jb2RpbmcsIAotKyAgICAgICAgICAgICAgICBzZWxmLnN0cmVhbS53cml0ZShk YXRhLmVuY29kZShzZWxmLmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmVuY29kaW5nX2Vycm9ycykpCi0gICAgICAgICAgICAgICAg IHJldHVybgotICAgICAgICAgICAgIGlmIHNlbGYuc3RyZWFtIGluIChzeXMuc3RkZXJyLCBzeXMu c3Rkb3V0KToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weSBi L2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5Ci1pbmRleCAxZjYxZTIzLi40OTY3MTY1 IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLSsrKyBiL2Rv Y3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5Ci1AQCAtMjAsMTAgKzIwLDIxIEBACi0gIyBB bGV4IDIwMTAxMTEwCi0gIyBlTHlYZXIgc3RhbmRhbG9uZSBmb3JtdWxhIGNvbnZlcnNpb24gdG8g SFRNTC4KLSAKLStpbXBvcnQgY29kZWNzCi0raW1wb3J0IGRhdGV0aW1lCi0raW1wb3J0IGdldHRl eHQKLStpbXBvcnQgaW8KLStpbXBvcnQgb3MucGF0aAotK2ltcG9ydCBzeXMKLStpbXBvcnQgdW5p Y29kZWRhdGEKLStpbXBvcnQgdXJsbGliCi0gCi0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAo MywwKToKLSsgICAgdW5pY29kZSA9IHN0ciAgI25vcWEKLSsgICAgYmFzZXN0cmluZyA9IHN0ciAg IyBub3FhCi0rICAgIGZpbGUgPSBpby5JT0Jhc2UgICMgbm9xYQotIAotLWltcG9ydCBzeXMKLSAK LSBjbGFzcyBUcmFjZShvYmplY3QpOgotICAgIkEgdHJhY2luZyBjbGFzcyIKLUBAIC03MywxMiAr ODQsNiBAQCBjbGFzcyBUcmFjZShvYmplY3QpOgotICAgc2hvdyA9IGNsYXNzbWV0aG9kKHNob3cp Ci0gCi0gCi0tCi0tCi0taW1wb3J0IG9zLnBhdGgKLS1pbXBvcnQgc3lzCi0tCi0tCi0gY2xhc3Mg QmliU3R5bGVzQ29uZmlnKG9iamVjdCk6Ci0gICAiQ29uZmlndXJhdGlvbiBjbGFzcyBmcm9tIGVs eXhlci5jb25maWcgZmlsZSIKLSAKLUBAIC0xMzA1LDE3ICsxMzEwLDYgQEAgY2xhc3MgQnJhbmNo T3B0aW9ucyhvYmplY3QpOgotICAgICByZXR1cm4gJ29wdGlvbnMgZm9yICcgKyBzZWxmLm5hbWUg KyAnOiAnICsgdW5pY29kZShzZWxmLm9wdGlvbnMpCi0gCi0gCi0tCi0tCi0taW1wb3J0IHVybGxp YgotLQotLQotLQotLQotLQotLQotLQotLQotIGNsYXNzIENsb25lcihvYmplY3QpOgotICAgIkFu IG9iamVjdCB1c2VkIHRvIGNsb25lIG90aGVyIG9iamVjdHMuIgotIAotQEAgLTE2OTksMTUgKzE2 OTMsNiBAQCBjbGFzcyBTdHJpbmdPdXRwdXQoQ29udGFpbmVyT3V0cHV0KToKLSAgICAgcmV0dXJu IFtjb250YWluZXIuc3RyaW5nXQotIAotIAotLQotLQotLQotLQotLQotLWltcG9ydCBzeXMKLS1p bXBvcnQgY29kZWNzCi0tCi0tCi0gY2xhc3MgTGluZVJlYWRlcihvYmplY3QpOgotICAgIlJlYWRz IGEgZmlsZSBsaW5lIGJ5IGxpbmUiCi0gCi1AQCAtMzA5NCwyNCArMzA3OSw2IEBAIGNsYXNzIEZv cm11bGFGYWN0b3J5KG9iamVjdCk6Ci0gICAgIHJldHVybiB3aG9sZQotIAotIAotLQotLQotLWlt cG9ydCB1bmljb2RlZGF0YQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLWlt cG9ydCBnZXR0ZXh0Ci0tCi0tCi0gY2xhc3MgVHJhbnNsYXRvcihvYmplY3QpOgotICAgIlJlYWRz IHRoZSBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHRyaWVzIHRvIGZpbmQgYSB0cmFuc2xhdGlvbi4i Ci0gICAiT3RoZXJ3aXNlIGZhbGxzIGJhY2sgdG8gdGhlIG1lc3NhZ2VzIGluIHRoZSBjb25maWcg ZmlsZS4iCi1AQCAtNDU4OSw4ICs0NTU2LDYgQEAgY2xhc3MgQmVnaW5Db21tYW5kKENvbW1hbmRC aXQpOgotIEZvcm11bGFDb21tYW5kLnR5cGVzICs9IFtCZWdpbkNvbW1hbmRdCi0gCi0gCi0taW1w b3J0IGRhdGV0aW1lCi0tCi0gCi0gY2xhc3MgQ29tYmluaW5nRnVuY3Rpb24oT25lUGFyYW1GdW5j dGlvbik6Ci0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5IGIv ZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5Ci1pbmRleCAyM2VmZWVhLi5hN2YzYjUzIDEw MDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5Ci0rKysgYi9kb2N1dGls cy93cml0ZXJzL19odG1sX2Jhc2UucHkKLUBAIC00MCw2ICs0MCwxMCBAQCBmcm9tIGRvY3V0aWxz LnV0aWxzLm1hdGggaW1wb3J0ICh1bmljaGFyMnRleCwgcGlja19tYXRoX2Vudmlyb25tZW50LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGgyaHRtbCwgbGF0ZXgybWF0aG1s LCB0ZXgybWF0aG1sX2V4dGVybikKLSAKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAw KToKLSsgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0rCi0rCi0gY2xhc3MgV3JpdGVyKHdyaXRl cnMuV3JpdGVyKToKLSAKLSAgICAgc3VwcG9ydGVkID0gKCdodG1sJywgJ3hodG1sJykgIyB1cGRh dGUgaW4gc3ViY2xhc3MKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3ht bC5weSBiL2RvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5Ci1pbmRleCBlODcwZWUxLi4z NGU4MTBkIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkKLSsr KyBiL2RvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5Ci1AQCAtMzAsNiArMzAsOSBAQCBm cm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotIGltcG9ydCBkb2N1dGlscwotIGZyb20gZG9j dXRpbHMgaW1wb3J0IGZyb250ZW5kLCB3cml0ZXJzLCBub2RlcwotIAotK2lmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotKyAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSsKLSAKLSBjbGFz cyBSYXdYbWxFcnJvcihkb2N1dGlscy5BcHBsaWNhdGlvbkVycm9yKTogcGFzcwotIAotZGlmZiAt LWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weSBiL2RvY3V0aWxzL3dy aXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weQotaW5kZXggNWVhYTdmMC4uZTIxYzc0YiAxMDA2NDQK LS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weQotKysrIGIvZG9jdXRp bHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5Ci1AQCAtMjgsNiArMjgsMTAgQEAgZnJvbSBk b2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCB3cml0ZXJfYXV4Ci0gZnJvbSBkb2N1dGlscy51dGls cy5tYXRoIGltcG9ydCBwaWNrX21hdGhfZW52aXJvbm1lbnQsIHVuaWNoYXIydGV4Ci0gCi0gCi0r aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNvZGUgPSBzdHIgICMgbm9x YQotKwotKwotIGNsYXNzIFdyaXRlcih3cml0ZXJzLldyaXRlcik6Ci0gCi0gICAgIHN1cHBvcnRl ZCA9ICgnbGF0ZXgnLCdsYXRleDJlJykKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL21h bnBhZ2UucHkgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLWluZGV4IDI4N2M2ZjIuLjlj ODg3YzcgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLSsrKyBiL2Rv Y3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotQEAgLTQ1LDYgKzQ1LDEwIEBAIGJ5IHRoZSBjb21t YW5kIHdoYXRpcyBvciBhcHJvcG9zLgotIF9fZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4 dCcKLSAKLSBpbXBvcnQgcmUKLStpbXBvcnQgc3lzCi0rCi0raWYgc3lzLnZlcnNpb25faW5mbyA8 ICgzLCAwKToKLSsgICAgcmFuZ2UgPSB4cmFuZ2UKLSAKLSBpbXBvcnQgZG9jdXRpbHMKLSBmcm9t IGRvY3V0aWxzIGltcG9ydCBub2Rlcywgd3JpdGVycywgbGFuZ3VhZ2VzCi1AQCAtMjU1LDcgKzI1 OSw3IEBAIGNsYXNzIFRyYW5zbGF0b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAg ICMgZW5zdXJlIHdlIGdldCBhICIuVEgiIGFzIHZpZXdlcnMgcmVxdWlyZSBpdC4KLSAgICAgICAg ICAgICBzZWxmLmFwcGVuZF9oZWFkZXIoKQotICAgICAgICAgIyBmaWx0ZXIgYm9keQotLSAgICAg ICAgZm9yIGkgaW4geHJhbmdlKGxlbihzZWxmLmJvZHkpLTEsIDAsIC0xKToKLSsgICAgICAgIGZv ciBpIGluIHJhbmdlKGxlbihzZWxmLmJvZHkpLTEsIDAsIC0xKToKLSAgICAgICAgICAgICAjIHJl bW92ZSBzdXBlcmZsdW91cyB2ZXJ0aWNhbCBnYXBzLgotICAgICAgICAgICAgIGlmIHNlbGYuYm9k eVtpXSA9PSAnLnNwXG4nOgotICAgICAgICAgICAgICAgICBpZiBzZWxmLmJvZHlbaSAtIDFdWzo0 XSBpbiAoJy5CSSAnLCcuSVAgJyk6Ci1kaWZmIC0tZ2l0IGEvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBw b3J0LnB5IGIvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci1pbmRleCBlNzc0NDdhLi5jNmY1 YjlmIDEwMDY0NAotLS0tIGEvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci0rKysgYi90ZXN0 L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLUBAIC04OSw2ICs4OSwxMCBAQCBleGNlcHQ6Ci0gICAg IGltcG9ydCBwZGIKLSAKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAg dW5pY29kZSA9IHN0ciAgIyBub3FhCi0rCi0rCi0gIyBIYWNrIHRvIG1ha2UgcmVwcihTdHJpbmdM aXN0KSBsb29rIGxpa2UgcmVwcihsaXN0KToKLSBTdHJpbmdMaXN0Ll9fcmVwcl9fID0gU3RyaW5n TGlzdC5fX3N0cl9fCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X19pbml0X18ucHkgYi90ZXN0 L3Rlc3RfX2luaXRfXy5weQotaW5kZXggMDFhMWM1OS4uOGYxZDc0OSAxMDA2NDQKLS0tLSBhL3Rl c3QvdGVzdF9faW5pdF9fLnB5Ci0rKysgYi90ZXN0L3Rlc3RfX2luaXRfXy5weQotQEAgLTE2LDYg KzE2LDEwIEBAIGltcG9ydCBkb2N1dGlscwotIGltcG9ydCBkb2N1dGlscy51dGlscwotIAotIAot K2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICB1bmljb2RlID0gc3RyICAjIG5v cWEKLSsKLSsKLSBjbGFzcyBBcHBsaWNhdGlvbkVycm9yVGVzdHModW5pdHRlc3QuVGVzdENhc2Up OgotIAotICAgICBkZWYgdGVzdF9tZXNzYWdlKHNlbGYpOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVz dF9lcnJvcl9yZXBvcnRpbmcucHkgYi90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5Ci1pbmRl eCBiYWU5ZGI1Li44OTMwODJjIDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGlu Zy5weQotKysrIGIvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weQotQEAgLTQ2LDYgKzQ2LDkg QEAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOiAjIHByb2JsZW1zIHNvbHZlZCBpbiBweTNr Ci0gICAgICAgICBwcmludCgnY2Fubm90IHRlc3QgZXJyb3IgcmVwb3J0aW5nIHdpdGggcHJvYmxl bWF0aWMgbG9jYWxlcyxcbicKLSAgICAgICAgICAgICAnYGltcG9ydCBsb2NhbGVgIGZhaWxlZC4n KQotIAotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICB1bmljb2RlID0gc3Ry ICAjIG5vcWEKLSsKLSAKLSAjIGxvY2FsZXMgY29uZmlybWVkIHRvIHVzZSBub24tQVNDSUkgY2hh cnMgaW4gdGhlIElPRXJyb3IgbWVzc2FnZQotICMgZm9yIGEgbWlzc2luZyBmaWxlIChodHRwczov L2J1Z3MuZ2VudG9vLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5MTAxKQotZGlmZiAtLWdpdCBhL3Rl c3QvdGVzdF9sYW5ndWFnZS5weSBiL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotaW5kZXggMGUwNWQ0 NC4uMzBhZjgxYSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotKysrIGIvdGVz dC90ZXN0X2xhbmd1YWdlLnB5Ci1AQCAtMjYsNiArMjYsOSBAQCBfcmVwb3J0ZXIgPSBkb2N1dGls cy51dGlscy5uZXdfcmVwb3J0ZXIoJycsIF9zZXR0aW5ncykKLSAKLSByZWZlcmVuY2VfbGFuZ3Vh Z2UgPSAnZW4nCi0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNv ZGUgPSBzdHIgICMgbm9xYQotKwotIAotIGNsYXNzIExhbmd1YWdlVGVzdFN1aXRlKERvY3V0aWxz VGVzdFN1cHBvcnQuQ3VzdG9tVGVzdFN1aXRlKToKLSAKLUBAIC0xNTYsNyArMTU5LDcgQEAgY2xh c3MgTGFuZ3VhZ2VUZXN0Q2FzZShEb2N1dGlsc1Rlc3RTdXBwb3J0LkN1c3RvbVRlc3RDYXNlKToK LSAgICAgICAgIGlmIGZhaWx1cmVzOgotICAgICAgICAgICAgIHRleHQgPSAoJ01vZHVsZSBkb2N1 dGlscy5wYXJzZXJzLnJzdC5sYW5ndWFnZXMuJXM6XG4gICAgJXMnCi0gICAgICAgICAgICAgICAg ICAgICAlIChzZWxmLmxhbmd1YWdlLCAnXG4gICAgJy5qb2luKGZhaWx1cmVzKSkpCi0tICAgICAg ICAgICAgaWYgdHlwZSh0ZXh0KSBpcyB1bmljb2RlOgotKyAgICAgICAgICAgIGlmIGlzaW5zdGFu Y2UodGV4dCwgdW5pY29kZSk6Ci0gICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LmVuY29kZSgn cmF3X3VuaWNvZGVfZXNjYXBlJykKLSAgICAgICAgICAgICBzZWxmLmZhaWwodGV4dCkKLSAKLUBA IC0xOTEsNyArMTk0LDcgQEAgY2xhc3MgTGFuZ3VhZ2VUZXN0Q2FzZShEb2N1dGlsc1Rlc3RTdXBw b3J0LkN1c3RvbVRlc3RDYXNlKToKLSAgICAgICAgIGlmIGZhaWx1cmVzOgotICAgICAgICAgICAg IHRleHQgPSAoJ01vZHVsZSBkb2N1dGlscy5wYXJzZXJzLnJzdC5sYW5ndWFnZXMuJXM6XG4gICAg JXMnCi0gICAgICAgICAgICAgICAgICAgICAlIChzZWxmLmxhbmd1YWdlLCAnXG4gICAgJy5qb2lu KGZhaWx1cmVzKSkpCi0tICAgICAgICAgICAgaWYgdHlwZSh0ZXh0KSBpcyB1bmljb2RlOgotKyAg ICAgICAgICAgIGlmIGlzaW5zdGFuY2UodGV4dCwgdW5pY29kZSk6Ci0gICAgICAgICAgICAgICAg IHRleHQgPSB0ZXh0LmVuY29kZSgncmF3X3VuaWNvZGVfZXNjYXBlJykKLSAgICAgICAgICAgICBz ZWxmLmZhaWwodGV4dCkKLSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rfbm9kZXMucHkgYi90ZXN0 L3Rlc3Rfbm9kZXMucHkKLWluZGV4IGY2YmM2YjIuLjkyNDU2OWYgMTAwNzU1Ci0tLS0gYS90ZXN0 L3Rlc3Rfbm9kZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9ub2Rlcy5weQotQEAgLTE3LDYgKzE3LDkg QEAgZnJvbSBEb2N1dGlsc1Rlc3RTdXBwb3J0IGltcG9ydCBub2RlcywgdXRpbHMKLSAKLSBkZWJ1 ZyA9IEZhbHNlCi0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNv ZGUgPSBzdHIgICMgbm9xYQotKwotIAotIGNsYXNzIFRleHRUZXN0cyh1bml0dGVzdC5UZXN0Q2Fz ZSk6Ci0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJl Y3RpdmVzL3Rlc3RfaW5jbHVkZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rf ZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkKLWluZGV4IDJhNmU1YmUuLjZlOWRjODQgMTAwNzU1 Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9p bmNsdWRlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2 ZXMvdGVzdF9pbmNsdWRlLnB5Ci1AQCAtMTQsNiArMTQsMTEgQEAgZnJvbSBfX2luaXRfXyBpbXBv cnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0 IHN0YXRlcwotIGZyb20gZG9jdXRpbHMudXRpbHMuY29kZV9hbmFseXplciBpbXBvcnQgd2l0aF9w eWdtZW50cwotIAotKwotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICB1bmlj aHIgPSBjaHIgICMgbm9xYQotKwotKwotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNU ZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotICAgICBpZiBub3Qgd2l0aF9weWdtZW50czoK LWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMv dGVzdF90YWJsZXMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2 ZXMvdGVzdF90YWJsZXMucHkKLWluZGV4IGY3NDk2YWQuLjJjNWY4MzIgMTAwNzU1Ci0tLS0gYS90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkK LSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Rh Ymxlcy5weQotQEAgLTE2LDYgKzE2LDExIEBAIGltcG9ydCBwbGF0Zm9ybQotIGZyb20gZG9jdXRp bHMucGFyc2Vycy5yc3QuZGlyZWN0aXZlcyBpbXBvcnQgdGFibGVzCi0gCi0gCi0raWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotKyAgICB1 bmljaHIgPSBjaHIgICMgbm9xYQotKwotKwotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRp bHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotICAgICBzLmdlbmVyYXRlVGVzdHModG90 ZXN0KQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X3VuaWNvZGUucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5Ci1pbmRleCBiMTQwMDUwLi41Y2RmZDVhIDEwMDc1NQot LS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5p Y29kZS5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVz L3Rlc3RfdW5pY29kZS5weQotQEAgLTgsOSArOCwxNSBAQAotIFRlc3RzIGZvciBtaXNjLnB5ICJ1 bmljb2RlIiBkaXJlY3RpdmUuCi0gIiIiCi0gCi0raW1wb3J0IHN5cwotKwotIGZyb20gX19pbml0 X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLCAwKToKLSsgICAgdW5pY2hyID0gY2hyICAjIG5vcWEKLSsKLSsKLSBkZWYgc3VpdGUo KToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLSAgICAg cy5nZW5lcmF0ZVRlc3RzKHRvdGVzdCkKLWRpZmYgLS1naXQgYS90b29scy9kZXYvY3JlYXRlX3Vu aW1hcC5weSBiL3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFwLnB5Ci1pbmRleCA4NWFjMjY0Li43NGU4 YmM3IDEwMDc1NQotLS0tIGEvdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkKLSsrKyBiL3Rvb2xz L2Rldi9jcmVhdGVfdW5pbWFwLnB5Ci1AQCAtMTQsMTUgKzE0LDE1IEBAIGZyb20geG1sLmRvbSBp bXBvcnQgbWluaWRvbQotIGltcG9ydCBzeXMKLSBpbXBvcnQgcHByaW50Ci0gCi0taWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywwKToKLS0gICAgdW5pY29kZSA9IHN0cgotK2lmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotKyAgICB1bmljb2RlID0gc3RyICAjbm9xYQotIGVsc2U6Ci0tICAg IGJ5dGVzID0gc3RyCi0tICAgIGNociA9IHVuaWNocgotKyAgICBieXRlcyA9IHN0ciAgIyBub3Fh Ci0rICAgIGNociA9IHVuaWNociAgIyBub3FhCi0gCi0gCi0gZGVmIHcocyk6Ci0tICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPj0gKDMsMCkgYW5kIGlzaW5zdGFuY2UocywgdW5pY29kZSk6Ci0rICAg IGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApIGFuZCBpc2luc3RhbmNlKHMsIHVuaWNvZGUp OgotICAgICAgICAgcyA9IHMuZW5jb2RlKCd1dGY4JykKLSAgICAgc3lzLnN0ZG91dC53cml0ZShz KQotIAotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwNS1weTMtUmVzb2x2ZS1zb21lLWFkZGl0aW9uYWwt dW5kZWZpbmVkLXN5bWJvbHMucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVz LzAwMDUtcHkzLVJlc29sdmUtc29tZS1hZGRpdGlvbmFsLXVuZGVmaW5lZC1zeW1ib2xzLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjg4YTliYzZiZS4uMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA1LXB5My1SZXNvbHZlLXNv bWUtYWRkaXRpb25hbC11bmRlZmluZWQtc3ltYm9scy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDgwICswLDAgQEAKLUZyb20gNmJkMTEyODAyZjg1N2IzMjc2NGFmZTg3Y2U3ODI4ZGI1MDA3NzA4 NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBo ZW5AdGhhdC5ndXJ1PgotRGF0ZTogVHVlLCAxOSBOb3YgMjAxOSAyMzo1MjoxNCArMDcwMAotU3Vi amVjdDogW1BBVENIIDA1LzI2XSBweTM6IFJlc29sdmUgc29tZSBhZGRpdGlvbmFsIHVuZGVmaW5l ZCBzeW1ib2xzCi0KLUZvdW5kIHdpdGggZmxha2U4Ci0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4g RmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNv ZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzUyIDkyOTU0M2Y2LWU0ZjItMDMxMC05 OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5w eSAgICAgICAgfCAgOCArKysrLS0tLQotIHRvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlvbl9j aGFycy5weSB8IDExIC0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDE1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9t YXRoMmh0bWwucHkgYi9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotaW5kZXggNDk2 NzE2NS4uNGE3MjA5ZCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1s LnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotQEAgLTE2MjQsNyAr MTYyNCw3IEBAIGNsYXNzIFRhZ2dlZE91dHB1dChDb250ZW50c091dHB1dCk6Ci0gCi0gICBkZWYg b3BlbihzZWxmLCBjb250YWluZXIpOgotICAgICAiR2V0IG9wZW5pbmcgbGluZS4iCi0tICAgIGlm IG5vdCBzZWxmLmNoZWNrdGFnKCk6Ci0rICAgIGlmIG5vdCBzZWxmLmNoZWNrdGFnKGNvbnRhaW5l cik6Ci0gICAgICAgcmV0dXJuICcnCi0gICAgIG9wZW4gPSAnPCcgKyBzZWxmLnRhZyArICc+Jwot ICAgICBpZiBzZWxmLmJyZWFrbGluZXM6Ci1AQCAtMTYzMyw3ICsxNjMzLDcgQEAgY2xhc3MgVGFn Z2VkT3V0cHV0KENvbnRlbnRzT3V0cHV0KToKLSAKLSAgIGRlZiBjbG9zZShzZWxmLCBjb250YWlu ZXIpOgotICAgICAiR2V0IGNsb3NpbmcgbGluZS4iCi0tICAgIGlmIG5vdCBzZWxmLmNoZWNrdGFn KCk6Ci0rICAgIGlmIG5vdCBzZWxmLmNoZWNrdGFnKGNvbnRhaW5lcik6Ci0gICAgICAgcmV0dXJu ICcnCi0gICAgIGNsb3NlID0gJzwvJyArIHNlbGYudGFnLnNwbGl0KClbMF0gKyAnPicKLSAgICAg aWYgc2VsZi5icmVha2xpbmVzOgotQEAgLTE2NDIsMTQgKzE2NDIsMTQgQEAgY2xhc3MgVGFnZ2Vk T3V0cHV0KENvbnRlbnRzT3V0cHV0KToKLSAKLSAgIGRlZiBzZWxmY2xvc2luZyhzZWxmLCBjb250 YWluZXIpOgotICAgICAiR2V0IHNlbGYtY2xvc2luZyBsaW5lLiIKLS0gICAgaWYgbm90IHNlbGYu Y2hlY2t0YWcoKToKLSsgICAgaWYgbm90IHNlbGYuY2hlY2t0YWcoY29udGFpbmVyKToKLSAgICAg ICByZXR1cm4gJycKLSAgICAgc2VsZmNsb3NpbmcgPSAnPCcgKyBzZWxmLnRhZyArICcvPicKLSAg ICAgaWYgc2VsZi5icmVha2xpbmVzOgotICAgICAgIHJldHVybiBzZWxmY2xvc2luZyArICdcbicK LSAgICAgcmV0dXJuIHNlbGZjbG9zaW5nCi0gCi0tICBkZWYgY2hlY2t0YWcoc2VsZik6Ci0rICBk ZWYgY2hlY2t0YWcoc2VsZiwgY29udGFpbmVyKToKLSAgICAgIkNoZWNrIHRoYXQgdGhlIHRhZyBp cyB2YWxpZC4iCi0gICAgIGlmIG5vdCBzZWxmLnRhZzoKLSAgICAgICBUcmFjZS5lcnJvcignTm8g dGFnIGluICcgKyB1bmljb2RlKGNvbnRhaW5lcikpCi1kaWZmIC0tZ2l0IGEvdG9vbHMvZGV2L2dl bmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5IGIvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0 aW9uX2NoYXJzLnB5Ci1pbmRleCA1OTQ3ZmU1Li5hMzBjNWNhIDEwMDY0NAotLS0tIGEvdG9vbHMv ZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5Ci0rKysgYi90b29scy9kZXYvZ2VuZXJh dGVfcHVuY3R1YXRpb25fY2hhcnMucHkKLUBAIC0zMTksMTcgKzMxOSw2IEBAIGRlZiBwcmludF9k aWZmZXJlbmNlcyhvbGQsIG5ldywgbmFtZSk6Ci0gICAgIGVsc2U6Ci0gICAgICAgICBwcmludCgn JXMgdW5jaGFuZ2VkJyAlIG5hbWUpCi0gCi0tZGVmIHByaW50X3F1b3RlX3BhaXJzKCk6Ci0tICAg IHBhaXJzID0gWyhvLGMpIGZvciBvLGMgaW4gcXVvdGVfcGFpcnMuaXRlbXMoKV0KLS0gICAgZm9y IG8sYyBpbiBzb3J0ZWQocGFpcnMpOgotLSAgICAgICAgcHJpbnQoKHUnJXMgJXMnICUgKG8sYykp LmVuY29kZSgndXRmOCcpKQotLQotLSAgICAjICMgVGVzdCBvcGVuL2Nsb3NlIG1hdGNoaW5nOgot LSAgICAjIGZvciBpIGluIHJhbmdlKG1pbihsZW4ob3BlbmVycyksbGVuKGNsb3NlcnMpKSk6Ci0t ICAgICMgICAgIHByaW50KCclNGQgICAgJXMgICAgJXMnICUgKGksIG9wZW5lcnNbaV0uZW5jb2Rl KCd1dGY4JyksCi0tICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlcnNb aV0uZW5jb2RlKCd1dGY4JykpCi0tCi0tCi0gIyBPdXRwdXQKLSAjIC0tLS0tLQotICMKLS0tIAot Mi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1 dGlscy9wYXRjaGVzLzAwMDYtcHkzLVJlcGxhY2UtZGVwcmVjYXRlZC1mb3JtLW9mLXJhaXNpbmct ZXhjZXB0aW9uLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA2LXB5 My1SZXBsYWNlLWRlcHJlY2F0ZWQtZm9ybS1vZi1yYWlzaW5nLWV4Y2VwdGlvbi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmMyZGVmZTA1OTMuLjAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwNi1weTMtUmVwbGFjZS1kZXByZWNh dGVkLWZvcm0tb2YtcmFpc2luZy1leGNlcHRpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwy NjMgKzAsMCBAQAotRnJvbSBlZmUwYzlhNzVjNWIyYThkMDk0ODQwOTI3ZTkzZTBlODczZTc3ZWNl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhl bkB0aGF0Lmd1cnU+Ci1EYXRlOiBUdWUsIDE5IE5vdiAyMDE5IDIzOjUyOjU4ICswNzAwCi1TdWJq ZWN0OiBbUEFUQ0ggMDYvMjZdIHB5MzogUmVwbGFjZSBkZXByZWNhdGVkIGZvcm0gb2YgcmFpc2lu ZyBleGNlcHRpb24KLQotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0 aGF0Lmd1cnU+Ci0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGls cy9jb2RlL3RydW5rQDgzNTMgOTI5NTQzZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1T aWduZWQtb2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4K LS0tLQotIGRvY3V0aWxzL2Zyb250ZW5kLnB5ICAgICAgICAgICAgICAgfCAyNSArKysrKysrKysr LS0tLS0tLS0tLS0tLS0tCi0gZG9jdXRpbHMvbm9kZXMucHkgICAgICAgICAgICAgICAgICB8IDEy ICsrKysrKy0tLS0tLQotIGRvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0ZXIucHkgfCAgNCAr Ky0tCi0gZG9jdXRpbHMvdXRpbHMvcm9tYW4ucHkgICAgICAgICAgICB8ICA5ICsrKysrLS0tLQot IGRvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weSAgICAgICAgfCAgNCArKy0tCi0gdGVzdC9Eb2N1 dGlsc1Rlc3RTdXBwb3J0LnB5ICAgICAgICB8IDIxICsrKystLS0tLS0tLS0tLS0tLS0tLQotIHRl c3QvcGFja2FnZV91bml0dGVzdC5weSAgICAgICAgICAgfCAgMiArLQotIDcgZmlsZXMgY2hhbmdl ZCwgMzAgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kb2N1 dGlscy9mcm9udGVuZC5weSBiL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci1pbmRleCBlYmRiZDZhLi40 YjM4OWIwIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvZnJvbnRlbmQucHkKLSsrKyBiL2RvY3V0aWxz L2Zyb250ZW5kLnB5Ci1AQCAtNzQsOSArNzQsOCBAQCBkZWYgdmFsaWRhdGVfZW5jb2Rpbmcoc2V0 dGluZywgdmFsdWUsIG9wdGlvbl9wYXJzZXIsCi0gICAgIHRyeToKLSAgICAgICAgIGNvZGVjcy5s b29rdXAodmFsdWUpCi0gICAgIGV4Y2VwdCBMb29rdXBFcnJvcjoKLS0gICAgICAgIHJhaXNlIChM b29rdXBFcnJvcignc2V0dGluZyAiJXMiOiB1bmtub3duIGVuY29kaW5nOiAiJXMiJwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICUgKHNldHRpbmcsIHZhbHVlKSksCi0tICAgICAgICAgICAg ICAgTm9uZSwgc3lzLmV4Y19pbmZvKClbMl0pCi0rICAgICAgICByYWlzZSBMb29rdXBFcnJvcign c2V0dGluZyAiJXMiOiB1bmtub3duIGVuY29kaW5nOiAiJXMiJwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgJSAoc2V0dGluZywgdmFsdWUpKQotICAgICByZXR1cm4gdmFsdWUKLSAKLSBkZWYg dmFsaWRhdGVfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcihzZXR0aW5nLCB2YWx1ZSwgb3B0aW9uX3Bh cnNlciwKLUBAIC04NCwxMiArODMsMTEgQEAgZGVmIHZhbGlkYXRlX2VuY29kaW5nX2Vycm9yX2hh bmRsZXIoc2V0dGluZywgdmFsdWUsIG9wdGlvbl9wYXJzZXIsCi0gICAgIHRyeToKLSAgICAgICAg IGNvZGVjcy5sb29rdXBfZXJyb3IodmFsdWUpCi0gICAgIGV4Y2VwdCBMb29rdXBFcnJvcjoKLS0g ICAgICAgIHJhaXNlIChMb29rdXBFcnJvcigKLSsgICAgICAgIHJhaXNlIExvb2t1cEVycm9yKAot ICAgICAgICAgICAgICd1bmtub3duIGVuY29kaW5nIGVycm9yIGhhbmRsZXI6ICIlcyIgKGNob2lj ZXM6ICcKLSAgICAgICAgICAgICAnInN0cmljdCIsICJpZ25vcmUiLCAicmVwbGFjZSIsICJiYWNr c2xhc2hyZXBsYWNlIiwgJwotICAgICAgICAgICAgICcieG1sY2hhcnJlZnJlcGxhY2UiLCBhbmQg cG9zc2libHkgb3RoZXJzOyBzZWUgZG9jdW1lbnRhdGlvbiBmb3IgJwotLSAgICAgICAgICAgICd0 aGUgUHl0aG9uIGBgY29kZWNzYGAgbW9kdWxlKScgJSB2YWx1ZSksCi0tICAgICAgICAgICAgICAg Tm9uZSwgc3lzLmV4Y19pbmZvKClbMl0pCi0rICAgICAgICAgICAgJ3RoZSBQeXRob24gYGBjb2Rl Y3NgYCBtb2R1bGUpJyAlIHZhbHVlKQotICAgICByZXR1cm4gdmFsdWUKLSAKLSBkZWYgdmFsaWRh dGVfZW5jb2RpbmdfYW5kX2Vycm9yX2hhbmRsZXIoCi1AQCAtMTI1LDggKzEyMyw3IEBAIGRlZiB2 YWxpZGF0ZV9ib29sZWFuKHNldHRpbmcsIHZhbHVlLCBvcHRpb25fcGFyc2VyLAotICAgICB0cnk6 Ci0gICAgICAgICByZXR1cm4gb3B0aW9uX3BhcnNlci5ib29sZWFuc1t2YWx1ZS5zdHJpcCgpLmxv d2VyKCldCi0gICAgIGV4Y2VwdCBLZXlFcnJvcjoKLS0gICAgICAgIHJhaXNlIChMb29rdXBFcnJv cigndW5rbm93biBib29sZWFuIHZhbHVlOiAiJXMiJyAlIHZhbHVlKSwKLS0gICAgICAgICAgICAg ICBOb25lLCBzeXMuZXhjX2luZm8oKVsyXSkKLSsgICAgICAgIHJhaXNlIExvb2t1cEVycm9yKCd1 bmtub3duIGJvb2xlYW4gdmFsdWU6ICIlcyInICUgdmFsdWUpCi0gCi0gZGVmIHZhbGlkYXRlX3Rl cm5hcnkoc2V0dGluZywgdmFsdWUsIG9wdGlvbl9wYXJzZXIsCi0gICAgICAgICAgICAgICAgICAg ICAgY29uZmlnX3BhcnNlcj1Ob25lLCBjb25maWdfc2VjdGlvbj1Ob25lKToKLUBAIC0xNTcsOCAr MTU0LDcgQEAgZGVmIHZhbGlkYXRlX3RocmVzaG9sZChzZXR0aW5nLCB2YWx1ZSwgb3B0aW9uX3Bh cnNlciwKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICByZXR1cm4gb3B0aW9uX3BhcnNlci50 aHJlc2hvbGRzW3ZhbHVlLmxvd2VyKCldCi0gICAgICAgICBleGNlcHQgKEtleUVycm9yLCBBdHRy aWJ1dGVFcnJvcik6Ci0tICAgICAgICAgICAgcmFpc2UgKExvb2t1cEVycm9yKCd1bmtub3duIHRo cmVzaG9sZDogJXIuJyAlIHZhbHVlKSwKLS0gICAgICAgICAgICAgICAgICAgTm9uZSwgc3lzLmV4 Y19pbmZvWzJdKQotKyAgICAgICAgICAgIHJhaXNlIExvb2t1cEVycm9yKCd1bmtub3duIHRocmVz aG9sZDogJXIuJyAlIHZhbHVlKQotIAotIGRlZiB2YWxpZGF0ZV9jb2xvbl9zZXBhcmF0ZWRfc3Ry aW5nX2xpc3QoCi0gICAgIHNldHRpbmcsIHZhbHVlLCBvcHRpb25fcGFyc2VyLCBjb25maWdfcGFy c2VyPU5vbmUsIGNvbmZpZ19zZWN0aW9uPU5vbmUpOgotQEAgLTM1MCwxMCArMzQ2LDkgQEAgY2xh c3MgT3B0aW9uKG9wdHBhcnNlLk9wdGlvbik6Ci0gICAgICAgICAgICAgICAgIHRyeToKLSAgICAg ICAgICAgICAgICAgICAgIG5ld192YWx1ZSA9IHNlbGYudmFsaWRhdG9yKHNldHRpbmcsIHZhbHVl LCBwYXJzZXIpCi0gICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6Ci0t ICAgICAgICAgICAgICAgICAgICByYWlzZSAob3B0cGFyc2UuT3B0aW9uVmFsdWVFcnJvcigKLSsg ICAgICAgICAgICAgICAgICAgIHJhaXNlIG9wdHBhcnNlLk9wdGlvblZhbHVlRXJyb3IoCi0gICAg ICAgICAgICAgICAgICAgICAgICAgJ0Vycm9yIGluIG9wdGlvbiAiJXMiOlxuICAgICVzJwotLSAg ICAgICAgICAgICAgICAgICAgICAgICUgKG9wdCwgRXJyb3JTdHJpbmcoZXJyb3IpKSksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwgc3lzLmV4Y19pbmZvKClbMl0pCi0rICAgICAg ICAgICAgICAgICAgICAgICAgJSAob3B0LCBFcnJvclN0cmluZyhlcnJvcikpKQotICAgICAgICAg ICAgICAgICBzZXRhdHRyKHZhbHVlcywgc2V0dGluZywgbmV3X3ZhbHVlKQotICAgICAgICAgICAg IGlmIHNlbGYub3ZlcnJpZGVzOgotICAgICAgICAgICAgICAgICBzZXRhdHRyKHZhbHVlcywgc2Vs Zi5vdmVycmlkZXMsIE5vbmUpCi1AQCAtODMwLDEyICs4MjUsMTIgQEAgU2tpcHBpbmcgIiVzIiBj b25maWd1cmF0aW9uIGZpbGUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcs IHZhbHVlLCBvcHRpb25fcGFyc2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25m aWdfcGFyc2VyPXNlbGYsIGNvbmZpZ19zZWN0aW9uPXNlY3Rpb24pCi0gICAgICAgICAgICAgICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOgotLSAgICAgICAgICAgICAgICAgICAgICAg IHJhaXNlIChWYWx1ZUVycm9yKAotKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFcnJvciBpbiBjb25maWcgZmls ZSAiJXMiLCBzZWN0aW9uICJbJXNdIjpcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JyAgICAlc1xuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAlcyA9ICVz JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChmaWxlbmFtZSwgc2VjdGlvbiwgRXJy b3JTdHJpbmcoZXJyb3IpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5n LCB2YWx1ZSkpLCBOb25lLCBzeXMuZXhjX2luZm8oKVsyXSkKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2V0dGluZywgdmFsdWUpKQotICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXQoc2VjdGlvbiwgc2V0dGluZywgbmV3X3ZhbHVlKQotICAgICAgICAgICAgICAgICBpZiBvcHRp b24ub3ZlcnJpZGVzOgotICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXQoc2VjdGlvbiwgb3B0 aW9uLm92ZXJyaWRlcywgTm9uZSkKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9ub2Rlcy5weSBiL2Rv Y3V0aWxzL25vZGVzLnB5Ci1pbmRleCBmYTAyYzZlLi43MTE4OWFiIDEwMDY0NAotLS0tIGEvZG9j dXRpbHMvbm9kZXMucHkKLSsrKyBiL2RvY3V0aWxzL25vZGVzLnB5Ci1AQCAtNTk0LDggKzU5NCw4 IEBAIGNsYXNzIEVsZW1lbnQoTm9kZSk6Ci0gICAgICAgICAgICAgYXNzZXJ0IGtleS5zdGVwIGlu IChOb25lLCAxKSwgJ2Nhbm5vdCBoYW5kbGUgc2xpY2Ugd2l0aCBzdHJpZGUnCi0gICAgICAgICAg ICAgcmV0dXJuIHNlbGYuY2hpbGRyZW5ba2V5LnN0YXJ0OmtleS5zdG9wXQotICAgICAgICAgZWxz ZToKLS0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IsICgnZWxlbWVudCBpbmRleCBtdXN0IGJl IGFuIGludGVnZXIsIGEgc2xpY2UsIG9yICcKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnYW4gYXR0cmlidXRlIG5hbWUgc3RyaW5nJykKLSsgICAgICAgICAgICByYWlzZSBUeXBlRXJy b3IoJ2VsZW1lbnQgaW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyLCBhIHNsaWNlLCBvciAnCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdhbiBhdHRyaWJ1dGUgbmFtZSBzdHJpbmcnKQotIAot ICAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCBpdGVtKToKLSAgICAgICAgIGlmIGlzaW5z dGFuY2Uoa2V5LCBiYXNlc3RyaW5nKToKLUBAIC02MDksOCArNjA5LDggQEAgY2xhc3MgRWxlbWVu dChOb2RlKToKLSAgICAgICAgICAgICAgICAgc2VsZi5zZXR1cF9jaGlsZChub2RlKQotICAgICAg ICAgICAgIHNlbGYuY2hpbGRyZW5ba2V5LnN0YXJ0OmtleS5zdG9wXSA9IGl0ZW0KLSAgICAgICAg IGVsc2U6Ci0tICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yLCAoJ2VsZW1lbnQgaW5kZXggbXVz dCBiZSBhbiBpbnRlZ2VyLCBhIHNsaWNlLCBvciAnCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2FuIGF0dHJpYnV0ZSBuYW1lIHN0cmluZycpCi0rICAgICAgICAgICAgcmFpc2UgVHlw ZUVycm9yKCdlbGVtZW50IGluZGV4IG11c3QgYmUgYW4gaW50ZWdlciwgYSBzbGljZSwgb3IgJwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYW4gYXR0cmlidXRlIG5hbWUgc3RyaW5nJykK LSAKLSAgICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgICBpZiBpc2luc3Rh bmNlKGtleSwgYmFzZXN0cmluZyk6Ci1AQCAtNjIxLDggKzYyMSw4IEBAIGNsYXNzIEVsZW1lbnQo Tm9kZSk6Ci0gICAgICAgICAgICAgYXNzZXJ0IGtleS5zdGVwIGluIChOb25lLCAxKSwgJ2Nhbm5v dCBoYW5kbGUgc2xpY2Ugd2l0aCBzdHJpZGUnCi0gICAgICAgICAgICAgZGVsIHNlbGYuY2hpbGRy ZW5ba2V5LnN0YXJ0OmtleS5zdG9wXQotICAgICAgICAgZWxzZToKLS0gICAgICAgICAgICByYWlz ZSBUeXBlRXJyb3IsICgnZWxlbWVudCBpbmRleCBtdXN0IGJlIGFuIGludGVnZXIsIGEgc2ltcGxl ICcKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2xpY2UsIG9yIGFuIGF0dHJpYnV0 ZSBuYW1lIHN0cmluZycpCi0rICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdlbGVtZW50IGlu ZGV4IG11c3QgYmUgYW4gaW50ZWdlciwgYSBzaW1wbGUgJwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc2xpY2UsIG9yIGFuIGF0dHJpYnV0ZSBuYW1lIHN0cmluZycpCi0gCi0gICAgIGRl ZiBfX2FkZF9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgIHJldHVybiBzZWxmLmNoaWxkcmVuICsg b3RoZXIKLWRpZmYgLS1naXQgYS9kb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5IGIv ZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weQotaW5kZXggMTI3OWY1MC4uMjNiOWM5 NSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0ZXIucHkKLSsrKyBi L2RvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0ZXIucHkKLUBAIC01Nyw3ICs1Nyw3IEBAIGNs YXNzIFRpdGxlUHJvbW90ZXIoVHJhbnNmb3JtKToKLSAgICAgICAgICIiIgotICAgICAgICAgIyBU eXBlIGNoZWNrCi0gICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShub2RlLCBub2Rlcy5FbGVtZW50 KToKLS0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IsICdub2RlIG11c3QgYmUgb2YgRWxlbWVu dC1kZXJpdmVkIHR5cGUuJwotKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignbm9kZSBtdXN0 IGJlIG9mIEVsZW1lbnQtZGVyaXZlZCB0eXBlLicpCi0gCi0gICAgICAgICAjIGBub2RlYCBtdXN0 IG5vdCBoYXZlIGEgdGl0bGUgeWV0LgotICAgICAgICAgYXNzZXJ0IG5vdCAobGVuKG5vZGUpIGFu ZCBpc2luc3RhbmNlKG5vZGVbMF0sIG5vZGVzLnRpdGxlKSkKLUBAIC0xMDAsNyArMTAwLDcgQEAg Y2xhc3MgVGl0bGVQcm9tb3RlcihUcmFuc2Zvcm0pOgotICAgICAgICAgIiIiCi0gICAgICAgICAj IFR5cGUgY2hlY2sKLSAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG5vZGUsIG5vZGVzLkVsZW1l bnQpOgotLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvciwgJ25vZGUgbXVzdCBiZSBvZiBFbGVt ZW50LWRlcml2ZWQgdHlwZS4nCi0rICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdub2RlIG11 c3QgYmUgb2YgRWxlbWVudC1kZXJpdmVkIHR5cGUuJykKLSAKLSAgICAgICAgIHN1YnNlY3Rpb24s IGluZGV4ID0gc2VsZi5jYW5kaWRhdGVfaW5kZXgobm9kZSkKLSAgICAgICAgIGlmIGluZGV4IGlz IE5vbmU6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvcm9tYW4ucHkgYi9kb2N1dGlscy91 dGlscy9yb21hbi5weQotaW5kZXggMDMzNWYyOS4uZmM0NjgwZCAxMDA2NDQKLS0tLSBhL2RvY3V0 aWxzL3V0aWxzL3JvbWFuLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9yb21hbi5weQotQEAgLTQw LDkgKzQwLDkgQEAgcm9tYW5OdW1lcmFsTWFwID0gKCgnTScsICAxMDAwKSwKLSBkZWYgdG9Sb21h bihuKToKLSAgICAgIiIiY29udmVydCBpbnRlZ2VyIHRvIFJvbWFuIG51bWVyYWwiIiIKLSAgICAg aWYgbm90ICgwIDwgbiA8IDUwMDApOgotLSAgICAgICAgcmFpc2UgT3V0T2ZSYW5nZUVycm9yLCAi bnVtYmVyIG91dCBvZiByYW5nZSAobXVzdCBiZSAxLi40OTk5KSIKLSsgICAgICAgIHJhaXNlIE91 dE9mUmFuZ2VFcnJvcigibnVtYmVyIG91dCBvZiByYW5nZSAobXVzdCBiZSAxLi40OTk5KSIpCi0g ICAgIGlmIGludChuKSAhPSBuOgotLSAgICAgICAgcmFpc2UgTm90SW50ZWdlckVycm9yLCAiZGVj aW1hbHMgY2FuIG5vdCBiZSBjb252ZXJ0ZWQiCi0rICAgICAgICByYWlzZSBOb3RJbnRlZ2VyRXJy b3IoImRlY2ltYWxzIGNhbiBub3QgYmUgY29udmVydGVkIikKLSAKLSAgICAgcmVzdWx0ID0gIiIK LSAgICAgZm9yIG51bWVyYWwsIGludGVnZXIgaW4gcm9tYW5OdW1lcmFsTWFwOgotQEAgLTY3LDkg KzY3LDEwIEBAIHJvbWFuTnVtZXJhbFBhdHRlcm4gPSByZS5jb21waWxlKCIiIgotIGRlZiBmcm9t Um9tYW4ocyk6Ci0gICAgICIiImNvbnZlcnQgUm9tYW4gbnVtZXJhbCB0byBpbnRlZ2VyIiIiCi0g ICAgIGlmIG5vdCBzOgotLSAgICAgICAgcmFpc2UgSW52YWxpZFJvbWFuTnVtZXJhbEVycm9yLCAn SW5wdXQgY2FuIG5vdCBiZSBibGFuaycKLSsgICAgICAgIHJhaXNlIEludmFsaWRSb21hbk51bWVy YWxFcnJvcignSW5wdXQgY2FuIG5vdCBiZSBibGFuaycpCi0rCi0gICAgIGlmIG5vdCByb21hbk51 bWVyYWxQYXR0ZXJuLnNlYXJjaChzKToKLS0gICAgICAgIHJhaXNlIEludmFsaWRSb21hbk51bWVy YWxFcnJvciwgJ0ludmFsaWQgUm9tYW4gbnVtZXJhbDogJXMnICUgcwotKyAgICAgICAgcmFpc2Ug SW52YWxpZFJvbWFuTnVtZXJhbEVycm9yKCdJbnZhbGlkIFJvbWFuIG51bWVyYWw6ICVzJyAlIHMp Ci0gCi0gICAgIHJlc3VsdCA9IDAKLSAgICAgaW5kZXggPSAwCi1kaWZmIC0tZ2l0IGEvZG9jdXRp bHMvd3JpdGVycy9tYW5wYWdlLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5Ci1pbmRl eCA5Yzg4N2M3Li5jYmI4NjQ4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdl LnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLUBAIC03MTUsNyArNzE1LDcg QEAgY2xhc3MgVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6Ci0gICAgICAgICBwYXNzCi0g Ci0gICAgIGRlZiB2aXNpdF9oZWFkZXIoc2VsZiwgbm9kZSk6Ci0tICAgICAgICByYWlzZSBOb3RJ bXBsZW1lbnRlZEVycm9yLCBub2RlLmFzdGV4dCgpCi0rICAgICAgICByYWlzZSBOb3RJbXBsZW1l bnRlZEVycm9yKG5vZGUuYXN0ZXh0KCkpCi0gCi0gICAgIGRlZiBkZXBhcnRfaGVhZGVyKHNlbGYs IG5vZGUpOgotICAgICAgICAgcGFzcwotQEAgLTg1NSw3ICs4NTUsNyBAQCBjbGFzcyBUcmFuc2xh dG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAgIHNlbGYuZGVwYXJ0X2xpdGVyYWxfYmxv Y2sobm9kZSkKLSAKLSAgICAgZGVmIHZpc2l0X21ldGEoc2VsZiwgbm9kZSk6Ci0tICAgICAgICBy YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCBub2RlLmFzdGV4dCgpCi0rICAgICAgICByYWlzZSBO b3RJbXBsZW1lbnRlZEVycm9yKG5vZGUuYXN0ZXh0KCkpCi0gCi0gICAgIGRlZiBkZXBhcnRfbWV0 YShzZWxmLCBub2RlKToKLSAgICAgICAgIHBhc3MKLWRpZmYgLS1naXQgYS90ZXN0L0RvY3V0aWxz VGVzdFN1cHBvcnQucHkgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLWluZGV4IGM2ZjVi OWYuLmExZmVjMjUgMTAwNjQ0Ci0tLS0gYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLSsr KyBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotQEAgLTEyMywzMCArMTIzLDE3IEBAIGNs YXNzIFN0YW5kYXJkVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgICAgb3Bl cmF0b3IuCi0gICAgICAgICAiIiIKLSAgICAgICAgIGlmIG5vdCBmaXJzdCA9PSBzZWNvbmQ6Ci0t ICAgICAgICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJlRXhjZXB0aW9uLCAoCi0tICAgICAgICAgICAg ICAgICAgICBtc2cgb3IgJyVzICE9ICVzJyAlIF9mb3JtYXRfc3RyKGZpcnN0LCBzZWNvbmQpKQot KyAgICAgICAgICAgIHJhaXNlIHNlbGYuZmFpbHVyZUV4Y2VwdGlvbigKLSsgICAgICAgICAgICAg ICAgbXNnIG9yICclcyAhPSAlcycgJSBfZm9ybWF0X3N0cihmaXJzdCwgc2Vjb25kKSkKLSAKLSAg ICAgZGVmIGFzc2VydE5vdEVxdWFsKHNlbGYsIGZpcnN0LCBzZWNvbmQsIG1zZz1Ob25lKToKLSAg ICAgICAgICIiIkZhaWwgaWYgdGhlIHR3byBvYmplY3RzIGFyZSBlcXVhbCBhcyBkZXRlcm1pbmVk IGJ5IHRoZSAnPT0nCi0gICAgICAgICAgICBvcGVyYXRvci4KLSAgICAgICAgICIiIgotICAgICAg ICAgaWYgZmlyc3QgPT0gc2Vjb25kOgotLSAgICAgICAgICAgIHJhaXNlIHNlbGYuZmFpbHVyZUV4 Y2VwdGlvbiwgKAotLSAgICAgICAgICAgICAgICAgICAgbXNnIG9yICclcyA9PSAlcycgJSBfZm9y bWF0X3N0cihmaXJzdCwgc2Vjb25kKSkKLSsgICAgICAgICAgICByYWlzZSBzZWxmLmZhaWx1cmVF eGNlcHRpb24oCi0rICAgICAgICAgICAgICAgIG1zZyBvciAnJXMgPT0gJXMnICUgX2Zvcm1hdF9z dHIoZmlyc3QsIHNlY29uZCkpCi0gCi0tICAgICMgYXNzZXJ0SW4gYW5kIGFzc2VydE5vdEluOiBu ZXcgaW4gUHl0aG9uIDIuNzoKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgyLDcpOgotLSAg ICAKLS0gICAgICAgIGRlZiBhc3NlcnRJbihzZWxmLCBhLCBiLCBtc2c9Tm9uZSk6Ci0tICAgICAg ICAgICAgaWYgYSBub3QgaW4gYjoKLS0gICAgICAgICAgICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJl RXhjZXB0aW9uLCAoCi0tICAgICAgICAgICAgICAgICAgICAgICAgbXNnIG9yICclcyBub3QgaW4g JXMnICUgX2Zvcm1hdF9zdHIoYSwgYikpCi0tICAgIAotLSAgICAgICAgZGVmIGFzc2VydE5vdElu KHNlbGYsIGEsIGIsIG1zZz1Ob25lKToKLS0gICAgICAgICAgICBpZiBhIGluIGI6Ci0tICAgICAg ICAgICAgICAgIHJhaXNlIHNlbGYuZmFpbHVyZUV4Y2VwdGlvbiwgKAotLSAgICAgICAgICAgICAg ICAgICAgICAgIG1zZyBvciAnJXMgaW4gJXMnICUgX2Zvcm1hdF9zdHIoYSwgYikpCi0tICAgIAot ICAgICAjIGFsaWFzZXMgZm9yIGFzc2VydGlvbiBtZXRob2RzLCBkZXByZWNhdGVkIHNpbmNlIFB5 dGhvbiAyLjcKLSAKLSAgICAgZmFpbFVubGVzc0VxdWFsID0gYXNzZXJ0RXF1YWxzID0gYXNzZXJ0 RXF1YWwKLWRpZmYgLS1naXQgYS90ZXN0L3BhY2thZ2VfdW5pdHRlc3QucHkgYi90ZXN0L3BhY2th Z2VfdW5pdHRlc3QucHkKLWluZGV4IDE2YjAwZGMuLjRkYjgyNmIgMTAwNjQ0Ci0tLS0gYS90ZXN0 L3BhY2thZ2VfdW5pdHRlc3QucHkKLSsrKyBiL3Rlc3QvcGFja2FnZV91bml0dGVzdC5weQotQEAg LTEyMCw3ICsxMjAsNyBAQCBkZWYgbG9hZFRlc3RNb2R1bGVzKHBhdGgsIG5hbWU9JycsIHBhY2th Z2VzPU5vbmUpOgotICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzdWl0ZSwgdW5pdHRlc3Qu VGVzdFN1aXRlKToKLSAgICAgICAgICAgICAgICAgdGVzdFN1aXRlLmFkZFRlc3Qoc3VpdGUpCi0g ICAgICAgICAgICAgZWxzZToKLS0gICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3Is ICJkb24ndCB1bmRlcnN0YW5kIHN1aXRlICglcykiICUgbW9kCi0rICAgICAgICAgICAgICAgIHJh aXNlIEFzc2VydGlvbkVycm9yKCJkb24ndCB1bmRlcnN0YW5kIHN1aXRlICglcykiICUgbW9kKQot ICAgICBzeXMucGF0aC5wb3AoMCkKLSAgICAgcmV0dXJuIHRlc3RTdWl0ZQotIAotLS0gCi0yLjI0 LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxz L3BhdGNoZXMvMDAwNy1weTMtUmVwbGFjZS1zeXMubWF4aW50LXdpdGgtc3lzLm1heHNpemUucGF0 Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDctcHkzLVJlcGxhY2Utc3lz Lm1heGludC13aXRoLXN5cy5tYXhzaXplLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBlYjBjNDBmN2ExZi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRp bHMvcGF0Y2hlcy8wMDA3LXB5My1SZXBsYWNlLXN5cy5tYXhpbnQtd2l0aC1zeXMubWF4c2l6ZS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi1Gcm9tIGQ2Zjg2MzQwMDRhYTY3 OWQyZDcxMDM3YmQ2M2FmODIwNTJmMDhmZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IFR1ZSwgMTkgTm92 IDIwMTkgMjM6NTM6NTQgKzA3MDAKLVN1YmplY3Q6IFtQQVRDSCAwNy8yNl0gcHkzOiBSZXBsYWNl ICdzeXMubWF4aW50JyB3aXRoICdzeXMubWF4c2l6ZScKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKLQotRnJvbSB0aGUgUHl0aG9uIDMgcmVsZWFzZSBkb2NzIFsxXToKLQotICBU aGUgc3lzLm1heGludCBjb25zdGFudCB3YXMgcmVtb3ZlZCwgc2luY2UgdGhlcmUgaXMgbm8gbG9u Z2VyIGEgbGltaXQKLSAgdG8gdGhlIHZhbHVlIG9mIGludGVnZXJzLiBIb3dldmVyLCBzeXMubWF4 c2l6ZSBjYW4gYmUgdXNlZCBhcyBhbgotICBpbnRlZ2VyIGxhcmdlciB0aGFuIGFueSBwcmFjdGlj YWwgbGlzdCBvciBzdHJpbmcgaW5kZXguIEl0IGNvbmZvcm1zIHRvCi0gIHRoZSBpbXBsZW1lbnRh dGlvbuKAmXMg4oCcbmF0dXJhbOKAnSBpbnRlZ2VyIHNpemUgYW5kIGlzIHR5cGljYWxseSB0aGUK LSAgc2FtZSBhcyBzeXMubWF4aW50IGluIHByZXZpb3VzIHJlbGVhc2VzIG9uIHRoZSBzYW1lIHBs YXRmb3JtIChhc3N1bWluZwotICB0aGUgc2FtZSBidWlsZCBvcHRpb25zKS4KLQotWzFdIGh0dHBz Oi8vZG9jcy5weXRob24ub3JnLzMuMS93aGF0c25ldy8zLjAuaHRtbCNpbnRlZ2VycwotCi1TaWdu ZWQtb2ZmLWJ5OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2 bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM1NCA5 Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4g VHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvbm9k ZXMucHkgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC90 YWJsZXBhcnNlci5weSB8IDIgKy0KLSBkb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgICAgICAgICAg ICB8IDIgKy0KLSBkb2N1dGlscy90cmFuc2Zvcm1zL3BhcnRzLnB5ICAgICAgICB8IDQgKystLQot IDQgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvZG9jdXRpbHMvbm9kZXMucHkgYi9kb2N1dGlscy9ub2Rlcy5weQotaW5kZXggNzEx ODlhYi4uYzUyNDM3MyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL25vZGVzLnB5Ci0rKysgYi9kb2N1 dGlscy9ub2Rlcy5weQotQEAgLTk3Nyw3ICs5NzcsNyBAQCBjbGFzcyBFbGVtZW50KE5vZGUpOgot ICAgICAgICAgICAgICAgICAgICAgICAgJ0xvc2luZyAiJXMiIGF0dHJpYnV0ZTogJXMnICUgKGF0 dCwgc2VsZlthdHRdKQotICAgICAgICAgc2VsZi5wYXJlbnQucmVwbGFjZShzZWxmLCBuZXcpCi0g Ci0tICAgIGRlZiBmaXJzdF9jaGlsZF9tYXRjaGluZ19jbGFzcyhzZWxmLCBjaGlsZGNsYXNzLCBz dGFydD0wLCBlbmQ9c3lzLm1heGludCk6Ci0rICAgIGRlZiBmaXJzdF9jaGlsZF9tYXRjaGluZ19j bGFzcyhzZWxmLCBjaGlsZGNsYXNzLCBzdGFydD0wLCBlbmQ9c3lzLm1heHNpemUpOgotICAgICAg ICAgIiIiCi0gICAgICAgICBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGlsZCB3aG9z ZSBjbGFzcyBleGFjdGx5IG1hdGNoZXMuCi0gCi1AQCAtOTk3LDcgKzk5Nyw3IEBAIGNsYXNzIEVs ZW1lbnQoTm9kZSk6Ci0gICAgICAgICByZXR1cm4gTm9uZQotIAotICAgICBkZWYgZmlyc3RfY2hp bGRfbm90X21hdGNoaW5nX2NsYXNzKHNlbGYsIGNoaWxkY2xhc3MsIHN0YXJ0PTAsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kPXN5cy5tYXhpbnQpOgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZD1zeXMubWF4c2l6ZSk6Ci0gICAg ICAgICAiIiIKLSAgICAgICAgIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoaWxkIHdo b3NlIGNsYXNzIGRvZXMgKm5vdCogbWF0Y2guCi0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFy c2Vycy9yc3QvdGFibGVwYXJzZXIucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNl ci5weQotaW5kZXggNDVhZjcyZi4uMjc2MGVhMCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNl cnMvcnN0L3RhYmxlcGFyc2VyLnB5Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBh cnNlci5weQotQEAgLTQ5OCw3ICs0OTgsNyBAQCBjbGFzcyBTaW1wbGVUYWJsZVBhcnNlcihUYWJs ZVBhcnNlcik6Ci0gICAgICAgICAiIiIKLSAgICAgICAgICMgIkluZmluaXRlIiB2YWx1ZSBmb3Ig YSBkdW1teSBsYXN0IGNvbHVtbidzIGJlZ2lubmluZywgdXNlZCB0bwotICAgICAgICAgIyBjaGVj ayBmb3IgdGV4dCBvdmVyZmxvdzoKLS0gICAgICAgIGNvbHVtbnMuYXBwZW5kKChzeXMubWF4aW50 LCBOb25lKSkKLSsgICAgICAgIGNvbHVtbnMuYXBwZW5kKChzeXMubWF4c2l6ZSwgTm9uZSkpCi0g ICAgICAgICBsYXN0Y29sID0gbGVuKGNvbHVtbnMpIC0gMgotICAgICAgICAgIyBjb21iaW5pbmcg Y2hhcmFjdGVycyBkbyBub3QgY29udHJpYnV0ZSB0byB0aGUgY29sdW1uIHdpZHRoCi0gICAgICAg ICBsaW5lcyA9IFtzdHJpcF9jb21iaW5pbmdfY2hhcnMobGluZSkgZm9yIGxpbmUgaW4gbGluZXNd Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5IGIvZG9jdXRpbHMvc3RhdGVt YWNoaW5lLnB5Ci1pbmRleCBiNTZmM2M1Li41ZDdmZTc3IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMv c3RhdGVtYWNoaW5lLnB5Ci0rKysgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLUBAIC0xMzQx LDcgKzEzNDEsNyBAQCBjbGFzcyBTdHJpbmdMaXN0KFZpZXdMaXN0KToKLSAKLSAgICAgIiIiQSBg Vmlld0xpc3RgIHdpdGggc3RyaW5nLXNwZWNpZmljIG1ldGhvZHMuIiIiCi0gCi0tICAgIGRlZiB0 cmltX2xlZnQoc2VsZiwgbGVuZ3RoLCBzdGFydD0wLCBlbmQ9c3lzLm1heGludCk6Ci0rICAgIGRl ZiB0cmltX2xlZnQoc2VsZiwgbGVuZ3RoLCBzdGFydD0wLCBlbmQ9c3lzLm1heHNpemUpOgotICAg ICAgICAgIiIiCi0gICAgICAgICBUcmltIGBsZW5ndGhgIGNoYXJhY3RlcnMgb2ZmIHRoZSBiZWdp bm5pbmcgb2YgZWFjaCBpdGVtLCBpbi1wbGFjZSwKLSAgICAgICAgIGZyb20gaW5kZXggYHN0YXJ0 YCB0byBgZW5kYC4gIE5vIHdoaXRlc3BhY2UtY2hlY2tpbmcgaXMgZG9uZSBvbiB0aGUKLWRpZmYg LS1naXQgYS9kb2N1dGlscy90cmFuc2Zvcm1zL3BhcnRzLnB5IGIvZG9jdXRpbHMvdHJhbnNmb3Jt cy9wYXJ0cy5weQotaW5kZXggMTFiMWIyMy4uN2EyZmEwZiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxz L3RyYW5zZm9ybXMvcGFydHMucHkKLSsrKyBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvcGFydHMucHkK LUBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFNlY3ROdW0oVHJhbnNmb3JtKToKLSAgICAgICAgIHNl bGYuc3RhcnRub2RlLnBhcmVudC5yZW1vdmUoc2VsZi5zdGFydG5vZGUpCi0gICAgICAgICBpZiBz ZWxmLmRvY3VtZW50LnNldHRpbmdzLnNlY3RudW1feGZvcm06Ci0gICAgICAgICAgICAgaWYgc2Vs Zi5tYXhkZXB0aCBpcyBOb25lOgotLSAgICAgICAgICAgICAgICBzZWxmLm1heGRlcHRoID0gc3lz Lm1heGludAotKyAgICAgICAgICAgICAgICBzZWxmLm1heGRlcHRoID0gc3lzLm1heHNpemUKLSAg ICAgICAgICAgICBzZWxmLnVwZGF0ZV9zZWN0aW9uX251bWJlcnMoc2VsZi5kb2N1bWVudCkKLSAg ICAgICAgIGVsc2U6ICMgc3RvcmUgZGV0YWlscyBmb3IgZXZlbnR1YWwgc2VjdGlvbiBudW1iZXJp bmcgYnkgdGhlIHdyaXRlcgotICAgICAgICAgICAgIHNlbGYuZG9jdW1lbnQuc2V0dGluZ3Muc2Vj dG51bV9kZXB0aCA9IHNlbGYubWF4ZGVwdGgKLUBAIC0xMjAsNyArMTIwLDcgQEAgY2xhc3MgQ29u dGVudHMoVHJhbnNmb3JtKToKLSAgICAgICAgIHNlY3Rpb25zID0gW3NlY3QgZm9yIHNlY3QgaW4g bm9kZSBpZiBpc2luc3RhbmNlKHNlY3QsIG5vZGVzLnNlY3Rpb24pXQotICAgICAgICAgZW50cmll cyA9IFtdCi0gICAgICAgICBhdXRvbnVtID0gMAotLSAgICAgICAgZGVwdGggPSBzZWxmLnN0YXJ0 bm9kZS5kZXRhaWxzLmdldCgnZGVwdGgnLCBzeXMubWF4aW50KQotKyAgICAgICAgZGVwdGggPSBz ZWxmLnN0YXJ0bm9kZS5kZXRhaWxzLmdldCgnZGVwdGgnLCBzeXMubWF4c2l6ZSkKLSAgICAgICAg IGZvciBzZWN0aW9uIGluIHNlY3Rpb25zOgotICAgICAgICAgICAgIHRpdGxlID0gc2VjdGlvblsw XQotICAgICAgICAgICAgIGF1dG8gPSB0aXRsZS5nZXQoJ2F1dG8nKSAgICAjIE1heSBiZSBzZXQg YnkgU2VjdE51bS4KLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQgYS9z cmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDgtcHkzLVJlcGxhY2UtdHlwZXMuU2xp Y2VUeXBlLXdpdGgtc2xpY2UtcmVtb3ZlLXR5cGVzLi5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRv Y3V0aWxzL3BhdGNoZXMvMDAwOC1weTMtUmVwbGFjZS10eXBlcy5TbGljZVR5cGUtd2l0aC1zbGlj ZS1yZW1vdmUtdHlwZXMuLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzFj NmZhN2Q2Yi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hl cy8wMDA4LXB5My1SZXBsYWNlLXR5cGVzLlNsaWNlVHlwZS13aXRoLXNsaWNlLXJlbW92ZS10eXBl cy4ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotRnJvbSBhNDZmMmJkZWMy MDA2OGNmNzlmZjE4MmFlMDI0ZmMxOTg5ZDQ1Yzc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBNb24sIDI2 IEF1ZyAyMDE5IDE2OjQyOjUwICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMDgvMjZdIHB5MzogUmVw bGFjZSAndHlwZXMuU2xpY2VUeXBlJyB3aXRoIHNsaWNlLCByZW1vdmUKLSAndHlwZXMuQ2xhc3NU eXBlJy4KLQotVGhlc2UgdHlwZXMgaGF2ZSBiZWVuIHJlbW92ZWQgaW4gUHl0aG9uIDMsCi1gU2xp Y2VUeXBlYCBpcyBhbiBhbGlhcyBmb3IgYHNsaWNlYCBhbHJlYWR5IGluIFB5dGhvbiAyLjcsCi1g Q2xhc3NUeXBlYCBpcyBmb3IgdXNlci1kZWZpbmVkIG9sZC1zdHlsZSBjbGFzc2VzICh3ZSBub3cg dXNlIG9ubHkgbmV3IHN0eWxlIGNsYXNzZXMpLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEZp bnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2Rl LnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM1NSA5Mjk1NDNmNi1lNGYyLTAzMTAtOThh Ni1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdk YW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvbm9kZXMucHkgICAgICAgIHwgMTEgKysr KystLS0tLS0KLSBkb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgfCAgNSArKy0tLQotIHRlc3QvdGVz dF9ub2Rlcy5weSAgICAgICB8ICA0ICsrLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9u cygrKSwgMTEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kb2N1dGlscy9ub2Rlcy5weSBi L2RvY3V0aWxzL25vZGVzLnB5Ci1pbmRleCBjNTI0MzczLi5hOGMwNDc4IDEwMDY0NAotLS0tIGEv ZG9jdXRpbHMvbm9kZXMucHkKLSsrKyBiL2RvY3V0aWxzL25vZGVzLnB5Ci1AQCAtMjcsNyArMjcs NiBAQCBpbXBvcnQgc3lzCi0gaW1wb3J0IG9zCi0gaW1wb3J0IHJlCi0gaW1wb3J0IHdhcm5pbmdz Ci0taW1wb3J0IHR5cGVzCi0gaW1wb3J0IHVuaWNvZGVkYXRhCi0gCi0gaWYgc3lzLnZlcnNpb25f aW5mbyA+PSAoMywgMCk6Ci1AQCAtMjU3LDExICsyNTYsMTEgQEAgY2xhc3MgTm9kZShvYmplY3Qp OgotICAgICAgICAgaWYgaW5jbHVkZV9zZWxmIGFuZCBkZXNjZW5kIGFuZCBub3Qgc2libGluZ3M6 Ci0gICAgICAgICAgICAgaWYgY29uZGl0aW9uIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgIHJl dHVybiBzZWxmLl9hbGxfdHJhdmVyc2UoKQotLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShj b25kaXRpb24sICh0eXBlcy5DbGFzc1R5cGUsIHR5cGUpKToKLSsgICAgICAgICAgICBlbGlmIGlz aW5zdGFuY2UoY29uZGl0aW9uLCB0eXBlKToKLSAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYu X2Zhc3RfdHJhdmVyc2UoY29uZGl0aW9uKQotICAgICAgICAgIyBDaGVjayBpZiBgY29uZGl0aW9u YCBpcyBhIGNsYXNzIChjaGVjayBmb3IgVHlwZVR5cGUgZm9yIFB5dGhvbgotICAgICAgICAgIyBp bXBsZW1lbnRhdGlvbnMgdGhhdCB1c2Ugb25seSBuZXctc3R5bGUgY2xhc3NlcywgbGlrZSBQeVB5 KS4KLS0gICAgICAgIGlmIGlzaW5zdGFuY2UoY29uZGl0aW9uLCAodHlwZXMuQ2xhc3NUeXBlLCB0 eXBlKSk6Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKGNvbmRpdGlvbiwgdHlwZSk6Ci0gICAgICAg ICAgICAgbm9kZV9jbGFzcyA9IGNvbmRpdGlvbgotICAgICAgICAgICAgIGRlZiBjb25kaXRpb24o bm9kZSwgbm9kZV9jbGFzcz1ub2RlX2NsYXNzKToKLSAgICAgICAgICAgICAgICAgcmV0dXJuIGlz aW5zdGFuY2Uobm9kZSwgbm9kZV9jbGFzcykKLUBAIC01OTAsNyArNTg5LDcgQEAgY2xhc3MgRWxl bWVudChOb2RlKToKLSAgICAgICAgICAgICByZXR1cm4gc2VsZi5hdHRyaWJ1dGVzW2tleV0KLSAg ICAgICAgIGVsaWYgaXNpbnN0YW5jZShrZXksIGludCk6Ci0gICAgICAgICAgICAgcmV0dXJuIHNl bGYuY2hpbGRyZW5ba2V5XQotLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGtleSwgdHlwZXMuU2xp Y2VUeXBlKToKLSsgICAgICAgIGVsaWYgaXNpbnN0YW5jZShrZXksIHNsaWNlKToKLSAgICAgICAg ICAgICBhc3NlcnQga2V5LnN0ZXAgaW4gKE5vbmUsIDEpLCAnY2Fubm90IGhhbmRsZSBzbGljZSB3 aXRoIHN0cmlkZScKLSAgICAgICAgICAgICByZXR1cm4gc2VsZi5jaGlsZHJlbltrZXkuc3RhcnQ6 a2V5LnN0b3BdCi0gICAgICAgICBlbHNlOgotQEAgLTYwMyw3ICs2MDIsNyBAQCBjbGFzcyBFbGVt ZW50KE5vZGUpOgotICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGtleSwgaW50KToKLSAgICAgICAg ICAgICBzZWxmLnNldHVwX2NoaWxkKGl0ZW0pCi0gICAgICAgICAgICAgc2VsZi5jaGlsZHJlbltr ZXldID0gaXRlbQotLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGtleSwgdHlwZXMuU2xpY2VUeXBl KToKLSsgICAgICAgIGVsaWYgaXNpbnN0YW5jZShrZXksIHNsaWNlKToKLSAgICAgICAgICAgICBh c3NlcnQga2V5LnN0ZXAgaW4gKE5vbmUsIDEpLCAnY2Fubm90IGhhbmRsZSBzbGljZSB3aXRoIHN0 cmlkZScKLSAgICAgICAgICAgICBmb3Igbm9kZSBpbiBpdGVtOgotICAgICAgICAgICAgICAgICBz ZWxmLnNldHVwX2NoaWxkKG5vZGUpCi1AQCAtNjE3LDcgKzYxNiw3IEBAIGNsYXNzIEVsZW1lbnQo Tm9kZSk6Ci0gICAgICAgICAgICAgZGVsIHNlbGYuYXR0cmlidXRlc1trZXldCi0gICAgICAgICBl bGlmIGlzaW5zdGFuY2Uoa2V5LCBpbnQpOgotICAgICAgICAgICAgIGRlbCBzZWxmLmNoaWxkcmVu W2tleV0KLS0gICAgICAgIGVsaWYgaXNpbnN0YW5jZShrZXksIHR5cGVzLlNsaWNlVHlwZSk6Ci0r ICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoa2V5LCBzbGljZSk6Ci0gICAgICAgICAgICAgYXNzZXJ0 IGtleS5zdGVwIGluIChOb25lLCAxKSwgJ2Nhbm5vdCBoYW5kbGUgc2xpY2Ugd2l0aCBzdHJpZGUn Ci0gICAgICAgICAgICAgZGVsIHNlbGYuY2hpbGRyZW5ba2V5LnN0YXJ0OmtleS5zdG9wXQotICAg ICAgICAgZWxzZToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgYi9kb2N1 dGlscy9zdGF0ZW1hY2hpbmUucHkKLWluZGV4IDVkN2ZlNzcuLjA2ODA4M2EgMTAwNjQ0Ci0tLS0g YS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLSsrKyBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5w eQotQEAgLTEwOSw3ICsxMDksNiBAQCBfX2RvY2Zvcm1hdF9fID0gJ3Jlc3RydWN0dXJlZHRleHQn Ci0gCi0gaW1wb3J0IHN5cwotIGltcG9ydCByZQotLWltcG9ydCB0eXBlcwotIGltcG9ydCB1bmlj b2RlZGF0YQotIGZyb20gZG9jdXRpbHMgaW1wb3J0IHV0aWxzCi0gZnJvbSBkb2N1dGlscy51dGls cy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IEVycm9yT3V0cHV0Ci1AQCAtMTE0OCw3ICsxMTQ3LDcg QEAgY2xhc3MgVmlld0xpc3Qob2JqZWN0KToKLSAgICAgIyBqdXN0IHdvcmtzLgotIAotICAgICBk ZWYgX19nZXRpdGVtX18oc2VsZiwgaSk6Ci0tICAgICAgICBpZiBpc2luc3RhbmNlKGksIHR5cGVz LlNsaWNlVHlwZSk6Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKGksIHNsaWNlKToKLSAgICAgICAg ICAgICBhc3NlcnQgaS5zdGVwIGluIChOb25lLCAxKSwgICdjYW5ub3QgaGFuZGxlIHNsaWNlIHdp dGggc3RyaWRlJwotICAgICAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLmRhdGFb aS5zdGFydDppLnN0b3BdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVt cz1zZWxmLml0ZW1zW2kuc3RhcnQ6aS5zdG9wXSwKLUBAIC0xMTU3LDcgKzExNTYsNyBAQCBjbGFz cyBWaWV3TGlzdChvYmplY3QpOgotICAgICAgICAgICAgIHJldHVybiBzZWxmLmRhdGFbaV0KLSAK LSAgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGksIGl0ZW0pOgotLSAgICAgICAgaWYgaXNpbnN0 YW5jZShpLCB0eXBlcy5TbGljZVR5cGUpOgotKyAgICAgICAgaWYgaXNpbnN0YW5jZShpLCBzbGlj ZSk6Ci0gICAgICAgICAgICAgYXNzZXJ0IGkuc3RlcCBpbiAoTm9uZSwgMSksICdjYW5ub3QgaGFu ZGxlIHNsaWNlIHdpdGggc3RyaWRlJwotICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGl0 ZW0sIFZpZXdMaXN0KToKLSAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdhc3NpZ25p bmcgbm9uLVZpZXdMaXN0IHRvIFZpZXdMaXN0IHNsaWNlJykKLWRpZmYgLS1naXQgYS90ZXN0L3Rl c3Rfbm9kZXMucHkgYi90ZXN0L3Rlc3Rfbm9kZXMucHkKLWluZGV4IDkyNDU2OWYuLjY3OWM5OGUg MTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfbm9kZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9ub2Rlcy5w eQotQEAgLTExLDcgKzExLDcgQEAgVGVzdCBtb2R1bGUgZm9yIG5vZGVzLnB5LgotIAotIGltcG9y dCBzeXMKLSBpbXBvcnQgdW5pdHRlc3QKLS1pbXBvcnQgdHlwZXMKLSsKLSBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydCAgICAgICAgICAgICAgIyBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSBkb2N1 dGlscwotIGZyb20gRG9jdXRpbHNUZXN0U3VwcG9ydCBpbXBvcnQgbm9kZXMsIHV0aWxzCi0gCi1A QCAtMzU5LDcgKzM1OSw3IEBAIGNsYXNzIE1pc2NUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g ICAgICAgICBub2RlX2NsYXNzX25hbWVzID0gW10KLSAgICAgICAgIGZvciB4IGluIGRpcihub2Rl cyk6Ci0gICAgICAgICAgICAgYyA9IGdldGF0dHIobm9kZXMsIHgpCi0tICAgICAgICAgICAgaWYg aXNpbnN0YW5jZShjLCAodHlwZSwgdHlwZXMuQ2xhc3NUeXBlKSkgYW5kIFwKLSsgICAgICAgICAg ICBpZiBpc2luc3RhbmNlKGMsIHR5cGUpIGFuZCBcCi0gICAgICAgICAgICAgICAgICAgIGlzc3Vi Y2xhc3MoYywgbm9kZXMuTm9kZSkgYW5kIGxlbihjLl9fYmFzZXNfXykgPiAxOgotICAgICAgICAg ICAgICAgICBub2RlX2NsYXNzX25hbWVzLmFwcGVuZCh4KQotICAgICAgICAgbm9kZV9jbGFzc19u YW1lcy5zb3J0KCkKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQgYS9z cmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDktcHkzLVVzZS1hYnNvbHV0ZV9pbXBv cnQtZnV0dXJlLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA5LXB5 My1Vc2UtYWJzb2x1dGVfaW1wb3J0LWZ1dHVyZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMmU3ZDMxYzJmODMuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRv Y3V0aWxzL3BhdGNoZXMvMDAwOS1weTMtVXNlLWFic29sdXRlX2ltcG9ydC1mdXR1cmUucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxNjk5ICswLDAgQEAKLUZyb20gMjM4NGQ2ODViMmIzOGUzMGEw ZGJiNjA1OTRjMTkwZjM2YWQ3ZTNhNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0 ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogVHVlLCAxOSBOb3YgMjAx OSAyMzo1Nzo0MyArMDcwMAotU3ViamVjdDogW1BBVENIIDA5LzI2XSBweTM6IFVzZSAnYWJzb2x1 dGVfaW1wb3J0JyBmdXR1cmUKLQotVGhpcyBtb3N0bHkgYXBwbGllcyB0byB0ZXN0cy4KLQotU2ln bmVkLW9mZi1ieTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci0KLWdpdC1z dm4taWQ6IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNTYg OTI5NTQzZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2Fu IFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL3dy aXRlcnMvb2RmX29kdC9fX2luaXRfXy5weSAgICAgICAgICAgICAgICAgICAgICB8IDMgKystCi0g dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9nZXRfcGFyc2VyX2NsYXNzLnB5ICAgICAgICAgICAgICAg IHwgMyArKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X1NpbXBsZVRhYmxlUGFy c2VyLnB5ICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfVGFi bGVQYXJzZXIucHkgICAgICAgICAgICB8IDMgKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9ibG9ja19xdW90ZXMucHkgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2J1bGxldF9saXN0cy5weSAgICAgICAgICAgfCAzICsrLQotIC4u Li90ZXN0X3JzdC90ZXN0X2NoYXJhY3Rlcl9sZXZlbF9pbmxpbmVfbWFya3VwLnB5ICAgICAgICB8 IDMgKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9jaXRhdGlvbnMucHkgICAg ICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2NvbW1l bnRzLnB5ICAgICAgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGVmaW5pdGlvbl9saXN0cy5weSAgICAgICB8IDMgKystCi0gLi4uL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X2FkbW9uaXRpb25zLnB5ICAgICAgICAgIHwgMyArKy0KLSAuLi4v dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfYmxvY2tfcXVvdGVzLnB5ICAgICAgICAgfCAz ICsrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2Ns YXNzLnB5ICB8IDMgKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3Rp dmVzL3Rlc3RfY29kZS5weSAgIHwgMyArKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVz L3Rlc3RfY29kZV9sb25nLnB5ICAgICAgICAgICAgfCAzICsrLQotIC4uLi90ZXN0X3JzdC90ZXN0 X2RpcmVjdGl2ZXMvdGVzdF9jb2RlX25vbmUucHkgICAgICAgICAgICB8IDMgKystCi0gLi4uL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbXBvdW5kLnB5ICAgICAgICAgICAgIHwgMyAr Ky0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29udGFpbmVyLnB5ICAgICAg ICAgICAgfCAzICsrLQotIC4uLi90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb250ZW50 cy5weSAgICAgICAgICAgICB8IDMgKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9kaXJlY3RpdmVzL3Rlc3RfZGF0ZS5weSAgIHwgMyArKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfZGVjb3JhdGlvbnMucHkgICAgICAgICAgfCA0ICsrKy0KLSAuLi4vdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZGVmYXVsdF9yb2xlLnB5ICAgICAgICAgfCAzICsr LQotIC4uLi90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZmlndXJl cy5weSB8IDQgKysrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X2ltYWdlcy5weSB8IDQgKysrLQotIC4uLi90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9kaXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5weSB8IDMgKystCi0gLi4uL3Rlc3RfcnN0L3Rlc3Rf ZGlyZWN0aXZlcy90ZXN0X2xpbmVfYmxvY2tzLnB5ICAgICAgICAgIHwgNCArKystCi0gdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbWF0aC5weSAgIHwgNCAr KystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbWV0 YS5weSAgIHwgNCArKystCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3BhcnNl ZF9saXRlcmFscy5weSAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmF3LnB5ICAgIHwgNSArKysrLQotIC4uLi90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmVwbGFjZS5weSB8IDMgKystCi0gLi4u L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3JlcGxhY2VfZnIucHkgICAgICAgICAgIHwg MyArKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9y b2xlLnB5ICAgfCAzICsrLQotIC4uLi90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3Rp dmVzL3Rlc3RfcnVicmljcy5weSB8IDMgKystCi0gLi4uL3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X2RpcmVjdGl2ZXMvdGVzdF9zZWN0bnVtLnB5IHwgNCArKystCi0gLi4uL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X3NpZGViYXJzLnB5ICAgICAgICAgICAgIHwgNCArKystCi0gdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVzLnB5IHwg NCArKystCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RhcmdldF9ub3Rlcy5w eSAgICAgICAgIHwgNCArKystCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Rl c3RfZGlyZWN0aXZlcy5weSAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGl0bGUucHkgIHwgNCArKystCi0gdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdG9waWNzLnB5IHwgNCArKystCi0g Li4uL3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5 IHwgMyArKy0KLSAuLi4vdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0 X3Vua25vd24ucHkgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rv Y3Rlc3RfYmxvY2tzLnB5ICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2Vhc3RfYXNpYW5fdGV4dC5weSAgICAgICAgfCA1ICsrKystCi0gdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9lbnVtZXJhdGVkX2xpc3RzLnB5ICAgICAgIHwgNCArKyst Ci0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9maWVsZF9saXN0cy5weSAgICAgICAg ICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9mb290bm90ZXMu cHkgICAgICAgICAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9pbmxpbmVfbWFya3VwLnB5ICAgICAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9pbnRlcnByZXRlZC5weSAgICAgICAgICAgIHwgNCArKystCi0gdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9pbnRlcnByZXRlZF9mci5weSAgICAgICAgIHwgNCAr KystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9saW5lX2Jsb2Nrcy5weSAgICAg ICAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9saXRlcmFs X2Jsb2Nrcy5weSAgICAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9vcHRpb25fbGlzdHMucHkgICAgICAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9vdXRkZW50aW5nLnB5ICAgICAgICAgICAgIHwgNCArKystCi0gdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9wYXJhZ3JhcGhzLnB5ICAgICAgICAgICAgIHwg NCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9zZWN0aW9uX2hlYWRlcnMu cHkgICAgICAgIHwgOCArKysrKystLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rf c3Vic3RpdHV0aW9ucy5weSAgICAgICAgICB8IDQgKysrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfdGFibGVzLnB5ICAgICAgICAgICAgICAgICB8IDUgKysrKy0KLSB0ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3RhcmdldHMucHkgICAgICAgICAgICAgICAgfCA0ICsr Ky0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3RyYW5zaXRpb25zLnB5ICAgICAg ICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcmVhZGVycy90ZXN0X2dldF9yZWFkZXJfY2xhc3Mu cHkgICAgICAgICAgICAgICAgfCA1ICsrKy0tCi0gdGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9wZXAv dGVzdF9pbmxpbmVfbWFya3VwLnB5ICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfcmVhZGVy cy90ZXN0X3BlcC90ZXN0X3JmYzI4MjIucHkgICAgICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0 L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X19faW5pdF9fLnB5ICAgICAgICAgICAgICAgICAgICAgfCA2 ICsrKystLQotIHRlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfY2xhc3MucHkgICAgICAgICAgICAg ICAgICAgICAgICB8IDMgKystCi0gdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9jb250ZW50cy5w eSAgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0 X2RvY2luZm8ucHkgICAgICAgICAgICAgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF90cmFu c2Zvcm1zL3Rlc3RfZG9jdGl0bGUucHkgICAgICAgICAgICAgICAgICAgICB8IDQgKysrLQotIHRl c3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZXhwb3NlX2ludGVybmFscy5weSAgICAgICAgICAgICB8 IDQgKysrLQotIHRlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZmlsdGVyLnB5ICAgICAgICAgICAg ICAgICAgICAgICB8IDMgKystCi0gdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9mb290bm90ZXMu cHkgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0 X2h5cGVybGlua3MucHkgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KLSB0ZXN0L3Rlc3RfdHJh bnNmb3Jtcy90ZXN0X21lc3NhZ2VzLnB5ICAgICAgICAgICAgICAgICAgICAgfCAzICsrLQotIHRl c3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfcGVwcy5weSAgICAgICAgICAgICAgICAgICAgICAgICB8 IDMgKystCi0gdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zZWN0bnVtLnB5ICAgICAgICAgICAg ICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3NtYXJ0cXVvdGVz LnB5ICAgICAgICAgICAgICAgICAgfCA1ICsrKy0tCi0gdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVz dF9zdHJpcF9jb21tZW50cy5weSAgICAgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfdHJh bnNmb3Jtcy90ZXN0X3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3MucHkgICAgfCAzICsrLQotIHRl c3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc3Vic3RpdHV0aW9ucy5weSAgICAgICAgICAgICAgICB8 IDMgKystCi0gdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF90YXJnZXRfbm90ZXMucHkgICAgICAg ICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3RyYW5zaXRpb25z LnB5ICAgICAgICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0 X3dyaXRlcl9hdXgucHkgICAgICAgICAgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF93cml0 ZXJzL3Rlc3RfZG9jdXRpbHNfeG1sLnB5ICAgICAgICAgICAgICAgICAgICB8IDMgKystCi0gdGVz dC90ZXN0X3dyaXRlcnMvdGVzdF9nZXRfd3JpdGVyX2NsYXNzLnB5ICAgICAgICAgICAgICAgIHwg NCArKystCi0gdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNGNzczFfbWlzYy5weSAgICAgICAg ICAgICAgICAgIHwgNyArKysrKy0tCi0gdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNGNzczFf cGFydHMucHkgICAgICAgICAgICAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3dyaXRlcnMvdGVz dF9odG1sNGNzczFfdGVtcGxhdGUucHkgICAgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3Rf d3JpdGVycy90ZXN0X2h0bWw1X3BvbHlnbG90X21pc2MucHkgICAgICAgICAgICAgfCA3ICsrKysr LS0KLSB0ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw1X3BvbHlnbG90X3BhcnRzLnB5ICAgICAg ICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF93cml0ZXJzL3Rlc3RfbGF0ZXgyZS5weSAgICAgICAg ICAgICAgICAgICAgICAgICB8IDUgKysrKy0KLSB0ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X21hbnBh Z2UucHkgICAgICAgICAgICAgICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3Rfd3JpdGVy cy90ZXN0X251bGwucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0 L3Rlc3Rfd3JpdGVycy90ZXN0X29kdC5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAz ICsrLQotIHRlc3QvdGVzdF93cml0ZXJzL3Rlc3RfcHNldWRveG1sLnB5ICAgICAgICAgICAgICAg ICAgICAgICB8IDQgKysrLQotIHRlc3QvdGVzdF93cml0ZXJzL3Rlc3RfczUucHkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDMgKystCi0gOTYgZmlsZXMgY2hhbmdlZCwgMjUzIGluc2Vy dGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRl cnMvb2RmX29kdC9fX2luaXRfXy5weSBiL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRf Xy5weQotaW5kZXggNWY2MjYwNS4uYzBmNDNhNSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRl cnMvb2RmX29kdC9fX2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19f aW5pdF9fLnB5Ci1AQCAtNiw2ICs2LDcgQEAKLSBPcGVuIERvY3VtZW50IEZvcm1hdCAoT0RGKSBX cml0ZXIuCi0gCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQK LSAKLSBfX2RvY2Zvcm1hdF9fID0gJ3JlU3RydWN0dXJlZFRleHQnCi0gCi1AQCAtNzEsNyArNzIs NyBAQCB0cnk6Ci0gICAgICAgICBmcm9tIC5weWdtZW50c2Zvcm1hdHRlciBpbXBvcnQgT2R0UHln bWVudHNQcm9nRm9ybWF0dGVyLCBcCi0gICAgICAgICAgICAgT2R0UHlnbWVudHNMYVRlWEZvcm1h dHRlcgotICAgICBlbHNlOgotLSAgICAgICAgZnJvbSBweWdtZW50c2Zvcm1hdHRlciBpbXBvcnQg T2R0UHlnbWVudHNQcm9nRm9ybWF0dGVyLCBcCi0rICAgICAgICBmcm9tIC5weWdtZW50c2Zvcm1h dHRlciBpbXBvcnQgT2R0UHlnbWVudHNQcm9nRm9ybWF0dGVyLCBcCi0gICAgICAgICAgICAgT2R0 UHlnbWVudHNMYVRlWEZvcm1hdHRlcgotIGV4Y2VwdCAoSW1wb3J0RXJyb3IsIFN5bnRheEVycm9y KToKLSAgICAgcHlnbWVudHMgPSBOb25lCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9nZXRfcGFyc2VyX2NsYXNzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9nZXRfcGFy c2VyX2NsYXNzLnB5Ci1pbmRleCA0ZGUwNWNjLi5jYTgwOWQwIDEwMDY0NAotLS0tIGEvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9nZXRfcGFyc2VyX2NsYXNzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X2dldF9wYXJzZXJfY2xhc3MucHkKLUBAIC04LDggKzgsOSBAQAotICIiIgotIHRl c3QgZ2V0X3BhcnNlcl9jbGFzcwotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1 dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot K2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMucGFyc2Vy cyBpbXBvcnQgZ2V0X3BhcnNlcl9jbGFzcwotIAotIGNsYXNzIEdldFBhcnNlckNsYXNzVGVzdENh c2UoRG9jdXRpbHNUZXN0U3VwcG9ydC5TdGFuZGFyZFRlc3RDYXNlKToKLWRpZmYgLS1naXQgYS90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X1NpbXBsZVRhYmxlUGFyc2VyLnB5IGIvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9TaW1wbGVUYWJsZVBhcnNlci5weQotaW5kZXgg ODY0YzU0NS4uMjk0MmUwMSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfU2ltcGxlVGFibGVQYXJzZXIucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfU2ltcGxlVGFibGVQYXJzZXIucHkKLUBAIC04LDggKzgsOSBAQAotICIiIgotIFRl c3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0 ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0r ZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAg IHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlNpbXBsZVRhYmxlUGFyc2VyVGVzdFN1aXRlKCkKLWRp ZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X1RhYmxlUGFyc2VyLnB5 IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9UYWJsZVBhcnNlci5weQotaW5kZXgg MTg5ZWYyYS4uZWNhZmU4ZiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfVGFibGVQYXJzZXIucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfVGFibGVQYXJzZXIucHkKLUBAIC04LDggKzgsOSBAQAotICIiIgotIFRlc3RzIGZvciBzdGF0 ZXMucHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAK LS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9y dCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGls c1Rlc3RTdXBwb3J0LkdyaWRUYWJsZVBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9ibG9ja19xdW90ZXMucHkgYi90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Jsb2NrX3F1b3Rlcy5weQotaW5kZXggMTcxYzc4NC4uMmFl ZTNjNiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfYmxvY2tf cXVvdGVzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Jsb2NrX3F1 b3Rlcy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRlcy5weS4KLSAi IiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBv cnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2J1bGxldF9saXN0cy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfYnVsbGV0X2xpc3RzLnB5Ci1pbmRleCAyNDZjZGJkLi40ZmU5NjNkIDEwMDc1NQotLS0tIGEv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9idWxsZXRfbGlzdHMucHkKLSsrKyBiL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfYnVsbGV0X2xpc3RzLnB5Ci1AQCAtNyw4ICs3 LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVf XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRl ZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUo KQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfY2hhcmFjdGVy X2xldmVsX2lubGluZV9tYXJrdXAucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2NoYXJhY3Rlcl9sZXZlbF9pbmxpbmVfbWFya3VwLnB5Ci1pbmRleCBiMWQxODg1Li42YjQyZWQ2 IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9jaGFyYWN0ZXJf bGV2ZWxfaW5saW5lX21hcmt1cC5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9jaGFyYWN0ZXJfbGV2ZWxfaW5saW5lX21hcmt1cC5weQotQEAgLTExLDggKzExLDkgQEAg d2l0aCB0aGUgImNoYXJhY3Rlci1sZXZlbC1pbmxpbmUtbWFya3VwIiBzZXR0aW5nLgotIAotIEV4 cGVyaW1lbnRhbC4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y dAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4g aW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERv Y3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKHN1aXRlX3NldHRpbmdzPXsnY2hhcmFj dGVyX2xldmVsX2lubGluZV9tYXJrdXAnOiBUcnVlfSkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2NpdGF0aW9ucy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfY2l0YXRpb25zLnB5Ci1pbmRleCAwMzM3MGE2Li5lYWQyYjk4IDEwMDc1NQot LS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9jaXRhdGlvbnMucHkKLSsrKyBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfY2l0YXRpb25zLnB5Ci1AQCAtNyw4ICs3 LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVf XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRl ZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUo KQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfY29tbWVudHMu cHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2NvbW1lbnRzLnB5Ci1pbmRleCAz NGY2MmUxLi4xMGNjYTc4IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9jb21tZW50cy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9j b21tZW50cy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRlcy5weS4K LSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20g X19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0 aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1 cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90 ZXN0X3JzdC90ZXN0X2RlZmluaXRpb25fbGlzdHMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RlZmluaXRpb25fbGlzdHMucHkKLWluZGV4IDFhODAzNjAuLjQwYzYzM2MgMTAw NzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RlZmluaXRpb25fbGlz dHMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGVmaW5pdGlvbl9s aXN0cy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRlcy5weS4KLSAi IiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBv cnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9hZG1vbml0aW9ucy5weSBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2FkbW9uaXRpb25zLnB5Ci1pbmRleCBm YWY1ZjY2Li4zNzI0MTMxIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9kaXJlY3RpdmVzL3Rlc3RfYWRtb25pdGlvbnMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2FkbW9uaXRpb25zLnB5Ci1AQCAtNyw4 ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3IgYWRtb25pdGlvbnMucHkgZGlyZWN0aXZlcy4KLSAi IiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBv cnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9ibG9ja19xdW90ZXMucHkgYi90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9ibG9ja19xdW90ZXMucHkKLWluZGV4 IDkzYmFlOWUuLjg3YTk5ZDcgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9ibG9ja19xdW90ZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9w YXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2Jsb2NrX3F1b3Rlcy5weQotQEAg LTgsOCArOCw5IEBACi0gVGVzdHMgZm9yIHRoZSBibG9jayBxdW90ZSBkaXJlY3RpdmVzICJlcGln cmFwaCIsICJoaWdobGlnaHRzIiwgYW5kCi0gInB1bGwtcXVvdGUiLgotICIiIgotK2Zyb20gX19m dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot IAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0 U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGly ZWN0aXZlcy90ZXN0X2NsYXNzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfY2xhc3MucHkKLWluZGV4IDU0NDk0NmQuLmQ2NWM4YjQgMTAwNzU1Ci0t LS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jbGFz cy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfY2xhc3MucHkKLUBAIC03LDggKzcsOSBAQAotICIiIgotIFRlc3RzIGZvciB0aGUgJ2NsYXNz JyBkaXJlY3RpdmUuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv cnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAu IGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBE b2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZS5weSBiL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGUucHkKLWluZGV4 IDUxYzE1NTguLmJmN2ViYmEgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90 ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAi IiIKLSBUZXN0IHRoZSAnY29kZScgZGlyZWN0aXZlIGluIHBhcnNlcnMvcnN0L2RpcmVjdGl2ZXMv Ym9keS5weS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAot IAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLmNvZGVfYW5hbHl6 ZXIgaW1wb3J0IHdpdGhfcHlnbWVudHMKLSAKLSBkZWYgc3VpdGUoKToKLWRpZmYgLS1naXQgYS90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlX2xvbmcu cHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2Rl X2xvbmcucHkKLWluZGV4IDc0ZjE2ZDUuLjFhNTVjOTcgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlX2xvbmcucHkKLSsrKyBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbG9u Zy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdCB0aGUgJ2NvZGUnIGRpcmVjdGl2ZSBp biBib2R5LnB5IHdpdGggc3ludGF4X2hpZ2hsaWdodCA9ICdsb25nJy4KLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQK LSBmcm9tIGRvY3V0aWxzLnV0aWxzLmNvZGVfYW5hbHl6ZXIgaW1wb3J0IHdpdGhfcHlnbWVudHMK LSAKLSBkZWYgc3VpdGUoKToKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlX25vbmUucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90 ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlX25vbmUucHkKLWluZGV4IDUxNTc3MmMu LjIzYWUzZDIgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF9jb2RlX25vbmUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbm9uZS5weQotQEAgLTcsOCArNyw5IEBACi0g IiIiCi0gVGVzdCB0aGUgJ2NvZGUnIGRpcmVjdGl2ZSBpbiBib2R5LnB5IHdpdGggc3ludGF4X2hp Z2hsaWdodCA9ICdub25lJy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl X2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStm cm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAg cyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKHN1aXRlX3NldHRpbmdzPXsn c3ludGF4X2hpZ2hsaWdodCc6J25vbmUnfSkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vy cy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb21wb3VuZC5weSBiL3Rlc3QvdGVzdF9w YXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbXBvdW5kLnB5Ci1pbmRleCBj MGVmNGI4Li42YmJhYjljIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29tcG91bmQucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbXBvdW5kLnB5Ci1AQCAtNyw4ICs3LDkg QEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlICdjb21wb3VuZCcgZGlyZWN0aXZlIGZyb20gYm9keS5w eS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZy b20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERv Y3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVz dFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vy cy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb250YWluZXIucHkgYi90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb250YWluZXIucHkKLWluZGV4 IDZiN2IwMjIuLjllYzVhZmMgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb250YWluZXIucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbnRhaW5lci5weQotQEAgLTcsOCAr Nyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIHRoZSAnY29udGFpbmVyJyBkaXJlY3RpdmUgZnJvbSBi b2R5LnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0g Ci0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBv cnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRp bHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9w YXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbnRlbnRzLnB5IGIvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29udGVudHMucHkKLWlu ZGV4IGUxZWY0N2YuLmEwN2RkZDIgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb250ZW50cy5weQotKysrIGIvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29udGVudHMucHkKLUBAIC03LDgg KzcsOSBAQAotICIiIgotIFRlc3RzIGZvciBwYXJ0cy5weSBjb250ZW50cyBkaXJlY3RpdmUuCi0g IiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9f aW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGls c1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBw b3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZGF0ZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2RhdGUucHkKLWluZGV4IDg3ZGMxODYuLjFmMzAx MjggMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2 ZXMvdGVzdF9kYXRlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF9kYXRlLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3Ig dGhlIG1pc2MucHkgImRhdGUiIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1w b3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVz dFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSBpbXBvcnQgdGlt ZQotIAotIGZyb20gZG9jdXRpbHMudXRpbHMuZXJyb3JfcmVwb3J0aW5nIGltcG9ydCBsb2NhbGVf ZW5jb2RpbmcKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF9kZWNvcmF0aW9ucy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2RlY29yYXRpb25zLnB5Ci1pbmRleCBiNjZmNjhkLi42M2Jl MTMxIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3Rp dmVzL3Rlc3RfZGVjb3JhdGlvbnMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2RlY29yYXRpb25zLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0g IiIiCi0gVGVzdHMgZm9yIHRoZSAiaGVhZGVyIiAmICJmb290ZXIiIGRpcmVjdGl2ZXMuCi0gIiIi Ci0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGls c1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBw b3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZGVmYXVsdF9yb2xlLnB5IGIvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZGVmYXVsdF9yb2xlLnB5Ci1pbmRl eCAxNWIwZjU2Li5mODFjMzBiIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZGVmYXVsdF9yb2xlLnB5Ci0rKysgYi90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9kZWZhdWx0X3JvbGUucHkKLUBA IC03LDggKzcsOSBAQAotICIiIgotIFRlc3RzIGZvciBtaXNjLnB5ICJkZWZhdWx0LXJvbGUiIGRp cmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAot IAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSAKLSBkZWYgc3VpdGUoKToKLWRpZmYgLS1naXQg YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9maWd1cmVz LnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZmln dXJlcy5weQotaW5kZXggZGU1NDE5MC4uMDljZWQzZiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9w YXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2ZpZ3VyZXMucHkKLSsrKyBiL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2ZpZ3VyZXMucHkK LUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgaW1hZ2VzLnB5IGZpZ3VyZSBkaXJl Y3RpdmVzLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0r Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBp bXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9j dXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2ltYWdlcy5weSBiL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2ltYWdlcy5weQotaW5k ZXggYzUyNzkzYy4uZTc4Y2FlZCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2ltYWdlcy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW1hZ2VzLnB5Ci1AQCAtNywxMSArNywx MyBAQAotICIiIgotIFRlc3RzIGZvciBpbWFnZXMucHkgaW1hZ2UgZGlyZWN0aXZlcy4KLSAiIiIK LStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0 X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVz dFN1cHBvcnQKLSAKLSBmcm9tIGRvY3V0aWxzLm5vZGVzIGltcG9ydCByZXBydW5pY29kZQotIAot KwotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0 U3VpdGUoKQotICAgICBzLmdlbmVyYXRlVGVzdHModG90ZXN0KQotZGlmZiAtLWdpdCBhL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkgYi90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5 Ci1pbmRleCA2ZTlkYzg0Li5kODQ4MjYyIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5weQotKysrIGIvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5weQotQEAgLTcs MTAgKzcsMTEgQEAKLSAiIiIKLSBUZXN0cyBmb3IgbWlzYy5weSAiaW5jbHVkZSIgZGlyZWN0aXZl LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0gaW1w b3J0IG9zLnBhdGgKLSBpbXBvcnQgc3lzCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNU ZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9j dXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IHN0YXRlcwotIGZyb20gZG9jdXRpbHMudXRpbHMuY29k ZV9hbmFseXplciBpbXBvcnQgd2l0aF9weWdtZW50cwotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2xpbmVfYmxvY2tzLnB5IGIv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbGluZV9ibG9j a3MucHkKLWluZGV4IDBmZGZhYmEuLmQ2YmYzMWIgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9saW5lX2Jsb2Nrcy5weQotKysrIGIv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbGluZV9ibG9j a3MucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlIGJvZHkucHkgJ2xp bmUtYmxvY2snIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s dXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZy b20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToK LSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1n aXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9tYXRo LnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbWF0 aC5weQotaW5kZXggZThkZmUyNy4uMmJhYzA3NyAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X21hdGgucHkKLSsrKyBiL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X21hdGgucHkKLUBAIC03LDgg KzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlICdtYXRoJyBkaXJlY3RpdmUuCi0gIiIiCi0r ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0 LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbWV0YS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X21ldGEucHkKLWluZGV4IGJkNzkwNmQuLjhiMTVkZGUg MTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMv dGVzdF9tZXRhLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVj dGl2ZXMvdGVzdF9tZXRhLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIGh0 bWwgbWV0YSBkaXJlY3RpdmVzLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1 dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJv bSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgot ICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdp dCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3BhcnNl ZF9saXRlcmFscy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3BhcnNlZF9saXRlcmFscy5weQotaW5kZXggNmJmMmNiMS4uNGVhMDllMSAxMDA3NTUK LS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Bh cnNlZF9saXRlcmFscy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfcGFyc2VkX2xpdGVyYWxzLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIi Ci0gVGVzdHMgZm9yIHRoZSBib2R5LnB5ICdwYXJzZWQtbGl0ZXJhbCcgZGlyZWN0aXZlLgotICIi IgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGlt cG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3Vw cG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Jhdy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Jhdy5weQotaW5kZXggZjM2NmY5Mi4uMmRhOTYy YSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3Jhdy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJl Y3RpdmVzL3Rlc3RfcmF3LnB5Ci1AQCAtNywxMCArNywxMyBAQAotICIiIgotIFRlc3RzIGZvciBt aXNjLnB5ICJyYXciIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi c29sdXRlX2ltcG9ydAotIAotIGltcG9ydCBvcy5wYXRoCi0gaW1wb3J0IHN5cwotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0 aWxzVGVzdFN1cHBvcnQKLSsKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVz dFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vy cy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yZXBsYWNlLnB5IGIvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmVwbGFjZS5weQotaW5kZXggZDJk M2Q4YS4uNzVlNTgwYiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X3JlcGxhY2UucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3JlcGxhY2UucHkKLUBAIC03LDggKzcsOSBAQAot ICIiIgotIFRlc3RzIGZvciBtaXNjLnB5ICJyZXBsYWNlIiBkaXJlY3RpdmUuCi0gIiIiCi0rZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGlt cG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBw b3J0Ci0gCi0gCi0gZGVmIHN1aXRlKCk6Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmVwbGFjZV9mci5weSBiL3Rlc3QvdGVzdF9w YXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3JlcGxhY2VfZnIucHkKLWluZGV4 IDY4NDdjMWMuLjc4ZTRhNDUgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yZXBsYWNlX2ZyLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yZXBsYWNlX2ZyLnB5Ci1AQCAtOCw4 ICs4LDkgQEAKLSBUZXN0cyBmb3IgbWlzYy5weSAicmVwbGFjZSIgZGlyZWN0aXZlLgotIFRlc3Qg aW4gZnJlbmNoIChub3QgZGVmYXVsdC9mYWxsYmFjayBsYW5ndWFnZSkuCi0gIiIiCi0rZnJvbSBf X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9y dCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 Ci0gCi0gCi0gZGVmIHN1aXRlKCk6Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rfcm9sZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3JvbGUucHkKLWluZGV4IDNmNzI4ZjAuLjYwZDY1 ZTYgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2 ZXMvdGVzdF9yb2xlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF9yb2xlLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3Ig bWlzYy5weSAicm9sZSIgZGlyZWN0aXZlLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg YWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3Vw cG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIAotIGRlZiBzdWl0 ZSgpOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X3J1YnJpY3MucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF9ydWJyaWNzLnB5Ci1pbmRleCA3MGI2YjAwLi41MmRjZDVjIDEwMDc1NQot LS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcnVi cmljcy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVz L3Rlc3RfcnVicmljcy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIHRoZSAi cnVicmljIiBkaXJlY3RpdmUuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0 ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0r ZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAg IHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rfc2VjdG51bS5w eSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3NlY3Ru dW0ucHkKLWluZGV4IDdhYjA0ODYuLjQxMTk2MDcgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9zZWN0bnVtLnB5Ci0rKysgYi90ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9zZWN0bnVtLnB5Ci1A QCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHRoZSAnc2VjdG51bScgZGlyZWN0aXZl LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJv bSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNU ZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3NpZGViYXJzLnB5IGIvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rfc2lkZWJhcnMucHkKLWluZGV4 IDdjNjFkYWMuLmVmNTAxY2UgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9zaWRlYmFycy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rfc2lkZWJhcnMucHkKLUBAIC03LDggKzcs MTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlICJzaWRlYmFyIiBkaXJlY3RpdmUuCi0gIiIiCi0r ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0 LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVzLnB5Ci1pbmRleCAyYzVmODMyLi5lZTkz MGM4IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3Rp dmVzL3Rlc3RfdGFibGVzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkKLUBAIC04LDEzICs4LDE1IEBACi0gVGVzdHMgZm9y IHRhYmxlcy5weSBkaXJlY3RpdmVzLgotICIiIgotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERv Y3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y dAotIAotIGltcG9ydCBvcywgc3lzCi0gaW1wb3J0IGNzdgotIGltcG9ydCBwbGF0Zm9ybQotIGZy b20gZG9jdXRpbHMucGFyc2Vycy5yc3QuZGlyZWN0aXZlcyBpbXBvcnQgdGFibGVzCi0gCi0rZnJv bSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rCi0gCi0gaWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotZGlmZiAtLWdpdCBhL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RhcmdldF9ub3Rl cy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Rh cmdldF9ub3Rlcy5weQotaW5kZXggMzdhNjNmNS4uMTY3Y2Q4YSAxMDA3NTUKLS0tLSBhL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RhcmdldF9ub3Rlcy5w eQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rf dGFyZ2V0X25vdGVzLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHRoZSB0 YXJnZXQtbm90ZXMgZGlyZWN0aXZlcy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi c29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAot LWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUo KToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYg LS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90 ZXN0X2RpcmVjdGl2ZXMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVj dGl2ZXMvdGVzdF90ZXN0X2RpcmVjdGl2ZXMucHkKLWluZGV4IDA3ZTliZDIuLjY1Y2ZmZWQgMTAw NzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVz dF90ZXN0X2RpcmVjdGl2ZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X3Rlc3RfZGlyZWN0aXZlcy5weQotQEAgLTcsOCArNywxMCBAQAot ICIiIgotIFRlc3RzIGZvciBtaXNjLnB5IHRlc3QgZGlyZWN0aXZlcy4KLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBv cnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2Vy VGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2RpcmVjdGl2ZXMvdGVzdF90aXRsZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X3RpdGxlLnB5Ci1pbmRleCA0YTdjZmQ2Li5jMjQzMDljIDEwMDc1 NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rf dGl0bGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3RpdGxlLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHRoZSAn dGl0bGUnIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl X2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20g X19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAg ICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQg YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90b3BpY3Mu cHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90b3Bp Y3MucHkKLWluZGV4IDk1ODg1OTkuLmZkZDRiYzMgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90b3BpY3MucHkKLSsrKyBiL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RvcGljcy5weQotQEAg LTcsOCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciB0aGUgInRvcGljIiBkaXJlY3RpdmUuCi0g IiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4g aW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RT dXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5pY29kZS5weSBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNvZGUucHkKLWluZGV4IDVjZGZk NWEuLmI5OWI1ZDAgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2RpcmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5Ci1AQCAtNywxMCArNywxMSBAQAot ICIiIgotIFRlc3RzIGZvciBtaXNjLnB5ICJ1bmljb2RlIiBkaXJlY3RpdmUuCi0gIiIiCi0rZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLSBpbXBvcnQgc3lzCi0gCi0t ZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIAotIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDAp OgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3Vua25vd24ucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVj dGl2ZXMvdGVzdF91bmtub3duLnB5Ci1pbmRleCA2OWUyYzAxLi45OGNiNmI5IDEwMDc1NQotLS0t IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5rbm93 bi5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfdW5rbm93bi5weQotQEAgLTcsOCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciB1bmtub3du IGRpcmVjdGl2ZXMuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv cnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5p dF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMg PSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kb2N0ZXN0X2Jsb2Nrcy5weSBiL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZG9jdGVzdF9ibG9ja3MucHkKLWluZGV4IDRmMzY3ZGIu LmQ3Nzg3ZDcgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rv Y3Rlc3RfYmxvY2tzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rv Y3Rlc3RfYmxvY2tzLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRl cy5weS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwot K2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0 aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Vhc3RfYXNpYW5fdGV4dC5weSBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZWFzdF9hc2lhbl90ZXh0LnB5Ci1pbmRleCBlMjllYTgyLi5kODE5 ZWY4IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9lYXN0X2Fz aWFuX3RleHQucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZWFzdF9h c2lhbl90ZXh0LnB5Ci1AQCAtOCwxNSArOCwxOCBAQAotICIiIgotIFRlc3RzIGZvciBFYXN0IEFz aWFuIHRleHQgd2l0aCBkb3VibGUtd2lkdGggY2hhcmFjdGVycy4KLSAiIiIKLStmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERv Y3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAK LSBpbXBvcnQgdW5pY29kZWRhdGEKLSsKLSB0cnk6Ci0gICAgIGVhc3RfYXNpYW5fd2lkdGggPSB1 bmljb2RlZGF0YS5lYXN0X2FzaWFuX3dpZHRoCi0gZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAg ICBlYXN0X2FzaWFuX3dpZHRoID0gTm9uZQotIAotKwotIGRlZiBzdWl0ZSgpOgotICAgICBzID0g RG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotICAgICBzLmdlbmVyYXRlVGVz dHModG90ZXN0KQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rf ZW51bWVyYXRlZF9saXN0cy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZW51 bWVyYXRlZF9saXN0cy5weQotaW5kZXggMDllYTIzOC4uMDliYzAwNSAxMDA3NTUKLS0tLSBhL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZW51bWVyYXRlZF9saXN0cy5weQotKysrIGIv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9lbnVtZXJhdGVkX2xpc3RzLnB5Ci1AQCAt Nyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRlcy5weS4KLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBv cnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2Vy VGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2ZpZWxkX2xpc3RzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9maWVsZF9s aXN0cy5weQotaW5kZXggYzUxZGQ3Yy4uMzQwNzNhYSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9w YXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZmllbGRfbGlzdHMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZmllbGRfbGlzdHMucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIK LSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz b2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0t ZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgp OgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAt LWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZm9vdG5vdGVzLnB5IGIvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9mb290bm90ZXMucHkKLWluZGV4IGZhYmZhZjAu LmJhMTU3ZDkgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Zv b3Rub3Rlcy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9mb290bm90 ZXMucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIi IgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGlt cG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3Vw cG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfaW5saW5lX21hcmt1cC5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfaW5saW5lX21hcmt1cC5weQotaW5kZXggZDZmZGFjNy4uMTc2Mjg4MCAxMDA3NTUKLS0t LSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfaW5saW5lX21hcmt1cC5weQotKysr IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9pbmxpbmVfbWFya3VwLnB5Ci1AQCAt OSw4ICs5LDEwIEBACi0gVGVzdHMgZm9yIGlubGluZSBtYXJrdXAgaW4gZG9jdXRpbHMvcGFyc2Vy cy9yc3Qvc3RhdGVzLnB5LgotIEludGVycHJldGVkIHRleHQgdGVzdHMgYXJlIGluIGEgc2VwYXJh dGUgbW9kdWxlLCB0ZXN0X2ludGVycHJldGVkLnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBp bXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBw b3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRl ZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUo KQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfaW50ZXJwcmV0 ZWQucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2ludGVycHJldGVkLnB5Ci1p bmRleCA2ZGNlMDljLi40OGI0ZWJlIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9pbnRlcnByZXRlZC5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9pbnRlcnByZXRlZC5weQotQEAgLTcsMTAgKzcsMTIgQEAKLSAiIiIKLSBUZXN0cyBm b3IgaW50ZXJwcmV0ZWQgdGV4dCBpbiBkb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkuCi0g IiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9f aW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGls c1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscy51dGlscy5jb2RlX2FuYWx5emVyIGltcG9ydCB3 aXRoX3B5Z21lbnRzCi0gCi0rCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RT dXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi0gICAgIGlmIG5vdCB3aXRoX3B5Z21lbnRzOgotZGlm ZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfaW50ZXJwcmV0ZWRfZnIu cHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2ludGVycHJldGVkX2ZyLnB5Ci1p bmRleCBhMGUxZDc4Li4wNDZhYjE1IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9pbnRlcnByZXRlZF9mci5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9pbnRlcnByZXRlZF9mci5weQotQEAgLTgsOCArOCwxMCBAQAotIFRlc3RzIGZv ciBpbnRlcnByZXRlZCB0ZXh0IGluIGRvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weS4KLSBU ZXN0IG5vdCBkZWZhdWx0L2ZhbGxiYWNrIGxhbmd1YWdlIGZyZW5jaC4KLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBv cnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2Vy VGVzdFN1aXRlKHN1aXRlX3NldHRpbmdzPXsnbGFuZ3VhZ2VfY29kZSc6J2ZyJ30pCi1kaWZmIC0t Z2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9saW5lX2Jsb2Nrcy5weSBiL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfbGluZV9ibG9ja3MucHkKLWluZGV4IGQwYTI3 NzYuLjNhYjE3NjQgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2xpbmVfYmxvY2tzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2xp bmVfYmxvY2tzLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRlcy5w eS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zy b20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxz VGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2xpdGVyYWxfYmxvY2tzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9saXRlcmFsX2Jsb2Nrcy5weQotaW5kZXggNjJjOWY0MC4uMTcyYzQzOCAx MDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfbGl0ZXJhbF9ibG9j a3MucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfbGl0ZXJhbF9ibG9j a3MucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIi IgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGlt cG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3Vw cG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3Rfb3B0aW9uX2xpc3RzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9vcHRpb25fbGlzdHMucHkKLWluZGV4IGFhMjNlM2UuLjc0MDI0OGYgMTAwNzU1Ci0tLS0g YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X29wdGlvbl9saXN0cy5weQotKysrIGIv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9vcHRpb25fbGlzdHMucHkKLUBAIC03LDgg KzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIiIgotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot IAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0 U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rfb3V0 ZGVudGluZy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rfb3V0ZGVudGluZy5w eQotaW5kZXggMTQwM2FiNy4uNTY4NTc2NyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3Rfb3V0ZGVudGluZy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9vdXRkZW50aW5nLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMg Zm9yIHN0YXRlcy5weS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt cG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAg cyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3BhcmFncmFwaHMucHkgYi90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X3BhcmFncmFwaHMucHkKLWluZGV4IGU0ODYwZTMuLjkzM2Mw N2IgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3BhcmFncmFw aHMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfcGFyYWdyYXBocy5w eQotQEAgLTcsOCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0r ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0 LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9zZWN0aW9uX2hlYWRlcnMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X3NlY3Rpb25faGVhZGVycy5weQotaW5kZXggMGM4Y2Q2NC4uYWYzNzQ5YyAxMDA3NTUKLS0t LSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rfc2VjdGlvbl9oZWFkZXJzLnB5Ci0r KysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3NlY3Rpb25faGVhZGVycy5weQot QEAgLTUsOSArNSwxMyBAQAotICMgQXV0aG9yOiBEYXZpZCBHb29kZ2VyIDxnb29kZ2VyQHB5dGhv bi5vcmc+Ci0gIyBDb3B5cmlnaHQ6IFRoaXMgbW9kdWxlIGhhcyBiZWVuIHBsYWNlZCBpbiB0aGUg cHVibGljIGRvbWFpbi4KLSAKLS0iIiJUZXN0cyBmb3Igc3RhdGVzLnB5LiIiIgotKyIiIgotK1Rl c3RzIGZvciBzdGF0ZXMucHkuCi0rIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0 ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9t IF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0g ICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0 IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9zdWJzdGl0dXRpb25zLnB5IGIvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9zdWJzdGl0dXRpb25zLnB5Ci1pbmRleCBlOTky Y2IyLi43NzRkNzFiIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9zdWJzdGl0dXRpb25zLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X3N1YnN0aXR1dGlvbnMucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3Rh dGVzLnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0r Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBp bXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9j dXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfdGFibGVzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF90YWJsZXMucHkKLWluZGV4IGNhMjQ5YmIuLjRhNjkwZmYgMTAwNzU1Ci0tLS0g YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3RhYmxlcy5weQotKysrIGIvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF90YWJsZXMucHkKLUBAIC03LDkgKzcsMTIgQEAKLSAi IiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg YWJzb2x1dGVfaW1wb3J0Ci0gCi0gaW1wb3J0IG9zCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot KwotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJU ZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rf dGFyZ2V0cy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfdGFyZ2V0cy5weQot aW5kZXggZjdhYjhjMC4uNjc4NWFjMyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfdGFyZ2V0cy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF90YXJnZXRzLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRl cy5weS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwot K2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0 aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X3RyYW5zaXRpb25zLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF90cmFuc2l0aW9ucy5weQotaW5kZXggYjIxNDExYy4uZDNhNjIyYSAxMDA3 NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfdHJhbnNpdGlvbnMucHkK LSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfdHJhbnNpdGlvbnMucHkKLUBA IC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdHJhbnNpdGlvbiBtYXJrZXJzLgotICIi IgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGlt cG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3Vw cG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9yZWFkZXJzL3Rl c3RfZ2V0X3JlYWRlcl9jbGFzcy5weSBiL3Rlc3QvdGVzdF9yZWFkZXJzL3Rlc3RfZ2V0X3JlYWRl cl9jbGFzcy5weQotaW5kZXggYjg0ZGZiOS4uZjE3NzIyMyAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVz dF9yZWFkZXJzL3Rlc3RfZ2V0X3JlYWRlcl9jbGFzcy5weQotKysrIGIvdGVzdC90ZXN0X3JlYWRl cnMvdGVzdF9nZXRfcmVhZGVyX2NsYXNzLnB5Ci1AQCAtOCwxMCArOCwxMiBAQAotICIiIgotIHRl c3QgZ2V0X3JlYWRlcl9jbGFzcwotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1 dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot K2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMucmVhZGVy cyBpbXBvcnQgZ2V0X3JlYWRlcl9jbGFzcwotIAotKwotIGNsYXNzIEdldFJlYWRlckNsYXNzVGVz dENhc2UoRG9jdXRpbHNUZXN0U3VwcG9ydC5TdGFuZGFyZFRlc3RDYXNlKToKLSAKLSAgICAgZGVm IHRlc3RfcmVnaXN0ZXJlZF9yZWFkZXIoc2VsZik6Ci1AQCAtMjksNCArMzEsMyBAQCBjbGFzcyBH ZXRSZWFkZXJDbGFzc1Rlc3RDYXNlKERvY3V0aWxzVGVzdFN1cHBvcnQuU3RhbmRhcmRUZXN0Q2Fz ZSk6Ci0gaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICAgaW1wb3J0IHVuaXR0ZXN0Ci0g ICAgIHVuaXR0ZXN0Lm1haW4oKQotLQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9yZWFkZXJzL3Rl c3RfcGVwL3Rlc3RfaW5saW5lX21hcmt1cC5weSBiL3Rlc3QvdGVzdF9yZWFkZXJzL3Rlc3RfcGVw L3Rlc3RfaW5saW5lX21hcmt1cC5weQotaW5kZXggM2JmZDI5NC4uMjkwNzRkOCAxMDA3NTUKLS0t LSBhL3Rlc3QvdGVzdF9yZWFkZXJzL3Rlc3RfcGVwL3Rlc3RfaW5saW5lX21hcmt1cC5weQotKysr IGIvdGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9wZXAvdGVzdF9pbmxpbmVfbWFya3VwLnB5Ci1AQCAt Nyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3IgaW5saW5lIG1hcmt1cCBpbiBQRVBzIChyZWFk ZXJzL3BlcC5weSkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv cnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAu IGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gCi0gZGVmIHN1aXRlKCk6Ci1kaWZmIC0t Z2l0IGEvdGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9wZXAvdGVzdF9yZmMyODIyLnB5IGIvdGVzdC90 ZXN0X3JlYWRlcnMvdGVzdF9wZXAvdGVzdF9yZmMyODIyLnB5Ci1pbmRleCA3YzFiMjZiLi4xMTIz ZWU5IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9wZXAvdGVzdF9yZmMyODIy LnB5Ci0rKysgYi90ZXN0L3Rlc3RfcmVhZGVycy90ZXN0X3BlcC90ZXN0X3JmYzI4MjIucHkKLUBA IC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgUkZDLTI4MjIgaGVhZGVycyBpbiBQRVBz IChyZWFkZXJzL3BlcC5weSkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0 ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9t IF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0g ICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBFUFBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0t Z2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9fX2luaXRfXy5weSBiL3Rlc3QvdGVzdF90 cmFuc2Zvcm1zL3Rlc3RfX19pbml0X18ucHkKLWluZGV4IDM2NjcwMWIuLmZkZWQxNzkgMTAwNzU1 Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X19faW5pdF9fLnB5Ci0rKysgYi90ZXN0 L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X19faW5pdF9fLnB5Ci1AQCAtNywxMSArNywxMyBAQAotICIi IgotIFRlc3QgbW9kdWxlIGZvciB0cmFuc2Zvcm1zL19faW5pdF9fLnB5LgotICIiIgotK2Zyb20g X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBv cnQgRG9jdXRpbHNUZXN0U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0aWxz Ci0tZnJvbSBkb2N1dGlscyBpbXBvcnQgdHJhbnNmb3JtcywgdXRpbHMKLSBpbXBvcnQgdW5pdHRl c3QKLSAKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgIyBtdXN0IGJlIGltcG9y dGVkIGJlZm9yZSBkb2N1dGlscwotK2Zyb20gZG9jdXRpbHMgaW1wb3J0IHRyYW5zZm9ybXMsIHV0 aWxzCi0rCi0gCi0gY2xhc3MgVGVzdFRyYW5zZm9ybSh0cmFuc2Zvcm1zLlRyYW5zZm9ybSk6Ci0g Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9jbGFzcy5weSBiL3Rlc3Qv dGVzdF90cmFuc2Zvcm1zL3Rlc3RfY2xhc3MucHkKLWluZGV4IDllZTA0ODQuLmViZDZjNWEgMTAw NzU1Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2NsYXNzLnB5Ci0rKysgYi90ZXN0 L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2NsYXNzLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBU ZXN0cyBmb3IgYGRvY3V0aWxzLnRyYW5zZm9ybXMubWlzYy5DbGFzc0F0dHJpYnV0ZWAuCi0gIiIi Ci0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5p dF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi0g Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9jb250ZW50cy5weSBiL3Rl c3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfY29udGVudHMucHkKLWluZGV4IDFjYWE1OTMuLmRlMDVh ZjcgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2NvbnRlbnRzLnB5Ci0r KysgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2NvbnRlbnRzLnB5Ci1AQCAtOCw4ICs4LDkg QEAKLSBUZXN0cyBmb3IgYGRvY3V0aWxzLnRyYW5zZm9ybXMucGFydHMuQ29udGVudHNgICh2aWEK LSBgZG9jdXRpbHMudHJhbnNmb3Jtcy51bml2ZXJzYWwuTGFzdFJlYWRlclBlbmRpbmdgKS4KLSAi IiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMucmVmZXJlbmNlcyBpbXBvcnQg U3Vic3RpdHV0aW9ucwotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IFBhcnNlcgot IAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZG9jaW5mby5weSBiL3Rl c3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZG9jaW5mby5weQotaW5kZXggOGI1NDNkZi4uMWYwYTRh OCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZG9jaW5mby5weQotKysr IGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9kb2NpbmZvLnB5Ci1AQCAtOCw4ICs4LDkgQEAK LSAiIiIKLSBUZXN0cyBmb3IgZG9jdXRpbHMudHJhbnNmb3Jtcy5mcm9udG1hdHRlci5Eb2NJbmZv LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJv bSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMudHJhbnNmb3Jtcy5mcm9udG1hdHRlciBp bXBvcnQgRG9jSW5mbwotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IFBhcnNlcgot IAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZG9jdGl0bGUucHkgYi90 ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2RvY3RpdGxlLnB5Ci1pbmRleCA2YjM1NGFiLi43MDcz ZTZhIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9kb2N0aXRsZS5weQot KysrIGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9kb2N0aXRsZS5weQotQEAgLTcsMTIgKzcs MTQgQEAKLSAiIiIKLSBUZXN0cyBmb3IgZG9jdXRpbHMudHJhbnNmb3Jtcy5mcm9udG1hdHRlci5E b2NUaXRsZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAot IAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMuZnJvbnRt YXR0ZXIgaW1wb3J0IERvY1RpdGxlLCBTZWN0aW9uU3ViVGl0bGUKLSBmcm9tIGRvY3V0aWxzLnBh cnNlcnMucnN0IGltcG9ydCBQYXJzZXIsIERpcmVjdGl2ZQotIGZyb20gZG9jdXRpbHMucGFyc2Vy cy5yc3QuZGlyZWN0aXZlcyBpbXBvcnQgcmVnaXN0ZXJfZGlyZWN0aXZlCi0gCi0rCi0gIyBkdW1t eSBkaXJlY3RpdmUgdG8gdGVzdCBhdHRyaWJ1dGUgbWVyZ2luZzoKLSBjbGFzcyBBZGROYW1lVG9E b2N1bWVudFRpdGxlKERpcmVjdGl2ZSk6Ci0gICAgIHJlcXVpcmVkX2FyZ3VtZW50cyA9IDAKLWRp ZmYgLS1naXQgYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2V4cG9zZV9pbnRlcm5hbHMucHkg Yi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2V4cG9zZV9pbnRlcm5hbHMucHkKLWluZGV4IDE1 ZDFkOGEuLjk5NDlkNTEgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2V4 cG9zZV9pbnRlcm5hbHMucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZXhwb3Nl X2ludGVybmFscy5weQotQEAgLTcsMTIgKzcsMTQgQEAKLSAiIiIKLSBUZXN0IG1vZHVsZSBmb3Ig dW5pdmVyc2FsLkV4cG9zZUludGVybmFscyB0cmFuc2Zvcm0uCi0gIiIiCi0rZnJvbSBfX2Z1dHVy ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBE b2N1dGlsc1Rlc3RTdXBwb3J0ICMgbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgZG9jdXRpbHMKLStm cm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgIyBtdXN0IGJlIGltcG9ydGVkIGJlZm9y ZSBkb2N1dGlscwotIGZyb20gZG9jdXRpbHMudHJhbnNmb3Jtcy51bml2ZXJzYWwgaW1wb3J0IEV4 cG9zZUludGVybmFscwotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IFBhcnNlcgot IAotKwotIGRlZiBzdWl0ZSgpOgotICAgICBwYXJzZXIgPSBQYXJzZXIoKQotICAgICBzID0gRG9j dXRpbHNUZXN0U3VwcG9ydC5UcmFuc2Zvcm1UZXN0U3VpdGUoCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9maWx0ZXIucHkgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0 X2ZpbHRlci5weQotaW5kZXggYWQ4MmMyYi4uMjQwZTM3NSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVz dF90cmFuc2Zvcm1zL3Rlc3RfZmlsdGVyLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90 ZXN0X2ZpbHRlci5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIGRvY3V0aWxz LnRyYW5zZm9ybXMuY29tcG9uZW50cy5GaWx0ZXIuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1 dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9mb290bm90ZXMucHkgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90 ZXN0X2Zvb3Rub3Rlcy5weQotaW5kZXggYWUwMWVkZi4uMDIxM2U3MSAxMDA3NTUKLS0tLSBhL3Rl c3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZm9vdG5vdGVzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJh bnNmb3Jtcy90ZXN0X2Zvb3Rub3Rlcy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMg Zm9yIGRvY3V0aWxzLnRyYW5zZm9ybXMucmVmZXJlbmNlcy5Gb290bm90ZXMuCi0gIiIiCi0rZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGlt cG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBw b3J0Ci0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zLnJlZmVyZW5jZXMgaW1wb3J0IEZvb3Rub3Rl cwotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IFBhcnNlcgotIAotZGlmZiAtLWdp dCBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfaHlwZXJsaW5rcy5weSBiL3Rlc3QvdGVzdF90 cmFuc2Zvcm1zL3Rlc3RfaHlwZXJsaW5rcy5weQotaW5kZXggZGY0ZDc5MC4uMzQ5YzgxMCAxMDA3 NTUKLS0tLSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfaHlwZXJsaW5rcy5weQotKysrIGIv dGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9oeXBlcmxpbmtzLnB5Ci1AQCAtNywxMiArNywxMiBA QAotICIiIgotIFRlc3RzIGZvciBkb2N1dGlscy50cmFuc2Zvcm1zLnJlZmVyZW5jZXMuSHlwZXJs aW5rcy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAot LWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMucmVmZXJlbmNl cyBpbXBvcnQgUHJvcGFnYXRlVGFyZ2V0cywgXAotICAgICAgQW5vbnltb3VzSHlwZXJsaW5rcywg SW5kaXJlY3RIeXBlcmxpbmtzLCBFeHRlcm5hbFRhcmdldHMsIFwKLSAgICAgIEludGVybmFsVGFy Z2V0cywgRGFuZ2xpbmdSZWZlcmVuY2VzCi0tCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBp bXBvcnQgUGFyc2VyCi0gCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVz dF9tZXNzYWdlcy5weSBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfbWVzc2FnZXMucHkKLWlu ZGV4IDI5NmZlOTguLjg5NDljNjMgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90 ZXN0X21lc3NhZ2VzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X21lc3NhZ2Vz LnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3IgZG9jdXRpbHMudHJhbnNmb3Jt cy51bml2ZXJzYWwuTWVzc2FnZXMuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv bHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscy50cmFu c2Zvcm1zLnVuaXZlcnNhbCBpbXBvcnQgTWVzc2FnZXMKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9y bXMucmVmZXJlbmNlcyBpbXBvcnQgU3Vic3RpdHV0aW9ucwotIGZyb20gZG9jdXRpbHMucGFyc2Vy cy5yc3QgaW1wb3J0IFBhcnNlcgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rl c3RfcGVwcy5weSBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfcGVwcy5weQotaW5kZXggNTUw NTU3Mi4uMTZjNGJiYiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfcGVw cy5weQotKysrIGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9wZXBzLnB5Ci1AQCAtNyw4ICs3 LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3IgZG9jdXRpbHMudHJhbnNmb3Jtcy5wZXBzLgotICIiIgot K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRf XyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0 U3VwcG9ydAotIGZyb20gZG9jdXRpbHMudHJhbnNmb3Jtcy5wZXBzIGltcG9ydCBUYXJnZXROb3Rl cwotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IFBhcnNlcgotIAotZGlmZiAtLWdp dCBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc2VjdG51bS5weSBiL3Rlc3QvdGVzdF90cmFu c2Zvcm1zL3Rlc3Rfc2VjdG51bS5weQotaW5kZXggNTI1YTcyNy4uZTM4OWFlZSAxMDA3NTUKLS0t LSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc2VjdG51bS5weQotKysrIGIvdGVzdC90ZXN0 X3RyYW5zZm9ybXMvdGVzdF9zZWN0bnVtLnB5Ci1AQCAtOCw4ICs4LDkgQEAKLSBUZXN0cyBmb3Ig YGRvY3V0aWxzLnRyYW5zZm9ybXMucGFydHMuU2VjdE51bWAgKHZpYQotIGBkb2N1dGlscy50cmFu c2Zvcm1zLnVuaXZlcnNhbC5MYXN0UmVhZGVyUGVuZGluZ2ApLgotICIiIgotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGZy b20gZG9jdXRpbHMudHJhbnNmb3Jtcy5yZWZlcmVuY2VzIGltcG9ydCBTdWJzdGl0dXRpb25zCi0g ZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi1kaWZmIC0tZ2l0IGEv dGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zbWFydHF1b3Rlcy5weSBiL3Rlc3QvdGVzdF90cmFu c2Zvcm1zL3Rlc3Rfc21hcnRxdW90ZXMucHkKLWluZGV4IGUyODc0YzAuLmViNWM0MDEgMTAwNjQ0 Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3NtYXJ0cXVvdGVzLnB5Ci0rKysgYi90 ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3NtYXJ0cXVvdGVzLnB5Ci1AQCAtMTYsMTIgKzE2LDEz IEBACi0gIiIiCi0gVGVzdCBtb2R1bGUgZm9yIHVuaXZlcnNhbC5TbWFydFF1b3RlcyB0cmFuc2Zv cm0uCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS0K LS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0ICAjIG11c3QgYmUgaW1w b3J0ZWQgYmVmb3JlIGRvY3V0aWxzCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 ICAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0aWxzCi0gZnJvbSBkb2N1dGlscy50cmFu c2Zvcm1zLnVuaXZlcnNhbCBpbXBvcnQgU21hcnRRdW90ZXMKLSBmcm9tIGRvY3V0aWxzLnBhcnNl cnMucnN0IGltcG9ydCBQYXJzZXIKLSAKLSsKLSBkZWYgc3VpdGUoKToKLSAgICAgcGFyc2VyID0g UGFyc2VyKCkKLSAgICAgc2V0dGluZ3MgPSB7J3NtYXJ0X3F1b3Rlcyc6IFRydWV9Ci1kaWZmIC0t Z2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zdHJpcF9jb21tZW50cy5weSBiL3Rlc3Qv dGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc3RyaXBfY29tbWVudHMucHkKLWluZGV4IGY1ODQwNGYuLmEw MzQ1N2IgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N0cmlwX2NvbW1l bnRzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N0cmlwX2NvbW1lbnRzLnB5 Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3IgZG9jdXRpbHMudHJhbnNmb3Jtcy51 bml2ZXJzYWwuU3RyaXBDb21tZW50cy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi c29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBv cnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnRy YW5zZm9ybXMudW5pdmVyc2FsIGltcG9ydCBTdHJpcENvbW1lbnRzCi0gZnJvbSBkb2N1dGlscy5w YXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5z Zm9ybXMvdGVzdF9zdHJpcF9lbGVtZW50c193aXRoX2NsYXNzLnB5IGIvdGVzdC90ZXN0X3RyYW5z Zm9ybXMvdGVzdF9zdHJpcF9lbGVtZW50c193aXRoX2NsYXNzLnB5Ci1pbmRleCA2NTAzNTg2Li4x MWU2YWE2IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zdHJpcF9lbGVt ZW50c193aXRoX2NsYXNzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N0cmlw X2VsZW1lbnRzX3dpdGhfY2xhc3MucHkKLUBAIC03LDggKzcsOSBAQAotICIiIgotIFRlc3RzIGZv ciBkb2N1dGlscy50cmFuc2Zvcm1zLnVuaXZlcnNhbC5TdHJpcENvbW1lbnRzLgotICIiIgotK2Zy b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBp bXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3Vw cG9ydAotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IFBhcnNlcgotIGZyb20gZG9j dXRpbHMudHJhbnNmb3Jtcy51bml2ZXJzYWwgaW1wb3J0IFN0cmlwQ2xhc3Nlc0FuZEVsZW1lbnRz Ci0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zdWJzdGl0dXRpb25z LnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zdWJzdGl0dXRpb25zLnB5Ci1pbmRleCA3 ZWEzZThhLi4xZWM5YmYxIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9z dWJzdGl0dXRpb25zLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N1YnN0aXR1 dGlvbnMucHkKLUBAIC03LDggKzcsOSBAQAotICIiIgotIFRlc3RzIGZvciBkb2N1dGlscy50cmFu c2Zvcm1zLnJlZmVyZW5jZXMuU3Vic3RpdHV0aW9ucy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18g aW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSBmcm9tIGRv Y3V0aWxzLnRyYW5zZm9ybXMucmVmZXJlbmNlcyBpbXBvcnQgU3Vic3RpdHV0aW9ucwotIGZyb20g ZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IFBhcnNlcgotIAotZGlmZiAtLWdpdCBhL3Rlc3Qv dGVzdF90cmFuc2Zvcm1zL3Rlc3RfdGFyZ2V0X25vdGVzLnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9y bXMvdGVzdF90YXJnZXRfbm90ZXMucHkKLWluZGV4IDNiZTQwMDEuLmRjZmI0MTEgMTAwNzU1Ci0t LS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3RhcmdldF9ub3Rlcy5weQotKysrIGIvdGVz dC90ZXN0X3RyYW5zZm9ybXMvdGVzdF90YXJnZXRfbm90ZXMucHkKLUBAIC04LDggKzgsOSBAQAot IFRlc3RzIGZvciBgZG9jdXRpbHMudHJhbnNmb3Jtcy5yZWZlcmVuY2VzLlRhcmdldE5vdGVzYCAo dmlhCi0gYGRvY3V0aWxzLnRyYW5zZm9ybXMudW5pdmVyc2FsLkxhc3RSZWFkZXJQZW5kaW5nYCku Ci0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9t IF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zLnJlZmVyZW5jZXMgaW1w b3J0IFByb3BhZ2F0ZVRhcmdldHMsIFwKLSAgICAgIEFub255bW91c0h5cGVybGlua3MsIEluZGly ZWN0SHlwZXJsaW5rcywgRXh0ZXJuYWxUYXJnZXRzLCBcCi0gICAgICBJbnRlcm5hbFRhcmdldHMs IERhbmdsaW5nUmVmZXJlbmNlcywgRm9vdG5vdGVzCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3Ry YW5zZm9ybXMvdGVzdF90cmFuc2l0aW9ucy5weSBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rf dHJhbnNpdGlvbnMucHkKLWluZGV4IGM4ZWNhZmYuLjcxMzQ3YTIgMTAwNzU1Ci0tLS0gYS90ZXN0 L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3RyYW5zaXRpb25zLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJh bnNmb3Jtcy90ZXN0X3RyYW5zaXRpb25zLnB5Ci1AQCAtNywxMSArNywxMyBAQAotICIiIgotIFRl c3QgbW9kdWxlIGZvciBtaXNjLlRyYW5zaXRpb25zIHRyYW5zZm9ybS4KLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQgIyBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSBkb2N1dGlscwot K2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQgYmVm b3JlIGRvY3V0aWxzCi0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zLm1pc2MgaW1wb3J0IFRyYW5z aXRpb25zCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi0rCi0g ZGVmIHN1aXRlKCk6Ci0gICAgIHBhcnNlciA9IFBhcnNlcigpCi0gICAgIHMgPSBEb2N1dGlsc1Rl c3RTdXBwb3J0LlRyYW5zZm9ybVRlc3RTdWl0ZShwYXJzZXIpCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF93cml0ZXJfYXV4LnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMv dGVzdF93cml0ZXJfYXV4LnB5Ci1pbmRleCBmYzJlMGQzLi43MjcyMTE1IDEwMDc1NQotLS0tIGEv dGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF93cml0ZXJfYXV4LnB5Ci0rKysgYi90ZXN0L3Rlc3Rf dHJhbnNmb3Jtcy90ZXN0X3dyaXRlcl9hdXgucHkKLUBAIC03LDggKzcsOSBAQAotICIiIgotIFRl c3QgbW9kdWxlIGZvciB3cml0ZXJfYXV4IHRyYW5zZm9ybXMuCi0gIiIiCi0rZnJvbSBfX2Z1dHVy ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0ICMgbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgZG9jdXRpbHMKLStmcm9t IC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgIyBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSBk b2N1dGlscwotIGZyb20gZG9jdXRpbHMudHJhbnNmb3JtcyBpbXBvcnQgd3JpdGVyX2F1eAotIGZy b20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IFBhcnNlcgotIAotZGlmZiAtLWdpdCBhL3Rl c3QvdGVzdF93cml0ZXJzL3Rlc3RfZG9jdXRpbHNfeG1sLnB5IGIvdGVzdC90ZXN0X3dyaXRlcnMv dGVzdF9kb2N1dGlsc194bWwucHkKLWluZGV4IDk4NTQxY2YuLjVhNmNkYTMgMTAwNzU1Ci0tLS0g YS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2RvY3V0aWxzX3htbC5weQotKysrIGIvdGVzdC90ZXN0 X3dyaXRlcnMvdGVzdF9kb2N1dGlsc194bWwucHkKLUBAIC0xMywxMCArMTMsMTEgQEAgVGVzdCBm b3IgZG9jdXRpbHMgWE1MIHdyaXRlci4KLSAgICBgYDxlbXB0eT48L2VtcHR5PmBgIHZzLiBgYDxl bXB0eS8+YGAuIFRoZSBzYW1wbGUgc3RyaW5ncyBpbiB0aGlzIHRlc3QKLSAgICBtb2R1bGUgbWly cm9ycyB0aGUgY3VycmVudCBiZWhhdmlvdXIgb2YgdGhlIGRvY3V0aWxzX3htbCB3cml0ZXIuCi0g IiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLSBmcm9tIFN0 cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQgIyBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSBkb2N1dGlscwotK2Zyb20gLiBp bXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0 aWxzCi0gaW1wb3J0IGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLmNvcmUKLSAKLWRpZmYgLS1n aXQgYS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2dldF93cml0ZXJfY2xhc3MucHkgYi90ZXN0L3Rl c3Rfd3JpdGVycy90ZXN0X2dldF93cml0ZXJfY2xhc3MucHkKLWluZGV4IDc4ZTZlOGEuLjZhZjcw OTcgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2dldF93cml0ZXJfY2xhc3Mu cHkKLSsrKyBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfZ2V0X3dyaXRlcl9jbGFzcy5weQotQEAg LTgsMTAgKzgsMTIgQEAKLSAiIiIKLSB0ZXN0IGdldF93cml0ZXJfY2xhc3MKLSAiIiIKLStmcm9t IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBv cnQKLSBmcm9tIGRvY3V0aWxzLndyaXRlcnMgaW1wb3J0IGdldF93cml0ZXJfY2xhc3MKLSAKLSsK LSBjbGFzcyBHZXRXcml0ZXJDbGFzc1Rlc3RDYXNlKERvY3V0aWxzVGVzdFN1cHBvcnQuU3RhbmRh cmRUZXN0Q2FzZSk6Ci0gICAgICN0ZXN0cyA9ICggKCdtYW5wYWdlJywgMSksICgnbm9wZScsIDAp LCAoJ2R1bW15LXdyaXRlcicsIDEpKQotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF93cml0ZXJz L3Rlc3RfaHRtbDRjc3MxX21pc2MucHkgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw0Y3Nz MV9taXNjLnB5Ci1pbmRleCA3ZGYwMTc2Li41MzRlYmNlIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0 X3dyaXRlcnMvdGVzdF9odG1sNGNzczFfbWlzYy5weQotKysrIGIvdGVzdC90ZXN0X3dyaXRlcnMv dGVzdF9odG1sNGNzczFfbWlzYy5weQotQEAgLTksMTEgKzksMTQgQEAKLSAiIiIKLSBNaXNjZWxs YW5lb3VzIEhUTUwgd3JpdGVyIHRlc3RzLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg YWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3Vw cG9ydAotLWZyb20gZG9jdXRpbHMgaW1wb3J0IGNvcmUKLSBpbXBvcnQgb3MKLSAKLStmcm9tIC5f X2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gZG9jdXRpbHMgaW1wb3J0 IGNvcmUKLSsKLSsKLSBjbGFzcyBFbmNvZGluZ1Rlc3RDYXNlKERvY3V0aWxzVGVzdFN1cHBvcnQu U3RhbmRhcmRUZXN0Q2FzZSk6Ci0gCi0gICAgIGRlZiB0ZXN0X3htbGNoYXJyZWZyZXBsYWNlKHNl bGYpOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDRjc3MxX3BhcnRz LnB5IGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNGNzczFfcGFydHMucHkKLWluZGV4IDY0 YWMyYWMuLjkxNDBjYmEgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw0 Y3NzMV9wYXJ0cy5weQotKysrIGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNGNzczFfcGFy dHMucHkKLUBAIC0xMSwxMCArMTEsMTIgQEAgTm90ZTogdGhlICdib2R5JyBhbmQgJ3dob2xlJyBl bnRyaWVzIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIHBhcnRzCi0gZGljdGlvbmFyaWVzIChy ZWR1bmRhbnQpLCBhbG9uZyB3aXRoICdtZXRhJyBhbmQgJ3N0eWxlc2hlZXQnIGVudHJpZXMgd2l0 aAotIHN0YW5kYXJkIHZhbHVlcywgYW5kIGFueSBlbnRyaWVzIHdpdGggZW1wdHkgdmFsdWVzLgot ICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBf X2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMgaW1wb3J0IGNvcmUKLSAKLSsKLSBkZWYgc3Vp dGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuSHRtbFB1Ymxpc2hQYXJ0c1Rlc3RT dWl0ZSgpCi0gICAgIHMuZ2VuZXJhdGVUZXN0cyh0b3Rlc3QpCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3dyaXRlcnMvdGVzdF9odG1sNGNzczFfdGVtcGxhdGUucHkgYi90ZXN0L3Rlc3Rfd3JpdGVy cy90ZXN0X2h0bWw0Y3NzMV90ZW1wbGF0ZS5weQotaW5kZXggOTU0ZjMxOS4uODhlZmYzNiAxMDA3 NTUKLS0tLSBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDRjc3MxX3RlbXBsYXRlLnB5Ci0r KysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw0Y3NzMV90ZW1wbGF0ZS5weQotQEAgLTcs MTEgKzcsMTIgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlIEhUTUwgd3JpdGVyLgotICIiIgotK2Zy b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0gaW1wb3J0IG9zCi0gaW1w b3J0IHBsYXRmb3JtCi0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9y dAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIAotIGRlZiBzdWl0ZSgp OgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDVfcG9seWdsb3RfbWlz Yy5weSBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDVfcG9seWdsb3RfbWlzYy5weQotaW5k ZXggN2YxNDEzMy4uOWZlYzY1ZiAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3Rf aHRtbDVfcG9seWdsb3RfbWlzYy5weQotKysrIGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1s NV9wb2x5Z2xvdF9taXNjLnB5Ci1AQCAtOSwxMSArOSwxNCBAQAotICIiIgotIE1pc2NlbGxhbmVv dXMgSFRNTCB3cml0ZXIgdGVzdHMuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv bHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 Ci0tZnJvbSBkb2N1dGlscyBpbXBvcnQgY29yZQotIGltcG9ydCBvcwotIAotK2Zyb20gLiBpbXBv cnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gZG9jdXRpbHMgaW1wb3J0IGNvcmUKLSsKLSsK LSBjbGFzcyBFbmNvZGluZ1Rlc3RDYXNlKERvY3V0aWxzVGVzdFN1cHBvcnQuU3RhbmRhcmRUZXN0 Q2FzZSk6Ci0gCi0gICAgIGRlZiB0ZXN0X3htbGNoYXJyZWZyZXBsYWNlKHNlbGYpOgotZGlmZiAt LWdpdCBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDVfcG9seWdsb3RfcGFydHMucHkgYi90 ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw1X3BvbHlnbG90X3BhcnRzLnB5Ci1pbmRleCBjYjMy M2I3Li42MGZmNjg5IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNV9w b2x5Z2xvdF9wYXJ0cy5weQotKysrIGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNV9wb2x5 Z2xvdF9wYXJ0cy5weQotQEAgLTExLDggKzExLDkgQEAgTm90ZTogdGhlICdib2R5JyBhbmQgJ3do b2xlJyBlbnRyaWVzIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIHBhcnRzCi0gZGljdGlvbmFy aWVzIChyZWR1bmRhbnQpLCBhbG9uZyB3aXRoICdtZXRhJyBhbmQgJ3N0eWxlc2hlZXQnIGVudHJp ZXMgd2l0aAotIHN0YW5kYXJkIHZhbHVlcywgYW5kIGFueSBlbnRyaWVzIHdpdGggZW1wdHkgdmFs dWVzLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0t ZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gRG9jdXRpbHNUZXN0U3VwcG9ydCBpbXBvcnQgKEh0 bWxXcml0ZXJQdWJsaXNoUGFydHNUZXN0Q2FzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBIdG1sUHVibGlzaFBhcnRzVGVzdFN1aXRlKQotIGZyb20gZG9jdXRpbHMgaW1wb3J0 IGNvcmUsIF9fdmVyc2lvbl9fCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9s YXRleDJlLnB5IGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9sYXRleDJlLnB5Ci1pbmRleCA4OGJh MWE3Li5lOWRlZmViIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9sYXRleDJl LnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2xhdGV4MmUucHkKLUBAIC04LDkgKzgs MTIgQEAKLSAiIiIKLSBUZXN0cyBmb3IgbGF0ZXgyZSB3cml0ZXIuCi0gIiIiCi0rZnJvbSBfX2Z1 dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLSBpbXBvcnQgc3RyaW5nCi0tZnJvbSBf X2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotKwotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzZXR0aW5ncyA9IHsn dXNlX2xhdGV4X3RvYyc6IEZhbHNlfQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rl c3RfbWFucGFnZS5weSBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfbWFucGFnZS5weQotaW5kZXgg ZWVjNTQwMC4uYTIyMDQ0NCAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfbWFu cGFnZS5weQotKysrIGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9tYW5wYWdlLnB5Ci1AQCAtNyw4 ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIG1hbnBhZ2Ugd3JpdGVyLgotICIiIgotK2Zyb20g X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3Vw cG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzZXR0aW5ncyA9IHt9Ci1kaWZmIC0tZ2l0IGEv dGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9udWxsLnB5IGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9u dWxsLnB5Ci1pbmRleCBjNzVmOGE5Li4zY2M4ZjM3IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3dy aXRlcnMvdGVzdF9udWxsLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X251bGwucHkK LUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0IGZvciBOdWxsIHdyaXRlci4KLSAiIiIKLStm cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVz dFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQu UHVibGlzaFRlc3RTdWl0ZSgnbnVsbCcpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3dyaXRlcnMv dGVzdF9vZHQucHkgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X29kdC5weQotaW5kZXggMGVmZWFl Ni4uYTQ3YjdmYiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3Rfb2R0LnB5Ci0r KysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X29kdC5weQotQEAgLTI5LDYgKzI5LDcgQEAgSW5z dHJ1Y3Rpb25zIGZvciBhZGRpbmcgYSBuZXcgdGVzdDoKLSA1LiBJZiBhbnkgb3RoZXIgdGVzdHMg ZmFpbCwgdGhhdCdzIGEgcG9zc2libGUgcmVncmVzc2lvbi4KLSAKLSAiIiIKLStmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotIGltcG9ydCBzeXMKLSBpbXBvcnQgb3MK LUBAIC0zNiw3ICszNyw3IEBAIGltcG9ydCB6aXBmaWxlCi0gZnJvbSB4bWwuZG9tIGltcG9ydCBt aW5pZG9tCi0gaW1wb3J0IHRlbXBmaWxlCi0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGlt cG9ydCBkb2N1dGlscwotIGltcG9ydCBkb2N1dGlscy5jb3JlCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3dyaXRlcnMvdGVzdF9wc2V1ZG94bWwucHkgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X3Bz ZXVkb3htbC5weQotaW5kZXggOWRmYTcxNC4uMTg3ZGRlOSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVz dF93cml0ZXJzL3Rlc3RfcHNldWRveG1sLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0 X3BzZXVkb3htbC5weQotQEAgLTcsOCArNywxMCBAQAotICIiIgotIFRlc3QgZm9yIHBzZXVkby1Y TUwgd3JpdGVyLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0 Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRf XyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0g RG9jdXRpbHNUZXN0U3VwcG9ydC5QdWJsaXNoVGVzdFN1aXRlKCdwc2V1ZG94bWwnKQotZGlmZiAt LWdpdCBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfczUucHkgYi90ZXN0L3Rlc3Rfd3JpdGVycy90 ZXN0X3M1LnB5Ci1pbmRleCA1MTk3MmYzLi4xZTk1NWQzIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0 X3dyaXRlcnMvdGVzdF9zNS5weQotKysrIGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9zNS5weQot QEAgLTcsMTEgKzcsMTIgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlIFM1L0hUTUwgd3JpdGVyLgot ICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0gaW1wb3J0 IG9zCi0gaW1wb3J0IHBsYXRmb3JtCi0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNU ZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIAotIGRl ZiBzdWl0ZSgpOgotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxMC1weTMtVXNlLXNvcnRlZC1mb28taW5z dGVhZC1vZi1mb28uc29ydC5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMv MDAxMC1weTMtVXNlLXNvcnRlZC1mb28taW5zdGVhZC1vZi1mb28uc29ydC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGVlYzE2MmMzNzcuLjAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxMC1weTMtVXNlLXNvcnRlZC1mb28taW5z dGVhZC1vZi1mb28uc29ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzNiArMCwwIEBACi1G cm9tIDQ2ZDcxZWYxNDZkNWZlNzRiMDE4NjY5M2Y5MWE1ZjQ3NTg1YjFkNzkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4K LURhdGU6IE1vbiwgMjYgQXVnIDIwMTkgMTY6NDQ6NTEgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAx MC8yNl0gcHkzOiBVc2UgJ3NvcnRlZChmb28pJyBpbnN0ZWFkIG9mICdmb28uc29ydCgpJwotCi1U aGlzIHdvcmtzIHdpdGggaXRlcmF0b3JzIGFsc28gKGxpa2UgJ2RpY3Qua2V5cygpJyBpbiBQeXRo b24gMykKLQotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1 cnU+Ci0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9jb2Rl L3RydW5rQDgzNTcgOTI5NTQzZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQt b2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQot IGRvY3V0aWxzL25vZGVzLnB5ICAgICAgICAgICAgICAgICAgICAgICB8IDYgKystLS0tCi0gZG9j dXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJzZXIucHkgICAgIHwgMyArLS0KLSBkb2N1dGlscy90 cmFuc2Zvcm1zL19faW5pdF9fLnB5ICAgICAgICAgfCAzICstLQotIGRvY3V0aWxzL3V0aWxzL21h dGgvbWF0aDJodG1sLnB5ICAgICAgICB8IDMgKy0tCi0gZG9jdXRpbHMvd3JpdGVycy9faHRtbF9i YXNlLnB5ICAgICAgICAgIHwgMyArLS0KLSBkb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0 X18ucHkgICAgfCAzICstLQotIHRlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSAgICAgICAgICAg ICB8IDMgKy0tCi0gdGVzdC90ZXN0X2RlcGVuZGVuY2llcy5weSAgICAgICAgICAgICAgIHwgOSAr KystLS0tLS0KLSB0ZXN0L3Rlc3RfbGFuZ3VhZ2UucHkgICAgICAgICAgICAgICAgICAgfCA2ICsr LS0tLQotIHRvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlvbl9jaGFycy5weSB8IDMgKy0tCi0g dG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vicy5weSAgICAgICAgICAgIHwgNiArKy0tLS0KLSAxMSBm aWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL2RvY3V0aWxzL25vZGVzLnB5IGIvZG9jdXRpbHMvbm9kZXMucHkKLWluZGV4IGE4YzA0 NzguLmUyOWI4ODcgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9ub2Rlcy5weQotKysrIGIvZG9jdXRp bHMvbm9kZXMucHkKLUBAIC02NDksOCArNjQ5LDcgQEAgY2xhc3MgRWxlbWVudChOb2RlKToKLSAg ICAgICAgIHJldHVybiBhdHRzCi0gCi0gICAgIGRlZiBhdHRsaXN0KHNlbGYpOgotLSAgICAgICAg YXR0bGlzdCA9IHNlbGYubm9uX2RlZmF1bHRfYXR0cmlidXRlcygpLml0ZW1zKCkKLS0gICAgICAg IGF0dGxpc3Quc29ydCgpCi0rICAgICAgICBhdHRsaXN0ID0gc29ydGVkKHNlbGYubm9uX2RlZmF1 bHRfYXR0cmlidXRlcygpLml0ZW1zKCkpCi0gICAgICAgICByZXR1cm4gYXR0bGlzdAotIAotICAg ICBkZWYgZ2V0KHNlbGYsIGtleSwgZmFpbG9iaj1Ob25lKToKLUBAIC0xNzgyLDggKzE3ODEsNyBA QCBjbGFzcyBwZW5kaW5nKFNwZWNpYWwsIEludmlzaWJsZSwgRWxlbWVudCk6Ci0gICAgICAgICAg ICAgICAnICAgICAudHJhbnNmb3JtOiAlcy4lcycgJSAoc2VsZi50cmFuc2Zvcm0uX19tb2R1bGVf XywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYW5z Zm9ybS5fX25hbWVfXyksCi0gICAgICAgICAgICAgICAnICAgICAuZGV0YWlsczonXQotLSAgICAg ICAgZGV0YWlscyA9IHNlbGYuZGV0YWlscy5pdGVtcygpCi0tICAgICAgICBkZXRhaWxzLnNvcnQo KQotKyAgICAgICAgZGV0YWlscyA9IHNvcnRlZChzZWxmLmRldGFpbHMuaXRlbXMoKSkKLSAgICAg ICAgIGZvciBrZXksIHZhbHVlIGluIGRldGFpbHM6Ci0gICAgICAgICAgICAgaWYgaXNpbnN0YW5j ZSh2YWx1ZSwgTm9kZSk6Ci0gICAgICAgICAgICAgICAgIGludGVybmFscy5hcHBlbmQoJyU3cyVz OicgJSAoJycsIGtleSkpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFibGVw YXJzZXIucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weQotaW5kZXggMjc2 MGVhMC4uOTM3YWVjOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFy c2VyLnB5Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weQotQEAgLTI4 Niw4ICsyODYsNyBAQCBjbGFzcyBHcmlkVGFibGVQYXJzZXIoVGFibGVQYXJzZXIpOgotICAgICAg ICAgRnJvbSB0aGUgZGF0YSBjb2xsZWN0ZWQgYnkgYHNjYW5fY2VsbCgpYCwgY29udmVydCB0byB0 aGUgZmluYWwgZGF0YQotICAgICAgICAgc3RydWN0dXJlLgotICAgICAgICAgIiIiCi0tICAgICAg ICByb3dzZXBzID0gc2VsZi5yb3dzZXBzLmtleXMoKSAgICMgbGlzdCBvZiByb3cgYm91bmRhcmll cwotLSAgICAgICAgcm93c2Vwcy5zb3J0KCkKLSsgICAgICAgIHJvd3NlcHMgPSBzb3J0ZWQoc2Vs Zi5yb3dzZXBzLmtleXMoKSkgICAjIGxpc3Qgb2Ygcm93IGJvdW5kYXJpZXMKLSAgICAgICAgIHJv d2luZGV4ID0ge30KLSAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihyb3dzZXBzKSk6Ci0gICAg ICAgICAgICAgcm93aW5kZXhbcm93c2Vwc1tpXV0gPSBpICAgICMgcm93IGJvdW5kYXJ5IC0+IHJv dyBudW1iZXIgbWFwcGluZwotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvX19pbml0 X18ucHkgYi9kb2N1dGlscy90cmFuc2Zvcm1zL19faW5pdF9fLnB5Ci1pbmRleCA5MjcxMTMzLi5k NDQ0ZmNlIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5weQotKysr IGIvZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5weQotQEAgLTE1Myw4ICsxNTMsNyBAQCBj bGFzcyBUcmFuc2Zvcm1lcihUcmFuc2Zvcm1TcGVjKToKLSAgICAgICAgIHVua25vd25fcmVmZXJl bmNlX3Jlc29sdmVycyA9IFtdCi0gICAgICAgICBmb3IgaSBpbiBjb21wb25lbnRzOgotICAgICAg ICAgICAgIHVua25vd25fcmVmZXJlbmNlX3Jlc29sdmVycy5leHRlbmQoaS51bmtub3duX3JlZmVy ZW5jZV9yZXNvbHZlcnMpCi0tICAgICAgICBkZWNvcmF0ZWRfbGlzdCA9IFsoZi5wcmlvcml0eSwg ZikgZm9yIGYgaW4gdW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzXQotLSAgICAgICAgZGVjb3Jh dGVkX2xpc3Quc29ydCgpCi0rICAgICAgICBkZWNvcmF0ZWRfbGlzdCA9IHNvcnRlZChbKGYucHJp b3JpdHksIGYpIGZvciBmIGluIHVua25vd25fcmVmZXJlbmNlX3Jlc29sdmVyc10pCi0gICAgICAg ICBzZWxmLnVua25vd25fcmVmZXJlbmNlX3Jlc29sdmVycy5leHRlbmQoW2ZbMV0gZm9yIGYgaW4g ZGVjb3JhdGVkX2xpc3RdKQotIAotICAgICBkZWYgYXBwbHlfdHJhbnNmb3JtcyhzZWxmKToKLWRp ZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weSBiL2RvY3V0aWxzL3V0 aWxzL21hdGgvbWF0aDJodG1sLnB5Ci1pbmRleCA0YTcyMDlkLi5hZGNiMWNjIDEwMDY0NAotLS0t IGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxz L21hdGgvbWF0aDJodG1sLnB5Ci1AQCAtMjE5Myw5ICsyMTkzLDggQEAgY2xhc3MgQ29udGFpbmVy KG9iamVjdCk6Ci0gCi0gICBkZWYgZXNjYXBlKHNlbGYsIGxpbmUsIHJlcGxhY2VtZW50cyA9IEVz Y2FwZUNvbmZpZy5lbnRpdGllcyk6Ci0gICAgICJFc2NhcGUgYSBsaW5lIHdpdGggcmVwbGFjZW1l bnRzIGZyb20gZWx5eGVyLmEgbWFwIgotLSAgICBwaWVjZXMgPSByZXBsYWNlbWVudHMua2V5cygp Ci0rICAgIHBpZWNlcyA9IHNvcnRlZChyZXBsYWNlbWVudHMua2V5cygpKQotICAgICAjIGRvIHRo ZW0gaW4gb3JkZXIKLS0gICAgcGllY2VzLnNvcnQoKQotICAgICBmb3IgcGllY2UgaW4gcGllY2Vz OgotICAgICAgIGlmIHBpZWNlIGluIGxpbmU6Ci0gICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNl KHBpZWNlLCByZXBsYWNlbWVudHNbcGllY2VdKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRl cnMvX2h0bWxfYmFzZS5weSBiL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotaW5kZXgg YTdmM2I1My4uYTk1NzMxMSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFz ZS5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5Ci1AQCAtMzY2LDggKzM2 Niw3IEBAIGNsYXNzIEhUTUxUcmFuc2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAg ICAgICAgICAgICAgICMgTm9uLWVtcHR5IHRhZy4gIFBsYWNlIHRoZSBhdXhpbGlhcnkgPHNwYW4+ IHRhZwotICAgICAgICAgICAgICAgICAgICAgIyAqaW5zaWRlKiB0aGUgZWxlbWVudCwgYXMgdGhl IGZpcnN0IGNoaWxkLgotICAgICAgICAgICAgICAgICAgICAgc3VmZml4ICs9ICc8c3BhbiBpZD0i JXMiPjwvc3Bhbj4nICUgaWQKLS0gICAgICAgIGF0dGxpc3QgPSBhdHRzLml0ZW1zKCkKLS0gICAg ICAgIGF0dGxpc3Quc29ydCgpCi0rICAgICAgICBhdHRsaXN0ID0gc29ydGVkKGF0dHMuaXRlbXMo KSkKLSAgICAgICAgIHBhcnRzID0gW3RhZ25hbWVdCi0gICAgICAgICBmb3IgbmFtZSwgdmFsdWUg aW4gYXR0bGlzdDoKLSAgICAgICAgICAgICAjIHZhbHVlPU5vbmUgd2FzIHVzZWQgZm9yIGJvb2xl YW4gYXR0cmlidXRlcyB3aXRob3V0Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9sYXRl eDJlL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5Ci1p bmRleCBlMjFjNzRiLi4yNDllYzRhIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9sYXRl eDJlL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18u cHkKLUBAIC00NTcsOCArNDU3LDcgQEAgY2xhc3MgU29ydGFibGVEaWN0KGRpY3QpOgotICAgICAi IiIKLSAgICAgZGVmIHNvcnRlZGtleXMoc2VsZik6Ci0gICAgICAgICAiIiJSZXR1cm4gc29ydGVk IGxpc3Qgb2Yga2V5cyIiIgotLSAgICAgICAga2V5cyA9IHNlbGYua2V5cygpCi0tICAgICAgICBr ZXlzLnNvcnQoKQotKyAgICAgICAga2V5cyA9IHNvcnRlZChzZWxmLmtleXMoKSkKLSAgICAgICAg IHJldHVybiBrZXlzCi0gCi0gICAgIGRlZiBzb3J0ZWR2YWx1ZXMoc2VsZik6Ci1kaWZmIC0tZ2l0 IGEvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5IGIvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0 LnB5Ci1pbmRleCBhMWZlYzI1Li4yMWVhOTgyIDEwMDY0NAotLS0tIGEvdGVzdC9Eb2N1dGlsc1Rl c3RTdXBwb3J0LnB5Ci0rKysgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLUBAIC04MTUs OCArODE1LDcgQEAgY2xhc3MgSHRtbFdyaXRlclB1Ymxpc2hQYXJ0c1Rlc3RDYXNlKFdyaXRlclB1 Ymxpc2hUZXN0Q2FzZSk6Ci0gICAgICAgICAgICAgaWYgbm90IHBhcnRzW2tleV06Ci0gICAgICAg ICAgICAgICAgIGRlbCBwYXJ0c1trZXldCi0gICAgICAgICAjIHN0YW5kYXJkIG91dHB1dCBmb3Jt YXQ6Ci0tICAgICAgICBrZXlzID0gcGFydHMua2V5cygpCi0tICAgICAgICBrZXlzLnNvcnQoKQot KyAgICAgICAga2V5cyA9IHNvcnRlZChwYXJ0cy5rZXlzKCkpCi0gICAgICAgICBvdXRwdXQgPSBb XQotICAgICAgICAgZm9yIGtleSBpbiBrZXlzOgotICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQo IiVyOiAnJyclcycnJyIKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfZGVwZW5kZW5jaWVzLnB5IGIv dGVzdC90ZXN0X2RlcGVuZGVuY2llcy5weQotaW5kZXggMjk4ZThhNC4uMDkzOWI2ZCAxMDA3NTUK LS0tLSBhL3Rlc3QvdGVzdF9kZXBlbmRlbmNpZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9kZXBlbmRl bmNpZXMucHkKLUBAIC01NCw5ICs1NCw4IEBAIGNsYXNzIFJlY29yZERlcGVuZGVuY2llc1Rlc3Rz KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIGlmIFBJTDoKLSAgICAgICAgICAgICBrZXlz ICs9IFsnZmlndXJlLWltYWdlJ10KLSAgICAgICAgIGV4cGVjdGVkID0gW3BhdGhzW2tleV0gZm9y IGtleSBpbiBrZXlzXQotLSAgICAgICAgcmVjb3JkID0gc2VsZi5nZXRfcmVjb3JkKHdyaXRlcl9u YW1lPSd4bWwnKQotKyAgICAgICAgcmVjb3JkID0gc29ydGVkKHNlbGYuZ2V0X3JlY29yZCh3cml0 ZXJfbmFtZT0neG1sJykpCi0gICAgICAgICAjIHRoZSBvcmRlciBvZiB0aGUgZmlsZXMgaXMgYXJi aXRyYXJ5Ci0tICAgICAgICByZWNvcmQuc29ydCgpCi0gICAgICAgICBleHBlY3RlZC5zb3J0KCkK LSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVjb3JkLCBleHBlY3RlZCkKLSAKLUBAIC02Nyw5 ICs2Niw4IEBAIGNsYXNzIFJlY29yZERlcGVuZGVuY2llc1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNl KToKLSAgICAgICAgIGV4cGVjdGVkID0gW3BhdGhzW2tleV0gZm9yIGtleSBpbiBrZXlzXQotICAg ICAgICAgIyBzdHlsZXNoZWV0cyBhcmUgdGVzdGVkIHNlcGFyYXRlbHkgaW4gdGVzdF9zdHlsZXNo ZWV0X2RlcGVuZGVuY2llcygpOgotICAgICAgICAgc28gPSB7J3N0eWxlc2hlZXRfcGF0aCc6IE5v bmUsICdzdHlsZXNoZWV0JzogTm9uZX0KLS0gICAgICAgIHJlY29yZCA9IHNlbGYuZ2V0X3JlY29y ZCh3cml0ZXJfbmFtZT0naHRtbCcsIHNldHRpbmdzX292ZXJyaWRlcz1zbykKLSsgICAgICAgIHJl Y29yZCA9IHNvcnRlZChzZWxmLmdldF9yZWNvcmQod3JpdGVyX25hbWU9J2h0bWwnLCBzZXR0aW5n c19vdmVycmlkZXM9c28pKQotICAgICAgICAgIyB0aGUgb3JkZXIgb2YgdGhlIGZpbGVzIGlzIGFy Yml0cmFyeQotLSAgICAgICAgcmVjb3JkLnNvcnQoKQotICAgICAgICAgZXhwZWN0ZWQuc29ydCgp Ci0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlY29yZCwgZXhwZWN0ZWQpCi0gCi1AQCAtODIs OSArODAsOCBAQCBjbGFzcyBSZWNvcmREZXBlbmRlbmNpZXNUZXN0cyh1bml0dGVzdC5UZXN0Q2Fz ZSk6Ci0gICAgICAgICBpZiBQSUw6Ci0gICAgICAgICAgICAga2V5cyArPSBbJ2ZpZ3VyZS1pbWFn ZSddCi0gICAgICAgICBleHBlY3RlZCA9IFtwYXRoc1trZXldIGZvciBrZXkgaW4ga2V5c10KLS0g ICAgICAgIHJlY29yZCA9IHNlbGYuZ2V0X3JlY29yZCh3cml0ZXJfbmFtZT0nbGF0ZXgnKQotKyAg ICAgICAgcmVjb3JkID0gc29ydGVkKHNlbGYuZ2V0X3JlY29yZCh3cml0ZXJfbmFtZT0nbGF0ZXgn KSkKLSAgICAgICAgICMgdGhlIG9yZGVyIG9mIHRoZSBmaWxlcyBpcyBhcmJpdHJhcnkKLS0gICAg ICAgIHJlY29yZC5zb3J0KCkKLSAgICAgICAgIGV4cGVjdGVkLnNvcnQoKQotICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChyZWNvcmQsIGV4cGVjdGVkKQotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVz dF9sYW5ndWFnZS5weSBiL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotaW5kZXggMzBhZjgxYS4uMzFh YzYxMyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotKysrIGIvdGVzdC90ZXN0 X2xhbmd1YWdlLnB5Ci1AQCAtMTUwLDggKzE1MCw3IEBAIGNsYXNzIExhbmd1YWdlVGVzdENhc2Uo RG9jdXRpbHNUZXN0U3VwcG9ydC5DdXN0b21UZXN0Q2FzZSk6Ci0gICAgICAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKCci JXMiOiAlcycgJSAoZCwgZXJyb3IpKQotICAgICAgICAgaW52ZXJ0ZWQgPSBzZWxmLl9pbnZlcnQo bW9kdWxlLmRpcmVjdGl2ZXMpCi0tICAgICAgICBjYW5vbmljYWwgPSBkaXJlY3RpdmVzLl9kaXJl Y3RpdmVfcmVnaXN0cnkua2V5cygpCi0tICAgICAgICBjYW5vbmljYWwuc29ydCgpCi0rICAgICAg ICBjYW5vbmljYWwgPSBzb3J0ZWQoZGlyZWN0aXZlcy5fZGlyZWN0aXZlX3JlZ2lzdHJ5LmtleXMo KSkKLSAgICAgICAgIGNhbm9uaWNhbC5yZW1vdmUoJ3Jlc3RydWN0dXJlZHRleHQtdGVzdC1kaXJl Y3RpdmUnKQotICAgICAgICAgZm9yIG5hbWUgaW4gY2Fub25pY2FsOgotICAgICAgICAgICAgIGlm IG5hbWUgbm90IGluIGludmVydGVkOgotQEAgLTE4NSw4ICsxODQsNyBAQCBjbGFzcyBMYW5ndWFn ZVRlc3RDYXNlKERvY3V0aWxzVGVzdFN1cHBvcnQuQ3VzdG9tVGVzdENhc2UpOgotICAgICAgICAg ICAgIGV4Y2VwdCBLZXlFcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgZmFpbHVyZXMu YXBwZW5kKCciJXMiOiAlcycgJSAoZCwgZXJyb3IpKQotICAgICAgICAgaW52ZXJ0ZWQgPSBzZWxm Ll9pbnZlcnQobW9kdWxlLnJvbGVzKQotLSAgICAgICAgY2Fub25pY2FsID0gcm9sZXMuX3JvbGVf cmVnaXN0cnkua2V5cygpCi0tICAgICAgICBjYW5vbmljYWwuc29ydCgpCi0rICAgICAgICBjYW5v bmljYWwgPSBzb3J0ZWQocm9sZXMuX3JvbGVfcmVnaXN0cnkua2V5cygpKQotICAgICAgICAgY2Fu b25pY2FsLnJlbW92ZSgncmVzdHJ1Y3R1cmVkdGV4dC11bmltcGxlbWVudGVkLXJvbGUnKQotICAg ICAgICAgZm9yIG5hbWUgaW4gY2Fub25pY2FsOgotICAgICAgICAgICAgIGlmIG5hbWUgbm90IGlu IGludmVydGVkOgotZGlmZiAtLWdpdCBhL3Rvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlvbl9j aGFycy5weSBiL3Rvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlvbl9jaGFycy5weQotaW5kZXgg YTMwYzVjYS4uYjcxOGY3OCAxMDA2NDQKLS0tLSBhL3Rvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVh dGlvbl9jaGFycy5weQotKysrIGIvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJz LnB5Ci1AQCAtMjY5LDggKzI2OSw3IEBAIGRlZiBtYXJrX2ludGVydmFscyhzKToKLSAgICAgU29y dCBzdHJpbmcgYW5kIHJlcGxhY2UgJ2NkZWYnIGJ5ICdjLWYnIGFuZCBzaW1pbGFyLgotICAgICAi IiIKLSAgICAgbCA9W10KLS0gICAgcyA9IFtvcmQoY2gpIGZvciBjaCBpbiBzXQotLSAgICBzLnNv cnQoKQotKyAgICBzID0gc29ydGVkKFtvcmQoY2gpIGZvciBjaCBpbiBzXSkKLSAgICAgZm9yIG4g aW4gczoKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBpZiBsWy0xXVstMV0rMSA9PSBuOgot ZGlmZiAtLWdpdCBhL3Rvb2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkgYi90b29scy9kZXYvdW5p Y29kZTJyc3RzdWJzLnB5Ci1pbmRleCBiNTFlZWM0Li5hYzM4YmY0IDEwMDc1NQotLS0tIGEvdG9v bHMvZGV2L3VuaWNvZGUycnN0c3Vicy5weQotKysrIGIvdG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vi cy5weQotQEAgLTE2Myw4ICsxNjMsNyBAQCBjbGFzcyBDaGFyYWN0ZXJFbnRpdHlTZXRFeHRyYWN0 b3Iob2JqZWN0KToKLSAgICAgICAgIHJldHVybiBuYW1lCi0gCi0gICAgIGRlZiB3cml0ZV9zZXRz KHNlbGYpOgotLSAgICAgICAgc2V0cyA9IGxpc3Qoc2VsZi5zZXRzLmtleXMoKSkKLS0gICAgICAg IHNldHMuc29ydCgpCi0rICAgICAgICBzZXRzID0gc29ydGVkKHNlbGYuc2V0cy5rZXlzKCkpCi0g ICAgICAgICBmb3Igc2V0X25hbWUgaW4gc2V0czoKLSAgICAgICAgICAgICBzZWxmLndyaXRlX3Nl dChzZXRfbmFtZSkKLSAKLUBAIC0xNzcsOCArMTc2LDcgQEAgY2xhc3MgQ2hhcmFjdGVyRW50aXR5 U2V0RXh0cmFjdG9yKG9iamVjdCk6Ci0gICAgICAgICBwcmludCgnd3JpdGluZyBmaWxlICIlcyIn ICUgb3V0bmFtZSkKLSAgICAgICAgIG91dGZpbGUud3JpdGUoc2VsZi5oZWFkZXIgKyAnXG4nKQot ICAgICAgICAgc2V0ID0gc2VsZi5zZXRzW3NldF9uYW1lXQotLSAgICAgICAgZW50aXRpZXMgPSBb KGUubG93ZXIoKSwgZSkgZm9yIGUgaW4gc2V0LmtleXMoKV0KLS0gICAgICAgIGVudGl0aWVzLnNv cnQoKQotKyAgICAgICAgZW50aXRpZXMgPSBzb3J0ZWQoWyhlLmxvd2VyKCksIGUpIGZvciBlIGlu IHNldC5rZXlzKCldKQotICAgICAgICAgbG9uZ2VzdCA9IDAKLSAgICAgICAgIGZvciBfLCBlbnRp dHlfbmFtZSBpbiBlbnRpdGllczoKLSAgICAgICAgICAgICBsb25nZXN0ID0gbWF4KGxvbmdlc3Qs IGxlbihlbnRpdHlfbmFtZSkpCi0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDExLUNsZWFudXAtc2ltcGxp ZnktY29kZS1mb2xsb3dpbmctcmVjZW50LWNoYW5nZXMucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1k b2N1dGlscy9wYXRjaGVzLzAwMTEtQ2xlYW51cC1zaW1wbGlmeS1jb2RlLWZvbGxvd2luZy1yZWNl bnQtY2hhbmdlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRiNzI4ODcx YWUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAx MS1DbGVhbnVwLXNpbXBsaWZ5LWNvZGUtZm9sbG93aW5nLXJlY2VudC1jaGFuZ2VzLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotRnJvbSA3OTIwODBhZDFkOGFjMjg0ODNjOWMx NDdiMGNiNzlmMTA4YjQwNTcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhl biBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBNb24sIDI2IEF1ZyAyMDE5IDE2 OjQ1OjA5ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTEvMjZdIENsZWFudXAvc2ltcGxpZnkgY29k ZSBmb2xsb3dpbmcgcmVjZW50IGNoYW5nZXMuCi0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29k ZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNTggOTI5NTQzZjYtZTRmMi0wMzEwLTk4 YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25n ZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL3RyYW5zZm9ybXMvX19pbml0X18ucHkg ICAgICB8IDQgKystLQotIGRvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weSB8IDgg KystLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvX19pbml0X18ucHkgYi9kb2N1 dGlscy90cmFuc2Zvcm1zL19faW5pdF9fLnB5Ci1pbmRleCBkNDQ0ZmNlLi4xMmJmNmY5IDEwMDY0 NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMv dHJhbnNmb3Jtcy9fX2luaXRfXy5weQotQEAgLTE1Myw4ICsxNTMsOCBAQCBjbGFzcyBUcmFuc2Zv cm1lcihUcmFuc2Zvcm1TcGVjKToKLSAgICAgICAgIHVua25vd25fcmVmZXJlbmNlX3Jlc29sdmVy cyA9IFtdCi0gICAgICAgICBmb3IgaSBpbiBjb21wb25lbnRzOgotICAgICAgICAgICAgIHVua25v d25fcmVmZXJlbmNlX3Jlc29sdmVycy5leHRlbmQoaS51bmtub3duX3JlZmVyZW5jZV9yZXNvbHZl cnMpCi0tICAgICAgICBkZWNvcmF0ZWRfbGlzdCA9IHNvcnRlZChbKGYucHJpb3JpdHksIGYpIGZv ciBmIGluIHVua25vd25fcmVmZXJlbmNlX3Jlc29sdmVyc10pCi0tICAgICAgICBzZWxmLnVua25v d25fcmVmZXJlbmNlX3Jlc29sdmVycy5leHRlbmQoW2ZbMV0gZm9yIGYgaW4gZGVjb3JhdGVkX2xp c3RdKQotKyAgICAgICAgZGVjb3JhdGVkX2xpc3QgPSBzb3J0ZWQoKGYucHJpb3JpdHksIGYpIGZv ciBmIGluIHVua25vd25fcmVmZXJlbmNlX3Jlc29sdmVycykKLSsgICAgICAgIHNlbGYudW5rbm93 bl9yZWZlcmVuY2VfcmVzb2x2ZXJzLmV4dGVuZChmWzFdIGZvciBmIGluIGRlY29yYXRlZF9saXN0 KQotIAotICAgICBkZWYgYXBwbHlfdHJhbnNmb3JtcyhzZWxmKToKLSAgICAgICAgICIiIkFwcGx5 IGFsbCBvZiB0aGUgc3RvcmVkIHRyYW5zZm9ybXMsIGluIHByaW9yaXR5IG9yZGVyLiIiIgotZGlm ZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weSBiL2RvY3V0aWxz L3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weQotaW5kZXggYzBmNDNhNS4uNDE3ZGMzNCAxMDA2 NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weQotKysrIGIvZG9j dXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci1AQCAtNjgsMTIgKzY4LDggQEAgZXhj ZXB0IEltcG9ydEVycm9yOgotIHRyeToKLSAgICAgaW1wb3J0IHB5Z21lbnRzCi0gICAgIGltcG9y dCBweWdtZW50cy5sZXhlcnMKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mby5tYWpvciA+PSAzOgot LSAgICAgICAgZnJvbSAucHlnbWVudHNmb3JtYXR0ZXIgaW1wb3J0IE9kdFB5Z21lbnRzUHJvZ0Zv cm1hdHRlciwgXAotLSAgICAgICAgICAgIE9kdFB5Z21lbnRzTGFUZVhGb3JtYXR0ZXIKLS0gICAg ZWxzZToKLS0gICAgICAgIGZyb20gLnB5Z21lbnRzZm9ybWF0dGVyIGltcG9ydCBPZHRQeWdtZW50 c1Byb2dGb3JtYXR0ZXIsIFwKLS0gICAgICAgICAgICBPZHRQeWdtZW50c0xhVGVYRm9ybWF0dGVy Ci0rICAgIGZyb20gLnB5Z21lbnRzZm9ybWF0dGVyIGltcG9ydCAoT2R0UHlnbWVudHNQcm9nRm9y bWF0dGVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9kdFB5Z21lbnRz TGFUZVhGb3JtYXR0ZXIpCi0gZXhjZXB0IChJbXBvcnRFcnJvciwgU3ludGF4RXJyb3IpOgotICAg ICBweWdtZW50cyA9IE5vbmUKLSAKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYg LS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTItVXNlLWlzaW5zdGFu Y2UtZm9vLWJhci1pbnN0ZWFkLW9mLXR5cGUtZm9vLWlzLWJhci5wYXRjaCBiL3NyY3BrZ3MvcHl0 aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxMi1Vc2UtaXNpbnN0YW5jZS1mb28tYmFyLWluc3RlYWQt b2YtdHlwZS1mb28taXMtYmFyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw ZTFiYjVhYzA5My4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0 Y2hlcy8wMDEyLVVzZS1pc2luc3RhbmNlLWZvby1iYXItaW5zdGVhZC1vZi10eXBlLWZvby1pcy1i YXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjAgKzAsMCBAQAotRnJvbSA4OGZkZGU4MzQx OWI2YzUzMjk0OGE2NGQyODI0ZjZhNjYzYWQzM2MzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBNb24sIDI2 IEF1ZyAyMDE5IDE2OjQ1OjMzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTIvMjZdIFVzZSAnaXNp bnN0YW5jZShmb28sIGJhciknIGluc3RlYWQgb2YgJ3R5cGUoZm9vKSBpcwotIGJhcicKLQotVGhp cyBvbmUgaXMgbW9yZSBzdHlsaXN0aWMgdGhhbiBhbnl0aGluZy4KLQotU2lnbmVkLW9mZi1ieTog U3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci0KLWdpdC1zdm4taWQ6IGh0dHA6 Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNTkgOTI5NTQzZjYtZTRm Mi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBE YW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL3BhcnNlcnMvcnN0L2Rp cmVjdGl2ZXMvdGFibGVzLnB5IHwgNCArKy0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3Qvc3RhdGVz LnB5ICAgICAgICAgICAgfCAyICstCi0gZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5ICAgICAgICAg ICAgICAgICAgfCAyICstCi0gZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwucHkgICAg ICAgfCAyICstCi0gdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5ICAgICAgICAgICAgICAgICAgfCA0 ICsrLS0KLSB0ZXN0L3Rlc3Rfbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0K LSA2IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5IGIvZG9j dXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLWluZGV4IGIwYTRlYWMuLmJm OTdlMjYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxl cy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLUBA IC0xMDQsNyArMTA0LDcgQEAgY2xhc3MgVGFibGUoRGlyZWN0aXZlKToKLSAgICAgICAgIHJldHVy biBzZWxmLm9wdGlvbnMuZ2V0KCd3aWR0aHMnLCAnJykKLSAKLSAgICAgZGVmIGdldF9jb2x1bW5f d2lkdGhzKHNlbGYsIG1heF9jb2xzKToKLS0gICAgICAgIGlmIHR5cGUoc2VsZi53aWR0aHMpID09 IGxpc3Q6Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYud2lkdGhzLCBsaXN0KToKLSAgICAg ICAgICAgICBpZiBsZW4oc2VsZi53aWR0aHMpICE9IG1heF9jb2xzOgotICAgICAgICAgICAgICAg ICBlcnJvciA9IHNlbGYuc3RhdGVfbWFjaGluZS5yZXBvcnRlci5lcnJvcigKLSAgICAgICAgICAg ICAgICAgICAgICciJXMiIHdpZHRocyBkbyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiBjb2x1bW5z IGluIHRhYmxlICcKLUBAIC0xNTIsNyArMTUyLDcgQEAgY2xhc3MgUlNUVGFibGUoVGFibGUpOgot ICAgICAgICAgaWYgJ2FsaWduJyBpbiBzZWxmLm9wdGlvbnM6Ci0gICAgICAgICAgICAgdGFibGVf bm9kZVsnYWxpZ24nXSA9IHNlbGYub3B0aW9ucy5nZXQoJ2FsaWduJykKLSAgICAgICAgIHRncm91 cCA9IHRhYmxlX25vZGVbMF0KLS0gICAgICAgIGlmIHR5cGUoc2VsZi53aWR0aHMpID09IGxpc3Q6 Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYud2lkdGhzLCBsaXN0KToKLSAgICAgICAgICAg ICBjb2xzcGVjcyA9IFtjaGlsZCBmb3IgY2hpbGQgaW4gdGdyb3VwLmNoaWxkcmVuCi0gICAgICAg ICAgICAgICAgICAgICAgICAgaWYgY2hpbGQudGFnbmFtZSA9PSAnY29sc3BlYyddCi0gICAgICAg ICAgICAgZm9yIGNvbHNwZWMsIGNvbF93aWR0aCBpbiB6aXAoY29sc3BlY3MsIHNlbGYud2lkdGhz KToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkgYi9kb2N1dGls cy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkKLWluZGV4IGM5YjRmYTMuLjJhMmUzM2EgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNl cnMvcnN0L3N0YXRlcy5weQotQEAgLTQ0Nyw3ICs0NDcsNyBAQCBkZWYgYnVpbGRfcmVnZXhwKGRl ZmluaXRpb24sIGNvbXBpbGU9VHJ1ZSk6Ci0gICAgIG5hbWUsIHByZWZpeCwgc3VmZml4LCBwYXJ0 cyA9IGRlZmluaXRpb24KLSAgICAgcGFydF9zdHJpbmdzID0gW10KLSAgICAgZm9yIHBhcnQgaW4g cGFydHM6Ci0tICAgICAgICBpZiB0eXBlKHBhcnQpIGlzIHR1cGxlOgotKyAgICAgICAgaWYgaXNp bnN0YW5jZShwYXJ0LCB0dXBsZSk6Ci0gICAgICAgICAgICAgcGFydF9zdHJpbmdzLmFwcGVuZChi dWlsZF9yZWdleHAocGFydCwgTm9uZSkpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHBh cnRfc3RyaW5ncy5hcHBlbmQocGFydCkKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9zdGF0ZW1hY2hp bmUucHkgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLWluZGV4IDA2ODA4M2EuLjZiYzAzZjUg MTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLSsrKyBiL2RvY3V0aWxzL3N0 YXRlbWFjaGluZS5weQotQEAgLTczNyw3ICs3MzcsNyBAQCBjbGFzcyBTdGF0ZShvYmplY3QpOgot ICAgICAgICAgbmFtZXMgPSBbXQotICAgICAgICAgdHJhbnNpdGlvbnMgPSB7fQotICAgICAgICAg Zm9yIG5hbWVzdGF0ZSBpbiBuYW1lX2xpc3Q6Ci0tICAgICAgICAgICAgaWYgdHlwZShuYW1lc3Rh dGUpIGlzIHN0cmluZ3R5cGU6Ci0rICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShuYW1lc3RhdGUs IHN0cmluZ3R5cGUpOgotICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uc1tuYW1lc3RhdGVdID0g c2VsZi5tYWtlX3RyYW5zaXRpb24obmFtZXN0YXRlKQotICAgICAgICAgICAgICAgICBuYW1lcy5h cHBlbmQobmFtZXN0YXRlKQotICAgICAgICAgICAgIGVsc2U6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRp bHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwucHkgYi9kb2N1dGlscy91dGlscy9tYXRoL2xhdGV4 Mm1hdGhtbC5weQotaW5kZXggMjU1ZTk2Zi4uYjdiYTA0OCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxz L3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9tYXRoL2xh dGV4Mm1hdGhtbC5weQotQEAgLTE2OCw3ICsxNjgsNyBAQCBjbGFzcyBtYXRoKG9iamVjdCk6Ci0g Ci0gICAgICAgICBzZWxmLmNoaWxkcmVuID0gW10KLSAgICAgICAgIGlmIGNoaWxkcmVuIGlzIG5v dCBOb25lOgotLSAgICAgICAgICAgIGlmIHR5cGUoY2hpbGRyZW4pIGlzIGxpc3Q6Ci0rICAgICAg ICAgICAgaWYgaXNpbnN0YW5jZShjaGlsZHJlbiwgbGlzdCk6Ci0gICAgICAgICAgICAgICAgIGZv ciBjaGlsZCBpbiBjaGlsZHJlbjoKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBwZW5kKGNo aWxkKQotICAgICAgICAgICAgIGVsc2U6Ci1kaWZmIC0tZ2l0IGEvdGVzdC9wYWNrYWdlX3VuaXR0 ZXN0LnB5IGIvdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5Ci1pbmRleCA0ZGI4MjZiLi4xYzBmMDc3 IDEwMDY0NAotLS0tIGEvdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5Ci0rKysgYi90ZXN0L3BhY2th Z2VfdW5pdHRlc3QucHkKLUBAIC0xMTUsNyArMTE1LDcgQEAgZGVmIGxvYWRUZXN0TW9kdWxlcyhw YXRoLCBuYW1lPScnLCBwYWNrYWdlcz1Ob25lKToKLSAgICAgICAgICAgICAgICAgIyB0byBjaGVh dDoKLSAgICAgICAgICAgICAgICAgdGVzdFN1aXRlLmFkZFRlc3QobW9kdWxlVGVzdHMpCi0gICAg ICAgICAgICAgICAgIGNvbnRpbnVlCi0tICAgICAgICAgICAgaWYgdHlwZShzdWl0ZSkgPT0gdHlw ZXMuRnVuY3Rpb25UeXBlOgotKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3VpdGUsIHR5cGVz LkZ1bmN0aW9uVHlwZSk6Ci0gICAgICAgICAgICAgICAgIHRlc3RTdWl0ZS5hZGRUZXN0KHN1aXRl KCkpCi0gICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHN1aXRlLCB1bml0dGVzdC5UZXN0U3Vp dGUpOgotICAgICAgICAgICAgICAgICB0ZXN0U3VpdGUuYWRkVGVzdChzdWl0ZSkKLUBAIC0xNTIs NyArMTUyLDcgQEAgZGVmIG1haW4oc3VpdGU9Tm9uZSk6Ci0gICAgICAgICBwcmludCgiRGVidWc6 IFN1aXRlPSVzIiAlIHN1aXRlLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgIHRlc3RSdW5uZXIgPSB1 bml0dGVzdC5UZXh0VGVzdFJ1bm5lcih2ZXJib3NpdHk9dmVyYm9zaXR5KQotICAgICAjIHJ1biBz dWl0ZXMgKGlmIHdlIHdlcmUgY2FsbGVkIGZyb20gdGVzdF9hbGwpIG9yIHN1aXRlLi4uCi0tICAg IGlmIHR5cGUoc3VpdGUpID09IHR5cGUoW10pOgotKyAgICBpZiBpc2luc3RhbmNlKHN1aXRlLCB0 eXBlKFtdKSk6Ci0gICAgICAgICBmb3IgcyBpbiBzdWl0ZToKLSAgICAgICAgICAgICB0ZXN0UnVu bmVyLnJ1bihzKQotICAgICBlbHNlOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9ub2Rlcy5weSBi L3Rlc3QvdGVzdF9ub2Rlcy5weQotaW5kZXggNjc5Yzk4ZS4uYWYwNGU4NiAxMDA3NTUKLS0tLSBh L3Rlc3QvdGVzdF9ub2Rlcy5weQotKysrIGIvdGVzdC90ZXN0X25vZGVzLnB5Ci1AQCAtMTIxLDcg KzEyMSw3IEBAIGNsYXNzIEVsZW1lbnRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHVlbGVtZW50KSwgIjxFbGVtZW50OiA8I3RleHQ6 ICdnclxceGZjbic+PiIpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwocmVwcih1ZWxlbWVudCksIHUiPEVsZW1lbnQ6IDwjdGV4dDogJ2dyw7xuJz4+IikKLS0g ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHJlcHIodWVsZW1lbnQpLHN0cikpCi0r ICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShyZXByKHVlbGVtZW50KSwgc3RyKSkK LSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVsZW1lbnQpLCAnPEVsZW1lbnQ+dGV4dFxu bW9yZTwvRWxlbWVudD4nKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIodWVsZW1lbnQp LCAnPEVsZW1lbnQ+Z3JceGZjbjwvRWxlbWVudD4nKQotICAgICAgICAgZG9tID0gZWxlbWVudC5h c2RvbSgpCi0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDEzLUNvbnNpc3RlbnQtUHl0aG9uLTMtY2hlY2tz LnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDEzLUNvbnNpc3RlbnQt UHl0aG9uLTMtY2hlY2tzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDY0 M2RlZDRmMS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hl cy8wMDEzLUNvbnNpc3RlbnQtUHl0aG9uLTMtY2hlY2tzLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNTk0ICswLDAgQEAKLUZyb20gN2U3OWE1MzljNDI2YmJiYjI5MzIyODZiMmVmYTJjZjAzYTQ2 N2U0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0 ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogV2VkLCAyMCBOb3YgMjAxOSAwMDowMjozNCArMDcwMAot U3ViamVjdDogW1BBVENIIDEzLzI2XSBDb25zaXN0ZW50IFB5dGhvbiAzIGNoZWNrcy4KLQotZ2l0 LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM2 MCA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERv YW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMv ZnJvbnRlbmQucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGls cy9pby5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCi0gZG9j dXRpbHMvbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysr LS0tLS0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weSAgICAg IHwgIDIgKy0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2MucHkgICAgICAg ICAgfCAgNCArKy0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkg ICAgICAgIHwgIDQgKystLQotIGRvY3V0aWxzL3N0YXRlbWFjaGluZS5weSAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weSAg ICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5weSAg ICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5ICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5n LnB5ICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2Uu cHkgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNf eG1sLnB5ICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KLSBkb2N1dGlscy93cml0ZXJzL2xhdGV4 MmUvX19pbml0X18ucHkgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3dyaXRlcnMvbWFu cGFnZS5weSAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvd3JpdGVycy9v ZGZfb2R0L19faW5pdF9fLnB5ICAgICAgICAgICAgIHwgIDIgKy0KLSBzZXR1cC5weSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KLSB0ZXN0L0RvY3V0 aWxzVGVzdFN1cHBvcnQucHkgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCi0gdGVzdC90 ZXN0X19pbml0X18ucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSB0ZXN0 L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIHRl c3QvdGVzdF9sYW5ndWFnZS5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0g dGVzdC90ZXN0X25vZGVzLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysr KysrKystLS0tLS0tLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcGFyc2VyLnB5ICAgICAgICAg ICAgICAgICB8ICAyICstCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1 ZGUucHkgICAgIHwgIDIgKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFi bGVzLnB5ICAgICAgfCAgMiArLQotIC4uLi90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91 bmljb2RlLnB5ICAgICB8ICAyICstCi0gdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkgICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKystLQotIHRvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlv bl9jaGFycy5weSAgICAgICAgICB8ICA0ICsrLS0KLSAyOCBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNl cnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2Zyb250 ZW5kLnB5IGIvZG9jdXRpbHMvZnJvbnRlbmQucHkKLWluZGV4IDRiMzg5YjAuLjYyN2Y2MDMgMTAw NjQ0Ci0tLS0gYS9kb2N1dGlscy9mcm9udGVuZC5weQotKysrIGIvZG9jdXRpbHMvZnJvbnRlbmQu cHkKLUBAIC00Myw3ICs0Myw3IEBAIGltcG9ydCBkb2N1dGlscy5ub2RlcwotIGZyb20gZG9jdXRp bHMudXRpbHMuZXJyb3JfcmVwb3J0aW5nIGltcG9ydCAobG9jYWxlX2VuY29kaW5nLCBTYWZlU3Ry aW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JP dXRwdXQsIEVycm9yU3RyaW5nKQotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgot K2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9x YQotIAotIAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2lvLnB5IGIvZG9jdXRpbHMvaW8ucHkKLWlu ZGV4IDNjZGYwMGUuLmZiMzU0ZmQgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9pby5weQotKysrIGIv ZG9jdXRpbHMvaW8ucHkKLUBAIC0xNyw3ICsxNyw3IEBAIGltcG9ydCBjb2RlY3MKLSBmcm9tIGRv Y3V0aWxzIGltcG9ydCBUcmFuc2Zvcm1TcGVjCi0gZnJvbSBkb2N1dGlscy51dGlscy5lcnJvcl9y ZXBvcnRpbmcgaW1wb3J0IGxvY2FsZV9lbmNvZGluZywgRXJyb3JTdHJpbmcsIEVycm9yT3V0cHV0 Ci0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1AQCAtMjA4LDcg KzIwOCw3IEBAIGNsYXNzIEZpbGVJbnB1dChJbnB1dCk6Ci0gICAgIGRlZiBfX2luaXRfXyhzZWxm LCBzb3VyY2U9Tm9uZSwgc291cmNlX3BhdGg9Tm9uZSwKLSAgICAgICAgICAgICAgICAgIGVuY29k aW5nPU5vbmUsIGVycm9yX2hhbmRsZXI9J3N0cmljdCcsCi0gICAgICAgICAgICAgICAgICBhdXRv Y2xvc2U9VHJ1ZSwKLS0gICAgICAgICAgICAgICAgIG1vZGU9J3InIGlmIHN5cy52ZXJzaW9uX2lu Zm8gPj0gKDMsIDQpIGVsc2UgJ3JVJywgKiprd2FyZ3MpOgotKyAgICAgICAgICAgICAgICAgbW9k ZT0ncicgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKSBlbHNlICdyVScsICoqa3dhcmdzKToK LSAgICAgICAgICIiIgotICAgICAgICAgOlBhcmFtZXRlcnM6Ci0gICAgICAgICAgICAgLSBgc291 cmNlYDogZWl0aGVyIGEgZmlsZS1saWtlIG9iamVjdCAod2hpY2ggaXMgcmVhZCBkaXJlY3RseSks IG9yCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvbm9kZXMucHkgYi9kb2N1dGlscy9ub2Rlcy5weQot aW5kZXggZTI5Yjg4Ny4uM2Q3MTRhMiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL25vZGVzLnB5Ci0r KysgYi9kb2N1dGlscy9ub2Rlcy5weQotQEAgLTI5LDcgKzI5LDcgQEAgaW1wb3J0IHJlCi0gaW1w b3J0IHdhcm5pbmdzCi0gaW1wb3J0IHVuaWNvZGVkYXRhCi0gCi0taWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29k ZSA9IHN0ciAgIyBub3FhCi0gICAgIGJhc2VzdHJpbmcgPSBzdHIgICMgbm9xYQotIAotQEAgLTY0 LDcgKzY0LDcgQEAgY2xhc3MgTm9kZShvYmplY3QpOgotICAgICAgICAgIiIiCi0gICAgICAgICBy ZXR1cm4gVHJ1ZQotIAotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotKyAgICBp ZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAjIG9uIDIueCwgc3RyKG5vZGUp IHdpbGwgYmUgYSBieXRlIHN0cmluZyB3aXRoIFVuaWNvZGUKLSAgICAgICAgICMgY2hhcmFjdGVy cyA+IDI1NSBlc2NhcGVkOyBvbiAzLnggdGhpcyBpcyBubyBsb25nZXIgbmVjZXNzYXJ5Ci0gICAg ICAgICBkZWYgX19zdHJfXyhzZWxmKToKLUBAIC0zMDQsNyArMzA0LDcgQEAgY2xhc3MgTm9kZShv YmplY3QpOgotICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICAgcmV0dXJu IE5vbmUKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotK2lmIHN5cy52ZXJzaW9u X2luZm8gPCAoMywwKToKLSAgICAgY2xhc3MgcmVwcnVuaWNvZGUodW5pY29kZSk6Ci0gICAgICAg ICAiIiIKLSAgICAgICAgIEEgdW5pY29kZSBzdWItY2xhc3MgdGhhdCByZW1vdmVzIHRoZSBpbml0 aWFsIHUgZnJvbSB1bmljb2RlJ3MgcmVwci4KLUBAIC0zMjAsNyArMzIwLDcgQEAgZGVmIGVuc3Vy ZV9zdHIocyk6Ci0gICAgICIiIgotICAgICBGYWlsc2F2ZSBjb252ZXJzaW9uIG9mIGB1bmljb2Rl YCB0byBgc3RyYC4KLSAgICAgIiIiCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywpIGFu ZCBpc2luc3RhbmNlKHMsIHVuaWNvZGUpOgotKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMs MCkgYW5kIGlzaW5zdGFuY2UocywgdW5pY29kZSk6Ci0gICAgICAgICByZXR1cm4gcy5lbmNvZGUo J2FzY2lpJywgJ2JhY2tzbGFzaHJlcGxhY2UnKQotICAgICByZXR1cm4gcwotIAotQEAgLTM1Miw3 ICszNTIsNyBAQCBjbGFzcyBUZXh0KE5vZGUsIHJlcHJ1bmljb2RlKToKLSAgICAgY2hpbGRyZW4g PSAoKQotICAgICAiIiJUZXh0IG5vZGVzIGhhdmUgbm8gY2hpbGRyZW4sIGFuZCBjYW5ub3QgaGF2 ZSBjaGlsZHJlbi4iIiIKLSAKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCk6Ci0rICAg IGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywwKToKLSAgICAgICAgIGRlZiBfX25ld19fKGNscywg ZGF0YSwgcmF3c291cmNlPU5vbmUpOgotICAgICAgICAgICAgICIiIlByZXZlbnQgdGhlIHJhd3Nv dXJjZSBhcmd1bWVudCBmcm9tIHByb3BhZ2F0aW5nIHRvIHN0ci4iIiIKLSAgICAgICAgICAgICBp ZiBpc2luc3RhbmNlKGRhdGEsIGJ5dGVzKToKLUBAIC01NDQsNyArNTQ0LDcgQEAgY2xhc3MgRWxl bWVudChOb2RlKToKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgcmV0dXJuIHNlbGYuZW1w dHl0YWcoKQotIAotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsKToKLSsgICAgaWYgc3lz LnZlcnNpb25faW5mbyA+ICgzLDApOgotICAgICAgICAgIyAydG8zIGRvZXNuJ3QgY29udmVydCBf X3VuaWNvZGVfXyB0byBfX3N0cl9fCi0gICAgICAgICBfX3N0cl9fID0gX191bmljb2RlX18KLSAK LWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5 IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weQotaW5kZXggN2Jj Y2I1Yi4uMTRmZTFmZiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2 ZXMvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvX19p bml0X18ucHkKLUBAIC0xNiw3ICsxNiw3IEBAIGZyb20gZG9jdXRpbHMgaW1wb3J0IG5vZGVzCi0g ZnJvbSBkb2N1dGlscy51dGlscyBpbXBvcnQgc3BsaXRfZXNjYXBlZF93aGl0ZXNwYWNlLCBlc2Nh cGUybnVsbCwgdW5lc2NhcGUKLSBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0Lmxhbmd1YWdlcyBp bXBvcnQgZW4gYXMgX2ZhbGxiYWNrX2xhbmd1YWdlX21vZHVsZQotIAotLWlmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgIHVu aWNociA9IGNociAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9y c3QvZGlyZWN0aXZlcy9taXNjLnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9t aXNjLnB5Ci1pbmRleCAwZmMzNjEwLi4zYjliOWRlIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvcGFy c2Vycy9yc3QvZGlyZWN0aXZlcy9taXNjLnB5Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9k aXJlY3RpdmVzL21pc2MucHkKLUBAIC00NzMsNyArNDczLDcgQEAgY2xhc3MgRGF0ZShEaXJlY3Rp dmUpOgotICAgICAgICAgICAgICAgICAnSW52YWxpZCBjb250ZXh0OiB0aGUgIiVzIiBkaXJlY3Rp dmUgY2FuIG9ubHkgYmUgdXNlZCB3aXRoaW4gJwotICAgICAgICAgICAgICAgICAnYSBzdWJzdGl0 dXRpb24gZGVmaW5pdGlvbi4nICUgc2VsZi5uYW1lKQotICAgICAgICAgZm9ybWF0X3N0ciA9ICdc bicuam9pbihzZWxmLmNvbnRlbnQpIG9yICclWS0lbS0lZCcKLS0gICAgICAgIGlmIHN5cy52ZXJz aW9uX2luZm88ICgzLCAwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm88ICgzLDApOgot ICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgZm9ybWF0X3N0ciA9IGZvcm1hdF9z dHIuZW5jb2RlKGxvY2FsZV9lbmNvZGluZyBvciAndXRmLTgnKQotICAgICAgICAgICAgIGV4Y2Vw dCBVbmljb2RlRW5jb2RlRXJyb3I6Ci1AQCAtNDk4LDcgKzQ5OCw3IEBAIGNsYXNzIERhdGUoRGly ZWN0aXZlKToKLSAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUuZ210aW1l KGludChzb3VyY2VfZGF0ZV9lcG9jaCkpKQotICAgICAgICAgIyBlbHNlOgotICAgICAgICAgdGV4 dCA9IHRpbWUuc3RyZnRpbWUoZm9ybWF0X3N0cikKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2lu Zm88ICgzLCAwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm88ICgzLDApOgotICAgICAg ICAgICAgICMgYHRleHRgIGlzIGEgYnl0ZSBzdHJpbmcgdGhhdCBtYXkgY29udGFpbiBub24tQVND SUkgY2hhcmFjdGVyczoKLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIHRleHQg PSB0ZXh0LmRlY29kZShsb2NhbGVfZW5jb2Rpbmcgb3IgJ3V0Zi04JykKLWRpZmYgLS1naXQgYS9k b2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weSBiL2RvY3V0aWxzL3BhcnNl cnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5Ci1pbmRleCBiZjk3ZTI2Li4zNmE1MmU3IDEwMDY0 NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLSsrKyBi L2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5Ci1AQCAtMjYzLDcgKzI2 Myw3IEBAIGNsYXNzIENTVlRhYmxlKFRhYmxlKToKLSAgICAgICAgICAgICByZXR1cm4gW2RldGFp bC5hcmdzWzBdXQotICAgICAgICAgZXhjZXB0IGNzdi5FcnJvciBhcyBkZXRhaWw6Ci0gICAgICAg ICAgICAgbWVzc2FnZSA9IHN0cihkZXRhaWwpCi0tICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLCkgYW5kICcxLWNoYXJhY3RlciBzdHJpbmcnIGluIG1lc3NhZ2U6Ci0rICAgICAg ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApIGFuZCAnMS1jaGFyYWN0ZXIgc3RyaW5n JyBpbiBtZXNzYWdlOgotICAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICdcbndpdGggUHl0aG9u IDIueCB0aGlzIG11c3QgYmUgYW4gQVNDSUkgY2hhcmFjdGVyLicKLSAgICAgICAgICAgICBlcnJv ciA9IHNlbGYuc3RhdGVfbWFjaGluZS5yZXBvcnRlci5lcnJvcigKLSAgICAgICAgICAgICAgICAg J0Vycm9yIHdpdGggQ1NWIGRhdGEgaW4gIiVzIiBkaXJlY3RpdmU6XG4lcycKLUBAIC0zNTYsNyAr MzU2LDcgQEAgY2xhc3MgQ1NWVGFibGUoVGFibGUpOgotICAgICAgICAgICAgIHJhaXNlIFN5c3Rl bU1lc3NhZ2VQcm9wYWdhdGlvbihlcnJvcikKLSAgICAgICAgIHJldHVybiBjc3ZfZGF0YSwgc291 cmNlCi0gCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywpOgotKyAgICBpZiBzeXMudmVy c2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAjIDIueCBjc3YgbW9kdWxlIGRvZXNuJ3QgZG8g VW5pY29kZQotICAgICAgICAgZGVmIGRlY29kZV9mcm9tX2NzdihzKToKLSAgICAgICAgICAgICBy ZXR1cm4gcy5kZWNvZGUoJ3V0Zi04JykKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9zdGF0ZW1hY2hp bmUucHkgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLWluZGV4IDZiYzAzZjUuLjE2MjUyYmIg MTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLSsrKyBiL2RvY3V0aWxzL3N0 YXRlbWFjaGluZS5weQotQEAgLTExMyw3ICsxMTMsNyBAQCBpbXBvcnQgdW5pY29kZWRhdGEKLSBm cm9tIGRvY3V0aWxzIGltcG9ydCB1dGlscwotIGZyb20gZG9jdXRpbHMudXRpbHMuZXJyb3JfcmVw b3J0aW5nIGltcG9ydCBFcnJvck91dHB1dAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs IDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIg ICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0 ZXIucHkgYi9kb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci1pbmRleCAyM2I5Yzk1 Li4zNDVlMjkwIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5w eQotKysrIGIvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weQotQEAgLTI4LDcgKzI4 LDcgQEAgZnJvbSBkb2N1dGlscyBpbXBvcnQgbm9kZXMsIHV0aWxzCi0gZnJvbSBkb2N1dGlscy50 cmFuc2Zvcm1zIGltcG9ydCBUcmFuc2Zvcm1FcnJvciwgVHJhbnNmb3JtCi0gCi0gCi0taWYgc3lz LnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToK LSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMv dHJhbnNmb3Jtcy91bml2ZXJzYWwucHkgYi9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5w eQotaW5kZXggNDlmYjJjOC4uNzcwZWM3MSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3RyYW5zZm9y bXMvdW5pdmVyc2FsLnB5Ci0rKysgYi9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5weQot QEAgLTI0LDcgKzI0LDcgQEAgZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCBUcmFuc2Zv cm1FcnJvciwgVHJhbnNmb3JtCi0gZnJvbSBkb2N1dGlscy51dGlscyBpbXBvcnQgc21hcnRxdW90 ZXMKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLStpZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLDApOgotICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLWRpZmYg LS1naXQgYS9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weSBiL2RvY3V0aWxzL3V0aWxzL19faW5p dF9fLnB5Ci1pbmRleCA3N2M3MGY4Li5kZTM5MjQ3IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRp bHMvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5Ci1AQCAtMjIs NyArMjIsNyBAQCBmcm9tIGRvY3V0aWxzLm5vZGVzIGltcG9ydCB1bmVzY2FwZQotIGltcG9ydCBk b2N1dGlscy5pbwotIGZyb20gZG9jdXRpbHMudXRpbHMuZXJyb3JfcmVwb3J0aW5nIGltcG9ydCBF cnJvck91dHB1dCwgU2FmZVN0cmluZwotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDAp OgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIKLSAK LSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkgYi9kb2N1 dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLWluZGV4IDhmY2M4MTYuLjIxYmM1NWIgMTAw NjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLSsrKyBiL2RvY3V0 aWxzL3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weQotQEAgLTY1LDcgKzY1LDcgQEAgZWxzZToKLSAg ICAgICAgIGxvY2FsZV9lbmNvZGluZyA9IE5vbmUKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAgICB1bmljb2Rl ID0gc3RyICAjIG5vcWEKLSAKLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL19odG1s X2Jhc2UucHkgYi9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkKLWluZGV4IGE5NTczMTEu LjYzZDVhNWIgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkKLSsr KyBiL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotQEAgLTQwLDcgKzQwLDcgQEAgZnJv bSBkb2N1dGlscy51dGlscy5tYXRoIGltcG9ydCAodW5pY2hhcjJ0ZXgsIHBpY2tfbWF0aF9lbnZp cm9ubWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRoMmh0bWwsIGxh dGV4Mm1hdGhtbCwgdGV4Mm1hdGhtbF9leHRlcm4pCi0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29k ZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9kb2N1 dGlsc194bWwucHkgYi9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weQotaW5kZXggMzRl ODEwZC4uMTIzMDZiNiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1s LnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weQotQEAgLTMwLDcgKzMw LDcgQEAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KLSBpbXBvcnQgZG9jdXRpbHMKLSBm cm9tIGRvY3V0aWxzIGltcG9ydCBmcm9udGVuZCwgd3JpdGVycywgbm9kZXMKLSAKLS1pZiBzeXMu dmVyc2lvbl9pbmZvID49ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgot ICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLUBAIC0xODUsNyArMTg1LDcgQEAgY2xh c3MgWE1MVHJhbnNsYXRvcihub2Rlcy5HZW5lcmljTm9kZVZpc2l0b3IpOgotICAgICAgICAgc2Vs Zi5vdXRwdXQuYXBwZW5kKHhtbF9zdHJpbmcpCi0gICAgICAgICBzZWxmLmRlZmF1bHRfZGVwYXJ0 dXJlKG5vZGUpICAjIG9yIG5vdD8KLSAgICAgICAgICMgQ2hlY2sgdmFsaWRpdHkgb2YgcmF3IFhN TDoKLS0gICAgICAgIGlmIGlzaW5zdGFuY2UoeG1sX3N0cmluZywgdW5pY29kZSkgYW5kIHN5cy52 ZXJzaW9uX2luZm8gPCAoMywpOgotKyAgICAgICAgaWYgaXNpbnN0YW5jZSh4bWxfc3RyaW5nLCB1 bmljb2RlKSBhbmQgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgotICAgICAgICAgICAgIHhtbF9z dHJpbmcgPSB4bWxfc3RyaW5nLmVuY29kZSgndXRmOCcpCi0gICAgICAgICB0cnk6Ci0gICAgICAg ICAgICAgc2VsZi54bWxwYXJzZXIucGFyc2UoU3RyaW5nSU8oeG1sX3N0cmluZykpCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3Jp dGVycy9sYXRleDJlL19faW5pdF9fLnB5Ci1pbmRleCAyNDllYzRhLi4yYzc2YjBmIDEwMDY0NAot LS0tIGEvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGls cy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkKLUBAIC0yOCw3ICsyOCw3IEBAIGZyb20gZG9j dXRpbHMudHJhbnNmb3JtcyBpbXBvcnQgd3JpdGVyX2F1eAotIGZyb20gZG9jdXRpbHMudXRpbHMu bWF0aCBpbXBvcnQgcGlja19tYXRoX2Vudmlyb25tZW50LCB1bmljaGFyMnRleAotIAotIAotLWlm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs MCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBhL2RvY3V0 aWxzL3dyaXRlcnMvbWFucGFnZS5weSBiL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotaW5k ZXggY2JiODY0OC4uNTJjZDQ5YyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFn ZS5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5Ci1AQCAtNDcsNyArNDcsNyBA QCBfX2RvY2Zvcm1hdF9fID0gJ3JlU3RydWN0dXJlZFRleHQnCi0gaW1wb3J0IHJlCi0gaW1wb3J0 IHN5cwotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLDApOgotICAgICByYW5nZSA9IHhyYW5nZQotIAotIGltcG9ydCBkb2N1dGlscwot ZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weSBiL2RvY3V0 aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weQotaW5kZXggNDE3ZGMzNC4uNzVmODQ2YyAx MDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weQotKysrIGIv ZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci1AQCAtOTQ3LDcgKzk0Nyw3IEBA IGNsYXNzIE9ERlRyYW5zbGF0b3Iobm9kZXMuR2VuZXJpY05vZGVWaXNpdG9yKToKLSAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZG9jdW1lbnQucmVwb3J0ZXIud2FybmluZygKLSAgICAgICAgICAg ICAgICAgICAgICAgICAnU3R5bGUgIiVzIiBpcyBub3QgYSBzdHlsZSB1c2VkIGJ5IG9kdHdyaXRl ci4nICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3RzdHlsZSwgKSkKLS0gICAg ICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mby5tYWpvciA+PSAzOgotKyAgICAgICAgICAg ICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAgICAgICAgICAgICAgICAgICAg c2VsZi5mb3JtYXRfbWFwW3JzdHN0eWxlXSA9IGZvcm1hdAotICAgICAgICAgICAgICAgICBlbHNl OgotICAgICAgICAgICAgICAgICAgICAgc2VsZi5mb3JtYXRfbWFwW3JzdHN0eWxlXSA9IGZvcm1h dC5kZWNvZGUoJ3V0Zi04JykKLWRpZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5Ci1pbmRl eCA0MjgwYjk4Li4xMmMzOThiIDEwMDc1NQotLS0tIGEvc2V0dXAucHkKLSsrKyBiL3NldHVwLnB5 Ci1AQCAtMTMsNyArMTMsNyBAQCB0cnk6Ci0gICAgIGZyb20gZGlzdHV0aWxzLmNvcmUgaW1wb3J0 IHNldHVwLCBDb21tYW5kCi0gICAgIGZyb20gZGlzdHV0aWxzLmNvbW1hbmQuYnVpbGQgaW1wb3J0 IGJ1aWxkCi0gICAgIGZyb20gZGlzdHV0aWxzLmNvbW1hbmQuYnVpbGRfcHkgaW1wb3J0IGJ1aWxk X3B5Ci0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKToKLSsgICAgaWYgc3lzLnZlcnNp b25faW5mbyA+PSAoMywwKToKLSAgICAgICAgIGZyb20gZGlzdHV0aWxzLmNvbW1hbmQuYnVpbGRf cHkgaW1wb3J0IGJ1aWxkX3B5XzJ0bzMKLSAgICAgICAgIGZyb20gZGlzdHV0aWxzLnV0aWwgaW1w b3J0IGNvcHlkaXJfcnVuXzJ0bzMKLSAgICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5pbnN0YWxs X2RhdGEgaW1wb3J0IGluc3RhbGxfZGF0YQotQEAgLTI3LDcgKzI3LDcgQEAgZXhjZXB0IEltcG9y dEVycm9yOgotICAgICBzeXMuZXhpdCgxKQotIAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAgICAjIGNvcHktY29udmVy dCBhdXhpbGlhcnkgcHl0aG9uIHNvdXJjZXMKLSAgICAgY2xhc3MgY29weV9idWlsZF9weV8ydG8z KGJ1aWxkX3B5XzJ0bzMpOgotICAgICAgICAgIiIiQ29weS9jb252ZXJ0IFB5dGhvbiBzb3VyY2Ug ZmlsZXMgaW4gZ2l2ZW4gZGlyZWN0b3JpZXMgcmVjdXJzaXZlbHkuCi1AQCAtOTcsNyArOTcsNyBA QCBkZWYgZG9fc2V0dXAoKToKLSAgICAga3dhcmdzWydjbWRjbGFzcyddID0geydidWlsZF9kYXRh JzogYnVpbGRfZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxsX2RhdGEn OiBzbWFydF9pbnN0YWxsX2RhdGF9Ci0gICAgICMgQXV0by1jb252ZXJ0IHNvdXJjZSBjb2RlIGZv ciBQeXRob24gMwotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCk6Ci0rICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgICAgICBrd2FyZ3NbJ2NtZGNsYXNzJ11bJ2J1 aWxkX3B5J10gPSBjb3B5X2J1aWxkX3B5XzJ0bzMKLSAgICAgZWxzZToKLSAgICAgICAgIGt3YXJn c1snY21kY2xhc3MnXVsnYnVpbGRfcHknXSA9IGJ1aWxkX3B5Ci1kaWZmIC0tZ2l0IGEvdGVzdC9E b2N1dGlsc1Rlc3RTdXBwb3J0LnB5IGIvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci1pbmRl eCAyMWVhOTgyLi4zOTBkZjViIDEwMDY0NAotLS0tIGEvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0 LnB5Ci0rKysgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLUBAIC04OSw3ICs4OSw3IEBA IGV4Y2VwdDoKLSAgICAgaW1wb3J0IHBkYgotIAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgIHVuaWNvZGUgPSBz dHIgICMgbm9xYQotIAotIAotQEAgLTIwMiw3ICsyMDIsNyBAQCBjbGFzcyBDdXN0b21UZXN0Q2Fz ZShTdGFuZGFyZFRlc3RDYXNlKToKLSAgICAgICAgICIiImBpbnB1dGAsIGBvdXRwdXRgLCBhbmQg YGV4cGVjdGVkYCBzaG91bGQgYWxsIGJlIHN0cmluZ3MuIiIiCi0gICAgICAgICBpZiBpc2luc3Rh bmNlKGlucHV0LCB1bmljb2RlKToKLSAgICAgICAgICAgICBpbnB1dCA9IGlucHV0LmVuY29kZSgn cmF3X3VuaWNvZGVfZXNjYXBlJykKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywp OgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLDApOgotICAgICAgICAgICAgICMg QVBJIGRpZmZlcmVuY2U6IFB5dGhvbiAzJ3Mgbm9kZS5fX3N0cl9fIGRvZXNuJ3QgZXNjYXBlCi0g ICAgICAgICAgICAgI2Fzc2VydCBleHBlY3RlZCBpcyBOb25lIG9yIGlzaW5zdGFuY2UoZXhwZWN0 ZWQsIHVuaWNvZGUpCi0gICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgYnl0ZXMp OgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9faW5pdF9fLnB5IGIvdGVzdC90ZXN0X19pbml0X18u cHkKLWluZGV4IDhmMWQ3NDkuLjg3ZWMxNGYgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfX2luaXRf Xy5weQotKysrIGIvdGVzdC90ZXN0X19pbml0X18ucHkKLUBAIC0xNiw3ICsxNiw3IEBAIGltcG9y dCBkb2N1dGlscwotIGltcG9ydCBkb2N1dGlscy51dGlscwotIAotIAotLWlmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgIHVu aWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9lcnJvcl9y ZXBvcnRpbmcucHkgYi90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5Ci1pbmRleCA4OTMwODJj Li40YjMzN2UzIDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weQotKysr IGIvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weQotQEAgLTQ2LDcgKzQ2LDcgQEAgaWYgc3lz LnZlcnNpb25faW5mbyA8ICgzLDApOiAjIHByb2JsZW1zIHNvbHZlZCBpbiBweTNrCi0gICAgICAg ICBwcmludCgnY2Fubm90IHRlc3QgZXJyb3IgcmVwb3J0aW5nIHdpdGggcHJvYmxlbWF0aWMgbG9j YWxlcyxcbicKLSAgICAgICAgICAgICAnYGltcG9ydCBsb2NhbGVgIGZhaWxlZC4nKQotIAotLWlm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs MCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBhL3Rlc3Qv dGVzdF9sYW5ndWFnZS5weSBiL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotaW5kZXggMzFhYzYxMy4u NDU1MzU3YSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotKysrIGIvdGVzdC90 ZXN0X2xhbmd1YWdlLnB5Ci1AQCAtMjYsNyArMjYsNyBAQCBfcmVwb3J0ZXIgPSBkb2N1dGlscy51 dGlscy5uZXdfcmVwb3J0ZXIoJycsIF9zZXR0aW5ncykKLSAKLSByZWZlcmVuY2VfbGFuZ3VhZ2Ug PSAnZW4nCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNp b25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZm IC0tZ2l0IGEvdGVzdC90ZXN0X25vZGVzLnB5IGIvdGVzdC90ZXN0X25vZGVzLnB5Ci1pbmRleCBh ZjA0ZTg2Li42ODA1Nzk5IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X25vZGVzLnB5Ci0rKysgYi90 ZXN0L3Rlc3Rfbm9kZXMucHkKLUBAIC0xNyw3ICsxNyw3IEBAIGZyb20gRG9jdXRpbHNUZXN0U3Vw cG9ydCBpbXBvcnQgbm9kZXMsIHV0aWxzCi0gCi0gZGVidWcgPSBGYWxzZQotIAotLWlmIHN5cy52 ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0g ICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3Mg VGV4dFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo c2VsZi50ZXh0LnNob3J0cmVwcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgciI8I3Rl eHQ6ICdMaW5lIDEuXG5MaW5lIDIuJz4iKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChub2Rl cy5yZXBydW5pY29kZSgnZm9vJyksIHUnZm9vJykKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2lu Zm8gPCAoMywpOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgotICAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihzZWxmLnVuaWNvZGVfdGV4dCksIHIiPCN0ZXh0 OiAnTVx4ZjZocmVuJz4iKQotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKHJlcHIoc2VsZi51bmljb2RlX3RleHQpLCB1IjwjdGV4dDogJ03DtmhyZW4nPiIpCi1A QCAtNjUsNyArNjUsNyBAQCBjbGFzcyBUZXh0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJpcHBlZDIsIHUncyBub2MnKQotIAotICAgICBkZWYg dGVzdF9hc2NpaXJlc3RyaWN0aW9uKHNlbGYpOgotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5m byA8ICgzLCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAg ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZURlY29kZUVycm9yLCBub2Rlcy5UZXh0LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGInaG9sJXMnICUgY2hyKDIyNCkpCi0gICAg ICAgICBlbHNlOgotQEAgLTk4LDcgKzk4LDcgQEAgY2xhc3MgRWxlbWVudFRlc3RzKHVuaXR0ZXN0 LlRlc3RDYXNlKToKLSAgICAgICAgIGRlbCBlbGVtZW50WydhdHRyJ10KLSAgICAgICAgIGVsZW1l bnRbJ21hcmsnXSA9IHUnXHUyMDIyJwotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGVs ZW1lbnQpLCAnPEVsZW1lbnQ6ID4nKQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgz LCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAgICAg c2VsZi5hc3NlcnRFcXVhbChzdHIoZWxlbWVudCksICc8RWxlbWVudCBtYXJrPSJcXHUyMDIyIi8+ JykKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZWxl bWVudCksIHUnPEVsZW1lbnQgbWFyaz0iXHUyMDIyIi8+JykKLUBAIC0xMDYsNyArMTA2LDcgQEAg Y2xhc3MgRWxlbWVudFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwoZG9tLnRveG1sKCksIHUnPEVsZW1lbnQgbWFyaz0iXHUyMDIyIi8+JykKLSAgICAg ICAgIGRvbS51bmxpbmsoKQotICAgICAgICAgZWxlbWVudFsnbmFtZXMnXSA9IFsnbm9ib2R5Jywg dSfQuNC80Y8nLCB1J27DpHMnXQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6 Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChyZXByKGVsZW1lbnQpLAotICAgICAgICAgICAgICAgICAnPEVsZW1lbnQg Im5vYm9keTsgXFx1MDQzOFxcdTA0M2NcXHUwNDRmOyBuXFx4ZTRzIjogPicpCi0gICAgICAgICBl bHNlOgotQEAgLTExNyw3ICsxMTcsNyBAQCBjbGFzcyBFbGVtZW50VGVzdHModW5pdHRlc3QuVGVz dENhc2UpOgotICAgICAgICAgZWxlbWVudCA9IG5vZGVzLkVsZW1lbnQoJ3RleHRcbm1vcmUnLCBu b2Rlcy5UZXh0KCd0ZXh0XG5tb3JlJykpCi0gICAgICAgICB1ZWxlbWVudCA9IG5vZGVzLkVsZW1l bnQodSdncsO8bicsIG5vZGVzLlRleHQodSdncsO8bicpKQotICAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChyZXByKGVsZW1lbnQpLCByIjxFbGVtZW50OiA8I3RleHQ6ICd0ZXh0XG5tb3JlJz4+IikK LS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywpOgotKyAgICAgICAgaWYgc3lzLnZl cnNpb25faW5mbyA8ICgzLDApOgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcih1 ZWxlbWVudCksICI8RWxlbWVudDogPCN0ZXh0OiAnZ3JcXHhmY24nPj4iKQotICAgICAgICAgZWxz ZToKLSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIodWVsZW1lbnQpLCB1IjxFbGVt ZW50OiA8I3RleHQ6ICdncsO8bic+PiIpCi1AQCAtMzQxLDcgKzM0MSw3IEBAIGNsYXNzIE1pc2NU ZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0 YW5jZShub2Rlcy5yZXBydW5pY29kZSgnZm9vJyksIHVuaWNvZGUpKQotICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChub2Rlcy5yZXBydW5pY29kZSgnZm9vJyksIHUnZm9vJykKLSAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwobm9kZXMucmVwcnVuaWNvZGUodSdNw7ZocmUnKSwgdSdNw7ZocmUnKQot LSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6ICMgc3RyaXAgbGVhZGluZyAidSIg ZnJvbSByZXByZXNlbnRhdGlvbgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDAp OiAjIHN0cmlwIGxlYWRpbmcgInUiIGZyb20gcmVwcmVzZW50YXRpb24KLSAgICAgICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKHJlcHIobm9kZXMucmVwcnVuaWNvZGUodSdNw7ZocmUnKSksCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKHUnTcO2aHJlJylbMTpdKQotICAgICAgICAg ZWxzZTogIyBubyBjaGFuZ2UgdG8gYHVuaWNvZGVgIHVuZGVyIFB5dGhvbiAzawotQEAgLTM1MCw3 ICszNTAsNyBAQCBjbGFzcyBNaXNjVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgICBkZWYg dGVzdF9lbnN1cmVfc3RyKHNlbGYpOgotICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFu Y2Uobm9kZXMuZW5zdXJlX3N0cih1J8O8YmVyJyksIHN0cikpCi0gICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKG5vZGVzLmVuc3VyZV9zdHIoJ292ZXInKSwgJ292ZXInKQotLSAgICAgICAgaWYgc3lz LnZlcnNpb25faW5mbyA8ICgzLCk6ICMgc3RyaXAgbGVhZGluZyAidSIgZnJvbSByZXByZXNlbnRh dGlvbgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOiAjIHN0cmlwIGxlYWRp bmcgInUiIGZyb20gcmVwcmVzZW50YXRpb24KLSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs KG5vZGVzLmVuc3VyZV9zdHIodSfDvGJlcicpLCByJ1x4ZmNiZXInKQotICAgICAgICAgZWxzZToK LSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5vZGVzLmVuc3VyZV9zdHIodSfDvGJlcicp LCByJ8O8YmVyJykKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3BhcnNlci5w eSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcGFyc2VyLnB5Ci1pbmRleCA2ZmFlY2M3Li42YzU3 OTYzIDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9wYXJzZXIucHkKLSsrKyBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcGFyc2VyLnB5Ci1AQCAtMjMsNyArMjMsNyBAQCBjbGFz cyBSc3RQYXJzZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBkb2N1bWVudCA9 IHV0aWxzLm5ld19kb2N1bWVudCgndGVzdCBkYXRhJywgZnJvbnRlbmQuT3B0aW9uUGFyc2VyKAot ICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cz0ocGFyc2VyLCApKS5nZXRfZGVmYXVsdF92 YWx1ZXMoKSkKLSAKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywpOgotKyAgICAg ICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgotICAgICAgICAgICAgICMgc3VwcGx5aW5n IHN0cmluZyBpbnB1dCBpcyBzdXBwb3J0ZWQsIGJ1dCBvbmx5IGlmIGFzY2lpLWRlY29kYWJsZQot ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaWNvZGVEZWNvZGVFcnJvciwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIucGFyc2UsIGInaG9sJXMnICUgY2hyKDIy NCksIGRvY3VtZW50KQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5Ci1pbmRleCBkODQ4MjYyLi45MmQwMTkz IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVz L3Rlc3RfaW5jbHVkZS5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5weQotQEAgLTE2LDcgKzE2LDcgQEAgZnJvbSBkb2N1dGls cy5wYXJzZXJzLnJzdCBpbXBvcnQgc3RhdGVzCi0gZnJvbSBkb2N1dGlscy51dGlscy5jb2RlX2Fu YWx5emVyIGltcG9ydCB3aXRoX3B5Z21lbnRzCi0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+ PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY2hyID0g Y2hyICAjIG5vcWEKLSAKLSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkKLWluZGV4IGVlOTMwYzguLjlkNDE3 ZTggMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2 ZXMvdGVzdF90YWJsZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rf ZGlyZWN0aXZlcy90ZXN0X3RhYmxlcy5weQotQEAgLTE4LDcgKzE4LDcgQEAgZnJvbSBkb2N1dGls cy5wYXJzZXJzLnJzdC5kaXJlY3RpdmVzIGltcG9ydCB0YWJsZXMKLSBmcm9tIC4gaW1wb3J0IERv Y3V0aWxzVGVzdFN1cHBvcnQKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToK LStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAgICB1bmljb2RlID0gc3RyICAjIG5v cWEKLSAgICAgdW5pY2hyID0gY2hyICAjIG5vcWEKLSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5IGIvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5pY29kZS5weQotaW5k ZXggYjk5YjVkMC4uNTc2YmMxZCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNvZGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNvZGUucHkKLUBAIC0xNCw3ICsx NCw3IEBAIGltcG9ydCBzeXMKLSBmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAK LSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLDApOgotICAgICB1bmljaHIgPSBjaHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBh L3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFwLnB5IGIvdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkK LWluZGV4IDc0ZThiYzcuLjgwODg2MWQgMTAwNzU1Ci0tLS0gYS90b29scy9kZXYvY3JlYXRlX3Vu aW1hcC5weQotKysrIGIvdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkKLUBAIC0xNCw3ICsxNCw3 IEBAIGZyb20geG1sLmRvbSBpbXBvcnQgbWluaWRvbQotIGltcG9ydCBzeXMKLSBpbXBvcnQgcHBy aW50Ci0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25f aW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgI25vcWEKLSBlbHNlOgotICAgICBi eXRlcyA9IHN0ciAgIyBub3FhCi1AQCAtMjIsNyArMjIsNyBAQCBlbHNlOgotIAotIAotIGRlZiB3 KHMpOgotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKSBhbmQgaXNpbnN0YW5jZShz LCB1bmljb2RlKToKLSsgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKSBhbmQgaXNpbnN0 YW5jZShzLCB1bmljb2RlKToKLSAgICAgICAgIHMgPSBzLmVuY29kZSgndXRmOCcpCi0gICAgIHN5 cy5zdGRvdXQud3JpdGUocykKLSAKLWRpZmYgLS1naXQgYS90b29scy9kZXYvZ2VuZXJhdGVfcHVu Y3R1YXRpb25fY2hhcnMucHkgYi90b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMu cHkKLWluZGV4IGI3MThmNzguLmZiYjcyYzAgMTAwNjQ0Ci0tLS0gYS90b29scy9kZXYvZ2VuZXJh dGVfcHVuY3R1YXRpb25fY2hhcnMucHkKLSsrKyBiL3Rvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVh dGlvbl9jaGFycy5weQotQEAgLTM4LDcgKzM4LDcgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw cmludF9mdW5jdGlvbgotIGltcG9ydCBzeXMKLSBpbXBvcnQgdW5pY29kZWRhdGEKLSAKLS1pZiBz eXMudmVyc2lvbl9pbmZvID49ICgzLCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToK LSAgICAgdW5pY2hyID0gY2hyICAjIHVuaWNociBub3QgYXZhaWxhYmxlIGluIFB5M2sKLSBlbHNl OgotICAgICBpbXBvcnQgY29kZWNzCi1AQCAtMzYxLDcgKzM2MSw3IEBAIGlmIF9fbmFtZV9fID09 ICdfX21haW5fXyc6Ci0gIyBJbXBvcnQgdGhlIHB1bmN0dWF0aW9uX2NoYXJzIG1vZHVsZSBmcm9t IHRoZSBzb3VyY2UKLSAjIG9yIFB5M2sgYnVpbGQgcGF0aCBmb3IgbG9jYWwgUHl0aG9uIG1vZHVs ZXM6OgotIAotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Ci0rICAgICAgICBp ZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAgICAgc3lzLnBhdGguaW5zZXJ0 KDAsICcuLi8uLi9kb2N1dGlscycpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHN5cy5w YXRoLmluc2VydCgwLCAnLi4vLi4vYnVpbGQvbGliJykKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2 OGQ0MQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTQt cHkzLVJlcGxhY2UtZm9vLm5leHQtd2l0aC1uZXh0LWZvby5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9u LWRvY3V0aWxzL3BhdGNoZXMvMDAxNC1weTMtUmVwbGFjZS1mb28ubmV4dC13aXRoLW5leHQtZm9v LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NGRmZjJhMTU5YS4uMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE0LXB5My1SZXBs YWNlLWZvby5uZXh0LXdpdGgtbmV4dC1mb28ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NCAr MCwwIEBACi1Gcm9tIGNmZWY3NGY1Njc0OThmMWUwOTc3NjFiYzNjYWU3YzBiZGUyNDUxY2MgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRo YXQuZ3VydT4KLURhdGU6IE1vbiwgMjYgQXVnIDIwMTkgMTY6NDY6NTAgKzAwMDAKLVN1YmplY3Q6 IFtQQVRDSCAxNC8yNl0gcHkzOiBSZXBsYWNlICdmb28ubmV4dCgpJyB3aXRoICduZXh0KGZvbykn Ci0KLVRoZSBmb3JtZXIgb25seSB3b3JrcyBpbiBQeXRob24gMiwgd2hpbGUgdGhlIGxhdHRlciB3 b3JrcyBpbiBQeXRob24gMi43Ci1hbmQgMy54LgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEZp bnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2Rl LnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM2MSA5Mjk1NDNmNi1lNGYyLTAzMTAtOThh Ni1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdk YW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvdXRpbHMvY29kZV9hbmFseXplci5weSAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQotIGRvY3V0aWxzL3V0aWxzL21hdGgvbWF0 aDJodG1sLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KLSBkb2N1dGlscy93cml0 ZXJzL21hbnBhZ2UucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCi0gdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVzLnB5IHwg MiArLQotIDQgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvY29kZV9hbmFseXplci5weSBiL2RvY3V0aWxz L3V0aWxzL2NvZGVfYW5hbHl6ZXIucHkKLWluZGV4IDZkYzJlMTUuLjg3YTQ1ODQgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy91dGlscy9jb2RlX2FuYWx5emVyLnB5Ci0rKysgYi9kb2N1dGlscy91dGls cy9jb2RlX2FuYWx5emVyLnB5Ci1AQCAtODMsNyArODMsNyBAQCBjbGFzcyBMZXhlcihvYmplY3Qp OgotICAgICAgICAgICAgQWxzbyBzdHJpcCB0aGUgZmluYWwgbmV3bGluZSAoYWRkZWQgYnkgcHln bWVudHMpLgotICAgICAgICAgIiIiCi0gICAgICAgICB0b2tlbnMgPSBpdGVyKHRva2VucykKLS0g ICAgICAgIChsYXN0dHlwZSwgbGFzdHZhbCkgPSB0b2tlbnMubmV4dCgpCi0rICAgICAgICAobGFz dHR5cGUsIGxhc3R2YWwpID0gbmV4dCh0b2tlbnMpCi0gICAgICAgICBmb3IgdHR5cGUsIHZhbHVl IGluIHRva2VuczoKLSAgICAgICAgICAgICBpZiB0dHlwZSBpcyBsYXN0dHlwZToKLSAgICAgICAg ICAgICAgICAgbGFzdHZhbCArPSB2YWx1ZQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL21h dGgvbWF0aDJodG1sLnB5IGIvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLWluZGV4 IGFkY2IxY2MuLmRkYWNhNDggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9tYXRoL21hdGgy aHRtbC5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLUBAIC0yMjA4 LDcgKzIyMDgsNyBAQCBjbGFzcyBDb250YWluZXIob2JqZWN0KToKLSAgICAgICBpZiBvcmQocG9z LmN1cnJlbnQoKSkgPiAxMjg6Ci0gICAgICAgICBjb2RlcG9pbnQgPSBoZXgob3JkKHBvcy5jdXJy ZW50KCkpKQotICAgICAgICAgaWYgY29kZXBvaW50ID09ICcweGQ4MzUnOgotLSAgICAgICAgICBj b2RlcG9pbnQgPSBoZXgob3JkKHBvcy5uZXh0KCkpICsgMHhmODAwKQotKyAgICAgICAgICBjb2Rl cG9pbnQgPSBoZXgob3JkKG5leHQocG9zKSkgKyAweGY4MDApCi0gICAgICAgICByZXN1bHQgKz0g JyYjJyArIGNvZGVwb2ludFsxOl0gKyAnOycKLSAgICAgICBlbHNlOgotICAgICAgICAgcmVzdWx0 ICs9IHBvcy5jdXJyZW50KCkKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2Uu cHkgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLWluZGV4IDUyY2Q0OWMuLmIzOWNmMjUg MTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLSsrKyBiL2RvY3V0aWxz L3dyaXRlcnMvbWFucGFnZS5weQotQEAgLTgxMiw3ICs4MTIsNyBAQCBjbGFzcyBUcmFuc2xhdG9y KG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgZGVmIHZpc2l0X2xpc3RfaXRlbShzZWxmLCBub2Rl KToKLSAgICAgICAgICMgbWFuIDcgbWFuIGFyZ3VlcyB0byB1c2UgIi5JUCIgaW5zdGVhZCBvZiAi LlRQIgotICAgICAgICAgc2VsZi5ib2R5LmFwcGVuZCgnLklQICVzICVkXG4nICUgKAotLSAgICAg ICAgICAgICAgICBzZWxmLl9saXN0X2NoYXJbLTFdLm5leHQoKSwKLSsgICAgICAgICAgICAgICAg bmV4dChzZWxmLl9saXN0X2NoYXJbLTFdKSwKLSAgICAgICAgICAgICAgICAgc2VsZi5fbGlzdF9j aGFyWy0xXS5nZXRfd2lkdGgoKSwpKQotIAotICAgICBkZWYgZGVwYXJ0X2xpc3RfaXRlbShzZWxm LCBub2RlKToKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF90YWJsZXMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkKLWluZGV4IDlkNDE3ZTguLmNjNDUwZjMgMTAwNzU1 Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90 YWJsZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3RhYmxlcy5weQotQEAgLTU5LDcgKzU5LDcgQEAgZGVmIG51bGxfYnl0ZXMoKToKLSAg ICAgY3N2X2RhdGEgPSB1bmljb2RlKGNzdl9kYXRhLCAnbGF0aW4xJykuc3BsaXRsaW5lcygpCi0g ICAgIHJlYWRlciA9IGNzdi5yZWFkZXIoW3RhYmxlcy5DU1ZUYWJsZS5lbmNvZGVfZm9yX2Nzdihs aW5lICsgJ1xuJykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gY3N2X2Rh dGFdKQotLSAgICByZWFkZXIubmV4dCgpCi0rICAgIG5leHQocmVhZGVyKQotIAotIG51bGxfYnl0 ZXNfZXhjZXB0aW9uID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5leGNlcHRpb25fZGF0YShudWxsX2J5 dGVzKVswXQotIAotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxNS1weTMtUmVwbGFjZS1mb28uaGFzX2tl eS1iYXItd2l0aC1iYXItaW4tZm9vLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0 Y2hlcy8wMDE1LXB5My1SZXBsYWNlLWZvby5oYXNfa2V5LWJhci13aXRoLWJhci1pbi1mb28ucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1M2IxMDllZTc3Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTUtcHkzLVJlcGxhY2Ut Zm9vLmhhc19rZXktYmFyLXdpdGgtYmFyLWluLWZvby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDM4ICswLDAgQEAKLUZyb20gMDA2MzY2ZjdiYWFmODRiYWYwMTU4Y2NkOTAzNmM5YTUzZDI3Yzk2 NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBo ZW5AdGhhdC5ndXJ1PgotRGF0ZTogTW9uLCAyNiBBdWcgMjAxOSAyMzoxMjo1NiArMDAwMAotU3Vi amVjdDogW1BBVENIIDE1LzI2XSBweTM6IFJlcGxhY2UgJ2Zvby5oYXNfa2V5KGJhciknIHdpdGgg J2JhciBpbiBmb28nCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5A dGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRp bHMvY29kZS90cnVua0A4MzYyIDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAot U2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+ Ci0tLS0KLSBkb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkgfCA0ICsrLS0KLSAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9j dXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5Ci1p bmRleCBiMzljZjI1Li44YmIwMjVjIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9tYW5w YWdlLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLUBAIC0zMTIsNyArMzEy LDcgQEAgY2xhc3MgVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6Ci0gCi0gICAgICAgICAg ICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0eWxlKToKLSAgICAgICAgICAgICAgICAgc2VsZi5fc3R5 bGUgPSBzdHlsZQotLSAgICAgICAgICAgICAgICBpZiBub2RlLmhhc19rZXkoJ3N0YXJ0Jyk6Ci0r ICAgICAgICAgICAgICAgIGlmICdzdGFydCcgaW4gbm9kZToKLSAgICAgICAgICAgICAgICAgICAg IHNlbGYuX2NudCA9IG5vZGVbJ3N0YXJ0J10gLSAxCi0gICAgICAgICAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbnQgPSAwCi1AQCAtMzU0LDcgKzM1NCw3IEBAIGNs YXNzIFRyYW5zbGF0b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAgIGRlZiBfX3Jl cHJfXyhzZWxmKToKLSAgICAgICAgICAgICAgICAgcmV0dXJuICdlbnVtX3N0eWxlLSVzJyAlIGxp c3Qoc2VsZi5fc3R5bGUpCi0gCi0tICAgICAgICBpZiBub2RlLmhhc19rZXkoJ2VudW10eXBlJyk6 Ci0rICAgICAgICBpZiAnZW51bXR5cGUnIGluIG5vZGU6Ci0gICAgICAgICAgICAgc2VsZi5fbGlz dF9jaGFyLmFwcGVuZChlbnVtX2NoYXIobm9kZVsnZW51bXR5cGUnXSkpCi0gICAgICAgICBlbHNl OgotICAgICAgICAgICAgIHNlbGYuX2xpc3RfY2hhci5hcHBlbmQoZW51bV9jaGFyKCdidWxsZXQn KSkKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5 dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTYtUmVtb3ZlLWR1cGxpY2F0ZS1kZWZpbml0aW9uLW9m LW5vZGVzLkVsZW1lbnQuX19jb250YS5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3Bh dGNoZXMvMDAxNi1SZW1vdmUtZHVwbGljYXRlLWRlZmluaXRpb24tb2Ytbm9kZXMuRWxlbWVudC5f X2NvbnRhLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzcxZWE2ZTRlOC4u MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE2LVJl bW92ZS1kdXBsaWNhdGUtZGVmaW5pdGlvbi1vZi1ub2Rlcy5FbGVtZW50Ll9fY29udGEucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi1Gcm9tIGJmMzcwNjUxMzIxZWQ3MjE3Nzdm ZTBiYjFjNGJkNDY1MmVlYTM1NGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVw aGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IE1vbiwgMjYgQXVnIDIwMTkg MjM6MTM6MDQgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAxNi8yNl0gUmVtb3ZlIGR1cGxpY2F0ZSBk ZWZpbml0aW9uIG9mCi0gYG5vZGVzLkVsZW1lbnQuX19jb250YWluc19fYC4KLQotZ2l0LXN2bi1p ZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM2MyA5Mjk1 NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJh biBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvbm9kZXMu cHkgfCAxNCArKysrKystLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks IDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kb2N1dGlscy9ub2Rlcy5weSBiL2RvY3V0 aWxzL25vZGVzLnB5Ci1pbmRleCAzZDcxNGEyLi5mOGRhMDJiIDEwMDY0NAotLS0tIGEvZG9jdXRp bHMvbm9kZXMucHkKLSsrKyBiL2RvY3V0aWxzL25vZGVzLnB5Ci1AQCAtNTc3LDEzICs1NzcsNiBA QCBjbGFzcyBFbGVtZW50KE5vZGUpOgotICAgICBkZWYgX19sZW5fXyhzZWxmKToKLSAgICAgICAg IHJldHVybiBsZW4oc2VsZi5jaGlsZHJlbikKLSAKLS0gICAgZGVmIF9fY29udGFpbnNfXyhzZWxm LCBrZXkpOgotLSAgICAgICAgIyBzdXBwb3J0IGJvdGggbWVtYmVyc2hpcCB0ZXN0IGZvciBjaGls ZHJlbiBhbmQgYXR0cmlidXRlcwotLSAgICAgICAgIyAoaGFzX2tleSBpcyB0cmFuc2xhdGVkIHRv ICJpbiIgYnkgMnRvMykKLS0gICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5LCBiYXNlc3RyaW5nKToK LS0gICAgICAgICAgICByZXR1cm4ga2V5IGluIHNlbGYuYXR0cmlidXRlcwotLSAgICAgICAgcmV0 dXJuIGtleSBpbiBzZWxmLmNoaWxkcmVuCi0tCi0gICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBr ZXkpOgotICAgICAgICAgaWYgaXNpbnN0YW5jZShrZXksIGJhc2VzdHJpbmcpOgotICAgICAgICAg ICAgIHJldHVybiBzZWxmLmF0dHJpYnV0ZXNba2V5XQotQEAgLTY2OCw3ICs2NjEsMTIgQEAgY2xh c3MgRWxlbWVudChOb2RlKToKLSAgICAgaGFzX2tleSA9IGhhc2F0dHIKLSAKLSAgICAgIyBzdXBw b3J0IG9wZXJhdG9yIGBgaW5gYAotLSAgICBfX2NvbnRhaW5zX18gPSBoYXNhdHRyCi0rICAgIGRl ZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKLSsgICAgICAgICMgc3VwcG9ydCBib3RoIG1lbWJl cnNoaXAgdGVzdCBmb3IgY2hpbGRyZW4gYW5kIGF0dHJpYnV0ZXMKLSsgICAgICAgICMgKGhhc19r ZXkgaXMgdHJhbnNsYXRlZCB0byAiaW4iIGJ5IDJ0bzMpCi0rICAgICAgICBpZiBpc2luc3RhbmNl KGtleSwgYmFzZXN0cmluZyk6Ci0rICAgICAgICAgICAgcmV0dXJuIGtleSBpbiBzZWxmLmF0dHJp YnV0ZXMKLSsgICAgICAgIHJldHVybiBrZXkgaW4gc2VsZi5jaGlsZHJlbgotIAotICAgICBkZWYg Z2V0X2xhbmd1YWdlX2NvZGUoc2VsZiwgZmFsbGJhY2s9JycpOgotICAgICAgICAgIiIiUmV0dXJu IG5vZGUncyBsYW5ndWFnZSB0YWcuCi0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE3LUhhbmRsZS1Db25m aWdQYXJzZXItdG8tY29uZmlncGFyc2VyLXJlbmFtZS5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRv Y3V0aWxzL3BhdGNoZXMvMDAxNy1IYW5kbGUtQ29uZmlnUGFyc2VyLXRvLWNvbmZpZ3BhcnNlci1y ZW5hbWUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwOWM3MzQxOTA2Li4w MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTctSGFu ZGxlLUNvbmZpZ1BhcnNlci10by1jb25maWdwYXJzZXItcmVuYW1lLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsOTMgKzAsMCBAQAotRnJvbSBiY2MwODU5MmRkODVmMmU3ODA1YWIzNTI4NjU5YTQz OTZmMTA5YjMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2Fu ZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBXZWQsIDIwIE5vdiAyMDE5IDAwOjA1OjQzICsw NzAwCi1TdWJqZWN0OiBbUEFUQ0ggMTcvMjZdIEhhbmRsZSAnQ29uZmlnUGFyc2VyJyB0byAnY29u ZmlncGFyc2VyJyByZW5hbWUuCi0KLUJhc2VkIG9uIGEgcGF0Y2ggYnkgU3RlcGhlbiBGaW51Y2Fu ZS4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUv dHJ1bmtAODM2NCA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1v ZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0g ZG9jdXRpbHMvZnJvbnRlbmQucHkgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKysrLS0tLS0K LSBkb2N1dGlscy93cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkgfCAgNCArKy0tCi0gMiBmaWxl cyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvZG9jdXRpbHMvZnJvbnRlbmQucHkgYi9kb2N1dGlscy9mcm9udGVuZC5weQotaW5kZXggNjI3 ZjYwMy4uODE1MzQzZCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci0rKysgYi9k b2N1dGlscy9mcm9udGVuZC5weQotQEAgLTMzLDEwICszMywxNCBAQCBpbXBvcnQgb3MKLSBpbXBv cnQgb3MucGF0aAotIGltcG9ydCBzeXMKLSBpbXBvcnQgd2FybmluZ3MKLS1pbXBvcnQgQ29uZmln UGFyc2VyIGFzIENQCi0gaW1wb3J0IGNvZGVjcwotIGltcG9ydCBvcHRwYXJzZQotIGZyb20gb3B0 cGFyc2UgaW1wb3J0IFNVUFBSRVNTX0hFTFAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDAp OgotKyAgICBmcm9tIGNvbmZpZ3BhcnNlciBpbXBvcnQgUmF3Q29uZmlnUGFyc2VyCi0rZWxzZToK LSsgICAgZnJvbSBDb25maWdQYXJzZXIgaW1wb3J0IFJhd0NvbmZpZ1BhcnNlcgotKwotIGltcG9y dCBkb2N1dGlscwotIGltcG9ydCBkb2N1dGlscy51dGlscwotIGltcG9ydCBkb2N1dGlscy5ub2Rl cwotQEAgLTczNSw3ICs3MzksNyBAQCBjbGFzcyBPcHRpb25QYXJzZXIob3B0cGFyc2UuT3B0aW9u UGFyc2VyLCBkb2N1dGlscy5TZXR0aW5nc1NwZWMpOgotICAgICAgICAgcmFpc2UgS2V5RXJyb3Io J05vIG9wdGlvbiB3aXRoIGRlc3QgPT0gJXIuJyAlIGRlc3QpCi0gCi0gCi0tY2xhc3MgQ29uZmln UGFyc2VyKENQLlJhd0NvbmZpZ1BhcnNlcik6Ci0rY2xhc3MgQ29uZmlnUGFyc2VyKFJhd0NvbmZp Z1BhcnNlcik6Ci0gCi0gICAgIG9sZF9zZXR0aW5ncyA9IHsKLSAgICAgICAgICdwZXBfc3R5bGVz aGVldCc6ICgncGVwX2h0bWwgd3JpdGVyJywgJ3N0eWxlc2hlZXQnKSwKLUBAIC03NTcsNyArNzYx LDcgQEAgU2tpcHBpbmcgIiVzIiBjb25maWd1cmF0aW9uIGZpbGUuCi0gIiIiCi0gCi0gICAgIGRl ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotLSAgICAgICAgQ1AuUmF3Q29uZmln UGFyc2VyLl9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykKLSsgICAgICAgIFJhd0NvbmZp Z1BhcnNlci5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCi0gCi0gICAgICAgICBzZWxm Ll9maWxlcyA9IFtdCi0gICAgICAgICAiIiJMaXN0IG9mIHBhdGhzIG9mIGNvbmZpZ3VyYXRpb24g ZmlsZXMgcmVhZC4iIiIKLUBAIC03NzYsOSArNzgwLDkgQEAgU2tpcHBpbmcgIiVzIiBjb25maWd1 cmF0aW9uIGZpbGUuCi0gICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgdHJ5 OgotICAgICAgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMik6Ci0tICAgICAg ICAgICAgICAgICAgICBDUC5SYXdDb25maWdQYXJzZXIucmVhZGZwKHNlbGYsIGZwLCBmaWxlbmFt ZSkKLSsgICAgICAgICAgICAgICAgICAgIFJhd0NvbmZpZ1BhcnNlci5yZWFkZnAoc2VsZiwgZnAs IGZpbGVuYW1lKQotICAgICAgICAgICAgICAgICBlbHNlOgotLSAgICAgICAgICAgICAgICAgICAg Q1AuUmF3Q29uZmlnUGFyc2VyLnJlYWRfZmlsZShzZWxmLCBmcCwgZmlsZW5hbWUpCi0rICAgICAg ICAgICAgICAgICAgICBSYXdDb25maWdQYXJzZXIucmVhZF9maWxlKHNlbGYsIGZwLCBmaWxlbmFt ZSkKLSAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgotICAgICAgICAgICAg ICAgICBzZWxmLl9zdGRlcnIud3JpdGUoc2VsZi5ub3RfdXRmOF9lcnJvciAlIChmaWxlbmFtZSwg ZmlsZW5hbWUpKQotICAgICAgICAgICAgICAgICBmcC5jbG9zZSgpCi1kaWZmIC0tZ2l0IGEvZG9j dXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9vZGZf b2R0L19faW5pdF9fLnB5Ci1pbmRleCA3NWY4NDZjLi5mMzY5ODBmIDEwMDY0NAotLS0tIGEvZG9j dXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJz L29kZl9vZHQvX19pbml0X18ucHkKLUBAIC0zMCwxMCArMzAsMTIgQEAgZnJvbSBkb2N1dGlscyBp bXBvcnQgZnJvbnRlbmQsIG5vZGVzLCB1dGlscywgd3JpdGVycywgbGFuZ3VhZ2VzCi0gZnJvbSBk b2N1dGlscy5yZWFkZXJzIGltcG9ydCBzdGFuZGFsb25lCi0gZnJvbSBkb2N1dGlscy50cmFuc2Zv cm1zIGltcG9ydCByZWZlcmVuY2VzCi0gaWYgdHlwZShzeXMudmVyc2lvbl9pbmZvKSE9dHlwZSgo MCwpKSBhbmQgc3lzLnZlcnNpb25faW5mby5tYWpvciA+PSAzOgotKyAgICBmcm9tIGNvbmZpZ3Bh cnNlciBpbXBvcnQgQ29uZmlnUGFyc2VyCi0gICAgIGZyb20gaW8gaW1wb3J0IFN0cmluZ0lPCi0g ICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KLSAgICAgZnJvbSB1cmxsaWIu ZXJyb3IgaW1wb3J0IEhUVFBFcnJvcgotIGVsc2U6Ci0rICAgIGZyb20gQ29uZmlnUGFyc2VyIGlt cG9ydCBDb25maWdQYXJzZXIKLSAgICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KLSAg ICAgZnJvbSB1cmxsaWIyIGltcG9ydCB1cmxvcGVuLCBIVFRQRXJyb3IKLSAKLUBAIC05MzgsOCAr OTQwLDYgQEAgY2xhc3MgT0RGVHJhbnNsYXRvcihub2Rlcy5HZW5lcmljTm9kZVZpc2l0b3IpOgot ICAgICAgICAgICAgIGRvY3VtZW50LnJlcG9ydGVyKQotICAgICAgICAgc2VsZi5mb3JtYXRfbWFw ID0ge30KLSAgICAgICAgIGlmIHNlbGYuc2V0dGluZ3Mub2RmX2NvbmZpZ19maWxlOgotLSAgICAg ICAgICAgIGZyb20gY29uZmlncGFyc2VyIGltcG9ydCBDb25maWdQYXJzZXIKLS0KLSAgICAgICAg ICAgICBwYXJzZXIgPSBDb25maWdQYXJzZXIoKQotICAgICAgICAgICAgIHBhcnNlci5yZWFkKHNl bGYuc2V0dGluZ3Mub2RmX2NvbmZpZ19maWxlKQotICAgICAgICAgICAgIGZvciByc3RzdHlsZSwg Zm9ybWF0IGluIHBhcnNlci5pdGVtcygiRm9ybWF0cyIpOgotLS0gCi0yLjI0LjAuMzc1LmdlYjVh ZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAx OC1weTMtUmVwbGFjZS11ci1wcmVmaXgucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9w YXRjaGVzLzAwMTgtcHkzLVJlcGxhY2UtdXItcHJlZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBjNDAxYzRhZWJiYy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRo b24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE4LXB5My1SZXBsYWNlLXVyLXByZWZpeC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDU5OSArMCwwIEBACi1Gcm9tIGFjNDA4YzdlZDA0NTAwYzgzYTQ3ODYx YzVhYzg4YWVlMjQ2ZDE3OGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVu IEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IFR1ZSwgMjcgQXVnIDIwMTkgMTI6 MDk6MTkgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAxOC8yNl0gcHkzOiBSZXBsYWNlICd1cicgcHJl Zml4Ci0KLVdoaWxlIHRoZSAndScgcHJlZml4IHdhcyBiYWNrcG9ydGVkIHRvIFB5dGhvbiAzLjMg b3IgdGhlcmVhYm91dHMsICd1cicKLXJlbWFpbnMgaW52YWxpZCBpbiBQeXRob24gMy4gSnVzdCBl c2NhcGUgYWxsIGJhY2tzbGFzaGVzIGFuZCB1c2UgcGxhaW4KLW9sZCAndScuCi0KLUJhc2VkIG9u IHBhdGNoIGJ5IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3Zu LWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzY2IDky OTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBU cmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy91dGls cy9tYXRoL2xhdGV4Mm1hdGhtbC5weSAgICAgICAgICAgfCAgMjggKy0KLSBkb2N1dGlscy91dGls cy9tYXRoL3RleDJtYXRobWxfZXh0ZXJuLnB5ICAgICAgfCAgIDMgKy0KLSBkb2N1dGlscy91dGls cy9zbWFydHF1b3Rlcy5weSAgICAgICAgICAgICAgICAgfCAgMjQgKy0KLSBkb2N1dGlscy93cml0 ZXJzL2xhdGV4MmUvX19pbml0X18ucHkgICAgICAgICAgfCAyODAgKysrKysrKysrLS0tLS0tLS0t Ci0gZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5ICAgICAgICAgICAgICAgICAgIHwgICA4ICst Ci0gLi4uL3Rlc3RfcnN0L3Rlc3RfZWFzdF9hc2lhbl90ZXh0LnB5ICAgICAgICAgIHwgICA0ICst Ci0gdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5ICAgICAgIHwgIDEwICst Ci0gNyBmaWxlcyBjaGFuZ2VkLCAxODIgaW5zZXJ0aW9ucygrKSwgMTc1IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwucHkgYi9kb2N1 dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weQotaW5kZXggYjdiYTA0OC4uMWYzYmMxOCAx MDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5Ci0rKysgYi9k b2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weQotQEAgLTYsMTIgKzYsMTIgQEAKLSAj ICAgICAgICAgICAgIEJhc2VkIG9uIHJzdDJtYXRobWwucHkgZnJvbSB0aGUgbGF0ZXhfbWF0aCBz YW5kYm94IHByb2plY3QKLSAjICAgICAgICAgICAgIMKpIDIwMDUgSmVucyBKw7hyZ2VuIE1vcnRl bnNlbgotICMgOkxpY2Vuc2U6IFJlbGVhc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgYDItQ2xh dXNlIEJTRCBsaWNlbnNlYF8sIGluIHNob3J0OgotLSMgCi0rIwotICMgICAgQ29weWluZyBhbmQg ZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwK LSAjICAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlk ZWQgdGhlIGNvcHlyaWdodAotICMgICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2Vy dmVkLgotICMgICAgVGhpcyBmaWxlIGlzIG9mZmVyZWQgYXMtaXMsIHdpdGhvdXQgYW55IHdhcnJh bnR5LgotLSMgCi0rIwotICMgLi4gXzItQ2xhdXNlIEJTRCBsaWNlbnNlOiBodHRwOi8vd3d3LnNw ZHgub3JnL2xpY2Vuc2VzL0JTRC0yLUNsYXVzZQotIAotIAotQEAgLTQxMiw3ICs0MTIsNyBAQCBk ZWYgcGFyc2VfbGF0ZXhfbWF0aChzdHJpbmcsIGlubGluZT1UcnVlKToKLSAgICAgICAgICAgICAg ICAgbm9kZSA9IGVudHJ5Ci0gICAgICAgICAgICAgICAgIHNraXAgPSAyCi0gICAgICAgICAgICAg ZWxzZToKLS0gICAgICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IodXInU3ludGF4IGVycm9y OiAiJXMlcyInICUgKGMsIGMyKSkKLSsgICAgICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3Io dSdTeW50YXggZXJyb3I6ICIlcyVzIicgJSAoYywgYzIpKQotICAgICAgICAgZWxpZiBjLmlzYWxw aGEoKToKLSAgICAgICAgICAgICBub2RlID0gbm9kZS5hcHBlbmQobWkoYykpCi0gICAgICAgICBl bGlmIGMuaXNkaWdpdCgpOgotQEAgLTQ1Myw3ICs0NTMsNyBAQCBkZWYgcGFyc2VfbGF0ZXhfbWF0 aChzdHJpbmcsIGlubGluZT1UcnVlKToKLSAgICAgICAgICAgICBub2RlLmNsb3NlKCkuYXBwZW5k KGVudHJ5KQotICAgICAgICAgICAgIG5vZGUgPSBlbnRyeQotICAgICAgICAgZWxzZToKLS0gICAg ICAgICAgICByYWlzZSBTeW50YXhFcnJvcih1cidJbGxlZ2FsIGNoYXJhY3RlcjogIiVzIicgJSBj KQotKyAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKHUnSWxsZWdhbCBjaGFyYWN0ZXI6ICIl cyInICUgYykKLSAgICAgICAgIHN0cmluZyA9IHN0cmluZ1tza2lwOl0KLSAgICAgcmV0dXJuIHRy ZWUKLSAKLUBAIC00NzQsMTUgKzQ3NCwxNSBAQCBkZWYgaGFuZGxlX2tleXdvcmQobmFtZSwgbm9k ZSwgc3RyaW5nKToKLSAgICAgICAgIG5vZGUgPSBlbnRyeQotICAgICBlbGlmIG5hbWUgPT0gJ2Vu ZCc6Ci0gICAgICAgICBpZiBub3Qgc3RyaW5nLnN0YXJ0c3dpdGgoJ3ttYXRyaXh9Jyk6Ci0tICAg ICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IodXInRXhwZWN0ZWQgIlxlbmR7bWF0cml4fSIhJykK LSsgICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcih1J0V4cGVjdGVkICJcXGVuZHttYXRyaXh9 IiEnKQotICAgICAgICAgc2tpcCArPSA4Ci0gICAgICAgICBub2RlID0gbm9kZS5jbG9zZSgpLmNs b3NlKCkuY2xvc2UoKQotICAgICBlbGlmIG5hbWUgaW4gKCd0ZXh0JywgJ21hdGhybScpOgotICAg ICAgICAgaWYgc3RyaW5nWzBdICE9ICd7JzoKLS0gICAgICAgICAgICByYWlzZSBTeW50YXhFcnJv cih1cidFeHBlY3RlZCAiXHRleHR7Li4ufSIhJykKLSsgICAgICAgICAgICByYWlzZSBTeW50YXhF cnJvcih1J0V4cGVjdGVkICJcXHRleHR7Li4ufSIhJykKLSAgICAgICAgIGkgPSBzdHJpbmcuZmlu ZCgnfScpCi0gICAgICAgICBpZiBpID09IC0xOgotLSAgICAgICAgICAgIHJhaXNlIFN5bnRheEVy cm9yKHVyJ0V4cGVjdGVkICJcdGV4dHsuLi59IiEnKQotKyAgICAgICAgICAgIHJhaXNlIFN5bnRh eEVycm9yKHUnRXhwZWN0ZWQgIlxcdGV4dHsuLi59IiEnKQotICAgICAgICAgbm9kZSA9IG5vZGUu YXBwZW5kKG10ZXh0KHN0cmluZ1sxOmldKSkKLSAgICAgICAgIHNraXAgKz0gaSArIDEKLSAgICAg ZWxpZiBuYW1lID09ICdzcXJ0JzoKLUBAIC01MjAsNyArNTIwLDcgQEAgZGVmIGhhbmRsZV9rZXl3 b3JkKG5hbWUsIG5vZGUsIHN0cmluZyk6Ci0gICAgICAgICAgICAgaWYgc3RyaW5nLnN0YXJ0c3dp dGgob3BlcmF0b3IpOgotICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgZWxzZToKLS0g ICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcih1cidFeHBlY3RlZCBzb21ldGhpbmcgdG8gbmVn YXRlOiAiXG5vdCAuLi4iIScpCi0rICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IodSdFeHBl Y3RlZCBzb21ldGhpbmcgdG8gbmVnYXRlOiAiXFxub3QgLi4uIiEnKQotICAgICAgICAgbm9kZSA9 IG5vZGUuYXBwZW5kKG1vKG5lZ2F0YWJsZXNbb3BlcmF0b3JdKSkKLSAgICAgICAgIHNraXAgKz0g bGVuKG9wZXJhdG9yKQotICAgICBlbGlmIG5hbWUgPT0gJ21hdGhiZic6Ci1AQCAtNTI5LDEyICs1 MjksMTIgQEAgZGVmIGhhbmRsZV9rZXl3b3JkKG5hbWUsIG5vZGUsIHN0cmluZyk6Ci0gICAgICAg ICBub2RlID0gc3R5bGUKLSAgICAgZWxpZiBuYW1lID09ICdtYXRoYmInOgotICAgICAgICAgaWYg c3RyaW5nWzBdICE9ICd7JyBvciBub3Qgc3RyaW5nWzFdLmlzdXBwZXIoKSBvciBzdHJpbmdbMl0g IT0gJ30nOgotLSAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKHVyJ0V4cGVjdGVkIHNvbWV0 aGluZyBsaWtlICJcbWF0aGJie0F9IiEnKQotKyAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9y KHUnRXhwZWN0ZWQgc29tZXRoaW5nIGxpa2UgIlxcbWF0aGJie0F9IiEnKQotICAgICAgICAgbm9k ZSA9IG5vZGUuYXBwZW5kKG1pKG1hdGhiYltzdHJpbmdbMV1dKSkKLSAgICAgICAgIHNraXAgKz0g MwotICAgICBlbGlmIG5hbWUgaW4gKCdtYXRoc2NyJywgJ21hdGhjYWwnKToKLSAgICAgICAgIGlm IHN0cmluZ1swXSAhPSAneycgb3Igc3RyaW5nWzJdICE9ICd9JzoKLS0gICAgICAgICAgICByYWlz ZSBTeW50YXhFcnJvcih1cidFeHBlY3RlZCBzb21ldGhpbmcgbGlrZSAiXG1hdGhzY3J7QX0iIScp Ci0rICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IodSdFeHBlY3RlZCBzb21ldGhpbmcgbGlr ZSAiXFxtYXRoc2Nye0F9IiEnKQotICAgICAgICAgbm9kZSA9IG5vZGUuYXBwZW5kKG1pKG1hdGhz Y3Jbc3RyaW5nWzFdXSkpCi0gICAgICAgICBza2lwICs9IDMKLSAgICAgZWxpZiBuYW1lID09ICdj b2xvbic6ICMgIm5vcm1hbCIgY29sb24sIG5vdCBiaW5hcnkgb3BlcmF0b3IKLUBAIC01NTksMTIg KzU1OSwxMCBAQCBkZWYgaGFuZGxlX2tleXdvcmQobmFtZSwgbm9kZSwgc3RyaW5nKToKLSAgICAg cmV0dXJuIG5vZGUsIHNraXAKLSAKLSBkZWYgdGV4Mm1hdGhtbCh0ZXhfbWF0aCwgaW5saW5lPVRy dWUpOgotLSAgICAiIiJSZXR1cm4gc3RyaW5nIHdpdGggTWF0aE1MIGNvZGUgY29ycmVzcG9uZGlu ZyB0byBgdGV4X21hdGhgLiAKLS0gICAgCi0rICAgICIiIlJldHVybiBzdHJpbmcgd2l0aCBNYXRo TUwgY29kZSBjb3JyZXNwb25kaW5nIHRvIGB0ZXhfbWF0aGAuCi0rCi0gICAgIGBpbmxpbmVgPVRy dWUgaXMgZm9yIGlubGluZSBtYXRoIGFuZCBgaW5saW5lYD1GYWxzZSBmb3IgZGlzcGxheWVkIG1h dGguCi0gICAgICIiIgotLSAgICAKLSsKLSAgICAgbWF0aG1sX3RyZWUgPSBwYXJzZV9sYXRleF9t YXRoKHRleF9tYXRoLCBpbmxpbmU9aW5saW5lKQotICAgICByZXR1cm4gJycuam9pbihtYXRobWxf dHJlZS54bWwoKSkKLS0KLS0gICAgCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvbWF0aC90 ZXgybWF0aG1sX2V4dGVybi5weSBiL2RvY3V0aWxzL3V0aWxzL21hdGgvdGV4Mm1hdGhtbF9leHRl cm4ucHkKLWluZGV4IDNlN2YxNTguLmFiODJhNzggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGls cy9tYXRoL3RleDJtYXRobWxfZXh0ZXJuLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9tYXRoL3Rl eDJtYXRobWxfZXh0ZXJuLnB5Ci1AQCAtMTQxLDcgKzE0MSw4IEBAIGRlZiBibGFodGV4bWwobWF0 aF9jb2RlLCBpbmxpbmU9VHJ1ZSwgcmVwb3J0ZXI9Tm9uZSk6Ci0gIyBzZWxmLXRlc3QKLSAKLSBp ZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotLSAgICBleGFtcGxlID0gdXInXGZyYWN7XHBhcnRp YWwgXHNpbl4yKFxhbHBoYSl9e1xwYXJ0aWFsIFx2ZWMgcn0gXHZhcnBpIFwsIFx0ZXh0e0dyw7zD n2V9JwotKyAgICBleGFtcGxlID0gKHUnXFxmcmFje1xccGFydGlhbCBcXHNpbl4yKFxcYWxwaGEp fXtcXHBhcnRpYWwgXFx2ZWMgcn0nCi0rICAgICAgICAgICAgICAgdSdcXHZhcnBpIFxcLCBcXHRl eHR7R3LDvMOfZX0nKQotICAgICAjIHByaW50KGxhdGV4bWwoZXhhbXBsZSkuZW5jb2RlKCd1dGY4 JykpCi0gICAgICMgcHJpbnQodHRtKGV4YW1wbGUpKQotICAgICBwcmludChibGFodGV4bWwoZXhh bXBsZSkuZW5jb2RlKCd1dGY4JykpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvc21hcnRx dW90ZXMucHkgYi9kb2N1dGlscy91dGlscy9zbWFydHF1b3Rlcy5weQotaW5kZXggMTQ4YTRjOS4u YjM4ZmE0NyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL3NtYXJ0cXVvdGVzLnB5Ci0rKysg Yi9kb2N1dGlscy91dGlscy9zbWFydHF1b3Rlcy5weQotQEAgLTY1OCwyMCArNjU4LDIxIEBAIGRl ZiBlZHVjYXRlUXVvdGVzKHRleHQsIGxhbmd1YWdlPSdlbicpOgotICAgICAgICAgdGV4dCA9IHJl LnN1YihyIicoPz1cZHsyfXMpIiwgc21hcnQuYXBvc3Ryb3BoZSwgdGV4dCkKLSAKLSAgICAgIyBH ZXQgbW9zdCBvcGVuaW5nIHNpbmdsZSBxdW90ZXM6Ci0tICAgIG9wZW5pbmdfc2luZ2xlX3F1b3Rl c19yZWdleCA9IHJlLmNvbXBpbGUodXIiIiIKLSsgICAgb3BlbmluZ19zaW5nbGVfcXVvdGVzX3Jl Z2V4ID0gcmUuY29tcGlsZSh1IiIiCi0gICAgICAgICAgICAgICAgICAgICAoIyA/PD0gICMgbG9v ayBiZWhpbmQgZmFpbHM6IHJlcXVpcmVzIGZpeGVkLXdpZHRoIHBhdHRlcm4KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgXHMgICAgICAgICAgfCAgICMgYSB3aGl0ZXNwYWNlIGNoYXIsIG9y Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxccyAgICAgICAgIHwgICAjIGEgd2hpdGVz cGFjZSBjaGFyLCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlcyAgICAgICAgICB8 ICAgIyBhbm90aGVyIHNlcGFyYXRpbmcgY2hhciwgb3IKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJm5ic3A7ICAgICAgfCAgICMgYSBub24tYnJlYWtpbmcgc3BhY2UgZW50aXR5LCBvcgot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBb4oCT4oCUXSAgICAgICAgfCAgICMgbGl0ZXJh bCBkYXNoZXMsIG9yCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcdTIwMTMgXHUyMDE0 IF0gICAgICAgIHwgICAjIGxpdGVyYWwgZGFzaGVzLCBvcgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLSAgICAgICAgICB8ICAgIyBkdW1iIGRhc2hlcywgb3IKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJlttbl1kYXNoOyAgfCAgICMgZGFzaCBlbnRpdGllcyAobmFtZWQgb3IK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJXMgICAgICAgICAgfCAgICMgZGVjaW1hbCBv cgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmXCN4MjAxWzM0XTsgICAgIyBoZXgpCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZcXCN4MjAxWzM0XTsgICAgIyBoZXgpCi0gICAg ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAg ICAjIHRoZSBxdW90ZQotLSAgICAgICAgICAgICAgICAgICAgKD89XHcpICAgICAgICAgICAgIyBm b2xsb3dlZCBieSBhIHdvcmQgY2hhcmFjdGVyCi0tICAgICAgICAgICAgICAgICAgICAiIiIgJSAo b3Blbl9jbGFzcyxkZWNfZGFzaGVzKSwgcmUuVkVSQk9TRSB8IHJlLlVOSUNPREUpCi0rICAgICAg ICAgICAgICAgICAgICAoPz1cXHcpICAgICAgICAgICAjIGZvbGxvd2VkIGJ5IGEgd29yZCBjaGFy YWN0ZXIKLSsgICAgICAgICAgICAgICAgICAgICIiIiAlIChvcGVuX2NsYXNzLCBkZWNfZGFzaGVz KSwgcmUuVkVSQk9TRSB8IHJlLlVOSUNPREUpCi0rCi0gICAgIHRleHQgPSBvcGVuaW5nX3Npbmds ZV9xdW90ZXNfcmVnZXguc3ViKHInXDEnK3NtYXJ0Lm9zcXVvdGUsIHRleHQpCi0gCi0gICAgICMg SW4gbWFueSBsb2NhbGVzLCBzaW5nbGUgY2xvc2luZyBxdW90ZXMgYXJlIGRpZmZlcmVudCBmcm9t IGFwb3N0cm9waGU6Ci1AQCAtNjkxLDIwICs2OTIsMjEgQEAgZGVmIGVkdWNhdGVRdW90ZXModGV4 dCwgbGFuZ3VhZ2U9J2VuJyk6Ci0gICAgIHRleHQgPSByZS5zdWIociIiIiciIiIsIHNtYXJ0Lm9z cXVvdGUsIHRleHQpCi0gCi0gICAgICMgR2V0IG1vc3Qgb3BlbmluZyBkb3VibGUgcXVvdGVzOgot LSAgICBvcGVuaW5nX2RvdWJsZV9xdW90ZXNfcmVnZXggPSByZS5jb21waWxlKHVyIiIiCi0rICAg IG9wZW5pbmdfZG91YmxlX3F1b3Rlc19yZWdleCA9IHJlLmNvbXBpbGUodSIiIgotICAgICAgICAg ICAgICAgICAgICAgKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBccyAgICAgICAgICB8 ICAgIyBhIHdoaXRlc3BhY2UgY2hhciwgb3IKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg XFxzICAgICAgICAgfCAgICMgYSB3aGl0ZXNwYWNlIGNoYXIsIG9yCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICVzICAgICAgICAgIHwgICAjIGFub3RoZXIgc2VwYXJhdGluZyBjaGFyLCBv cgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsgICAgICB8ICAgIyBhIG5vbi1i cmVha2luZyBzcGFjZSBlbnRpdHksIG9yCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFvi gJPigJRdICAgICAgICB8ICAgIyBsaXRlcmFsIGRhc2hlcywgb3IKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgW1x1MjAxMyBcdTIwMTQgXSAgICAgICAgfCAgICMgbGl0ZXJhbCBkYXNoZXMs IG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAgICAgIHwgICAjIGR1bWIg ZGFzaGVzLCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmW21uXWRhc2g7ICB8ICAg IyBkYXNoIGVudGl0aWVzIChuYW1lZCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAl cyAgICAgICAgICB8ICAgIyBkZWNpbWFsIG9yCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZcI3gyMDFbMzRdOyAgICAjIGhleCkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlxc I3gyMDFbMzRdOyAgICAjIGhleCkKLSAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAg ICAgICAgICAgICIgICAgICAgICAgICAgICAgICMgdGhlIHF1b3RlCi0tICAgICAgICAgICAgICAg ICAgICAoPz1cdykgICAgICAgICAgICAjIGZvbGxvd2VkIGJ5IGEgd29yZCBjaGFyYWN0ZXIKLSsg ICAgICAgICAgICAgICAgICAgICg/PVxcdykgICAgICAgICAgICAjIGZvbGxvd2VkIGJ5IGEgd29y ZCBjaGFyYWN0ZXIKLSAgICAgICAgICAgICAgICAgICAgICIiIiAlIChvcGVuX2NsYXNzLGRlY19k YXNoZXMpLCByZS5WRVJCT1NFIHwgcmUuVU5JQ09ERSkKLSsKLSAgICAgdGV4dCA9IG9wZW5pbmdf ZG91YmxlX3F1b3Rlc19yZWdleC5zdWIocidcMScrc21hcnQub3BxdW90ZSwgdGV4dCkKLSAKLSAg ICAgIyBEb3VibGUgY2xvc2luZyBxdW90ZXM6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVy cy9sYXRleDJlL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9f LnB5Ci1pbmRleCAyYzc2YjBmLi42MzZkNDc3IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVy cy9sYXRleDJlL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19p bml0X18ucHkKLUBAIC03MDQsMTY1ICs3MDQsMTY1IEBAIGNsYXNzIENoYXJNYXBzKG9iamVjdCk6 Ci0gCi0gICAgICMgY2hhcmFjdGVycyB0aGF0IG5lZWQgZXNjYXBpbmcgZXZlbiBpbiBgYWxsdHRg IGVudmlyb25tZW50czoKLSAgICAgYWxsdHQgPSB7Ci0tICAgICAgICBvcmQoJ1xcJyk6IHVyJ1x0 ZXh0YmFja3NsYXNoe30nLAotLSAgICAgICAgb3JkKCd7Jyk6IHVyJ1x7JywKLS0gICAgICAgIG9y ZCgnfScpOiB1cidcfScsCi0rICAgICAgICBvcmQoJ1xcJyk6IHUnXFx0ZXh0YmFja3NsYXNoe30n LAotKyAgICAgICAgb3JkKCd7Jyk6IHUnXFx7JywKLSsgICAgICAgIG9yZCgnfScpOiB1J1xcfScs Ci0gICAgIH0KLSAgICAgIyBjaGFyYWN0ZXJzIHRoYXQgbm9ybWFsbHkgbmVlZCBlc2NhcGluZzoK LSAgICAgc3BlY2lhbCA9IHsKLS0gICAgICAgIG9yZCgnIycpOiB1cidcIycsCi0tICAgICAgICBv cmQoJyQnKTogdXInXCQnLAotLSAgICAgICAgb3JkKCclJyk6IHVyJ1wlJywKLS0gICAgICAgIG9y ZCgnJicpOiB1cidcJicsCi0tICAgICAgICBvcmQoJ34nKTogdXInXHRleHRhc2NpaXRpbGRle30n LAotLSAgICAgICAgb3JkKCdfJyk6IHVyJ1xfJywKLS0gICAgICAgIG9yZCgnXicpOiB1cidcdGV4 dGFzY2lpY2lyY3Vte30nLAotKyAgICAgICAgb3JkKCcjJyk6IHUnXFwjJywKLSsgICAgICAgIG9y ZCgnJCcpOiB1J1xcJCcsCi0rICAgICAgICBvcmQoJyUnKTogdSdcXCUnLAotKyAgICAgICAgb3Jk KCcmJyk6IHUnXFwmJywKLSsgICAgICAgIG9yZCgnficpOiB1J1xcdGV4dGFzY2lpdGlsZGV7fScs Ci0rICAgICAgICBvcmQoJ18nKTogdSdcXF8nLAotKyAgICAgICAgb3JkKCdeJyk6IHUnXFx0ZXh0 YXNjaWljaXJjdW17fScsCi0gICAgICAgICAjIHN0cmFpZ2h0IGRvdWJsZSBxdW90ZXMgYXJlICdh Y3RpdmUnIGluIG1hbnkgbGFuZ3VhZ2VzCi0tICAgICAgICBvcmQoJyInKTogdXInXHRleHRxdW90 ZWRibHt9JywKLSsgICAgICAgIG9yZCgnIicpOiB1J1xcdGV4dHF1b3RlZGJse30nLAotICAgICAg ICAgIyBTcXVhcmUgYnJhY2tldHMgYXJlIG9yZGluYXJ5IGNoYXJzIGFuZCBjYW5ub3QgYmUgZXNj YXBlZCB3aXRoICdcJywKLSAgICAgICAgICMgc28gd2UgcHV0IHRoZW0gaW4gYSBncm91cCAne1t9 Jy4gKEFsdGVybmF0aXZlOiBlbnN1cmUgdGhhdCBhbGwKLSAgICAgICAgICMgbWFjcm9zIHdpdGgg b3B0aW9uYWwgYXJndW1lbnRzIGFyZSB0ZXJtaW5hdGVkIHdpdGgge30gYW5kIHRleHQKLSAgICAg ICAgICMgaW5zaWRlIGFueSBvcHRpb25hbCBhcmd1bWVudCBpcyBwdXQgaW4gYSBncm91cCBgYFt7 dGV4dH1dYGApLgotICAgICAgICAgIyBDb21tYW5kcyB3aXRoIG9wdGlvbmFsIGFyZ3MgaW5zaWRl IGFuIG9wdGlvbmFsIGFyZyBtdXN0IGJlIHB1dCBpbiBhCi0gICAgICAgICAjIGdyb3VwLCBlLmcu IGBgXGl0ZW1be1xoeXBlcnJlZltsYWJlbF17dGV4dH19XWBgLgotLSAgICAgICAgb3JkKCdbJyk6 IHVyJ3tbfScsCi0tICAgICAgICBvcmQoJ10nKTogdXIne119JywKLSsgICAgICAgIG9yZCgnWycp OiB1J3tbfScsCi0rICAgICAgICBvcmQoJ10nKTogdSd7XX0nLAotICAgICAgICAgIyB0aGUgc29m dCBoeXBoZW4gaXMgdW5rbm93biBpbiA4LWJpdCB0ZXh0Ci0gICAgICAgICAjIGFuZCBub3QgcHJv cGVybHkgaGFuZGxlZCBieSBYZVRlWAotLSAgICAgICAgMHgwMEFEOiB1cidcLScsICMgU09GVCBI WVBIRU4KLSsgICAgICAgIDB4MDBBRDogdSdcXC0nLCAjIFNPRlQgSFlQSEVOCi0gICAgIH0KLSAg ICAgIyBVbmljb2RlIGNoYXJzIHRoYXQgYXJlIG5vdCByZWNvZ25pemVkIGJ5IExhVGVYJ3MgdXRm OCBlbmNvZGluZwotICAgICB1bnN1cHBvcnRlZF91bmljb2RlID0gewotICAgICAgICAgIyBUT0RP OiBlbnN1cmUgd2hpdGUgc3BhY2UgYWxzbyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZT8KLS0g ICAgICAgICMgMHgwMEEwOiB1cidcbGVhdmV2bW9kZVxub2JyZWFrXHZhZGp1c3R7fX4nCi0tICAg ICAgICAweDIwMDA6IHVyJ1xlbnNraXAnLCAjIEVOIFFVQUQKLS0gICAgICAgIDB4MjAwMTogdXIn XHF1YWQnLCAjIEVNIFFVQUQKLS0gICAgICAgIDB4MjAwMjogdXInXGVuc2tpcCcsICMgRU4gU1BB Q0UKLS0gICAgICAgIDB4MjAwMzogdXInXHF1YWQnLCAjIEVNIFNQQUNFCi0tICAgICAgICAweDIw MDg6IHVyJ1wsJywgIyBQVU5DVFVBVElPTiBTUEFDReKAiOKAiOKAiAotLSAgICAgICAgMHgyMDBi OiB1cidcaHNwYWNlezBwdH0nLCAjIFpFUk8gV0lEVEggU1BBQ0UKLS0gICAgICAgIDB4MjAyRjog dXInXCwnLCAjIE5BUlJPVyBOTy1CUkVBSyBTUEFDRQotLSAgICAgICAgIyAweDAyZDg6IHVyJ1xc dXsgfScsICMgQlJFVkUKLS0gICAgICAgIDB4MjAxMTogdXInXGhib3h7LX0nLCAjIE5PTi1CUkVB S0lORyBIWVBIRU4KLS0gICAgICAgIDB4MjEyYjogdXInXEFBJywgIyBBTkdTVFJPTSBTSUdOCi0t ICAgICAgICAweDIxZDQ6IHVyJ1xlbnN1cmVtYXRoe1xMZWZ0cmlnaHRhcnJvd30nLAotKyAgICAg ICAgIyAweDAwQTA6IHUnXFxsZWF2ZXZtb2RlXFxub2JyZWFrXFx2YWRqdXN0e31+JwotKyAgICAg ICAgMHgyMDAwOiB1J1xcZW5za2lwJywgIyBFTiBRVUFECi0rICAgICAgICAweDIwMDE6IHUnXFxx dWFkJywgIyBFTSBRVUFECi0rICAgICAgICAweDIwMDI6IHUnXFxlbnNraXAnLCAjIEVOIFNQQUNF Ci0rICAgICAgICAweDIwMDM6IHUnXFxxdWFkJywgIyBFTSBTUEFDRQotKyAgICAgICAgMHgyMDA4 OiB1J1xcLCcsICMgUFVOQ1RVQVRJT04gU1BBQ0XigIjigIjigIgKLSsgICAgICAgIDB4MjAwYjog dSdcXGhzcGFjZXswcHR9JywgIyBaRVJPIFdJRFRIIFNQQUNFCi0rICAgICAgICAweDIwMkY6IHUn XFwsJywgIyBOQVJST1cgTk8tQlJFQUsgU1BBQ0UKLSsgICAgICAgICMgMHgwMmQ4OiB1J1xcXHV7 IH0nLCAjIEJSRVZFCi0rICAgICAgICAweDIwMTE6IHUnXFxoYm94ey19JywgIyBOT04tQlJFQUtJ TkcgSFlQSEVOCi0rICAgICAgICAweDIxMmI6IHUnXFxBQScsICMgQU5HU1RST00gU0lHTgotKyAg ICAgICAgMHgyMWQ0OiB1J1xcZW5zdXJlbWF0aHtcXExlZnRyaWdodGFycm93fScsCi0gICAgICAg ICAjIERvY3V0aWxzIGZvb3Rub3RlIHN5bWJvbHM6Ci0tICAgICAgICAweDI2NjA6IHVyJ1xlbnN1 cmVtYXRoe1xzcGFkZXN1aXR9JywKLS0gICAgICAgIDB4MjY2MzogdXInXGVuc3VyZW1hdGh7XGNs dWJzdWl0fScsCi0tICAgICAgICAweGZiMDA6IHVyJ2ZmJywgIyBMQVRJTiBTTUFMTCBMSUdBVFVS RSBGRgotLSAgICAgICAgMHhmYjAxOiB1cidmaScsICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkkK LS0gICAgICAgIDB4ZmIwMjogdXInZmwnLCAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZMCi0tICAg ICAgICAweGZiMDM6IHVyJ2ZmaScsICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZJCi0tICAgICAg ICAweGZiMDQ6IHVyJ2ZmbCcsICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZMCi0rICAgICAgICAw eDI2NjA6IHUnXFxlbnN1cmVtYXRoe1xcc3BhZGVzdWl0fScsCi0rICAgICAgICAweDI2NjM6IHUn XFxlbnN1cmVtYXRoe1xcY2x1YnN1aXR9JywKLSsgICAgICAgIDB4ZmIwMDogdSdmZicsICMgTEFU SU4gU01BTEwgTElHQVRVUkUgRkYKLSsgICAgICAgIDB4ZmIwMTogdSdmaScsICMgTEFUSU4gU01B TEwgTElHQVRVUkUgRkkKLSsgICAgICAgIDB4ZmIwMjogdSdmbCcsICMgTEFUSU4gU01BTEwgTElH QVRVUkUgRkwKLSsgICAgICAgIDB4ZmIwMzogdSdmZmknLCAjIExBVElOIFNNQUxMIExJR0FUVVJF IEZGSQotKyAgICAgICAgMHhmYjA0OiB1J2ZmbCcsICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZM Ci0gICAgIH0KLSAgICAgIyBVbmljb2RlIGNoYXJzIHRoYXQgYXJlIHJlY29nbml6ZWQgYnkgTGFU ZVgncyB1dGY4IGVuY29kaW5nCi0gICAgIHV0Zjhfc3VwcG9ydGVkX3VuaWNvZGUgPSB7Ci0tICAg ICAgICAweDAwQTA6IHVyJ34nLCAjIE5PLUJSRUFLIFNQQUNFCi0tICAgICAgICAweDAwQUI6IHVy J1xndWlsbGVtb3RsZWZ0e30nLCAjIExFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElP TiBNQVJLCi0tICAgICAgICAweDAwYmI6IHVyJ1xndWlsbGVtb3RyaWdodHt9JywgIyBSSUdIVC1Q T0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKLS0gICAgICAgIDB4MjAwQzogdXIn XHRleHRjb21wd29yZG1hcmt7fScsICMgWkVSTyBXSURUSCBOT04tSk9JTkVSCi0tICAgICAgICAw eDIwMTM6IHVyJ1x0ZXh0ZW5kYXNoe30nLAotLSAgICAgICAgMHgyMDE0OiB1cidcdGV4dGVtZGFz aHt9JywKLS0gICAgICAgIDB4MjAxODogdXInXHRleHRxdW90ZWxlZnR7fScsCi0tICAgICAgICAw eDIwMTk6IHVyJ1x0ZXh0cXVvdGVyaWdodHt9JywKLS0gICAgICAgIDB4MjAxQTogdXInXHF1b3Rl c2luZ2xiYXNle30nLCAjIFNJTkdMRSBMT1ctOSBRVU9UQVRJT04gTUFSSwotLSAgICAgICAgMHgy MDFDOiB1cidcdGV4dHF1b3RlZGJsbGVmdHt9JywKLS0gICAgICAgIDB4MjAxRDogdXInXHRleHRx dW90ZWRibHJpZ2h0e30nLAotLSAgICAgICAgMHgyMDFFOiB1cidccXVvdGVkYmxiYXNle30nLCAj IERPVUJMRSBMT1ctOSBRVU9UQVRJT04gTUFSSwotLSAgICAgICAgMHgyMDMwOiB1cidcdGV4dHBl cnRob3VzYW5ke30nLCAgICMgUEVSIE1JTExFIFNJR04KLS0gICAgICAgIDB4MjAzMTogdXInXHRl eHRwZXJ0ZW50aG91c2FuZHt9JywgIyBQRVIgVEVOIFRIT1VTQU5EIFNJR04KLS0gICAgICAgIDB4 MjAzOTogdXInXGd1aWxzaW5nbGxlZnR7fScsCi0tICAgICAgICAweDIwM0E6IHVyJ1xndWlsc2lu Z2xyaWdodHt9JywKLS0gICAgICAgIDB4MjQyMzogdXInXHRleHR2aXNpYmxlc3BhY2V7fScsICAj IE9QRU4gQk9YCi0tICAgICAgICAweDIwMjA6IHVyJ1xkYWd7fScsCi0tICAgICAgICAweDIwMjE6 IHVyJ1xkZGFne30nLAotLSAgICAgICAgMHgyMDI2OiB1cidcZG90c3t9JywKLS0gICAgICAgIDB4 MjEyMjogdXInXHRleHR0cmFkZW1hcmt7fScsCi0rICAgICAgICAweDAwQTA6IHUnficsICMgTk8t QlJFQUsgU1BBQ0UKLSsgICAgICAgIDB4MDBBQjogdSdcXGd1aWxsZW1vdGxlZnR7fScsICMgTEVG VC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKLSsgICAgICAgIDB4MDBiYjog dSdcXGd1aWxsZW1vdHJpZ2h0e30nLCAjIFJJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9U QVRJT04gTUFSSwotKyAgICAgICAgMHgyMDBDOiB1J1xcdGV4dGNvbXB3b3JkbWFya3t9JywgIyBa RVJPIFdJRFRIIE5PTi1KT0lORVIKLSsgICAgICAgIDB4MjAxMzogdSdcXHRleHRlbmRhc2h7fScs Ci0rICAgICAgICAweDIwMTQ6IHUnXFx0ZXh0ZW1kYXNoe30nLAotKyAgICAgICAgMHgyMDE4OiB1 J1xcdGV4dHF1b3RlbGVmdHt9JywKLSsgICAgICAgIDB4MjAxOTogdSdcXHRleHRxdW90ZXJpZ2h0 e30nLAotKyAgICAgICAgMHgyMDFBOiB1J1xccXVvdGVzaW5nbGJhc2V7fScsICMgU0lOR0xFIExP Vy05IFFVT1RBVElPTiBNQVJLCi0rICAgICAgICAweDIwMUM6IHUnXFx0ZXh0cXVvdGVkYmxsZWZ0 e30nLAotKyAgICAgICAgMHgyMDFEOiB1J1xcdGV4dHF1b3RlZGJscmlnaHR7fScsCi0rICAgICAg ICAweDIwMUU6IHUnXFxxdW90ZWRibGJhc2V7fScsICMgRE9VQkxFIExPVy05IFFVT1RBVElPTiBN QVJLCi0rICAgICAgICAweDIwMzA6IHUnXFx0ZXh0cGVydGhvdXNhbmR7fScsICAgIyBQRVIgTUlM TEUgU0lHTgotKyAgICAgICAgMHgyMDMxOiB1J1xcdGV4dHBlcnRlbnRob3VzYW5ke30nLCAjIFBF UiBURU4gVEhPVVNBTkQgU0lHTgotKyAgICAgICAgMHgyMDM5OiB1J1xcZ3VpbHNpbmdsbGVmdHt9 JywKLSsgICAgICAgIDB4MjAzQTogdSdcXGd1aWxzaW5nbHJpZ2h0e30nLAotKyAgICAgICAgMHgy NDIzOiB1J1xcdGV4dHZpc2libGVzcGFjZXt9JywgICMgT1BFTiBCT1gKLSsgICAgICAgIDB4MjAy MDogdSdcXGRhZ3t9JywKLSsgICAgICAgIDB4MjAyMTogdSdcXGRkYWd7fScsCi0rICAgICAgICAw eDIwMjY6IHUnXFxkb3Rze30nLAotKyAgICAgICAgMHgyMTIyOiB1J1xcdGV4dHRyYWRlbWFya3t9 JywKLSAgICAgfQotICAgICAjIHJlY29nbml6ZWQgd2l0aCAndXRmOCcsIGlmIHRleHRjb21wIGlz IGxvYWRlZAotICAgICB0ZXh0Y29tcCA9IHsKLSAgICAgICAgICMgTGF0aW4tMSBTdXBwbGVtZW50 Ci0tICAgICAgICAweDAwYTI6IHVyJ1x0ZXh0Y2VudHt9JywgICAgICAgICAgIyDCoiBDRU5UIFNJ R04KLS0gICAgICAgIDB4MDBhNDogdXInXHRleHRjdXJyZW5jeXt9JywgICAgICAjIMKkIENVUlJF TkNZIFNZTUJPTAotLSAgICAgICAgMHgwMGE1OiB1cidcdGV4dHllbnt9JywgICAgICAgICAgICMg wqUgWUVOIFNJR04KLS0gICAgICAgIDB4MDBhNjogdXInXHRleHRicm9rZW5iYXJ7fScsICAgICAj IMKmIEJST0tFTiBCQVIKLS0gICAgICAgIDB4MDBhNzogdXInXHRleHRzZWN0aW9ue30nLCAgICAg ICAjIMKnIFNFQ1RJT04gU0lHTgotLSAgICAgICAgMHgwMGE4OiB1cidcdGV4dGFzY2lpZGllcmVz aXN7fScsICMgwqggRElBRVJFU0lTCi0tICAgICAgICAweDAwYTk6IHVyJ1x0ZXh0Y29weXJpZ2h0 e30nLCAgICAgIyDCqSBDT1BZUklHSFQgU0lHTgotLSAgICAgICAgMHgwMGFhOiB1cidcdGV4dG9y ZGZlbWluaW5le30nLCAgICMgwqogRkVNSU5JTkUgT1JESU5BTCBJTkRJQ0FUT1IKLS0gICAgICAg IDB4MDBhYzogdXInXHRleHRsbm90e30nLCAgICAgICAgICAjIMKsIE5PVCBTSUdOCi0tICAgICAg ICAweDAwYWU6IHVyJ1x0ZXh0cmVnaXN0ZXJlZHt9JywgICAgIyDCriBSRUdJU1RFUkVEIFNJR04K LS0gICAgICAgIDB4MDBhZjogdXInXHRleHRhc2NpaW1hY3Jvbnt9JywgICAjIMKvIE1BQ1JPTgot LSAgICAgICAgMHgwMGIwOiB1cidcdGV4dGRlZ3JlZXt9JywgICAgICAgICMgwrAgREVHUkVFIFNJ R04KLS0gICAgICAgIDB4MDBiMTogdXInXHRleHRwbXt9JywgICAgICAgICAgICAjIMKxIFBMVVMt TUlOVVMgU0lHTgotLSAgICAgICAgMHgwMGIyOiB1cidcdGV4dHR3b3N1cGVyaW9ye30nLCAgICMg wrIgU1VQRVJTQ1JJUFQgVFdPCi0tICAgICAgICAweDAwYjM6IHVyJ1x0ZXh0dGhyZWVzdXBlcmlv cnt9JywgIyDCsyBTVVBFUlNDUklQVCBUSFJFRQotLSAgICAgICAgMHgwMGI0OiB1cidcdGV4dGFz Y2lpYWN1dGV7fScsICAgICMgwrQgQUNVVEUgQUNDRU5UCi0tICAgICAgICAweDAwYjU6IHVyJ1x0 ZXh0bXV7fScsICAgICAgICAgICAgIyDCtSBNSUNSTyBTSUdOCi0tICAgICAgICAweDAwYjY6IHVy J1x0ZXh0cGFyYWdyYXBoe30nLCAgICAgIyDCtiBQSUxDUk9XIFNJR04gIyAhPSBcdGV4dHBpbGNy b3cKLS0gICAgICAgIDB4MDBiOTogdXInXHRleHRvbmVzdXBlcmlvcnt9JywgICAjIMK5IFNVUEVS U0NSSVBUIE9ORQotLSAgICAgICAgMHgwMGJhOiB1cidcdGV4dG9yZG1hc2N1bGluZXt9JywgICMg wrogTUFTQ1VMSU5FIE9SRElOQUwgSU5ESUNBVE9SCi0tICAgICAgICAweDAwYmM6IHVyJ1x0ZXh0 b25lcXVhcnRlcnt9JywgICAgIyAxLzQgRlJBQ1RJT04KLS0gICAgICAgIDB4MDBiZDogdXInXHRl eHRvbmVoYWxme30nLCAgICAgICAjIDEvMiBGUkFDVElPTgotLSAgICAgICAgMHgwMGJlOiB1cidc dGV4dHRocmVlcXVhcnRlcnN7fScsICMgMy80IEZSQUNUSU9OCi0tICAgICAgICAweDAwZDc6IHVy J1x0ZXh0dGltZXN7fScsICAgICAgICAgIyDDlyBNVUxUSVBMSUNBVElPTiBTSUdOCi0tICAgICAg ICAweDAwZjc6IHVyJ1x0ZXh0ZGl2e30nLCAgICAgICAgICAgIyDDtyBESVZJU0lPTiBTSUdOCi0r ICAgICAgICAweDAwYTI6IHUnXFx0ZXh0Y2VudHt9JywgICAgICAgICAgIyDCoiBDRU5UIFNJR04K LSsgICAgICAgIDB4MDBhNDogdSdcXHRleHRjdXJyZW5jeXt9JywgICAgICAjIMKkIENVUlJFTkNZ IFNZTUJPTAotKyAgICAgICAgMHgwMGE1OiB1J1xcdGV4dHllbnt9JywgICAgICAgICAgICMgwqUg WUVOIFNJR04KLSsgICAgICAgIDB4MDBhNjogdSdcXHRleHRicm9rZW5iYXJ7fScsICAgICAjIMKm IEJST0tFTiBCQVIKLSsgICAgICAgIDB4MDBhNzogdSdcXHRleHRzZWN0aW9ue30nLCAgICAgICAj IMKnIFNFQ1RJT04gU0lHTgotKyAgICAgICAgMHgwMGE4OiB1J1xcdGV4dGFzY2lpZGllcmVzaXN7 fScsICMgwqggRElBRVJFU0lTCi0rICAgICAgICAweDAwYTk6IHUnXFx0ZXh0Y29weXJpZ2h0e30n LCAgICAgIyDCqSBDT1BZUklHSFQgU0lHTgotKyAgICAgICAgMHgwMGFhOiB1J1xcdGV4dG9yZGZl bWluaW5le30nLCAgICMgwqogRkVNSU5JTkUgT1JESU5BTCBJTkRJQ0FUT1IKLSsgICAgICAgIDB4 MDBhYzogdSdcXHRleHRsbm90e30nLCAgICAgICAgICAjIMKsIE5PVCBTSUdOCi0rICAgICAgICAw eDAwYWU6IHUnXFx0ZXh0cmVnaXN0ZXJlZHt9JywgICAgIyDCriBSRUdJU1RFUkVEIFNJR04KLSsg ICAgICAgIDB4MDBhZjogdSdcXHRleHRhc2NpaW1hY3Jvbnt9JywgICAjIMKvIE1BQ1JPTgotKyAg ICAgICAgMHgwMGIwOiB1J1xcdGV4dGRlZ3JlZXt9JywgICAgICAgICMgwrAgREVHUkVFIFNJR04K LSsgICAgICAgIDB4MDBiMTogdSdcXHRleHRwbXt9JywgICAgICAgICAgICAjIMKxIFBMVVMtTUlO VVMgU0lHTgotKyAgICAgICAgMHgwMGIyOiB1J1xcdGV4dHR3b3N1cGVyaW9ye30nLCAgICMgwrIg U1VQRVJTQ1JJUFQgVFdPCi0rICAgICAgICAweDAwYjM6IHUnXFx0ZXh0dGhyZWVzdXBlcmlvcnt9 JywgIyDCsyBTVVBFUlNDUklQVCBUSFJFRQotKyAgICAgICAgMHgwMGI0OiB1J1xcdGV4dGFzY2lp YWN1dGV7fScsICAgICMgwrQgQUNVVEUgQUNDRU5UCi0rICAgICAgICAweDAwYjU6IHUnXFx0ZXh0 bXV7fScsICAgICAgICAgICAgIyDCtSBNSUNSTyBTSUdOCi0rICAgICAgICAweDAwYjY6IHUnXFx0 ZXh0cGFyYWdyYXBoe30nLCAgICAgIyDCtiBQSUxDUk9XIFNJR04gIyAhPSBcdGV4dHBpbGNyb3cK LSsgICAgICAgIDB4MDBiOTogdSdcXHRleHRvbmVzdXBlcmlvcnt9JywgICAjIMK5IFNVUEVSU0NS SVBUIE9ORQotKyAgICAgICAgMHgwMGJhOiB1J1xcdGV4dG9yZG1hc2N1bGluZXt9JywgICMgwrog TUFTQ1VMSU5FIE9SRElOQUwgSU5ESUNBVE9SCi0rICAgICAgICAweDAwYmM6IHUnXFx0ZXh0b25l cXVhcnRlcnt9JywgICAgIyAxLzQgRlJBQ1RJT04KLSsgICAgICAgIDB4MDBiZDogdSdcXHRleHRv bmVoYWxme30nLCAgICAgICAjIDEvMiBGUkFDVElPTgotKyAgICAgICAgMHgwMGJlOiB1J1xcdGV4 dHRocmVlcXVhcnRlcnN7fScsICMgMy80IEZSQUNUSU9OCi0rICAgICAgICAweDAwZDc6IHUnXFx0 ZXh0dGltZXN7fScsICAgICAgICAgIyDDlyBNVUxUSVBMSUNBVElPTiBTSUdOCi0rICAgICAgICAw eDAwZjc6IHUnXFx0ZXh0ZGl2e30nLCAgICAgICAgICAgIyDDtyBESVZJU0lPTiBTSUdOCi0gICAg ICAgICAjIG90aGVycwotLSAgICAgICAgMHgwMTkyOiB1cidcdGV4dGZsb3Jpbnt9JywgICAgICAg ICMgTEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBIT09LCi0tICAgICAgICAweDAyYjk6IHVyJ1x0 ZXh0YXNjaWlhY3V0ZXt9JywgICAgIyBNT0RJRklFUiBMRVRURVIgUFJJTUUKLS0gICAgICAgIDB4 MDJiYTogdXInXHRleHRhY3V0ZWRibHt9JywgICAgICAjIE1PRElGSUVSIExFVFRFUiBET1VCTEUg UFJJTUUKLS0gICAgICAgIDB4MjAxNjogdXInXHRleHRiYXJkYmx7fScsICAgICAgICAjIERPVUJM RSBWRVJUSUNBTCBMSU5FCi0tICAgICAgICAweDIwMjI6IHVyJ1x0ZXh0YnVsbGV0e30nLCAgICAg ICAgIyBCVUxMRVQKLS0gICAgICAgIDB4MjAzMjogdXInXHRleHRhc2NpaWFjdXRle30nLCAgICAj IFBSSU1FCi0tICAgICAgICAweDIwMzM6IHVyJ1x0ZXh0YWN1dGVkYmx7fScsICAgICAgIyBET1VC TEUgUFJJTUUKLS0gICAgICAgIDB4MjAzNTogdXInXHRleHRhc2NpaWdyYXZle30nLCAgICAjIFJF VkVSU0VEIFBSSU1FCi0tICAgICAgICAweDIwMzY6IHVyJ1x0ZXh0Z3JhdmVkYmx7fScsICAgICAg IyBSRVZFUlNFRCBET1VCTEUgUFJJTUUKLS0gICAgICAgIDB4MjAzYjogdXInXHRleHRyZWZlcmVu Y2VtYXJre30nLCAjIFJFRkVSRU5DRSBNQVJLCi0tICAgICAgICAweDIwM2Q6IHVyJ1x0ZXh0aW50 ZXJyb2Jhbmd7fScsICAgIyBJTlRFUlJPQkFORwotLSAgICAgICAgMHgyMDQ0OiB1cidcdGV4dGZy YWN0aW9uc29saWR1c3t9JywgIyBGUkFDVElPTiBTTEFTSAotLSAgICAgICAgMHgyMDQ1OiB1cidc dGV4dGxxdWlsbHt9JywgICAgICAgICMgTEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMCi0t ICAgICAgICAweDIwNDY6IHVyJ1x0ZXh0cnF1aWxse30nLCAgICAgICAgIyBSSUdIVCBTUVVBUkUg QlJBQ0tFVCBXSVRIIFFVSUxMCi0tICAgICAgICAweDIwNTI6IHVyJ1x0ZXh0ZGlzY291bnR7fScs ICAgICAgIyBDT01NRVJDSUFMIE1JTlVTIFNJR04KLS0gICAgICAgIDB4MjBhMTogdXInXHRleHRj b2xvbm1vbmV0YXJ5e30nLCAjIENPTE9OIFNJR04KLS0gICAgICAgIDB4MjBhMzogdXInXHRleHRm cmVuY2hmcmFuY3t9JywgICAjIEZSRU5DSCBGUkFOQyBTSUdOCi0tICAgICAgICAweDIwYTQ6IHVy J1x0ZXh0bGlyYXt9JywgICAgICAgICAgIyBMSVJBIFNJR04KLS0gICAgICAgIDB4MjBhNjogdXIn XHRleHRuYWlyYXt9JywgICAgICAgICAjIE5BSVJBIFNJR04KLS0gICAgICAgIDB4MjBhOTogdXIn XHRleHR3b257fScsICAgICAgICAgICAjIFdPTiBTSUdOCi0tICAgICAgICAweDIwYWI6IHVyJ1x0 ZXh0ZG9uZ3t9JywgICAgICAgICAgIyBET05HIFNJR04KLS0gICAgICAgIDB4MjBhYzogdXInXHRl eHRldXJve30nLCAgICAgICAgICAjIEVVUk8gU0lHTgotLSAgICAgICAgMHgyMGIxOiB1cidcdGV4 dHBlc297fScsICAgICAgICAgICMgUEVTTyBTSUdOCi0tICAgICAgICAweDIwYjI6IHVyJ1x0ZXh0 Z3VhcmFuaXt9JywgICAgICAgIyBHVUFSQU5JIFNJR04KLS0gICAgICAgIDB4MjEwMzogdXInXHRl eHRjZWxzaXVze30nLCAgICAgICAjIERFR1JFRSBDRUxTSVVTCi0tICAgICAgICAweDIxMTY6IHVy J1x0ZXh0bnVtZXJve30nLCAgICAgICAgIyBOVU1FUk8gU0lHTgotLSAgICAgICAgMHgyMTE3OiB1 cidcdGV4dGNpcmNsZWRQe30nLCAgICAgICMgU09VTkQgUkVDT1JESU5HIENPWVJJR0hUCi0tICAg ICAgICAweDIxMWU6IHVyJ1x0ZXh0cmVjaXBle30nLCAgICAgICAgIyBQUkVTQ1JJUFRJT04gVEFL RQotLSAgICAgICAgMHgyMTIwOiB1cidcdGV4dHNlcnZpY2VtYXJre30nLCAgICMgU0VSVklDRSBN QVJLCi0tICAgICAgICAweDIxMjI6IHVyJ1x0ZXh0dHJhZGVtYXJre30nLCAgICAgIyBUUkFERSBN QVJLIFNJR04KLS0gICAgICAgIDB4MjEyNjogdXInXHRleHRvaG17fScsICAgICAgICAgICAjIE9I TSBTSUdOCi0tICAgICAgICAweDIxMjc6IHVyJ1x0ZXh0bWhve30nLCAgICAgICAgICAgIyBJTlZF UlRFRCBPSE0gU0lHTgotLSAgICAgICAgMHgyMTJlOiB1cidcdGV4dGVzdGltYXRlZHt9JywgICAg ICMgRVNUSU1BVEVEIFNZTUJPTAotLSAgICAgICAgMHgyMTkwOiB1cidcdGV4dGxlZnRhcnJvd3t9 JywgICAgICMgTEVGVFdBUkRTIEFSUk9XCi0tICAgICAgICAweDIxOTE6IHVyJ1x0ZXh0dXBhcnJv d3t9JywgICAgICAgIyBVUFdBUkRTIEFSUk9XCi0tICAgICAgICAweDIxOTI6IHVyJ1x0ZXh0cmln aHRhcnJvd3t9JywgICAgIyBSSUdIVFdBUkRTIEFSUk9XCi0tICAgICAgICAweDIxOTM6IHVyJ1x0 ZXh0ZG93bmFycm93e30nLCAgICAgIyBET1dOV0FSRFMgQVJST1cKLS0gICAgICAgIDB4MjIxMjog dXInXHRleHRtaW51c3t9JywgICAgICAgICAjIE1JTlVTIFNJR04KLS0gICAgICAgIDB4MjIxNzog dXInXHRleHRhc3Rlcmlza2NlbnRlcmVke30nLCAjIEFTVEVSSVNLIE9QRVJBVE9SCi0tICAgICAg ICAweDIyMWE6IHVyJ1x0ZXh0c3VyZHt9JywgICAgICAgICAgIyBTUVVBUkUgUk9PVAotLSAgICAg ICAgMHgyNDIyOiB1cidcdGV4dGJsYW5re30nLCAgICAgICAgICMgQkxBTksgU1lNQk9MCi0tICAg ICAgICAweDI1ZTY6IHVyJ1x0ZXh0b3BlbmJ1bGxldHt9JywgICAgIyBXSElURSBCVUxMRVQKLS0g ICAgICAgIDB4MjVlZjogdXInXHRleHRiaWdjaXJjbGV7fScsICAgICAjIExBUkdFIENJUkNMRQot LSAgICAgICAgMHgyNjZhOiB1cidcdGV4dG11c2ljYWxub3Rle30nLCAgICMgRUlHSFRIIE5PVEUK LS0gICAgICAgIDB4MjZhZDogdXInXHRleHRtYXJyaWVke30nLCAgICAgICAjIE1BUlJJQUdFIFNZ TUJPTAotLSAgICAgICAgMHgyNmFlOiB1cidcdGV4dGRpdm9yY2Vke30nLCAgICAgICMgRElWT1JD RSBTWU1CT0wKLS0gICAgICAgIDB4MjdlODogdXInXHRleHRsYW5nbGV7fScsICAgICAgICAjIE1B VEhFTUFUSUNBTCBMRUZUIEFOR0xFIEJSQUNLRVQKLS0gICAgICAgIDB4MjdlOTogdXInXHRleHRy YW5nbGV7fScsICAgICAgICAjIE1BVEhFTUFUSUNBTCBSSUdIVCBBTkdMRSBCUkFDS0VUCi0rICAg ICAgICAweDAxOTI6IHUnXFx0ZXh0Zmxvcmlue30nLCAgICAgICAgIyBMQVRJTiBTTUFMTCBMRVRU RVIgRiBXSVRIIEhPT0sKLSsgICAgICAgIDB4MDJiOTogdSdcXHRleHRhc2NpaWFjdXRle30nLCAg ICAjIE1PRElGSUVSIExFVFRFUiBQUklNRQotKyAgICAgICAgMHgwMmJhOiB1J1xcdGV4dGFjdXRl ZGJse30nLCAgICAgICMgTU9ESUZJRVIgTEVUVEVSIERPVUJMRSBQUklNRQotKyAgICAgICAgMHgy MDE2OiB1J1xcdGV4dGJhcmRibHt9JywgICAgICAgICMgRE9VQkxFIFZFUlRJQ0FMIExJTkUKLSsg ICAgICAgIDB4MjAyMjogdSdcXHRleHRidWxsZXR7fScsICAgICAgICAjIEJVTExFVAotKyAgICAg ICAgMHgyMDMyOiB1J1xcdGV4dGFzY2lpYWN1dGV7fScsICAgICMgUFJJTUUKLSsgICAgICAgIDB4 MjAzMzogdSdcXHRleHRhY3V0ZWRibHt9JywgICAgICAjIERPVUJMRSBQUklNRQotKyAgICAgICAg MHgyMDM1OiB1J1xcdGV4dGFzY2lpZ3JhdmV7fScsICAgICMgUkVWRVJTRUQgUFJJTUUKLSsgICAg ICAgIDB4MjAzNjogdSdcXHRleHRncmF2ZWRibHt9JywgICAgICAjIFJFVkVSU0VEIERPVUJMRSBQ UklNRQotKyAgICAgICAgMHgyMDNiOiB1J1xcdGV4dHJlZmVyZW5jZW1hcmt7fScsICMgUkVGRVJF TkNFIE1BUksKLSsgICAgICAgIDB4MjAzZDogdSdcXHRleHRpbnRlcnJvYmFuZ3t9JywgICAjIElO VEVSUk9CQU5HCi0rICAgICAgICAweDIwNDQ6IHUnXFx0ZXh0ZnJhY3Rpb25zb2xpZHVze30nLCAj IEZSQUNUSU9OIFNMQVNICi0rICAgICAgICAweDIwNDU6IHUnXFx0ZXh0bHF1aWxse30nLCAgICAg ICAgIyBMRUZUIFNRVUFSRSBCUkFDS0VUIFdJVEggUVVJTEwKLSsgICAgICAgIDB4MjA0NjogdSdc XHRleHRycXVpbGx7fScsICAgICAgICAjIFJJR0hUIFNRVUFSRSBCUkFDS0VUIFdJVEggUVVJTEwK LSsgICAgICAgIDB4MjA1MjogdSdcXHRleHRkaXNjb3VudHt9JywgICAgICAjIENPTU1FUkNJQUwg TUlOVVMgU0lHTgotKyAgICAgICAgMHgyMGExOiB1J1xcdGV4dGNvbG9ubW9uZXRhcnl7fScsICMg Q09MT04gU0lHTgotKyAgICAgICAgMHgyMGEzOiB1J1xcdGV4dGZyZW5jaGZyYW5je30nLCAgICMg RlJFTkNIIEZSQU5DIFNJR04KLSsgICAgICAgIDB4MjBhNDogdSdcXHRleHRsaXJhe30nLCAgICAg ICAgICAjIExJUkEgU0lHTgotKyAgICAgICAgMHgyMGE2OiB1J1xcdGV4dG5haXJhe30nLCAgICAg ICAgICMgTkFJUkEgU0lHTgotKyAgICAgICAgMHgyMGE5OiB1J1xcdGV4dHdvbnt9JywgICAgICAg ICAgICMgV09OIFNJR04KLSsgICAgICAgIDB4MjBhYjogdSdcXHRleHRkb25ne30nLCAgICAgICAg ICAjIERPTkcgU0lHTgotKyAgICAgICAgMHgyMGFjOiB1J1xcdGV4dGV1cm97fScsICAgICAgICAg ICMgRVVSTyBTSUdOCi0rICAgICAgICAweDIwYjE6IHUnXFx0ZXh0cGVzb3t9JywgICAgICAgICAg IyBQRVNPIFNJR04KLSsgICAgICAgIDB4MjBiMjogdSdcXHRleHRndWFyYW5pe30nLCAgICAgICAj IEdVQVJBTkkgU0lHTgotKyAgICAgICAgMHgyMTAzOiB1J1xcdGV4dGNlbHNpdXN7fScsICAgICAg ICMgREVHUkVFIENFTFNJVVMKLSsgICAgICAgIDB4MjExNjogdSdcXHRleHRudW1lcm97fScsICAg ICAgICAjIE5VTUVSTyBTSUdOCi0rICAgICAgICAweDIxMTc6IHUnXFx0ZXh0Y2lyY2xlZFB7fScs ICAgICAgIyBTT1VORCBSRUNPUkRJTkcgQ09ZUklHSFQKLSsgICAgICAgIDB4MjExZTogdSdcXHRl eHRyZWNpcGV7fScsICAgICAgICAjIFBSRVNDUklQVElPTiBUQUtFCi0rICAgICAgICAweDIxMjA6 IHUnXFx0ZXh0c2VydmljZW1hcmt7fScsICAgIyBTRVJWSUNFIE1BUksKLSsgICAgICAgIDB4MjEy MjogdSdcXHRleHR0cmFkZW1hcmt7fScsICAgICAjIFRSQURFIE1BUksgU0lHTgotKyAgICAgICAg MHgyMTI2OiB1J1xcdGV4dG9obXt9JywgICAgICAgICAgICMgT0hNIFNJR04KLSsgICAgICAgIDB4 MjEyNzogdSdcXHRleHRtaG97fScsICAgICAgICAgICAjIElOVkVSVEVEIE9ITSBTSUdOCi0rICAg ICAgICAweDIxMmU6IHUnXFx0ZXh0ZXN0aW1hdGVke30nLCAgICAgIyBFU1RJTUFURUQgU1lNQk9M Ci0rICAgICAgICAweDIxOTA6IHUnXFx0ZXh0bGVmdGFycm93e30nLCAgICAgIyBMRUZUV0FSRFMg QVJST1cKLSsgICAgICAgIDB4MjE5MTogdSdcXHRleHR1cGFycm93e30nLCAgICAgICAjIFVQV0FS RFMgQVJST1cKLSsgICAgICAgIDB4MjE5MjogdSdcXHRleHRyaWdodGFycm93e30nLCAgICAjIFJJ R0hUV0FSRFMgQVJST1cKLSsgICAgICAgIDB4MjE5MzogdSdcXHRleHRkb3duYXJyb3d7fScsICAg ICAjIERPV05XQVJEUyBBUlJPVwotKyAgICAgICAgMHgyMjEyOiB1J1xcdGV4dG1pbnVze30nLCAg ICAgICAgICMgTUlOVVMgU0lHTgotKyAgICAgICAgMHgyMjE3OiB1J1xcdGV4dGFzdGVyaXNrY2Vu dGVyZWR7fScsICMgQVNURVJJU0sgT1BFUkFUT1IKLSsgICAgICAgIDB4MjIxYTogdSdcXHRleHRz dXJke30nLCAgICAgICAgICAjIFNRVUFSRSBST09UCi0rICAgICAgICAweDI0MjI6IHUnXFx0ZXh0 Ymxhbmt7fScsICAgICAgICAgIyBCTEFOSyBTWU1CT0wKLSsgICAgICAgIDB4MjVlNjogdSdcXHRl eHRvcGVuYnVsbGV0e30nLCAgICAjIFdISVRFIEJVTExFVAotKyAgICAgICAgMHgyNWVmOiB1J1xc dGV4dGJpZ2NpcmNsZXt9JywgICAgICMgTEFSR0UgQ0lSQ0xFCi0rICAgICAgICAweDI2NmE6IHUn XFx0ZXh0bXVzaWNhbG5vdGV7fScsICAgIyBFSUdIVEggTk9URQotKyAgICAgICAgMHgyNmFkOiB1 J1xcdGV4dG1hcnJpZWR7fScsICAgICAgICMgTUFSUklBR0UgU1lNQk9MCi0rICAgICAgICAweDI2 YWU6IHUnXFx0ZXh0ZGl2b3JjZWR7fScsICAgICAgIyBESVZPUkNFIFNZTUJPTAotKyAgICAgICAg MHgyN2U4OiB1J1xcdGV4dGxhbmdsZXt9JywgICAgICAgICMgTUFUSEVNQVRJQ0FMIExFRlQgQU5H TEUgQlJBQ0tFVAotKyAgICAgICAgMHgyN2U5OiB1J1xcdGV4dHJhbmdsZXt9JywgICAgICAgICMg TUFUSEVNQVRJQ0FMIFJJR0hUIEFOR0xFIEJSQUNLRVQKLSAgICAgfQotICAgICAjIFVuaWNvZGUg Y2hhcnMgdGhhdCByZXF1aXJlIGEgZmVhdHVyZS9wYWNrYWdlIHRvIHJlbmRlcgotICAgICBwaWZv bnQgPSB7Ci0tICAgICAgICAweDI2NjU6IHVyJ1xkaW5nezE3MH0nLCAgICAgIyBibGFjayBoZWFy dHN1aXQKLS0gICAgICAgIDB4MjY2NjogdXInXGRpbmd7MTY5fScsICAgICAjIGJsYWNrIGRpYW1v bmRzdWl0Ci0tICAgICAgICAweDI3MTM6IHVyJ1xkaW5nezUxfScsICAgICAgIyBjaGVjayBtYXJr Ci0tICAgICAgICAweDI3MTc6IHVyJ1xkaW5nezU1fScsICAgICAgIyBjaGVjayBtYXJrCi0rICAg ICAgICAweDI2NjU6IHUnXFxkaW5nezE3MH0nLCAgICAgIyBibGFjayBoZWFydHN1aXQKLSsgICAg ICAgIDB4MjY2NjogdSdcXGRpbmd7MTY5fScsICAgICAjIGJsYWNrIGRpYW1vbmRzdWl0Ci0rICAg ICAgICAweDI3MTM6IHUnXFxkaW5nezUxfScsICAgICAgIyBjaGVjayBtYXJrCi0rICAgICAgICAw eDI3MTc6IHUnXFxkaW5nezU1fScsICAgICAgIyBjaGVjayBtYXJrCi0gICAgIH0KLSAgICAgIyBU T0RPOiBncmVlayBhbHBoYWJldCAuLi4gPwotICAgICAjIHNlZSBhbHNvIExhVGVYIGNvZGVjCi1A QCAtMTUxMSwxNCArMTUxMSwxNCBAQCBjbGFzcyBMYVRlWFRyYW5zbGF0b3Iobm9kZXMuTm9kZVZp c2l0b3IpOgotICAgICAgICAgICAgICAgICAjIHRoZSBiYWNrc2xhc2ggZG9lc24ndCB3b3JrLCBz byB3ZSB1c2UgYSBtaXJyb3JlZCBzbGFzaC4KLSAgICAgICAgICAgICAgICAgIyBccmVmbGVjdGJv eCBpcyBwcm92aWRlZCBieSBncmFwaGljeDoKLSAgICAgICAgICAgICAgICAgc2VsZi5yZXF1aXJl bWVudHNbJ2dyYXBoaWN4J10gPSBzZWxmLmdyYXBoaWN4X3BhY2thZ2UKLS0gICAgICAgICAgICAg ICAgdGFibGVbb3JkKCdcXCcpXSA9IHVyJ1xyZWZsZWN0Ym94ey99JwotKyAgICAgICAgICAgICAg ICB0YWJsZVtvcmQoJ1xcJyldID0gdSdcXHJlZmxlY3Rib3h7L30nCi0gICAgICAgICAgICAgIyAq IGBgPCB8ID5gYCBjb21lIG91dCBhcyBkaWZmZXJlbnQgY2hhcnMgKGV4Y2VwdCBmb3IgY210dCk6 Ci0gICAgICAgICAgICAgZWxzZToKLS0gICAgICAgICAgICAgICAgdGFibGVbb3JkKCd8JyldID0g dXInXHRleHRiYXJ7fScKLS0gICAgICAgICAgICAgICAgdGFibGVbb3JkKCc8JyldID0gdXInXHRl eHRsZXNze30nCi0tICAgICAgICAgICAgICAgIHRhYmxlW29yZCgnPicpXSA9IHVyJ1x0ZXh0Z3Jl YXRlcnt9JwotKyAgICAgICAgICAgICAgICB0YWJsZVtvcmQoJ3wnKV0gPSB1J1xcdGV4dGJhcnt9 JwotKyAgICAgICAgICAgICAgICB0YWJsZVtvcmQoJzwnKV0gPSB1J1xcdGV4dGxlc3N7fScKLSsg ICAgICAgICAgICAgICAgdGFibGVbb3JkKCc+JyldID0gdSdcXHRleHRncmVhdGVye30nCi0gICAg ICAgICBpZiBzZWxmLmluc2VydF9ub25fYnJlYWtpbmdfYmxhbmtzOgotLSAgICAgICAgICAgIHRh YmxlW29yZCgnICcpXSA9IHVyJ34nCi0rICAgICAgICAgICAgdGFibGVbb3JkKCcgJyldID0gdSd+ JwotICAgICAgICAgICAgICMgdGFiIGNoYXJzIG1heSBvY2N1ciBpbiBpbmNsdWRlZCBmaWxlcyAo bGl0ZXJhbCBvciBjb2RlKQotICAgICAgICAgICAgICMgcXVpY2stYW5kLWRpcnR5IHJlcGxhY2Vt ZW50IHdpdGggc3BhY2VzCi0gICAgICAgICAgICAgIyAoZm9yIGJldHRlciByZXN1bHRzIHVzZSBg LS1saXRlcmFsLWJsb2NrLWVudj1sc3RsaXN0aW5nYCkKLUBAIC0yNjE4LDcgKzI2MTgsNyBAQCBj bGFzcyBMYVRlWFRyYW5zbGF0b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAgIG1h dGhfY29kZSA9ICdcbicuam9pbihbbWF0aF9jb2RlXSArIHNlbGYuaWRzX3RvX2xhYmVscyhub2Rl KSkKLSAgICAgICAgIGlmIG1hdGhfZW52ID09ICckJzoKLSAgICAgICAgICAgICBpZiBzZWxmLmFs bHR0OgotLSAgICAgICAgICAgICAgICB3cmFwcGVyID0gdXInXCglc1wpJwotKyAgICAgICAgICAg ICAgICB3cmFwcGVyID0gdSdcXCglc1xcKScKLSAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg ICAgICAgICB3cmFwcGVyID0gdSckJXMkJwotICAgICAgICAgZWxzZToKLUBAIC0yNzY5LDkgKzI3 NjksOSBAQCBjbGFzcyBMYVRlWFRyYW5zbGF0b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotIAotICAg ICBkZWYgdmlzaXRfcmVmZXJlbmNlKHNlbGYsIG5vZGUpOgotICAgICAgICAgIyBXZSBuZWVkIHRv IGVzY2FwZSAjLCBcLCBhbmQgJSBpZiB3ZSB1c2UgdGhlIFVSTCBpbiBhIGNvbW1hbmQuCi0tICAg ICAgICBzcGVjaWFsX2NoYXJzID0ge29yZCgnIycpOiB1cidcIycsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgIG9yZCgnJScpOiB1cidcJScsCi0tICAgICAgICAgICAgICAgICAgICAgICAgIG9y ZCgnXFwnKTogdXInXFwnLAotKyAgICAgICAgc3BlY2lhbF9jaGFycyA9IHtvcmQoJyMnKTogdSdc XCMnLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBvcmQoJyUnKTogdSdcXCUnLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICBvcmQoJ1xcJyk6IHUnXFxcXCcsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgIyBleHRlcm5hbCByZWZlcmVuY2UgKFVSTCkKLSAgICAgICAg IGlmICdyZWZ1cmknIGluIG5vZGU6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9tYW5w YWdlLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5Ci1pbmRleCA4YmIwMjVjLi5lZDE2 M2RlIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5Ci0rKysgYi9kb2N1 dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLUBAIC0yODQsMTAgKzI4NCwxMCBAQCBjbGFzcyBUcmFu c2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAgIHRleHQgPSBub2RlLmFzdGV4dCgp Ci0gICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCdcXCcsJ1xcZScpCi0gICAgICAgICByZXBs YWNlX3BhaXJzID0gWwotLSAgICAgICAgICAgICh1Jy0nLCB1cidcLScpLAotLSAgICAgICAgICAg ICh1J1wnJywgdXInXChhcScpLAotLSAgICAgICAgICAgICh1J8K0JywgdXInXCcnKSwKLS0gICAg ICAgICAgICAodSdgJywgdXInXChnYScpLAotKyAgICAgICAgICAgICh1Jy0nLCB1J1xcLScpLAot KyAgICAgICAgICAgICh1J1wnJywgdSdcXChhcScpLAotKyAgICAgICAgICAgICh1J8K0JywgdSJc XCciKSwKLSsgICAgICAgICAgICAodSdgJywgdSdcXChnYScpLAotICAgICAgICAgICAgIF0KLSAg ICAgICAgIGZvciAoaW5fY2hhciwgb3V0X21hcmt1cCkgaW4gcmVwbGFjZV9wYWlyczoKLSAgICAg ICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKGluX2NoYXIsIG91dF9tYXJrdXApCi1kaWZmIC0t Z2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9lYXN0X2FzaWFuX3RleHQucHkg Yi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Vhc3RfYXNpYW5fdGV4dC5weQotaW5k ZXggZDgxOWVmOC4uYTEzYzk2OSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfZWFzdF9hc2lhbl90ZXh0LnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2Vhc3RfYXNpYW5fdGV4dC5weQotQEAgLTUwLDEyICs1MCwxMiBAQCB1IiIiXAot ICAgICAgICAgICAgICAgICDjgr/jgqTjg4jjg6syCi0gICAgICAgICAgICAgICAgID09PT09PT09 Ci0gIiIiXSwKLS1bdXIiIiIKLStbdSIiIgotICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLSB8 ICog44OS44On44KmOuODgOOCpDHjgq7jg6fjgqYgIHwKLSB8ICog44OA44KkMuOCruODp+OCpiAg ICAgICAgIHwKLSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0tfCBcKiDjg4DjgqQx44Ku44On 44KmICAgICAgICB8Ci0rfCBcXCog44OA44KkMeOCruODp+OCpiAgICAgICAgfAotIHwgKiDjg4Dj gqQy44Ku44On44KmICAgICAgICAgfAotICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLSAiIiIs Ci1kaWZmIC0tZ2l0IGEvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5IGIv dG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5Ci1pbmRleCBmYmI3MmMwLi5j ZmU5N2RmIDEwMDY0NAotLS0tIGEvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJz LnB5Ci0rKysgYi90b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkKLUBAIC0z NzUsMTAgKzM3NSwxNiBAQCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotIAotICAgICAgICAg cHJpbnRfZGlmZmVyZW5jZXMob3BlbmVycywgbywgJ29wZW5lcnMnKQotICAgICAgICAgaWYgb193 aWRlOgotLSAgICAgICAgICAgIHByaW50KCcrIG9wZW5lcnMtd2lkZSA9IHVyIiIiJXMiIiInICUg b193aWRlLmVuY29kZSgndXRmOCcpKQotKyAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8g PCAoMywgMCk6Ci0rICAgICAgICAgICAgICAgIHByaW50KCcrIG9wZW5lcnMtd2lkZSA9IHVyIiIi JXMiIiInICUgb193aWRlLmVuY29kZSgndXRmOCcpKQotKyAgICAgICAgICAgIGVsc2U6Ci0rICAg ICAgICAgICAgICAgIHByaW50KCcrIG9wZW5lcnMtd2lkZSA9IHIiIiIlcyIiIicgJSBvX3dpZGUu ZW5jb2RlKCd1dGY4JykpCi0gICAgICAgICBwcmludF9kaWZmZXJlbmNlcyhjbG9zZXJzLCBjLCAn Y2xvc2VycycpCi0gICAgICAgICBpZiBjX3dpZGU6Ci0tICAgICAgICAgICAgcHJpbnQoJysgY2xv c2Vycy13aWRlID0gdXIiIiIlcyIiIicgJSBjX3dpZGUuZW5jb2RlKCd1dGY4JykpCi0rICAgICAg ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSsgICAgICAgICAgICAgICAgcHJp bnQoJysgY2xvc2Vycy13aWRlID0gdXIiIiIlcyIiIicgJSBjX3dpZGUuZW5jb2RlKCd1dGY4Jykp Ci0rICAgICAgICAgICAgZWxzZToKLSsgICAgICAgICAgICAgICAgcHJpbnQoJysgY2xvc2Vycy13 aWRlID0gciIiIiVzIiIiJyAlIGNfd2lkZS5lbmNvZGUoJ3V0ZjgnKSkKLSAKLSAgICAgICAgIHBy aW50X2RpZmZlcmVuY2VzKGRlbGltaXRlcnMsIGQgKyBkX3dpZGUsICdkZWxpbWl0ZXJzJykKLSAg ICAgICAgIHByaW50X2RpZmZlcmVuY2VzKGNsb3NpbmdfZGVsaW1pdGVycywgY2QsICdjbG9zaW5n X2RlbGltaXRlcnMnKQotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxOS1Gb3JtYXR0aW5nLWNoYW5nZXMt dG8tZmFjaWxpdGF0ZS1pbnRlZ3JhdGlvbi1vZi1weTMtLnBhdGNoIGIvc3JjcGtncy9weXRob24t ZG9jdXRpbHMvcGF0Y2hlcy8wMDE5LUZvcm1hdHRpbmctY2hhbmdlcy10by1mYWNpbGl0YXRlLWlu dGVncmF0aW9uLW9mLXB5My0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVh Y2Y2ZTkwZGJjLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRj aGVzLzAwMTktRm9ybWF0dGluZy1jaGFuZ2VzLXRvLWZhY2lsaXRhdGUtaW50ZWdyYXRpb24tb2Yt cHkzLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDkyMCArMCwwIEBACi1Gcm9tIDJlNmE2NWQ5 M2Q0NjE2ZjcwMmJiYzFmMGY1YjE4YzU2MmU0MDM5NTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IFdlZCwg MjAgTm92IDIwMTkgMDA6MDg6MzMgKzA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxOS8yNl0gRm9ybWF0 dGluZyBjaGFuZ2VzIHRvIGZhY2lsaXRhdGUgaW50ZWdyYXRpb24gb2YgInB5MyIKLSBwYXRjaHNl dC4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUv dHJ1bmtAODM2NyA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1v ZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0g ZG9jdXRpbHMvX2NvbXBhdC5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0g ZG9jdXRpbHMvY29yZS5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0g ZG9jdXRpbHMvZnJvbnRlbmQucHkgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0K LSBkb2N1dGlscy9pby5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysr KysrKysrLS0tLS0tLS0tCi0gZG9jdXRpbHMvbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEyICsrKysrKy0tLS0tLQotIGRvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2 ZXMvX19pbml0X18ucHkgICAgfCAgMiArLQotIGRvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2 ZXMvbWlzYy5weSAgICAgICAgfCAgNCArKy0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0 aXZlcy90YWJsZXMucHkgICAgICB8ICA0ICsrLS0KLSBkb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250 bWF0dGVyLnB5ICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZl cnNhbC5weSAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy91dGlscy9fX2luaXRfXy5w eSAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KLSBkb2N1dGlscy91dGlscy9lcnJv cl9yZXBvcnRpbmcucHkgICAgICAgICAgICAgIHwgIDQgKystLQotIGRvY3V0aWxzL3V0aWxzL21h dGgvbWF0aDJodG1sLnB5ICAgICAgICAgICAgICAgfCAgNiArKystLS0KLSBkb2N1dGlscy93cml0 ZXJzL19odG1sX2Jhc2UucHkgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy93cml0 ZXJzL2RvY3V0aWxzX3htbC5weSAgICAgICAgICAgICAgIHwgIDQgKystLQotIGRvY3V0aWxzL3dy aXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weSAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3dy aXRlcnMvbWFucGFnZS5weSAgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3dy aXRlcnMvb2RmX29kdC9fX2luaXRfXy5weSAgICAgICAgICAgfCAgNSArKystLQotIHNldHVwLnB5 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KLSB0ZXN0 L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tCi0g dGVzdC90ZXN0X19pbml0X18ucHkgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0g dGVzdC90ZXN0X2NvbW1hbmRfbGluZS5weSAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0g dGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weSAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0K LSB0ZXN0L3Rlc3RfZnVuY3Rpb25hbC5weSAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysr Ky0tLS0KLSB0ZXN0L3Rlc3RfaW8ucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDggKysrKy0tLS0KLSB0ZXN0L3Rlc3RfbGFuZ3VhZ2UucHkgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KLSB0ZXN0L3Rlc3Rfbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTYgKysrKysrKystLS0tLS0tLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcGFyc2Vy LnB5ICAgICAgICAgICAgICAgfCAgMiArLQotIC4uLi90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMv dGVzdF9pbmNsdWRlLnB5ICAgfCAgNCArKy0tCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3Jhdy5weSAgICAgICB8ICAyICstCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3RhYmxlcy5weSAgICB8ICAyICstCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3VuaWNvZGUucHkgICB8ICAyICstCi0gdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkg ICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KLSB0b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1 YXRpb25fY2hhcnMucHkgICAgICAgIHwgIDQgKystLQotIHRvb2xzL2Rldi91bmljb2RlMnJzdHN1 YnMucHkgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIDM2IGZpbGVzIGNoYW5nZWQsIDgyIGlu c2VydGlvbnMoKyksIDgxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvX2Nv bXBhdC5weSBiL2RvY3V0aWxzL19jb21wYXQucHkKLWluZGV4IGM5ZGU2MzMuLjFmZjk1OWMgMTAw NjQ0Ci0tLS0gYS9kb2N1dGlscy9fY29tcGF0LnB5Ci0rKysgYi9kb2N1dGlscy9fY29tcGF0LnB5 Ci1AQCAtMTQsNyArMTQsNyBAQCBUaGlzIG1vZHVsZSBjdXJyZW50bHkgcHJvdmlkZXMgdGhlIGZv bGxvd2luZyBoZWxwZXIgc3ltYm9sczoKLSAKLSBpbXBvcnQgc3lzCi0gCi0taWYgc3lzLnZlcnNp b25faW5mbyA8ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgIHVf cHJlZml4ID0gJ3UnCi0gICAgIGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPIGFzIEJ5dGVz SU8KLSBlbHNlOgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2NvcmUucHkgYi9kb2N1dGlscy9jb3Jl LnB5Ci1pbmRleCAxMmEwYzkzLi5kMGRiMDkzIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvY29yZS5w eQotKysrIGIvZG9jdXRpbHMvY29yZS5weQotQEAgLTE1NSw3ICsxNTUsNyBAQCBjbGFzcyBQdWJs aXNoZXIob2JqZWN0KToKLSAgICAgICAgIGlmIGFyZ3YgaXMgTm9uZToKLSAgICAgICAgICAgICBh cmd2ID0gc3lzLmFyZ3ZbMTpdCi0gICAgICAgICAgICAgIyBjb252ZXJ0aW5nIHRvIFVuaWNvZGUg KFB5dGhvbiAzIGRvZXMgdGhpcyBhdXRvbWF0aWNhbGx5KToKLS0gICAgICAgICAgICBpZiBzeXMu dmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0rICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8 ICgzLCAwKToKLSAgICAgICAgICAgICAgICAgIyBUT0RPOiBtYWtlIHRoaXMgZmFpbHNhZmUgYW5k IHJldmVyc2libGU/Ci0gICAgICAgICAgICAgICAgIGFyZ3ZfZW5jb2RpbmcgPSAoZnJvbnRlbmQu bG9jYWxlX2VuY29kaW5nIG9yICdhc2NpaScpCi0gICAgICAgICAgICAgICAgIGFyZ3YgPSBbYS5k ZWNvZGUoYXJndl9lbmNvZGluZykgZm9yIGEgaW4gYXJndl0KLWRpZmYgLS1naXQgYS9kb2N1dGls cy9mcm9udGVuZC5weSBiL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci1pbmRleCA4MTUzNDNkLi43YmZm ZjZhIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvZnJvbnRlbmQucHkKLSsrKyBiL2RvY3V0aWxzL2Zy b250ZW5kLnB5Ci1AQCAtMzYsNyArMzYsNyBAQCBpbXBvcnQgd2FybmluZ3MKLSBpbXBvcnQgY29k ZWNzCi0gaW1wb3J0IG9wdHBhcnNlCi0gZnJvbSBvcHRwYXJzZSBpbXBvcnQgU1VQUFJFU1NfSEVM UAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+ PSAoMywgMCk6Ci0gICAgIGZyb20gY29uZmlncGFyc2VyIGltcG9ydCBSYXdDb25maWdQYXJzZXIK LSBlbHNlOgotICAgICBmcm9tIENvbmZpZ1BhcnNlciBpbXBvcnQgUmF3Q29uZmlnUGFyc2VyCi1A QCAtNDcsNyArNDcsNyBAQCBpbXBvcnQgZG9jdXRpbHMubm9kZXMKLSBmcm9tIGRvY3V0aWxzLnV0 aWxzLmVycm9yX3JlcG9ydGluZyBpbXBvcnQgKGxvY2FsZV9lbmNvZGluZywgU2FmZVN0cmluZywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yT3V0cHV0 LCBFcnJvclN0cmluZykKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5 cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAK LSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9pby5weSBiL2RvY3V0aWxzL2lvLnB5Ci1pbmRleCBm YjM1NGZkLi45YzcwZjEwIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvaW8ucHkKLSsrKyBiL2RvY3V0 aWxzL2lvLnB5Ci1AQCAtMTcsNyArMTcsNyBAQCBpbXBvcnQgY29kZWNzCi0gZnJvbSBkb2N1dGls cyBpbXBvcnQgVHJhbnNmb3JtU3BlYwotIGZyb20gZG9jdXRpbHMudXRpbHMuZXJyb3JfcmVwb3J0 aW5nIGltcG9ydCBsb2NhbGVfZW5jb2RpbmcsIEVycm9yU3RyaW5nLCBFcnJvck91dHB1dAotIAot LWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAo MywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotQEAgLTIwOCw3ICsyMDgs NyBAQCBjbGFzcyBGaWxlSW5wdXQoSW5wdXQpOgotICAgICBkZWYgX19pbml0X18oc2VsZiwgc291 cmNlPU5vbmUsIHNvdXJjZV9wYXRoPU5vbmUsCi0gICAgICAgICAgICAgICAgICBlbmNvZGluZz1O b25lLCBlcnJvcl9oYW5kbGVyPSdzdHJpY3QnLAotICAgICAgICAgICAgICAgICAgYXV0b2Nsb3Nl PVRydWUsCi0tICAgICAgICAgICAgICAgICBtb2RlPSdyJyBpZiBzeXMudmVyc2lvbl9pbmZvID49 ICgzLDApIGVsc2UgJ3JVJywgKiprd2FyZ3MpOgotKyAgICAgICAgICAgICAgICAgbW9kZT0ncicg aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCkgZWxzZSAnclUnLCAqKmt3YXJncyk6Ci0gICAg ICAgICAiIiIKLSAgICAgICAgIDpQYXJhbWV0ZXJzOgotICAgICAgICAgICAgIC0gYHNvdXJjZWA6 IGVpdGhlciBhIGZpbGUtbGlrZSBvYmplY3QgKHdoaWNoIGlzIHJlYWQgZGlyZWN0bHkpLCBvcgot QEAgLTIzOSw3ICsyMzksNyBAQCBjbGFzcyBGaWxlSW5wdXQoSW5wdXQpOgotICAgICAgICAgaWYg c291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgaWYgc291cmNlX3BhdGg6Ci0gICAgICAgICAg ICAgICAgICMgU3BlY2lmeSBlbmNvZGluZyBpbiBQeXRob24gMwotLSAgICAgICAgICAgICAgICBp ZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotKyAgICAgICAgICAgICAgICBpZiBzeXMudmVy c2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgICAgICAgICAgICAgICAgIGt3YXJncyA9IHsnZW5j b2RpbmcnOiBzZWxmLmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdl cnJvcnMnOiBzZWxmLmVycm9yX2hhbmRsZXJ9Ci0gICAgICAgICAgICAgICAgIGVsc2U6Ci1AQCAt MjUxLDcgKzI1MSw3IEBAIGNsYXNzIEZpbGVJbnB1dChJbnB1dCk6Ci0gICAgICAgICAgICAgICAg ICAgICByYWlzZSBJbnB1dEVycm9yKGVycm9yLmVycm5vLCBlcnJvci5zdHJlcnJvciwgc291cmNl X3BhdGgpCi0gICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgc2VsZi5zb3VyY2Ug PSBzeXMuc3RkaW4KLS0gICAgICAgIGVsaWYgKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCkgYW5k Ci0rICAgICAgICBlbGlmIChzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKSBhbmQKLSAgICAgICAg ICAgICAgIGNoZWNrX2VuY29kaW5nKHNlbGYuc291cmNlLCBzZWxmLmVuY29kaW5nKSBpcyBGYWxz ZSk6Ci0gICAgICAgICAgICAgIyBUT0RPOiByZS1vcGVuLCB3YXJuIG9yIHJhaXNlIGVycm9yPwot ICAgICAgICAgICAgIHJhaXNlIFVuaWNvZGVFcnJvcignRW5jb2RpbmcgY2xhc2g6IGVuY29kaW5n IGdpdmVuIGlzICIlcyIgJwotQEAgLTI2OCw3ICsyNjgsNyBAQCBjbGFzcyBGaWxlSW5wdXQoSW5w dXQpOgotICAgICAgICAgUmVhZCBhbmQgZGVjb2RlIGEgc2luZ2xlIGZpbGUgYW5kIHJldHVybiB0 aGUgZGF0YSAoVW5pY29kZSBzdHJpbmcpLgotICAgICAgICAgIiIiCi0gICAgICAgICB0cnk6Ci0t ICAgICAgICAgICAgaWYgc2VsZi5zb3VyY2UgaXMgc3lzLnN0ZGluIGFuZCBzeXMudmVyc2lvbl9p bmZvID49ICgzLDApOgotKyAgICAgICAgICAgIGlmIHNlbGYuc291cmNlIGlzIHN5cy5zdGRpbiBh bmQgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgICAgICAgICAgICAgICMgcmVhZCBh cyBiaW5hcnkgZGF0YSB0byBjaXJjdW12ZW50IGF1dG8tZGVjb2RpbmcKLSAgICAgICAgICAgICAg ICAgZGF0YSA9IHNlbGYuc291cmNlLmJ1ZmZlci5yZWFkKCkKLSAgICAgICAgICAgICAgICAgIyBu b3JtYWxpemUgbmV3bGluZXMKLUBAIC0zNTgsNyArMzU4LDcgQEAgY2xhc3MgRmlsZU91dHB1dChP dXRwdXQpOgotIAotICAgICBkZWYgb3BlbihzZWxmKToKLSAgICAgICAgICMgU3BlY2lmeSBlbmNv ZGluZyBpbiBQeXRob24gMy4KLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCkg YW5kICdiJyBub3QgaW4gc2VsZi5tb2RlOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ PSAoMywgMCkgYW5kICdiJyBub3QgaW4gc2VsZi5tb2RlOgotICAgICAgICAgICAgIGt3YXJncyA9 IHsnZW5jb2RpbmcnOiBzZWxmLmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAnZXJy b3JzJzogc2VsZi5lcnJvcl9oYW5kbGVyfQotICAgICAgICAgZWxzZToKLUBAIC0zNzgsMTcgKzM3 OCwxNyBAQCBjbGFzcyBGaWxlT3V0cHV0KE91dHB1dCk6Ci0gICAgICAgICAiIiIKLSAgICAgICAg IGlmIG5vdCBzZWxmLm9wZW5lZDoKLSAgICAgICAgICAgICBzZWxmLm9wZW4oKQotLSAgICAgICAg aWYgKCdiJyBub3QgaW4gc2VsZi5tb2RlIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCkKLSsg ICAgICAgIGlmICgnYicgbm90IGluIHNlbGYubW9kZSBhbmQgc3lzLnZlcnNpb25faW5mbyA8ICgz LCAwKQotICAgICAgICAgICAgIG9yIGNoZWNrX2VuY29kaW5nKHNlbGYuZGVzdGluYXRpb24sIHNl bGYuZW5jb2RpbmcpIGlzIEZhbHNlCi0gICAgICAgICAgICApOgotICAgICAgICAgICAgIGRhdGEg PSBzZWxmLmVuY29kZShkYXRhKQotLSAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsMCkgYW5kIG9zLmxpbmVzZXAgIT0gJ1xuJzoKLSsgICAgICAgICAgICBpZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLCAwKSBhbmQgb3MubGluZXNlcCAhPSAnXG4nOgotICAgICAgICAgICAgICAg ICBkYXRhID0gZGF0YS5yZXBsYWNlKGInXG4nLCBieXRlcyhvcy5saW5lc2VwLCAnYXNjaWknKSkg IyBmaXggZW5kaW5ncwotIAotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIHNlbGYuZGVzdGlu YXRpb24ud3JpdGUoZGF0YSkKLSAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IgYXMgZToKLS0gICAg ICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApIGFuZCBpc2luc3RhbmNlKGRhdGEs IGJ5dGVzKToKLSsgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKSBhbmQg aXNpbnN0YW5jZShkYXRhLCBieXRlcyk6Ci0gICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGVzdGluYXRpb24uYnVmZmVyLndyaXRlKGRhdGEpCi0gICAgICAg ICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9u b2Rlcy5weSBiL2RvY3V0aWxzL25vZGVzLnB5Ci1pbmRleCBmOGRhMDJiLi5kZDljNGI2IDEwMDY0 NAotLS0tIGEvZG9jdXRpbHMvbm9kZXMucHkKLSsrKyBiL2RvY3V0aWxzL25vZGVzLnB5Ci1AQCAt MjksNyArMjksNyBAQCBpbXBvcnQgcmUKLSBpbXBvcnQgd2FybmluZ3MKLSBpbXBvcnQgdW5pY29k ZWRhdGEKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAgICAgYmFzZXN0 cmluZyA9IHN0ciAgIyBub3FhCi0gCi1AQCAtNjQsNyArNjQsNyBAQCBjbGFzcyBOb2RlKG9iamVj dCk6Ci0gICAgICAgICAiIiIKLSAgICAgICAgIHJldHVybiBUcnVlCi0gCi0tICAgIGlmIHN5cy52 ZXJzaW9uX2luZm8gPCAoMywwKToKLSsgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToK LSAgICAgICAgICMgb24gMi54LCBzdHIobm9kZSkgd2lsbCBiZSBhIGJ5dGUgc3RyaW5nIHdpdGgg VW5pY29kZQotICAgICAgICAgIyBjaGFyYWN0ZXJzID4gMjU1IGVzY2FwZWQ7IG9uIDMueCB0aGlz IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkKLSAgICAgICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotQEAg LTMwNCw3ICszMDQsNyBAQCBjbGFzcyBOb2RlKG9iamVjdCk6Ci0gICAgICAgICBleGNlcHQgSW5k ZXhFcnJvcjoKLSAgICAgICAgICAgICByZXR1cm4gTm9uZQotIAotLWlmIHN5cy52ZXJzaW9uX2lu Zm8gPCAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICBjbGFzcyBy ZXBydW5pY29kZSh1bmljb2RlKToKLSAgICAgICAgICIiIgotICAgICAgICAgQSB1bmljb2RlIHN1 Yi1jbGFzcyB0aGF0IHJlbW92ZXMgdGhlIGluaXRpYWwgdSBmcm9tIHVuaWNvZGUncyByZXByLgot QEAgLTMyMCw3ICszMjAsNyBAQCBkZWYgZW5zdXJlX3N0cihzKToKLSAgICAgIiIiCi0gICAgIEZh aWxzYXZlIGNvbnZlcnNpb24gb2YgYHVuaWNvZGVgIHRvIGBzdHJgLgotICAgICAiIiIKLS0gICAg aWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApIGFuZCBpc2luc3RhbmNlKHMsIHVuaWNvZGUpOgot KyAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApIGFuZCBpc2luc3RhbmNlKHMsIHVuaWNv ZGUpOgotICAgICAgICAgcmV0dXJuIHMuZW5jb2RlKCdhc2NpaScsICdiYWNrc2xhc2hyZXBsYWNl JykKLSAgICAgcmV0dXJuIHMKLSAKLUBAIC0zNTIsNyArMzUyLDcgQEAgY2xhc3MgVGV4dChOb2Rl LCByZXBydW5pY29kZSk6Ci0gICAgIGNoaWxkcmVuID0gKCkKLSAgICAgIiIiVGV4dCBub2RlcyBo YXZlIG5vIGNoaWxkcmVuLCBhbmQgY2Fubm90IGhhdmUgY2hpbGRyZW4uIiIiCi0gCi0tICAgIGlm IHN5cy52ZXJzaW9uX2luZm8gPiAoMywwKToKLSsgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgz LCAwKToKLSAgICAgICAgIGRlZiBfX25ld19fKGNscywgZGF0YSwgcmF3c291cmNlPU5vbmUpOgot ICAgICAgICAgICAgICIiIlByZXZlbnQgdGhlIHJhd3NvdXJjZSBhcmd1bWVudCBmcm9tIHByb3Bh Z2F0aW5nIHRvIHN0ci4iIiIKLSAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGRhdGEsIGJ5dGVz KToKLUBAIC01NDQsNyArNTQ0LDcgQEAgY2xhc3MgRWxlbWVudChOb2RlKToKLSAgICAgICAgIGVs c2U6Ci0gICAgICAgICAgICAgcmV0dXJuIHNlbGYuZW1wdHl0YWcoKQotIAotLSAgICBpZiBzeXMu dmVyc2lvbl9pbmZvID4gKDMsMCk6Ci0rICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6 Ci0gICAgICAgICAjIDJ0bzMgZG9lc24ndCBjb252ZXJ0IF9fdW5pY29kZV9fIHRvIF9fc3RyX18K LSAgICAgICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotIAotZGlmZiAtLWdpdCBhL2RvY3V0aWxz L3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvX19pbml0X18ucHkgYi9kb2N1dGlscy9wYXJzZXJzL3Jz dC9kaXJlY3RpdmVzL19faW5pdF9fLnB5Ci1pbmRleCAxNGZlMWZmLi43YmNjYjViIDEwMDY0NAot LS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weQotKysrIGIv ZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weQotQEAgLTE2LDcgKzE2 LDcgQEAgZnJvbSBkb2N1dGlscyBpbXBvcnQgbm9kZXMKLSBmcm9tIGRvY3V0aWxzLnV0aWxzIGlt cG9ydCBzcGxpdF9lc2NhcGVkX3doaXRlc3BhY2UsIGVzY2FwZTJudWxsLCB1bmVzY2FwZQotIGZy b20gZG9jdXRpbHMucGFyc2Vycy5yc3QubGFuZ3VhZ2VzIGltcG9ydCBlbiBhcyBfZmFsbGJhY2tf bGFuZ3VhZ2VfbW9kdWxlCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBz eXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY2hyID0gY2hyICAjIG5vcWEKLSAK LSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2MucHkg Yi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2MucHkKLWluZGV4IDNiOWI5ZGUu LjBmYzM2MTAgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21p c2MucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weQotQEAg LTQ3Myw3ICs0NzMsNyBAQCBjbGFzcyBEYXRlKERpcmVjdGl2ZSk6Ci0gICAgICAgICAgICAgICAg ICdJbnZhbGlkIGNvbnRleHQ6IHRoZSAiJXMiIGRpcmVjdGl2ZSBjYW4gb25seSBiZSB1c2VkIHdp dGhpbiAnCi0gICAgICAgICAgICAgICAgICdhIHN1YnN0aXR1dGlvbiBkZWZpbml0aW9uLicgJSBz ZWxmLm5hbWUpCi0gICAgICAgICBmb3JtYXRfc3RyID0gJ1xuJy5qb2luKHNlbGYuY29udGVudCkg b3IgJyVZLSVtLSVkJwotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbzwgKDMsMCk6Ci0rICAg ICAgICBpZiBzeXMudmVyc2lvbl9pbmZvPCAoMywgMCk6Ci0gICAgICAgICAgICAgdHJ5OgotICAg ICAgICAgICAgICAgICBmb3JtYXRfc3RyID0gZm9ybWF0X3N0ci5lbmNvZGUobG9jYWxlX2VuY29k aW5nIG9yICd1dGYtOCcpCi0gICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoK LUBAIC00OTgsNyArNDk4LDcgQEAgY2xhc3MgRGF0ZShEaXJlY3RpdmUpOgotICAgICAgICAgIyAg ICAgICAgICAgICAgICAgICAgICAgICAgdGltZS5nbXRpbWUoaW50KHNvdXJjZV9kYXRlX2Vwb2No KSkpCi0gICAgICAgICAjIGVsc2U6Ci0gICAgICAgICB0ZXh0ID0gdGltZS5zdHJmdGltZShmb3Jt YXRfc3RyKQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbzwgKDMsMCk6Ci0rICAgICAgICBp ZiBzeXMudmVyc2lvbl9pbmZvPCAoMywgMCk6Ci0gICAgICAgICAgICAgIyBgdGV4dGAgaXMgYSBi eXRlIHN0cmluZyB0aGF0IG1heSBjb250YWluIG5vbi1BU0NJSSBjaGFyYWN0ZXJzOgotICAgICAg ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuZGVjb2RlKGxvY2FsZV9l bmNvZGluZyBvciAndXRmLTgnKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2Rp cmVjdGl2ZXMvdGFibGVzLnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJs ZXMucHkKLWluZGV4IDM2YTUyZTcuLmI2OThlMDggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJz ZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3Qv ZGlyZWN0aXZlcy90YWJsZXMucHkKLUBAIC0yNjMsNyArMjYzLDcgQEAgY2xhc3MgQ1NWVGFibGUo VGFibGUpOgotICAgICAgICAgICAgIHJldHVybiBbZGV0YWlsLmFyZ3NbMF1dCi0gICAgICAgICBl eGNlcHQgY3N2LkVycm9yIGFzIGRldGFpbDoKLSAgICAgICAgICAgICBtZXNzYWdlID0gc3RyKGRl dGFpbCkKLS0gICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCkgYW5kICcxLWNo YXJhY3RlciBzdHJpbmcnIGluIG1lc3NhZ2U6Ci0rICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLCAwKSBhbmQgJzEtY2hhcmFjdGVyIHN0cmluZycgaW4gbWVzc2FnZToKLSAgICAg ICAgICAgICAgICAgbWVzc2FnZSArPSAnXG53aXRoIFB5dGhvbiAyLnggdGhpcyBtdXN0IGJlIGFu IEFTQ0lJIGNoYXJhY3Rlci4nCi0gICAgICAgICAgICAgZXJyb3IgPSBzZWxmLnN0YXRlX21hY2hp bmUucmVwb3J0ZXIuZXJyb3IoCi0gICAgICAgICAgICAgICAgICdFcnJvciB3aXRoIENTViBkYXRh IGluICIlcyIgZGlyZWN0aXZlOlxuJXMnCi1AQCAtMzU2LDcgKzM1Niw3IEBAIGNsYXNzIENTVlRh YmxlKFRhYmxlKToKLSAgICAgICAgICAgICByYWlzZSBTeXN0ZW1NZXNzYWdlUHJvcGFnYXRpb24o ZXJyb3IpCi0gICAgICAgICByZXR1cm4gY3N2X2RhdGEsIHNvdXJjZQotIAotLSAgICBpZiBzeXMu dmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0rICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6 Ci0gICAgICAgICAjIDIueCBjc3YgbW9kdWxlIGRvZXNuJ3QgZG8gVW5pY29kZQotICAgICAgICAg ZGVmIGRlY29kZV9mcm9tX2NzdihzKToKLSAgICAgICAgICAgICByZXR1cm4gcy5kZWNvZGUoJ3V0 Zi04JykKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgYi9kb2N1dGlscy9z dGF0ZW1hY2hpbmUucHkKLWluZGV4IDE2MjUyYmIuLjZiYzAzZjUgMTAwNjQ0Ci0tLS0gYS9kb2N1 dGlscy9zdGF0ZW1hY2hpbmUucHkKLSsrKyBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotQEAg LTExMyw3ICsxMTMsNyBAQCBpbXBvcnQgdW5pY29kZWRhdGEKLSBmcm9tIGRvY3V0aWxzIGltcG9y dCB1dGlscwotIGZyb20gZG9jdXRpbHMudXRpbHMuZXJyb3JfcmVwb3J0aW5nIGltcG9ydCBFcnJv ck91dHB1dAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNp b25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotZGlm ZiAtLWdpdCBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0ZXIucHkgYi9kb2N1dGlscy90 cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci1pbmRleCAzNDVlMjkwLi4yM2I5Yzk1IDEwMDY0NAot LS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weQotKysrIGIvZG9jdXRpbHMv dHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weQotQEAgLTI4LDcgKzI4LDcgQEAgZnJvbSBkb2N1dGls cyBpbXBvcnQgbm9kZXMsIHV0aWxzCi0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCBU cmFuc2Zvcm1FcnJvciwgVHJhbnNmb3JtCi0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAo MywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0 ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy91bml2ZXJz YWwucHkgYi9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5weQotaW5kZXggNzcwZWM3MS4u NDlmYjJjOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5Ci0r KysgYi9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5weQotQEAgLTI0LDcgKzI0LDcgQEAg ZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCBUcmFuc2Zvcm1FcnJvciwgVHJhbnNmb3Jt Ci0gZnJvbSBkb2N1dGlscy51dGlscyBpbXBvcnQgc21hcnRxdW90ZXMKLSAKLSAKLS1pZiBzeXMu dmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgot ICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91 dGlscy9fX2luaXRfXy5weSBiL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5Ci1pbmRleCBkZTM5 MjQ3Li5jYzFmZDFhIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkKLSsr KyBiL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5Ci1AQCAtMjIsNyArMjIsNyBAQCBmcm9tIGRv Y3V0aWxzLm5vZGVzIGltcG9ydCB1bmVzY2FwZQotIGltcG9ydCBkb2N1dGlscy5pbwotIGZyb20g ZG9jdXRpbHMudXRpbHMuZXJyb3JfcmVwb3J0aW5nIGltcG9ydCBFcnJvck91dHB1dCwgU2FmZVN0 cmluZwotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25f aW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIKLSAKLSAKLUBAIC01OTIsNyArNTky LDcgQEAgZGVmIHNwbGl0X2VzY2FwZWRfd2hpdGVzcGFjZSh0ZXh0KToKLSAgICAgcmV0dXJuIGxp c3QoaXRlcnRvb2xzLmNoYWluKCpzdHJpbmdzKSkKLSAKLSBkZWYgc3RyaXBfY29tYmluaW5nX2No YXJzKHRleHQpOgotLSAgICBpZiBpc2luc3RhbmNlKHRleHQsIHN0cikgYW5kIHN5cy52ZXJzaW9u X2luZm8gPCAoMywwKToKLSsgICAgaWYgaXNpbnN0YW5jZSh0ZXh0LCBzdHIpIGFuZCBzeXMudmVy c2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgICAgcmV0dXJuIHRleHQKLSAgICAgcmV0dXJuIHUn Jy5qb2luKFtjIGZvciBjIGluIHRleHQgaWYgbm90IHVuaWNvZGVkYXRhLmNvbWJpbmluZyhjKV0p Ci0gCi1AQCAtNjA0LDcgKzYwNCw3IEBAIGRlZiBmaW5kX2NvbWJpbmluZ19jaGFycyh0ZXh0KToK LSAgICAgWzMsIDYsIDldCi0gCi0gICAgICIiIgotLSAgICBpZiBpc2luc3RhbmNlKHRleHQsIHN0 cikgYW5kIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSsgICAgaWYgaXNpbnN0YW5jZSh0ZXh0 LCBzdHIpIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgICAgcmV0dXJuIFtd Ci0gICAgIHJldHVybiBbaSBmb3IgaSxjIGluIGVudW1lcmF0ZSh0ZXh0KSBpZiB1bmljb2RlZGF0 YS5jb21iaW5pbmcoYyldCi0gCi1AQCAtNjM4LDcgKzYzOCw3IEBAIGRlZiBjb2x1bW5fd2lkdGgo dGV4dCk6Ci0gCi0gICAgIENvcnJlY3QgYGBsZW4odGV4dClgYCBmb3Igd2lkZSBFYXN0IEFzaWFu IGFuZCBjb21iaW5pbmcgVW5pY29kZSBjaGFycy4KLSAgICAgIiIiCi0tICAgIGlmIGlzaW5zdGFu Y2UodGV4dCwgc3RyKSBhbmQgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgotKyAgICBpZiBpc2lu c3RhbmNlKHRleHQsIHN0cikgYW5kIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgICAg ICByZXR1cm4gbGVuKHRleHQpCi0gICAgIHdpZHRoID0gc3VtKFtlYXN0X2FzaWFuX3dpZHRoc1t1 bmljb2RlZGF0YS5lYXN0X2FzaWFuX3dpZHRoKGMpXQotICAgICAgICAgICAgICAgICAgZm9yIGMg aW4gdGV4dF0pCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5 IGIvZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5Ci1pbmRleCAyMWJjNTViLi4wMmEx ZGFiIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5Ci0rKysg Yi9kb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLUBAIC02NSw3ICs2NSw3IEBAIGVs c2U6Ci0gICAgICAgICBsb2NhbGVfZW5jb2RpbmcgPSBOb25lCi0gCi0gCi0taWYgc3lzLnZlcnNp b25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAg dW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1AQCAtOTMsNyArOTMsNyBAQCBjbGFzcyBTYWZl U3RyaW5nKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGFyZyBpbiBzZWxm LmRhdGEuYXJnc10KLSAgICAgICAgICAgICAgICAgcmV0dXJuICcsICcuam9pbihhcmdzKQotICAg ICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5kYXRhLCB1bmljb2RlKToKLS0gICAgICAgICAg ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLDApOgotKyAgICAgICAgICAgICAgICBpZiBz eXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNl bGYuZGF0YQotICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHNlbGYuZGF0YS5lbmNvZGUoc2VsZi5lbmNvZGluZywKLWRpZmYgLS1naXQgYS9kb2N1dGls cy91dGlscy9tYXRoL21hdGgyaHRtbC5weSBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1s LnB5Ci1pbmRleCBkZGFjYTQ4Li40NzU1MTlmIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMv bWF0aC9tYXRoMmh0bWwucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5 Ci1AQCAtMzAsNyArMzAsNyBAQCBpbXBvcnQgdW5pY29kZWRhdGEKLSBpbXBvcnQgdXJsbGliCi0g Ci0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgI25vcWEKLSAgICAgYmFzZXN0cmluZyA9 IHN0ciAgIyBub3FhCi0gICAgIGZpbGUgPSBpby5JT0Jhc2UgICMgbm9xYQotQEAgLTczLDcgKzcz LDcgQEAgY2xhc3MgVHJhY2Uob2JqZWN0KToKLSAKLSAgIGRlZiBzaG93KGNscywgbWVzc2FnZSwg Y2hhbm5lbCk6Ci0gICAgICJTaG93IGEgbWVzc2FnZSBvdXQgb2YgYSBjaGFubmVsIgotLSAgICBp ZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0rICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAo MywgMCk6Ci0gICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCi0gICAgIGNo YW5uZWwud3JpdGUobWVzc2FnZSArICdcbicpCi0gCi1AQCAtMTc4NSw3ICsxNzg1LDcgQEAgY2xh c3MgTGluZVdyaXRlcihvYmplY3QpOgotICAgICAiV3JpdGUgYSBzdHJpbmciCi0gICAgIGlmIG5v dCBzZWxmLmZpbGU6Ci0gICAgICAgc2VsZi5maWxlID0gY29kZWNzLm9wZW4oc2VsZi5maWxlbmFt ZSwgJ3cnLCAidXRmLTgiKQotLSAgICBpZiBzZWxmLmZpbGUgPT0gc3lzLnN0ZG91dCBhbmQgc3lz LnZlcnNpb25faW5mbyA8ICgzLDApOgotKyAgICBpZiBzZWxmLmZpbGUgPT0gc3lzLnN0ZG91dCBh bmQgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAgICAgICBzdHJpbmcgPSBzdHJpbmcuZW5j b2RlKCd1dGYtOCcpCi0gICAgIHNlbGYuZmlsZS53cml0ZShzdHJpbmcpCi0gCi1kaWZmIC0tZ2l0 IGEvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9faHRt bF9iYXNlLnB5Ci1pbmRleCA2M2Q1YTViLi5hOTU3MzExIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMv d3JpdGVycy9faHRtbF9iYXNlLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2Uu cHkKLUBAIC00MCw3ICs0MCw3IEBAIGZyb20gZG9jdXRpbHMudXRpbHMubWF0aCBpbXBvcnQgKHVu aWNoYXIydGV4LCBwaWNrX21hdGhfZW52aXJvbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWF0aDJodG1sLCBsYXRleDJtYXRobWwsIHRleDJtYXRobWxfZXh0ZXJuKQot IAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdp dCBhL2RvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9k b2N1dGlsc194bWwucHkKLWluZGV4IDEyMzA2YjYuLjYwZWUwN2IgMTAwNjQ0Ci0tLS0gYS9kb2N1 dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9kb2N1 dGlsc194bWwucHkKLUBAIC0zMCw3ICszMCw3IEBAIGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmlu Z0lPCi0gaW1wb3J0IGRvY3V0aWxzCi0gZnJvbSBkb2N1dGlscyBpbXBvcnQgZnJvbnRlbmQsIHdy aXRlcnMsIG5vZGVzCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMu dmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0g Ci1AQCAtMTg1LDcgKzE4NSw3IEBAIGNsYXNzIFhNTFRyYW5zbGF0b3Iobm9kZXMuR2VuZXJpY05v ZGVWaXNpdG9yKToKLSAgICAgICAgIHNlbGYub3V0cHV0LmFwcGVuZCh4bWxfc3RyaW5nKQotICAg ICAgICAgc2VsZi5kZWZhdWx0X2RlcGFydHVyZShub2RlKSAgIyBvciBub3Q/Ci0gICAgICAgICAj IENoZWNrIHZhbGlkaXR5IG9mIHJhdyBYTUw6Ci0tICAgICAgICBpZiBpc2luc3RhbmNlKHhtbF9z dHJpbmcsIHVuaWNvZGUpIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0rICAgICAgICBp ZiBpc2luc3RhbmNlKHhtbF9zdHJpbmcsIHVuaWNvZGUpIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwg KDMsIDApOgotICAgICAgICAgICAgIHhtbF9zdHJpbmcgPSB4bWxfc3RyaW5nLmVuY29kZSgndXRm OCcpCi0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgc2VsZi54bWxwYXJzZXIucGFyc2UoU3Ry aW5nSU8oeG1sX3N0cmluZykpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJl L19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5Ci1pbmRl eCA2MzZkNDc3Li4wNWI1NWViIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJl L19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkK LUBAIC0yOCw3ICsyOCw3IEBAIGZyb20gZG9jdXRpbHMudHJhbnNmb3JtcyBpbXBvcnQgd3JpdGVy X2F1eAotIGZyb20gZG9jdXRpbHMudXRpbHMubWF0aCBpbXBvcnQgcGlja19tYXRoX2Vudmlyb25t ZW50LCB1bmljaGFyMnRleAotIAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0r aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9x YQotIAotIAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weSBiL2RvY3V0 aWxzL3dyaXRlcnMvbWFucGFnZS5weQotaW5kZXggZWQxNjNkZS4uZGY0ZjFhMyAxMDA2NDQKLS0t LSBhL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9t YW5wYWdlLnB5Ci1AQCAtNDcsNyArNDcsNyBAQCBfX2RvY2Zvcm1hdF9fID0gJ3JlU3RydWN0dXJl ZFRleHQnCi0gaW1wb3J0IHJlCi0gaW1wb3J0IHN5cwotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8g PCAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICByYW5nZSA9IHhy YW5nZQotIAotIGltcG9ydCBkb2N1dGlscwotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMv b2RmX29kdC9fX2luaXRfXy5weSBiL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5w eQotaW5kZXggZjM2OTgwZi4uYzc5ZDRjMSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMv b2RmX29kdC9fX2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5p dF9fLnB5Ci1AQCAtMzcsNyArMzcsOCBAQCBpZiB0eXBlKHN5cy52ZXJzaW9uX2luZm8pIT10eXBl KCgwLCkpIGFuZCBzeXMudmVyc2lvbl9pbmZvLm1ham9yID49IDM6Ci0gZWxzZToKLSAgICAgZnJv bSBDb25maWdQYXJzZXIgaW1wb3J0IENvbmZpZ1BhcnNlcgotICAgICBmcm9tIFN0cmluZ0lPIGlt cG9ydCBTdHJpbmdJTwotLSAgICBmcm9tIHVybGxpYjIgaW1wb3J0IHVybG9wZW4sIEhUVFBFcnJv cgotKyAgICBmcm9tIHVybGxpYjIgaW1wb3J0IEhUVFBFcnJvcgotKyAgICBmcm9tIHVybGxpYjIg aW1wb3J0IHVybG9wZW4KLSAKLSAKLSBWRVJTSU9OID0gJzEuMGEnCi1AQCAtOTQ3LDcgKzk0OCw3 IEBAIGNsYXNzIE9ERlRyYW5zbGF0b3Iobm9kZXMuR2VuZXJpY05vZGVWaXNpdG9yKToKLSAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZG9jdW1lbnQucmVwb3J0ZXIud2FybmluZygKLSAgICAgICAg ICAgICAgICAgICAgICAgICAnU3R5bGUgIiVzIiBpcyBub3QgYSBzdHlsZSB1c2VkIGJ5IG9kdHdy aXRlci4nICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3RzdHlsZSwgKSkKLS0g ICAgICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSsgICAgICAgICAg ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgICAgICAgICAgICAgICAg ICBzZWxmLmZvcm1hdF9tYXBbcnN0c3R5bGVdID0gZm9ybWF0Ci0gICAgICAgICAgICAgICAgIGVs c2U6Ci0gICAgICAgICAgICAgICAgICAgICBzZWxmLmZvcm1hdF9tYXBbcnN0c3R5bGVdID0gZm9y bWF0LmRlY29kZSgndXRmLTgnKQotZGlmZiAtLWdpdCBhL3NldHVwLnB5IGIvc2V0dXAucHkKLWlu ZGV4IDEyYzM5OGIuLmQ2MzZmNDYgMTAwNzU1Ci0tLS0gYS9zZXR1cC5weQotKysrIGIvc2V0dXAu cHkKLUBAIC0xMyw3ICsxMyw3IEBAIHRyeToKLSAgICAgZnJvbSBkaXN0dXRpbHMuY29yZSBpbXBv cnQgc2V0dXAsIENvbW1hbmQKLSAgICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5idWlsZCBpbXBv cnQgYnVpbGQKLSAgICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5idWlsZF9weSBpbXBvcnQgYnVp bGRfcHkKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSsgICAgaWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgICAgICBmcm9tIGRpc3R1dGlscy5jb21tYW5kLmJ1 aWxkX3B5IGltcG9ydCBidWlsZF9weV8ydG8zCi0gICAgICAgICBmcm9tIGRpc3R1dGlscy51dGls IGltcG9ydCBjb3B5ZGlyX3J1bl8ydG8zCi0gICAgIGZyb20gZGlzdHV0aWxzLmNvbW1hbmQuaW5z dGFsbF9kYXRhIGltcG9ydCBpbnN0YWxsX2RhdGEKLUBAIC0yNyw3ICsyNyw3IEBAIGV4Y2VwdCBJ bXBvcnRFcnJvcjoKLSAgICAgc3lzLmV4aXQoMSkKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICAjIGNvcHkt Y29udmVydCBhdXhpbGlhcnkgcHl0aG9uIHNvdXJjZXMKLSAgICAgY2xhc3MgY29weV9idWlsZF9w eV8ydG8zKGJ1aWxkX3B5XzJ0bzMpOgotICAgICAgICAgIiIiQ29weS9jb252ZXJ0IFB5dGhvbiBz b3VyY2UgZmlsZXMgaW4gZ2l2ZW4gZGlyZWN0b3JpZXMgcmVjdXJzaXZlbHkuCi1AQCAtOTcsNyAr OTcsNyBAQCBkZWYgZG9fc2V0dXAoKToKLSAgICAga3dhcmdzWydjbWRjbGFzcyddID0geydidWls ZF9kYXRhJzogYnVpbGRfZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxs X2RhdGEnOiBzbWFydF9pbnN0YWxsX2RhdGF9Ci0gICAgICMgQXV0by1jb252ZXJ0IHNvdXJjZSBj b2RlIGZvciBQeXRob24gMwotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotKyAg ICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgICAgIGt3YXJnc1snY21kY2xh c3MnXVsnYnVpbGRfcHknXSA9IGNvcHlfYnVpbGRfcHlfMnRvMwotICAgICBlbHNlOgotICAgICAg ICAga3dhcmdzWydjbWRjbGFzcyddWydidWlsZF9weSddID0gYnVpbGRfcHkKLWRpZmYgLS1naXQg YS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQu cHkKLWluZGV4IDM5MGRmNWIuLjQ3YmE4M2MgMTAwNjQ0Ci0tLS0gYS90ZXN0L0RvY3V0aWxzVGVz dFN1cHBvcnQucHkKLSsrKyBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotQEAgLTUxLDcg KzUxLDcgQEAgZnJvbSBwcHJpbnQgaW1wb3J0IHBmb3JtYXQKLSAKLSB0ZXN0cm9vdCA9IG9zLnBh dGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pIG9yIG9zLmN1cmRpcikKLSBvcy5j aGRpcih0ZXN0cm9vdCkKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52 ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5u b3JtcGF0aChvcy5wYXRoLmpvaW4odGVzdHJvb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLi4nLCAnYnVpbGQnLCAnbGliJykpKQotICAg ICBzeXMucGF0aC5hcHBlbmQob3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4odGVzdHJvb3Qs ICcuLicsCi1AQCAtODksNyArODksNyBAQCBleGNlcHQ6Ci0gICAgIGltcG9ydCBwZGIKLSAKLSAK LS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsIDApOgotICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLUBAIC0yMDIsNyArMjAy LDcgQEAgY2xhc3MgQ3VzdG9tVGVzdENhc2UoU3RhbmRhcmRUZXN0Q2FzZSk6Ci0gICAgICAgICAi IiJgaW5wdXRgLCBgb3V0cHV0YCwgYW5kIGBleHBlY3RlZGAgc2hvdWxkIGFsbCBiZSBzdHJpbmdz LiIiIgotICAgICAgICAgaWYgaXNpbnN0YW5jZShpbnB1dCwgdW5pY29kZSk6Ci0gICAgICAgICAg ICAgaW5wdXQgPSBpbnB1dC5lbmNvZGUoJ3Jhd191bmljb2RlX2VzY2FwZScpCi0tICAgICAgICBp ZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsMCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv ID4gKDMsIDApOgotICAgICAgICAgICAgICMgQVBJIGRpZmZlcmVuY2U6IFB5dGhvbiAzJ3Mgbm9k ZS5fX3N0cl9fIGRvZXNuJ3QgZXNjYXBlCi0gICAgICAgICAgICAgI2Fzc2VydCBleHBlY3RlZCBp cyBOb25lIG9yIGlzaW5zdGFuY2UoZXhwZWN0ZWQsIHVuaWNvZGUpCi0gICAgICAgICAgICAgaWYg aXNpbnN0YW5jZShleHBlY3RlZCwgYnl0ZXMpOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9faW5p dF9fLnB5IGIvdGVzdC90ZXN0X19pbml0X18ucHkKLWluZGV4IDg3ZWMxNGYuLjhmMWQ3NDkgMTAw NjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfX2luaXRfXy5weQotKysrIGIvdGVzdC90ZXN0X19pbml0X18u cHkKLUBAIC0xNiw3ICsxNiw3IEBAIGltcG9ydCBkb2N1dGlscwotIGltcG9ydCBkb2N1dGlscy51 dGlscwotIAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNp b25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotZGlm ZiAtLWdpdCBhL3Rlc3QvdGVzdF9jb21tYW5kX2xpbmUucHkgYi90ZXN0L3Rlc3RfY29tbWFuZF9s aW5lLnB5Ci1pbmRleCBlYjZjYThhLi5kOWUwODUwIDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X2Nv bW1hbmRfbGluZS5weQotKysrIGIvdGVzdC90ZXN0X2NvbW1hbmRfbGluZS5weQotQEAgLTMzLDcg KzMzLDcgQEAgY2xhc3MgQ29tbWFuZExpbmVFbmNvZGluZ1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNl KToKLSAgICAgICAgIGlmIGFyZ3ZfZW5jb2RpbmcgPT0gJ2FzY2lpJzogIyBjYW5ub3QgdGVzdAot ICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgc3lzLmFyZ3YuYXBwZW5kKCctLXNvdXJjZS11 cmw9dGVzdC50eHQnKSAjIHB1cmUgQVNDSUkgYXJndW1lbnQKLS0gICAgICAgIGlmIHN5cy52ZXJz aW9uX2luZm8gPCAoMywwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6 Ci0gICAgICAgICAgICAgc3lzLmFyZ3YuYXBwZW5kKHUnLS10aXRsZT1Eb3JucsO2c2NoZW4nLmVu Y29kZShhcmd2X2VuY29kaW5nKSkKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgc3lzLmFy Z3YuYXBwZW5kKHUnLS10aXRsZT1Eb3JucsO2c2NoZW4nKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVz dF9lcnJvcl9yZXBvcnRpbmcucHkgYi90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5Ci1pbmRl eCA0YjMzN2UzLi5kMTUwOWM2IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGlu Zy5weQotKysrIGIvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weQotQEAgLTI1LDEwICsyNSwx MCBAQCBpbnN0YW5jZXMgbGlrZSwgZS5nLiwgOjoKLSB1bmxlc3MgdGhlIG1pbmltYWwgcmVxdWly ZWQgUHl0aG9uIHZlcnNpb24gaGFzIHRoaXMgcHJvYmxlbSBmaXhlZC4KLSAiIiIKLSAKLS1pbXBv cnQgdW5pdHRlc3QKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IG9zCi0gaW1wb3J0IGNvZGVjcwotK2lt cG9ydCB1bml0dGVzdAotIGZyb20gaW8gaW1wb3J0IFN0cmluZ0lPLCBCeXRlc0lPCi0gCi0gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgICAgICAgICAgICAgICMgbXVzdCBiZSBpbXBvcnRlZCBi ZWZvcmUgZG9jdXRpbHMKLUBAIC00Niw3ICs0Niw3IEBAIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAo MywwKTogIyBwcm9ibGVtcyBzb2x2ZWQgaW4gcHkzawotICAgICAgICAgcHJpbnQoJ2Nhbm5vdCB0 ZXN0IGVycm9yIHJlcG9ydGluZyB3aXRoIHByb2JsZW1hdGljIGxvY2FsZXMsXG4nCi0gICAgICAg ICAgICAgJ2BpbXBvcnQgbG9jYWxlYCBmYWlsZWQuJykKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmljb2Rl ID0gc3RyICAjIG5vcWEKLSAKLSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfZnVuY3Rpb25hbC5w eSBiL3Rlc3QvdGVzdF9mdW5jdGlvbmFsLnB5Ci1pbmRleCA1ZDNiZWI5Li5jZGM3NWEwIDEwMDc1 NQotLS0tIGEvdGVzdC90ZXN0X2Z1bmN0aW9uYWwucHkKLSsrKyBiL3Rlc3QvdGVzdF9mdW5jdGlv bmFsLnB5Ci1AQCAtMTYwLDcgKzE2MCw3IEBAIGV4cGVjdGVkIG91dHB1dCBhbmQgY2hlY2sgaXQg aW46Ci0gICAgICAgICBvdXRwdXQgPSBkb2N1dGlscy5jb3JlLnB1Ymxpc2hfZmlsZSgqKnBhcmFt cykKLSAgICAgICAgICMgZW5zdXJlIG91dHB1dCBpcyB1bmljb2RlCi0gICAgICAgICBvdXRwdXRf ZW5jb2RpbmcgPSBwYXJhbXMuZ2V0KCdvdXRwdXRfZW5jb2RpbmcnLCAndXRmLTgnKQotLSAgICAg ICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLCAwKToKLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIG91dHB1 dCA9IG91dHB1dC5kZWNvZGUob3V0cHV0X2VuY29kaW5nKQotICAgICAgICAgICAgIGV4Y2VwdCBV bmljb2RlRGVjb2RlRXJyb3I6Ci1AQCAtMTcyLDE0ICsxNzIsMTQgQEAgZXhwZWN0ZWQgb3V0cHV0 IGFuZCBjaGVjayBpdCBpbjoKLSAgICAgICAgIG5vX2V4cGVjdGVkID0gc2VsZi5ub19leHBlY3Rl ZF90ZW1wbGF0ZSAlIHsKLSAgICAgICAgICAgICAnZXhwJzogZXhwZWN0ZWRfcGF0aCwgJ291dCc6 IHBhcmFtc1snZGVzdGluYXRpb25fcGF0aCddfQotICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9z LmFjY2VzcyhleHBlY3RlZF9wYXRoLCBvcy5SX09LKSwgbm9fZXhwZWN0ZWQpCi0tICAgICAgICBp ZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsIDApOgotICAgICAgICAgICAgIGYgPSBvcGVuKGV4cGVjdGVkX3BhdGgsICdyJykKLSAg ICAgICAgIGVsc2U6ICMgc2FtcGxlcyBhcmUgVVRGOCBlbmNvZGVkLiAncmInIGxlYWRzIHRvIGVy cm9ycyB3aXRoIFB5dGhvbiAzIQotICAgICAgICAgICAgIGYgPSBvcGVuKGV4cGVjdGVkX3BhdGgs ICdyJywgZW5jb2Rpbmc9J3V0Zi04JykKLSAgICAgICAgICMgTm9ybWFsaXplIGxpbmUgZW5kaW5n czoKLSAgICAgICAgIGV4cGVjdGVkID0gJ1xuJy5qb2luKGYucmVhZCgpLnNwbGl0bGluZXMoKSkK LSAgICAgICAgIGYuY2xvc2UoKQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDAp OgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAgICAgICAgICAgICB0 cnk6Ci0gICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gZXhwZWN0ZWQuZGVjb2RlKG91dHB1dF9l bmNvZGluZykKLSAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgotQEAgLTE5 Myw3ICsxOTMsNyBAQCBleHBlY3RlZCBvdXRwdXQgYW5kIGNoZWNrIGl0IGluOgotICAgICAgICAg ICAgIGRpZmYgPSAnJy5qb2luKGRpZmZsaWIudW5pZmllZF9kaWZmKAotICAgICAgICAgICAgICAg ICBleHBlY3RlZC5zcGxpdGxpbmVzKFRydWUpLCBvdXRwdXQuc3BsaXRsaW5lcyhUcnVlKSwKLSAg ICAgICAgICAgICAgICAgZXhwZWN0ZWRfcGF0aCwgcGFyYW1zWydkZXN0aW5hdGlvbl9wYXRoJ10p KQotLSAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSsgICAgICAgICAg ICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgICAgICAgICAgICBkaWZmID0g ZGlmZi5lbmNvZGUoc3lzLnN0ZGVyci5lbmNvZGluZyBvciAnYXNjaWknLCAncmVwbGFjZScpCi0g ICAgICAgICAgICAgcHJpbnQoJ1xuJXM6JyAlIChzZWxmLCksIGZpbGU9c3lzLnN0ZGVycikKLSAg ICAgICAgICAgICBwcmludChkaWZmLCBmaWxlPXN5cy5zdGRlcnIpCi1kaWZmIC0tZ2l0IGEvdGVz dC90ZXN0X2lvLnB5IGIvdGVzdC90ZXN0X2lvLnB5Ci1pbmRleCA3MzdhMTlkLi42Mjk0NjEzIDEw MDc1NQotLS0tIGEvdGVzdC90ZXN0X2lvLnB5Ci0rKysgYi90ZXN0L3Rlc3RfaW8ucHkKLUBAIC0x MDMsNyArMTAzLDcgQEAgcHJpbnQoImhlbGxvIHdvcmxkIikKLSAgICAgICAgICMgaWYgbm8gZW5j b2RpbmcgaXMgZ2l2ZW4sIHRyeSBkZWNvZGluZyB3aXRoIHV0Zjg6Ci0gICAgICAgICBpbnB1dCA9 IGlvLkZpbGVJbnB1dChzb3VyY2VfcGF0aD0nZnVuY3Rpb25hbC9pbnB1dC9jeXJpbGxpYy50eHQn KQotICAgICAgICAgZGF0YSA9IGlucHV0LnJlYWQoKQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAg ICAgICAgICAgICAjIGluIFB5M2ssIHRoZSBsb2NhbGUgZW5jb2RpbmcgaXMgdXNlZCB3aXRob3V0 IC0taW5wdXQtZW5jb2RpbmcKLSAgICAgICAgICAgICAjIHNraXBwaW5nIHRoZSBoZXVyaXN0aWMK LSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlucHV0LnN1Y2Nlc3NmdWxfZW5jb2Rpbmcs ICd1dGYtOCcpCi1AQCAtMTExLDcgKzExMSw3IEBAIHByaW50KCJoZWxsbyB3b3JsZCIpCi0gICAg IGRlZiB0ZXN0X2hldXJpc3RpY3Nfbm9fdXRmOChzZWxmKToKLSAgICAgICAgICMgaWYgbm8gZW5j b2RpbmcgaXMgZ2l2ZW4gYW5kIGRlY29kaW5nIHdpdGggdXRmOCBmYWlscywKLSAgICAgICAgICMg dXNlIGVpdGhlciB0aGUgbG9jYWxlIGVuY29kaW5nIChpZiBzcGVjaWZpZWQpIG9yIGxhdGluLTE6 Ci0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApIGFuZCBsb2NhbGVfZW5jb2Rp bmcgIT0gInV0ZjgiOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCkgYW5k IGxvY2FsZV9lbmNvZGluZyAhPSAidXRmOCI6Ci0gICAgICAgICAgICAgIyBpbiBQeTNrLCB0aGUg bG9jYWxlIGVuY29kaW5nIGlzIHVzZWQgd2l0aG91dCAtLWlucHV0LWVuY29kaW5nCi0gICAgICAg ICAgICAgIyBza2lwcGluZyB0aGUgaGV1cmlzdGljIHVubGVzcyBkZWNvZGluZyBmYWlscy4KLSAg ICAgICAgICAgICByZXR1cm4KLUBAIC0xNjksNyArMTY5LDcgQEAgY2xhc3MgT3V0cHV0VGVzdHMo dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnVkcmFp bi5nZXR2YWx1ZSgpLCBzZWxmLnVkYXRhKQotIAotICAgICBkZWYgdGVzdF93cml0ZV91dGY4KHNl bGYpOgotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSsgICAgICAgIGlm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICAgICAgICAgIGZvID0gaW8uRmlsZU91 dHB1dChkZXN0aW5hdGlvbj1zZWxmLnVkcmFpbiwgZW5jb2Rpbmc9J3V0ZjgnLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhdXRvY2xvc2U9RmFsc2UpCi0gICAgICAgICAgICAgZm8u d3JpdGUoc2VsZi51ZGF0YSkKLUBAIC0xODksNyArMTg5LDcgQEAgY2xhc3MgT3V0cHV0VGVzdHMo dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmJkcmFp bi5nZXR2YWx1ZSgpLCBzZWxmLmJkYXRhKQotIAotICAgICAjIFRlc3QgZm9yIFB5dGhvbiAzIGZl YXR1cmVzOgotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotKyAgICBpZiBzeXMu dmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgICAgIGRlZiB0ZXN0X3dyaXRlX2J5dGVzX3Rv X3N0ZG91dChzZWxmKToKLSAgICAgICAgICAgICAjIHRyeSB3cml0aW5nIGRhdGEgdG8gYGRlc3Rp bmF0aW9uLmJ1ZmZlcmAsIGlmIGRhdGEgaXMKLSAgICAgICAgICAgICAjIGluc3RhbmNlIG9mIGBi eXRlc2AgYW5kIHdyaXRpbmcgdG8gYGRlc3RpbmF0aW9uYCBmYWlsczoKLWRpZmYgLS1naXQgYS90 ZXN0L3Rlc3RfbGFuZ3VhZ2UucHkgYi90ZXN0L3Rlc3RfbGFuZ3VhZ2UucHkKLWluZGV4IDQ1NTM1 N2EuLjMxYWM2MTMgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfbGFuZ3VhZ2UucHkKLSsrKyBiL3Rl c3QvdGVzdF9sYW5ndWFnZS5weQotQEAgLTI2LDcgKzI2LDcgQEAgX3JlcG9ydGVyID0gZG9jdXRp bHMudXRpbHMubmV3X3JlcG9ydGVyKCcnLCBfc2V0dGluZ3MpCi0gCi0gcmVmZXJlbmNlX2xhbmd1 YWdlID0gJ2VuJwotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAot ZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9ub2Rlcy5weSBiL3Rlc3QvdGVzdF9ub2Rlcy5weQotaW5k ZXggNjgwNTc5OS4uZWM4ODI0ZSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9ub2Rlcy5weQotKysr IGIvdGVzdC90ZXN0X25vZGVzLnB5Ci1AQCAtMTcsNyArMTcsNyBAQCBmcm9tIERvY3V0aWxzVGVz dFN1cHBvcnQgaW1wb3J0IG5vZGVzLCB1dGlscwotIAotIGRlYnVnID0gRmFsc2UKLSAKLS1pZiBz eXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDAp OgotICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLUBAIC0zNiw3ICszNiw3IEBAIGNs YXNzIFRleHRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBzZWxmLmFzc2VydEVx dWFsKHNlbGYudGV4dC5zaG9ydHJlcHIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHIi PCN0ZXh0OiAnTGluZSAxLlxuTGluZSAyLic+IikKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo bm9kZXMucmVwcnVuaWNvZGUoJ2ZvbycpLCB1J2ZvbycpCi0tICAgICAgICBpZiBzeXMudmVyc2lv bl9pbmZvIDwgKDMsMCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgot ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihzZWxmLnVuaWNvZGVfdGV4dCksIHIi PCN0ZXh0OiAnTVx4ZjZocmVuJz4iKQotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICBzZWxm LmFzc2VydEVxdWFsKHJlcHIoc2VsZi51bmljb2RlX3RleHQpLCB1IjwjdGV4dDogJ03DtmhyZW4n PiIpCi1AQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBUZXh0VGVzdHModW5pdHRlc3QuVGVzdENhc2Up OgotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJpcHBlZDIsIHUncyBub2MnKQotIAotICAg ICBkZWYgdGVzdF9hc2NpaXJlc3RyaWN0aW9uKHNlbGYpOgotLSAgICAgICAgaWYgc3lzLnZlcnNp b25faW5mbyA8ICgzLDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToK LSAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRGVjb2RlRXJyb3IsIG5vZGVz LlRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYidob2wlcycgJSBjaHIoMjI0 KSkKLSAgICAgICAgIGVsc2U6Ci1AQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBFbGVtZW50VGVzdHMo dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgZGVsIGVsZW1lbnRbJ2F0dHInXQotICAgICAg ICAgZWxlbWVudFsnbWFyayddID0gdSdcdTIwMjInCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFs KHJlcHIoZWxlbWVudCksICc8RWxlbWVudDogPicpCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9p bmZvIDwgKDMsMCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVsZW1lbnQpLCAnPEVsZW1lbnQgbWFyaz0i XFx1MjAyMiIvPicpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoc3RyKGVsZW1lbnQpLCB1JzxFbGVtZW50IG1hcms9Ilx1MjAyMiIvPicpCi1AQCAtMTA2LDcg KzEwNiw3IEBAIGNsYXNzIEVsZW1lbnRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKGRvbS50b3htbCgpLCB1JzxFbGVtZW50IG1hcms9Ilx1MjAyMiIv PicpCi0gICAgICAgICBkb20udW5saW5rKCkKLSAgICAgICAgIGVsZW1lbnRbJ25hbWVzJ10gPSBb J25vYm9keScsIHUn0LjQvNGPJywgdSduw6RzJ10KLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2lu Zm8gPCAoMywwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAg ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGVsZW1lbnQpLAotICAgICAgICAgICAgICAg ICAnPEVsZW1lbnQgIm5vYm9keTsgXFx1MDQzOFxcdTA0M2NcXHUwNDRmOyBuXFx4ZTRzIjogPicp Ci0gICAgICAgICBlbHNlOgotQEAgLTExNyw3ICsxMTcsNyBAQCBjbGFzcyBFbGVtZW50VGVzdHMo dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgZWxlbWVudCA9IG5vZGVzLkVsZW1lbnQoJ3Rl eHRcbm1vcmUnLCBub2Rlcy5UZXh0KCd0ZXh0XG5tb3JlJykpCi0gICAgICAgICB1ZWxlbWVudCA9 IG5vZGVzLkVsZW1lbnQodSdncsO8bicsIG5vZGVzLlRleHQodSdncsO8bicpKQotICAgICAgICAg c2VsZi5hc3NlcnRFcXVhbChyZXByKGVsZW1lbnQpLCByIjxFbGVtZW50OiA8I3RleHQ6ICd0ZXh0 XG5tb3JlJz4+IikKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSsgICAg ICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgICAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbChyZXByKHVlbGVtZW50KSwgIjxFbGVtZW50OiA8I3RleHQ6ICdnclxceGZjbic+PiIp Ci0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcih1ZWxl bWVudCksIHUiPEVsZW1lbnQ6IDwjdGV4dDogJ2dyw7xuJz4+IikKLUBAIC0zNDEsNyArMzQxLDcg QEAgY2xhc3MgTWlzY1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIHNlbGYuYXNz ZXJ0VHJ1ZShpc2luc3RhbmNlKG5vZGVzLnJlcHJ1bmljb2RlKCdmb28nKSwgdW5pY29kZSkpCi0g ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5vZGVzLnJlcHJ1bmljb2RlKCdmb28nKSwgdSdmb28n KQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChub2Rlcy5yZXBydW5pY29kZSh1J03DtmhyZScp LCB1J03DtmhyZScpCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6ICMgc3Ry aXAgbGVhZGluZyAidSIgZnJvbSByZXByZXNlbnRhdGlvbgotKyAgICAgICAgaWYgc3lzLnZlcnNp b25faW5mbyA8ICgzLCAwKTogIyBzdHJpcCBsZWFkaW5nICJ1IiBmcm9tIHJlcHJlc2VudGF0aW9u Ci0gICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKG5vZGVzLnJlcHJ1bmljb2RlKHUn TcO2aHJlJykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcih1J03DtmhyZScp WzE6XSkKLSAgICAgICAgIGVsc2U6ICMgbm8gY2hhbmdlIHRvIGB1bmljb2RlYCB1bmRlciBQeXRo b24gM2sKLUBAIC0zNTAsNyArMzUwLDcgQEAgY2xhc3MgTWlzY1Rlc3RzKHVuaXR0ZXN0LlRlc3RD YXNlKToKLSAgICAgZGVmIHRlc3RfZW5zdXJlX3N0cihzZWxmKToKLSAgICAgICAgIHNlbGYuYXNz ZXJ0VHJ1ZShpc2luc3RhbmNlKG5vZGVzLmVuc3VyZV9zdHIodSfDvGJlcicpLCBzdHIpKQotICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChub2Rlcy5lbnN1cmVfc3RyKCdvdmVyJyksICdvdmVyJykK LS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKTogIyBzdHJpcCBsZWFkaW5nICJ1 IiBmcm9tIHJlcHJlc2VudGF0aW9uCi0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMs IDApOiAjIHN0cmlwIGxlYWRpbmcgInUiIGZyb20gcmVwcmVzZW50YXRpb24KLSAgICAgICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKG5vZGVzLmVuc3VyZV9zdHIodSfDvGJlcicpLCByJ1x4ZmNiZXIn KQotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5vZGVzLmVu c3VyZV9zdHIodSfDvGJlcicpLCByJ8O8YmVyJykKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3BhcnNlci5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcGFyc2VyLnB5Ci1p bmRleCA2YzU3OTYzLi5kMjE0MmI0IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9wYXJzZXIucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcGFyc2VyLnB5Ci1AQCAt MjMsNyArMjMsNyBAQCBjbGFzcyBSc3RQYXJzZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g ICAgICAgICBkb2N1bWVudCA9IHV0aWxzLm5ld19kb2N1bWVudCgndGVzdCBkYXRhJywgZnJvbnRl bmQuT3B0aW9uUGFyc2VyKAotICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cz0ocGFyc2Vy LCApKS5nZXRfZGVmYXVsdF92YWx1ZXMoKSkKLSAKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2lu Zm8gPCAoMywwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAg ICAgICAgICAgIyBzdXBwbHlpbmcgc3RyaW5nIGlucHV0IGlzIHN1cHBvcnRlZCwgYnV0IG9ubHkg aWYgYXNjaWktZGVjb2RhYmxlCi0gICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29k ZURlY29kZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5wYXJz ZSwgYidob2wlcycgJSBjaHIoMjI0KSwgZG9jdW1lbnQpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5weSBiL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkKLWlu ZGV4IDkyZDAxOTMuLjMxYTVjMDIgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5Ci1AQCAtMTYsNyAr MTYsNyBAQCBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9ydCBzdGF0ZXMKLSBmcm9tIGRv Y3V0aWxzLnV0aWxzLmNvZGVfYW5hbHl6ZXIgaW1wb3J0IHdpdGhfcHlnbWVudHMKLSAKLSAKLS1p ZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs IDApOgotICAgICB1bmljaHIgPSBjaHIgICMgbm9xYQotIAotIAotQEAgLTQ4LDcgKzQ4LDcgQEAg aW5jbHVkZV9saXRlcmFsID0gbXlkaXIoJ2luY2x1ZGVfbGl0ZXJhbC50eHQnKQotIHV0Zl8xNl9m aWxlID0gbXlkaXIoJ3V0Zi0xNi5jc3YnKQotIHV0Zl8xNl9lcnJvcl9zdHIgPSAoIlVuaWNvZGVE ZWNvZGVFcnJvcjogJ2FzY2lpJyBjb2RlYyBjYW4ndCBkZWNvZGUgYnl0ZSAweGZlICIKLSAgICAg ICAgICAgICAgICAgICAgICJpbiBwb3NpdGlvbiAwOiBvcmRpbmFsIG5vdCBpbiByYW5nZSgxMjgp IikKLS1pZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA8 ICgzLCAwKToKLSAgICAgdXRmXzE2X2Vycm9yX3N0ciA9ICgiVW5pY29kZUVycm9yOiBVbmFibGUg dG8gZGVjb2RlIGlucHV0IGRhdGEuICAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIlRyaWVk IHRoZSBmb2xsb3dpbmcgZW5jb2RpbmdzOiAnYXNjaWknLlxuIgotICAgICAgICAgICAgICAgICAg ICAgICAgICIgICAgICAgICAgICAoJXMpIiAlIHV0Zl8xNl9lcnJvcl9zdHIpCi1kaWZmIC0tZ2l0 IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmF3LnB5 IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmF3LnB5 Ci1pbmRleCAyZGE5NjJhLi5iODZiMjNmIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmF3LnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yYXcucHkKLUBAIC0yNiw3ICsyNiw3 IEBAIHV0Zl8xNl9maWxlID0gb3MucGF0aC5qb2luKG15ZGlyLCAndXRmLTE2LmNzdicpCi0gdXRm XzE2X2ZpbGVfcmVsID0gRG9jdXRpbHNUZXN0U3VwcG9ydC51dGlscy5yZWxhdGl2ZV9wYXRoKE5v bmUsIHV0Zl8xNl9maWxlKQotIHV0Zl8xNl9lcnJvcl9zdHIgPSAoIlVuaWNvZGVEZWNvZGVFcnJv cjogJ2FzY2lpJyBjb2RlYyBjYW4ndCBkZWNvZGUgYnl0ZSAweGZlICIKLSAgICAgICAgICAgICAg ICAgICAgICJpbiBwb3NpdGlvbiAwOiBvcmRpbmFsIG5vdCBpbiByYW5nZSgxMjgpIikKLS1pZiBz eXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToK LSAgICAgdXRmXzE2X2Vycm9yX3N0ciA9ICgiVW5pY29kZUVycm9yOiBVbmFibGUgdG8gZGVjb2Rl IGlucHV0IGRhdGEuICAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIlRyaWVkIHRoZSBmb2xs b3dpbmcgZW5jb2RpbmdzOiAnYXNjaWknLlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICIg ICAgICAgICAgICAoJXMpIiAlIHV0Zl8xNl9lcnJvcl9zdHIpCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVzLnB5IGIvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVzLnB5Ci1p bmRleCBjYzQ1MGYzLi5jYTI3ZjlhIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkKLUBAIC0xOCw3ICsx OCw3IEBAIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QuZGlyZWN0aXZlcyBpbXBvcnQgdGFibGVz Ci0gZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gCi0taWYgc3lzLnZlcnNp b25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAg dW5pY29kZSA9IHN0ciAgIyBub3FhCi0gICAgIHVuaWNociA9IGNociAgIyBub3FhCi0gCi1kaWZm IC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rf dW5pY29kZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90 ZXN0X3VuaWNvZGUucHkKLWluZGV4IDU3NmJjMWQuLmI5OWI1ZDAgMTAwNzU1Ci0tLS0gYS90ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5Ci0r KysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmlj b2RlLnB5Ci1AQCAtMTQsNyArMTQsNyBAQCBpbXBvcnQgc3lzCi0gZnJvbSAuIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStp ZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY2hyID0gY2hyICAjIG5vcWEK LSAKLSAKLWRpZmYgLS1naXQgYS90b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weSBiL3Rvb2xzL2Rl di9jcmVhdGVfdW5pbWFwLnB5Ci1pbmRleCA4MDg4NjFkLi43NGU4YmM3IDEwMDc1NQotLS0tIGEv dG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkKLSsrKyBiL3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFw LnB5Ci1AQCAtMTQsNyArMTQsNyBAQCBmcm9tIHhtbC5kb20gaW1wb3J0IG1pbmlkb20KLSBpbXBv cnQgc3lzCi0gaW1wb3J0IHBwcmludAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6 Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICNu b3FhCi0gZWxzZToKLSAgICAgYnl0ZXMgPSBzdHIgICMgbm9xYQotQEAgLTIyLDcgKzIyLDcgQEAg ZWxzZToKLSAKLSAKLSBkZWYgdyhzKToKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMyww KSBhbmQgaXNpbnN0YW5jZShzLCB1bmljb2RlKToKLSsgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ PSAoMywgMCkgYW5kIGlzaW5zdGFuY2UocywgdW5pY29kZSk6Ci0gICAgICAgICBzID0gcy5lbmNv ZGUoJ3V0ZjgnKQotICAgICBzeXMuc3Rkb3V0LndyaXRlKHMpCi0gCi1kaWZmIC0tZ2l0IGEvdG9v bHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5IGIvdG9vbHMvZGV2L2dlbmVyYXRl X3B1bmN0dWF0aW9uX2NoYXJzLnB5Ci1pbmRleCBjZmU5N2RmLi45ZjIxMWI5IDEwMDY0NAotLS0t IGEvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5Ci0rKysgYi90b29scy9k ZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkKLUBAIC0zOCw3ICszOCw3IEBAIGZyb20g X19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSBpbXBvcnQgc3lzCi0gaW1wb3J0IHVu aWNvZGVkYXRhCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVy c2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY2hyID0gY2hyICAjIHVuaWNociBub3QgYXZh aWxhYmxlIGluIFB5M2sKLSBlbHNlOgotICAgICBpbXBvcnQgY29kZWNzCi1AQCAtMzYxLDcgKzM2 MSw3IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIyBJbXBvcnQgdGhlIHB1bmN0dWF0 aW9uX2NoYXJzIG1vZHVsZSBmcm9tIHRoZSBzb3VyY2UKLSAjIG9yIFB5M2sgYnVpbGQgcGF0aCBm b3IgbG9jYWwgUHl0aG9uIG1vZHVsZXM6OgotIAotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5m byA8ICgzLDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAgICAg ICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgJy4uLy4uL2RvY3V0aWxzJykKLSAgICAgICAgIGVs c2U6Ci0gICAgICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsICcuLi8uLi9idWlsZC9saWInKQot ZGlmZiAtLWdpdCBhL3Rvb2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkgYi90b29scy9kZXYvdW5p Y29kZTJyc3RzdWJzLnB5Ci1pbmRleCBhYzM4YmY0Li4wMjhhZjc4IDEwMDc1NQotLS0tIGEvdG9v bHMvZGV2L3VuaWNvZGUycnN0c3Vicy5weQotKysrIGIvdG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vi cy5weQotQEAgLTQ4LDcgKzQ4LDcgQEAgZGVmIG1haW4oYXJndj1Ob25lKToKLSAgICAgICAgIGlu cGF0aCA9ICd1bmljb2RlLnhtbCcKLSAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGlucGF0aCk6 Ci0gICAgICAgICB1c2FnZShhcmd2WzBdLCAxLCAnTm8gc3VjaCBmaWxlOiAiJXMiLicgJSBpbnBh dGgpCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0rICAgIGlmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsIDApOgotICAgICAgICAgaW5maWxlID0gb3BlbihpbnBhdGgsIG1vZGU9 J3JiJykKLSAgICAgZWxzZToKLSAgICAgICAgIGluZmlsZSA9IG9wZW4oaW5wYXRoKQotLS0gCi0y LjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0 aWxzL3BhdGNoZXMvMDAyMC1weTMtSGFuZGxlLVN0cmluZ0lPLXRvLWlvLXRyYW5zaXRpb24ucGF0 Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjAtcHkzLUhhbmRsZS1TdHJp bmdJTy10by1pby10cmFuc2l0aW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAxNjQwNjNkZDVjMy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMv cGF0Y2hlcy8wMDIwLXB5My1IYW5kbGUtU3RyaW5nSU8tdG8taW8tdHJhbnNpdGlvbi5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLUZyb20gMDM1YzY3MTA1ZjNjYmQxMmNjZjZh NzA4ZjM4ZjFmN2Y1YTE3YzY5OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBo ZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogV2VkLCAyMCBOb3YgMjAxOSAw MDoxMTowNCArMDcwMAotU3ViamVjdDogW1BBVENIIDIwLzI2XSBweTM6IEhhbmRsZSAnU3RyaW5n SU8nIHRvICdpbycgdHJhbnNpdGlvbi4KLQotVGhpcyBpc24ndCBzbyBtdWNoIGEgcmVuYW1lIGFz IGEgbWlncmF0aW9uLCBzaW5jZSB0aGluZ3MgZG9uJ3QgZG8gdGhlCi1zYW1lIHRoaW5nLgotCi1C YXNlZCBvbiBwYXRjaCBieTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci0K LWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5r QDgzNjggOTI5NTQzZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5 OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0 aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5ICAgICAgIHwgNyArKysrKystCi0gdGVzdC90ZXN0 X3V0aWxzLnB5ICAgICAgICAgICAgICAgICAgICAgfCAxICsKLSB0ZXN0L3Rlc3Rfd3JpdGVycy90 ZXN0X2RvY3V0aWxzX3htbC5weSB8IDcgKysrKysrLQotIDMgZmlsZXMgY2hhbmdlZCwgMTMgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRl cnMvZG9jdXRpbHNfeG1sLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkKLWlu ZGV4IDYwZWUwN2IuLjUxYWQ2YmQgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL2RvY3V0 aWxzX3htbC5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkKLUBAIC0y NSwxMSArMjUsMTYgQEAgaWYgIl94bWxwbHVzIiBpbiB4bWwuX19wYXRoX19bMF06ICMgUHlYTUwg c3ViLW1vZHVsZQotICAgICB4bWwuX19wYXRoX18ucmV2ZXJzZSgpICMgSWYgYm90aCBhcmUgYXZh aWxhYmxlLCBwcmVmZXIgc3RkbGliIG92ZXIgUHlYTUwKLSAKLSBpbXBvcnQgeG1sLnNheC5zYXh1 dGlscwotLWZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi0gCi0gaW1wb3J0IGRvY3V0aWxz Ci0gZnJvbSBkb2N1dGlscyBpbXBvcnQgZnJvbnRlbmQsIHdyaXRlcnMsIG5vZGVzCi0gCi0raWYg c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIGZyb20gaW8gaW1wb3J0IFN0cmluZ0lP ICAjIG5vcWEKLStlbHNlOgotKyAgICBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTyAgIyBu b3FhCi0rCi0rCi0gaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUg PSBzdHIgICMgbm9xYQotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF91dGlscy5weSBiL3Rlc3Qv dGVzdF91dGlscy5weQotaW5kZXggNTllMjljOC4uY2IxZWM5ZSAxMDA3NTUKLS0tLSBhL3Rlc3Qv dGVzdF91dGlscy5weQotKysrIGIvdGVzdC90ZXN0X3V0aWxzLnB5Ci1AQCAtMTMsNiArMTMsNyBA QCBpbXBvcnQgdW5pdHRlc3QKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IG9zCi0gZnJvbSBEb2N1dGls c1Rlc3RTdXBwb3J0IGltcG9ydCBkb2N1dGlscywgdXRpbHMsIG5vZGVzCi0rCi0gdHJ5OgotICAg ICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwotIGV4Y2VwdCBJbXBvcnRFcnJvcjogICAgIyBpbyBp cyBuZXcgaW4gUHl0aG9uIDIuNgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3Rf ZG9jdXRpbHNfeG1sLnB5IGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9kb2N1dGlsc194bWwucHkK LWluZGV4IDVhNmNkYTMuLmNlZDM0NzMgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfd3JpdGVycy90 ZXN0X2RvY3V0aWxzX3htbC5weQotKysrIGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9kb2N1dGls c194bWwucHkKLUBAIC0xNSwxMiArMTUsMTcgQEAgVGVzdCBmb3IgZG9jdXRpbHMgWE1MIHdyaXRl ci4KLSAiIiIKLSBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZy b20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi0raW1wb3J0IHN5cwotIAotIGZyb20gLiBpbXBv cnQgRG9jdXRpbHNUZXN0U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0aWxz Ci0gaW1wb3J0IGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLmNvcmUKLSAKLStpZiBzeXMudmVy c2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KLStlbHNl OgotKyAgICBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotKwotICMgc2FtcGxlIHN0cmlu Z3MKLSAjIC0tLS0tLS0tLS0tLS0tCi0gCi0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDIxLVJlbW92ZS1h dXhpbGlhcnktUHl0aG9uLTItMy1jb21wYXRpYmlsaXR5LWRlZmluaXRpb24ucGF0Y2ggYi9zcmNw a2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjEtUmVtb3ZlLWF1eGlsaWFyeS1QeXRob24t Mi0zLWNvbXBhdGliaWxpdHktZGVmaW5pdGlvbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggY2VhMjY5YjFiNjkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRv Y3V0aWxzL3BhdGNoZXMvMDAyMS1SZW1vdmUtYXV4aWxpYXJ5LVB5dGhvbi0yLTMtY29tcGF0aWJp bGl0eS1kZWZpbml0aW9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotRnJv bSAzYTYxMGQyMDUyNTliY2Y3ZjIyZmQ4YzMzYzc4ZmZiNzA4Mjk5ODlkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1E YXRlOiBXZWQsIDIwIE5vdiAyMDE5IDAwOjE0OjExICswNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMjEv MjZdIFJlbW92ZSBhdXhpbGlhcnkgUHl0aG9uIDIvMyBjb21wYXRpYmlsaXR5IGRlZmluaXRpb24K LSBtb2R1bGUuCi0KLU5vIGxvbmdlciByZXF1aXJlZCBzaW5jZSBzZXR0aW5nIG1pbmltYWwgc3Vw cG9ydGVkIHZlcnNpb24gdG8gMi43LgotVGhlIHJlbWFpbmluZyBpc3N1ZXMgYXJlIG5vdyBoYW5k bGVkIGRpcmVjdGx5IGluIHRoZSBhZmZlY3RlZCBtb2R1bGVzLgotCi1naXQtc3ZuLWlkOiBodHRw Oi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzY5IDkyOTU0M2Y2LWU0 ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcg RGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy9fY29tcGF0LnB5ICAg ICAgICAgICB8IDI0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHRlc3QvdGVzdF9wdWJsaXNo ZXIucHkgICAgICAgIHwgIDggKysrKysrKy0KLSB0ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X29kdC5w eSB8ICAzICstLQotIDMgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlv bnMoLSkKLSBkZWxldGUgbW9kZSAxMDA2NDQgZG9jdXRpbHMvX2NvbXBhdC5weQotCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvX2NvbXBhdC5weSBiL2RvY3V0aWxzL19jb21wYXQucHkKLWRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMWZmOTU5Yy4uMDAwMDAwMAotLS0tIGEvZG9jdXRpbHMv X2NvbXBhdC5weQotKysrIC9kZXYvbnVsbAotQEAgLTEsMjQgKzAsMCBAQAotLSMgJElkOiBfY29t cGF0LnB5IDgxNjQgMjAxNy0wOC0xNCAxMToyODo0OFogbWlsZGUgJAotLSMgQXV0aG9yOiBHZW9y ZyBCcmFuZGwgPGdlb3JnQHB5dGhvbi5vcmc+Ci0tIyBDb3B5cmlnaHQ6IFRoaXMgbW9kdWxlIGhh cyBiZWVuIHBsYWNlZCBpbiB0aGUgcHVibGljIGRvbWFpbi4KLS0KLS0iIiIKLS1QeXRob24gMi8z IGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbnMuCi0tCi0tVGhpcyBtb2R1bGUgY3VycmVudGx5IHBy b3ZpZGVzIHRoZSBmb2xsb3dpbmcgaGVscGVyIHN5bWJvbHM6Ci0tCi0tKiB1X3ByZWZpeCAodW5p Y29kZSByZXByIHByZWZpeDogJ3UnIGluIDIueCwgJycgaW4gMy54KQotLSAgKFJlcXVpcmVkIGlu IGRvY3V0aWxzL3Rlc3QvdGVzdF9wdWJsaXNoZXIucHkpCi0tKiBCeXRlc0lPIChhIFN0cmluZ0lP IGNsYXNzIHRoYXQgd29ya3Mgd2l0aCBieXRlc3RyaW5ncykKLS0iIiIKLS0KLS1pbXBvcnQgc3lz Ci0tCi0taWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLS0gICAgdV9wcmVmaXggPSAndScK LS0gICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8gYXMgQnl0ZXNJTwotLWVsc2U6Ci0t ICAgIHVfcHJlZml4ID0gYicnCi0tICAgICMgdXNpbmcgdGhpcyBoYWNrIHNpbmNlIDJ0bzMgImZp eGVzIiB0aGUgcmVsYXRpdmUgaW1wb3J0Ci0tICAgICMgd2hlbiB1c2luZyBgYGZyb20gaW8gaW1w b3J0IEJ5dGVzSU9gYAotLSAgICBCeXRlc0lPID0gX19pbXBvcnRfXygnaW8nKS5CeXRlc0lPCi1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3B1Ymxpc2hlci5weSBiL3Rlc3QvdGVzdF9wdWJsaXNoZXIu cHkKLWluZGV4IDA0ZDljNzEuLjJjMzg0NWMgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcHVibGlz aGVyLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcHVibGlzaGVyLnB5Ci1AQCAtOSwxMCArOSwxNiBAQCBU ZXN0IHRoZSBgUHVibGlzaGVyYCBmYWNhZGUgYW5kIHRoZSBgYHB1Ymxpc2hfKmBgIGNvbnZlbmll bmNlIGZ1bmN0aW9ucy4KLSAiIiIKLSAKLSBpbXBvcnQgcGlja2xlCi0raW1wb3J0IHN5cwotKwot IGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0ICAgICAgICAgICAgICAjIG11c3QgYmUgaW1wb3J0 ZWQgYmVmb3JlIGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzCi0gZnJvbSBkb2N1dGlscyBpbXBv cnQgY29yZSwgbm9kZXMsIGlvCi0tZnJvbSBkb2N1dGlscy5fY29tcGF0IGltcG9ydCB1X3ByZWZp eAotKwotK2lmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0rICAgIHVfcHJlZml4ID0gJ3Un Ci0rZWxzZToKLSsgICAgdV9wcmVmaXggPSBiJycKLSAKLSAKLSB0ZXN0X2RvY3VtZW50ID0gIiIi XAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3Rfb2R0LnB5IGIvdGVzdC90ZXN0 X3dyaXRlcnMvdGVzdF9vZHQucHkKLWluZGV4IGE0N2I3ZmIuLjZlYzNlZjIgMTAwNzU1Ci0tLS0g YS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X29kdC5weQotKysrIGIvdGVzdC90ZXN0X3dyaXRlcnMv dGVzdF9vZHQucHkKLUBAIC0zNiwxMiArMzYsMTEgQEAgaW1wb3J0IG9zCi0gaW1wb3J0IHppcGZp bGUKLSBmcm9tIHhtbC5kb20gaW1wb3J0IG1pbmlkb20KLSBpbXBvcnQgdGVtcGZpbGUKLStmcm9t IGlvIGltcG9ydCBCeXRlc0lPCi0gCi0gZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 Ci0tCi0gaW1wb3J0IGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLmNvcmUKLS1mcm9tIGRvY3V0 aWxzLl9jb21wYXQgaW1wb3J0IEJ5dGVzSU8KLSAKLSAjCi0gIyBHbG9iYWxzCi0tLSAKLTIuMjQu MC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMv cGF0Y2hlcy8wMDIyLXB5My1IYW5kbGUtdXJsbGliLXVybGxpYjItdG8tdXJsaWIuLXJlbmFtZS5w YXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyMi1weTMtSGFuZGxlLXVy bGxpYi11cmxsaWIyLXRvLXVybGliLi1yZW5hbWUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDBmYTYyOWVjMmU5Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1k b2N1dGlscy9wYXRjaGVzLzAwMjItcHkzLUhhbmRsZS11cmxsaWItdXJsbGliMi10by11cmxpYi4t cmVuYW1lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAyICswLDAgQEAKLUZyb20gNWVlMjQ4 MTc0MTFkOTA1N2M3MzhkYzFjZDdjZGE4ZmM1ZmUwM2RkNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogVHVl LCAyNyBBdWcgMjAxOSAxMjoxMDozOSArMDAwMAotU3ViamVjdDogW1BBVENIIDIyLzI2XSBweTM6 IEhhbmRsZSAndXJsbGliJywgJ3VybGxpYjInIHRvICd1cmxpYi4qJyByZW5hbWUKLQotU2lnbmVk LW9mZi1ieTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci0KLWdpdC1zdm4t aWQ6IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNzAgOTI5 NTQzZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2FuIFRy YW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL3BhcnNl cnMvcnN0L2RpcmVjdGl2ZXMvaW1hZ2VzLnB5IHwgMTEgKysrKysrKysrLS0KLSBkb2N1dGlscy9w YXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2MucHkgICB8IDEwICsrKysrKystLS0KLSBkb2N1dGls cy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weSB8IDExICsrKysrKysrLS0tCi0gZG9j dXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkgICAgICAgICAgfCAgOCArKysrKystLQotIGRv Y3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weSAgICAgICAgICAgIHwgIDcgKysrKystLQotIGRv Y3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weSAgICAgIHwgIDkgKysrKysrKy0tCi0g NiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvaW1hZ2VzLnB5IGIvZG9j dXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9pbWFnZXMucHkKLWluZGV4IGM4MTNmYTMuLjM4 MzA3NWIgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2ltYWdl cy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9pbWFnZXMucHkKLUBA IC0xMCwxMiArMTAsMTMgQEAgX19kb2Nmb3JtYXRfXyA9ICdyZVN0cnVjdHVyZWRUZXh0JwotIAot IAotIGltcG9ydCBzeXMKLS1pbXBvcnQgdXJsbGliCi0rCi0gZnJvbSBkb2N1dGlscyBpbXBvcnQg bm9kZXMsIHV0aWxzCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgRGlyZWN0aXZl Ci0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgZGlyZWN0aXZlcywgc3RhdGVzCi0g ZnJvbSBkb2N1dGlscy5ub2RlcyBpbXBvcnQgZnVsbHlfbm9ybWFsaXplX25hbWUsIHdoaXRlc3Bh Y2Vfbm9ybWFsaXplX25hbWUKLSBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0LnJvbGVzIGltcG9y dCBzZXRfY2xhc3NlcwotKwotIHRyeTogIyBjaGVjayBmb3IgdGhlIFB5dGhvbiBJbWFnaW5nIExp YnJhcnkKLSAgICAgaW1wb3J0IFBJTC5JbWFnZQotIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLUBAIC0y Niw2ICsyNywxMiBAQCBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgIGV4Y2VwdCBJbXBvcnRFcnJv cjoKLSAgICAgICAgIFBJTCA9IE5vbmUKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAw KToKLSsgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsMnBhdGhuYW1lCi0rZWxzZToK LSsgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHVybDJwYXRobmFtZQotKwotKwotIGNsYXNzIEltYWdl KERpcmVjdGl2ZSk6Ci0gCi0gICAgIGFsaWduX2hfdmFsdWVzID0gKCdsZWZ0JywgJ2NlbnRlcics ICdyaWdodCcpCi1AQCAtMTI1LDcgKzEzMiw3IEBAIGNsYXNzIEZpZ3VyZShJbWFnZSk6Ci0gICAg ICAgICBmaWd1cmVfbm9kZSA9IG5vZGVzLmZpZ3VyZSgnJywgaW1hZ2Vfbm9kZSkKLSAgICAgICAg IGlmIGZpZ3dpZHRoID09ICdpbWFnZSc6Ci0gICAgICAgICAgICAgaWYgUElMIGFuZCBzZWxmLnN0 YXRlLmRvY3VtZW50LnNldHRpbmdzLmZpbGVfaW5zZXJ0aW9uX2VuYWJsZWQ6Ci0tICAgICAgICAg ICAgICAgIGltYWdlcGF0aCA9IHVybGxpYi51cmwycGF0aG5hbWUoaW1hZ2Vfbm9kZVsndXJpJ10p Ci0rICAgICAgICAgICAgICAgIGltYWdlcGF0aCA9IHVybDJwYXRobmFtZShpbWFnZV9ub2RlWyd1 cmknXSkKLSAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAgaW1nID0g UElMLkltYWdlLm9wZW4oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlcGF0aC5l bmNvZGUoc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpKSkKLWRpZmYgLS1naXQgYS9kb2N1dGls cy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2MucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9k aXJlY3RpdmVzL21pc2MucHkKLWluZGV4IDBmYzM2MTAuLmYyMmRhZTIgMTAwNjQ0Ci0tLS0gYS9k b2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2MucHkKLSsrKyBiL2RvY3V0aWxzL3Bh cnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weQotQEAgLTIyNywxMCArMjI3LDE0IEBAIGNsYXNz IFJhdyhEaXJlY3RpdmUpOgotICAgICAgICAgICAgICMgRG8gbm90IGltcG9ydCB1cmxsaWIyIGF0 IHRoZSB0b3Agb2YgdGhlIG1vZHVsZSBiZWNhdXNlCi0gICAgICAgICAgICAgIyBpdCBtYXkgZmFp bCBkdWUgdG8gYnJva2VuIFNTTCBkZXBlbmRlbmNpZXMsIGFuZCBpdCB0YWtlcwotICAgICAgICAg ICAgICMgYWJvdXQgMC4xNSBzZWNvbmRzIHRvIGxvYWQuCi0tICAgICAgICAgICAgaW1wb3J0IHVy bGxpYjIKLSsgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAg ICAgICAgICAgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgotKyAgICAgICAg ICAgICAgICBmcm9tIHVybGxpYi5lcnJvciBpbXBvcnQgVVJMRXJyb3IKLSsgICAgICAgICAgICBl bHNlOgotKyAgICAgICAgICAgICAgICBmcm9tIHVybGxpYjIgaW1wb3J0IHVybG9wZW4sIFVSTEVy cm9yCi0gICAgICAgICAgICAgdHJ5OgotLSAgICAgICAgICAgICAgICByYXdfdGV4dCA9IHVybGxp YjIudXJsb3Blbihzb3VyY2UpLnJlYWQoKQotLSAgICAgICAgICAgIGV4Y2VwdCAodXJsbGliMi5V UkxFcnJvciwgSU9FcnJvciwgT1NFcnJvcikgYXMgZXJyb3I6Ci0rICAgICAgICAgICAgICAgIHJh d190ZXh0ID0gdXJsb3Blbihzb3VyY2UpLnJlYWQoKQotKyAgICAgICAgICAgIGV4Y2VwdCAoVVJM RXJyb3IsIElPRXJyb3IsIE9TRXJyb3IpIGFzIGVycm9yOgotICAgICAgICAgICAgICAgICByYWlz ZSBzZWxmLnNldmVyZSh1J1Byb2JsZW1zIHdpdGggIiVzIiBkaXJlY3RpdmUgVVJMICIlcyI6XG4l cy4nCi0gICAgICAgICAgICAgICAgICAgICAlIChzZWxmLm5hbWUsIHNlbGYub3B0aW9uc1sndXJs J10sIEVycm9yU3RyaW5nKGVycm9yKSkpCi0gICAgICAgICAgICAgcmF3X2ZpbGUgPSBpby5TdHJp bmdJbnB1dChzb3VyY2U9cmF3X3RleHQsIHNvdXJjZV9wYXRoPXNvdXJjZSwKLWRpZmYgLS1naXQg YS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weSBiL2RvY3V0aWxzL3Bh cnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5Ci1pbmRleCBiNjk4ZTA4Li42Mjg0YWI3IDEw MDY0NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLSsr KyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5Ci1AQCAtMzMyLDEx ICszMzIsMTYgQEAgY2xhc3MgQ1NWVGFibGUoVGFibGUpOgotICAgICAgICAgICAgICMgRG8gbm90 IGltcG9ydCB1cmxsaWIyIGF0IHRoZSB0b3Agb2YgdGhlIG1vZHVsZSBiZWNhdXNlCi0gICAgICAg ICAgICAgIyBpdCBtYXkgZmFpbCBkdWUgdG8gYnJva2VuIFNTTCBkZXBlbmRlbmNpZXMsIGFuZCBp dCB0YWtlcwotICAgICAgICAgICAgICMgYWJvdXQgMC4xNSBzZWNvbmRzIHRvIGxvYWQuCi0tICAg ICAgICAgICAgaW1wb3J0IHVybGxpYjIKLSsgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLCAwKToKLSsgICAgICAgICAgICAgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQg dXJsb3BlbgotKyAgICAgICAgICAgICAgICBmcm9tIHVybGxpYi5lcnJvciBpbXBvcnQgVVJMRXJy b3IKLSsgICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAgICBmcm9tIHVybGxpYjIgaW1w b3J0IHVybG9wZW4sIFVSTEVycm9yCi0rCi0gICAgICAgICAgICAgc291cmNlID0gc2VsZi5vcHRp b25zWyd1cmwnXQotICAgICAgICAgICAgIHRyeToKLS0gICAgICAgICAgICAgICAgY3N2X3RleHQg PSB1cmxsaWIyLnVybG9wZW4oc291cmNlKS5yZWFkKCkKLS0gICAgICAgICAgICBleGNlcHQgKHVy bGxpYjIuVVJMRXJyb3IsIElPRXJyb3IsIE9TRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGVycm9yOgot KyAgICAgICAgICAgICAgICBjc3ZfdGV4dCA9IHVybG9wZW4oc291cmNlKS5yZWFkKCkKLSsgICAg ICAgICAgICBleGNlcHQgKFVSTEVycm9yLCBJT0Vycm9yLCBPU0Vycm9yLCBWYWx1ZUVycm9yKSBh cyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgc2V2ZXJlID0gc2VsZi5zdGF0ZV9tYWNoaW5lLnJl cG9ydGVyLnNldmVyZSgKLSAgICAgICAgICAgICAgICAgICAgICAgJ1Byb2JsZW1zIHdpdGggIiVz IiBkaXJlY3RpdmUgVVJMICIlcyI6XG4lcy4nCi0gICAgICAgICAgICAgICAgICAgICAgICUgKHNl bGYubmFtZSwgc2VsZi5vcHRpb25zWyd1cmwnXSwgU2FmZVN0cmluZyhlcnJvcikpLAotZGlmZiAt LWdpdCBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5IGIvZG9jdXRpbHMvdXRpbHMv bWF0aC9tYXRoMmh0bWwucHkKLWluZGV4IDQ3NTUxOWYuLjc1N2RlYzAgMTAwNjQ0Ci0tLS0gYS9k b2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvbWF0 aC9tYXRoMmh0bWwucHkKLUBAIC0yNyw3ICsyNywxMSBAQCBpbXBvcnQgaW8KLSBpbXBvcnQgb3Mu cGF0aAotIGltcG9ydCBzeXMKLSBpbXBvcnQgdW5pY29kZWRhdGEKLS1pbXBvcnQgdXJsbGliCi0r Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIGZyb20gdXJsbGliLnBhcnNl IGltcG9ydCBxdW90ZV9wbHVzCi0rZWxzZToKLSsgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHF1b3Rl X3BsdXMKLSAKLSAKLSBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLUBAIC0yOTI3LDcg KzI5MzEsNyBAQCBjbGFzcyBGb3JtdWxhKENvbnRhaW5lcik6Ci0gCi0gICBkZWYgZ29vZ2xlY2hh cnRzKHNlbGYpOgotICAgICAiTWFrZSB0aGUgY29udGVudHMgdXNpbmcgR29vZ2xlIENoYXJ0cyBo dHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvY2hhcnQvLiIKLS0gICAgdXJsID0gRm9ybXVsYUNv bmZpZy51cmxzWydnb29nbGVjaGFydHMnXSArIHVybGxpYi5xdW90ZV9wbHVzKHNlbGYucGFyc2Vk KQotKyAgICB1cmwgPSBGb3JtdWxhQ29uZmlnLnVybHNbJ2dvb2dsZWNoYXJ0cyddICsgcXVvdGVf cGx1cyhzZWxmLnBhcnNlZCkKLSAgICAgaW1nID0gJzxpbWcgY2xhc3M9ImNoYXJ0IiBzcmM9Iicg KyB1cmwgKyAnIiBhbHQ9IicgKyBzZWxmLnBhcnNlZCArICciLz4nCi0gICAgIHNlbGYuY29udGVu dHMgPSBbQ29uc3RhbnQoaW1nKV0KLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL19o dG1sX2Jhc2UucHkgYi9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkKLWluZGV4IGE5NTcz MTEuLmY5MWIwNmMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkK LSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotQEAgLTIwLDcgKzIwLDYgQEAK LSBpbXBvcnQgc3lzCi0gaW1wb3J0IG9zLnBhdGgKLSBpbXBvcnQgcmUKLS1pbXBvcnQgdXJsbGli Ci0gCi0gdHJ5OiAjIGNoZWNrIGZvciB0aGUgUHl0aG9uIEltYWdpbmcgTGlicmFyeQotICAgICBp bXBvcnQgUElMLkltYWdlCi1AQCAtMzksNiArMzgsMTAgQEAgZnJvbSBkb2N1dGlscy50cmFuc2Zv cm1zIGltcG9ydCB3cml0ZXJfYXV4Ci0gZnJvbSBkb2N1dGlscy51dGlscy5tYXRoIGltcG9ydCAo dW5pY2hhcjJ0ZXgsIHBpY2tfbWF0aF9lbnZpcm9ubWVudCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtYXRoMmh0bWwsIGxhdGV4Mm1hdGhtbCwgdGV4Mm1hdGhtbF9leHRlcm4p Ci0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIGZyb20gdXJsbGliLnJl cXVlc3QgaW1wb3J0IHVybDJwYXRobmFtZQotK2Vsc2U6Ci0rICAgIGZyb20gdXJsbGliIGltcG9y dCB1cmwycGF0aG5hbWUKLSAKLSBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAg dW5pY29kZSA9IHN0ciAgIyBub3FhCi1AQCAtOTIzLDcgKzkyNiw3IEBAIGNsYXNzIEhUTUxUcmFu c2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAgIGlmICdzY2FsZScgaW4gbm9kZToK LSAgICAgICAgICAgICBpZiAoUElMIGFuZCBub3QgKCd3aWR0aCcgaW4gbm9kZSBhbmQgJ2hlaWdo dCcgaW4gbm9kZSkKLSAgICAgICAgICAgICAgICAgYW5kIHNlbGYuc2V0dGluZ3MuZmlsZV9pbnNl cnRpb25fZW5hYmxlZCk6Ci0tICAgICAgICAgICAgICAgIGltYWdlcGF0aCA9IHVybGxpYi51cmwy cGF0aG5hbWUodXJpKQotKyAgICAgICAgICAgICAgICBpbWFnZXBhdGggPSB1cmwycGF0aG5hbWUo dXJpKQotICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICBpbWcgPSBQ SUwuSW1hZ2Uub3BlbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VwYXRoLmVu Y29kZShzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkpKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxz L3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weSBiL2RvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9f X2luaXRfXy5weQotaW5kZXggMDViNTVlYi4uYTYwZGU0OCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxz L3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9sYXRl eDJlL19faW5pdF9fLnB5Ci1AQCAtMTcsMTYgKzE3LDIxIEBAIGltcG9ydCBzeXMKLSBpbXBvcnQg b3MKLSBpbXBvcnQgcmUKLSBpbXBvcnQgc3RyaW5nCi0taW1wb3J0IHVybGxpYgotKwotIHRyeToK LSAgICAgaW1wb3J0IHJvbWFuCi0gZXhjZXB0IEltcG9ydEVycm9yOgotICAgICBpbXBvcnQgZG9j dXRpbHMudXRpbHMucm9tYW4gYXMgcm9tYW4KLSsKLSBmcm9tIGRvY3V0aWxzIGltcG9ydCBmcm9u dGVuZCwgbm9kZXMsIGxhbmd1YWdlcywgd3JpdGVycywgdXRpbHMsIGlvCi0gZnJvbSBkb2N1dGls cy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IFNhZmVTdHJpbmcKLSBmcm9tIGRvY3V0aWxz LnRyYW5zZm9ybXMgaW1wb3J0IHdyaXRlcl9hdXgKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLm1hdGgg aW1wb3J0IHBpY2tfbWF0aF9lbnZpcm9ubWVudCwgdW5pY2hhcjJ0ZXgKLSAKLStpZiBzeXMudmVy c2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJs MnBhdGhuYW1lCi0rZWxzZToKLSsgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHVybDJwYXRobmFtZQot IAotIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmljb2RlID0gc3RyICAj IG5vcWEKLUBAIC0yMzY5LDcgKzIzNzQsNyBAQCBjbGFzcyBMYVRlWFRyYW5zbGF0b3Iobm9kZXMu Tm9kZVZpc2l0b3IpOgotICAgICAgICAgc2VsZi5yZXF1aXJlbWVudHNbJ2dyYXBoaWN4J10gPSBz ZWxmLmdyYXBoaWN4X3BhY2thZ2UKLSAgICAgICAgIGF0dHJzID0gbm9kZS5hdHRyaWJ1dGVzCi0g ICAgICAgICAjIENvbnZlcnQgaW1hZ2UgVVJJIHRvIGEgbG9jYWwgZmlsZSBwYXRoCi0tICAgICAg ICBpbWFnZXBhdGggPSB1cmxsaWIudXJsMnBhdGhuYW1lKGF0dHJzWyd1cmknXSkucmVwbGFjZSgn XFwnLCAnLycpCi0rICAgICAgICBpbWFnZXBhdGggPSB1cmwycGF0aG5hbWUoYXR0cnNbJ3VyaSdd KS5yZXBsYWNlKCdcXCcsICcvJykKLSAgICAgICAgICMgYWxpZ25tZW50IGRlZmF1bHRzOgotICAg ICAgICAgaWYgbm90ICdhbGlnbicgaW4gYXR0cnM6Ci0gICAgICAgICAgICAgIyBTZXQgZGVmYXVs dCBhbGlnbiBvZiBpbWFnZSBpbiBhIGZpZ3VyZSB0byAnY2VudGVyJwotLS0gCi0yLjI0LjAuMzc1 LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNo ZXMvMDAyMy1weTMtRml4LW1hZ2ljLW1ldGhvZHMucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1 dGlscy9wYXRjaGVzLzAwMjMtcHkzLUZpeC1tYWdpYy1tZXRob2RzLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBjOGFhZTM1YWU3YS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDIzLXB5My1GaXgtbWFnaWMtbWV0aG9kcy5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDM1MiArMCwwIEBACi1Gcm9tIDBhNjg5NjViN2Y1ODgwYWVi ODY0MmEwODFmZjVlYmQ4NmEwZDFjNGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBT dGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IFR1ZSwgMjcgQXVnIDIw MTkgMTI6MTA6NTIgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAyMy8yNl0gcHkzOiBGaXggbWFnaWMg bWV0aG9kcwotCi1QeXRob24gMyB1c2VzICdfX2Jvb2xfXycgYW5kICdfX25leHRfXycsIHdoZXJl IFB5dGhvbiAyIHVzZWQKLSdfX25vbnplcm9fXycgYW5kICduZXh0Jy4gVXNlIHRoZSBuZXcgbmFt ZXMgYnV0IGFkZCBhbGlhc2VzLgotCi1CYXNlZCBvbiBwYXRjaCBieSBTdGVwaGVuIEZpbnVjYW5l IDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5l dC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM3MSA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNi ZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhA Z21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvbm9kZXMucHkgICAgICAgICAgICAgICAgfCAgOCAr LS0KLSBkb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weSB8IDkzICsrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCi0gZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5ICAgICAgfCAg NiArKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvbm9kZXMucHkgYi9kb2N1dGlscy9ub2Rlcy5weQot aW5kZXggZGQ5YzRiNi4uNmZmZmE1NiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL25vZGVzLnB5Ci0r KysgYi9kb2N1dGlscy9ub2Rlcy5weQotQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgTm9kZShvYmpl Y3QpOgotICAgICBsaW5lID0gTm9uZQotICAgICAiIiJUaGUgbGluZSBudW1iZXIgKDEtYmFzZWQp IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBOb2RlIGluIGBzb3VyY2VgLiIiIgotIAotLSAgICBk ZWYgX19ub256ZXJvX18oc2VsZik6Ci0rICAgIGRlZiBfX2Jvb2xfXyhzZWxmKToKLSAgICAgICAg ICIiIgotICAgICAgICAgTm9kZSBpbnN0YW5jZXMgYXJlIGFsd2F5cyB0cnVlLCBldmVuIGlmIHRo ZXkncmUgZW1wdHkuICBBIG5vZGUgaXMgbW9yZQotICAgICAgICAgdGhhbiBhIHNpbXBsZSBjb250 YWluZXIuICBJdHMgYm9vbGVhbiAidHJ1dGgiIGRvZXMgbm90IGRlcGVuZCBvbgotQEAgLTY0LDYg KzY0LDkgQEAgY2xhc3MgTm9kZShvYmplY3QpOgotICAgICAgICAgIiIiCi0gICAgICAgICByZXR1 cm4gVHJ1ZQotIAotKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotKyAgICAgICAg X19ub256ZXJvX18gPSBfX2Jvb2xfXwotKwotICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMs IDApOgotICAgICAgICAgIyBvbiAyLngsIHN0cihub2RlKSB3aWxsIGJlIGEgYnl0ZSBzdHJpbmcg d2l0aCBVbmljb2RlCi0gICAgICAgICAjIGNoYXJhY3RlcnMgPiAyNTUgZXNjYXBlZDsgb24gMy54 IHRoaXMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeQotQEAgLTU0NCw4ICs1NDcsNyBAQCBjbGFzcyBF bGVtZW50KE5vZGUpOgotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICByZXR1cm4gc2VsZi5l bXB0eXRhZygpCi0gCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6Ci0tICAgICAg ICAjIDJ0bzMgZG9lc24ndCBjb252ZXJ0IF9fdW5pY29kZV9fIHRvIF9fc3RyX18KLSsgICAgaWYg c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgICAgICBfX3N0cl9fID0gX191bmljb2Rl X18KLSAKLSAgICAgZGVmIHN0YXJ0dGFnKHNlbGYsIHF1b3RlYXR0cj1Ob25lKToKLWRpZmYgLS1n aXQgYS9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weSBiL2RvY3V0aWxzL3V0aWxzL21h dGgvbWF0aDJodG1sLnB5Ci1pbmRleCA3NTdkZWMwLi5hN2UyYWVkIDEwMDY0NAotLS0tIGEvZG9j dXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL21hdGgv bWF0aDJodG1sLnB5Ci1AQCAtMTMxMyw2ICsxMzEzLDkgQEAgY2xhc3MgQnJhbmNoT3B0aW9ucyhv YmplY3QpOgotICAgICAiU3RyaW5nIHJlcHJlc2VudGF0aW9uIgotICAgICByZXR1cm4gJ29wdGlv bnMgZm9yICcgKyBzZWxmLm5hbWUgKyAnOiAnICsgdW5pY29kZShzZWxmLm9wdGlvbnMpCi0gCi0r ICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgX19zdHJfXyA9IF9fdW5pY29k ZV9fCi0rCi0gCi0gY2xhc3MgQ2xvbmVyKG9iamVjdCk6Ci0gICAiQW4gb2JqZWN0IHVzZWQgdG8g Y2xvbmUgb3RoZXIgb2JqZWN0cy4iCi1AQCAtMTQ1Myw2ICsxNDU2LDEwIEBAIGNsYXNzIFBhcnNl cihvYmplY3QpOgotICAgICAiUmV0dXJuIGEgZGVzY3JpcHRpb24iCi0gICAgIHJldHVybiBzZWxm Ll9fY2xhc3NfXy5fX25hbWVfXyArICcgKCcgKyB1bmljb2RlKHNlbGYuYmVnaW4pICsgJyknCi0g Ci0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgX19zdHJfXyA9IF9fdW5p Y29kZV9fCi0rCi0rCi0gY2xhc3MgTG9uZUNvbW1hbmQoUGFyc2VyKToKLSAgICJBIHBhcnNlciBm b3IganVzdCBvbmUgY29tbWFuZCBsaW5lIgotIAotQEAgLTE5ODYsNiArMTk5MywxMCBAQCBjbGFz cyBFbmRpbmdMaXN0KG9iamVjdCk6Ci0gICAgICAgc3RyaW5nID0gc3RyaW5nWzotMV0KLSAgICAg cmV0dXJuIHN0cmluZyArICddJwotIAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6 Ci0rICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotKwotKwotIGNsYXNzIFBvc2l0aW9uRW5kaW5n KG9iamVjdCk6Ci0gICAiQW4gZW5kaW5nIGZvciBhIHBhcnNpbmcgcG9zaXRpb24iCi0gCi1AQCAt MjAwNCw2ICsyMDE1LDggQEAgY2xhc3MgUG9zaXRpb25FbmRpbmcob2JqZWN0KToKLSAgICAgICBz dHJpbmcgKz0gJyAob3B0aW9uYWwpJwotICAgICByZXR1cm4gc3RyaW5nCi0gCi0rICBpZiBzeXMu dmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgX19zdHJfXyA9IF9fdW5pY29kZV9fCi0gCi0g Ci0gY2xhc3MgUG9zaXRpb24oR2xvYmFibGUpOgotQEAgLTIwNDYsMTEgKzIwNTksMTQgQEAgY2xh c3MgUG9zaXRpb24oR2xvYmFibGUpOgotICAgICBzZWxmLnNraXAoY3VycmVudCkKLSAgICAgcmV0 dXJuIGN1cnJlbnQKLSAKLS0gIGRlZiBuZXh0KHNlbGYpOgotKyAgZGVmIF9fbmV4dF9fKHNlbGYp OgotICAgICAiQWR2YW5jZSB0aGUgcG9zaXRpb24gYW5kIHJldHVybiB0aGUgbmV4dCBjaGFyYWN0 ZXIuIgotICAgICBzZWxmLnNraXBjdXJyZW50KCkKLSAgICAgcmV0dXJuIHNlbGYuY3VycmVudCgp Ci0gCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotKyAgICAgIG5leHQgPSBfX25l eHRfXwotKwotICAgZGVmIGNoZWNrc2tpcChzZWxmLCBzdHJpbmcpOgotICAgICAiQ2hlY2sgZm9y IGEgc3RyaW5nIGF0IHRoZSBnaXZlbiBwb3NpdGlvbjsgaWYgdGhlcmUsIHNraXAgaXQiCi0gICAg IGlmIG5vdCBzZWxmLmNoZWNrZm9yKHN0cmluZyk6Ci1AQCAtMjMxMiw2ICsyMzI4LDEwIEBAIGNs YXNzIENvbnRhaW5lcihvYmplY3QpOgotICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXy5fX25h bWVfXwotICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18uX19uYW1lX18gKyAnQCcgKyB1bmljb2Rl KHNlbGYuYmVnaW4pCi0gCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAg X19zdHJfXyA9IF9fdW5pY29kZV9fCi0rCi0rCi0gY2xhc3MgQmxhY2tCb3goQ29udGFpbmVyKToK LSAgICJBIGNvbnRhaW5lciB0aGF0IGRvZXMgbm90IG91dHB1dCBhbnl0aGluZyIKLSAKLUBAIC0y MzcwLDcgKzIzOTAsNyBAQCBjbGFzcyBTdHJpbmdDb250YWluZXIoQ29udGFpbmVyKToKLSAgIGRl ZiBleHRyYWN0dGV4dChzZWxmKToKLSAgICAgIlJldHVybiBhbGwgdGV4dC4iCi0gICAgIHJldHVy biBzZWxmLnN0cmluZwotLSAgCi0rCi0gICBkZWYgX191bmljb2RlX18oc2VsZik6Ci0gICAgICJS ZXR1cm4gYSBwcmludGFibGUgcmVwcmVzZW50YXRpb24uIgotICAgICByZXN1bHQgPSAnU3RyaW5n Q29udGFpbmVyJwotQEAgLTIzODEsNiArMjQwMSwxMCBAQCBjbGFzcyBTdHJpbmdDb250YWluZXIo Q29udGFpbmVyKToKLSAgICAgICBlbGxpcHNpcyA9ICcnCi0gICAgIHJldHVybiByZXN1bHQgKyAn ICgnICsgc2VsZi5zdHJpbmcuc3RyaXAoKVs6MTVdICsgZWxsaXBzaXMgKyAnKScKLSAKLSsgIGlm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0cl9fID0gX191bmljb2RlX18K LSsKLSsKLSBjbGFzcyBDb25zdGFudChTdHJpbmdDb250YWluZXIpOgotICAgIkEgY29uc3RhbnQg c3RyaW5nIgotIAotQEAgLTIzOTIsNiArMjQxNiwxMCBAQCBjbGFzcyBDb25zdGFudChTdHJpbmdD b250YWluZXIpOgotICAgZGVmIF9fdW5pY29kZV9fKHNlbGYpOgotICAgICByZXR1cm4gJ0NvbnN0 YW50OiAnICsgc2VsZi5zdHJpbmcKLSAKLSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDAp OgotKyAgICBfX3N0cl9fID0gX191bmljb2RlX18KLSsKLSsKLSBjbGFzcyBUYWdnZWRUZXh0KENv bnRhaW5lcik6Ci0gICAiVGV4dCBpbnNpZGUgYSB0YWciCi0gCi1AQCAtMjQyMSw5ICsyNDQ5LDgg QEAgY2xhc3MgVGFnZ2VkVGV4dChDb250YWluZXIpOgotICAgICAgIHJldHVybiAnVGFnZ2VkIDx1 bmtub3duIHRhZz4nCi0gICAgIHJldHVybiAnVGFnZ2VkIDwnICsgc2VsZi5vdXRwdXQudGFnICsg Jz4nCi0gCi0tCi0tCi0tCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAg X19zdHJfXyA9IF9fdW5pY29kZV9fCi0gCi0gCi0gY2xhc3MgRG9jdW1lbnRQYXJhbWV0ZXJzKG9i amVjdCk6Ci1AQCAtMjU1NSwxOSArMjU4MiwxMiBAQCBjbGFzcyBNYWNyb1BhcnNlcihGb3JtdWxh UGFyc2VyKToKLSAgICAgIlNlZSBpZiB0aGUgZm9ybXVsYSBpcyBpbmxpbmVkIgotICAgICBzZWxm LmJlZ2luID0gcmVhZGVyLmxpbmVudW1iZXIgKyAxCi0gICAgIHJldHVybiBbJ2lubGluZSddCi0t ICAKLSsKLSAgIGRlZiBwYXJzZShzZWxmLCByZWFkZXIpOgotICAgICAiUGFyc2UgdGhlIGZvcm11 bGEgdW50aWwgdGhlIGVuZCIKLSAgICAgZm9ybXVsYSA9IHNlbGYucGFyc2VtdWx0aWxpbmVyKHJl YWRlciwgc2VsZi5wYXJlbnQuc3RhcnQsIHNlbGYuZW5kaW5nKQotICAgICByZWFkZXIubmV4dGxp bmUoKQotICAgICByZXR1cm4gZm9ybXVsYQotLSAgCi0tCi0tCi0tCi0tCi0tCi0tCi0gCi0gCi0g Y2xhc3MgRm9ybXVsYUJpdChDb250YWluZXIpOgotQEAgLTI2MTQsNiArMjYzNCwxMCBAQCBjbGFz cyBGb3JtdWxhQml0KENvbnRhaW5lcik6Ci0gICAgICJHZXQgYSBzdHJpbmcgcmVwcmVzZW50YXRp b24iCi0gICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXyArICcgcmVhZCBpbiAnICsg c2VsZi5vcmlnaW5hbAotIAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAg IF9fc3RyX18gPSBfX3VuaWNvZGVfXwotKwotKwotIGNsYXNzIFRhZ2dlZEJpdChGb3JtdWxhQml0 KToKLSAgICJBIHRhZ2dlZCBzdHJpbmcgaW4gYSBmb3JtdWxhIgotIAotQEAgLTI2NTYsNiArMjY4 MCwxMCBAQCBjbGFzcyBGb3JtdWxhQ29uc3RhbnQoQ29uc3RhbnQpOgotICAgICAiUmV0dXJuIGEg cHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uLiIKLSAgICAgcmV0dXJuICdGb3JtdWxhIGNvbnN0YW50 OiAnICsgc2VsZi5zdHJpbmcKLSAKLSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgot KyAgICBfX3N0cl9fID0gX191bmljb2RlX18KLSsKLSsKLSBjbGFzcyBSYXdUZXh0KEZvcm11bGFC aXQpOgotICAgIkEgYml0IG9mIHRleHQgaW5zaWRlIGEgZm9ybXVsYSIKLSAKLUBAIC0yNzM5LDYg KzI3NjcsMTAgQEAgY2xhc3MgV2hpdGVTcGFjZShGb3JtdWxhQml0KToKLSAgICAgIlJldHVybiBh IHByaW50YWJsZSByZXByZXNlbnRhdGlvbi4iCi0gICAgIHJldHVybiAnV2hpdGVzcGFjZTogKicg KyBzZWxmLm9yaWdpbmFsICsgJyonCi0gCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAw KToKLSsgICAgX19zdHJfXyA9IF9fdW5pY29kZV9fCi0rCi0rCi0gY2xhc3MgQnJhY2tldChGb3Jt dWxhQml0KToKLSAgICJBIHt9IGJyYWNrZXQgaW5zaWRlIGEgZm9ybXVsYSIKLSAKLUBAIC0yODIy LDcgKzI4NTQsNiBAQCBjbGFzcyBTcXVhcmVCcmFja2V0KEJyYWNrZXQpOgotICAgICByZXR1cm4g YnJhY2tldAotIAotIAotLQotIGNsYXNzIE1hdGhzUHJvY2Vzc29yKG9iamVjdCk6Ci0gICAiQSBw cm9jZXNzb3IgZm9yIGEgbWF0aHMgY29uc3RydWN0aW9uIGluc2lkZSB0aGUgRm9ybXVsYVByb2Nl c3Nvci4iCi0gCi1AQCAtMjgzNCw2ICsyODY1LDEwIEBAIGNsYXNzIE1hdGhzUHJvY2Vzc29yKG9i amVjdCk6Ci0gICAgICJSZXR1cm4gYSBwcmludGFibGUgZGVzY3JpcHRpb24uIgotICAgICByZXR1 cm4gJ01hdGhzIHByb2Nlc3NvciAnICsgc2VsZi5fX2NsYXNzX18uX19uYW1lX18KLSAKLSsgIGlm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0cl9fID0gX191bmljb2RlX18K LSsKLSsKLSBjbGFzcyBGb3JtdWxhUHJvY2Vzc29yKG9iamVjdCk6Ci0gICAiQSBwcm9jZXNzb3Ig c3BlY2lmaWNhbGx5IGZvciBmb3JtdWxhcy4iCi0gCi1AQCAtMjk5Nyw2ICszMDMyLDEwIEBAIGNs YXNzIEZvcm11bGEoQ29udGFpbmVyKToKLSAgICAgICByZXR1cm4gJ0Zvcm11bGEgKCcgKyBzZWxm LnBhcnRrZXkubnVtYmVyICsgJyknCi0gICAgIHJldHVybiAnVW5udW1iZXJlZCBmb3JtdWxhJwot IAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIF9fc3RyX18gPSBfX3Vu aWNvZGVfXwotKwotKwotIGNsYXNzIFdob2xlRm9ybXVsYShGb3JtdWxhQml0KToKLSAgICJQYXJz ZSBhIHdob2xlIGZvcm11bGEiCi0gCi1AQCAtMzIyOSw2ICszMjY4LDEwIEBAIGNsYXNzIE51bWJl ckNvdW50ZXIob2JqZWN0KToKLSAgICAgICByZXN1bHQgKz0gJyBpbiBtb2RlICcgKyBzZWxmLm1v ZGUKLSAgICAgcmV0dXJuIHJlc3VsdAotIAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywg MCk6Ci0rICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotKwotKwotIGNsYXNzIERlcGVuZGVudENv dW50ZXIoTnVtYmVyQ291bnRlcik6Ci0gICAiQSBjb3VudGVyIHdoaWNoIGRlcGVuZHMgb24gYW5v dGhlciBvbmUgKHRoZSBtYXN0ZXIpLiIKLSAKLUBAIC0zNzgwLDYgKzM4MjMsMTAgQEAgY2xhc3Mg TGluayhDb250YWluZXIpOgotICAgICAgIHJlc3VsdCArPSAnIHRvICcgKyBzZWxmLnVybAotICAg ICByZXR1cm4gcmVzdWx0Ci0gCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsg ICAgX19zdHJfXyA9IF9fdW5pY29kZV9fCi0rCi0rCi0gY2xhc3MgVVJMKExpbmspOgotICAgIkEg Y2xpY2thYmxlIFVSTCIKLSAKLUBAIC0zOTQ4LDYgKzM5OTUsMTAgQEAgY2xhc3MgTGFiZWwoTGlu ayk6Ci0gICAgICAgcmV0dXJuICdVbm5hbWVkIGxhYmVsJwotICAgICByZXR1cm4gJ0xhYmVsICcg KyBzZWxmLmtleQotIAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIF9f c3RyX18gPSBfX3VuaWNvZGVfXwotKwotKwotIGNsYXNzIFJlZmVyZW5jZShMaW5rKToKLSAgICJB IHJlZmVyZW5jZSB0byBhIGxhYmVsLiIKLSAKLUBAIC00MDA4LDYgKzQwNTksOCBAQCBjbGFzcyBS ZWZlcmVuY2UoTGluayk6Ci0gICAgICJSZXR1cm4gYSBwcmludGFibGUgcmVwcmVzZW50YXRpb24u IgotICAgICByZXR1cm4gJ1JlZmVyZW5jZSAnICsgc2VsZi5rZXkKLSAKLSsgIGlmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0cl9fID0gX191bmljb2RlX18KLSAKLSAKLSBj bGFzcyBGb3JtdWxhQ29tbWFuZChGb3JtdWxhQml0KToKLUBAIC00NjMwLDYgKzQ2ODMsMTAgQEAg Y2xhc3MgTGltaXRQcmV2aW91c0NvbW1hbmQoTGltaXRDb21tYW5kKToKLSAgICAgIlJldHVybiBh IHByaW50YWJsZSByZXByZXNlbnRhdGlvbi4iCi0gICAgIHJldHVybiAnTGltaXQgcHJldmlvdXMg Y29tbWFuZCcKLSAKLSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0 cl9fID0gX191bmljb2RlX18KLSsKLSsKLSBjbGFzcyBMaW1pdHNQcm9jZXNzb3IoTWF0aHNQcm9j ZXNzb3IpOgotICAgIkEgcHJvY2Vzc29yIGZvciBsaW1pdHMgaW5zaWRlIGFuIGVsZW1lbnQuIgot IAotQEAgLTQ4NTQsNiArNDkxMSwxMCBAQCBjbGFzcyBQYXJhbWV0ZXJEZWZpbml0aW9uKG9iamVj dCk6Ci0gICAgICAgcmVzdWx0ICs9ICcgKGVtcHR5KScKLSAgICAgcmV0dXJuIHJlc3VsdAotIAot KyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIF9fc3RyX18gPSBfX3VuaWNv ZGVfXwotKwotKwotIGNsYXNzIFBhcmFtZXRlckZ1bmN0aW9uKENvbW1hbmRCaXQpOgotICAgIkEg ZnVuY3Rpb24gd2l0aCBhIHZhcmlhYmxlIG51bWJlciBvZiBwYXJhbWV0ZXJzIGRlZmluZWQgaW4g YSB0ZW1wbGF0ZS4iCi0gICAiVGhlIHBhcmFtZXRlcnMgYXJlIGRlZmluZWQgYXMgYSBwYXJhbWV0 ZXIgZGVmaW5pdGlvbi4iCi1AQCAtNTMwNiw2ICs1MzY3LDEwIEBAIGNsYXNzIEZvcm11bGFNYWNy byhGb3JtdWxhKToKLSAgICAgIlJldHVybiBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbi4iCi0g ICAgIHJldHVybiAnTWF0aCBtYWNybycKLSAKLSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs IDApOgotKyAgICBfX3N0cl9fID0gX191bmljb2RlX18KLSsKLSsKLSBGb3JtdWxhRmFjdG9yeS50 eXBlcyArPSBbIE1hY3JvUGFyYW1ldGVyIF0KLSAKLSBGb3JtdWxhQ29tbWFuZC50eXBlcyArPSBb Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5IGIvZG9jdXRpbHMvd3Jp dGVycy9tYW5wYWdlLnB5Ci1pbmRleCBkZjRmMWEzLi45ODA5ZGQ0IDEwMDY0NAotLS0tIGEvZG9j dXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2Uu cHkKLUBAIC0zMzEsNyArMzMxLDcgQEAgY2xhc3MgVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRv cik6Ci0gICAgICAgICAgICAgICAgIGVsaWYgc3R5bGUuZW5kc3dpdGgoJ3JvbWFuJyk6Ci0gICAg ICAgICAgICAgICAgICAgICBzZWxmLl9pbmRlbnQgPSA1Ci0gCi0tICAgICAgICAgICAgZGVmIG5l eHQoc2VsZik6Ci0rICAgICAgICAgICAgZGVmIF9fbmV4dF9fKHNlbGYpOgotICAgICAgICAgICAg ICAgICBpZiBzZWxmLl9zdHlsZSA9PSAnYnVsbGV0JzoKLSAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBzZWxmLmVudW1fc3R5bGVbc2VsZi5fc3R5bGVdCi0gICAgICAgICAgICAgICAgIGVsaWYg c2VsZi5fc3R5bGUgPT0gJ2VtZGFzaCc6Ci1AQCAtMzQ5LDYgKzM0OSwxMCBAQCBjbGFzcyBUcmFu c2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy ZXMubG93ZXIoKQotICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAg cmV0dXJuICIlZC4iICUgc2VsZi5fY250Ci0rCi0rICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLCAwKToKLSsgICAgICAgICAgICAgICAgbmV4dCA9IF9fbmV4dF9fCi0rCi0gICAg ICAgICAgICAgZGVmIGdldF93aWR0aChzZWxmKToKLSAgICAgICAgICAgICAgICAgcmV0dXJuIHNl bGYuX2luZGVudAotICAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLS0tIAotMi4yNC4w LjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9w YXRjaGVzLzAwMjQtcHkzLVdyYXAtZm9vLmtleXMtemlwLWZvby1iYXItaW4tbGlzdC5wYXRjaCBi L3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyNC1weTMtV3JhcC1mb28ua2V5cy16 aXAtZm9vLWJhci1pbi1saXN0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi ODRhOWRjNmU1Yi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0 Y2hlcy8wMDI0LXB5My1XcmFwLWZvby5rZXlzLXppcC1mb28tYmFyLWluLWxpc3QucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxNDcgKzAsMCBAQAotRnJvbSA3ZTYwMWY1NDQ0MDUxYTc4YzBkYzNm ZDZlMzY3NjE5M2U3YTMwMDc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhl biBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBUdWUsIDI3IEF1ZyAyMDE5IDEy OjExOjE1ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjQvMjZdIHB5MzogV3JhcCAnZm9vLmtleXMo KScsICd6aXAoZm9vLCBiYXInKSBpbiAnbGlzdCcKLQotSW4gUHl0aG9uIDMsICdkaWN0LmtleXMo KScsICd6aXAnIGFuZCAnbWFwJyBubyBsb25nZXIgcmV0dXJuIGEgbGlzdCBidXQKLXJhdGhlciB0 eXBlcyAnZGljdF9rZXlzJywgJ3ppcCcgYW5kICdtYXAnLCByZXNwZWN0aXZlbHkuIFlvdSBjYW4n dAotYXBwZW5kIHRvIHRoZXNlIHR5cGVzIG5vciBjYW4geW91IGRlbGV0ZSBmcm9tIHRoZW0gd2hp bGUgaW4gYSBsb29wLiAgVGhlCi1zaW1wbGUgc29sdXRpb24gdG8gYm90aCBpc3N1ZXMgaXMgdG8g d3JhcCB0aGluZ3MgaW4gJ2xpc3QnLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEZpbnVjYW5l IDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5l dC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM3MiA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNi ZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhA Z21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJzZXIucHkgIHwg MiArLQotIGRvY3V0aWxzL3N0YXRlbWFjaGluZS5weSAgICAgICAgICAgICB8IDIgKy0KLSBkb2N1 dGlscy91dGlscy9fX2luaXRfXy5weSAgICAgICAgICAgfCAyICstCi0gZG9jdXRpbHMvdXRpbHMv bWF0aC9tYXRoMmh0bWwucHkgICAgIHwgMiArLQotIGRvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9f X2luaXRfXy5weSB8IDMgKy0tCi0gdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5ICAgICAgICAg IHwgMiArLQotIHRlc3QvdGVzdF9mdW5jdGlvbmFsLnB5ICAgICAgICAgICAgICB8IDIgKy0KLSB0 ZXN0L3Rlc3RfbGFuZ3VhZ2UucHkgICAgICAgICAgICAgICAgfCAyICstCi0gdGVzdC90ZXN0X3N0 YXRlbWFjaGluZS5weSAgICAgICAgICAgIHwgMiArLQotIDkgZmlsZXMgY2hhbmdlZCwgOSBpbnNl cnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNl cnMvcnN0L3RhYmxlcGFyc2VyLnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJzZXIu cHkKLWluZGV4IDkzN2FlYzguLjQwOGQ2ZDggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJz L3JzdC90YWJsZXBhcnNlci5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJz ZXIucHkKLUBAIC0yOTAsNyArMjkwLDcgQEAgY2xhc3MgR3JpZFRhYmxlUGFyc2VyKFRhYmxlUGFy c2VyKToKLSAgICAgICAgIHJvd2luZGV4ID0ge30KLSAgICAgICAgIGZvciBpIGluIHJhbmdlKGxl bihyb3dzZXBzKSk6Ci0gICAgICAgICAgICAgcm93aW5kZXhbcm93c2Vwc1tpXV0gPSBpICAgICMg cm93IGJvdW5kYXJ5IC0+IHJvdyBudW1iZXIgbWFwcGluZwotLSAgICAgICAgY29sc2VwcyA9IHNl bGYuY29sc2Vwcy5rZXlzKCkgICAjIGxpc3Qgb2YgY29sdW1uIGJvdW5kYXJpZXMKLSsgICAgICAg IGNvbHNlcHMgPSBsaXN0KHNlbGYuY29sc2Vwcy5rZXlzKCkpICAgIyBsaXN0IG9mIGNvbHVtbiBi b3VuZGFyaWVzCi0gICAgICAgICBjb2xzZXBzLnNvcnQoKQotICAgICAgICAgY29saW5kZXggPSB7 fQotICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGNvbHNlcHMpKToKLWRpZmYgLS1naXQgYS9k b2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLWluZGV4 IDZiYzAzZjUuLjBjYmY5ZDMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkK LSsrKyBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotQEAgLTEyOTcsNyArMTI5Nyw3IEBAIGNs YXNzIFZpZXdMaXN0KG9iamVjdCk6Ci0gICAgICAgICBzZWxmLnBhcmVudCA9IE5vbmUKLSAKLSAg ICAgZGVmIHNvcnQoc2VsZiwgKmFyZ3MpOgotLSAgICAgICAgdG1wID0gemlwKHNlbGYuZGF0YSwg c2VsZi5pdGVtcykKLSsgICAgICAgIHRtcCA9IGxpc3QoemlwKHNlbGYuZGF0YSwgc2VsZi5pdGVt cykpCi0gICAgICAgICB0bXAuc29ydCgqYXJncykKLSAgICAgICAgIHNlbGYuZGF0YSA9IFtlbnRy eVswXSBmb3IgZW50cnkgaW4gdG1wXQotICAgICAgICAgc2VsZi5pdGVtcyA9IFtlbnRyeVsxXSBm b3IgZW50cnkgaW4gdG1wXQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5 IGIvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkKLWluZGV4IGNjMWZkMWEuLjQzNzQ1NmIgMTAw NjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMvdXRp bHMvX19pbml0X18ucHkKLUBAIC02MTgsNyArNjE4LDcgQEAgZGVmIGNvbHVtbl9pbmRpY2VzKHRl eHQpOgotICAgICAiIiIKLSAgICAgIyBUT0RPOiBhY2NvdW50IGZvciBhc2lhbiB3aWRlIGNoYXJz IGhlcmUgaW5zdGVhZCBvZiB1c2luZyBkdW1teQotICAgICAjIHJlcGxhY2VtZW50cyBpbiB0aGUg dGFibGVwYXJzZXI/Ci0tICAgIHN0cmluZ19pbmRpY2VzID0gcmFuZ2UobGVuKHRleHQpKQotKyAg ICBzdHJpbmdfaW5kaWNlcyA9IGxpc3QocmFuZ2UobGVuKHRleHQpKSkKLSAgICAgZm9yIGluZGV4 IGluIGZpbmRfY29tYmluaW5nX2NoYXJzKHRleHQpOgotICAgICAgICAgc3RyaW5nX2luZGljZXNb aW5kZXhdID0gTm9uZQotICAgICByZXR1cm4gW2kgZm9yIGkgaW4gc3RyaW5nX2luZGljZXMgaWYg aSBpcyBub3QgTm9uZV0KLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRt bC5weSBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5Ci1pbmRleCBhN2UyYWVkLi41 M2RkODM2IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLSsr KyBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5Ci1AQCAtMjgxOSw3ICsyODE5LDcg QEAgY2xhc3MgQnJhY2tldChGb3JtdWxhQml0KToKLSAKLSAgIGRlZiBpbm5lcnRleHQoc2VsZiwg cG9zKToKLSAgICAgIlBhcnNlIHNvbWUgdGV4dCBpbnNpZGUgdGhlIGJyYWNrZXQsIGZvbGxvd2lu ZyB0ZXh0dWFsIHJ1bGVzLiIKLS0gICAgc3BlY2lhbGNoYXJzID0gRm9ybXVsYUNvbmZpZy5zeW1i b2xmdW5jdGlvbnMua2V5cygpCi0rICAgIHNwZWNpYWxjaGFycyA9IGxpc3QoRm9ybXVsYUNvbmZp Zy5zeW1ib2xmdW5jdGlvbnMua2V5cygpKQotICAgICBzcGVjaWFsY2hhcnMuYXBwZW5kKEZvcm11 bGFDb25maWcuc3RhcnRzWydjb21tYW5kJ10pCi0gICAgIHNwZWNpYWxjaGFycy5hcHBlbmQoRm9y bXVsYUNvbmZpZy5zdGFydHNbJ2JyYWNrZXQnXSkKLSAgICAgc3BlY2lhbGNoYXJzLmFwcGVuZChD b21tZW50LnN0YXJ0KQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2lu aXRfXy5weSBiL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weQotaW5kZXggYzc5 ZDRjMS4uYWQzMjYxMyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2lu aXRfXy5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci1AQCAt MTE2OSw4ICsxMTY5LDcgQEAgY2xhc3MgT0RGVHJhbnNsYXRvcihub2Rlcy5HZW5lcmljTm9kZVZp c2l0b3IpOgotICAgICAgICAgICAgIGZpbiA9IG9zLnBvcGVuKCJwYXBlcmNvbmYgLXMgMj4gL2Rl di9udWxsIikKLSAgICAgICAgICAgICBjb250ZW50ID0gZmluLnJlYWQoKQotICAgICAgICAgICAg IGNvbnRlbnQgPSBjb250ZW50LnNwbGl0KCkKLS0gICAgICAgICAgICBjb250ZW50ID0gbWFwKGZs b2F0LCBjb250ZW50KQotLSAgICAgICAgICAgIGNvbnRlbnQgPSBsaXN0KGNvbnRlbnQpCi0rICAg ICAgICAgICAgY29udGVudCA9IGxpc3QobWFwKGZsb2F0LCBjb250ZW50KSkKLSAgICAgICAgICAg ICB3LCBoID0gY29udGVudAotICAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBWYWx1ZUVycm9yKToK LSAgICAgICAgICAgICB3LCBoID0gNjEyLCA3OTIgICAgICMgZGVmYXVsdCB0byBMZXR0ZXIKLWRp ZmYgLS1naXQgYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgYi90ZXN0L0RvY3V0aWxzVGVz dFN1cHBvcnQucHkKLWluZGV4IDQ3YmE4M2MuLjIyMmMyMDIgMTAwNjQ0Ci0tLS0gYS90ZXN0L0Rv Y3V0aWxzVGVzdFN1cHBvcnQucHkKLSsrKyBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQot QEAgLTgxMSw3ICs4MTEsNyBAQCBjbGFzcyBIdG1sV3JpdGVyUHVibGlzaFBhcnRzVGVzdENhc2Uo V3JpdGVyUHVibGlzaFRlc3RDYXNlKToKLSAgICAgICAgIHBhcnRzWydodG1sX3Byb2xvZyddID0g cGFydHNbJ2h0bWxfcHJvbG9nJ10ucmVwbGFjZSgKLSAgICAgICAgICAgICBzZWxmLnN0YW5kYXJk X2h0bWxfcHJvbG9nLCAnJykKLSAgICAgICAgICMgcmVtb3ZlIGVtcHR5IHZhbHVlczoKLS0gICAg ICAgIGZvciBrZXkgaW4gcGFydHMua2V5cygpOgotKyAgICAgICAgZm9yIGtleSBpbiBsaXN0KHBh cnRzLmtleXMoKSk6Ci0gICAgICAgICAgICAgaWYgbm90IHBhcnRzW2tleV06Ci0gICAgICAgICAg ICAgICAgIGRlbCBwYXJ0c1trZXldCi0gICAgICAgICAjIHN0YW5kYXJkIG91dHB1dCBmb3JtYXQ6 Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2Z1bmN0aW9uYWwucHkgYi90ZXN0L3Rlc3RfZnVuY3Rp b25hbC5weQotaW5kZXggY2RjNzVhMC4uYjAyYzI1MCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9m dW5jdGlvbmFsLnB5Ci0rKysgYi90ZXN0L3Rlc3RfZnVuY3Rpb25hbC5weQotQEAgLTE1Miw3ICsx NTIsNyBAQCBleHBlY3RlZCBvdXRwdXQgYW5kIGNoZWNrIGl0IGluOgotICAgICAgICAgZGVsIHBh cmFtc1sndGVzdF9zb3VyY2UnXQotICAgICAgICAgZGVsIHBhcmFtc1sndGVzdF9kZXN0aW5hdGlv biddCi0gICAgICAgICAjIERlbGV0ZSBwcml2YXRlIHN0dWZmIGxpa2UgcGFyYW1zWydfX2J1aWx0 aW5zX18nXToKLS0gICAgICAgIGZvciBrZXkgaW4gcGFyYW1zLmtleXMoKToKLSsgICAgICAgIGZv ciBrZXkgaW4gbGlzdChwYXJhbXMua2V5cygpKToKLSAgICAgICAgICAgICBpZiBrZXkuc3RhcnRz d2l0aCgnXycpOgotICAgICAgICAgICAgICAgICBkZWwgcGFyYW1zW2tleV0KLSAgICAgICAgICMg R2V0IG91dHB1dCAoYXV0b21hdGljYWxseSB3cml0dGVuIHRvIHRoZSBvdXRwdXQvIGRpcmVjdG9y eQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9sYW5ndWFnZS5weSBiL3Rlc3QvdGVzdF9sYW5ndWFn ZS5weQotaW5kZXggMzFhYzYxMy4uNDhjZDA2YiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9sYW5n dWFnZS5weQotKysrIGIvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci1AQCAtNTIsNyArNTIsNyBAQCBj bGFzcyBMYW5ndWFnZVRlc3RTdWl0ZShEb2N1dGlsc1Rlc3RTdXBwb3J0LkN1c3RvbVRlc3RTdWl0 ZSk6Ci0gICAgICAgICAgICAgbWF0Y2ggPSBzZWxmLmxhbmd1YWdlX21vZHVsZV9wYXR0ZXJuLm1h dGNoKG1vZCkKLSAgICAgICAgICAgICBpZiBtYXRjaDoKLSAgICAgICAgICAgICAgICAgbGFuZ3Vh Z2VzW21hdGNoLmdyb3VwKDEpXSA9IDEKLS0gICAgICAgIHNlbGYubGFuZ3VhZ2VzID0gbGFuZ3Vh Z2VzLmtleXMoKQotKyAgICAgICAgc2VsZi5sYW5ndWFnZXMgPSBsaXN0KGxhbmd1YWdlcy5rZXlz KCkpCi0gICAgICAgICAjIHRlc3QgbGFuZ3VhZ2UgdGFnIG5vcm1hbGl6YXRpb246Ci0gICAgICAg ICBzZWxmLmxhbmd1YWdlcyArPSBbJ2VuX2diJywgJ2VuX1VTJywgJ2VuLUNBJywgJ2RlLURFJywg J2RlLUFULTE5MDEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwdC1CUicsICdwdC1m b28tQlInXQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9zdGF0ZW1hY2hpbmUucHkgYi90ZXN0L3Rl c3Rfc3RhdGVtYWNoaW5lLnB5Ci1pbmRleCA2MzUyY2E0Li44N2Y1NzEwIDEwMDc1NQotLS0tIGEv dGVzdC90ZXN0X3N0YXRlbWFjaGluZS5weQotKysrIGIvdGVzdC90ZXN0X3N0YXRlbWFjaGluZS5w eQotQEAgLTE1Miw3ICsxNTIsNyBAQCBjbGFzcyBTTVdTVGVzdHModW5pdHRlc3QuVGVzdENhc2Up OgotICAgICAgICAgc2VsZi5zbS51bmxpbmsoKQotIAotICAgICBkZWYgdGVzdF9fX2luaXRfXyhz ZWxmKToKLS0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zbS5zdGF0ZXMua2V5cygpLCBb J01vY2tTdGF0ZSddKQotKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHNlbGYuc20uc3Rh dGVzLmtleXMoKSksIFsnTW9ja1N0YXRlJ10pCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl bihzZWxmLnNtLnN0YXRlc1snTW9ja1N0YXRlJ10udHJhbnNpdGlvbnMpLCA0KQotIAotICAgICBk ZWYgdGVzdF9nZXRfaW5kZW50ZWQoc2VsZik6Ci0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEK LQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDI1LVNpbXBs aWZ5LWNvZGUucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjUtU2lt cGxpZnktY29kZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUwOTJhOGY0 ZTEuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAy NS1TaW1wbGlmeS1jb2RlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotRnJv bSAxZDRjM2Q0OGZkOWE1NjA2OTI1NTYyYzFjOTdlNjczMzI1NzhjYzY1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1E YXRlOiBUdWUsIDI3IEF1ZyAyMDE5IDEyOjExOjMwICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjUv MjZdIFNpbXBsaWZ5IGNvZGUuCi0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQv cC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNzMgOTI5NTQzZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQz ZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdt YWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5ICB8ICAz ICstLQotIGRvY3V0aWxzL3N0YXRlbWFjaGluZS5weSAgICAgICAgICAgICB8ICAzICstLQotIGRv Y3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weSB8ICA2ICsrLS0tLQotIHRlc3QvRG9j dXRpbHNUZXN0U3VwcG9ydC5weSAgICAgICAgICB8IDEwICsrKy0tLS0tLS0KLSA0IGZpbGVzIGNo YW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9k b2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0 L3RhYmxlcGFyc2VyLnB5Ci1pbmRleCA0MDhkNmQ4Li42NGExOTJmIDEwMDY0NAotLS0tIGEvZG9j dXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJzZXIucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMv cnN0L3RhYmxlcGFyc2VyLnB5Ci1AQCAtMjkwLDggKzI5MCw3IEBAIGNsYXNzIEdyaWRUYWJsZVBh cnNlcihUYWJsZVBhcnNlcik6Ci0gICAgICAgICByb3dpbmRleCA9IHt9Ci0gICAgICAgICBmb3Ig aSBpbiByYW5nZShsZW4ocm93c2VwcykpOgotICAgICAgICAgICAgIHJvd2luZGV4W3Jvd3NlcHNb aV1dID0gaSAgICAjIHJvdyBib3VuZGFyeSAtPiByb3cgbnVtYmVyIG1hcHBpbmcKLS0gICAgICAg IGNvbHNlcHMgPSBsaXN0KHNlbGYuY29sc2Vwcy5rZXlzKCkpICAgIyBsaXN0IG9mIGNvbHVtbiBi b3VuZGFyaWVzCi0tICAgICAgICBjb2xzZXBzLnNvcnQoKQotKyAgICAgICAgY29sc2VwcyA9IHNv cnRlZChzZWxmLmNvbHNlcHMua2V5cygpKSAgICMgbGlzdCBvZiBjb2x1bW4gYm91bmRhcmllcwot ICAgICAgICAgY29saW5kZXggPSB7fQotICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGNvbHNl cHMpKToKLSAgICAgICAgICAgICBjb2xpbmRleFtjb2xzZXBzW2ldXSA9IGkgICAgIyBjb2x1bW4g Ym91bmRhcnkgLT4gY29sIG51bWJlciBtYXAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9zdGF0ZW1h Y2hpbmUucHkgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLWluZGV4IDBjYmY5ZDMuLmViYjUy YWQgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLSsrKyBiL2RvY3V0aWxz L3N0YXRlbWFjaGluZS5weQotQEAgLTEyOTcsOCArMTI5Nyw3IEBAIGNsYXNzIFZpZXdMaXN0KG9i amVjdCk6Ci0gICAgICAgICBzZWxmLnBhcmVudCA9IE5vbmUKLSAKLSAgICAgZGVmIHNvcnQoc2Vs ZiwgKmFyZ3MpOgotLSAgICAgICAgdG1wID0gbGlzdCh6aXAoc2VsZi5kYXRhLCBzZWxmLml0ZW1z KSkKLS0gICAgICAgIHRtcC5zb3J0KCphcmdzKQotKyAgICAgICAgdG1wID0gc29ydGVkKHppcChz ZWxmLmRhdGEsIHNlbGYuaXRlbXMpLCAqYXJncykKLSAgICAgICAgIHNlbGYuZGF0YSA9IFtlbnRy eVswXSBmb3IgZW50cnkgaW4gdG1wXQotICAgICAgICAgc2VsZi5pdGVtcyA9IFtlbnRyeVsxXSBm b3IgZW50cnkgaW4gdG1wXQotICAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCi1kaWZmIC0tZ2l0 IGEvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVy cy9vZGZfb2R0L19faW5pdF9fLnB5Ci1pbmRleCBhZDMyNjEzLi5kMDNmOGUwIDEwMDY0NAotLS0t IGEvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93 cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkKLUBAIC0xMTY3LDEwICsxMTY3LDggQEAgY2xhc3Mg T0RGVHJhbnNsYXRvcihub2Rlcy5HZW5lcmljTm9kZVZpc2l0b3IpOgotICAgICBkZWYgc2V0dXBf cGFwZXIoc2VsZiwgcm9vdF9lbCk6Ci0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgZmluID0g b3MucG9wZW4oInBhcGVyY29uZiAtcyAyPiAvZGV2L251bGwiKQotLSAgICAgICAgICAgIGNvbnRl bnQgPSBmaW4ucmVhZCgpCi0tICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuc3BsaXQoKQot LSAgICAgICAgICAgIGNvbnRlbnQgPSBsaXN0KG1hcChmbG9hdCwgY29udGVudCkpCi0tICAgICAg ICAgICAgdywgaCA9IGNvbnRlbnQKLSsgICAgICAgICAgICBkaW1lbnNpb25zID0gZmluLnJlYWQo KS5zcGxpdCgpCi0rICAgICAgICAgICAgdywgaCA9IChmbG9hdChzKSBmb3IgcyBpbiBkaW1lbnNp b25zKQotICAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBWYWx1ZUVycm9yKToKLSAgICAgICAgICAg ICB3LCBoID0gNjEyLCA3OTIgICAgICMgZGVmYXVsdCB0byBMZXR0ZXIKLSAgICAgICAgIGZpbmFs bHk6Ci1kaWZmIC0tZ2l0IGEvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5IGIvdGVzdC9Eb2N1 dGlsc1Rlc3RTdXBwb3J0LnB5Ci1pbmRleCAyMjJjMjAyLi41ZTlmZWQ5IDEwMDY0NAotLS0tIGEv dGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci0rKysgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBv cnQucHkKLUBAIC04MTAsMTQgKzgxMCwxMCBAQCBjbGFzcyBIdG1sV3JpdGVyUHVibGlzaFBhcnRz VGVzdENhc2UoV3JpdGVyUHVibGlzaFRlc3RDYXNlKToKLSAgICAgICAgICAgICBzZWxmLnN0YW5k YXJkX2h0bWxfbWV0YV92YWx1ZSwgJy4uLicpCi0gICAgICAgICBwYXJ0c1snaHRtbF9wcm9sb2cn XSA9IHBhcnRzWydodG1sX3Byb2xvZyddLnJlcGxhY2UoCi0gICAgICAgICAgICAgc2VsZi5zdGFu ZGFyZF9odG1sX3Byb2xvZywgJycpCi0tICAgICAgICAjIHJlbW92ZSBlbXB0eSB2YWx1ZXM6Ci0t ICAgICAgICBmb3Iga2V5IGluIGxpc3QocGFydHMua2V5cygpKToKLS0gICAgICAgICAgICBpZiBu b3QgcGFydHNba2V5XToKLS0gICAgICAgICAgICAgICAgZGVsIHBhcnRzW2tleV0KLS0gICAgICAg ICMgc3RhbmRhcmQgb3V0cHV0IGZvcm1hdDoKLS0gICAgICAgIGtleXMgPSBzb3J0ZWQocGFydHMu a2V5cygpKQotICAgICAgICAgb3V0cHV0ID0gW10KLS0gICAgICAgIGZvciBrZXkgaW4ga2V5czoK LSsgICAgICAgIGZvciBrZXkgaW4gc29ydGVkKHBhcnRzLmtleXMoKSk6Ci0rICAgICAgICAgICAg aWYgbm90IHBhcnRzW2tleV06Ci0rICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAg ICAgb3V0cHV0LmFwcGVuZCgiJXI6ICcnJyVzJycnIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgJSAoa2V5LCBwYXJ0c1trZXldKSkKLSAgICAgICAgICAgICBpZiBvdXRwdXRbLTFdLmVuZHN3 aXRoKCJcbicnJyIpOgotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyNi1weTMtSGFuZGxlLW9zLmdldGN3 ZHUtdG8tb3MuZ2V0Y3dkLXJlbmFtZS5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3Bh dGNoZXMvMDAyNi1weTMtSGFuZGxlLW9zLmdldGN3ZHUtdG8tb3MuZ2V0Y3dkLXJlbmFtZS5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ0NjM2OGJlYjIuLjAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyNi1weTMtSGFuZGxlLW9z LmdldGN3ZHUtdG8tb3MuZ2V0Y3dkLXJlbmFtZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQy ICswLDAgQEAKLUZyb20gZTkwY2ZlOTQ1MTkzYWM5OWNjOWFjN2E0MzlkMWNjYzJhZDg1N2E2YyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5A dGhhdC5ndXJ1PgotRGF0ZTogVHVlLCAyNyBBdWcgMjAxOSAxMjoxMTo0MCArMDAwMAotU3ViamVj dDogW1BBVENIIDI2LzI2XSBweTM6IEhhbmRsZSAnb3MuZ2V0Y3dkdScgdG8gJ29zLmdldGN3ZCcg cmVuYW1lCi0KLVdlIGRvbid0IG5lZWQgdG8gZG8gdGhlIHJldmVyc2Ugc2luY2Ugbm9uZSBvZiB0 aGUgY2FsbGVycyBzZWVtcyB0byBjYXJlLgotCi1CYXNlZCBvbiBwYXRjaCBieTogU3RlcGhlbiBG aW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29k ZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNzQgOTI5NTQzZjYtZTRmMi0wMzEwLTk4 YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25n ZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL2Zyb250ZW5kLnB5IHwgNCArKystCi0g MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvZnJvbnRlbmQucHkgYi9kb2N1dGlscy9mcm9udGVuZC5weQotaW5kZXgg N2JmZmY2YS4uMzcyY2E0NCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci0rKysg Yi9kb2N1dGlscy9mcm9udGVuZC5weQotQEAgLTM4LDggKzM4LDEwIEBAIGltcG9ydCBvcHRwYXJz ZQotIGZyb20gb3B0cGFyc2UgaW1wb3J0IFNVUFBSRVNTX0hFTFAKLSBpZiBzeXMudmVyc2lvbl9p bmZvID49ICgzLCAwKToKLSAgICAgZnJvbSBjb25maWdwYXJzZXIgaW1wb3J0IFJhd0NvbmZpZ1Bh cnNlcgotKyAgICBmcm9tIG9zIGltcG9ydCBnZXRjd2QKLSBlbHNlOgotICAgICBmcm9tIENvbmZp Z1BhcnNlciBpbXBvcnQgUmF3Q29uZmlnUGFyc2VyCi0rICAgIGZyb20gb3MgaW1wb3J0IGdldGN3 ZHUgYXMgZ2V0Y3dkCi0gCi0gaW1wb3J0IGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLnV0aWxz Ci1AQCAtMjU2LDcgKzI1OCw3IEBAIGRlZiBtYWtlX3BhdGhzX2Fic29sdXRlKHBhdGhkaWN0LCBr ZXlzLCBiYXNlX3BhdGg9Tm9uZSk6Ci0gICAgIGBPcHRpb25QYXJzZXIucmVsYXRpdmVfcGF0aF9z ZXR0aW5nc2AuCi0gICAgICIiIgotICAgICBpZiBiYXNlX3BhdGggaXMgTm9uZToKLS0gICAgICAg IGJhc2VfcGF0aCA9IG9zLmdldGN3ZHUoKSAjIHR5cGUoYmFzZV9wYXRoKSA9PSB1bmljb2RlCi0r ICAgICAgICBiYXNlX3BhdGggPSBvcy5nZXRjd2QoKSAjIHR5cGUoYmFzZV9wYXRoKSA9PSB1bmlj b2RlCi0gICAgICAgICAjIHRvIGFsbG93IGNvbWJpbmluZyBub24tQVNDSUkgY3dkIHdpdGggdW5p Y29kZSB2YWx1ZXMgaW4gYHBhdGhkaWN0YAotICAgICBmb3Iga2V5IGluIGtleXM6Ci0gICAgICAg ICBpZiBrZXkgaW4gcGF0aGRpY3Q6Ci0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy90ZXN0LWltcG9ydC5wYXRj aCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvdGVzdC1pbXBvcnQucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEyYzIyOTcxNjgwCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy90ZXN0LWltcG9ydC5w YXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Cisr KysgdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5CitAQCAtNTEsMTQgKzUxLDkgQEAKKyAKKyB0 ZXN0cm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pIG9yIG9z LmN1cmRpcikKKyBvcy5jaGRpcih0ZXN0cm9vdCkKKy1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgz LCAwKToKKy0gICAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5q b2luKHRlc3Ryb290LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJy4uJywgJ2J1aWxkJywgJ2xpYicpKSkKKy0gICAgc3lzLnBhdGguYXBwZW5k KG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKHRlc3Ryb290LCAnLi4nLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1aWxkJywgJ2xpYics ICdleHRyYXMnKSkpCistZWxzZToKKy0gICAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGgubm9y bXBhdGgob3MucGF0aC5qb2luKHRlc3Ryb290LCAnLi4nKSkpCistICAgIHN5cy5wYXRoLmFwcGVu ZChvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbih0ZXN0cm9vdCwgJy4uJywgJ2V4dHJhcycp KSkKKytidWlsZGRpciA9ICdidWlsZC0lZC4lZCcgJSAoc3lzLnZlcnNpb25faW5mby5tYWpvciwg c3lzLnZlcnNpb25faW5mby5taW5vcikKKytzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5ub3Jt cGF0aChvcy5wYXRoLmpvaW4odGVzdHJvb3QsICcuLicsIGJ1aWxkZGlyLCAnbGliJykpKQorK3N5 cy5wYXRoLmFwcGVuZChvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbih0ZXN0cm9vdCwgJy4u JywgYnVpbGRkaXIsICdsaWInLCAnZXh0cmFzJykpKQorIHN5cy5wYXRoLmluc2VydCgwLCB0ZXN0 cm9vdCkKKyAKKyB0cnk6CmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy90ZW1w bGF0ZSBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3RlbXBsYXRlCmluZGV4IGE0YzBiYjkxNWUw Li5jNzc1ZmQxOTk3MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24tZG9jdXRpbHMnCiBwa2duYW1lPXB5dGhvbi1k b2N1dGlscwotdmVyc2lvbj0wLjE1LjIKLXJldmlzaW9uPTMKK3ZlcnNpb249MC4xNnJjMQorcmV2 aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtzcmM9ImRvY3V0aWxzLSR7dmVyc2lvbn0iCiBidWls ZF9zdHlsZT1weXRob24tbW9kdWxlCkBAIC0xNCw5ICsxNCw4IEBAIG1haW50YWluZXI9IkFsZXNz aW8gU2VyZ2kgPGFsM2hleEBnbWFpbC5jb20+IgogbGljZW5zZT0iY3VzdG9tOlB1YmxpYyBEb21h aW4sIEJTRC0yLUNsYXVzZSwgR1BMLTMuMC1vci1sYXRlciwgUHl0aG9uLTIuMCIKIGhvbWVwYWdl PSJodHRwOi8vZG9jdXRpbHMuc291cmNlZm9yZ2UubmV0IgogZGlzdGZpbGVzPSIke1BZUElfU0lU RX0vZC9kb2N1dGlscy9kb2N1dGlscy0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWEyYWVl YTEyOTA4OGRhNDAyNjY1ZTkyZTBiMjViMDRiMDczYzA0YjJkY2U0YWI2NWNhYWEzOGI3Y2UyZTFh OTkKK2NoZWNrc3VtPWQzM2IzMjY5MjBmMjM4ZjIxNDk5NTFlMGYyY2EwNTEzZWE2NjAyMTdiMDdm ZTYzY2I4YzVlNzRlNzhiMzExNGYKIGNoZWNrZGVwZW5kcys9IiRkZXBlbmRzIHB5dGhvbjMtUHln bWVudHMiCi1wYXRjaF9hcmdzPSItTnAxIgogCiBhbHRlcm5hdGl2ZXM9IgogIGRvY3V0aWxzOnJz dDJodG1sOi91c3IvYmluL3JzdDJodG1sLnB5MgpAQCAtMzIsNiArMzEsMTEgQEAgYWx0ZXJuYXRp dmVzPSIKICBkb2N1dGlsczpyc3QyeG1sOi91c3IvYmluL3JzdDJ4bWwucHkyCiAgZG9jdXRpbHM6 cnN0cGVwMmh0bWw6L3Vzci9iaW4vcnN0cGVwMmh0bWwucHkyIgogCitkb19jaGVjaygpIHsKKwlj ZCB0ZXN0CisJcHl0aG9uMyBhbGx0ZXN0cy5weQorfQorCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxp Y2Vuc2UgQ09QWUlORy50eHQgQ09QWUlORwogfQo= --===============2898502356595094595==--