AF:
NF:0
PS:10
SRH:1
SFN:
DSR:
MID:<20070613104224.43237c23@ripper.onstor.net>
CFG:
PT:0
S:andy.sharp@onstor.com
RQ:
SSV:onstor-exch02.onstor.net
NSV:
SSH:
R:<larry.scheer@onstor.com>
MAID:1
X-Sylpheed-Privacy-System:
X-Sylpheed-Sign:0
SCF:#mh/Mailbox/sent
X-Sylpheed-End-Special-Headers: 1
Date: Wed, 13 Jun 2007 10:43:14 -0700
From: Andrew Sharp <andy.sharp@onstor.com>
To: Larry Scheer <larry.scheer@onstor.com>
Subject: try out this one
Message-ID: <20070613104314.0ac525d4@ripper.onstor.net>
Organization: Onstor
X-Mailer: Sylpheed-Claws 2.6.0 (GTK+ 2.8.20; x86_64-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=MP_dPXM__gxIMMa3pq30pEj_p8

--MP_dPXM__gxIMMa3pq30pEj_p8
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Duuude,

You have to try out this version of cw_install.sh.  Let me know what
you think ~:^)

a

--MP_dPXM__gxIMMa3pq30pEj_p8
Content-Type: application/x-shellscript; name=cw_install.sh
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=cw_install.sh

IyEvYmluL3NoCgojIHNldCAteAoKQUdJTEVfRElSUz0iLyAvdXNyIC90bXAgL3ZhciAvdXNyL2xv
Y2FsL2FnaWxlIC91c3IvbG9jYWwvYWdpbGUvY29uZiIKT05TVE9SX0RJUlM9Ii8gL3RtcCAvdmFy
IC9vbnN0b3IvY29uZiIKT0xEX1BBUlRfVEFCUz0iYSBkIGUgZiBnIGgiCkRZTl9QQVJUX1RBQlM9
ImEgZCBlIGYiCkxBWV9TVEFUVVM9L3RtcC8ubHN0YXRlJCQKREVTVF9ESVI9L21udDIKTE9HPS92
YXIvbG9nL3N5c191cGdyYWRlLmxvZwojREVCVUdfQ1c9eWVzCkNXX05PX0xPRz1ub2xvZwoKIyBV
UkxzCkRFRl9GVFBfVVJMPSJmdHA6Ly9zdXBwb3J0Lm9uc3Rvci5jb20vb3V0Ym91bmQvc29mdHdh
cmUvRXZlck9OIgpERUZfRlRQX1VSTF9JTlQ9ImZ0cDovL3VwZ3JhZGU6cGFzc3dvcmRAMTAuMi4w
LjIvUEFUQ0hFUyIKREVGX0hUVFBfVVJMPSJodHRwOi8vc3VwcG9ydC5vbnN0b3IuY29tL291dGJv
dW5kL3NvZnR3YXJlL0V2ZXJPTiIKCiMgdmFyaWFibGUgc2V0IGJ5IHRoZSBtYWtlZmlsZQpESVNU
Ul9OPVIzLjAuMC4wQkNEQkctMDYxMjA3LnRhci5negpESVNUUl9TPTQ2NzI0Ck5fVkVSUz0zLjAu
MC4wCkJVSUxEX1RZUEU9ZGJnCgpjdygpIHsKCWlmIFsgIiRERUJVR19DVyIgXSA7IHRoZW4KCQll
Y2hvICIkKiIgPi9kZXYvdHR5CgkJZWNobyAtbiAiZGVidWcgIiA+L2Rldi90dHkKCQlyZWFkIGdh
ciA8IC9kZXYvdHR5CglmaQp9CgojIHByaW50IG91dCBhIHVzYWdlIG1lc3NhZ2UgdG8gYW5ub3kg
cGVvcGxlCiMgaSBtZWFuLCB0byBpbmZvcm0gcGVvcGxlCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMKdXNhZ2UoKSB7CgllY2hvICJ1c2FnZTogJDAiCgllY2hvICIg
ICAgICAgU3RhbmRhbG9uZSB1cGdyYWRlIHByb2dyYW0gd2lsbCBhc2sgZm9yIGluZm9ybWF0aW9u
IGJlZm9yZSIKCWVjaG8gIiAgICAgICBwcm9jZWVkaW5nIHRvIGRvd25sb2FkIHVwZ3JhZGUgZGlz
dHJpYnV0aW9uIGFuZCBpbnN0YWxsIGl0IgoJZWNobyAiICAgICAgIG9uIHRoZSBzZWNvbmRhcnkg
Q29tcGFjdCBGbGFzaCBjYXJkLiIKfQoKCnJlY29yZCgpIHsKCWlmIFsgIiRDV19OT19MT0ciIF0g
OyB0aGVuCgkJdGVlX2NtZD0iIgoJZWxzZQoJCXRlZV9jbWQ9IiB8IHRlZSAtYSAkTE9HIgoJZmkK
CglldmFsIGVjaG8gIiRAIiAkdGVlX2NtZAoKfQoKIyBzaGVsbCB2ZXJzaW9uIG9mIGZsb29yZigz
KSBDIGxpYnJhcnkgZnVuY3Rpb24KIyByb3VuZHMgaXQncyBhcmd1bWVudCBkb3duIHRvIHRoZSBu
ZWFyZXN0IHdob2xlIGludGVnZXIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIwpmbG9vcmYoKSB7CgkjICQxIGV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkIGFuZCBy
b3VuZGVkIGRvd24gdG8gaW50ZWdyYWwgdmFsdWUKCgllY2hvIHwgYXdrICJ7Zm9vID0gJDE7IHBy
aW50IGludChmb28pfSIKfQoKCiMgZmxvYXRpbmcgcG9pbnQgdmVyc2lvbiBvZiBleHByCiMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZmV4cHIoKSB7CgkjICQxIGV4
cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkCgllY2hvIHwgYXdrICJ7Zm9vID0gJDE7IHByaW50IGZv
b30iCn0KCgojIGZpbmRzIHdoaWNoIENGIGNhcmQgeW91IGFyZSBib290ZWQgZnJvbSB1bmRlciBP
cGVuQlNECiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZ2V0X3Jv
b3RfZGlzaygpIHsKCWZvbz0iYGRmIC8gfCBncmVwIC9kZXZgIgoJZXhwciAiJGZvbyIgXDogJy9k
ZXYvd2RcKFswMV1cKWEnCn0KCgojIGNoZWNrIHRoYXQgdXNlciBpc24ndCB0cnlpbmcgdG8gZm9y
bWF0IGEgZmxhc2ggY2FyZCB0aGF0IGlzIHRoZWlyCiMgcm9vdCBmaWxlIHN5c3RlbS4gIHRoZXkg
Y291bGQgYmUgcnVubmluZyBORlMgcm9vdC4KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwpzYW5pdHlfY2hlY2tfZGlzaygpIHsKCWlmIFsgImBnZXRfcm9vdF9kaXNr
YCIgLWVxICIkMSIgXSA7IHRoZW4KCQlyZXR1cm4gMQoJZmkKCXJldHVybiAwCn0KCgojIGNoZWNr
IGZvciBhIHNwZWNpZmljIGZpbGUgdG8gc2VlIGlmIGFyZyBpcyBhIHJlbGVhc2UgZGlyZWN0b3J5
CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKc2FuaXR5X2NoZWNr
X3NvZnRfZGlyKCkgewoJdGVzdCAtZiAkMS9ldGMvbWRyaXZlX2ZzdGFiCn0KCgojIHJlbW91bnRz
IGl0J3MgYXJndW1lbnQgYXMgcncvcm8gLS0gc2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYSBtb3Vu
dCBwb2ludAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmh3X2lu
aXRpYWxzKCkgewoJY2FzZSAiYHVuYW1lIC1zYCIgaW4KCUxpbnV4KQoJCSMgTGludXggb25seSBy
dW5zIG9uIGJvYmNhdHMgb3IgY291Z2FycwoJCXVuYW1lIC1hIHwgZ3JlcCAtcSBCT0JDQVQgPi9k
ZXYvbnVsbCAmJiB7CgkJCWVjaG8gQkwgIyBidXR0bG9hZAoJCQlyZXR1cm4KCQl9CgkJZWNobyBD
RwoJCTs7CglPcGVuQlNEKQoJCSMgT3BlbkJTRCBvbmx5IHJ1bnMgb24gYm9iY2F0cyBvciBjaGVl
dGFocwoJCXVuYW1lIC12IHwgZ3JlcCAtcSBCT0JDQVQgJiYgewoJCQllY2hvIEJDCgkJCXJldHVy
bgoJCX0KCQllY2hvIENICgkJOzsKCSopIHJldHVybiAxIDs7Cgllc2FjCn0KCgojIHJlbW91bnRz
IGl0J3MgYXJndW1lbnQgYXMgcncvcm8gLS0gc2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYSBtb3Vu
dCBwb2ludAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCnJlbW91
bnQoKSB7CgljYXNlICJgdW5hbWUgLXNgIiBpbgoJTGludXgpCgkJbW91bnQgLW8gcmVtb3VudCwk
MSAkMgoJCTs7CglPcGVuQlNEKQoJCWNhc2UgJDEgaW4KCQlydykgbW50X2FyZz0tdXcgOzsKCQly
bykgbW50X2FyZz0tdXIgOzsKCQkqKSByZXR1cm4gMSA7OwoJCWVzYWMKCQltb3VudCAkbW50X2Fy
ZyAkMgoJCTs7CgkqKSByZXR1cm4gMSA7OwoJZXNhYwp9CgoKIyByZW1vdW50cyBpdCdzIGFyZ3Vt
ZW50IGFzIHJ3IC0tIGFyZ3VtZW50IG11c3QgYmUgYSBtb3VudCBwb2ludAojIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCnJlbW91bnRfcncoKSB7CglyZW1vdW50IHJ3
ICQxCn0KCgojIHJlbW91bnRzIGl0J3MgYXJndW1lbnQgYXMgcm8gLS0gYXJndW1lbnQgbXVzdCBi
ZSBhIG1vdW50IHBvaW50CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKcmVtb3VudF9ybygpIHsKCXJlbW91bnQgcm8gJDEKfQoKCiMgZ2V0cyBwYXJ0aXRpb24gbGV0
dGVyIG9mIG1vdW50IHBvaW50IHVuZGVyIE9wZW5CU0QKIyBvbGQgcGFydGl0aW9uIHNjaGVtZQoj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmdldF9vbGRfcGFydF9s
ZXR0ZXIoKSB7CgoJY2FzZSAkMSBpbgoJLykKCQllY2hvICdhJwoJCTs7CgkvdXNyKQoJCWVjaG8g
J2QnCgkJOzsKCS90bXApCgkJZWNobyAnZScKCQk7OwoJL3ZhcikKCQllY2hvICdmJwoJCTs7Cgkv
dXNyL2xvY2FsL2FnaWxlKQoJCWVjaG8gJ2cnCgkJOzsKCS91c3IvbG9jYWwvYWdpbGUvY29uZikK
CQllY2hvICdoJwoJCTs7Cgllc2FjCn0KCgojIGdldHMgcGFydGl0aW9uIGxldHRlciBvZiBtb3Vu
dCBwb2ludCB1bmRlciBPcGVuQlNECiMgZHluYW1pYyBwYXJ0aXRpb24gc2NoZW1lCiMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZ2V0X25ld19wYXJ0X2xldHRlcigp
IHsKCgljYXNlICQxIGluCgkvKQoJCWVjaG8gJ2EnCgkJOzsKCS92YXIpCgkJZWNobyAnZCcKCQk7
OwoJL3RtcCkKCQllY2hvICdlJwoJCTs7Cgkvb25zdG9yL2NvbmYpCgkJZWNobyAnZicKCQk7OwoJ
ZXNhYwp9CgoKIyB1bm1vdW50IHRoZSBwYXJ0aXRpb25zCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMKdW5tb3VudF9wYXJ0aXRpb25zKCkgewoJZm9yIHBhcnQgaW4g
ZiBlIGQgYSA7IGRvCgkJIyBzdXBwcmVzcyB0aGUgd2hpbmluZy4uLgoJCXVtb3VudCAvZGV2L3dk
JHtkaXNrfSR7cGFydH0gPi9kZXYvbnVsbCAyPiYxCglkb25lCn0KCgojIGdlbmVyYWwgY2xlYW51
cCBpbiBldmVudCBvZiBpbnRlcnJ1cHQKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIwplcnJvcl9jbGVhbnVwKCkgewoKCXJlY29yZCAtbiAiSW50ZXJydXB0IHJlY2Vp
dmVkLiAgVXBncmFkZSBwcm9ncmFtIGV4aXRpbmcuLi4iCgoJaWYgWyAiJGxheW91dF9waWQiIF0g
OyB0aGVuCgkJd2FpdCAkbGF5b3V0X3BpZAoJZmkKCWNkIC8KCgkjIHVubW91bnQgcGFydGl0aW9u
cyB0aGF0IG1pZ2h0IGJlIG1vdW50ZWQKCXVubW91bnRfcGFydGl0aW9ucwoKCWlmIFsgIiR0ZGly
IiBdIDsgdGhlbgoJCSMgZGVsZXRlIHRoZSBkaXN0cmlidXRpb24gdGFyIGJhbGwKCQlyZW1vdW50
X3J3ICIkdGRpciIgJiYgewoJCQljdyAicm0gJHt0ZGlyfS8ke3RiYWxsfSIKCQkJcm0gLWYgIiR7
dGRpcn0vJHt0YmFsbH0iCgkJCXJlbW91bnRfcm8gIiR0ZGlyIgoJCX0KCWZpCgoJIyBkZWxldGUg
dGVtcG9yYXJ5IGRpcmVjdG9yeQoJcmVtb3VudF9ydyAvICYmIHsKCQlybWRpciAkREVTVF9ESVIg
Mj4vZGV2L251bGwKCQlyZW1vdW50X3JvIC8KCX0KCXJlY29yZCAiYnllLiIKfQoKCiMKIyBjYWxj
dWxhdGVzIGFuZCBsYXlzIGRvd24gdGhlIE9wZW5CU0QgZGlzayBwYXJ0aXRpb24gbGFiZWwKIwoj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMKIyMgIFdBUk5JTkc6IGNoYW5nZXMgdG8gdGhpcyBmdW5jdGlvbiBtdXN0IGJlIG1pcnJv
cmVkIGluICAgICMjCiMjICBuZngtdHJlZS9jb2RlL3NzYy1uZnhzaC9jbWRfZmxhc2guYyBBTkQg
ICAgICAgICAgICAgICAgICAjIwojIyAgbmZ4LXRyZWUvVG9vbHMvZmxhc2hfaW5zdGFsbCEhISAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyMKIyMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjCiMjICBZT1UgSEFWRSBCRUVOIFdBUk5F
RCAhISEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwojIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlza19uYW1l
KCkgewoKCSMgZ2V0IGRpc2sgc2l6ZSAtIHl1ayEKCWRpc2tsYWJlbCAtbiAtRSB3ZCR7ZGlza30g
PDxQVU5URVIgfCBncmVwICd0b3RhbCBzZWN0b3JzJyA+L3RtcC9kaXNrX3NpemUKCWcgZAoJRAoJ
cApQVU5URVIKCWRpc2tfYmxvY2tzPWBzZWQgInMvdG90YWwgc2VjdG9yczogLy8iIC90bXAvZGlz
a19zaXplYAoJcm0gLWYgL3RtcC9kaXNrX3NpemUKCglDRl9TSVpFX01JTj1gZXhwciA0ODAgXCog
MjA0OGAKCWRzaXplPWBleHByICRkaXNrX2Jsb2NrcyAvIDIwNDhgCgoJIyBtYWtlIHN1cmUgaXQn
cyBvZiBtaW5pbXVtIHNpemUKCWlmIFsgJGRpc2tfYmxvY2tzIC1sZSAkQ0ZfU0laRV9NSU4gXSA7
IHRoZW4KCQlyZWNvcmQgIkNGIHNpemUgJHtkc2l6ZX1NQiBpcyB0b28gc21hbGwsIHNvcnJ5ISIg
Pi9kZXYvdHR5CgkJcmV0dXJuIDEKCWZpCgoJIyBhbm5vdW5jZSB0aGluZ3MgdG8gdGhlIHdvcmxk
CglkdGFiX25hbWU9ImNmJGRzaXplLmxhYmVsIgoJcmVjb3JkICJDRiBjYXJkIGlzICRkc2l6ZSBN
aUIiID4vZGV2L3R0eQoJIyByZWNvcmQgIkNyZWF0aW5nIG5ldyBkaXNrIGxhYmVsICRkdGFiX25h
bWUiID4vZGV2L3R0eQoKCVNFQ1NfUEVSX0NZTD0xMDA4CglDWUxTX1BFUl9NQj0yLjAzMTcKCW5j
eWw9YGV4cHIgJGRpc2tfYmxvY2tzIC8gJFNFQ1NfUEVSX0NZTGAKCXRvdF9ibG9ja3M9YGV4cHIg
JG5jeWwgXCogJFNFQ1NfUEVSX0NZTGAKCgllY2hvICJ0eXBlOiBFU0RJIgoJZWNobyAiZGlzazog
RVNESS9JREUgZGlzayIKCXByaW50ZiAibGFiZWw6ICVzXG4iICRkdGFiX25hbWUKCWVjaG8gImZs
YWdzOiIKCWVjaG8gImJ5dGVzL3NlY3RvcjogNTEyIgoJZWNobyAic2VjdG9ycy90cmFjazogNjMi
CgllY2hvICJ0cmFja3MvY3lsaW5kZXI6IDE2IgoJcHJpbnRmICJzZWN0b3JzL2N5bGluZGVyOiAl
ZFxuIiAkU0VDU19QRVJfQ1lMCglwcmludGYgImN5bGluZGVyczogJWRcbiIgJG5jeWwKCXByaW50
ZiAidG90YWwgc2VjdG9yczogJWRcbiIgJHRvdF9ibG9ja3MKCWVjaG8gInJwbTogMzYwMCIKCWVj
aG8gImludGVybGVhdmU6IDEiCgllY2hvICJ0cmFja3NrZXc6IDAiCgllY2hvICJjeWxpbmRlcnNr
ZXc6IDAiCgllY2hvICJoZWFkc3dpdGNoOiAwICAgICAgICAgICAjIG1pY3Jvc2Vjb25kcyIKCWVj
aG8gInRyYWNrLXRvLXRyYWNrIHNlZWs6IDAgICMgbWljcm9zZWNvbmRzIgoJZWNobyAiZHJpdmVk
YXRhOiAwIgoJZWNobwoJZWNobyAiMTYgcGFydGl0aW9uczoiICMgcGZmdCwgd2h5IDE2PwoJZWNo
byAiIyAgICAgICAgc2l6ZSAgIG9mZnNldCAgICBmc3R5cGUgICBbZnNpemUgYnNpemUgICBjcGdd
IgoKCSMgc3dhcAoJIyBjYWxjdWxhdGUgc2l6ZSBvZiBzd2FwLiAgc2hvdWxkIGJlIGFib3V0IDYl
LCBtYXggMzBNQgoJIwoJIyByb3VuZCBwc2l6ZSBkb3duIHRvIHRoZSBuZWFyZXN0IGludGVnZXIg
c28gb3VyIHBhcnRpdGlvbnMgYXJlCgkjIG9uIGN5bGluZGVyIGJvdW5kYXJpZXMuICBPdGhlcndp
c2UgQlNEIHdhc3RlcyBzcGFjZS4KCSMKCXJvb3Rfc3o9JG5jeWwKCglwc2l6ZT1gZmxvb3JmICIu
MDYgKiAkbmN5bCJgCglpZiBbICRwc2l6ZSAtZ3QgYGZsb29yZiAiMzAuMCAqICRDWUxTX1BFUl9N
QiJgIF0gOyB0aGVuCgkJcHNpemU9YGZsb29yZiAiMzAuMCAqICRDWUxTX1BFUl9NQiJgCglmaQoJ
c3dhcF9zej0kcHNpemUKCXJvb3Rfc3o9YGV4cHIgJHJvb3Rfc3ogLSAkcHNpemVgCgoJIyAvdG1w
CgkjIGNhbGN1bGF0ZSBzaXplIGZvciB0bXAuICBhcHByb3guIDQlCgkjLwoJcHNpemU9YGZsb29y
ZiAiLjA0ICogJG5jeWwiYAoJdG1wX3N6PSRwc2l6ZQoJcm9vdF9zej1gZXhwciAkcm9vdF9zeiAt
ICRwc2l6ZWAKCgkjIC92YXIgLSBydwoJIyBjYWxjdWxhdGUgc2l6ZSBmb3IgdmFyLiAgYXBwci4g
MTYlCgkjCglwc2l6ZT1gZmxvb3JmICIuMTYgKiAkbmN5bCJgCgl2YXJfc3o9JHBzaXplCglyb290
X3N6PWBleHByICRyb290X3N6IC0gJHBzaXplYAoKCSMgL29uc3Rvci9jb25mCgkjIGNhbGN1bGF0
ZSB0aGUgc2l6ZSBvZiBydyBjb25mIHBhcnRpdGlvbjogMTAlCgkjCglwc2l6ZT1gZmxvb3JmICIu
MTAgKiAkbmN5bCJgCgljb25mX3N6PSRwc2l6ZQoKCSMgcm9vdCAtIHJvCgkjIGNhbGN1bGF0ZSBy
b290IHNpemUgKHJvb3QsIC91c3IgYW5kIC9vbnN0b3Igbm93IGZvbGRlZCB0b2dldGhlcikKCSMg
cm9vdCBnZXRzIHRoZSByZW1haW5kZXIsIGFib3V0IDY0JQoJIwoJcm9vdF9zej1gZXhwciAkcm9v
dF9zeiAtICRwc2l6ZWAKCgkjIHJvb3QgLSByMAoJIyB3cml0ZSByb290IHBhcnRpdGlvbiBlbnRy
eQoJIwoJcHJpbnRmICIgIGE6ICU4ZCAgICAgICAgMCAgICA0LjJCU0QgICAgIDEwMjQgIDgxOTIg
ICAgMTYgICIgXAoJCWBleHByICRyb290X3N6IFwqICRTRUNTX1BFUl9DWUxgCglwcmludGYgIiMg
KEN5bC4gICAgMCAtICU0ZClcbiIgYGV4cHIgJHJvb3Rfc3ogLSAxYAoJcHBzaXplPSRyb290X3N6
CgoJIyBzd2FwCgkjIHdyaXRlIHN3YXAgcGFydGl0aW9uIGVudHJ5CgkjCglwcmludGYgIiAgYjog
JThkICU4ZCAgICAgIHN3YXAgICAgICAgICAgICAgICAgICAgICAgICIgXAoJCWBleHByICRzd2Fw
X3N6IFwqICRTRUNTX1BFUl9DWUxgIGBleHByICRwcHNpemUgXCogJFNFQ1NfUEVSX0NZTGAKCXBy
aW50ZiAiIyAoQ3lsLiAlNGQgLSAlNGQpXG4iICRwcHNpemUgYGV4cHIgJHBwc2l6ZSArICRzd2Fw
X3N6IC0gMWAKCXBwc2l6ZT1gZXhwciAkcHBzaXplICsgJHN3YXBfc3pgCgoJIyB3aG9sZQoJIwoJ
cHJpbnRmICIgIGM6ICU4ZCAgICAgICAgMCAgICB1bnVzZWQgICAgICAgIDAgICAgIDAgICAgICAg
ICIgJHRvdF9ibG9ja3MKCXByaW50ZiAiIyAoQ3lsLiAgICAwIC0gJTRkKVxuIiBgZXhwciAkbmN5
bCAtIDFgCgoJIyAvdmFyIC0gcncKCSMgd3JpdGUgdG1wIHBhcnRpdGlvbiBlbnRyeQoJIwoJcHJp
bnRmICIgIGQ6ICU4ZCAlOGQgICAgNC4yQlNEICAgICAxMDI0ICA4MTkyICAgIDE2ICAiIFwKCQlg
ZXhwciAkdmFyX3N6IFwqICRTRUNTX1BFUl9DWUxgIGBleHByICRwcHNpemUgXCogJFNFQ1NfUEVS
X0NZTGAKCXByaW50ZiAiIyAoQ3lsLiAlNGQgLSAlNGQpXG4iICRwcHNpemUgYGV4cHIgJHBwc2l6
ZSArICR2YXJfc3ogLSAxYAoJcHBzaXplPWBleHByICRwcHNpemUgKyAkdmFyX3N6YAoKCSMgL3Rt
cCAtIHJ3CgkjIHdyaXRlIHZhciBwYXJ0aXRpb24gZW50cnkKCSMKCXByaW50ZiAiICBlOiAlOGQg
JThkICAgIDQuMkJTRCAgICAgMTAyNCAgODE5MiAgICAxNiAgIiBcCgkJYGV4cHIgJHRtcF9zeiBc
KiAkU0VDU19QRVJfQ1lMYCBgZXhwciAkcHBzaXplIFwqICRTRUNTX1BFUl9DWUxgCglwcmludGYg
IiMgKEN5bC4gJTRkIC0gJTRkKVxuIiAkcHBzaXplIGBleHByICRwcHNpemUgKyAkdG1wX3N6IC0g
MWAKCXBwc2l6ZT1gZXhwciAkcHBzaXplICsgJHRtcF9zemAKCgkjIC9vbnN0b3IvY29uZiAtIHJ3
CgkjIHdyaXRlIG9uc3RvciBjb25mIHBhcnRpdGlvbiBlbnRyeQoJIwoJcHJpbnRmICIgIGY6ICU4
ZCAlOGQgICAgNC4yQlNEICAgICAxMDI0ICA4MTkyICAgIDE2ICAiIFwKCQlgZXhwciAkY29uZl9z
eiBcKiAkU0VDU19QRVJfQ1lMYCBgZXhwciAkcHBzaXplIFwqICRTRUNTX1BFUl9DWUxgCglwcmlu
dGYgIiMgKEN5bC4gJTRkIC0gJTRkKVxuIiAkcHBzaXplIGBleHByICRwcHNpemUgKyAkY29uZl9z
eiAtIDFgCglwcHNpemU9YGV4cHIgJHBwc2l6ZSArICRjb25mX3N6YAoKCXJldHVybiAwCn0KCgoj
IHBsb3AgdGhlIGxheW91dCBjYWxjdWxhdGVkIGluIGRpc2stbmFtZSBkb3duIG9udG8gdGhlIENG
IGNhcmQKIyBPcGVuQlNEIHN0eWxlLiAgYXN5bmMgc3VwcG9ydCBpbmNsdWRlZC4gIGF0IG5vIGV4
dHJhIGNoYXJnZS4KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpk
b19sYXlvdXQoKSB7CgkjIHN0ZGluIGlzIGRpc2sgbGFiZWwgZGVzY3JpcHRpb24KCSMgJDEgPSBQ
QVJUX1RBQlMKCSMgJDIgPSBESVJFQ1RPUklFUwoJIyAkMyA9IHBhcnRfbGV0dGVyX2Z1bmN0aW9u
CgoJZWNobyAic3RhcnRlZCBiZWdpbiIgPiAkTEFZX1NUQVRVUwoKCSMgY3cgImRpc2tsYWJlbCAt
UiB3ZCR7ZGlza30gL3RtcC9kbGFiZWwiCglkaXNrbGFiZWwgLVIgd2Qke2Rpc2t9IC90bXAvZGxh
YmVsIHx8IHsKCQllY2hvICJmaW5pc2hlZCBmYWlsZWQiID4gJExBWV9TVEFUVVMKCQlyZXR1cm4g
MQoJfQoKCWVjaG8gInN0YXJ0ZWQgZGlza2xhYmVsIiA+ICRMQVlfU1RBVFVTCgoJZm9yIHBhcnQg
aW4gJDEgOyBkbwoJCSMgY3cgIm5ld2ZzIC1tIDAgLW8gdGltZSAtcSAvZGV2L3J3ZCR7ZGlza30k
e3BhcnR9IgoJCW5ld2ZzIC1tIDAgLW8gdGltZSAtcSAvZGV2L3J3ZCR7ZGlza30ke3BhcnR9ID4v
ZGV2L251bGwgfHwgewoJCQllY2hvICJmaW5pc2hlZCBmYWlsZWQiID4gJExBWV9TVEFUVVMKCQkJ
cmV0dXJuIDEKCQl9Cglkb25lCgoJZWNobyAic3RhcnRlZCBta2ZzIiA+ICRMQVlfU1RBVFVTCgoJ
Zm9yIGQgaW4gJDIgOyBkbwoJCWlmIFsgIiRkIiA9IC8gXSA7IHRoZW4KCQkJcmVtb3VudF9ydyAv
CgkJZmkKCQlta2RpciAtcCAke0RFU1RfRElSfSR7ZH0KCQlldmFsIHBhcnQ9YCQzICRkYAoJCSMg
Y3cgIm1vdW50IC9kZXYvd2Qke2Rpc2t9JHtwYXJ0fSAke0RFU1RfRElSfSR7ZH0iCgkJbW91bnQg
L2Rldi93ZCR7ZGlza30ke3BhcnR9ICR7REVTVF9ESVJ9JHtkfQoJCWlmIFsgIiRkIiA9IC8gXSA7
IHRoZW4KCQkJcmVtb3VudF9ybyAvCgkJZmkKCWRvbmUKCgllcnI9JD8KCWlmIFsgIiRlcnIiIC1l
cSAwIF0gOyB0aGVuCgkJZWNobyAiZmluaXNoZWQgcGFzcyIgPiAkTEFZX1NUQVRVUwoJZWxzZQoJ
CWVjaG8gImZpbmlzaGVkIGZhaWwiID4gJExBWV9TVEFUVVMKCWZpCgoJcmV0dXJuICRlcnIKfQoK
CiMgcmV0dXJuIHRoZSBhdmFpbGFibGUgc3BhY2UgaW4gTWlCIG9mIGEgZmlsZXN5c3RlbQojIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmdldF9mcmVlX3NwYWNlKCkg
ewoJZnM9JDEKCglkZiAtayB8IGdyZXAgJ14vZGV2JyB8IHdoaWxlIHJlYWQgZGV2IHN6IHVzZWQg
YXZhaWwgY3JhY2sgbXB0IDsgZG8KCQlpZiBbICIkbXB0IiA9ICIkZnMiIF0gOyB0aGVuCgkJCWVj
aG8gJGF2YWlsCgkJZmkKCWRvbmUKfQoKCiMgZmluZCBhIGZpbGVzeXN0ZW0gd2l0aCBtZWdhYnl0
ZXMgb2YgZnJlZSBzcGFjZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCmZpbmRzcGFjZSgpIHsKCWZrYj0kMQoKCXBhcnQ9CglvbGRzcGljZT0wCgoJIyBmaW5kIHRo
ZSBiaWdnZXN0IGhvbGUuICBodWgtaHVoLCB5b3Ugc2FpZCAuLi4KCWZvciBwIGluIC8gL3VzciAv
dXNyL2xvY2FsL2FnaWxlIC92YXIgOyBkbwoJCWE9YGdldF9mcmVlX3NwYWNlICIkcCJgCgkJaWYg
WyAkYSAtZ3QgJGZrYiBdIDsgdGhlbgoJCQlkPWBleHByICRhIC0gJGZrYmAKCQkJaWYgWyAkZCAt
Z3QgMTAyNDAgXSA7IHRoZW4KCQkJCSMgMTAgTUIgaXMgZW5vdWdoLCB3ZSdyZSBvdXQgb2YgaGVy
ZQoJCQkJcGFydD0iJHAiCgkJCQlicmVhazsKCQkJZmkKCQkJaWYgWyAkZCAtZ3QgJG9sZHNwaWNl
IF0gOyB0aGVuCgkJCQlvbGRzcGljZT0iJGQiCgkJCQlwYXJ0PSIkcCIKCQkJZmkKCQlmaQoJZG9u
ZQoKCWVjaG8gIiRwYXJ0Igp9CgoKIyBmdHAgdGhlIGRpc3RyaWJ1dGlvbiB0YXJiYWxsCiMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZ2V0X2Rpc3RiYWxsKCkgewoJ
bWV0aG9kPSQxCgl1cmw9JDIKCWRkaXI9JDMKCglyZWNvcmQgIkRvd25sb2FkaW5nIGV4dGVybmFs
IHN5c3RlbSBzb2Z0d2FyZSBkaXN0cmlidXRpb24uIiA+L2Rldi90dHkKCWNkICRkZGlyCgljYXNl
ICRtZXRob2QgaW4KCWZ0cHxodHRwKQoJCSMgb2ggd2VsbAoJCWN3ICIvdXNyL2Jpbi9mdHAgLW0g
JHVybCIKCQkvdXNyL2Jpbi9mdHAgLW0kZnRwX3hvcHQgJHVybCA+L2Rldi90dHkgfHwgewoJCQll
cnI9JD8KCQkJcmVjb3JkICJGdHAgcmV0cmlldmFsIG9mIGRpc3RyaWJ1dGlvbiBmaWxlIGZhaWxl
ZDogJGVyciIgPi9kZXYvdHR5CgkJfQoJCTs7CglzY3ApCgkJIyBzd2VldGVyCgkJOzsKCWNwKQoJ
CSMgY29weSB0aGUgdGFyYmFsbCB2aWEgTkZTIG9yIHdoYXQuIGV2ZXIuCgkJOzsKCXJzeW5jKQoJ
CTs7CgkqKQoJCXJlY29yZCAiSW50ZXJuYWwgZXJyb3IgaW4gZ2V0X2Rpc3RiYWxsKCk6IHVua25v
d24gbWV0aG9kIFwnJG1ldGhvZFwnIiBcCgkJCT4gL2Rldi90dHkKCQk7OwoJZXNhYwoKCWNkIC0g
Pi9kZXYvbnVsbAoKCXJldHVybiAkZXJyCn0KCgojIGZpbmRzIHNwYWNlIGluIHRoZSBmaWxlc3lz
dGVtIHRvIGRvd25sb2FkIHRoZQojIGRpc3RyaWJ1dGlvbiB0YXJiYWxsLCBhbmQgZG93bmxvYWRz
IGl0LgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRvd25sb2Fk
X2Rpc3QoKSB7CgoJdXJsPSIkMSIKCglkd25fZGlyPWBmaW5kc3BhY2UgJERJU1RSX1NgCglyZW1v
dW50X3J3ICRkd25fZGlyCgljdyAiZ2V0X2Rpc3RiYWxsIGZ0cCAnJHVybCcgJGR3bl9kaXIiCgln
ZXRfZGlzdGJhbGwgZnRwICIkdXJsIiAkZHduX2RpcgoJZXJyPSQ/CglyZW1vdW50X3JvICRkd25f
ZGlyCgoJIyBpZiBubyBwcm9icywgb3V0cHV0IHRoZSBkaXIgc28gdGFyYmFsbCBjYW4gYmUgZm91
bmQKCWlmIFsgJGVyciAtZXEgMCBdIDsgdGhlbgoJCWVjaG8gJGR3bl9kaXIKCWVsc2UKCQllY2hv
CglmaQp9CgoKIyBnZW5lcmF0ZXMgdGhlIGRlZmF1bHQgZnRwIG9yIGh0dHAgVVJMCiMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKbWtfZGVmX3VybCgpIHsKCXU9JERF
Rl9GVFBfVVJMX0lOVC8kRElTVFJfTgoJaHd0eXBlPWBod19pbml0aWFsc2AKCglpZiBbICIkQlVJ
TERfVFlQRSIgPSBvcHQgXSA7IHRoZW4KCQlpZiBbICIkaHd0eXBlIiA9IEJDIF0gOyB0aGVuCgkJ
CXU9JERFRl9GVFBfVVJMLyR7Tl9WRVJTfS8yMnh4L0V2ZXJPTi0ke05fVkVSU31CQy50YXIuZ3oK
CQllbGlmIFsgIiRod3R5cGUiID0gQkwgXSA7IHRoZW4KCQkJIyBidXR0bG9hZAoJCQl1PSRERUZf
RlRQX1VSTC8ke05fVkVSU30vMjJ4eC9FdmVyT04tJHtOX1ZFUlN9QkwudGFyLmd6CgkJZWxpZiBb
ICIkaHd0eXBlIiA9IENIIF0gOyB0aGVuCgkJCXU9JERFRl9GVFBfVVJMLyR7Tl9WRVJTfS80NHh4
L0V2ZXJPTi0ke05fVkVSU30udGFyLmd6CgkJZWxzZQoJCQl1PSRERUZfRlRQX1VSTC8ke05fVkVS
U30vNjl4eC9FdmVyT04tJHtOX1ZFUlN9Q0cudGFyLmd6CgkJZmkKCWVsc2UKCQl1PSRERUZfRlRQ
X1VSTF9JTlQvRXZlck9OLSR7Tl9WRVJTfSR7aHd0eXBlfS50YXIuZ3oKCWZpCgoJZWNobyAkdQp9
CgoKIwojIG1haW4KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIEJhc2ljIGZsb3c6CiMKIyAxLiAgRG93bmxvYWQg
ZGlzdHJpYnV0aW9uIHRhcmJhbGwKIyAyLiAgSW5zdGFsbCBkaXN0cmlidXRpb24gb24gc2Vjb25k
YXJ5IGZsYXNoCiMgMy4gIENvcHkgY29uZmlnIGZpbGVzCiMgNC4gIFJlYm9vdAoKIwojIGludHJv
ZHVjZSB5b3Vyc2VsZgplY2hvCiByZWNvcmQgIldlbGNvbWUgdG8gdGhlIE9OU3RvciBTdGFuZGFs
b25lIFVwZ3JhZGUgU3lzdGVtIgplY2hvCiByZWNvcmQgIlRoaXMgcHJvZ3JhbSB3aWxsIHVwZ3Jh
ZGUgeW91ciBzZWNvbmRhcnkgZmxhc2ggY2FyZCB0byBFdmVyT04iCiByZWNvcmQgInZlcnNpb24g
JE5fVkVSUyBhbmQgYm9vdCB5b3VyIHN5c3RlbSB0byB0aGUgbmV3IHNvZnR3YXJlLiIKZWNobwpl
Y2hvICJZb3UgbWF5IHJ1biB0aGUgcHJvZ3JhbSBpbiBpbnRlcmFjdGl2ZSBtb2RlIG9yIHVuYXR0
ZW5kZWQgbW9kZS4iCmVjaG8gIklmIHlvdSBjaG9vc2UgaW50ZXJhY3RpdmUgbW9kZSwgeW91IHdp
bGwgYmUgcHJvbXB0ZWQgcHJpb3IgdG8iCmVjaG8gImFueSByZWJvb3RzIG9mIHRoZSBzeXN0ZW0u
ICBPdGhlcndpc2UsIHlvdSB3aWxsIG9ubHkgYmUiCmVjaG8gInByb21wdGVkIGZvciB0aGUgRlRQ
IG9yIEhUVFAgVVJMIG9mIHRoZSBkaXN0cmlidXRpb24gZmlsZSwiCmVjaG8gImFuZCB0aGUgdXBn
cmFkZSB3aWxsIGJlIGNvbXBsZXRlZCBhdXRvbWF0aWNhbGx5LiIKZWNobwplY2hvIC1uICJXb3Vs
ZCB5b3UgbGlrZSB0byBydW4gaW4gaW50ZXJhY3RpdmUgbW9kZT8gW05vXSAiCnJlYWQgYW5zCmNh
c2UgIiRhbnMiIGluCnkqfFkqKQoJcmVjb3JkICJJXCdsbCB0YWtlICRhbnMgYXMgYSBcJ3llc1wn
IGFuZCBydW4gaW4gaW50ZXJhY3RpdmUgbW9kZS4iCglpbW9kZT15ZXMKCTs7CiopCglpZiBbIC16
ICIkYW5zIiBdIDsgdGhlbgoJCWFucz10aGF0CglmaQoJcmVjb3JkICJJXCdsbCB0YWtlICRhbnMg
YXMgYSBcJ25vXCcgYW5kIHJ1biB1bmF0dGVuZGVkLiIKCWVjaG8gIkFmdGVyIGEgc3VjY2Vzc2Z1
bCB1cGdyYWRlIG9mIHlvdXIgc3lzdGVtLCBpdCB3aWxsIGJvb3QiCgllY2hvICJ0aGUgc29mdHdh
cmUgYW5kIHlvdSB3aWxsIGhhdmUgdG8gbG9nIGluIGFnYWluLiIKCWVjaG8KCWltb2RlPW5vCgk7
Owplc2FjCgoKIwojIGZvcm1hdCB0aGUgc2Vjb25kYXJ5IGRpc2sKIyBnZXQgcm9vdCBkaXNrIHdp
bGwgcmV0dXJuIG51bGwgaWYgTkZTIHJvb3QsIGV0Yy4KCiByZWNvcmQgIkZvcm1hdHRpbmcgc2Vj
b25kYXJ5IENvbXBhY3QgRmxhc2ggQ2FyZCIKCmRkaXNrPWBnZXRfcm9vdF9kaXNrYApjYXNlICIk
ZGRpc2siIGluCgkwKSBkZGlzaz0xIDs7CgkxKSBkZGlzaz0wIDs7CmVzYWMKCmV4cG9ydCBkaXNr
PSRkZGlzawoKVE1QX0xBQkVMX0ZJTEU9L3RtcC9kbGFiZWwKCnRyYXAgJ3JlY29yZCAiSW50ZXJy
dXB0IGRldGVjdGVkIC0tIGNsZWFuaW5nIHVwIjsgZXJyb3JfY2xlYW51cDsgZXhpdCcgMSAyIDE1
CgogZGlza19uYW1lID4gJFRNUF9MQUJFTF9GSUxFCiBpZiBbICIkREVCVUdfQ1ciIF0gOyB0aGVu
CgkjIGlmIHdlIGFyZSBkZWJ1Z2dpbmcsIHJ1biBkb19sYXlvdXQgaW4gc2VyaWVzIHJhdGhlciB0
aGFuIGluIHBhcmFsbGVsCglkb19sYXlvdXQgIiREWU5fUEFSVF9UQUJTIiAiJE9OU1RPUl9ESVJT
IiBnZXRfbmV3X3BhcnRfbGV0dGVyIHx8IHsKCQlyZWNvcmQgIkluaXRpYWxpemF0aW9uIG9mIENG
IGNhcmQgZmFpbGVkLiIKCQl1bm1vdW50X3BhcnRpdGlvbnMKCQlleGl0IDEKCX0KIGVsc2UKCSMg
cnVuIGRvX2xheW91dCBpbiB0aGUgYmFja2dyb3VuZCB3aGlsZSB3ZSBhcmUgZG93bmxvYWRpbmcg
dGhlIHRhcmJhbGwKCWRvX2xheW91dCAiJERZTl9QQVJUX1RBQlMiICIkT05TVE9SX0RJUlMiIGdl
dF9uZXdfcGFydF9sZXR0ZXIgJgoJbGF5b3V0X3BpZD0kIQoJcmVuaWNlIDE1IC1nICRsYXlvdXRf
cGlkIDI+L2Rldi9udWxsCiBmaQoKIyBkb3dubG9hZCB0aGUgZGlzdHJpYnV0aW9uCiByZWNvcmQg
IkRvd25sb2FkaW5nIHRoZSBFdmVyT04gc29mdHdhcmUgZGlzdHJpYnV0aW9uLiIKZnRwX3VybD1g
bWtfZGVmX3VybGAKc2VrcmV0PQoKd2hpbGUgOiA7IGRvCgllY2hvICJQbGVhc2UgZW50ZXIgdGhl
IGZ0cCBvciBodHRwIFVSTCBvZiB0aGUgZGlzdHJpYnV0aW9uOiIKCWlmIFsgIiRzZWtyZXQiIF0g
OyB0aGVuCgkJZWNobyAiWyRmdHBfdXJsXSIgfCBzZWQgJ3MrOi4qQCs6IyMjI0ArJwoJZWxzZQoJ
CWVjaG8gIlskZnRwX3VybF0iCglmaQoJcmVhZCBhbnMgZ2FyYmFnZWUKCWlmIFsgIiRhbnMiIF0g
OyB0aGVuCgkJaWYgWyAiJGdhcmJhZ2VlIiBdIDsgdGhlbgoJCQlyZWNvcmQgIlBsZWFzZSwgbm8g
c3BhY2VzIGluIHRoZSBVUkwuIgoJCQljb250aW51ZQoJCWZpCgkJZnRwX3VybD0iJGFucyIKCWZp
CglzZWtyZXQ9CgoJIyBoaWxhcmlvdXMKCWVjaG8gIiRmdHBfdXJsIiB8IGdyZXAgLXEgJ0AnICYm
IHsKCQlzZWtyZXQ9ZG91YmxlCgkJbj1gZWNobyAkZnRwX3VybCB8IHdjIC1jYAoJCW49YGV4cHIg
JG4gLyA4MCArIDFgCgkJaWYgWyAiJFRFUk0iID0gdnQ1MiBdIDsgdGhlbgoJCQlzdXBlcl9zdHI9
IhtBG0siCgkJZWxzZQoJCQlzdXBlcl9zdHI9IhtbQRtbSyIKCQlmaQoJCXdoaWxlIFsgJG4gLWd0
IDAgXSA7IGRvCgkJCWVjaG8gLW4gIiRzdXBlcl9zdHIiCgkJCW49YGV4cHIgJG4gLSAxYAoJCWRv
bmUKCQlleHBvcnQgZnRwX3hvcHQ9VgoJfQoKCSMgcXVpY2sgY2hlY2sgZm9yIGNoZWV0YWggdi4g
Ym9iY2F0Cglod2Nyb3NzPTAKCWNhc2UgIiRod3R5cGUiIGluCglCQykKCQlpZiBbICJgYmFzZW5h
bWUgJGZ0cF91cmxgIiA9ICJFdmVyT04tJHtOX1ZFUlN9LnRhci5neiIgXSA7IHRoZW4KCQkJcmVj
b3JkICJZb3UgaGF2ZSBzcGVjaWZpZWQgYSBDaGVldGFoIHRhcmJhbGwgZm9yIGEgQm9iY2F0LiIK
CQkJaHdjcm9zcz0xCgkJZmkKCQk7OwoJQ0gpCgkJaWYgWyAiYGJhc2VuYW1lICRmdHBfdXJsYCIg
PSAiRXZlck9OLSR7Tl9WRVJTfUJDLnRhci5neiIgXSA7IHRoZW4KCQkJcmVjb3JkICJZb3UgaGF2
ZSBzcGVjaWZpZWQgYSBCb2JjYXQgdGFyYmFsbCBmb3IgYSBDaGVldGFoLiIKCQkJaHdjcm9zcz0x
CgkJZmkKCQk7OwoJQkwpCgkJOzsKCUNHKQoJCTs7Cgllc2FjCglpZiBbICIkaHdjcm9zcyIgLWVx
IDEgXSA7IHRoZW4KCQllY2hvICJUaGlzIGlzIHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IGFu
ZCBwcm9iYWJseSB3b24ndCB3b3JrLiIKCQllY2hvIC1uICJEbyB5b3Ugd2FudCB0byBlbnRlciBh
IGRpZmZlcmVudCBVUkw/IFt5ZXNdICIKCQlyZWFkIGFucwoJCWlmIFsgLXogIiRhbnMiIF0gOyB0
aGVuCgkJCWNvbnRpbnVlCgkJZmkKCQljYXNlICIkYW5zIiBpbgoJCW58TikKCQkJcmVjb3JkICJJ
J2xsIHRha2UgJGFucyBhcyBhIE5vIGFuZCBkb3dubG9hZCB0aGlzIHRhcmJhbGwgYW55d2F5IgoJ
CQlyZWNvcmQgImV2ZW4gdGhvdWdoIGl0IGlzIHByb2JhYmx5IHdyb25nIGFuZCB3aWxsIGJyZWFr
IGV2ZXJ5dGhpbmciCgkJCTs7CgkJZXNhYwoJZmkKCgkjIGZldGNoIHRoZSBkaXN0cmlidXRpb24g
dGFyYmFsbAoJZGx0aW1lPWBleHByICRESVNUUl9TIC8gNDEwICsgMjVgCglpZiBbICIkaW1vZGUi
ID0geWVzIF0gOyB0aGVuCgkJZWNobyAiVGhpcyB3aWxsIHRha2UgYXQgbGVhc3QgJGRsdGltZSBz
ZWNvbmRzIHRvIGRvd25sb2FkLiIKCQllY2hvICJUaGFuayB5b3UgZm9yIHlvdXIgcGF0aWVuY2Uu
IgoJCWVjaG8KCWZpCgl0ZGlyPWBkb3dubG9hZF9kaXN0ICRmdHBfdXJsYAoJdGJhbGw9YGJhc2Vu
YW1lICRmdHBfdXJsYAoJaWYgWyBcKCAteiAiJHRkaXIiIFwpIC1vIFwoICEgLXMgIiR0ZGlyLyR0
YmFsbCIgXCkgXSA7IHRoZW4KCQlpZiBbICIkaW1vZGUiID0gbm8gXSA7IHRoZW4KCQkJaWYgWyAi
JGxheW91dF9waWQiIF0gOyB0aGVuCgkJCQl3YWl0ICRsYXlvdXRfcGlkCgkJCWZpCgkJCXVubW91
bnRfcGFydGl0aW9ucwoJCQlleGl0IDEKCQlmaQoJCWVjaG8gIlBsZWFzZSB0cnkgYWdhaW4uIgoJ
CWVjaG8KCQlzbGVlcCAxCgkJY29udGludWUKCWZpCglicmVhawpkb25lCgojIHdhaXQgZm9yIGxh
eW91dCBwcm9jZXNzIHRvIGZpbmlzaAp3YWl0ICRsYXlvdXRfcGlkCmVycj0kPwp1bnNldCBsYXlv
dXRfcGlkCiNybSAtZiAkVE1QX0xBQkVMX0ZJTEUKCiMgMTI3IG1lYW5zIHRoZSBwcm9jZXNzIGlz
IGFscmVhZHkgZ29uZSwgc28gcmVhZCB0aGUgc3RhdHVzIGZpbGUKaWYgWyAiJGVyciIgLWVxIDEy
NyBdIDsgdGhlbgoJcmVhZCBzdGF0ZSBzdGF0dXMgPCAkTEFZX1NUQVRVUwoJaWYgWyAiJHN0YXRl
IiA9IGZpbmlzaGVkIFwpIC1hIFwoICIkc3RhdHVzIiA9IHBhc3MgXCkgXSA7IHRoZW4KCQllcnI9
MAoJZWxzZQoJCWVycj05OQoJZmkKZmkKcm0gLWYgJExBWV9TVEFUVVMKCmlmIFsgIiRlcnIiIC1l
cSAwIF0gOyB0aGVuCgljdyAibWtkaXIgLXAgJERFU1RfRElSL3Vzci9sb2NhbCAkREVTVF9ESVIv
bW50MSAkREVTVF9ESVIvbW50IgoJbWtkaXIgLXAgJERFU1RfRElSL3Vzci9sb2NhbCAkREVTVF9E
SVIvbW50MSAkREVTVF9ESVIvbW50ICYmCglsbiAtcyAuLi8uLi9vbnN0b3IgJERFU1RfRElSL3Vz
ci9sb2NhbC9hZ2lsZQoJZXJyPSQ/CmZpCgojIGNvcHkgdGhlIGZpbGVzIGFuZCB0aGUgY29uZmln
IGRhdGEKaWYgWyAiJGVyciIgLWVxIDAgXSA7IHRoZW4KCglyZWNvcmQgLW4gIlVucGFja2luZyBk
aXN0cmlidXRpb24uLi4iCgkjIGRvbnQgb3ZlcndyaXRlIHRoZSB1c3IvbG9jYWwvYWdpbGUgc3lt
bGluay4gIHRoYXQgd291bGQgYmUgYmFkLgoJY2QgJERFU1RfRElSCgljdyAidGFyIC16eHBmICR7
dGRpcn0vJHt0YmFsbH0gLXMgJysuL3Vzci9sb2NhbC9hZ2lsZSQrKycgLXMgJysuL3Vzci9tYW4v
LiorKycgLXMgJysuL3Vzci9sb2NhbC9tYW4vLiorKycgLiIKCW5pY2UgLW4gMTUgdGFyIC16eHBm
ICIke3RkaXJ9LyR7dGJhbGx9IiAtcyAnKy4vdXNyL2xvY2FsL2FnaWxlJCsrJyBcCgkJLXMgJysu
L3Vzci9tYW4vLiorKycgLXMgJysuL3Vzci9sb2NhbC9tYW4vLiorKycgLgoKCXRlcnI9JD8KCgly
ZWNvcmQgImRvbmUuIgoKCWNkIC8KCglpZiBbICIkdGVyciIgLWVxIDAgXSA7IHRoZW4KCQkjIHB1
dCBhIHByb3BlciBmc3RhYiBvbnRvIHRoZSBuZXcgQ0YKCQlpZiBbICIkZGlzayIgLWVxIDEgXSA7
IHRoZW4KCQkJY3cgInNlZCAncy93ZDAvd2Qke2Rpc2t9LycgJERFU1RfRElSL2V0Yy9tZHJpdmVf
ZnN0YWIgPiRERVNUX0RJUi9ldGMvZnN0YWIiCgkJCXNlZCAicy93ZDAvd2Qke2Rpc2t9LyIgJERF
U1RfRElSL2V0Yy9tZHJpdmVfZnN0YWIgPiBcCgkJCQkkREVTVF9ESVIvZXRjL2ZzdGFiCgkJZWxz
ZQoJCQljdyAiY3AgJERFU1RfRElSL2V0Yy9tZHJpdmVfZnN0YWIgJERFU1RfRElSL2V0Yy9mc3Rh
YiIKCQkJY3AgJERFU1RfRElSL2V0Yy9tZHJpdmVfZnN0YWIgJERFU1RfRElSL2V0Yy9mc3RhYgoJ
CWZpCgkJZXJyPSQ/CgoJCXJlY29yZCAtbiAiVXBncmFkaW5nIHRoZSBjb25maWd1cmF0aW9uIGZp
bGVzLi4uIgoJCSMgY29weSB0aGUgY29uZmlnIGZpbGVzCgkJaWYgWyAiJGVyciIgLWVxIDAgXSA7
IHRoZW4KCQkJY2QgLwoJCQljdyAidGFyIGNmIC0gZXRjL215Z2F0ZSB8IChjZCAkREVTVF9ESVIg
JiYgdGFyIHhodnBmIC0pIgoJCQl0YXIgY2YgLSB1c3IvbG9jYWwvYWdpbGUvY29uZi9hZ2lsZS5j
b25mIGV0Yy9ob3N0cyBldGMvbXlnYXRlIGV0Yy9ob3N0bmFtZS5zYzEgZXRjL2hvc3RuYW1lLnNj
MiBldGMvbWFzdGVyLnBhc3N3ZCBldGMvcGFzc3dkIGV0Yy9wd2QuZGIgZXRjL3Nwd2QuZGIgZXRj
L215bmFtZSB1c3IvbG9jYWwvYWdpbGUvY29uZi9jbHVzdGVyLmNvbmYgdXNyL2xvY2FsL2FnaWxl
L2NvbmYvY2x1c3Rlci5kYi5EQjAgdXNyL2xvY2FsL2FnaWxlL2NvbmYvY2x1c3Rlci5kYi5EQlNZ
UzEgZXRjL3Jlc29sdi5jb25mIGV0Yy9zc2gvc3NoX2hvc3RfZHNhX2tleS5wdWIgZXRjL3NzaC9z
c2hfaG9zdF9kc2Ffa2V5IGV0Yy9zc2gvc3NoX2hvc3Rfa2V5LnB1YiBldGMvc3NoL3NzaF9ob3N0
X2tleSBldGMvc3NoL3NzaF9ob3N0X3JzYV9rZXkvIGV0Yy9zc2gvc3NoX2hvc3RfcnNhX2tleS5w
dWIgZXRjL2xvY2FsdGltZSBldGMvc3lzbG9nLmNvbmYgZXRjL250cC5jb25mIGV0Yy9udHAvc3Rl
cC10aWNrZXJzIHVzci9sb2NhbC9hZ2lsZS9ldGMvc3lzbG9nLmNvbmYgdXNyL2xvY2FsL2FnaWxl
L2V0Yy9zbm1wZC5jb25mIDI+L2Rldi9udWxsIHwgKGNkICRERVNUX0RJUiAmJiB0YXIgeGhwZiAt
KQoJCQlyZWNvcmQgImRvbmUuIgoJCQllY2hvCgkJCXJlY29yZCAiVmVyaWZpY2F0aW9uIG9mIG5l
dyBpbnN0YWxsYXRpb24gc3VjY2Vzc2Z1bC4iCgkJCSMgc2V0IHVwIHVwZGF0ZSBtb3RkIGZpbGUK
CQkJZWNobyAiV2VsY29tZSB0byBFdmVyT04gc29mdHdhcmUgdmVyc2lvbiAkTl9WRVJTLiAgRW5q
b3kuIiBcCgkJCQk+ICRERVNUX0RJUi9ldGMvdXBkYXRlLW1vdGQKCQkJZWNobyA+PiAkREVTVF9E
SVIvZXRjL3VwZGF0ZS1tb3RkCgkJZWxzZQoJCQlyZWNvcmQgIkZBSUw6IEluc3RhbGxhdGlvbiBv
ZiBmc3RhYiBmaWxlIGZhaWxlZDogJGVyciIKCQlmaQoJZWxzZQoJCXJlY29yZCAiRkFJTDogVmVy
aWZpY2F0aW9uIG9mIGluc3RhbGxhdGlvbiBmYWlsZWQuIEVycm5vICR0ZXJyLiIKCQllcnI9JHRl
cnIKCWZpCgplbHNlCglyZWNvcmQgIkZBSUw6IEZvcm1hdC9pbnN0YWxsIG9mIGNvbXBhY3QgZmxh
c2ggaW4gc2xvdCAkZGlzayBmYWlsZWQuIgpmaQoKIHVubW91bnRfcGFydGl0aW9ucwoKIyBpZ25v
cmUgZXJyb3JzLCBiZWNhdXNlIGRvX2xheW91dCBhbmQgb3RoZXIgY29tbWFuZHMgYWJvdmUgbWF5
IGhhdmUgZmFpbGVkCiAjIGRlbGV0ZSB0aGUgZGlzdHJpYnV0aW9uIHRhciBiYWxsCiByZW1vdW50
X3J3ICIkdGRpciIgJiYgewoJY3cgInJtICR7dGRpcn0vJHt0YmFsbH0iCglybSAtZiAiJHt0ZGly
fS8ke3RiYWxsfSIKCXJlbW91bnRfcm8gIiR0ZGlyIgogfQoKICMgZGVsZXRlIHRoZSB0ZW1wb3Jh
cnkgZGlyZWN0b3J5CiByZW1vdW50X3J3IC8gJiYgewoJcm1kaXIgJERFU1RfRElSIDI+L2Rldi9u
dWxsCglyZW1vdW50X3JvIC8KIH0KCgppZiBbICIkZXJyIiAtZXEgMCBdIDsgdGhlbgoJcmVjb3Jk
ICJJbnN0YWxsYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4iCgllY2hvICJBIHJlYm9vdCBv
ZiB0aGUgc3lzdGVtIGlzIHJlcXVpcmVkIHRvIHJ1biB0aGUgbmV3IHNvZnR3YXJlLiIKCWlmIFsg
IiRpbW9kZSIgPSB5ZXMgXSA7IHRoZW4KCQllY2hvIC1uICJNYXkgSSByZWJvb3QgdGhlIHN5c3Rl
bSBub3c/IFtZZXNdICIKCQlyZWFkIGFucwoJCWNhc2UgIiRhbnMiIGluCgkJbip8TiopCgkJCXJl
Y29yZCAiSVwnbGwgdGFrZSAkYW5zIGFzIGEgXCdub1wnIGFuZCBleGl0LiIKCQkJZWNobyAiVG8g
cmVib290IHRvIHRoZSBuZXcgc29mdHdhcmUsIHJ1biB0aGUgY29tbWFuZCAnbmZ4c2ggLWUgXCJz
eXN0ZW0gcmVib290IC1zXCInIgoJCQlleGl0ICRlcnIKCQkJOzsKCQkqKQoJCQlpZiBbIC16ICIk
YW5zIiBdIDsgdGhlbgoJCQkJYW5zPXRoYXQKCQkJZmkKCQkJcmVjb3JkICJJXCdsbCB0YWtlICRh
bnMgYXMgYSBcJ3llc1wnIGFuZCByZWJvb3QgdGhlIHN5c3RlbSBub3cuIgoJCQllY2hvICJTZWUg
eW91IG9uIHRoZSBvdGhlciBzaWRlISIKCQkJZWNobwoJCQk7OwoJCWVzYWMKCWVsc2UKCQkjIG5v
dCBpbnRlcmFjdGl2ZSwgc28ganVzdCByZWJvb3QKCQlyZWNvcmQgIlJlYm9vdGluZyBub3cuLiIK
CWZpCgoJIyByZWJvb3QgdG8gdGhlIG90aGVyIGZsYXNoCgljdyAic3lzdGVtIHJlYm9vdCAtcyIK
CW5meHNoIC1lICJzeXN0ZW0gcmVib290IC1zIC15IgpmaQoKZXhpdCAkZXJyCgo=

--MP_dPXM__gxIMMa3pq30pEj_p8--
