[pkg-bioc] how to proceed?

Dirk Eddelbuettel edd@debian.org
Tue, 8 Feb 2005 22:31:26 -0600


--Bidwr6HYBm
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit


On 9 February 2005 at 04:40, Steffen Moeller wrote:
| Dirk Eddelbuettel wrote:
| 
| >On 8 February 2005 at 17:29, Steffen Moeller wrote:
| >
| >I sure some Debian redneck will flame us for that one day, but til then, we
| >will keep it simple.
| >  
| >
| Very often PDFs, PNGs, ... are executable which lintian complains about 

The executable we can deal with with a quick chmod; I've done that in a few
cases.

| besides them being in the wrong location. A windows-artifact, I assume. 

Wrong location is IIRC the /usr/lib vs /usr/share mentioned earlier.

| This can be handled automatically.
| 
| SparseM is fun as it has
| Package:<blank><blank>SparseM
| in its description. I substituted  cut -f2 -d\  by a sed command.
| 
| Dirk, please be so kind to post/email the bioc2deb.pl of yours for me to 
| upload it to CVS.

Attached.  It doesn't need CVS insertion as much as someone to sit down and
actually work it through, try it again, extend, ... just as I once did with
Albrecht's.

| Well, you all, let you comments fly in.
| 
| Steffen
| 
| Remaining question:
| 
| >| Question: Is limma CRAN or Bioconductor? I put it to CRAN.

Well, doh, look at CRAN and BioC and figure out who has the newer version?

Dirk

--Bidwr6HYBm
Content-Type: application/octet-stream
Content-Disposition: attachment;
	filename="bioc2deb.pl"
Content-Transfer-Encoding: base64

IyEvdXNyL2Jpbi9wZXJsCgojIFRoaXMgc2NyaXB0IGJ1aWxkcyBEZWJpYW4gcGFja2FnZXMg
b2YgYWxsIFIgcGFja2FnZXMgYXZhaWxhYmxlIGF0IEJpb0MuCiMgSXQgYXNzdW1lcyBhIGxv
Y2FsIG1pcnJvci4gb2YgdGhlIHNyYy9jb250cmliLyBkaXJlY3RvcnkKCiMgYmFzZWQgb24g
Y3JhbjJkZWIucGwsdiAxLjcgMjAwNC8wNy8yMyAwMzo1OToyMSBlZGQgRXhwIAoKIyAkSWQ6
IGJpb2MyZGViLnBsLHYgMS4xIDIwMDQvMDcvMjggMDM6NDY6NDQgZWRkIEV4cCBlZGQgJAoK
QkVHSU57CQkJCQkjIGluaXRpYWxpemF0aW9uOgogIHB1c2goQElOQywgIi4iKTsJCQkjIGN1
cnJlbnQgZGlyIGZvciBjcmFuMmRlYiBwYWNrYWdlCn0KCnVzZSBzdHJpY3Q7CnVzZSB2YXJz
IHF3KCRoZWxwICRkZWJ1ZyAkdmVyYm9zZSAkZHJ5cnVuKTsKdXNlIHdhcm5pbmdzOwp1c2Ug
RGF0YTo6RHVtcGVyOwp1c2UgRW5nbGlzaDsKdXNlIEZjbnRsOwp1c2UgRmlsZTo6c3RhdDsK
dXNlIEdldG9wdDo6TG9uZzsgICAgICAgICAgICAgICAjIGxvbmcgb3B0aW9ucwp1c2UgSVBD
OjpPcGVuMjsKdXNlIElPOjpIYW5kbGU7CnVzZSBQT1NJWDsKdXNlIFRleHQ6OlBhcnNlV29y
ZHM7Cgp1c2UgQklPQzJERUI7CgpteSAlb3B0aW9ucyA9ICgiaGVscCIgICAgICAgICAgID0+
IFwkaGVscCwKICAgICAgICAgICAgICAgImRlYnVnIiAgCT0+IFwkZGVidWcsCiAgICAgICAg
ICAgICAgICJ2ZXJib3NlIiAgICAgICAgPT4gXCR2ZXJib3NlLAoJICAgICAgICJkcnlydW4i
CQk9PiBcJGRyeXJ1bik7CgpzaG93SGVscEFuZEV4aXQoKSBpZiAoIUdldE9wdGlvbnMoJW9w
dGlvbnMpIG9yICRoZWxwKTsKJHZlcmJvc2U9MSBpZiAkZGVidWc7CgokfD0xOwkJCQkjIHVu
YnVmZmVyZWQgb3V0cHV0OgoKbXkgJGJpbmFyY2g9ImkzODYiOwkJIyBjb25maWd1cmFibGUg
c3R1ZmYgYmVsb3cKbXkgJG1haW50YWluZXJtYWlsID0gIkRpcmsgRWRkZWxidWV0dGVsIDxl
ZGRcQGRlYmlhbi5vcmc+IjsKCm15ICRtaXJyb3IgPSAiYmlvQyI7Cm15ICRvdXRwdXQgPSAi
YnVpbGRzIjsKCiMjIGN1cnJlbnRseSBoYW5kLWVkaXRlZCBmcm9tIGxvb2tpbmcgYXQgdGhl
IFIgc3JjL2xpYnJhcnkgZGlyZWN0b3J5Cm15IEBiYXNlbGlicz0oImJhc2UiLCAiY3Rlc3Qi
LCAiZWRhIiwgImdyYXBoaWNzIiwgImdyaWQiLCAibHFzIiwKCSAgICAgICJtZXRob2RzIiwg
Im1sZSIsICJtb2RyZWciLCAibXZhIiwgIm5scyIsICJwcm9maWxlIiwgInNwbGluZXMiLAoJ
ICAgICAgInN0YXRzIiwgInN0YXRzNCIsICJzdGVwZnVuIiwgInRjbHRrIiwgInRvb2xzIiwg
InRzIiwgInV0aWxzIik7CgojIyBoYW5kLWVkaXRlZCBmcm9tIGxvb2tpbmcgYXQgdGhlIFIg
c3JjL2xpYnJhcnkvUmVjb21tZW5kIGRpcmVjdG9yeQpteSBAcmVjbGlicz0oIktlcm5TbW9v
dGgiLCAiVlIiLCAiYm9vdCIsICJjbHVzdGVyIiwgImZvcmVpZ24iLCAibGF0dGljZSIsCgkg
ICAgICJtZ2N2IiwgIm5sbWUiLCAicnBhcnQiLCAic3Vydml2YWwiKTsKCiMjIGNvbXBvbmVu
dHMgb2YgdGhlIFZSIGJ1bmRsZQpteSBAdnJsaWJzID0gKCJNQVNTIiwgImNsYXNzIiwgIm5u
ZXQiLCAic3BhdGlhbCIpOwoKIyMgY29tcG9uZW50cyBvZiB0aGUgTGluZHNleSBidW5kbGUg
KGluIERlYmlhbiBhcyByLW5vbmNyYW4tbGluZHNleSkKbXkgQGxpbmRzZXlsaWJzID0gKCJy
bXV0aWwiLCAiZ25sbSIsICJzdGFibGUiLCAiZ3Jvd3RoIiwgInJlcGVhdGVkIiwKCQkgICJl
dmVudCIsICJvcmRpbmFsIik7CgojIyBwYWNrYWdlcyBmb3Igd2hpY2ggd2UgbGFjayBidWls
ZCBkZXBlbmRlbmNpZXMKbXkgQGNhbm5vdGJ1aWxkID0gKCJ1ZHVuaXRzIiwgIlJtU1FMIiwg
Im1pbVIiLCAiUk9yYWNsZSIsIAoJCSAgICJSU1FMaXRlIiwgICAgIyMgaGFzIHNvbWUgV2lu
ZG93cyBsaWJzIHRoYXQgdHJpcCBsaW50aWFuIHVwCgkJICAgIlJTY2FMQVBBQ0siLCAjIyBu
ZWVkIHRvIHNvcnQgLWRldiBwYWNrYWdlcyBvdXQKCQkgICAicnNwcm5nIiwgICAgICMjIG5l
ZWQgdG8gZmlndXJlIG91dCB3aHkgdGhpcyBmYWlscwoJCSAgICAjIyBhbGwgZGVwZW5kIG9u
IG5vbi1mcmVlIHRyaXBhY2sKCQkgICAicGhlbm8iLCAibnBycSIsICJzcGRlcCIsICJkY2x1
c3RlciIsCgkJICAgImlwcmVkIiwJICMjIG9uIG1sYmVuY2gKCQkgICAiY2RubW9uZXkiLCAg
ICMjIG9uIHRmcmFtZSBpbnNpZGUgZHNlCgkJICAgIyMgb24gYWtpbWEKCQkgICAiY2xpbS5w
YWN0IiwgImdyYXNzIiwgImFubSIsCgkJICAgIyMgb24gY29uZi5kZXNpZ25zCgkJICAgImNy
b3NzZGVzIiwKCQkgICAjIwoJCSAgICMjIEJpb0M6IAojIAkJICAgImFubmFmZnkiLCAgICAj
IyB3ZSBsYWNrIEdPIGFuZCBLRUdHIGRhdGEgcGtncwojIAkJICAgImFsdGNkZmVudnMiLCAj
IyBuZWVkcyBoZ3UxMzNhcHJvYmUKIyAJCSAgICJnb3N0YXRzIiwgICAgIyMgR08KIyAJCSAg
ICJtYXRjaHByb2JlcyIsIyMgbG90cyBvZiBkYXRhIHBrZ3MKIyAJCSAgICJnb3Rvb2xzIiwg
ICAgIyMgR08KIwkJICAgImFmZnlwZG5uIiwgICAjIyBkYXRhIAoJCSAgICJybWFnZW1sIiwg
ICAgIyMgc2phdmEKIyAJCSAgICJ3ZWJiaW9jIiwgICAgIyMgYW5uYWZ5CiMgCQkgICAiZWNv
bGl0ayIsICAgICMjIGVjb2xpbGV1Y2luZQojIAkJICAgIm9udG90b29scyIsICAjIyBnbyBh
bmQgb3RoZXJzCgoJCSAgICJyZXBvc3Rvb2xzIiAgIyMgYWxyZWFkeSBpbiB0aGUgYXJjaGl2
ZQogICAgICAgICAgICAgICAgICAgKTsKCiMjIGdldCBsaXN0IG9mIHItYmlvYy0qIHBhY2th
Z2VzIGFscmVhZHkga25vd24gdG8gYXB0IAojIyBbIHNvIGFwdCBzaG91bGQgbm90IHBvaW50
IHRvIGFuIGFyY2hpdmUgb2YgbG9jYWwgQklPQyBEZWJpYW4gcGFja2FnZXMgXSAKbXkgQGRl
YmlhbnBrZ3M7Cm9wZW4oUElQRSwgImFwdC1jYWNoZSBzZWFyY2ggXCJeci1jcmFuLVx8XnIt
YmlvYy1cIiB8IGN1dCAtZjEgLWRcIiBcIiB8Iikgb3IKICBkaWUgIkNhbm5vdCBxdWVyeSBh
cHQtY2FjaGVcbiI7CndoaWxlICg8UElQRT4pIHsKICBjaG9tcDsKICBwdXNoIEBkZWJpYW5w
a2dzLCAkQVJHOwp9CgpteSAlYnVpbGREZXBzID0gKAoJCSBSbXBpID0+IFsibGFtLXJ1bnRp
bWUiLCAibGFtNC1kZXYiXSwKCQkgUk15U1FMID0+IFsibGlibXlzcWxjbGllbnQtZGV2Il0s
CgkJIFJQZ1NRTCA9PiBbInBvc3RncmVzcWwtZGV2Il0sCgkJIFJTUUxpdGUgPT4gWyJsaWJz
cWxpdGUtZGV2IiwgInItY3Jhbi1kYmkiXSwKCQkgZ3RrRGV2aWNlID0+IFsibGliZ3RrMS4y
LWRldiIsImxpYmdsaWIxLjItZGV2IiwieGxpYnMtZGV2Il0sCgkJIGhkZjUgPT4gWyJsaWJo
ZGY1LXNlcmlhbC1kZXYiLCAiemxpYjFnLWRldiJdLAoJCSBsbWU0ID0+IFsici1jcmFuLW1h
dHJpeCJdLAoJCSBuY2RmID0+IFsibmV0Y2RmZy1kZXYiXSwKCQkgbmV0Q0RGID0+IFsibmV0
Y2RmZy1kZXYiXSwKCQkgcmdkYWwgPT4gWyJsaWJnZGFsMS1kZXYiXSwKCQkgcmltYWdlID0+
IFsiZmZ0dy1kZXYiLCAibGlianBlZzYyLWRldiJdLAoJCSBycXVhbnRsaWIgPT4gWyJsaWJx
dWFudGxpYjAtZGV2IiwgImxpYmJvb3N0LWRldiIsIAoJCQkgICAgICAgImxpYmJvb3N0LXRl
c3QtZGV2Il0sCgkJIHJwdm0gPT4gWyJwdm0tZGV2Il0sCgkJIHJzY2FsYXBhY2sgPT4gWyJs
YW0tcnVudGltZSIsICJsYW00LWRldiIsICJyZWZibGFzMy1kZXYiLAoJCQkJImJsYWNzLWxh
bS1kZXYgIiwgInNjYWxhcGFjay1tcGljaC1kZXYiIF0sCgkJIHJzcHJuZyA9PiBbImxpYnNw
cm5nMi1kZXYiLCAibGliZ21wMy1kZXYiXSwKCQkgcnB2bSA9PiBbInB2bS1kZXYiXSwKCQkg
dGtycGxvdCA9PiBbInRjbDguNC1kZXYiLCAidGs4LjQtZGV2IiwgInhsaWJzLWRldiJdLAoj
CSAgICAgICAgIHNub3cgPT4gWyJwdm0tZGV2Il0sCgkJICMjIEJpb0NvbmR1Y3RvcgoJCSBh
ZmZ5ID0+IFsici1iaW9jLWJpb2Jhc2UiXSwKCQkgYW5uYWZmeSA9PiBbInItYmlvYy1nbyJd
LAoJCSBhbHRjZGZlbnZzID0+IFsici1iaW9jLWFmZnkiXSwKCQkgY29udmVydCA9PiBbInIt
YmlvYy1saW1tYSIsICJyLWJpb2MtbWFycmF5Il0sCgkJIGV4cHJleHRlcm5hbCA9PiBbInIt
YmlvYy1iaW9iYXNlIiwici1iaW9jLWV4dGVybmFsdmVjdG9yIl0sCgkJIGdlbmVwbG90dGVy
ID0+IFsici1iaW9jLWFubm90YXRlIl0sCgkJIHByb2Nlc3MgPT4gWyJyLWJpb2MtaWNlbnMi
XSwKCQkgUmdyYXBodml6ID0+IFsici1iaW9jLWdyYXBoIl0sCgkJIHJoZGY1ID0+IFsibGli
aGRmNS1zZXJpYWwtZGV2Il0sCgkJIHJ1dWlkID0+IFsibGliZ2xpYjEuMi1kZXYiXSwKCQkg
c3BsaWNlZ2VhciA9PiBbInItYmlvYy1iaW9iYXNlIl0sCgkJIHRrd2lkZ2V0cyA9PiBbInIt
YmlvYy13aWRnZXR0b29scyIsICJyLWJpb2MtZHluZG9jIl0sCgkJIHZzbiA9PiBbInItYmlv
Yy1iaW9iYXNlIl0sCgkJKTsKCm15ICVleHRlcm5hbERlcHMgPSAoeGdvYmkgPT4gWyd4Z29i
aSddLAoJCSAgICBHUkFTUyA9PiBbJ2dyYXNzJ10sCgkJICAgICMjIEJpb0NvbmR1Y3RvcgoJ
CSAgICBSZ3JhcGh2aXogPT4gWydncmFwaHZpeiddCgkJICAgKTsKbXkgJXBhY2thZ2VzOwpt
eSBAY3JhbnBhY2thZ2VzOwoKZGllICJUaGlzIG5lZWRzIHRvIHJ1biBvbiBhIERlYmlhbiBz
eXN0ZW0uXG4iIAogIHVubGVzcyBzdGF0KCIvZXRjL2RlYmlhbl92ZXJzaW9uIik7CgojICRS
Uz0iX0VPTF8iOwojIG15ICRwYWNrYWdlc2ZpbGUgPSAiJG1pcnJvci9yZXBvc1N0YXR1cy5j
c3YiOwojIG9wZW4oRklMRSwgJHBhY2thZ2VzZmlsZSkgb3IgZGllICJDYW5ub3Qgb3BlbiAk
cGFja2FnZXNmaWxlXG4iOwojIG15ICRsaW5lID0gPEZJTEU+OwojIGNob21wICRsaW5lOwoj
IG15IChAbGFiZWxzKSA9IHF1b3Rld29yZHMoJywnLCAwLCAkbGluZSk7CiMgbXkgJG4gPSBz
Y2FsYXIgQGxhYmVsczsKIyBwcmludCBEdW1wZXIoXEBsYWJlbHMpOwoKIyAjIHN0YXJ0IHBh
cnNpbmcgdGhlIFBBQ0tBR0VTIGZpbGU6CiMgd2hpbGUgKCRsaW5lID0gPEZJTEU+KSB7CiMg
ICAkbGluZSA9fiBzL19FT0xfJC8vbzsKIyAgIG15ICgkZGF0YSkgPSBuZXN0ZWRfcXVvdGV3
b3JkcygnLCcsIDAsICRsaW5lKTsKIyAgIG15ICRwYWNrYWdlID0gJGRhdGEtPlswXTsKIyAg
IG15ICR2ZXJzaW9uID0gJGRhdGEtPlsxXTsKIyAgIHByaW50ICJQYWNrYWdlIGlzICRwYWNr
YWdlXHRWZXJzaW9uICR2ZXJzaW9uXG4iOwojICAgZm9yIChteSAkaT0wOyAkaTwkbjsgJGkr
KykgewojICAgICAkcGFja2FnZXN7JHBhY2thZ2V9eyRsYWJlbHNbJGldfSA9ICRkYXRhLT5b
JGldOwojICAgfQojIH0KIyBjbG9zZShGSUxFKTsKIyAkUlM9IlxuIjsKCgojICAgICBjYXQo
cGFzdGUoZ3N1YihcIlxcblwiLFwiIFwiLGFzLmNoYXJhY3Rlcih1bmxpc3QoYmlvQ2RmW2ks
al0pKSksXCJcXCNcIixzZXA9XCJcIikpCm15ICRwaWQgPSBvcGVuMigqUkVBRF9SLCAqV1JJ
VEVfUiwgJ1InLCAnLS1zbGF2ZScsICctLXNpbGVudCcpOwpwcmludCBXUklURV9SICIKc3Rv
cGlmbm90KHJlcXVpcmUocmVwb3NUb29scywgcXVpZXQ9VFJVRSkpCmxvYWQoJ2Jpb0MuUmRh
dGEnKQojIyBzaG93IGEgaGVhZGVyIG9mIGNvbHVtbiBuYW1lcwpjYXQocGFzdGUoJ0FyY2hp
dmVcdCcsIHBhc3RlKGNvbG5hbWVzKGJpb0NkZiksY29sbGFwc2U9J1xcdCcpLCAnXFxuJywg
c2VwPScnKSkKZm9yIChpIGluIDE6TlJPVyhiaW9DZGYpKSB7CiAgY2F0KCdiaW9jXFx0JykK
ICBmb3IgKGogaW4gMTpOQ09MKGJpb0NkZikpCiAgICAgIyMgdGhlIHJlcG9zVG9vbHMgb2Jq
ZWN0IGRvZXMgbm90IGRyb3AgaXRzIGlubmVyIFM0IHJlcHJlc2VudGF0aW9uLAogICAgICMj
IGV2ZW4gYXMgYSBkYXRhLmZyYW1lIC0tIGhlbmNlIHRoZSB1Z2x5IGRmW2ksal1bWzFdXSB0
byB1bmRvIHRoZSAKICAgICAjIyB1bmRlcmx5aW5nIGxpc3QgYW5kIHR1cm4gaW50byBhIGNo
YXIgdmVjdG9yOyB0aGUgcmVzdCBpcyBqdXN0IGljaW5nOgogICAgICMjIERlcGVuZHMgY291
bGQgaGF2ZSBzZXZlcmFsLCBzbyBjb2xsYXBzZSwKICAgICAjIyBEZXNjcmlwdGlvbiBjYW4g
aGF2ZSBuZXdsaW5lcywgc28gdW5kbyB0aG9zZSwgYW5kIAogICAgICMjIHNlcGFyYXRlIG91
dCB3aXRoIGEgbWFya2VyCiAgICAgY2F0KHBhc3RlKGdzdWIoJ1xcbicsJyAnLCBwYXN0ZShh
cy5jaGFyYWN0ZXIoYmlvQ2RmW2ksal1bWzFdXSksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb2xsYXBzZT0nLCcpKSwgJ1xcdCcsc2VwPScnKSkKICBjYXQoJ1xc
bicpCn0KZm9yIChpIGluIDE6TlJPVyhjcmFuZGYpKSB7CiAgY2F0KCdjcmFuXFx0JykKICBm
b3IgKGogaW4gMTpOQ09MKGNyYW5kZikpCiAgICAgY2F0KHBhc3RlKGdzdWIoJ1xcbicsJyAn
LCBwYXN0ZShhcy5jaGFyYWN0ZXIoY3JhbmRmW2ksal1bWzFdXSksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZT0nLCcpKSwgJ1xcdCcsc2VwPScnKSkK
ICAgICAjI2NhdChwYXN0ZSgnY3JhbicsIGFzLmNoYXJhY3RlcihjcmFuZGZbaSwxXVtbMV1d
KSwgc2VwPSdcXHQnKSwgJ1xcbicpCiAgY2F0KCdcXG4nKQp9CiMjd3JpdGUudGFibGUoYmlv
Q2RmLCBzZXA9J1xcdCcsIGZpbGU9J2Jpb0MuY3N2Jywgcm93Lm5hbWVzPUZBTFNFKQpxKCdu
bycpCiI7Cm15ICRsaW5lID0gIDxSRUFEX1I+OwpjaG9tcCAkbGluZTsKbXkgKEBoZWFkZXIp
ID0gc3BsaXQgIlx0IiwgJGxpbmU7CiNteSAkbiA9IHNjYWxhciBAaGVhZGVyOwp3aGlsZSAo
JGxpbmUgPSA8UkVBRF9SPikgewogIGNob21wICRsaW5lOwogIHByaW50ICJbJGxpbmVdXG4i
IGlmICRkZWJ1ZzsKICBteSAoQHJvdykgPSBzcGxpdCAiXHQiLCAkbGluZTsKICBpZiAoJHJv
d1swXSBlcSAiYmlvYyIpIHsKICAgIHByaW50ICIkcm93WzFdIC0gJHJvd1syXSBcbiIgaWYg
JHZlcmJvc2U7CiAgICAjICBmb3IgKG15ICRpPTA7ICRpPCRuOyAkaSsrKSB7CiAgICAjICAg
ICRwYWNrYWdlc3skcm93WzFdfXskaGVhZGVyWyRpXX0gPSAkcm93WyRpXTsKICAgICMgICAg
IyNwcmludCAiXHQkcm93WzAxIC0gJGhlYWRlclskaV1cdCAkcm93WyRpXSBcbiI7CiAgICAj
ICB9CiAgICAjIyBzbGljazogd2UgY2FuIGFzc2lnbiBhbGwgaGFzaCBrZXkvdmFsdWUgcGFp
cnMgYXQgb25jZQogICAgQHskcGFja2FnZXN7JHJvd1sxXX19e0BoZWFkZXJ9ID0gKEByb3cp
OwoKICAgICMgdHVybiBDUkFOJ3MgcG9zc2libGUgMS4yLjMtNCBpbnRvIDEuMi4zLjQKICAg
ICRwYWNrYWdlc3skcm93WzFdfXtEZWJWZXJzaW9ufSA9ICRwYWNrYWdlc3skcm93WzFdfXtW
ZXJzaW9ufTsKICAgICRwYWNrYWdlc3skcm93WzFdfXtEZWJWZXJzaW9ufSA9fiBzLy0vXC4v
bTsKICAgICRwYWNrYWdlc3skcm93WzFdfXtEZWJSZWxlYXNlfSA9IAogICAgICAkcGFja2Fn
ZXN7JHJvd1sxXX17RGViVmVyc2lvbn0gLiAiLTAucjJkLjEiOwogIH0gZWxzaWYgKCRyb3db
MF0gZXEgImNyYW4iKSB7CiAgICBwdXNoIEBjcmFucGFja2FnZXMsICRyb3dbMV07CiAgfQp9
CmNsb3NlKFdSSVRFX1IpOwpjbG9zZShSRUFEX1IpOwojcHJpbnQgRHVtcGVyKFwlcGFja2Fn
ZXMpOyBwcmludCBEdW1wZXIoXEBjcmFucGFja2FnZXMpOyAjZGllICJDaGVja1xuIjsKCm15
IEBwYWNrYWdlbmFtZXMgPSBrZXlzICVwYWNrYWdlczsKCiMjIGhlcmUgd2UgbmVlZCB0byBi
ZSBhYmxlIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBDUkFOIGFuZCBiaW9DIERlcGVuZHMK
CiMgaGFuZGxlIGludGVycGFja2FnZSBkZXBlbmRlbmNpZXM6CiMgKGFzc3VtaW5nIHRoZXJl
IGlzIG5vIGNpcmN1bGFyIGRlcGVuZGVuY3kpCmZvcmVhY2ggbXkgJHBhY2thZ2UgKEBwYWNr
YWdlbmFtZXMpIHsKICAkcGFja2FnZXN7JHBhY2thZ2V9eydkZXBlbmRlbmNpZXMnfT0oKTsK
ICAkcGFja2FnZXN7JHBhY2thZ2V9eydkZWJpYW5kZXBlbmRlbmNpZXMnfT0oKTsKICAkcGFj
a2FnZXN7JHBhY2thZ2V9eydkZWJpYW5idWlsZGRlcGVuZGVuY2llcyd9PSgpOwogIGlmKGV4
aXN0cyAkZXh0ZXJuYWxEZXBzeyRwYWNrYWdlfSkgewogICAgcHVzaCAoQHskcGFja2FnZXN7
JHBhY2thZ2V9eydkZWJpYW5kZXBlbmRlbmNpZXMnfX0sCgkgIEB7JGV4dGVybmFsRGVwc3sk
cGFja2FnZX19KTsKICB9CiAgaWYoZXhpc3RzICRidWlsZERlcHN7JHBhY2thZ2V9KSB7CiAg
ICBwdXNoIChAeyRwYWNrYWdlc3skcGFja2FnZX17J2RlYmlhbmJ1aWxkZGVwZW5kZW5jaWVz
J319LAoJICBAeyRidWlsZERlcHN7JHBhY2thZ2V9fSk7CiAgfQogIGlmIChkZWZpbmVkKCRw
YWNrYWdlc3skcGFja2FnZX17RGVwZW5kc30pKSB7CiAgICBteSBAcGtncyA9IHNwbGl0KC8s
LywgJHBhY2thZ2VzeyRwYWNrYWdlfXtEZXBlbmRzfSk7CiAgICBmb3JlYWNoIG15ICRwa2cg
KEBwa2dzKSB7CiAgICAgIG5leHQgaWYgJHBrZyA9fiBtL15SKC4qXCg+PT8gXGQqXCkpPy87
CiAgICAgIG5leHQgaWYgZ3JlcCgvXGIkcGtnXGIvLCBAYmFzZWxpYnMpID4gMDsKICAgICAg
JHBrZyA9fiBzL1xzKlwoLipcKS8vbzsJIyBudWtlIHZlcnNpb24gbnVtYmVycwogICAgICBw
cmludCAiXHQkcGFja2FnZSBkZXBlbmRzIG9uIG5vbi1iYXNlIHBhY2thZ2UgJHBrZ1xuIiBp
ZiAkdmVyYm9zZTsKICAgICAgcHVzaChAeyRwYWNrYWdlc3skcGFja2FnZX17ZGVwZW5kZW5j
aWVzfX0sICRwa2cpOwogICAgICAjIHRyYW5zbGF0ZSBpbnRvIGRlYmlhbiBkZXBlbmRlbmNp
ZXM7CiAgICAgIGlmIChncmVwKC9cYiRwa2dcYi8sIEB2cmxpYnMpID4gMCkgewoJcHVzaChA
eyRwYWNrYWdlc3skcGFja2FnZX17ZGViaWFuZGVwZW5kZW5jaWVzfX0sICJyLWNyYW4tdnIi
KTsKICAgICAgfSBlbHNpZiAoZ3JlcCgvXGIkcGtnXGIvLCBAbGluZHNleWxpYnMpID4gMCkg
ewoJcHVzaChAeyRwYWNrYWdlc3skcGFja2FnZX17ZGViaWFuZGVwZW5kZW5jaWVzfX0sICJy
LW5vbmNyYW4tbGluZHNleSIpOwogICAgICB9IGVsc2lmIChncmVwKC9cYiRwa2dcYi8sIEBj
cmFucGFja2FnZXMpID4gMCkgewoJIyMgaWYgaXQgaXMgZnJvbSBDUkFOIChhbmQgaXMgbm90
IEljZW5zIHdoaWNoIGlzIGFsc28gaW4gQmlvQykKCXB1c2goQHskcGFja2FnZXN7JHBhY2th
Z2V9e2RlYmlhbmRlcGVuZGVuY2llc319LAoJICAgICAici1jcmFuLSIgLiBsb3dlckNhc2Uo
JHBrZykpIHVubGVzcyBsb3dlckNhc2UoJHBrZykgZXEgImljZW5zIjsKICAgICAgfSBlbHNl
IHsKCSMjIGl0IGlzIGZyb20gQmlvQ29uZHVjdG9yICh1bmxlc3MgaXQgaXMgcGxhY2Vob2xk
ZXIgIk5BIiA9PSAibmEiKQoJcHVzaChAeyRwYWNrYWdlc3skcGFja2FnZX17ZGViaWFuZGVw
ZW5kZW5jaWVzfX0sCgkgICAgICJyLWJpb2MtIiAuIGxvd2VyQ2FzZSgkcGtnKSkgdW5sZXNz
IGxvd2VyQ2FzZSgkcGtnKSBlcSAibmEiOwogICAgICB9CiAgICB9CiAgICBpZiAoZGVmaW5l
ZChAeyRwYWNrYWdlc3skcGFja2FnZX17ZGVwZW5kZW5jaWVzfX0pIGFuZCAkdmVyYm9zZSkg
ewogICAgICBwcmludCAiJHBhY2thZ2UgZGVwZW5kcyBvbjogIiwKCWpvaW4oIiAiLCBAeyRw
YWNrYWdlc3skcGFja2FnZX17ZGVwZW5kZW5jaWVzfX0pLCAiXG4iOwogICAgfQogIH0KfQoK
bXkgJG1heGRlcHRoPTA7CmZvcmVhY2ggbXkgJHBhY2thZ2UgKEBwYWNrYWdlbmFtZXMpIHsK
ICBwcmludCAiZ2V0IGRlcGVuZGVuY3kgZGVwdGggZm9yICRwYWNrYWdlIC4uLiAiIGlmICR2
ZXJib3NlOwogICRwYWNrYWdlc3skcGFja2FnZX17ZGVwZGVwdGh9ID0gZ2V0RGVwdGgoXCVw
YWNrYWdlcywgJHBhY2thZ2UpOwogIHByaW50ICIkcGFja2FnZXN7JHBhY2thZ2V9e2RlcGRl
cHRofVxuIiBpZiAkdmVyYm9zZTsKICAkbWF4ZGVwdGg9JHBhY2thZ2VzeyRwYWNrYWdlfXtk
ZXBkZXB0aH0KICAgIGlmICRwYWNrYWdlc3skcGFja2FnZX17ZGVwZGVwdGh9PiRtYXhkZXB0
aDsKfQoKbXkgJGNvdW50ZXIgPSAwOwojIG5vdyBnZW5lcmF0ZSB0aGUgZGViaWFuIGJ1aWxk
IGZpbGVzOgojIGRvIHRoaXMgaW4gJG1heGRlcHRoIHBhc3NlcywgaGFuZGxlIHBhY2thZ2Vz
IHdpdGggbG93ZXIgZGVwdGggZmlyc3QKZm9yIChteSAkcGFzcz0wOyAkcGFzczw9JG1heGRl
cHRoOyAkcGFzcysrKSB7CiAgcHJpbnQgInBhc3MgZm9yIGRlcGVuZGVuY3kgZGVwdGggJHBh
c3NcbiIgaWYgJHZlcmJvc2U7CiAgZm9yZWFjaCBteSAkcGFja2FnZSAoQHBhY2thZ2VuYW1l
cykgewogICAgbmV4dCB1bmxlc3MgJHBhY2thZ2VzeyRwYWNrYWdlfXsnZGVwZGVwdGgnfSA9
PSAkcGFzczsKIyAgICBuZXh0IGlmICRjb3VudGVyKysgPiA0MDA7CiAgICBwcmludCAiXHRk
ZXB0aCAkcGFzcyBhbmQgcGFja2FnZSBpcyAkcGFja2FnZVxuIiBpZiAkdmVyYm9zZTsKCiAg
ICAjIHdlIGNhbiBza2lwIHJlY29tbWVuZGVkIHBhY2thZ2VzCiAgICBuZXh0IHVubGVzcyBn
cmVwKC9eJHBhY2thZ2UkLywgQHJlY2xpYnMpPT0wOwoKICAgIGlmIChncmVwKC9cYiRwYWNr
YWdlXGIvLCBAY2Fubm90YnVpbGQpID4gMCkgewogICAgICBwcmludCAiXHRcdCRwYWNrYWdl
IGNhbm5vdCBiZSBidWlsdCBmb3IgbGFjayBvZiBjb21wb25lbnRzLCBza2lwcGluZ1xuIjsK
ICAgICAgbmV4dDsKICAgIH0KCiAgICAjIGNoZWNrIExpY2Vuc2UgZm9yIHN1c3BpY2lvdXMg
dGV4dCAoaS5lLiBzaWdnZW5lcykKICAgIG15ICRsaWNlbnNlID0gJHBhY2thZ2VzeyRwYWNr
YWdlfXtMaWNlbnNlfTsKIyAgICBpZiAoJGxpY2Vuc2UgPX4gbS8obm9uLT8oY29tbWVyY2lh
bHxhY2FkZW1pY3xmcmVlfHByb2ZpdCkpL2kpIHsKICAgIGlmICgkbGljZW5zZSA9fiBtLyhu
b24tPyhjb21tZXJjaWFsfGZyZWV8cHJvZml0KSkvaSkgewogICAgICAkbGljZW5zZSA9fiBz
L1xuLy9tbzsJIyByZW1vdmUgbGluZSBicmVha3MKICAgICAgcHJpbnQgInNraXBwaW5nICRw
YWNrYWdlIHdpdGggc3VzcGljaW91cyBsaWNlbnNlOiAkbGljZW5zZVxuIjsKICAgICAgbmV4
dDsKICAgIH0KCiAgICAjIHByZXBhcmUgZmlsZW5hbWVzOgogICAgbXkgJHNvdXJjZWZpbGUg
PSAiJG1pcnJvci8iIC4gJHBhY2thZ2VzeyRwYWNrYWdlfXtQYWNrYWdlfSAuICJfIiAuCiAg
ICAgICRwYWNrYWdlc3skcGFja2FnZX17VmVyc2lvbn0gLiAiLnRhci5neiI7CiAgICAjIGxv
d2VyY2FzZSBwYWNrYWdlIG5hbWU6CiAgICBteSAkbGNwYWNrYWdlID0gbG93ZXJDYXNlKCRw
YWNrYWdlc3skcGFja2FnZX17UGFja2FnZX0pOwogICAgbXkgJHBhY2thZ2VwYXRoID0gJGxj
cGFja2FnZSAuICItIiAuICRwYWNrYWdlc3skcGFja2FnZX17RGViVmVyc2lvbn07CiAgICAk
cGFja2FnZXN7JHBhY2thZ2V9e0RlYkRpcn0gPSAkcGFja2FnZXBhdGg7CiAgICAkcGFja2Fn
ZXN7JHBhY2thZ2V9e0RlYk5hbWV9ID0gJGxjcGFja2FnZTsKICAgICRwYWNrYWdlc3skcGFj
a2FnZX17RGViQXJjaH0gPSBnZXRBcmNoaXRlY3R1cmUoJHNvdXJjZWZpbGUsICRiaW5hcmNo
KTsKCiAgICBteSAkZGVibmFtZSA9ICJyLWJpb2MtIiAuICRsY3BhY2thZ2U7CiAgICBteSAk
ZGViZmlsZSA9ICRvdXRwdXQgLiAiLyIgLiAkZGVibmFtZSAuICJfIiAuCiAgICAgICRwYWNr
YWdlc3skcGFja2FnZX17RGViUmVsZWFzZX0gLiAiXyIKCS4gJHBhY2thZ2VzeyRwYWNrYWdl
fXtEZWJBcmNofSAuICIuZGViIjsgCiMgICAgaWYgKGdyZXAoL1xiJGRlYm5hbWVcYi8sIEBk
ZWJpYW5wa2dzKSA+IDApIHsKIyAgICAgIHByaW50ICJcdFx0JGRlYm5hbWUgYWxyZWFkeSBp
biBEZWJpYW4sIHNraXBwaW5nXG4iOwojICAgICAgbmV4dDsKIyAgICB9CgogICAgaWYgKHN0
YXQoJGRlYmZpbGUpKSB7CiAgICAgIHByaW50ICJcdFx0JGRlYmZpbGUgYWxyZWFkeSBidWls
dCwgc2tpcHBpbmdcbiIgaWYgJHZlcmJvc2U7CiAgICAgIG5leHQ7CiAgICB9CgogICAgIyMg
ZWRkOiBjcmVhdGUgYSBsaW5rIHRvIC5vcmlnLnRhci5neiwgc2ltaWxhciB0byByLXJlY29t
bWVuZHMgaW4gUiBzcmNzCiAgICAjIyAgICAgIGFuZCBsaW5rIGl0IGluIGRpcmVjdGx5IGZy
b20gdGhlIEJJT0MgbWlycm9yIGluIHN1YmRpcgogICAgbXkgJG9yaWdzb3VyY2VmaWxlID0g
JGxjcGFja2FnZSAuICJfIiAuIAogICAgICAkcGFja2FnZXN7JHBhY2thZ2V9e0RlYlZlcnNp
b259ICAuICIub3JpZy50YXIuZ3oiOwoKICAgIG15ICRnZW5lcmF0ZWZpbGVzID0gMTsKICAg
IGlmIChzdGF0KCRkZWJmaWxlKSkgewogICAgICAkZ2VuZXJhdGVmaWxlcyA9IChzdGF0KCRk
ZWJmaWxlKS0+bXRpbWUgPCBzdGF0KCRvcmlnc291cmNlZmlsZSktPm10aW1lKTsKICAgIH0K
CiAgICAjIGV4cGFuZCBhcmNoaXZlcyBmb3IgcGFja2FnZSBidWlsZGluZwogICAgIyBsaW5r
KCRzb3VyY2VmaWxlLCAkb3JpZ3NvdXJjZWZpbGUpIG9yIGRpZSAiQ2Fubm90IGxpbmsgJHNv
dXJjZWZpbGUiOwogICAgY2hkaXIgIiRvdXRwdXQiIG9yIGRpZSAiQ2Fubm90IGNkIGludG8g
JG91dHB1dFxuIjsKICAgIHN5c3RlbSgibG4gLXNmIC4uLyRzb3VyY2VmaWxlICRvcmlnc291
cmNlZmlsZSIpOyMgb3IgCiAgICAgICAgICAgICAgICAgI2RpZSAiQ2Fubm90IGxpbmsgLi4v
JHNvdXJjZWZpbGUgdG8gJG9yaWdzb3VyY2VmaWxlXG4iOwogICAgc3lzdGVtKCJybSAtcmYg
Li8kcGFja2FnZXBhdGgiKTsgIyBvciBkaWUgIkNhbm5vdCByZW1vdmUgJHBhY2thZ2VwYXRo
XG4iOwogICAgc3lzdGVtKCJ0YXIgeHpmICRvcmlnc291cmNlZmlsZSIpOyAjIG9yIGRpZSAi
Q2Fubm90IHVucGFjayAkc291cmNlZmlsZVxuIjsKICAgIHJlbmFtZSgkcGFja2FnZXN7JHBh
Y2thZ2V9e1BhY2thZ2V9LCAkcGFja2FnZXBhdGgpIG9yIAogICAgICBkaWUgIkNhbm5vdCBy
ZW5hbWUgJHBhY2thZ2VzeyRwYWNrYWdlfXtQYWNrYWdlfSB0byAkcGFja2FnZXBhdGhcbiI7
CgogICAgIyBpZiBuZWVkZWQsIHBvcHVsYXRlIHRoZSBkZWJpYW4gc3ViZGlyZWN0b3J5Ogog
ICAgaWYgKCRnZW5lcmF0ZWZpbGVzIGFuZCBzdGF0KCRvcmlnc291cmNlZmlsZSkpIHsKICAg
ICAgaWYgKC1kICIkcGFja2FnZXBhdGgvZGViaWFuIikgewoJcHJpbnQgIlx0bnVraW5nIGRl
YmlhbiBkaXJlY3RvcnkgZm9yICRwYWNrYWdlXG4iOwoJc3lzdGVtKCJybSAtcmYgJHBhY2th
Z2VwYXRoL2RlYmlhbiIpICMgVG9ueSBSLiBoYWQgY3JlYXRlZCBzb21lCiAgICAgIH0KICAg
ICAgbWtkaXIgIiRwYWNrYWdlcGF0aC9kZWJpYW4iIG9yCiAJZGllICJDYW5ub3QgY3JlYXRl
IGRlYmlhbi8gaW4gJHBhY2thZ2VwYXRoIjsKCiAgICAgIHdyaXRlUnVsZXMoXCV7JHBhY2th
Z2VzeyRwYWNrYWdlfX0sICRtYWludGFpbmVybWFpbCk7CiAgICAgIHdyaXRlQ29uZmlnKFwl
eyRwYWNrYWdlc3skcGFja2FnZX19LCAkbWFpbnRhaW5lcm1haWwsICRiaW5hcmNoKTsKICAg
ICAgd3JpdGVDb3B5cmlnaHQoXCV7JHBhY2thZ2VzeyRwYWNrYWdlfX0sICRtYWludGFpbmVy
bWFpbCk7CiAgICAgICN3cml0ZVJlYWRtZShcJXskcGFja2FnZXN7JHBhY2thZ2V9fSwgJG1h
aW50YWluZXJtYWlsKTsKICAgICAgd3JpdGVDaGFuZ2Vsb2coXCV7JHBhY2thZ2VzeyRwYWNr
YWdlfX0sICRtYWludGFpbmVybWFpbCk7CiAgICAgIHdyaXRlUG9zdGluc3QoXCV7JHBhY2th
Z2VzeyRwYWNrYWdlfX0sICRtYWludGFpbmVybWFpbCk7CiAgICAgIHdyaXRlUG9zdHJtKFwl
eyRwYWNrYWdlc3skcGFja2FnZX19LCAkbWFpbnRhaW5lcm1haWwpOwogICAgICAjd3JpdGVG
aWxlcyhcJXskcGFja2FnZXN7JHBhY2thZ2V9fSwgJG1haW50YWluZXJtYWlsKTsKCiAgICAg
IHByaW50ICJidWlsZGluZyBwYWNrYWdlICRkZWJmaWxlIC4uLlxuIjsKICAgICAgbXkgJGxv
Z2ZpbGUgPSAkbGNwYWNrYWdlIC4gIl8iIC4gCiAJJHBhY2thZ2VzeyRwYWNrYWdlfXtEZWJW
ZXJzaW9ufSAgLiAiLmxvZyI7CiAgICAgIHVubGVzcyAoJGRyeXJ1bikgewoJc3lzdGVtKCJj
ZCAkcGFja2FnZXBhdGg7IGRlYnVpbGQgLXVjIC11cyAyPiYxID4gLi4vJGxvZ2ZpbGUiKTsK
CWlmICghc3RhdCgiLi4vJGRlYmZpbGUiKSkgewoJICBkaWUgImJ1aWxkIGZhaWxlZCBmb3Ig
JGRlYmZpbGVcbiI7Cgl9CiAgICAgIH0KICAgIH0KICAgIGNoZGlyICIuLiIgb3IgZGllICJD
YW5ub3QgY2hhbmdlIGJhY2tcbiI7CiAgICAjZGllICJTdG9wIGhlcmUgZm9yIG5vd1xuIjsK
ICB9Cn0KcHJpbnQgIkRPTkVcbiI7CgoKI3ByaW50IER1bXBlcihcJXBhY2thZ2VzKTsK
--Bidwr6HYBm
Content-Type: application/octet-stream
Content-Disposition: attachment;
	filename="BIOC2DEB.pm"
Content-Transfer-Encoding: base64

CiMgJElkOiBCSU9DMkRFQi5wbSx2IDEuMSAyMDA0LzA3LzI4IDAxOjIwOjUyIGVkZCBFeHAg
JAojIGJhc2VkIG9uIENSQU4yREVCLnBtLHYgMS4yIDIwMDQvMDcvMTMgMTk6MDc6NTUgZWRk
IEV4cCBlZGQgJAoKcGFja2FnZSBCSU9DMkRFQjsKCnJlcXVpcmUgc3RyaWN0OwpyZXF1aXJl
IEV4cG9ydGVyOwoKdXNlIERhdGE6OkR1bXBlcjsKdXNlIEZjbnRsOwp1c2UgVGV4dDo6V3Jh
cDsKCkBJU0EgPSBxdyhFeHBvcnRlcik7ICAgICAgICAgICAgIyBtYWtlIHRoZXNlIHN5bWJv
bHMga25vd24KQEVYUE9SVCA9IHF3KGxvd2VyQ2FzZQoJICAgICBnZXREZXB0aAoJICAgICBn
ZXRBcmNoaXRlY3R1cmUKCSAgICAgd3JpdGVSdWxlcyAKCSAgICAgd3JpdGVDb25maWcKCSAg
ICAgd3JpdGVDb3B5cmlnaHQKCSAgICAgd3JpdGVSZWFkbWUKCSAgICAgd3JpdGVDaGFuZ2Vs
b2cKCSAgICAgd3JpdGVQb3N0aW5zdAoJICAgICB3cml0ZVBvc3RybQoJICAgICB3cml0ZUZp
bGVzCgkgICAgIHNob3dIZWxwQW5kRXhpdCk7CgpARVhQT1JUX09LID0gcXcoICk7CiVFWFBP
UlRfVEFHUyA9IChhbGwgPT4gW0BFWFBPUlRfT0tdKTsKCiNteSAkVkVSU0lPTiA9IHNwcmlu
dGYoIiVkLiVkIiwgcSRSZXZpc2lvbjogMS4xICQgPX4gLyhcZCspXC4oXGQrKS8pOwpteSAk
VkVSU0lPTiA9ICIwLjAuMSI7CgoKIyBmdW5jdGlvbiBmb3IgbG93Y2FzaW5nIHBhY2thZ2Ug
bmFtZXM6CnN1YiBsb3dlckNhc2UgewogIG15ICRuYW1lID0gc2hpZnQ7CiNteSAkb2xkbmFt
ZT0kbmFtZTsKICAkbmFtZSA9fiB0ci9bQS1aXS9bYS16XS87CiAgJG5hbWUgPX4gcy8oXGQq
KS0oXGQpLyQxXC4kMi87CiNwcmludCAibG93ZXJDYXNlOiAkb2xkbmFtZSAtPiAkbmFtZVxu
IjsKICByZXR1cm4gJG5hbWU7Cn0KCgojIHJlY3Vyc2l2ZWx5IGRldGVybWluZSBkZXB0aCBv
ZiBwYWNrYWdlIGluIGRlcGVuZGVuY3kgZ3JhcGgKIyBpbnB1dCBhcmd1bWVudCBpcyBhIHBh
Y2thZ2UgbmFtZSwgcmV0dXJuIGNvZGUgaXMgdGhlIGRlcGVuZGVuY3kgbGV2ZWwKc3ViIGdl
dERlcHRoKCQkKSB7CiAgbXkgKCRwa2csICRhcmcpID0gQF87CiAgcmV0dXJuIDAgdW5sZXNz
IGRlZmluZWQoJHBrZy0+eyRhcmd9KSBhbmQgZGVmaW5lZCgkcGtnLT57JGFyZ317ZGVwZW5k
ZW5jaWVzfSk7CiAgbXkgJGRlcHRoID0gMDsKICBmb3JlYWNoIG15ICRkZXAgKEB7JHBrZy0+
eyRhcmd9e2RlcGVuZGVuY2llc319KSB7CiAgICBteSAkZCA9IGdldERlcHRoKCRwa2csICRk
ZXApICsgMTsKICAgICRkZXB0aD0kZCBpZiAkZD4kZGVwdGg7CiAgfQogIHJldHVybiAkZGVw
dGg7Cn0KCgpzdWIgZ2V0QXJjaGl0ZWN0dXJlKCQkKSB7CiAgbXkgKCR0YXJiYWxsLCAkYmlu
YXJjaCkgPSBAXzsKICBteSAkYXJjaCA9ICJhbGwiOwogIG9wZW4oUElQRSwgInRhciB0Znog
JHRhcmJhbGwgMj4mMSB8Iikgb3IgCiAgICBkaWUgIkNhbm5vdCBydW4gdGFyKDEpIG9uICR0
YXJiYWxsXG4iOwogIHdoaWxlICg8UElQRT4pIHsKICAgIGlmICgvXi4qXC4oW2NoZkNdfGNw
cHxjYykkLykgewogICAgICAkYXJjaCA9ICRiaW5hcmNoOwogICAgfQogIH0KICByZXR1cm4o
JGFyY2gpOwp9CgoKc3ViIHdyaXRlUnVsZXMoJCQpIHsKICBteSAoJHBrZywgJG1haW50YWlu
ZXIpID0gQF87CgogIG15ICRmaWxlID0gJHBrZy0+e0RlYkRpcn0gLiAiL2RlYmlhbi9ydWxl
cyI7CiAgc3lzb3BlbihGSUxFLCAkZmlsZSAsIE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fRUNY
TCwgMDc1NSkKICAgIG9yIGRpZSAiY2Fubm90IG9wZW4gJGZpbGUiOwoKICBwcmludCAiZ2Vu
ZXJhdGluZyBydWxlcyAuLi5cbiIgaWYgJG1haW46OnZlcmJvc2U7CiMgIG15ICRub3cgPSBQ
T1NJWDo6c3RyZnRpbWUgIiVhICViICVlICVZICVIOiVNOiVTICVaIiwgbG9jYWx0aW1lOwog
IG15ICRub3cgPSBQT1NJWDo6c3RyZnRpbWUgIiVhICViICVlICVZICIsIGxvY2FsdGltZTsK
ICBwcmludCBGSUxFIDw8RU9UCiMhL3Vzci9iaW4vbWFrZSAtZgojICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBtYWtlZmlsZSAt
Ki0KIyBkZWJpYW4vcnVsZXMgZmlsZSBmb3IgdGhlIERlYmlhbi9HTlUgTGludXggcGFja2Fn
ZSBcJ3ItYmlvYy0kcGtnLT57RGViTmFtZX1cJwojIENvcHlyaWdodCAyMDA0IGJ5ICRtYWlu
dGFpbmVyCiMKIyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBvbiAkbm93IGJ5IEJJT0MyREVC
ICRWRVJTSU9OCgppbmNsdWRlIC91c3Ivc2hhcmUvY2Ricy8xL3J1bGVzL2RlYmhlbHBlci5t
awppbmNsdWRlIC91c3Ivc2hhcmUvY2Ricy8xL2NsYXNzL2xhbmdjb3JlLm1rCgojIFdlIG5l
ZWQgdGhlIEJJT0MgKHVwc3RyZWFtKSBuYW1lIAojI2Jpb2NOYW1lICAgICAgIDo9IFwkKHNo
ZWxsIGdyZXAgXCJeUGFja2FnZTpcXFx8XkJ1bmRsZTpcIiBERVNDUklQVElPTiB8IGF3ayAi
e3ByaW50IFwkMn0iKQpiaW9jTmFtZSAgICAgICAgOj0gXCQoc2hlbGwgZ3JlcCBcIl5QYWNr
YWdlOlxcXHxeQnVuZGxlOlwiIERFU0NSSVBUSU9OIHwgc2VkICdzL1tcXHQgXS8vZycgfCBj
dXQgLWQ6IC1mMikKIyBhbmQgd2UgbmVlZCB0byBidWlsZCBhIERlYmlhbiBQb2xpY3ktY29u
Zm9ybWFudCBsb3dlci1jYXNlIHBhY2thZ2UgbmFtZQpiaW9jTmFtZUxDICAgICAgOj0gXCQo
c2hlbGwgZWNobyBcJChiaW9jTmFtZSkgfCB0ciAiW0EtWl0iICJbYS16XSIgKQojIHdoaWNo
IHdlIGNhbiB1c2UgdG8gYnVpbGQgdGhlIHBhY2thZ2UgZGlyZWN0b3J5IApwYWNrYWdlICAg
ICAgICAgOj0gci1iaW9jLVwkKGJpb2NOYW1lTEMpCiMgd2hpY2ggd2UgdXNlIGZvciB0aGUg
dG8tYmUtaW5zdGFsbGVkLWluIGRpcmVjdG9yeQpkZWJSbGliICAgICAgICAgOj1cJChDVVJE
SVIpL2RlYmlhbi9cJChwYWNrYWdlKS91c3IvbGliL1Ivc2l0ZS1saWJyYXJ5Cgpjb21tb24t
aW5zdGFsbC1pbmRlcDo6IFJfYW55X2FyY2gKY29tbW9uLWluc3RhbGwtYXJjaDo6IFJfYW55
X2FyY2gKClJfYW55X2FyY2g6CglkaF9pbnN0YWxsZGlycyAgICAgICAgICB1c3IvbGliL1Iv
c2l0ZS1saWJyYXJ5CglSIENNRCBJTlNUQUxMIC1sIFwkKGRlYlJsaWIpIC4KCSMjcm0gLXJm
IGRlYmlhbi9cJChiaW9jTmFtZSkKCSMjbWtkaXIgLXAgZGViaWFuL1wkKGJpb2NOYW1lKQoJ
IyNmaW5kIC4gLW5vdCAtcGF0aCAiLi9kZWJpYW4qIiB8IGNwaW8gLXAgLW0gZGViaWFuL1wk
KGJpb2NOYW1lKQoJIyNjZCBkZWJpYW4gJiYgUiBDTUQgY2hlY2sgXCQoYmlvY05hbWUpICYm
IHJtIC1yZiBcJChiaW9jTmFtZSkKCS1ybSAtdmYgXCQoZGViUmxpYikvUi5jc3MgXCQoZGVi
UmxpYikvXCQoYmlvY05hbWUpL0NPUFlJTkcgCgllY2hvICJiaW9jTmFtZSBpcyBcJChiaW9j
TmFtZSkiCgpFT1QKOwogIGNsb3NlKEZJTEUpOwogIGNobW9kKDA3NTUsICRmaWxlKSBvciBk
aWUgIkNhbm5vdCBjaG1vZCAkZmlsZVxuIjsKCn0KCgpzdWIgd3JpdGVDb25maWcoJCQkKSB7
CiAgbXkgKCRwa2csICRtYWludGFpbmVyLCAkYmluYXJjaCkgPSBAXzsKICAjcHJpbnQgRHVt
cGVyKFwkcGtnKTsKICBteSAkZmlsZSA9ICRwa2ctPntEZWJEaXJ9IC4gIi9kZWJpYW4vY29u
dHJvbCI7CiAgc3lzb3BlbihGSUxFLCAkZmlsZSAsIE9fV1JPTkxZIHwgT19DUkVBVCB8IE9f
RUNYTCwgMDY0NCkKICAgIG9yIGRpZSAiY2Fubm90IG9wZW4gJGZpbGUiOwogIHByaW50ICJn
ZW5lcmF0aW5nIGNvbnRyb2wgLi4uXG4iIGlmICRtYWluOjp2ZXJib3NlOwoKICAkYXJjaD0i
YWxsIjsKICAkZmlsZWFyY2g9ImFsbCI7CiAgJGFyY2hkZXBzPSIiOwogICRpbmRlcD0iLUlu
ZGVwIjsKICBpZiAoJHBrZy0+e0RlYkFyY2h9IGVxICRiaW5hcmNoKSB7CiAgICAkYXJjaCA9
ICJhbnkiOwogICAgJGZpbGVhcmNoID0gJGJpbmFyY2g7CiAgICAkYXJjaGRlcHMgPSAiXCR7
c2hsaWJzOkRlcGVuZHN9LCAiOwogICAgJGluZGVwPSIiOwogIH0KCiAgJGRwcz0iIjsKICBm
b3JlYWNoICRkZXAgKEB7JHBrZy0+e2RlYmlhbmRlcGVuZGVuY2llc319KSB7CiAgICAkZHBz
ID0gJGRwcyAuICIsICIgLiAkZGVwOwogIH0KCiAgJGJkcHM9IiI7CiAgZm9yZWFjaCAkZGVw
IChAeyRwa2ctPntkZWJpYW5idWlsZGRlcGVuZGVuY2llc319KSB7CiAgICAkYmRwcyA9ICRi
ZHBzIC4gIiwgIiAuICRkZXA7CiAgfQoKICBwcmludCBGSUxFIDw8RU9UClNvdXJjZTogJHBr
Zy0+e0RlYk5hbWV9ClNlY3Rpb246IG1hdGgKUHJpb3JpdHk6IG9wdGlvbmFsCk1haW50YWlu
ZXI6ICRtYWludGFpbmVyClN0YW5kYXJkcy1WZXJzaW9uOiAzLjYuMS4xCkJ1aWxkLURlcGVu
ZHMkaW5kZXA6IHItYmFzZS1kZXYgKD4+IDEuOS4wKSwgZGViaGVscGVyICg+PiAzLjAuMCks
IGNkYnMgJGJkcHMKClBhY2thZ2U6IHItYmlvYy0kcGtnLT57RGViTmFtZX0KQXJjaGl0ZWN0
dXJlOiAkYXJjaApEZXBlbmRzOiAkYXJjaGRlcHMgci1iYXNlLWNvcmUgJGRwcwpFT1QKOwoK
ICAkVGV4dDo6V3JhcDo6Y29sdW1ucyA9IDcyOwkjIHdyYXAgdGhlIERlc2NyaXB0aW9uIHBl
ciBEZWJpYW4gUG9saWN5CgogIGlmIChsZW5ndGgoJHBrZy0+e1RpdGxlfSkgPCA1MCkgewog
ICAgcHJpbnQgRklMRSAiRGVzY3JpcHRpb246IEdOVSBSIHBhY2thZ2UgXCIkcGtnLT57VGl0
bGV9XCJcbiI7CiAgfSBlbHNlIHsKICAgIHByaW50IEZJTEUgIkRlc2NyaXB0aW9uOiBHTlUg
UiBwYWNrYWdlIFwiIiAuCiAgICAgIHN1YnN0cigkcGtnLT57VGl0bGV9LCAwLCA1MCksICIu
Li5cIlxuIjsKICAgIHByaW50IEZJTEUgd3JhcCgiICIsICIgIiwgJHBrZy0+e1RpdGxlfSwg
Ii5cbiIpOwogIH0KCiAgJGRlc2MgPSAkcGtnLT57RGVzY3JpcHRpb259OwogICMgIGlmICgh
ZGVmaW5lZCgkcGtnLT57Q29udGFpbnN9KSkgewogICN9IGVsc2UgewogICMgICRkZXNjID0g
JHBrZy0+e0J1bmRsZURlc2NyaXB0aW9ufTsKICAjfQogICRkZXNjID1+IHMvXG4vLzsKCiAg
cHJpbnQgRklMRSB3cmFwKCIgIiwgIiAiLCAkZGVzYywgIlxuIik7CiAgcHJpbnQgRklMRSAi
IC5cbiI7CiAgcHJpbnQgRklMRSB3cmFwKCIgIiwgIiAiLCAiQXV0aG9yKHMpOiAiLCAkcGtn
LT57QXV0aG9yfSwgIlxuIik7CiMgIHByaW50IEZJTEUgd3JhcCgiICIsICIgIiwgIkRhdGU6
ICIsICRwa2ctPntEYXRlfSwgIlxuIik7CgogIGlmIChkZWZpbmVkKCRwa2ctPntVUkx9KSBh
bmQgKCRwa2ctPntVUkx9IG5lICJOQSIpKSB7CSMgVVJMIGZyb20gREVTQ1JJUFRJT046CiAg
ICBwcmludCBGSUxFICIgLlxuIjsKICAgIHByaW50IEZJTEUgd3JhcCgiICIsICIgIiwgIlVS
TDoiLCAkcGtnLT57VVJMfSwgIlxuIik7CiAgfQoKICBjbG9zZShGSUxFKTsKfQoKCgpzdWIg
d3JpdGVDb3B5cmlnaHQoJCQpIHsKICBteSAoJHBrZywgJG1haW50YWluZXIpID0gQF87Cgog
IGlmKCFkZWZpbmVkKCgkcGtnLT57TGljZW5zZX0pKSkgewogICAgJGxpY2Vuc2U9InVua25v
d24iOwogIH0gZWxzZSB7CiAgICAkbGljZW5zZT0kcGtnLT57TGljZW5zZX07CiAgICAkbGlj
ZW5zZSA9fiBzL1xuLy9nOwogIH0KICBteSAkZmlsZSA9ICRwa2ctPntEZWJEaXJ9IC4gIi9k
ZWJpYW4vY29weXJpZ2h0IjsKICBzeXNvcGVuKEZJTEUsICRmaWxlICwgT19SRFdSIHwgT19D
UkVBVCB8IE9fRUNYTCwgMDY0NCkKICAgIG9yIGRpZSAiY2Fubm90IG9wZW4gJGZpbGUiOwog
IHByaW50ICJnZW5lcmF0aW5nIGNvcHlyaWdodCAuLi5cbiIgaWYgJG1haW46OnZlcmJvc2U7
CiAgcHJpbnQgRklMRSA8PEVPVApUaGlzIGlzIHRoZSBEZWJpYW4gR05VL0xpbnV4IHItYmlv
Yy0kcGtnLT57RGViTmFtZX0gcGFja2FnZSBvZiAkcGtnLT57UGFja2FnZX0uCkl0IHdhcyB3
cml0dGVuIGJ5ICRwa2ctPntBdXRob3J9LgoKVGhpcyBwYWNrYWdlIHdhcyBjcmVhdGVkIGJ5
ICRtYWludGFpbmVyCnVzaW5nIHRoZSBhdXRvbWF0ZWQgYnVpbGQgc2NyaXB0IGJpb2MyZGVi
IHZlcnNpb24gJFZFUlNJT04uIEJpb2MyZGViIAppcyBhIG1vZGlmaWVkIGFuZCBleHRlbmRl
ZCB2ZXJzaW9uIG9mIEFsYnJlY2h0IEdlYmhhcmR0J3MgYnVpbGQgc2NyaXB0CglodHRwOi8v
d3d3Lm1hdGgudW5pLWtsdS5hYy5hdC9+YWdlYmhhcmQvYnVpbGQtUi1jb250cmliLWRlYnMu
cGwKVGhlIHBhY2thZ2Ugc291cmNlcyB3ZXJlIGRvd25sb2FkZWQgZnJvbSAKICAgICAgICBo
dHRwOi8vd3d3LmJpb2NvbmR1Y3Rvci5vcmcvCnVzaW5nIGZhY2lsaXRpZXMgaW4gdGhlIERl
YmlhbiBwYWNrYWdlIHItYmlvYy1yZXBvc3Rvb2xzLgoKVGhlIHBhY2thZ2Ugd2FzIHJlbmFt
ZWQgZnJvbSBpdHMgdXBzdHJlYW0gbmFtZSBcJyRwa2ctPntQYWNrYWdlfVwnIHRvIFwnci1i
aW9jLSRwa2ctPntEZWJOYW1lfVwnCnRvIGZpdCB0aGUgcGF0dGVybiBvZiBCSU9DIHBhY2th
Z2VzIGZvciBSLgoKVGhlIENvcHlyaWdodCwgYXMgYXNzZXJ0ZWQgaW4gdGhlIERFU0NSSVBU
SU9OIGZpbGUsIGlzOgokbGljZW5zZQoKT24gYSBEZWJpYW4gR05VL0xpbnV4IHN5c3RlbSwg
Y29tbW9uIGxpY2Vuc2VzIGFyZSBpbmNsdWRlZCBpbiB0aGUgZGlyZWN0b3J5Ci91c3Ivc2hh
cmUvY29tbW9uLWxpY2Vuc2VzLy4KCkZvciByZWZlcmVuY2UsIHRoZSB1cHN0cmVhbSBERVND
UklQVElPTiBjYW4gYmUgZm91bmQgYXQKL3Vzci9saWIvUi9zaXRlLWxpYnJhcnkvJHBrZy0+
e1BhY2thZ2V9L0RFU0NSSVBUSU9OCgpFT1QKOwojICcKICBjbG9zZShGSUxFKTsKfQoKCgpz
dWIgd3JpdGVSZWFkbWUoJCQpIHsKICBteSAoJHBrZywgJG1haW50YWluZXIpID0gQF87Cgog
IG15ICRmaWxlID0gJHBrZy0+e0RlYkRpcn0gLiAiL2RlYmlhbi9SRUFETUUuRGViaWFuIjsK
ICBzeXNvcGVuKEZJTEUsICRmaWxlICwgT19SRFdSIHwgT19DUkVBVCB8IE9fRUNYTCwgMDY0
NCkKICAgIG9yIGRpZSAiY2Fubm90IG9wZW4gJGZpbGUiOwogIHByaW50ICJnZW5lcmF0aW5n
IFJFQURNRS5EZWJpYW4gLi4uXG4iIGlmICRtYWluOjp2ZXJib3NlOwogICRkYXRlID0gUE9T
SVg6OnN0cmZ0aW1lICIlYSwgJWUgJWIgJVkgJUg6JU06JVMgJXoiLCBsb2NhbHRpbWU7CiAg
cHJpbnQgRklMRSA8PEVPVApyLWJpb2MtJHBrZy0+e0RlYk5hbWV9IGZvciBEZWJpYW4KClRo
aXMgRGViaWFuIHBhY2thZ2Ugd2FzIGNyZWF0ZWQgZnJvbSBzb3VyY2VzIG9uIHRoZSBCaW9D
b25kdWN0b3IKd2Vic2l0ZSBhdCB3d3cuYmlvY29uZHVjdG9yLm9yZy4KCgpUaGUgcGFja2Fn
ZSB3YXMgYnVpbHQgdXNpbmcgdGhlIHNjcmlwdCBiaW9jMmRlYiwgd2hpY2ggd2FzIGRlcml2
ZWQKZnJvbSBodHRwOi8vd3d3Lm1hdGgudW5pLWtsdS5hYy5hdC9+YWdlYmhhcmQvYnVpbGQt
Ui1jb250cmliLWRlYnMucGwKYnkgQWxicmVjaHQgR2ViaGFyZC4KCiAtLSAkbWFpbnRhaW5l
ciAgJGRhdGUKRU9UCjsKICBjbG9zZShGSUxFKTsKfQoKCnN1YiB3cml0ZUNoYW5nZWxvZygk
JCkgewogIG15ICgkcGtnLCAkbWFpbnRhaW5lcikgPSBAXzsKCiAgbXkgJGZpbGUgPSAkcGtn
LT57RGViRGlyfSAuICIvZGViaWFuL2NoYW5nZWxvZyI7CiAgc3lzb3BlbihGSUxFLCAkZmls
ZSAsIE9fUkRXUiB8IE9fQ1JFQVQgfCBPX0VDWEwsIDA2NDQpCiAgICBvciBkaWUgImNhbm5v
dCBvcGVuICRmaWxlIjsKICAkZGF0ZSA9IFBPU0lYOjpzdHJmdGltZSAiJWEsICVlICViICVZ
ICVIOiVNOiVTICV6IiwgbG9jYWx0aW1lOwogIHByaW50ICJnZW5lcmF0aW5nIGNoYW5nZWxv
ZyAuLi5cbiIgaWYgJG1haW46OnZlcmJvc2U7CiAgcHJpbnQgRklMRSA8PEVPVAokcGtnLT57
RGViTmFtZX0gKCRwa2ctPntEZWJSZWxlYXNlfSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93Cgog
ICogbWVjaGFuaWNhbGx5IGdlbmVyYXRlZCB1c2luZyBiaW9jMmRlYiAkVkVSU0lPTgoKIC0t
ICRtYWludGFpbmVyICAkZGF0ZQpFT1QKOwogIGNsb3NlKEZJTEUpOwp9CgoKCnN1YiB3cml0
ZVBvc3RpbnN0KCQkKSB7CiAgbXkgKCRwa2csICRtYWludGFpbmVyKSA9IEBfOwoKICBteSAk
ZmlsZSA9ICRwa2ctPntEZWJEaXJ9IC4gIi9kZWJpYW4vcG9zdGluc3QiOwogIHN5c29wZW4o
RklMRSwgJGZpbGUgLCBPX1JEV1IgfCBPX0NSRUFUIHwgT19FQ1hMLCAwNjQ0KQogICAgb3Ig
ZGllICJjYW5ub3Qgb3BlbiAkZmlsZSI7CgogIHByaW50ICJnZW5lcmF0aW5nIHBvc3RpbnN0
IC4uLlxuIiBpZiAkbWFpbjo6dmVyYm9zZTsKICBwcmludCBGSUxFIDw8RU9UCiMhL2Jpbi9z
aAojIAkJCQkJCQktKi0gbWFrZWZpbGUgLSotCiMgZGViaWFuL3Bvc3RpbnN0IGZpbGUgZm9y
IHRoZSBEZWJpYW4vR05VIExpbnV4IHItYmlvYy0kcGtnLT57RGViTmFtZX0gcGFja2FnZQoj
IENvcHlyaWdodCAyMDA0IGJ5ICRtYWludGFpbmVyCgpzZXQgLWUKCiNERUJIRUxQRVIjCgpj
YXNlICJcJDEiIGluCiAgICBjb25maWd1cmUpCglSIENNRCBwZXJsIC91c3IvbGliL1Ivc2hh
cmUvcGVybC9idWlsZC1oZWxwLnBsIC0taHRtbGxpc3RzCiAgICAgICAgOzsKICAgIGFib3J0
LXVwZ3JhZGV8YWJvcnQtcmVtb3ZlfGFib3J0LWRlY29uZmlndXJlKQogICAgICAgIDs7CiAg
ICAqKQogICAgICAgIGVjaG8gInBvc3RpbnN0IGNhbGxlZCB3aXRoIHVua25vd24gYXJndW1l
bnQgXCdcJDFcJyIgPiYyCiAgICAgICAgOzsKZXNhYwoKZXhpdCAwCgpFT1QKOwogIGNsb3Nl
KEZJTEUpOwogIGNobW9kKDA3NTUsICRmaWxlKSBvciBkaWUgIkNhbm5vdCBjaG1vZCAkZmls
ZVxuIjsKfQoKCnN1YiB3cml0ZVBvc3RybSgkJCkgewogIG15ICgkcGtnLCAkbWFpbnRhaW5l
cikgPSBAXzsKCiAgbXkgJGZpbGUgPSAkcGtnLT57RGViRGlyfSAuICIvZGViaWFuL3Bvc3Ry
bSI7CiAgc3lzb3BlbihGSUxFLCAkZmlsZSAsIE9fUkRXUiB8IE9fQ1JFQVQgfCBPX0VDWEws
IDA2NDQpCiAgICBvciBkaWUgImNhbm5vdCBvcGVuICRmaWxlIjsKCiAgcHJpbnQgImdlbmVy
YXRpbmcgcG9zdHJtIC4uLlxuIiBpZiAkbWFpbjo6dmVyYm9zZTsKICBwcmludCBGSUxFIDw8
RU9UCiMhL2Jpbi9zaAojIAkJCQkJCQktKi0gbWFrZWZpbGUgLSotCiMgZGViaWFuL3Bvc3Rp
bnN0IGZpbGUgZm9yIHRoZSBEZWJpYW4vR05VIExpbnV4IHItYmlvYy0kcGtnLT57RGViTmFt
ZX0gcGFja2FnZQojIENvcHlyaWdodCAyMDA0IGJ5ICRtYWludGFpbmVyCgpzZXQgLWUKCiNE
RUJIRUxQRVIjCgpjYXNlICJcJDEiIGluCiAgICB1cGdyYWRlfHJlbW92ZXxwdXJnZSkKCVIg
Q01EIHBlcmwgL3Vzci9saWIvUi9zaGFyZS9wZXJsL2J1aWxkLWhlbHAucGwgLS1odG1sbGlz
dHMKICAgICAgICA7OwogICAgZmFpbGVkLXVwZ3JhZGV8YWJvcnQtaW5zdGFsbHxhYm9ydC11
cGdyYWRlfGRpc2FwcGVhcikKICAgICAgICA7OwogICAgKikKICAgICAgICBlY2hvICJwb3N0
cm0gY2FsbGVkIHdpdGggdW5rbm93biBhcmd1bWVudCBcJ1wkMVwnIiA+JjIKICAgICAgICA7
Owplc2FjCgoKZXhpdCAwCgpFT1QKOwogIGNsb3NlKEZJTEUpOwogIGNobW9kKDA3NTUsICRm
aWxlKSBvciBkaWUgIkNhbm5vdCBjaG1vZCAkZmlsZVxuIjsKfQoKCgpzdWIgd3JpdGVGaWxl
cygkJCkgewkJIyBub3QgcmVhbGx5IG5lZWRlZAogIG15ICgkcGtnLCAkbWFpbnRhaW5lcikg
PSBAXzsKCiAgbXkgJGZpbGUgPSAkcGtnLT57RGViRGlyfSAuICIvZGViaWFuL2ZpbGVzIjsK
ICBzeXNvcGVuKEZJTEUsICRmaWxlICwgT19SRFdSIHwgT19DUkVBVCB8IE9fRUNYTCwgMDY0
NCkgCiAgICBvciBkaWUgImNhbm5vdCBvcGVuICRmaWxlIjsKICBwcmludCAiZ2VuZXJhdGlu
ZyBmaWxlcyAuLi5cbiIgaWYgJG1haW46OnZlcmJvc2U7CgogIGlmIChkZWZpbmVkKCRwa2ct
PntDb250YWluc30pKSB7CiAgICBAc3VicGFja2FnZXMgPSBzcGxpdCgvXHMrLywkcGtnLT57
Q29udGFpbnN9KTsKICB9CgogIGlmICghZGVmaW5lZCgkcGtnLT57Q29udGFpbnN9KSkgewog
ICAgcHJpbnQgRklMRSA8PEVPVAokcHJlZml4L2xpYi9SL3NpdGUtbGlicmFyeS8kcGtnLT57
UGFja2FnZX0KRU9UCiAgICAgIDsKICB9IGVsc2UgewogICAgZm9yZWFjaCAkc3ViZGlyIChA
c3VicGFja2FnZXMpIHsKICAgICAgcHJpbnQgRklMRSA8PEVPVAokcHJlZml4L2xpYi9SL3Np
dGUtbGlicmFyeS8kc3ViZGlyCkVPVAoJOwogICAgfQogIH0KICBjbG9zZShGSUxFKTsKfQoK
c3ViIHNob3dIZWxwQW5kRXhpdCgpIHsKICBteSAkbmFtZSA9ICJiaW9jMmRlYiI7CiAgcHJp
bnQgU1RERVJSICIKJG5hbWUgLS0gQ29udmVydCBSIHBhY2thZ2VzIGZyb20gQklPQyBpbnRv
IERlYmlhbiBwYWNrYWdlcwoKVXNhZ2U6CiAgICAkbmFtZSBbb3B0aW9uc10KCk9wdGlvbnM6
CiAgICAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgc2hvdyB0aGlzIGhlbHAKICAgIC0t
dmVyYm9zZSAgICAgICAgICAgICAgICAgICBtb3JlIHZlcmJvc2Ugb3BlcmF0aW9uIAogICAg
LS1kZWJ1ZwkJICAgICAgICBldmVuIG1vcmUgdmVyYm9zZSBmb3IgZGVidWdnaW5nIHB1cnBv
c2VzCgpFeGFtcGxlOgogICAgJG5hbWUgLS12ZXJib3NlClxuIjsKICBleGl0IDE7Cn0KCjE7
CQkJCSMgcmVxdWlyZWQgZm9yIHBhY2thZ2UgZmlsZQo=
--Bidwr6HYBm
Content-Type: text/plain; charset=us-ascii
Content-Description: .signature
Content-Transfer-Encoding: 7bit


-- 
Better to have an approximate answer to the right question than a precise 
answer to the wrong question.  --  John Tukey as quoted by John Chambers

--Bidwr6HYBm--