yo

bash/zsh cowsay

overwrite ls

# note ls binary path
LS_BIN=$((type -P ls || type -p ls) | rev | cut '-d ' -f1 | rev)
COW_PATH=$(find /tmp/cheese.cow || echo cheese)
COW_BIN=$(find /tmp/cowthink || echo cowthink)
# override ls
function ls () { $LS_BIN $@ | $COW_BIN -n -f $COW_PATH | $COW_BIN -n -f $COW_PATH | $COW_BIN -n -f $COW_PATH; }

optionally download

# get cowsay perl script
echo "IyEvdXNyL2Jpbi9lbnYgcGVybAoKIyMKIyMgQ293c2F5CiMjCgp1c2UgQ3dkICdhYnNfcG
F0aCc7CnVzZSBGaWxlOjpCYXNlbmFtZTsKdXNlIEZpbGU6OkZpbmQ7CnVzZSBHZXRvcHQ6
OlN0ZDsKdXNlIFRleHQ6OlRhYnMgcXcoZXhwYW5kKTsKdXNlIFRleHQ6OldyYXAgcXcod3
JhcCBmaWxsICRjb2x1bW5zKTsKCiRHZXRvcHQ6OlN0ZDo6U1RBTkRBUkRfSEVMUF9WRVJT
SU9OID0gMTsKCiRWRVJTSU9OID0gIjMuOC41LVNOQVBTSE9UIjsKJHByb2duYW1lID0gYm
FzZW5hbWUoJDApOwokZXllcyA9ICJvbyI7CiR0b25ndWUgPSAiICAiOwokcGF0aHNlcCA9
IGRldGVjdF9wYXRoc2VwKCk7CkBjb3dwYXRoID0gcGlja19jb3dwYXRoKCk7CkBtZXNzYW
dlID0gKCk7CiR0aG91Z2h0cyA9ICIiOwoKIyBZZWFoLCB0aGlzIGlzIHJ1ZGUsIEkga25v
dy4gQnV0IGhvcGVmdWxseSBpdCBnZXRzIGFyb3VuZCBhIG5hc3R5IGxpdHRsZSB2ZXJzaW
9uCiMgZGVwZW5kZW5jeS4KCiRUZXh0OjpXcmFwOjppbml0aWFsX3RhYiA9IDg7CiRUZXh0
OjpXcmFwOjpzdWJzZXF1ZW50X3RhYiA9IDg7CiRUZXh0OjpXcmFwOjp0YWJzdG9wID0gOD
sKCiVvcHRzID0gKAogICAgJ2UnICAgICAgICAgPT4gICAgICAnb28nLAogICAgJ2YnICAg
ICAgICAgPT4gICAgICAnZGVmYXVsdC5jb3cnLAogICAgJ24nICAgICAgICAgPT4gICAgIC
AwLAogICAgJ1QnICAgICAgICAgPT4gICAgICAnICAnLAogICAgJ1cnICAgICAgICAgPT4g
ICAgICA0MCwKKTsKCmdldG9wdHMoJ2JDZGU6ZjpnaGxMbk5wcnN0VDp3Vzp5JywgXCVvcH
RzKTsKCmlmICgkb3B0c3snaCd9KSB7CiAgICAmSEVMUF9NRVNTQUdFOwogICAgZXhpdCgw
KTsKfQombGlzdF9jb3dmaWxlcyBpZiAkb3B0c3snbCd9OwoKJHJhbmRvbSA9ICRvcHRzey
dyJ307CiRlbmFibGVfZnVsbF9jb2xvciA9ICRvcHRzeydDJ307CiRib3JnID0gJG9wdHN7
J2InfTsKJGRlYWQgPSAkb3B0c3snZCd9OwokZ3JlZWR5ID0gJG9wdHN7J2cnfTsKJHBhcm
Fub2lkID0gJG9wdHN7J3AnfTsKJHN0b25lZCA9ICRvcHRzeydzJ307CiR0aXJlZCA9ICRv
cHRzeyd0J307CiR3aXJlZCA9ICRvcHRzeyd3J307CiR5b3VuZyA9ICRvcHRzeyd5J307Ci
RleWVzID0gc3Vic3RyKCRvcHRzeydlJ30sIDAsIDIpOwokdG9uZ3VlID0gc3Vic3RyKCRv
cHRzeydUJ30sIDAsIDIpOwokc3BlY2lmaWVkX2NvdyA9ICRvcHRzeydmJ307CiRjb3dfZm
lsZV9wYXRoID0gIiI7CiR0aGVfY293ID0gIiI7Cgomc2x1cnBfaW5wdXQ7CiRUZXh0OjpX
cmFwOjpjb2x1bW5zID0gJG9wdHN7J1cnfTsKQG1lc3NhZ2UgPSAoJG9wdHN7J24nfSA/IG
V4cGFuZChAbWVzc2FnZSkgOiAKICAgICAgICAgICAgc3BsaXQoIlxuIiwgZmlsbCgiIiwg
IiIsIEBtZXNzYWdlKSkpOwomY29uc3RydWN0X2JhbGxvb247CiZjb25zdHJ1Y3RfZmFjZT
sKJnBpY2tfY293OwomcmVhZF9jb3c7CnByaW50IEBiYWxsb29uX2xpbmVzOwpwcmludCAk
dGhlX2NvdzsKCnN1YiBkZXRlY3RfcGF0aHNlcCB7CiAgICAjIE9uZSBvZiB0aGVzZSBkYX
lzLCB3ZSdsbCBnZXQgaXQgcG9ydGVkIHRvIFdpbmRvd3MuIFllYWgsIHJpZ2h0LgogICAg
aWYgKCgkXk8gZXEgIk1TV2luMzIiKSBvciAoJF5PIGVxICJXaW5kb3dzX05UIikpIHsgIC
MgTWFueSBwZXJscywgZWVrIQogICAgICAgIHJldHVybiAnOyc7CiAgICB9IGVsc2Ugewog
ICAgICAgIHJldHVybiAnOic7CiAgICB9Cn0KCnN1YiBwaWNrX2Nvd3BhdGggewogICAgbX
kgJGV4ZV9maWxlID0gYWJzX3BhdGgoX19GSUxFX18pOwogICAgbXkgJHBhcmVudF9kaXIg
PSBkaXJuYW1lKCRleGVfZmlsZSk7CiAgICBteSAkcGFyZW50X2Rpcl9iYXNlID0gYmFzZW
5hbWUoJHBhcmVudF9kaXIpOwogICAgbXkgKCRwcmVmaXhfZGlyLCAkc2hhcmVfY293c2F5
LCAkcmVhbF9wcmVmaXhfZGlyLCAkZXRjX2Rpcik7CiAgICAjIHByZWZpeCBpcyB0aGUgcG
FyZW50IGRpciBvZiBiaW4vLCBpbiB3aGljaCBjb3dzYXkgbXVzdCBsaXZlCiAgICAkcHJl
Zml4X2RpciA9IGRpcm5hbWUoJHBhcmVudF9kaXIpOwogICAgJHNoYXJlX2Nvd3NheSA9IC
IkcHJlZml4X2Rpci9zaGFyZS9jb3dzYXkiOwogICAgJHJlYWxfcHJlZml4X2RpciA9IGFi
c19wYXRoKCRwcmVmaXhfZGlyKTsKICAgIGlmICgkcmVhbF9wcmVmaXhfZGlyIGVxICIvdX
NyIikgewogICAgICAgICRldGNfZGlyID0gIi9ldGMiOwogICAgfSBlbHNlIHsKICAgICAg
ICAkZXRjX2RpciA9ICIkcmVhbF9wcmVmaXhfZGlyL2V0YyI7CiAgICB9CgogICAgbXkgQG
Nvd3BhdGg7CiAgICBteSBAZGVmYXVsdF9jb3dwYXRoID0gKCIkc2hhcmVfY293c2F5L3Np
dGUtY293cyIsICIkc2hhcmVfY293c2F5L2Nvd3MiKTsKCiAgICBteSAkY293cGF0aF9kX2
RpciA9ICIkZXRjX2Rpci9jb3dzYXkvY293cGF0aC5kIjsKICAgIGlmICgtZCAkY293cGF0
aF9kX2RpcikgewogICAgICAgIG15ICRkaDsKICAgICAgICBvcGVuZGlyKCRkaCwgJGNvd3
BhdGhfZF9kaXIpOwogICAgICAgIG15IEBmaWxlcyA9IHJlYWRkaXIoJGRoKTsKICAgICAg
ICBjbG9zZWRpcigkZGgpOwogICAgICAgIGZvcmVhY2ggKEBmaWxlcykgewogICAgICAgIC
AgICBteSAkZmlsZSA9ICIkY293cGF0aF9kX2Rpci8kXyI7CiAgICAgICAgICAgIGlmICgt
ZiAkZmlsZSAmJiAkZmlsZSA9fiAvXC5wYXRoJC8pIHsKICAgICAgICAgICAgICAgIG9wZW
4gbXkgJGZoLCAnPCcsICRmaWxlCiAgICAgICAgICAgICAgICAgICAgb3IgZGllICJDb3Vs
ZCBub3QgcmVhZCBjb3dwYXRoIGZpbGUgJGZpbGU6ICQhXG4iOwogICAgICAgICAgICAgIC
Agd2hpbGUgKG15ICRlbnRyeSA9IDwkZmg+KSB7CiAgICAgICAgICAgICAgICAgICAgY2hv
bXAgJGVudHJ5OwogICAgICAgICAgICAgICAgICAgIHB1c2ggQGRlZmF1bHRfY293cGF0aC
wgJGVudHJ5OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2xvc2UoJGZo
KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBpZiAoJEVOVnsnQ09XUE
FUSCd9KSB7CiAgICAgICAgbXkgQHVzZXJfY293cGF0aCA9IHNwbGl0KC8kcGF0aHNlcC8s
ICRFTlZ7J0NPV1BBVEgnfSk7CiAgICAgICAgaWYgKCRFTlZ7J0NPV1NBWV9PTkxZX0NPV1
BBVEgnfSA9PSAxKSB7CiAgICAgICAgICAgIEBjb3dwYXRoID0gQHVzZXJfY293cGF0aDsK
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBAY293cGF0aCA9IChAZGVmYXVsdF9jb3
dwYXRoLCBAdXNlcl9jb3dwYXRoKTsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAg
IEBjb3dwYXRoID0gQGRlZmF1bHRfY293cGF0aDsKICAgIH0KCiAgICBAY293cGF0aCA9IH
VuaXF1aWZ5X2xpc3QoQGNvd3BhdGgpOwoKICAgIHJldHVybiBAY293cGF0aDsKfQoKc3Vi
IHVuaXF1aWZ5X2xpc3QgewogICAgbXkgJXNlZW47CiAgICBteSBAdW5pcXVlID0gZ3JlcC
B7ICEkc2VlbnskX30rKyB9IEBfOwogICAgcmV0dXJuIEB1bmlxdWU7Cn0KCnN1YiBsaXN0
X2Nvd2ZpbGVzIHsKICAgIGlmICgtdCBTVERPVVQpIHsKICAgICAgICBsaXN0X2Nvd2ZpbG
VzX3ByZXR0eSgpOwogICAgfSBlbHNlIHsKICAgICAgICBsaXN0X2Nvd2ZpbGVzX3BhcnNl
YWJsZSgpOwogICAgfQogICAgZXhpdCgwKTsKfQoKbXkgQGZvdW5kX2Nvd3M7Cm15ICRzZW
FyY2hfc3RhcnRfZGlyOwoKc3ViIGZpbmRfY293ZmlsZV9jYWxsYmFjaygpIHsKICAgIGlm
ICgtZiAmJiAvXC4oY293KSQvKSB7CiAgICAgICAgbXkgJHJlbF9maWxlID0gc3Vic3RyKC
RGaWxlOjpGaW5kOjpuYW1lLCBsZW5ndGgoJHNlYXJjaF9zdGFydF9kaXIpICsgMSk7CiAg
ICAgICAgbXkgJGNvd19uYW1lID0gJHJlbF9maWxlOwogICAgICAgICRjb3dfbmFtZSA9fi
BzL1wuKGNvdykkLy87CiAgICAgICAgcHVzaCBAZm91bmRfY293cywgJGNvd19uYW1lOwog
ICAgfQp9CgpzdWIgbGlzdF9jb3dzX2luX2Nvd2RpciB7CiAgICBteSAoJGNvd2RpcikgPS
BAXzsKICAgIEBmb3VuZF9jb3dzID0gKCk7CiAgICAkc2VhcmNoX3N0YXJ0X2RpciA9ICRj
b3dkaXI7CiAgICBmaW5kKFwmZmluZF9jb3dmaWxlX2NhbGxiYWNrLCAkY293ZGlyKTsKIC
AgIHJldHVybiBcQGZvdW5kX2Nvd3M7Cn0KCnN1YiBsaXN0X2Nvd2ZpbGVzX3BhcnNlYWJs
ZSB7CiAgICBteSAkY293cyA9IGRlZmluZWRfY293cygpOwogICAgcHJpbnQgam9pbigiXG
4iLCBAJGNvd3MpLCAiXG4iOwp9CgpzdWIgZGVmaW5lZF9jb3dzIHsKICAgIG15ICRiYXNl
ZGlyOwogICAgbXkgJWNvd2ZpbGVzOwogICAgZm9yIG15ICRkIChAY293cGF0aCkgewogIC
AgICAgIG5leHQgdW5sZXNzIC1kICRkOwogICAgICAgIG15ICRjb3dzID0gbGlzdF9jb3dz
X2luX2Nvd2RpcigkZCk7CiAgICAgICAgZm9yIG15ICRjb3cgKEAkY293cykgewogICAgIC
AgICAgICAkY293ZmlsZXN7JGNvd30gPSAkY293OwogICAgICAgIH0KICAgIH0KICAgIG15
IEBjb3dmaWxlcyA9IHNvcnQga2V5cyAlY293ZmlsZXM7CiAgICByZXR1cm4gXEBjb3dmaW
xlczsKfQoKc3ViIGRlZmluZWRfY293c19zdHJ1Y3R1cmVkIHsKICAgIG15ICRjb3dzID0g
ZGVmaW5lZF9jb3dzKCk7CiAgICBteSAlY293czsKICAgIG15IEB0cnVlY29sb3IgPSAoKT
sKICAgIG15IEBiYXNpYyA9ICgpOwogICAgZm9yIChAJGNvd3MpIHsKICAgICAgICBpZiAo
bXxedHJ1ZWNvbG9yL3wpIHsKICAgICAgICAgICAgcHVzaCBAdHJ1ZWNvbG9yLCAkXzsKIC
AgICAgICB9IGVsc2UgewogICAgICAgICAgICBwdXNoIEBiYXNpYywgJF87CiAgICAgICAg
fQogICAgfQogICAgbXkgQGFsbCA9IChAYmFzaWMsIEB0cnVlY29sb3IpOwogICAgcmV0dX
JuIHsKICAgICAgICBiYXNpYyA9PiBcQGJhc2ljLAogICAgICAgIHRydWVjb2xvciA9PiBc
QHRydWVjb2xvciwKICAgICAgICBhbGwgPT4gXEBhbGwKICAgIH07Cn0KCnN1YiBsaXN0X2
Nvd2ZpbGVzX3ByZXR0eSB7CiAgICBteSAkYmFzZWRpcjsKICAgIG15IEBkaXJmaWxlczsK
ICAgIG15ICRmaXJzdCA9IDE7CiAgICBmb3IgbXkgJGQgKEBjb3dwYXRoKSB7CiAgICAgIC
AgbmV4dCB1bmxlc3MgLWQgJGQ7CiAgICAgICAgbXkgJGNvd3MgPSBsaXN0X2Nvd3NfaW5f
Y293ZGlyKCRkKTsKICAgICAgICBuZXh0IHVubGVzcyBAJGNvd3M7CiAgICAgICAgcHJpbn
QgIlxuIiB1bmxlc3MgJGZpcnN0OwogICAgICAgICRmaXJzdCA9IDA7CiAgICAgICAgcHJp
bnQgIkNvdyBmaWxlcyBpbiAkZDpcbiI7CiAgICAgICAgcHJpbnQgd3JhcCgiIiwgIiIsIH
NvcnQgQCRjb3dzKSwgIlxuIjsKICAgIH0KfQoKc3ViIHNsdXJwX2lucHV0IHsKICAgIGlm
ICgkQVJHVlswXSkgewogICAgICAgIGlmICgkb3B0c3snbid9KSB7CiAgICAgICAgICAgIC
MgLW4gb25seSB3b3JrcyB3aXRoIHN0ZGluIGlucHV0CiAgICAgICAgICAgICZIRUxQX01F
U1NBR0U7CiAgICAgICAgICAgIGV4aXQoMSk7CiAgICAgICAgfQogICAgICAgIEBtZXNzYW
dlID0gam9pbignICcsIEBBUkdWKTsKICAgIH0gZWxzZSB7CiAgICAgICAgY2hvbXAoQG1l
c3NhZ2UgPSA8U1RESU4+KTsKICAgIH0KfQoKc3ViIG1heGxlbmd0aCB7CiAgICBteSAoJG
wsICRtKTsKICAgICRtID0gMDsKICAgIGZvciBteSAkaSAoQF8pIHsKICAgICAgICAkbCA9
IGxlbmd0aCAkaTsKICAgICAgICAkbSA9ICRsIGlmICgkbCA+ICRtKTsKICAgIH0KICAgIH
JldHVybiAkbTsKfQoKc3ViIGNvbnN0cnVjdF9iYWxsb29uIHsKICAgIG15ICRtYXggPSAm
bWF4bGVuZ3RoKEBtZXNzYWdlKTsKICAgIG15ICRtYXgyID0gJG1heCArIDI7ICAgICAgIC
AjIGJvcmRlciBzcGFjZSBmdWRnZS4KICAgIG15ICRmb3JtYXQgPSAiJXMgJS0ke21heH1z
ICVzXG4iOwogICAgbXkgQGJvcmRlcjsgIyB1cC1sZWZ0LCB1cC1yaWdodCwgZG93bi1sZW
Z0LCBkb3duLXJpZ2h0LCBsZWZ0LCByaWdodAogICAgaWYgKCQwID1+IC90aGluay9pKSB7
CiAgICAgICAgJHRob3VnaHRzID0gJ28nOwogICAgICAgIEBib3JkZXIgPSBxd1sgKCApIC
ggKSAoICkgXTsKICAgIH0gZWxzaWYgKEBtZXNzYWdlIDwgMikgewogICAgICAgICR0aG91
Z2h0cyA9ICdcXCc7CiAgICAgICAgQGJvcmRlciA9IHF3WyA8ID4gXTsKICAgIH0gZWxzZS
B7CiAgICAgICAgJHRob3VnaHRzID0gJ1xcJzsKICAgICAgICBpZiAoJFYgYW5kICRWIGd0
IHY1LjYuMCkgeyAgICAgICAgICAgICAgIyBUaGFua3MsIHBlcmxkZWx0YS4KICAgICAgIC
AgICAgQGJvcmRlciA9IHF3WyAvIFxcIFxcIC8gfCB8IF07CiAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgQGJvcmRlciA9IHF3WyAvIFwgXCAvIHwgfCBdOyAgICAgICAgCiAgIC
AgICAgfQogICAgfQogICAgcHVzaChAYmFsbG9vbl9saW5lcywgCiAgICAgICAgIiAiIC4g
KCJfIiB4ICRtYXgyKSAuICJcbiIgLAogICAgICAgIHNwcmludGYoJGZvcm1hdCwgJGJvcm
RlclswXSwgJG1lc3NhZ2VbMF0sICRib3JkZXJbMV0pLAogICAgICAgIChAbWVzc2FnZSA8
IDIgPyAiIiA6IAogICAgICAgICAgICBtYXAgeyBzcHJpbnRmKCRmb3JtYXQsICRib3JkZX
JbNF0sICRfLCAkYm9yZGVyWzVdKSB9IAogICAgICAgICAgICAgICAgQG1lc3NhZ2VbMSAu
LiAkI21lc3NhZ2UgLSAxXSksCiAgICAgICAgKEBtZXNzYWdlIDwgMiA/ICIiIDogCiAgIC
AgICAgICAgIHNwcmludGYoJGZvcm1hdCwgJGJvcmRlclsyXSwgJG1lc3NhZ2VbJCNtZXNz
YWdlXSwgJGJvcmRlclszXSkpLAogICAgICAgICIgIiAuICgiLSIgeCAkbWF4MikgLiAiXG
4iCiAgICApOwp9CgpzdWIgY29uc3RydWN0X2ZhY2UgewogICAgaWYgKCRib3JnKSAgICAg
IHsgJGV5ZXMgPSAiPT0iOyB9CiAgICBpZiAoJGRlYWQpICAgICAgeyAkZXllcyA9ICJ4eC
I7ICR0b25ndWUgPSAiVSAiOyB9CiAgICBpZiAoJGdyZWVkeSkgICAgeyAkZXllcyA9ICJc
JFwkIjsgfQogICAgaWYgKCRwYXJhbm9pZCkgIHsgJGV5ZXMgPSAiQEAiOyB9CiAgICBpZi
AoJHN0b25lZCkgICAgeyAkZXllcyA9ICIqKiI7ICR0b25ndWUgPSAiVSAiOyB9CiAgICBp
ZiAoJHRpcmVkKSAgICAgeyAkZXllcyA9ICItLSI7IH0gCiAgICBpZiAoJHdpcmVkKSAgIC
AgeyAkZXllcyA9ICJPTyI7IH0gCiAgICBpZiAoJHlvdW5nKSAgICAgeyAkZXllcyA9ICIu
LiI7IH0KfQoKc3ViIHJlc29sdmVfY293IHsKICAgIG15ICgkbmFtZSkgPSBAXzsKICAgIG
15ICRmdWxsID0gIiI7CiAgICBmb3IgbXkgJGQgKEBjb3dwYXRoKSB7CiAgICAgICAgaWYg
KC1mICIkZC8kbmFtZSIpIHsKICAgICAgICAgICAgJGZ1bGwgPSAiJGQvJG5hbWUiOwogIC
AgICAgICAgICBsYXN0OwogICAgICAgIH0gZWxzaWYgKC1mICIkZC8kbmFtZS5jb3ciKSB7
CiAgICAgICAgICAgICRmdWxsID0gIiRkLyRuYW1lLmNvdyI7CiAgICAgICAgICAgIGxhc3
Q7CiAgICAgICAgfQogICAgfQogICAgaWYgKCRmdWxsIGVxICIiKSB7CiAgICAgICAgZGll
ICIkcHJvZ25hbWU6IENvdWxkIG5vdCBmaW5kIGNvd2ZpbGUgZm9yICckbmFtZSchXG4iOw
ogICAgfQogICAgcmV0dXJuICRmdWxsOwp9CgpzdWIgcGlja19jb3cgewogICAgbXkgJGZv
dW5kX3BhdGggPSAiIjsKICAgIGlmICgkcmFuZG9tKSB7CiAgICAgICAgbXkgJGRlZmluZW
RfY293cyA9IGRlZmluZWRfY293c19zdHJ1Y3R1cmVkKCk7CiAgICAgICAgbXkgQHVzYWJs
ZV9jb3dzOwogICAgICAgIGlmICgkZW5hYmxlX2Z1bGxfY29sb3IpIHsKICAgICAgICAgIC
AgQHVzYWJsZV9jb3dzID0gQHskJGRlZmluZWRfY293c3thbGx9fTsKICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICBAdXNhYmxlX2Nvd3MgPSBAeyQkZGVmaW5lZF9jb3dze2Jhc2
ljfX07CiAgICAgICAgfQogICAgICAgIG15ICRuX2Nvd3MgPSBzY2FsYXIgQHVzYWJsZV9j
b3dzOwogICAgICAgIG15ICRpbmRleCA9IGludChyYW5kKCRuX2Nvd3MpKTsKICAgICAgIC
BteSAkc2VsZWN0ZWRfY293ID0gJHVzYWJsZV9jb3dzWyRpbmRleF07CiAgICAgICAgJGZv
dW5kX3BhdGggPSByZXNvbHZlX2Nvdygkc2VsZWN0ZWRfY293KTsKICAgIH0gZWxzaWYgKC
1mICRzcGVjaWZpZWRfY293KSB7CiAgICAgICAgJGZvdW5kX3BhdGggPSAkc3BlY2lmaWVk
X2NvdzsKICAgIH0gZWxzZSB7CiAgICAgICAgJGZvdW5kX3BhdGggPSByZXNvbHZlX2Nvdy
gkc3BlY2lmaWVkX2Nvdyk7CiAgICB9CiAgICAkY293X2ZpbGVfcGF0aCA9ICRmb3VuZF9w
YXRoOwp9CgpzdWIgcmVhZF9jb3cgewogICAgaWYgKCRjb3dfZmlsZV9wYXRoID1+IC9cLn
BtJC8pIHsKICAgICAgICBkaWUgIiRwcm9nbmFtZTogQ2Fubm90IGxvYWQgY293IGZyb20g
JGNvd19maWxlX3BhdGg6IC5wbSAoUGVybCBtb2R1bGUpIGZvcm1hdCBjb3dzIGFyZSBub3
QgaW1wbGVtZW50ZWQgeWV0LiBTb3JyeS5cbiI7CiAgICB9CiAgICBkbyAkY293X2ZpbGVf
cGF0aDsKICAgIGRpZSAiJHByb2duYW1lOiBFcnJvciByZWFkaW5nIGNvdyBkZWZpbml0aW
9uIGZyb20gJGNvd19maWxlX3BhdGg6ICRAXG4iIGlmICRAOwp9CgpzdWIgSEVMUF9NRVNT
QUdFIHsKICAgICAgICBwcmludCA8PEVPRjsKJHByb2duYW1lIHZlcnNpb24gJFZFUlNJT0
4KClVzYWdlOgoKICAgICRwcm9nbmFtZSBbLWJkZ3BzdHd5XSBbLWYgPGNvd2ZpbGU+XSBb
LXIgWy1DXV0gWy1lIDxleWVzPl0gWy1UIDx0b25ndWU+XQogICAgICAgIFstVyA8d3JhcG
NvbHVtbj5dIFstbl0KICAgICAgICA8bWVzc2FnZT4KCiAgICAkcHJvZ25hbWUgLWwgICAg
ICAgICAgICAgICMgTGlzdCBkZWZpbmVkIGNvd3MKICAgICRwcm9nbmFtZSBbLWggfCAtLW
hlbHBdICAgIyBEaXNwbGF5IHRoaXMgaGVscCBzY3JlZW4KCk9wdGlvbnM6CgogICAgLWIs
IC1kLCAtZywgLXMsIC10LCAtdywgYW5kIC15IGFjdGl2YXRlIEJvcmcsIGRlYWQsIGdyZW
VkeSwgc2xlZXB5LCB0aXJlZCwgd2lyZWQsIGFuZAogICAgICAgIHlvdW5nIGFwcGVhcmFu
Y2UgbW9kZXMsIHJlc3BlY3RpdmVseS4KCiAgICAtZiA8Y293ZmlsZT4gc2VsZWN0cyBhbi
BhbHRlcm5hdGUgY293IHBpY3R1cmUuIDxjb3dmaWxlPiBtYXkgYmUgZWl0aGVyIHRoZSBu
YW1lIG9mIGEKICAgICAgICBjb3cgZGVmaW5lZCBpbiBhIGNvd2RpciBvbiB0aGUgY293cG
F0aCAod2l0aG91dCB0aGUgJy5jb3cnIGZpbGUgZXh0ZW5zaW9uKSwgb3IgdGhlCiAgICAg
ICAgcGF0aCB0byBhIGNvd2ZpbGUgKHdpdGggdGhlICcuY293JyBmaWxlIGV4dGVuc2lvbi
kuIGAkcHJvZ25hbWUgLWxgIHdpbGwgbGlzdCB0aGUKICAgICAgICBuYW1lcyBvZiBhdmFp
bGFibGUgY293cy4KCiAgICAtciBzZWxlY3RzIGEgcmFuZG9tIGNvd2ZpbGUgZnJvbSB0aG
9zZSBwcmVzZW50IG9uIHRoZSBjb3dwYXRoLiBJZiAtQyBpcyBhbHNvIGdpdmVuLAogICAg
ICAgIHRoZW4gZnVsbC1jb2xvciBjb3dzIHdpbGwgYmUgaW5jbHVkZWQuCgogICAgLWUgXD
xleWVzXD4gZGVmaW5lcyBhIGN1c3RvbSBleWUgYXBwZWFyYW5jZS4gPGV5ZXM+IHNob3Vs
ZCBiZSBhIHR3by1jaGFyYWN0ZXIgc3RyaW5nLgogICAgICAgIEl0IGlzIHVwIHRvIHlvdS
B3aGV0aGVyIHRoZXkgYWN0dWFsbHkgbG9vayBsaWtlIGV5ZXMuCgogICAgLVQgPHRvbmd1
ZT4gZGVmaW5lcyBhIGN1c3RvbSB0b25ndWUgYXBwZWFyYW5jZS4KCiAgICAtbiBhY3Rpdm
F0ZXMgd29yZCB3cmFwcGluZywgdG8gc3VwcG9ydCBtZXNzYWdlcyB3aXRoIGFyYml0cmFy
eSB3aGl0ZXNwYWNlLiBNdXN0IGJlIHRoZQogICAgICAgIGxhc3Qgb3B0aW9uIGdpdmVuIG
JlZm9yZSBcPG1lc3NhZ2VcPiBzdGFydHMuCgogICAgLVcgPHdyYXBjb2x1bW4+IGNvbnRy
b2xzIHdoZXJlIGxpbmUgd3JhcHBpbmcgb2NjdXJzLiBEZWZhdWx0IGlzIDQwIGNvbHVtbn
MuCgpFT0YKfQo= " | base64 -d > /tmp/cowthink
# get cheese.cow
echo "IyMKIyMgVGhlIGNoZWVzZSBmcm9tIG1pbGsgJiBjaGVlc2UKIyMKJHRoZV9jb3cgPSA8PE
VPQzsKICAgJHRob3VnaHRzCiAgICAkdGhvdWdodHMKICAgICAgX19fX18gICBfX19fX19f
X18KICAgICAvICAgICBcXF8vICAgICAgICAgfAogICAgfCAgICAgICAgICAgICAgICAgfH
wKICAgIHwgICAgICAgICAgICAgICAgIHx8CiAgIHwgICAgIyMjXFwgIC8jIyMgICB8IHwK
ICAgfCAgICAg8J+Rge+4jyBcXC8g8J+Rge+4jyAgICB8IHwKICAvfCAgICAgICAgICAgIC
AgICAgfCB8CiAvIHwgICAgICAgIDwgICAgICAgIHxcXCBcXAp8IC98ICAgICAgICAgICAg
ICAgICB8IHwgfAp8IHwgICAgIFxcX19fX19fXy8gICB8ICB8IHwKfCB8ICAgICAgICAgIC
AgICAgICB8IC8gLwovfHwgICAgICAgICAgICAgICAgIC98fHwKICAgLS0tLS0tLS0tLS0t
LS0tLXwKICAgICAgICB8IHwgICAgfCB8CiAgICAgICAgKioqICAgICoqKgogICAgICAgL1
9fX1xcICAvX19fXFwKRU9DCg==" | base64 -d > /tmp/cheese.cow
chmod +x /tmp/cowthink
read