From mboxrd@z Thu Jan 1 00:00:00 1970 From: Petter Subject: gnu: Add Go build system. Date: Sun, 11 Dec 2016 01:17:48 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_5e0bd7c750d8e4d1c6f7df34e06ea59a" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40874) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cFrq3-0001Ak-RK for guix-devel@gnu.org; Sat, 10 Dec 2016 19:18:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cFrpz-0002ad-HH for guix-devel@gnu.org; Sat, 10 Dec 2016 19:17:59 -0500 Received: from mx.kolabnow.com ([95.128.36.1]:58944 helo=mx-out03.mykolab.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cFrpz-0002Zx-1j for guix-devel@gnu.org; Sat, 10 Dec 2016 19:17:55 -0500 Received: from mx05.mykolab.com (mx05.mykolab.com [10.20.7.161]) by mx-out03.mykolab.com (Postfix) with ESMTPS id 2C10021E51 for ; Sun, 11 Dec 2016 01:17:49 +0100 (CET) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --=_5e0bd7c750d8e4d1c6f7df34e06ea59a Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, I've made an attempt at making a build system for Go. It seems to work, but it's not pretty. My Guix/Guile skills are bad, so keep your expectations to a minimum. Consider it something where there was nothing. I started with a copy of the GNU build system, removed code I felt wasn't necessary, then adapted to Go's needs. Note, comments and those first text string after a (define) have not been updated. Unnecessary #:use-modules have not been removed. In short, it's bad and there's a lot to do make it ok-ish. That's where you come in :) I'll add Syncthing, a sizeable Go project, and its dependencies in a later e-mail. These recipes uses this Go build system, and my primary goal has been to make these nice, while functional. Now we can hopefully work on the build system with a minimum of modifications to the recipes. Happy hacking! Petter --=_5e0bd7c750d8e4d1c6f7df34e06ea59a Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-gnu-Add-Go-build-system.patch Content-Disposition: attachment; filename=0001-gnu-Add-Go-build-system.patch; size=16166 RnJvbSA0YzA1OTdhOTVhZTNjZDExMWVmMTJkNjc1ZWRmNTAxYzU1OTQ1OGJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXR0ZXIgPHBldHRlckBteWtvbGFiLmNoPgpEYXRlOiBTdW4s IDExIERlYyAyMDE2IDAxOjEwOjA5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gZ251OiBBZGQgR28g YnVpbGQgc3lzdGVtLgoKKiBndWl4L2J1aWxkLXN5c3RlbS9nby5zY206IE5ldyBmaWxlCiogZ3Vp eC9idWlsZC9nby1idWlsZC1zeXN0ZW0uc2NtOiBOZXcgZmlsZS4KLS0tCiBndWl4L2J1aWxkLXN5 c3RlbS9nby5zY20gICAgICAgfCAxOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIGd1aXgvYnVpbGQvZ28tYnVpbGQtc3lzdGVtLnNjbSB8IDE4NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzc5IGluc2Vy dGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkLXN5c3RlbS9nby5zY20KIGNy ZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkL2dvLWJ1aWxkLXN5c3RlbS5zY20KCmRpZmYgLS1n aXQgYS9ndWl4L2J1aWxkLXN5c3RlbS9nby5zY20gYi9ndWl4L2J1aWxkLXN5c3RlbS9nby5zY20K bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMzNmYyMAotLS0gL2Rldi9udWxs CisrKyBiL2d1aXgvYnVpbGQtc3lzdGVtL2dvLnNjbQpAQCAtMCwwICsxLDE5MyBAQAorOzs7IEdO VSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29w eXJpZ2h0IMKpIDIwMTYgUGV0dGVyIDxwZXR0ZXJAbXlrb2xhYi5jaD4KKzs7OworOzs7IFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXggaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorOzs7IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7OyBhbG9u ZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ28pCisgICM6dXNlLW1v ZHVsZSAoZ3VpeCBzdG9yZSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQorICAjOnVzZS1t b2R1bGUgKGd1aXggY29tYmluYXRvcnMpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBkZXJpdmF0aW9u cykKKyAgIzp1c2UtbW9kdWxlIChndWl4IHNlYXJjaC1wYXRocykKKyAgIzp1c2UtbW9kdWxlIChn dWl4IGJ1aWxkLXN5c3RlbSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQorICAjOnVz ZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBiYXNlKQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdl cyBnb2xhbmcpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAo aWNlLTkgbWF0Y2gpCisgICM6ZXhwb3J0ICglZ28tYnVpbGQtc3lzdGVtLW1vZHVsZXMKKyAgICAg ICAgICAgIGdvLWJ1aWxkCisgICAgICAgICAgICBnby1idWlsZC1zeXN0ZW0KKyAgICAgICAgICAg IHNvdXJjZXN0dWZmCisgICAgICAgICAgICBzdGFuZGFyZC1wYWNrYWdlcykpCisKKzs7IENvbW1l bnRhcnk6Cis7OworOzsgU3RhbmRhcmQgYnVpbGQgcHJvY2VkdXJlIGZvciBwYWNrYWdlcyB1c2lu ZyB0aGUgR05VIEJ1aWxkIFN5c3RlbSBvcgorOzsgc29tZXRoaW5nIGNvbXBhdGlibGUgKCIuL2Nv bmZpZ3VyZSAmJiBtYWtlICYmIG1ha2UgaW5zdGFsbCIpLgorOzsKKzs7IENvZGU6CisKKyhkZWZp bmUgJWdvLWJ1aWxkLXN5c3RlbS1tb2R1bGVzCisgIDs7IEJ1aWxkLXNpZGUgbW9kdWxlcyBpbXBv cnRlZCBhbmQgdXNlZCBieSBkZWZhdWx0LgorICAnKChndWl4IGJ1aWxkIGdvLWJ1aWxkLXN5c3Rl bSkKKyAgICAoZ3VpeCBidWlsZCB1dGlscykKKyAgICAoZ3VpeCBidWlsZCBncmVtbGluKQorICAg IChndWl4IGVsZikpKQorCisoZGVmaW5lICVkZWZhdWx0LW1vZHVsZXMKKyAgOzsgTW9kdWxlcyBp biBzY29wZSBpbiB0aGUgYnVpbGQtc2lkZSBlbnZpcm9ubWVudC4KKyAgJygoZ3VpeCBidWlsZCBn by1idWlsZC1zeXN0ZW0pCisgICAgKGd1aXggYnVpbGQgdXRpbHMpKSkKKworKGRlZmluZSogKGxv d2VyIG5hbWUKKyAgICAgICAgICAgICAgICAjOmtleSBzb3VyY2UgaW5wdXRzIG5hdGl2ZS1pbnB1 dHMgb3V0cHV0cyB0YXJnZXQKKyAgICAgICAgICAgICAgICAoaW1wbGljaXQtaW5wdXRzPyAjdCkg KGltcGxpY2l0LWNyb3NzLWlucHV0cz8gI3QpCisgICAgICAgICAgICAgICAgKHN0cmlwLWJpbmFy aWVzPyAjdCkgc3lzdGVtCisgICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzCisgICAg ICAgICAgICAgICAgIzpyZXN0IGFyZ3VtZW50cykKKyAgIlJldHVybiBhIGJhZyBmb3IgTkFNRSBm cm9tIHRoZSBnaXZlbiBhcmd1bWVudHMuIgorICAoZGVmaW5lIHByaXZhdGUta2V5d29yZHMKKyAg ICBgKCM6c291cmNlICM6aW5wdXRzICM6bmF0aXZlLWlucHV0cyAjOm91dHB1dHMKKyAgICAgICM6 aW1wbGljaXQtaW5wdXRzPyAjOmltcGxpY2l0LWNyb3NzLWlucHV0cz8KKyAgICAgICxAKGlmIHRh cmdldCAnKCkgJygjOnRhcmdldCkpKSkKKworICAoYmFnCisgICAgKG5hbWUgbmFtZSkKKyAgICAo c3lzdGVtIHN5c3RlbSkgKHRhcmdldCB0YXJnZXQpCisgICAgKGJ1aWxkLWlucHV0cyBgKCxAKGlm IHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICBgKCgic291cmNlIiAsc291cmNlKSkp CisgICAgICAgICAgICAgICAgICAgICgiZ28iICxnbykKKyAgICAgICAgICAgICAgICAgICAgLEBu YXRpdmUtaW5wdXRzKSkKKyAgICAoaG9zdC1pbnB1dHMgaW5wdXRzKQorCisgICAgKGJ1aWxkIChp ZiB0YXJnZXQgZ251LWNyb3NzLWJ1aWxkIGdvLWJ1aWxkKSkKKyAgICAoYXJndW1lbnRzIChzdHJp cC1rZXl3b3JkLWFyZ3VtZW50cyBwcml2YXRlLWtleXdvcmRzIGFyZ3VtZW50cykpKSkKKworKGRl ZmluZSogKGdvLWJ1aWxkIHN0b3JlIG5hbWUgaW5wdXQtZHJ2cworICAgICAgICAgICAgICAgICAg ICAjOmtleSAoZ3VpbGUgI2YpCisgICAgICAgICAgICAgICAgICAgIChvdXRwdXRzICcoIm91dCIp KQorICAgICAgICAgICAgICAgICAgICAoc2VhcmNoLXBhdGhzICcoKSkKKyAgICAgICAgICAgICAg ICAgICAgKGNvbmZpZ3VyZS1mbGFncyAnJygpKQorICAgICAgICAgICAgICAgICAgICAobWFrZS1m bGFncyAnJygpKQorICAgICAgICAgICAgICAgICAgICAob3V0LW9mLXNvdXJjZT8gI2YpCisgICAg ICAgICAgICAgICAgICAgICh0ZXN0cz8gI3QpCisgICAgICAgICAgICAgICAgICAgIChpbXBvcnQt cGF0aCAiIikKKyAgICAgICAgICAgICAgICAgICAgKHVucGFjay1wYXRoICIiKQorICAgICAgICAg ICAgICAgICAgICAodGVzdC10YXJnZXQgImNoZWNrIikKKyAgICAgICAgICAgICAgICAgICAgKHBh cmFsbGVsLWJ1aWxkPyAjdCkKKyAgICAgICAgICAgICAgICAgICAgKHBhcmFsbGVsLXRlc3RzPyAj dCkKKyAgICAgICAgICAgICAgICAgICAgKHBoYXNlcyAnJXN0YW5kYXJkLXBoYXNlcykKKyAgICAg ICAgICAgICAgICAgICAgKGxvY2FsZSAiZW5fVVMudXRmOCIpCisgICAgICAgICAgICAgICAgICAg IChzeXN0ZW0gKCVjdXJyZW50LXN5c3RlbSkpCisgICAgICAgICAgICAgICAgICAgIChidWlsZCAo bml4LXN5c3RlbS0+Z251LXRyaXBsZXQgc3lzdGVtKSkKKyAgICAgICAgICAgICAgICAgICAgKGlt cG9ydGVkLW1vZHVsZXMgJWdvLWJ1aWxkLXN5c3RlbS1tb2R1bGVzKQorICAgICAgICAgICAgICAg ICAgICAobW9kdWxlcyAlZGVmYXVsdC1tb2R1bGVzKQorICAgICAgICAgICAgICAgICAgICAoc3Vi c3RpdHV0YWJsZT8gI3QpCisgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQtcmVmZXJlbmNlcwor ICAgICAgICAgICAgICAgICAgICBkaXNhbGxvd2VkLXJlZmVyZW5jZXMpCisgICJSZXR1cm4gYSBk ZXJpdmF0aW9uIGNhbGxlZCBOQU1FIHRoYXQgYnVpbGRzIGZyb20gdGFyYmFsbCBTT1VSQ0UsIHdp dGgKK2lucHV0IGRlcml2YXRpb24gSU5QVVRTLCB1c2luZyB0aGUgdXN1YWwgcHJvY2VkdXJlIG9m IHRoZSBHTlUgQnVpbGQKK1N5c3RlbS4gIFRoZSBidWlsZGVyIGlzIHJ1biB3aXRoIEdVSUxFLCBv ciB3aXRoIHRoZSBkaXN0cm8ncyBmaW5hbCBHdWlsZQorcGFja2FnZSBpZiBHVUlMRSBpcyAjZiBv ciBvbWl0dGVkLgorCitUaGUgYnVpbGRlciBpcyBydW4gaW4gYSBjb250ZXh0IHdoZXJlIE1PRFVM RVMgYXJlIHVzZWQ7IElNUE9SVEVELU1PRFVMRVMKK3NwZWNpZmllcyBtb2R1bGVzIG5vdCBwcm92 aWRlZCBieSBHdWlsZSBpdHNlbGYgdGhhdCBtdXN0IGJlIGltcG9ydGVkIGluCit0aGUgYnVpbGRl cidzIGVudmlyb25tZW50LCBmcm9tIHRoZSBob3N0LiAgTm90ZSB0aGF0IHdlIGRpc3Rpbmd1aXNo CitiZXR3ZWVuIGJvdGgsIGJlY2F1c2UgZm9yIEd1aWxlJ3Mgb3duIG1vZHVsZXMgbGlrZSAoaWNl LTkgZm9vKSwgd2Ugd2FudAordG8gdXNlIEdVSUxFJ3Mgb3duIHZlcnNpb24gb2YgaXQsIHJhdGhl ciB0aGFuIGltcG9ydCB0aGUgdXNlcidzIG9uZSwKK3doaWNoIGNvdWxkIGxlYWQgdG8gZ3JhdHVp dG91cyBpbnB1dCBkaXZlcmdlbmNlLgorCitTVUJTVElUVVRBQkxFPyBkZXRlcm1pbmVzIHdoZXRo ZXIgdXNlcnMgbWF5IGJlIGFibGUgdG8gdXNlIHN1YnN0aXR1dGVzIG9mIHRoZQorcmV0dXJuZWQg ZGVyaXZhdGlvbnMsIG9yIHdoZXRoZXIgdGhleSBzaG91bGQgYWx3YXlzIGJ1aWxkIGl0IGxvY2Fs bHkuCisKK0FMTE9XRUQtUkVGRVJFTkNFUyBjYW4gYmUgZWl0aGVyICNmLCBvciBhIGxpc3Qgb2Yg cGFja2FnZXMgdGhhdCB0aGUgb3V0cHV0cworYXJlIGFsbG93ZWQgdG8gcmVmZXIgdG8uICBMaWtl d2lzZSBmb3IgRElTQUxMT1dFRC1SRUZFUkVOQ0VTLCB3aGljaCBsaXN0cworcGFja2FnZXMgdGhh dCBtdXN0IG5vdCBiZSByZWZlcmVuY2VkLiIKKyAgKGRlZmluZSBjYW5vbmljYWxpemUtcmVmZXJl bmNlCisgICAgKG1hdGNoLWxhbWJkYQorICAgICAoKD8gcGFja2FnZT8gcCkKKyAgICAgIChkZXJp dmF0aW9uLT5vdXRwdXQtcGF0aCAocGFja2FnZS1kZXJpdmF0aW9uIHN0b3JlIHAgc3lzdGVtCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmdyYWZ0 PyAjZikpKQorICAgICAoKCg/IHBhY2thZ2U/IHApIG91dHB1dCkKKyAgICAgIChkZXJpdmF0aW9u LT5vdXRwdXQtcGF0aCAocGFja2FnZS1kZXJpdmF0aW9uIHN0b3JlIHAgc3lzdGVtCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmdyYWZ0PyAjZikK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQpKQorICAgICAoKD8gc3RyaW5n PyBvdXRwdXQpCisgICAgICBvdXRwdXQpKSkKKworICAoZGVmaW5lIGJ1aWxkZXIKKyAgICBgKGJl Z2luCisgICAgICAgKHVzZS1tb2R1bGVzICxAbW9kdWxlcykKKyAgICAgICAoZ28tYnVpbGQgIzpz b3VyY2UgLChtYXRjaCAoYXNzb2MtcmVmIGlucHV0LWRydnMgInNvdXJjZSIpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoKCg/IGRlcml2YXRpb24/IHNvdXJjZSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGRlcml2YXRpb24tPm91dHB1dC1wYXRoIHNvdXJjZSkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHNvdXJjZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzb3VyY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc291 cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlKSkKKyAgICAgICAgICAg ICAgICAgIzppbXBvcnQtcGF0aCAsaW1wb3J0LXBhdGgKKyAgICAgICAgICAgICAgICAgIzp1bnBh Y2stcGF0aCAsdW5wYWNrLXBhdGgKKyAgICAgICAgICAgICAgICAgICM6c3lzdGVtICxzeXN0ZW0K KyAgICAgICAgICAgICAgICAgICM6YnVpbGQgLGJ1aWxkCisgICAgICAgICAgICAgICAgICAjOm91 dHB1dHMgJW91dHB1dHMKKyAgICAgICAgICAgICAgICAgICM6aW5wdXRzICVidWlsZC1pbnB1dHMK KyAgICAgICAgICAgICAgICAgICM6c2VhcmNoLXBhdGhzICcsKG1hcCBzZWFyY2gtcGF0aC1zcGVj aWZpY2F0aW9uLT5zZXhwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VhcmNoLXBhdGhzKQorICAgICAgICAgICAgICAgICAgIzpwaGFzZXMgLHBoYXNlcworICAgICAg ICAgICAgICAgICAgIzpsb2NhbGUgLGxvY2FsZQorICAgICAgICAgICAgICAgICAgIzpjb25maWd1 cmUtZmxhZ3MgLGNvbmZpZ3VyZS1mbGFncworICAgICAgICAgICAgICAgICAgIzptYWtlLWZsYWdz ICxtYWtlLWZsYWdzCisgICAgICAgICAgICAgICAgICAjOm91dC1vZi1zb3VyY2U/ICxvdXQtb2Yt c291cmNlPworICAgICAgICAgICAgICAgICAgIzp0ZXN0cz8gLHRlc3RzPworICAgICAgICAgICAg ICAgICAgIzp0ZXN0LXRhcmdldCAsdGVzdC10YXJnZXQKKyAgICAgICAgICAgICAgICAgICM6cGFy YWxsZWwtYnVpbGQ/ICxwYXJhbGxlbC1idWlsZD8KKyAgICAgICAgICAgICAgICAgICM6cGFyYWxs ZWwtdGVzdHM/ICxwYXJhbGxlbC10ZXN0cz8pKSkKKworICAoZGVmaW5lIGd1aWxlLWZvci1idWls ZAorICAgIChtYXRjaCBndWlsZQorICAgICAgKCg/IHBhY2thZ2U/KQorICAgICAgIChwYWNrYWdl LWRlcml2YXRpb24gc3RvcmUgZ3VpbGUgc3lzdGVtICM6Z3JhZnQ/ICNmKSkKKyAgICAgICgjZiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyB0aGUgZGVmYXVsdAorICAg ICAgIChsZXQqICgoZGlzdHJvIChyZXNvbHZlLWludGVyZmFjZSAnKGdudSBwYWNrYWdlcyBjb21t ZW5jZW1lbnQpKSkKKyAgICAgICAgICAgICAgKGd1aWxlICAobW9kdWxlLXJlZiBkaXN0cm8gJ2d1 aWxlLWZpbmFsKSkpCisgICAgICAgICAocGFja2FnZS1kZXJpdmF0aW9uIHN0b3JlIGd1aWxlIHN5 c3RlbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmdyYWZ0PyAjZikpKSkpCisKKyAg KGJ1aWxkLWV4cHJlc3Npb24tPmRlcml2YXRpb24gc3RvcmUgbmFtZSBidWlsZGVyCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICM6c3lzdGVtIHN5c3RlbQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjOmlucHV0cyBpbnB1dC1kcnZzCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICM6b3V0cHV0cyBvdXRwdXRzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICM6bW9kdWxlcyBpbXBvcnRlZC1tb2R1bGVzCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICM6c3Vic3RpdHV0YWJsZT8gc3Vic3RpdHV0YWJsZT8KKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjOmFsbG93ZWQtcmVmZXJlbmNlcworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoYW5kIGFsbG93ZWQtcmVmZXJlbmNlcworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChtYXAgY2Fub25pY2FsaXplLXJlZmVyZW5jZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZC1yZWZlcmVuY2VzKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpkaXNhbGxvd2VkLXJlZmVyZW5jZXMK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCBkaXNhbGxvd2VkLXJlZmVyZW5j ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwIGNhbm9uaWNhbGl6 ZS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp c2FsbG93ZWQtcmVmZXJlbmNlcykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6 Z3VpbGUtZm9yLWJ1aWxkIGd1aWxlLWZvci1idWlsZCkpCisKKworKGRlZmluZSBnby1idWlsZC1z eXN0ZW0KKyAgKGJ1aWxkLXN5c3RlbQorICAgIChuYW1lICdnbykKKyAgICAoZGVzY3JpcHRpb24K KyAgICAgIlRoZSBHTyBCdWlsZCBTeXN0ZW0iKQorICAgIChsb3dlciBsb3dlcikpKQpkaWZmIC0t Z2l0IGEvZ3VpeC9idWlsZC9nby1idWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWlsZC9nby1idWls ZC1zeXN0ZW0uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhOTRiNjAK LS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2J1aWxkL2dvLWJ1aWxkLXN5c3RlbS5zY20KQEAgLTAs MCArMSwxODYgQEAKKzs7OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1l bnQgZm9yIEdOVQorOzs7IENvcHlyaWdodCDCqSAyMDE2IFBldHRlciA8cGV0dGVyQG15a29sYWIu Y2g+Cis7OzsKKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdO VSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7 OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7 IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgZ28t YnVpbGQtc3lzdGVtKQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgICM6dXNl LW1vZHVsZSAoZ3VpeCBidWlsZCBncmVtbGluKQorICAjOnVzZS1tb2R1bGUgKGd1aXggZWxmKQor ICAjOnVzZS1tb2R1bGUgKGljZS05IGZ0dykKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSBtYXRjaCkK KyAgIzp1c2UtbW9kdWxlIChpY2UtOSByZWdleCkKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSBmb3Jt YXQpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBz cmZpLTE5KQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0yNikKKyAgIzp1c2UtbW9kdWxlIChy bnJzIGlvIHBvcnRzKQorICAjOmV4cG9ydCAoJXN0YW5kYXJkLXBoYXNlcworICAgICAgICAgICAg Z28tYnVpbGQpKQorCis7OyBDb21tZW50YXJ5OgorOzsKKzs7IFN0YW5kYXJkIGJ1aWxkIHByb2Nl ZHVyZSBmb3IgcGFja2FnZXMgdXNpbmcgdGhlIEdOVSBCdWlsZCBTeXN0ZW0gb3IKKzs7IHNvbWV0 aGluZyBjb21wYXRpYmxlICgiLi9jb25maWd1cmUgJiYgbWFrZSAmJiBtYWtlIGluc3RhbGwiKS4g IFRoaXMgaXMgdGhlCis7OyBidWlsZGVyLXNpZGUgY29kZS4KKzs7Cis7OyBDb2RlOgorCisoZGVm aW5lKiAoc2V0LVNPVVJDRS1EQVRFLUVQT0NIICM6cmVzdCBfKQorICAiU2V0IHRoZSAnU09VUkNF X0RBVEVfRVBPQ0gnIGVudmlyb25tZW50IHZhcmlhYmxlLiAgVGhpcyBpcyB1c2VkIGJ5IHRvb2xz Cit0aGF0IGluY29ycG9yYXRlIHRpbWVzdGFtcHMgYXMgYSB3YXkgdG8gdGVsbCB0aGVtIHRvIHVz ZSBhIGZpeGVkIHRpbWVzdGFtcC4KK1NlZSBodHRwczovL3JlcHJvZHVjaWJsZS1idWlsZHMub3Jn L3NwZWNzL3NvdXJjZS1kYXRlLWVwb2NoLy4iCisgIChzZXRlbnYgIlNPVVJDRV9EQVRFX0VQT0NI IiAiMSIpCisgICN0KQorCisoZGVmaW5lKiAoc2V0LXBhdGhzICM6a2V5IHRhcmdldCBpbnB1dHMg bmF0aXZlLWlucHV0cworICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtleXMpCisK KyAgKGRlZmluZSBpbnB1dC1kaXJlY3RvcmllcworICAgIChtYXRjaCBpbnB1dHMKKyAgICAgICgo KF8gLiBkaXIpIC4uLikKKyAgICAgICBkaXIpKSkKKworICAoZGVmaW5lIG5hdGl2ZS1pbnB1dC1k aXJlY3RvcmllcworICAgIChtYXRjaCBuYXRpdmUtaW5wdXRzCisgICAgICAoKChfIC4gZGlyKSAu Li4pCisgICAgICAgZGlyKQorICAgICAgKCNmCisgICAgICAgJygpKSkpCisKKyAgKHNldC1wYXRo LWVudmlyb25tZW50LXZhcmlhYmxlICJQQVRIIiAnKCJiaW4iICJzYmluIikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgbmF0aXZlLWlucHV0LWRpcmVjdG9yaWVzCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiB0YXJnZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQtZGlyZWN0b3JpZXMpKSkKKwor ICAjdCkKKworKGRlZmluZSogKGluc3RhbGwtbG9jYWxlICM6a2V5CisgICAgICAgICAgICAgICAg ICAgICAgICAgKGxvY2FsZSAiZW5fVVMudXRmOCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg KGxvY2FsZS1jYXRlZ29yeSBMQ19BTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgIzphbGxv dy1vdGhlci1rZXlzKQorICAiVHJ5IHRvIGluc3RhbGwgTE9DQUxFOyBlbWl0IGEgd2FybmluZyBp ZiB0aGF0IGZhaWxzLiAgVGhlIG1haW4gZ29hbCBpcyB0bwordXNlIGEgVVRGLTggbG9jYWxlIHNv IHRoYXQgR3VpbGUgY29ycmVjdGx5IGludGVycHJldHMgVVRGLTggZmlsZSBuYW1lcy4KKworVGhp cyBwaGFzZSBtdXN0IHR5cGljYWxseSBoYXBwZW4gYWZ0ZXIgJ3NldC1wYXRocycgc28gdGhhdCAk TE9DUEFUSCBoYXMgYQorY2hhbmNlIHRvIGJlIHNldC4iCisgIChjYXRjaCAnc3lzdGVtLWVycm9y CisgICAgKGxhbWJkYSAoKQorICAgICAgKHNldGxvY2FsZSBsb2NhbGUtY2F0ZWdvcnkgbG9jYWxl KQorCisgICAgICA7OyBXaGlsZSB3ZSdyZSBhdCBpdCwgcGFzcyBpdCB0byBzdWItcHJvY2Vzc2Vz LgorICAgICAgKHNldGVudiAobG9jYWxlLWNhdGVnb3J5LT5zdHJpbmcgbG9jYWxlLWNhdGVnb3J5 KSBsb2NhbGUpCisKKyAgICAgIChmb3JtYXQgKGN1cnJlbnQtZXJyb3ItcG9ydCkgInVzaW5nICd+ YScgbG9jYWxlIGZvciBjYXRlZ29yeSB+c34lIgorICAgICAgICAgICAgICBsb2NhbGUgKGxvY2Fs ZS1jYXRlZ29yeS0+c3RyaW5nIGxvY2FsZS1jYXRlZ29yeSkpCisgICAgICAjdCkKKyAgICAobGFt YmRhIGFyZ3MKKyAgICAgIDs7IFRoaXMgaXMga25vd24gdG8gZmFpbCBmb3IgaW5zdGFuY2UgaW4g ZWFybHkgYm9vdHN0cmFwIHdoZXJlIGxvY2FsZXMKKyAgICAgIDs7IGFyZSBub3QgYXZhaWxhYmxl LgorICAgICAgKGZvcm1hdCAoY3VycmVudC1lcnJvci1wb3J0KQorICAgICAgICAgICAgICAid2Fy bmluZzogZmFpbGVkIHRvIGluc3RhbGwgJ35hJyBsb2NhbGU6IH5hfiUiCisgICAgICAgICAgICAg IGxvY2FsZSAoc3RyZXJyb3IgKHN5c3RlbS1lcnJvci1lcnJubyBhcmdzKSkpCisgICAgICAjdCkp KQorCisoZGVmaW5lKiAodW5wYWNrICM6a2V5IHNvdXJjZSBpbXBvcnQtcGF0aCB1bnBhY2stcGF0 aCAjOmFsbG93LW90aGVyLWtleXMpCisgICJVbnBhY2sgU09VUkNFIGluIHRoZSB3b3JraW5nIGRp cmVjdG9yeSwgYW5kIGNoYW5nZSBkaXJlY3Rvcnkgd2l0aGluIHRoZQorc291cmNlLiAgV2hlbiBT T1VSQ0UgaXMgYSBkaXJlY3RvcnksIGNvcHkgaXQgaW4gYSBzdWItZGlyZWN0b3J5IG9mIHRoZSBj dXJyZW50Cit3b3JraW5nIGRpcmVjdG9yeS4iCisgIChpZiAoc3RyaW5nLW51bGw/IGltcG9ydC1w YXRoKQorICAgICAgKChkaXNwbGF5ICJXQVJOSU5HOiBpbXBvcnQtcGF0aCBpcyB1bnNldFxuIikp KQorICAoaWYgKHN0cmluZy1udWxsPyB1bnBhY2stcGF0aCkKKyAgICAgIChzZXQhIHVucGFjay1w YXRoIGltcG9ydC1wYXRoKSkKKyAgKG1rZGlyLXAgImJpbiIpCisgIChta2Rpci1wICJwa2ciKQor ICAobGV0ICgoc3JjIChzdHJpbmctYXBwZW5kICJzcmMvIiB1bnBhY2stcGF0aCkpKQorICAgICht a2Rpci1wIHNyYykKKyAgICAoY29weS1yZWN1cnNpdmVseSBzb3VyY2Ugc3JjKSkpCisKKyhkZWZp bmUqIChkZWxldGUtZmlsZXMgIzprZXkgaW1wb3J0LXBhdGggIzphbGxvdy1vdGhlci1rZXlzKSAj dCkKKworKGRlZmluZSogKHNldC1nb3BhdGggIzprZXkgaW1wb3J0LXBhdGggIzphbGxvdy1vdGhl ci1rZXlzKQorICAoc2V0ZW52ICJHT1BBVEgiIChnZXRjd2QpKSkKKworKGRlZmluZSogKHN5bWxp bmtpbmcgIzprZXkgaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgKGZvci1lYWNoIChsYW1i ZGEgKGlucHV0KQorICAgICAgICAgICAgICAobGV0ICgoaW1wcGF0aCAoY2FyIGlucHV0KSkKKyAg ICAgICAgICAgICAgICAgICAgKHN0b3JlcGF0aCAoY2RyIGlucHV0KSkpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAoaWYgKGFuZCAobm90IChzdHJpbmc9PyBp bXBwYXRoICJnbyIpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHN0cmluZz0/IGlt cHBhdGggInNvdXJjZSIpKSkKKyAgICAgICAgICAgICAgICAgICAgKGJlZ2luCisgICAgICAgICAg ICAgICAgICAgICAgKG1rZGlyLXAgKHN0cmluZy1hcHBlbmQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJp bmctdGFrZSBpbXBwYXRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3RyaW5nLXJpbmRleCBpbXBwYXRoICNcLykpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAobGV0ICgoZnJvbSAoc3RyaW5nLWFwcGVuZCBzdG9yZXBhdGggIi9zcmMvIiBpbXBwYXRoKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodG8gKHN0cmluZy1hcHBlbmQgInNyYy8iIGlt cHBhdGgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZmlsZS1leGlzdHM/IHRvKSAo ZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkgdG8pKQorICAgICAgICAgICAgICAgICAgICAgICAgKHN5 bWxpbmsgKHN0cmluZy1hcHBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dG9yZXBhdGggIi9zcmMvIiBpbXBwYXRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cmluZy1hcHBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Jj LyIgaW1wcGF0aCkpKSkpKSkKKyAgICAgICAgICAgIGlucHV0cykpCisKKyhkZWZpbmUqIChidWls ZCAjOmtleSBpbXBvcnQtcGF0aCAjOmFsbG93LW90aGVyLWtleXMpCisgIChzeXN0ZW0qICJnbyIg Imluc3RhbGwiIGltcG9ydC1wYXRoKSkKKworKGRlZmluZSogKGluc3RhbGwgIzprZXkgaW5wdXRz IG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAoY29weS1yZWN1cnNpdmVseSAiYmluIiAo c3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpICIvYmluIikpCisgIChjb3B5 LXJlY3Vyc2l2ZWx5ICJwa2ciIChzdHJpbmctYXBwZW5kIChhc3NvYy1yZWYgb3V0cHV0cyAib3V0 IikgIi9wa2ciKSkKKyAgKGNvcHktcmVjdXJzaXZlbHkgInNyYyIgKHN0cmluZy1hcHBlbmQgKGFz c29jLXJlZiBvdXRwdXRzICJvdXQiKSAiL3NyYyIpKSkKKworKGRlZmluZSAlc3RhbmRhcmQtcGhh c2VzCisgIDs7IFN0YW5kYXJkIGJ1aWxkIHBoYXNlcywgYXMgYSBsaXN0IG9mIHN5bWJvbC9wcm9j ZWR1cmUgcGFpcnMuCisgIChsZXQtc3ludGF4ICgocGhhc2VzIChzeW50YXgtcnVsZXMgKCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAoKF8gcCAuLi4pIGAoKHAgLiAscCkgLi4uKSkpKSkKKyAg ICAocGhhc2VzIHNldC1TT1VSQ0UtREFURS1FUE9DSCBzZXQtcGF0aHMgaW5zdGFsbC1sb2NhbGUg dW5wYWNrCisgICAgICAgICAgICBkZWxldGUtZmlsZXMgc2V0LWdvcGF0aCBzeW1saW5raW5nIGJ1 aWxkIGluc3RhbGwKKyAgICAgICAgICAgICkpKQorCisoZGVmaW5lKiAoZ28tYnVpbGQgIzprZXkg KHNvdXJjZSAjZikgKG91dHB1dHMgI2YpIChpbnB1dHMgI2YpCisgICAgICAgICAgICAgICAgICAg IChwaGFzZXMgJXN0YW5kYXJkLXBoYXNlcykKKyAgICAgICAgICAgICAgICAgICAgIzphbGxvdy1v dGhlci1rZXlzCisgICAgICAgICAgICAgICAgICAgICM6cmVzdCBhcmdzKQorICAiQnVpbGQgZnJv bSBTT1VSQ0UgdG8gT1VUUFVUUywgdXNpbmcgSU5QVVRTLCBhbmQgYnkgcnVubmluZyBhbGwgb2Yg UEhBU0VTCitpbiBvcmRlci4gIFJldHVybiAjdCBpZiBhbGwgdGhlIFBIQVNFUyBzdWNjZWVkZWQs ICNmIG90aGVyd2lzZS4iCisgIChkZWZpbmUgKGVsYXBzZWQtdGltZSBlbmQgc3RhcnQpCisgICAg KGxldCAoKGRpZmYgKHRpbWUtZGlmZmVyZW5jZSBlbmQgc3RhcnQpKSkKKyAgICAgICgrICh0aW1l LXNlY29uZCBkaWZmKQorICAgICAgICAgKC8gKHRpbWUtbmFub3NlY29uZCBkaWZmKSAxZTkpKSkp CisKKyAgKHNldHZidWYgKGN1cnJlbnQtb3V0cHV0LXBvcnQpIF9JT0xCRikKKyAgKHNldHZidWYg KGN1cnJlbnQtZXJyb3ItcG9ydCkgX0lPTEJGKQorCisgIDs7IEVuY29kaW5nL2RlY29kaW5nIGVy cm9ycyBzaG91bGRuJ3QgYmUgc2lsZW50LgorICAoZmx1aWQtc2V0ISAlZGVmYXVsdC1wb3J0LWNv bnZlcnNpb24tc3RyYXRlZ3kgJ2Vycm9yKQorCisgIDs7IFRoZSB0cmljayBpcyB0byAjOmFsbG93 LW90aGVyLWtleXMgZXZlcnl3aGVyZSwgc28gdGhhdCBlYWNoIHByb2NlZHVyZSBpbgorICA7OyBQ SEFTRVMgY2FuIHBpY2sgdGhlIGtleXdvcmQgYXJndW1lbnRzIGl0J3MgaW50ZXJlc3RlZCBpbi4K KyAgKGV2ZXJ5IChtYXRjaC1sYW1iZGEKKyAgICAgICAgICAoKG5hbWUgLiBwcm9jKQorICAgICAg ICAgICAobGV0ICgoc3RhcnQgKGN1cnJlbnQtdGltZSB0aW1lLW1vbm90b25pYykpKQorICAgICAg ICAgICAgIChmb3JtYXQgI3QgInN0YXJ0aW5nIHBoYXNlIGB+YSd+JSIgbmFtZSkKKyAgICAgICAg ICAgICAobGV0ICgocmVzdWx0IChhcHBseSBwcm9jIGFyZ3MpKQorICAgICAgICAgICAgICAgICAg IChlbmQgICAgKGN1cnJlbnQtdGltZSB0aW1lLW1vbm90b25pYykpKQorICAgICAgICAgICAgICAg KGZvcm1hdCAjdCAicGhhc2UgYH5hJyB+OltmYWlsZWR+O3N1Y2NlZWRlZH5dIGFmdGVyIH4sMWYg c2Vjb25kc34lIgorICAgICAgICAgICAgICAgICAgICAgICBuYW1lIHJlc3VsdAorICAgICAgICAg ICAgICAgICAgICAgICAoZWxhcHNlZC10aW1lIGVuZCBzdGFydCkpCisKKyAgICAgICAgICAgICAg IDs7IER1bXAgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcyBhIHNoZWxsIHNjcmlwdCwgZm9y IGhhbmR5IGRlYnVnZ2luZy4KKyAgICAgICAgICAgICAgIChzeXN0ZW0gImV4cG9ydCA+ICROSVhf QlVJTERfVE9QL2Vudmlyb25tZW50LXZhcmlhYmxlcyIpCisgICAgICAgICAgICAgICByZXN1bHQp KSkpCisgICAgICAgICBwaGFzZXMpKQotLSAKMi4xMC4xCgo= --=_5e0bd7c750d8e4d1c6f7df34e06ea59a--