[Mailman-Developers] CVS error + latest mailman-cmdhandler.patch

Balazs Nagy julian7@kva.hu
Mon, 12 Oct 1998 11:46:01 +0200 (CEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---456965764-1997860193-908185561=:9903
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hiyas,

There's an error in anon cvs:

cvs server: cannot open /projects/cvsroot/mailman/templates/help.txt,v:
Permission denied
cvs server: nothing known about mailman/templates/help.txt

BTW here's my latest patch against the current MailCommandHandler.py and
MailList.py and it also avaiable via www
(www.kva.hu/~mailman/patches/required/mailman-cmdhandler.patch).  Please
beware of mm_cfg.LISTINFO_CGI and mm_cgi.ADMIN_CGI at the end of
MailCommandHandler.py.
-- 
   Linux Supporting Center -- Red Hat Qmail packages -- http://lsc.kva.hu
      PGP 0x1DE3631D / A8 B4 92 EE 1F 55 27 C8  86 64 9C 42 41 A4 BD B8


---456965764-1997860193-908185561=:9903
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="mailman-cmdhandler.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.02.9810121146010.9903@krondor.kva.hu>
Content-Description: mailman-cmdhandler.patch
Content-Disposition: attachment; filename="mailman-cmdhandler.patch"

LS0tIG1haWxtYW4ub3JpZy9NYWlsbWFuL01haWxDb21tYW5kSGFuZGxlci5w
eQlTYXQgT2N0IDEwIDIyOjM5OjQ1IDE5OTgNCisrKyBtYWlsbWFuL01haWxt
YW4vTWFpbENvbW1hbmRIYW5kbGVyLnB5CU1vbiBPY3QgMTIgMTE6MzU6MDEg
MTk5OA0KQEAgLTUxLDMgKzUxLDMgQEANCiAJICAgICAgIH0NCi1vcHRpb25f
aW5mbyA9IHsgJ2RpZ2VzdCcgOiAwLA0KK29wdGlvbl9pbmZvID0gew0KIAkJ
J25vbWFpbCcgOiBtbV9jZmcuRGlzYWJsZURlbGl2ZXJ5LA0KQEAgLTYwLDMg
KzYwLDYgQEANCiBjbGFzcyBNYWlsQ29tbWFuZEhhbmRsZXI6DQorDQogICAg
IGRlZiBfX2luaXRfXyhzZWxmKToNCisJaW1wb3J0IHR5cGVzDQorCXNlbGYu
ZW5hYmxlZCA9IDANCiAJc2VsZi5fcmVzcG9uc2VfYnVmZmVyID0gJycNCkBA
IC03Myw0ICs3NiwyMiBAQA0KIAkgICAgJ3Bhc3N3b3JkJyA6IHNlbGYuUHJv
Y2Vzc1Bhc3N3b3JkQ21kLA0KKwkgICAgJ2VuYWJsZScgOiBzZWxmLlByb2Nl
c3NFbmFibGVDbWQsDQorCSAgICAnZGlzYWJsZScgOiBzZWxmLlByb2Nlc3NE
aXNhYmxlQ21kLA0KKwkgICAgJ2VkaXQnIDogc2VsZi5Qcm9jZXNzRWRpdENt
ZCwNCisJICAgICdwdXQnIDogc2VsZi5Qcm9jZXNzUHV0Q21kLA0KKwkgICAg
J3NldGF0dHInOiBzZWxmLlByb2Nlc3NTZXRhdHRyQ21kLA0KIAkgICAgfQ0K
KwlzZWxmLl9jbWRfcG9vbGVkX2Rpc3BhdGNoID0gKA0KKwkgICAgJ3B1dCcs
DQorCSAgICApDQogICAgICAgICBzZWxmLl9fTm9NYWlsQ21kUmVzcG9uc2Ug
PSAwDQorCXNlbGYuX0VkaXRGaWxlcyA9IHt9DQorCXNlbGYuX2NvbmZpZ19p
bmZvID0gc2VsZi5HZXRDb25maWdJbmZvKCkNCisJZm9yIGkgaW4gc2VsZi5f
Y29uZmlnX2luZm8ua2V5cygpOg0KKwkgICAgZm9yIG8gaW4gc2VsZi5fY29u
ZmlnX2luZm9baV06DQorCQlpZiB0eXBlKG8pICE9IHR5cGVzLlN0cmluZ1R5
cGU6DQorCQkgICAgaWYgbGVuKG8pID4gNToNCisJCQlhbGwgPSBvWzVdDQor
CQkgICAgZWxzZToNCisJCQlhbGwgPSAiIg0KKwkJICAgIHNlbGYuX0VkaXRG
aWxlc1tvWzBdXSA9IFtvWzFdLCBpLCBvWzRdLCBhbGxdDQogDQpAQCAtMTIy
LDggKzE0MywxMSBAQA0KICAgICAgICAgcHJvY2Vzc2VkID0ge30gICAgICAg
ICAgICAgICAgICAgICAgIyBGb3IgYXZvaWRpbmcgcmVkdW5kYW5jaWVzLg0K
LSAgICAgICAgbWF4bGluZXMgPSBtbV9jZmcuREVGQVVMVF9NQUlMX0NPTU1B
TkRTX01BWF9MSU5FUw0KKyAgICAgICAgbWF4Y21kcyA9IG1tX2NmZy5ERUZB
VUxUX01BSUxfQ09NTUFORFNfTUFYX0xJTkVTDQorCWNtZGxpbmVzID0gMA0K
KwljbWRtb2RlID0gMA0KKwlwb29sID0gJycNCiAJZm9yIGxpbmVjb3VudCBp
biByYW5nZShsZW4obGluZXMpKToNCiAJICAgIGxpbmUgPSBzdHJpbmcuc3Ry
aXAobGluZXNbbGluZWNvdW50XSkNCi0JICAgIGlmIG5vdCBsaW5lOg0KKwkg
ICAgaWYgbm90IGxpbmUgYW5kIG5vdCBjbWRtb2RlOg0KIAkJY29udGludWUN
Ci0gICAgICAgICAgICBpZiBsaW5lY291bnQgPiBtYXhsaW5lczoNCisgICAg
ICAgICAgICBpZiBjbWRsaW5lcyA+IG1heGNtZHM6DQogICAgICAgICAgICAg
ICAgIHNlbGYuQWRkVG9SZXNwb25zZSgiXG4iKQ0KQEAgLTEzNCwyICsxNTgs
MTEgQEANCiAgICAgICAgICAgICAgICAgYnJlYWsNCisJICAgIGlmIGNtZG1v
ZGU6DQorCQlpZiBsaW5lIGluIFsnLUVORC0nLCAnLWVuZC0nXToNCisJCSAg
ICBzZWxmLl9jbWRfZGlzcGF0Y2hbcG9vbGVkX2NtZF0ocG9vbGVkX2FyZ3Ms
IHBvb2wsIG1haWwpDQorCQkgICAgY21kbW9kZSA9IDANCisJCSAgICBwb29s
ID0gJycNCisJCWVsc2U6DQorCQkgICAgcG9vbCA9IHBvb2wgKyBsaW5lc1ts
aW5lY291bnRdICsgIlxuIg0KKwkJY29udGludWUNCisJICAgIGNtZGxpbmVz
ID0gY21kbGluZXMgKyAxDQogCSAgICBzZWxmLkFkZFRvUmVzcG9uc2UoIlxu
Pj4+PiAlcyIgJSBsaW5lKQ0KQEAgLTE1Nyw1ICsxOTAsMTQgQEANCiAgICAg
ICAgICAgICAgICAgICAgIHByb2Nlc3NlZFtjbWRdLmFwcGVuZChhcmdzKQ0K
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY21kX2Rpc3BhdGNoW2NtZF0o
YXJncywgbGluZSwgbWFpbCkNCisJCSAgICBpZiBjbWQgaW4gc2VsZi5fY21k
X3Bvb2xlZF9kaXNwYXRjaDoNCisJCQlwb29sZWRfY21kID0gY21kDQorCQkJ
cG9vbGVkX2FyZ3MgPSBhcmdzDQorCQkJcG9vbGVkX2xpbmUgPSBsaW5lDQor
CQkJY21kbW9kZSA9IDENCisJCSAgICBlbHNlOg0KKyAgICAgICAgICAgICAg
ICAJc2VsZi5fY21kX2Rpc3BhdGNoW2NtZF0oYXJncywgbGluZSwgbWFpbCkN
CisJaWYgY21kbW9kZToNCisJICAgIHNlbGYuX2NtZF9kaXNwYXRjaFtwb29s
ZWRfY21kXShwb29sZWRfYXJncywgcG9vbCwgbWFpbCkNCiAgICAgICAgIGlm
IG5vdCBzZWxmLl9fTm9NYWlsQ21kUmVzcG9uc2U6DQogICAgICAgICAgICAg
c2VsZi5TZW5kTWFpbENtZFJlc3BvbnNlKG1haWwpDQorCXN5cy5leGl0KDAp
DQogDQpAQCAtMTY5LDIgKzIxMSwxMjkgQEANCiANCisgICAgZGVmIFByb2Nl
c3NFbmFibGVDbWQoc2VsZiwgYXJncywgY21kbGluZSwgbWFpbCk6DQorCWlm
IGxlbihhcmdzKSA8PiAxOg0KKwkgICAgc2VsZi5BZGRFcnJvcigiVXNhZ2U6
IGVuYWJsZSA8YWRtaW4gcGFzc3dvcmQ+IikNCisJICAgIHNlbGYuZW5hYmxl
ZCA9IDANCisJICAgIHJldHVybg0KKwl0cnk6DQorCSAgICBzZWxmLkNvbmZp
cm1BZG1pblBhc3N3b3JkKGFyZ3NbMF0pDQorCWV4Y2VwdCBFcnJvcnMuTU1C
YWRQYXNzd29yZEVycm9yOg0KKwkgICAgc2VsZi5BZGRFcnJvcigiSW5jb3Jy
ZWN0IGFkbWluIHBhc3N3b3JkIikNCisJICAgIHNlbGYuZW5hYmxlZCA9IDAN
CisJICAgIHJldHVybg0KKwlzZWxmLmVuYWJsZWQgPSAxDQorCXNlbGYuQWRk
VG9SZXNwb25zZSgiQWRtaW4gY29tbWFuZHMgZW5hYmxlZC4iKQ0KKw0KKyAg
ICBkZWYgUHJvY2Vzc0Rpc2FibGVDbWQoc2VsZiwgYXJncywgY21kbGluZSwg
bWFpbCk6DQorCXNlbGYuZW5hYmxlZCA9IDANCisJc2VsZi5BZGRUb1Jlc3Bv
bnNlKCJBZG1pbiBjb21tYW5kcyBkaXNhYmxlZC4iKQ0KKw0KKyAgICBkZWYg
ZW5hYmxlQ2hlY2soc2VsZik6DQorCWlmIG5vdCBzZWxmLmVuYWJsZWQ6DQor
CSAgICBzZWxmLkFkZEVycm9yKCJFbmFibGUgYWRtaW4gY29tbWFuZHMgZmly
c3QuIikNCisJICAgIHJldHVybiAwDQorCXJldHVybiAxDQorDQorICAgIGRl
ZiBfRWRpdEZpbGUoc2VsZiwgZm5hbWUpOg0KKwlpZiBzZWxmLl9FZGl0Rmls
ZXNbZm5hbWVdWzBdIGluIFttbV9jZmcuUmFkaW8sIG1tX2NmZy5Ub2dnbGVd
Og0KKwkgICAgaWYgZ2V0YXR0cihzZWxmLCBmbmFtZSk6DQorCQl0eHQgPSAi
b24iDQorCSAgICBlbHNlOg0KKwkJdHh0ID0gIm9mZiINCisJICAgIHRleHQg
PSAic2V0YXR0ciAlcz0lcyIgJSAoZm5hbWUsIHR4dCkNCisJZWxpZiBzZWxm
Ll9FZGl0RmlsZXNbZm5hbWVdWzBdID09IG1tX2NmZy5FbWFpbExpc3Q6DQor
CSAgICB0ZXh0ID0gInB1dCAlc1xuJXNcbi1lbmQtIiAlIChmbmFtZSwgc3Ry
aW5nLmpvaW4oZ2V0YXR0cihzZWxmLCBmbmFtZSksIlxuIikpDQorCWVsaWYg
c2VsZi5fRWRpdEZpbGVzW2ZuYW1lXVswXSBpbiBbbW1fY2ZnLkVtYWlsLCBt
bV9jZmcuSG9zdF06DQorCSAgICB0ZXh0ID0gInNldGF0dHIgJXM9JXMiICUg
KGZuYW1lLCBnZXRhdHRyKHNlbGYsIGZuYW1lKSkNCisJZWxpZiBzZWxmLl9F
ZGl0RmlsZXNbZm5hbWVdWzBdID09IG1tX2NmZy5TdHJpbmc6DQorCSAgICB0
ZXh0ID0gInNldGF0dHIgJXM9XCIlc1wiIiAlIChmbmFtZSwgZ2V0YXR0cihz
ZWxmLCBmbmFtZSkpDQorCWVsaWYgc2VsZi5fRWRpdEZpbGVzW2ZuYW1lXVsw
XSA9PSBtbV9jZmcuTnVtYmVyOg0KKwkgICAgdGV4dCA9ICJzZXRhdHRyICVz
PSVkIiAlIChmbmFtZSwgZ2V0YXR0cihzZWxmLCBmbmFtZSkpDQorCWVsc2U6
DQorCSAgICB0ZXh0ID0gInB1dCAlc1xuJXMtZW5kLSIgJSAoZm5hbWUsIGdl
dGF0dHIoc2VsZiwgZm5hbWUpKQ0KKwlyZXR1cm4gdGV4dA0KKw0KKyAgICBk
ZWYgUHJvY2Vzc0VkaXRDbWQoc2VsZiwgYXJncywgY21kbGluZSwgbWFpbCk6
DQorCWlmIG5vdCBzZWxmLmVuYWJsZUNoZWNrKCk6DQorCSAgICBzZWxmLkFk
ZEVycm9yKCJBZG1pbiBjb21tYW5kcyBkaXNhYmxlZC4iKQ0KKwkgICAgcmV0
dXJuDQorCWlmIGxlbihhcmdzKSA8PiAxOg0KKwkgICAgc2VsZi5BZGRFcnJv
cigiVXNhZ2U6IGVkaXQgPHNldHRpbmc+fGFsbCIpDQorCSAgICByZXR1cm4N
CisJaWYgc2VsZi5fRWRpdEZpbGVzLmhhc19rZXkoYXJnc1swXSk6DQorCSAg
ICBzZWxmLkFkZFRvUmVzcG9uc2Uoc2VsZi5fRWRpdEZpbGUoYXJnc1swXSkp
DQorCWVsaWYgYXJnc1swXSA9PSAnYWxsJzoNCisJICAgIGt5cyA9IHNlbGYu
X0VkaXRGaWxlcy5rZXlzKCkNCisJICAgIGt5cy5zb3J0KCkNCisJICAgIGZv
ciBpIGluIGt5czoNCisJCXNlbGYuQWRkVG9SZXNwb25zZShzZWxmLl9FZGl0
RmlsZShpKSkNCisJZWxzZToNCisJICAgIHNlbGYuQWRkRXJyb3IoJ05vIHN1
Y2ggZmlsZS4gIFlvdSBjYW4gY2hvb3NlIGZyb20nKQ0KKwkgICAgc2VsZi5B
ZGRFcnJvcigiJXMiICUgc2VsZi5fRWRpdEZpbGVzLmtleXMoKSkNCisJICAg
IA0KKyAgICBkZWYgRW1haWxDaGVjayhzZWxmLCBhZGRyKToNCisJdHJ5Og0K
KwkgICAgdmFsaWQgPSBVdGlscy5WYWxpZEVtYWlsKGFkZHIpDQorCSAgICBp
ZiB2YWxpZDoNCisJCXJldHVybiAxDQorCSAgICBlbHNlOg0KKwkJcmV0dXJu
IDANCisJZXhjZXB0Og0KKwkgICAgcmV0dXJuIDANCisNCisgICAgZGVmIFBy
b2Nlc3NQdXRDbWQoc2VsZiwgYXJncywgcG9vbCwgbWFpbCk6DQorCWlmIG5v
dCBzZWxmLmVuYWJsZUNoZWNrKCk6DQorCSAgICBzZWxmLkFkZEVycm9yKCJB
ZG1pbiBjb21tYW5kcyBkaXNhYmxlZC4iKQ0KKwkgICAgcmV0dXJuDQorCWlm
IGxlbihhcmdzKSA8PiAxOg0KKwkgICAgc2VsZi5BZGRyRXJyb3IoIlVzYWdl
OiBwdXQgPHNldHRpbmc+IikNCisJICAgIHJldHVybg0KKwlpZiBzZWxmLl9F
ZGl0RmlsZXMuaGFzX2tleShhcmdzWzBdKToNCisJICAgIHR5cGUgPSBzZWxm
Ll9FZGl0RmlsZXNbYXJnc1swXV1bMF0NCisJICAgIGlmIHR5cGUgPT0gbW1f
Y2ZnLkVtYWlsTGlzdDoNCisJCXBvb2wgPSBmaWx0ZXIoc2VsZi5FbWFpbENo
ZWNrLA0KKwkJCW1hcChzdHJpbmcuc3RyaXAsIHN0cmluZy5zcGxpdChwb29s
LCAnXG4nKSkpDQorCSAgICBlbGlmIHR5cGUgIT0gbW1fY2ZnLlRleHQ6DQor
CQlzZWxmLkFkZEVycm9yKCJJbnZhbGlkIHR5cGUgZm9yICVzLiIgJSBhcmdz
WzBdKQ0KKwkJcmV0dXJuDQorCSAgICBzZXRhdHRyKHNlbGYsIGFyZ3NbMF0s
IHBvb2wpDQorCSAgICBzZWxmLlNhdmUoKQ0KKwlzZWxmLkFkZFRvUmVzcG9u
c2UoJ1N1Y2NlZWVkZWQuJykNCisNCisNCisgICAgZGVmIFByb2Nlc3NTZXRh
dHRyQ21kKHNlbGYsIGFyZ3MsIGNtZGxpbmUsIG1haWwpOg0KKwlpZiBub3Qg
c2VsZi5lbmFibGVDaGVjaygpOg0KKwkgICAgc2VsZi5BZGRFcnJvcigiQWRt
aW4gY29tbWFuZHMgZGlzYWJsZWQuIikNCisJICAgIHJldHVybg0KKwl0cnk6
DQorCSAgICByZXR2ID0gcmUubWF0Y2goIl5ccypcUytccysoW15ccz1dKylc
cyo9XHMqXCI/KC4qW15cIl0pXCI/JCIsDQorCQljbWRsaW5lKQ0KKwkgICAg
a2V5LCB2YWwgPSByZXR2Lmdyb3VwKDEsIDIpDQorCWV4Y2VwdDoNCisJICAg
IHNlbGYuQWRkRXJyb3IoIlVzYWdlOiBzZXRhdHRyIDxmaWxlPj08YXR0cmli
dXRlPiIpDQorCSAgICByZXR1cm4NCisgICAgDQorCWlmIHNlbGYuX0VkaXRG
aWxlcy5oYXNfa2V5KGtleSk6DQorCSAgICB0eXBlID0gc2VsZi5fRWRpdEZp
bGVzW2tleV1bMF0NCisJICAgIGlmIHR5cGUgIT0gbW1fY2ZnLlRleHQ6DQor
CQlpZiB0eXBlIGluIFttbV9jZmcuUmFkaW8sIG1tX2NmZy5Ub2dnbGVdOg0K
KwkJICAgIGlmIHZhbCBpbiBbIm9uIiwgInllcyIsICJ0cnVlIiwgIjEiLCAi
eWVwIl06DQorCQkJdmFsID0gMQ0KKwkJICAgIGVsc2U6DQorCQkJdmFsID0g
MA0KKwkJZWxpZiB0eXBlID09IG1tX2NmZy5FbWFpbDoNCisJCSAgICByZXR2
ID0gc3RyaW5nLnN0cmlwKHZhbCkNCisJCSAgICBpZiBub3Qgc2VsZi5FbWFp
bENoZWNrKHZhbCk6DQorCQkJc2VsZi5BZGRFcnJvcigiSW52YWxpZCBlbWFp
bCBhZGRyZXNzICVzIiAlIHJldHYpDQorCQkJcmV0dXJuDQorCQllbGlmIHR5
cGUgPT0gbW1fY2ZnLk51bWJlcjoNCisJCSAgICB2YWwgPSBldmFsKHZhbCkN
CisJCSAgICBpZiBjbWRsaW5lIDwgMDoNCisJCQlzZWxmLkFkZEVycm9yKCJJ
bnZhbGlkIG51bWJlciAlZCIgJSByZXR2KQ0KKwkJCXJldHVybg0KKwkgICAg
c2V0YXR0cihzZWxmLCBrZXksIHZhbCkNCisJICAgIHNlbGYuU2F2ZSgpDQor
CSAgICBzZWxmLkFkZFRvUmVzcG9uc2UoJyVzIHNldCB0byAlcy4nJShrZXks
IHZhbCkpDQorCWVsc2U6DQorCSAgICBzZWxmLkFkZEVycm9yKCJObyBzdWNo
IGZpbGU6ICVzIiAlIGtleSkNCisNCiAgICAgZGVmIFByb2Nlc3NQYXNzd29y
ZENtZChzZWxmLCBhcmdzLCBjbWQsIG1haWwpOg0KQEAgLTIyMywyICszOTIs
OCBAQA0KIAkJcy5BZGRFcnJvcigiJXM6ICAlcyIgJSAob3B0aW9uLCBvZFtv
cHRpb25dKSkNCisNCisJc2VuZGVyID0gc2VsZi5GaW5kVXNlcihtYWlsLkdl
dFNlbmRlcigpKQ0KKwlpZiBub3Qgc2VuZGVyOg0KKwkgICAgc2VsZi5BZGRF
cnJvcigiWW91IGFyZW4ndCBzdWJzY3JpYmVkLiIpDQorCSAgICByZXR1cm4N
CisNCiAJaWYgbGVuKGFyZ3MpIDw+IDM6DQpAQCAtMjM1LDYgKzQxMCwyIEBA
DQogCSAgICB0cnk6DQotCQlzZW5kZXIgPSBzZWxmLkZpbmRVc2VyKG1haWwu
R2V0U2VuZGVyKCkpDQotCQlpZiBub3Qgc2VuZGVyOg0KLQkJICAgIHNlbGYu
QWRkRXJyb3IoIllvdSBhcmVuJ3Qgc3Vic2NyaWJlZC4iKQ0KLQkJICAgIHJl
dHVybg0KIAkJc2VsZi5Db25maXJtVXNlclBhc3N3b3JkKHNlbmRlciwgYXJn
c1syXSkNCkBAIC0yNTEsMyArNDIyLDQgQEANCiAJICAgIHRyeToNCi0JCXNl
bGYuU2V0VXNlckRpZ2VzdChtYWlsLkdldFNlbmRlcigpLCBhcmdzWzJdLCB2
YWx1ZSkNCisJCXNlbGYuQ29uZmlybVVzZXJQYXNzd29yZChzZW5kZXIsIGFy
Z3NbMl0pDQorCQlzZWxmLlNldFVzZXJEaWdlc3QobWFpbC5HZXRTZW5kZXIo
KSwgdmFsdWUpDQogCQlzZWxmLkFkZFRvUmVzcG9uc2UoIlN1Y2NlZWRlZC4i
KQ0KQEAgLTQ0Nyw0MiArNjE5LDQxIEBADQogICAgICAgICBpZiBub3QgYWRk
cmVzczoNCi0gICAgICAgICAgICBzdWJzY3JpYmVfYWRkcmVzcyA9IHN0cmlu
Zy5sb3dlcihtYWlsLkdldFNlbmRlcigpKQ0KKyAgICAgICAgICAgIHBlbmRp
bmdfYWRkciA9IG1haWwuR2V0U2VuZGVyKCkNCiAgICAgICAgIGVsc2U6DQot
ICAgICAgICAgICAgc3Vic2NyaWJlX2FkZHJlc3MgPSBhZGRyZXNzDQorICAg
ICAgICAgICAgcGVuZGluZ19hZGRyID0gYWRkcmVzcw0KICAgICAgICAgcmVt
b3RlID0gbWFpbC5HZXRTZW5kZXIoKQ0KLSAgICAgICAgdHJ5Og0KLSAgICAg
ICAgICAgIHNlbGYuQWRkTWVtYmVyKHN1YnNjcmliZV9hZGRyZXNzLCBwYXNz
d29yZCwgZGlnZXN0LCByZW1vdGUpDQotICAgICAgICBleGNlcHQgRXJyb3Jz
Lk1NU3Vic2NyaWJlTmVlZHNDb25maXJtYXRpb246DQotICAgICAgICAgICAg
Iw0KLSAgICAgICAgICAgICMgdGhlIGNvbmZpcm1hdGlvbiBtZXNzYWdlIHRo
YXQncyBiZWVuIHNlbnQgdGFrZXMgcGxhY2UgDQotICAgICAgICAgICAgIyBv
ZiB0aGUgcmVzdWx0cyBvZiB0aGUgbWFpbCBjb21tYW5kIG1lc3NhZ2UNCi0g
ICAgICAgICAgICAjDQotICAgICAgICAgICAgc2VsZi5fX05vTWFpbENtZFJl
c3BvbnNlID0gMQ0KLSAgICAgICAgZXhjZXB0IEVycm9ycy5NTU5lZWRBcHBy
b3ZhbCwgYWRtaW5fZW1haWw6DQotICAgICAgICAgICAgc2VsZi5BZGRUb1Jl
c3BvbnNlKCJ5b3VyIHN1YnNjcmlwdGlvbiByZXF1ZXN0IGhhcyBiZWVuIGZv
cndhcmRlZCB0aGUgbGlzdCAiDQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJhZG1pbmlzdHJhdG9yXG5hdCAlcyBmb3IgcmV2aWV3LlxuIiAl
IGFkbWluX2VtYWlsKQ0KLSAgICAgICAgZXhjZXB0IEVycm9ycy5NTUJhZEVt
YWlsRXJyb3I6DQotICAgICAgICAgICAgc2VsZi5BZGRFcnJvcigiTWFpbG1h
biB3b24ndCBhY2NlcHQgdGhlIGdpdmVuIGVtYWlsICINCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICJhZGRyZXNzIGFzIGEgdmFsaWQgYWRkcmVzcy4g
XG4oRG9lcyBpdCAiDQotICAgICAgICAgICAgICAgICAgICAgICAgICAiaGF2
ZSBhbiBAIGluIGl0Pz8/KSIpDQotICAgICAgICBleGNlcHQgRXJyb3JzLk1N
TGlzdE5vdFJlYWR5Og0KLSAgICAgICAgICAgIHNlbGYuQWRkRXJyb3IoIlRo
ZSBsaXN0IGlzIG5vdCBmdWxseSBmdW5jdGlvbmFsLCBhbmQgIg0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNhbiBub3QgYWNjZXB0IHN1YnNjcmlw
dGlvbiByZXF1ZXN0cy4iKQ0KLSAgICAgICAgZXhjZXB0IEVycm9ycy5NTUhv
c3RpbGVBZGRyZXNzOg0KLSAgICAgICAgICAgIHNlbGYuQWRkRXJyb3IoIllv
dXIgc3Vic2NyaXB0aW9uIGlzIG5vdCBhbGxvd2VkIGJlY2F1c2VcbiINCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgZW1haWwgYWRkcmVzcyB5
b3UgZ2F2ZSBpcyBpbnNlY3VyZS4iKQ0KLSAgICAgICAgZXhjZXB0IEVycm9y
cy5NTUFscmVhZHlBTWVtYmVyOg0KLSAgICAgICAgICAgIHNlbGYuQWRkRXJy
b3IoIllvdSBhcmUgYWxyZWFkeSBzdWJzY3JpYmVkISIpDQotICAgICAgICBl
eGNlcHQgRXJyb3JzLk1NQ2FudERpZ2VzdEVycm9yOg0KLSAgICAgICAgICAg
IHNlbGYuQWRkRXJyb3IoIk5vIG9uZSBjYW4gc3Vic2NyaWJlIHRvIHRoZSBk
aWdlc3Qgb2YgdGhpcyBsaXN0ISIpDQotICAgICAgICBleGNlcHQgRXJyb3Jz
Lk1NTXVzdERpZ2VzdEVycm9yOg0KLSAgICAgICAgICAgIHNlbGYuQWRkRXJy
b3IoIlRoaXMgbGlzdCBvbmx5IHN1cHBvcnRzIGRpZ2VzdCBzdWJzY3JpcHRp
b25zISIpDQorICAgICAgICBpZiBwZW5kaW5nX2FkZHIgPT0gc2VsZi5HZXRM
aXN0RW1haWwoKToNCisgICAgICAgICAgICBiYWRyZW1vdGUgPSAiXG5cdGZy
b20gIiANCisgICAgICAgICAgICBpZiByZW1vdGU6IGJhZHJlbW90ZSA9IGJh
ZHJlbW90ZSArIHJlbW90ZQ0KKyAgICAgICAgICAgIGVsc2U6ICAgICAgYmFk
cmVtb3RlID0gYmFkcmVtb3RlICsgInVuaWRlbnRpZmllZCBzZW5kZXIiDQor
ICAgICAgICAgICAgc2VsZi5Mb2dNc2coIm1pc2NoaWVmIiwgKCJBdHRlbXB0
IHRvIHNlbGYgc3Vic2NyaWJlICVzOiVzIg0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAlIChwZW5kaW5nX2FkZHIsIGJhZHJlbW90
ZSkpKQ0KKyAgICAgICAgICAgIHNlbGYuQWRkQXBwcm92YWxNc2coIkF0dGVt
cHQgdG8gc3Vic2NyaWJlIGEgbGlzdCB0byBpdHNlbGYhIikNCisgICAgICAg
ICAgICByZXR1cm4NCisgICAgICAgIGlmIHNlbGYuRmluZFVzZXIocGVuZGlu
Z19hZGRyKToNCisgICAgICAgICAgICBzZWxmLkFkZEVycm9yKCIlcyBpcyBh
bHJlYWR5IGEgbGlzdCBtZW1iZXIuIiAlIHBlbmRpbmdfYWRkcikNCisgICAg
ICAgICAgICByZXR1cm4NCisgICAgICAgIGNvb2tpZSA9IFBlbmRpbmcuZ2Vu
Y29va2llKCkNCisgICAgICAgIFBlbmRpbmcuYWRkMnBlbmRpbmcocGVuZGlu
Z19hZGRyLCBwYXNzd29yZCwgZGlnZXN0LCBjb29raWUpDQorICAgICAgICBp
ZiByZW1vdGUgPT0gcGVuZGluZ19hZGRyOg0KKyAgICAgICAgICAgIHJlbW90
ZSA9ICIiDQogICAgICAgICBlbHNlOg0KLSAgICAgICAgICAgICMNCi0gICAg
ICAgICAgICAjIGlmIHRoZSBsaXN0IHNlbmRzIGEgd2VsY29tZSBtZXNzYWdl
LCB3ZSBkb24ndCBuZWVkIGEgcmVzcG9uc2UNCi0gICAgICAgICAgICAjIGZy
b20gdGhlIG1haWxjb21tYW5kIGhhbmRsZXIuDQotICAgICAgICAgICAgIw0K
LSAgICAgICAgICAgIGlmIHNlbGYuc2VuZF93ZWxjb21lX21zZzoNCi0gICAg
ICAgICAgICAgICAgc2VsZi5fX05vTWFpbENtZFJlc3BvbnNlID0gMQ0KLSAg
ICAgICAgICAgIGVsc2U6DQotICAgICAgICAgICAgICAgIHNlbGYuQWRkVG9S
ZXNwb25zZSgiU3VjY2VlZGVkIikNCisgICAgICAgICAgICByZW1vdGUgPSAi
IGZyb20gIiArIHJlbW90ZQ0KKyAgICAgICAgdGV4dCA9IFV0aWxzLm1ha2V0
ZXh0KA0KKyAgICAgICAgICAgICd2ZXJpZnkudHh0JywNCisgICAgICAgICAg
ICB7J2VtYWlsJyAgICAgICA6IHBlbmRpbmdfYWRkciwNCisgICAgICAgICAg
ICAgJ2xpc3RhZGRyJyAgICA6IHNlbGYuR2V0TGlzdEVtYWlsKCksDQorICAg
ICAgICAgICAgICdsaXN0bmFtZScgICAgOiBzZWxmLnJlYWxfbmFtZSwNCisg
ICAgICAgICAgICAgJ2xpc3RhZG1pbicgICA6IHNlbGYuR2V0QWRtaW5FbWFp
bCgpLA0KKyAgICAgICAgICAgICAnY29va2llJyAgICAgIDogY29va2llLA0K
KyAgICAgICAgICAgICAncmVtb3RlJyAgICAgIDogcmVtb3RlLA0KKyAgICAg
ICAgICAgICAncmVxdWVzdGFkZHInIDogc2VsZi5HZXRSZXF1ZXN0RW1haWwo
KSwNCisgICAgICAgICAgICAgfSkNCisgICAgICAgIHNlbGYuU2VuZFRleHRU
b1VzZXIoDQorICAgICAgICAgICAgc3ViamVjdCA9ICIlcyAtLSBjb25maXJt
YXRpb24gb2Ygc3Vic2NyaXB0aW9uIC0tIHJlcXVlc3QgJWQiICUNCisgICAg
ICAgICAgICAgICAgKHNlbGYucmVhbF9uYW1lLCBjb29raWUpLA0KKyAgICAg
ICAgICAgIHJlY2lwaWVudCA9IHBlbmRpbmdfYWRkciwNCisgICAgICAgICAg
ICBzZW5kZXIgPSBzZWxmLkdldFJlcXVlc3RFbWFpbCgpLA0KKyAgICAgICAg
ICAgIHRleHQgPSB0ZXh0KQ0KKyAgICAgICAgc2VsZi5fX05vTWFpbENtZFJl
c3BvbnNlID0gMQ0KKyAgICAgICAgcmV0dXJuDQogDQpAQCAtNTAwLDUgKzY3
MSw0IEBADQogICAgICAgICAgICAgcmV0dXJuDQotICAgICAgICB0cnk6DQot
ICAgICAgICAgICAgc2VsZi5Qcm9jZXNzQ29uZmlybWF0aW9uKGNvb2tpZSkN
Ci0gICAgICAgIGV4Y2VwdCBFcnJvcnMuTU1CYWRDb25maXJtYXRpb246DQor
ICAgICAgICBwZW5kaW5nID0gUGVuZGluZy5nZXRfcGVuZGluZygpDQorICAg
ICAgICBpZiBub3QgcGVuZGluZy5oYXNfa2V5KGNvb2tpZSk6DQogICAgICAg
ICAgICAgc2VsZi5BZGRFcnJvcigiSW52YWxpZCBjb25maXJtYXRpb24gbnVt
YmVyIVxuIg0KQEAgLTUwNiwxNyArNjc2LDQ3IEBADQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAiIHRyeSBhZ2Fpbi4iKQ0KLSAgICAgICAgZXhjZXB0
IEVycm9ycy5NTU5lZWRBcHByb3ZhbCwgYWRtaW5fYWRkcjoNCi0gICAgICAg
ICAgICBzZWxmLkFkZFRvUmVzcG9uc2UoInlvdXIgcmVxdWVzdCBoYXMgYmVl
biBmb3J3YXJkZWQgdG8gdGhlIGxpc3QgIg0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiYWRtaW5pc3RyYXRvciBmb3IgYXBwcm92YWwiKQ0K
LSAgICAgICAgICAgIA0KKyAgICAgICAgICAgIHJldHVybg0KKyAgICAgICAg
KGVtYWlsX2FkZHIsIHBhc3N3b3JkLCBkaWdlc3QsIHRzKSA9IHBlbmRpbmdb
Y29va2llXQ0KKyAgICAgICAgaWYgc2VsZi5vcGVuX3N1YnNjcmliZToNCisg
ICAgICAgICAgICBzZWxmLkZpbmlzaFN1YnNjcmliZShlbWFpbF9hZGRyLCBw
YXNzd29yZCwgZGlnZXN0LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFwcHJvdmVkPTEpDQogICAgICAgICBlbHNlOg0KLSAgICAgICAg
ICAgICMNCi0gICAgICAgICAgICAjIGlmIHRoZSBsaXN0IHNlbmRzIGEgd2Vs
Y29tZSBtZXNzYWdlLCB3ZSBkb24ndCBuZWVkIGEgcmVzcG9uc2UNCi0gICAg
ICAgICAgICAjIGZyb20gdGhlIG1haWxjb21tYW5kIGhhbmRsZXIuDQotICAg
ICAgICAgICAgIw0KLSAgICAgICAgICAgIGlmIHNlbGYuc2VuZF93ZWxjb21l
X21zZzoNCi0gICAgICAgICAgICAgICAgc2VsZi5fX05vTWFpbENtZFJlc3Bv
bnNlID0gMQ0KLSAgICAgICAgICAgIGVsc2U6DQotICAgICAgICAgICAgICAg
IHNlbGYuQWRkVG9SZXNwb25zZSgiU3VjY2VlZGVkIikNCi0NCisgICAgICAg
ICAgICBzZWxmLkZpbmlzaFN1YnNjcmliZShlbWFpbF9hZGRyLCBwYXNzd29y
ZCwgZGlnZXN0KQ0KKyAgICAgICAgZGVsIHBlbmRpbmdbY29va2llXQ0KKyAg
ICAgICAgUGVuZGluZy5zZXRfcGVuZGluZyhwZW5kaW5nKQ0KIA0KKyAgICBk
ZWYgRmluaXNoU3Vic2NyaWJlKHNlbGYsIGFkZHIsIHBhc3N3b3JkLCBkaWdl
c3QsIGFwcHJvdmVkPTApOg0KKwl0cnk6DQorICAgICAgICAgICAgaWYgYXBw
cm92ZWQ6DQorICAgICAgICAgICAgICAgIHNlbGYuQXBwcm92ZWRBZGRNZW1i
ZXIoYWRkciwgcGFzc3dvcmQsIGRpZ2VzdCkNCisgICAgICAgICAgICBlbHNl
Og0KKyAgICAgICAgICAgICAgICBzZWxmLkFkZE1lbWJlcihhZGRyLCBwYXNz
d29yZCwgZGlnZXN0KQ0KKwkgICAgc2VsZi5BZGRUb1Jlc3BvbnNlKCJTdWNj
ZWVkZWQuIikNCisJZXhjZXB0IEVycm9ycy5NTUJhZEVtYWlsRXJyb3I6DQor
CSAgICBzZWxmLkFkZEVycm9yKCJFbWFpbCBhZGRyZXNzICclcycgbm90IGFj
Y2VwdGVkIGJ5IE1haWxtYW4uIiAlIA0KKwkJCSAgYWRkcikNCisJZXhjZXB0
IEVycm9ycy5NTU11c3REaWdlc3RFcnJvcjoNCisJICAgIHNlbGYuQWRkRXJy
b3IoIkxpc3Qgb25seSBhY2NlcHRzIGRpZ2VzdCBtZW1iZXJzLiIpDQorCWV4
Y2VwdCBFcnJvcnMuTU1DYW50RGlnZXN0RXJyb3I6DQorCSAgICBzZWxmLkFk
ZEVycm9yKCJMaXN0IGRvZXNuJ3QgYWNjZXB0IGRpZ2VzdCBtZW1iZXJzLiIp
DQorCWV4Y2VwdCBFcnJvcnMuTU1MaXN0Tm90UmVhZHk6DQorCSAgICBzZWxm
LkFkZEVycm9yKCJMaXN0IGlzIG5vdCBmdW5jdGlvbmFsLiIpDQorCWV4Y2Vw
dCBFcnJvcnMuTU1OZWVkQXBwcm92YWw6DQorCSAgICBzZWxmLkFkZEFwcHJv
dmFsTXNnKCJTdWJzY3JpcHRpb24gaXMgcGVuZGluZyBsaXN0IGFkbWluIGFw
cHJvdmFsLiIpDQorICAgICAgICBleGNlcHQgRXJyb3JzLk1NSG9zdGlsZUFk
ZHJlc3M6DQorCSAgICBzZWxmLkFkZEVycm9yKCJFbWFpbCBhZGRyZXNzICcl
cycgbm90IGFjY2VwdGVkIGJ5IE1haWxtYW4gIg0KKwkJCSAgIihpbnNlY3Vy
ZSBhZGRyZXNzKSIgJSBhZGRyKQ0KKwlleGNlcHQgRXJyb3JzLk1NQWxyZWFk
eUFNZW1iZXI6DQorCSAgICBzZWxmLkFkZEVycm9yKCIlcyBpcyBhbHJlYWR5
IGEgbGlzdCBtZW1iZXIuIiAlIGFkZHIpDQorCWV4Y2VwdDoNCisJICAgIHNl
bGYuQWRkRXJyb3IoIkFuIHVua25vd24gTWFpbG1hbiBlcnJvciBvY2N1cmVk
LiIpDQorCSAgICBzZWxmLkFkZEVycm9yKCJQbGVhc2UgZm9yd2FyZCB5b3Vy
IHJlcXVlc3QgdG8gJXMiICUNCisJCQkgIHNlbGYuR2V0QWRtaW5FbWFpbCgp
KQ0KKwkgICAgc2VsZi5BZGRFcnJvcigiJXMiICUgc3lzLmV4Y190eXBlKQ0K
KyAgICAgICAgICAgIHNlbGYuTG9nTXNnKCJlcnJvciIsICgiJXM6XG5cdCVz
LkZpbmlzaFN1YnNjcmliZSgpIGVuY291bnRlcmVkIg0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiIHVuZXhwZWN0ZWQgZXhjZXB0aW9u
OlxuXHQnJXMnLCAnJXMnIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAlIChfX25hbWVfXywNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5faW50ZXJuYWxfbmFtZSwNCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHN5cy5leGNfaW5m
bygpWzBdKSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RyKHN5cy5leGNfaW5mbygpWzFdKSkpKQ0KKwkJDQogICAgIGRlZiBB
ZGRBcHByb3ZhbE1zZyhzZWxmLCBjbWQpOg0KQEAgLTUzMSw3ICs3MzEsNDAg
QEANCiAgICAgZGVmIFByb2Nlc3NIZWxwQ21kKHNlbGYsIGFyZ3MsIGNtZCwg
bWFpbCk6DQorICAgICAgICB0eHQgPSAnaGVscC50eHQnDQorCWlmIGxlbihh
cmdzKSA+PSAxOg0KKwkgICAgaWYgYXJnc1swXSBpbiBbImVkaXQiLCAicHV0
IiwgInNldGF0dHIiXToNCisJCXNlbGYuVHlwZXMgPSB7DQorCQkgICAgbW1f
Y2ZnLlJhZGlvOiAic2V0YXR0cjsgeWVzIG9yIG5vIiwNCisJCSAgICBtbV9j
ZmcuVG9nZ2xlOiAic2V0YXR0cjsgeWVzIG9yIG5vIiwNCisJCSAgICBtbV9j
ZmcuRW1haWw6ICJzZXRhdHRyOyBlbWFpbCIsDQorCQkgICAgbW1fY2ZnLlN0
cmluZzogInNldGF0dHI7IHN0cmluZyBsaW5lIiwNCisJCSAgICBtbV9jZmcu
SG9zdDogInNldGF0dHI7IGhvc3QgbmFtZSIsDQorCQkgICAgbW1fY2ZnLk51
bWJlcjogInNldGF0dHI7IG51bWJlciIsDQorCQkgICAgbW1fY2ZnLlRleHQ6
ICJwdXQ7IHN0cmluZyBsaW5lcyIsDQorCQkgICAgbW1fY2ZnLkVtYWlsTGlz
dDogInB1dDsgbGlzdCBvZiBlbWFpbHMgKG9uZSBpbiBhIGxpbmUpIg0KKwkJ
ICAgIH0NCisJCWlmIGxlbihhcmdzKSA+IDEgYW5kIGFyZ3NbMV0gPT0gImFs
bCI6DQorCQkgICAgYWxsID0gMQ0KKwkJZWxzZToNCisJCSAgICBhbGwgPSAw
DQorCQl0ZXh0ID0gIkZpbGVzIGluICVzOiIgJSBhcmdzWzBdDQorCQlreXMg
PSBzZWxmLl9FZGl0RmlsZXMua2V5cygpDQorCQlreXMuc29ydCgpDQorCQlm
b3IgaSBpbiBreXM6DQorCQkgICAgdHlwZSA9IHNlbGYuVHlwZXNbc2VsZi5f
RWRpdEZpbGVzW2ldWzBdXQ0KKwkJICAgIHR4dCA9IFV0aWxzLndyYXAoc2Vs
Zi5fRWRpdEZpbGVzW2ldWzJdKQ0KKwkJICAgIGlmIGFsbCBhbmQgc2VsZi5f
RWRpdEZpbGVzW2ldWzNdICE9ICIiOg0KKwkJCXR4dCA9IHR4dCArICJcbiIg
KyBVdGlscy53cmFwKHNlbGYuX0VkaXRGaWxlc1tpXVszXSkNCisJCSAgICB0
ZXh0ID0gdGV4dCArICJcblxuJXMgKGZyb20gJXMpOlxuICBbJXNdXG4gICIg
JSAoaSwNCisJCQkgICAgc2VsZi5fRWRpdEZpbGVzW2ldWzFdLCB0eXBlKSAr
IHN0cmluZy5qb2luKA0KKwkJCSAgICBzdHJpbmcuc3BsaXQodHh0LCAiXG4i
KSwgIlxuICAiKQ0KKwkJc2VsZi5BZGRUb1Jlc3BvbnNlKHRleHQpDQorCQly
ZXR1cm4NCisJICAgIGlmIGFyZ3NbMF0gPT0gJ2FkbWluJzoNCisJCXR4dCA9
ICdhZG1pbmhlbHAudHh0Jw0KICAgICAgICAgdGV4dCA9IFV0aWxzLm1ha2V0
ZXh0KA0KLSAgICAgICAgICAgICdoZWxwLnR4dCcsDQorICAgICAgICAgICAg
dHh0LA0KICAgICAgICAgICAgIHsnbGlzdG5hbWUnICAgIDogc2VsZi5yZWFs
X25hbWUsDQogICAgICAgICAgICAgICd2ZXJzaW9uJyAgICAgOiBtbV9jZmcu
VkVSU0lPTiwNCi0gICAgICAgICAgICAgJ2xpc3RpbmZvX3VybCc6IHNlbGYu
R2V0QWJzb2x1dGVTY3JpcHRVUkwoJ2xpc3RpbmZvJyksDQorICAgICAgICAg
ICAgICdsaXN0aW5mb191cmwnOiBzZWxmLkdldEFic29sdXRlU2NyaXB0VVJM
KG1tX2NmZy5MSVNUSU5GT19DR0kpLA0KKyAgICAgICAgICAgICAnYWRtaW5f
dXJsJyAgIDogc2VsZi5HZXRBYnNvbHV0ZVNjcmlwdFVSTChtbV9jZmcuQURN
SU5fQ0dJKSwNCiAgICAgICAgICAgICAgJ3JlcXVlc3RhZGRyJyA6IHNlbGYu
R2V0UmVxdWVzdEVtYWlsKCksDQotLS0gbWFpbG1hbi5vcmlnL01haWxtYW4v
TWFpbExpc3QucHkgICAgVHVlIFNlcCAyOSAxMTo1MjozOCAxOTk4DQorKysg
bWFpbG1hbi9NYWlsbWFuL01haWxMaXN0LnB5IFR1ZSBTZXAgMjkgMTE6NTI6
NDkgMTk5OA0KQEAgLTU1LDQgKzU1LDQgQEANCiAgICAgICAgICAgICAgICBy
YWlzZSBFcnJvcnMuTU1Vbmtub3duTGlzdEVycm9yLCAnbGlzdCBub3QgZm91
bmQ6ICVzJyAlIG5hbWUNCi0gICAgICAgTWFpbENvbW1hbmRIYW5kbGVyLl9f
aW5pdF9fKHNlbGYpDQogICAgICAgICBzZWxmLkluaXRUZW1wVmFycyhuYW1l
LCBsb2NrKQ0KKyAgICAgICBNYWlsQ29tbWFuZEhhbmRsZXIuX19pbml0X18o
c2VsZikNCiAgICAgICAgaWYgbmFtZToNCi0tLSBtYWlsbWFuLm9yaWcvdGVt
cGxhdGVzL2FkbWluaGVscC50eHQJVHVlIFNlcCAyMiAxNDo1Mjo1MyAxOTk4
DQorKysgbWFpbG1hbi90ZW1wbGF0ZXMvYWRtaW5oZWxwLnR4dAlUdWUgU2Vw
IDI5IDEwOjQ4OjE0IDE5OTgNCkBAIC0wLDAgKzEsNjIgQEANCitBZG1pbiBo
ZWxwIGZvciAlKGxpc3RuYW1lKXMgbWFpbGluZyBsaXN0Og0KKw0KK1RoaXMg
aXMgYWRtaW5pc3RyYXRpb24gZW1haWwgY29tbWFuZCBoZWxwIGZvciB2ZXJz
aW9uICUodmVyc2lvbilzIG9mIHRoZQ0KKyJNYWlsbWFuIiBsaXN0IG1hbmFn
ZXIuICBUaGUgZm9sbG93aW5nIGRlc2NyaWJlcyBjb21tYW5kcyB5b3UgY2Fu
IHNlbmQgdG8NCitnZXQgaW5mb3JtYXRpb24gYWJvdXQgYW5kIGNvbnRyb2wg
eW91ciBNYWlsbWFuIGxpc3QuICBBIGNvbW1hbmQgY2FuIGJlIGluDQordGhl
IHN1YmplY3QgbGluZSBvciBpbiB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZS4N
CisNCitUaGUgYmFzaWNzIG9mIGVtYWlsIGNvbW1hbmRzIGFyZSBkZXNjcmli
ZWQgaW4gdGhlIG9yZGluYXJ5IGhlbHAuICBZb3UgY2FuDQorcmV0cmlldmUg
aXQgd2l0aCAnaGVscCcgY29tbWFuZCB3aXRob3V0IGFyZ3VtZW50cy4NCisN
CitOb3RlIHRoYXQgbXVjaCBvZiB0aGUgZm9sbG93aW5nIGNhbiBhbHNvIGJl
IGFjY29tcGxpc2hlZCB2aWEgdGhlIHdlYiwNCithdDoNCisNCisgICAgJShh
ZG1pbl91cmwpcw0KKyAgICANCitBZG1pbmlzdHJhdGlvbiBjb21tYW5kcyBz
aG91bGQgYmUgc2VudCB0byB0aGUgKi1yZXF1ZXN0IGFkZHJlc3Mgb2YgdGhl
DQorcGFydGljdWxhciBsaXN0LCBlZy4gZm9yIHRoZSAnbWFpbG1hbicgbGlz
dCwgdXNlICdtYWlsbWFuLXJlcXVlc3RALi4uJy4NCisNCitBYm91dCB0aGUg
ZGVzY3JpcHRpb25zIC0gd29yZHMgaW4gIjw+InMgc2lnbmlmeSBSRVFVSVJF
RCBpdGVtcyBhbmQNCit3b3JkcyBpbiAiW10iIGRlbm90ZSBPUFRJT05BTCBp
dGVtcy4gIERvIG5vdCBpbmNsdWRlIHRoZSAiPD4icyBvcg0KKyJbXSJzIHdo
ZW4geW91IHVzZSB0aGUgY29tbWFuZHMuDQorDQorVGhlIGZvbGxvd2luZyBj
b21tYW5kcyBhcmUgYXZhaWxhYmxlIGZvciBhZG1pbmlzdHJhdGlvbjoNCisN
CisgICAgZW5hYmxlIDxhZG1pbiBwYXNzd29yZD4NCisgICAgICAgIEVuYWJs
ZSB0aGUgYWRtaW5pc3RyYXRpb24gY29tbWFuZCBzZXQuICBJdCBzaG91bGQg
YmUgdGhlDQorICAgICAgICBmaXJzdCBjb21tYW5kIHlvdSBnaXZlLg0KKw0K
KyAgICBkaXNhYmxlDQorICAgICAgICBEaXNhYmxlIHRoZSBhZG1pbmlzdHJh
dGlvbiBjb21tYW5kIHNldC4gIEl0J3MgYXV0b21hdGljIHdoZW4NCisgICAg
ICAgIHRoZSBwYXJzaW5nIGlzIGZpbmlzaGVkLg0KKw0KKyAgICBlZGl0IDxz
ZXR0aW5nPg0KKyAgICAgICAgIG9yDQorICAgIGVkaXQgYWxsDQorICAgICAg
ICBSZXRyaWV2ZSA8c2V0dGluZz4gZm9yIGVkaXRpbmcgb3IgdmlldyB0aGUg
Y29udGVudHMuICBZb3UnbGwgZ2V0DQorICAgICAgICB0aGUgc3VpdGFibGUg
J3B1dCcgY29tbWFuZCB3aXRoIGEgdHJhaWxpbmcgJy1lbmQtJyBsaW5lIG9y
IGENCisgICAgICAgICdzZXRhdHRyJyBjb21tYW5kLiAgJ2VkaXQgYWxsJyB3
aWxsIHNlbmQgeW91IGFsbCBvZiBzZXR0aW5ncy4NCisgICAgICAgIFNlZSBh
bHNvICdoZWxwIDxjbWQ+Jy4NCisNCisgICAgcHV0IDxzZXR0aW5nPg0KKyAg
ICAgICAgUmVmcmVzaGVzIDxzZXR0aW5nPi4gIFRoaXMgaXMgYSBwb29sIGNv
bW1hbmQuICBUaGlzIG1lYW5zIHlvdQ0KKyAgICAgICAgaGF2ZSB0byB3cml0
ZSB0aGUgY29udGVudHMgYWZ0ZXIgJ3B1dCcuIFRoZSBzZXR0aW5nIGxhc3Rz
IGF0IHRoZQ0KKyAgICAgICAgZmlyc3QgJy1lbmQtJyBsaW5lLiAgU2VlIGFs
c28gJ2hlbHAgPGNtZD4nLg0KKw0KKyAgICBzZXRhdHRyIDxzZXR0aW5nPj08
YXR0cmlidXRlPg0KKyAgICAgICAgVGhpcyBpcyB0aGUgc2FtZSBhcyAncHV0
JywgYnV0IGZvciB0aGUgc2luZ2xlIGxpbmUgc2V0dGluZ3MuDQorICAgICAg
ICBZb3UgY2FuIHVzZSBkb3VibGUgcXVvdGVzICgiKSB0byBlbmNsb3NlIDxh
dHRyaWJ1dGU+LCBidXQgeW91DQorICAgICAgICBkb24ndCBoYXZlIHRvIGVz
Y2FwZSBkb3VibGUgcXVvdGVzIHdpdGhpbiA8YXR0cmlidXRlPi4NCisNCisg
ICAgICAgIEZvciBleGFtcGxlOg0KKyAgICAgICAgICAgIHNldGF0dHIgc3Vi
amVjdF9wcmVmaXg9IltNYWlsTWFuXSAiDQorDQorICAgIGhlbHAgPGNtZD4g
W2FsbF0NCisgICAgICAgIFlvdSBjYW4gZ2V0IGhlbHAgb24gJ2VkaXQnLCAn
cHV0JyBvciAnc2V0YXR0cicgY29tbWFuZHMuICBJZiB5b3UNCisgICAgICAg
IHdhbnQgdG8gZ2V0IGl0IGluIGRldGFpbHMsIHVzZSB0aGUgJ2FsbCcgb3B0
aW9uLiAgVGhpcyBoZWxwDQorICAgICAgICBzaG93cyB5b3UgdGhlIGFjY2Vw
dGFibGUgY29udGVudHMgb2YgYW4gb3B0aW9uIHRvby4NCisNCisgICAgLWVu
ZC0NCisgICAgICAgIFN0b3AgcHJvY2Vzc2luZyBwb29sIGFuZCBydW4gdGhl
IHBvb2wgY29tbWFuZC4NCisNCitDb21tYW5kcyBzaG91bGQgYmUgc2VudCB0
byAlKHJlcXVlc3RhZGRyKXMuDQo=
---456965764-1997860193-908185561=:9903--