[no subject]
>Number: 2020
>Notify-List:
>Category: mutt
>Synopsis: crypt-gpgme.c: impossible to make good translation for some
>languages
>Confidential: no
>Severity: minor
>Priority: low
>Responsible: mutt-dev
>State: open
>Keywords:
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Tue Aug 02 10:10:03 +0200 2005
>Originator: tamo
>Release: 1.5.9
>Organization:
http://mutt-j.sourceforge.jp/
>Environment:
--enable-nls --enable-gpgme
>Description:
In crypt-gpgme.c:
> fprintf (fp, "%s ......: ", idx ? _(" aka") :_("Name"));
In some languages, this is not correctly-translatable.
At first, the number of dots should be different between languages.
----> fix: _("%s ......: ")
Next, the number of dots should be different between "aka" and "Name".
----> fix: if(idx)fprintf(..._(" aka"));else fprintf(..._("Name"));
>How-To-Repeat:
build mutt with --enable-nls --enable-gpgme options.
>Fix:
See the attached patch for "dot_format" macro.
Note: In addition to fixing this problem,
this patch enables translation for other symbols
such as "[?]" and "," because these can look strange
in the midst of non-European language messages.
For example, Japanese language has its own delimiter
in place of ",".
Note2: This patch concatenates some messages because
some languages have completely different order of words
for a message, e.g. "Error getting key information: xxx\n"
could be "getting key information: xxx error\n" in such
languages.
See "info gettext 'Preparing Strings'" for the detail.
http://info2html.sourceforge.net/cgi-bin/info2html-demo/info2html?(gettext.info.gz)Preparing%2520Strings
>Add-To-Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="patch-1.5.9.tamo.transl.1"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch-1.5.9.tamo.transl.1"
SW5kZXg6IGNyeXB0LWdwZ21lLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvcm9lc3NsZXIv
Y3ZzL211dHQvY3J5cHQtZ3BnbWUuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMy41CmRpZmYgLXUg
LXIzLjUgY3J5cHQtZ3BnbWUuYwotLS0gY3J5cHQtZ3BnbWUuYwkyOCBKdWwgMjAwNSAyMDo0Mjo0
NSAtMDAwMAkzLjUKKysrIGNyeXB0LWdwZ21lLmMJMiBBdWcgMjAwNSAwNzoyMjoxOSAtMDAwMApA
QCAtNzAsNiArNzAsMTAgQEAKICNkZWZpbmUgeHRvaV8xKHApICAgKCoocCkgPD0gJzknPyAoKihw
KS0gJzAnKTogXAogICAgICAgICAgICAgICAgICAgICAgKihwKSA8PSAnRic/ICgqKHApLSdBJysx
MCk6KCoocCktJ2EnKzEwKSkKICNkZWZpbmUgeHRvaV8yKHApICAgKCh4dG9pXzEocCkgKiAxNikg
KyB4dG9pXzEoKHApKzEpKQorI2RlZmluZSByal9mb3JtYXQoYSxiLGMpIFwKKwkgIG11dHRfZm9y
bWF0X3N0cmluZyAoYSwgc2l6ZW9mIChhKSwgYiwgYiwgMSwgJyAnLCBjLCBzaXplb2YgKGEpLCAw
KQorI2RlZmluZSBkb3RfZm9ybWF0KGEsYixjKSBcCisJICBtdXR0X2Zvcm1hdF9zdHJpbmcgKGEs
IHNpemVvZiAoYSksIGIsIGIsIDAsICcuJywgYywgc2l6ZW9mIChhKSwgMCkKIAogLyogVmFsdWVz
IHVzZWQgZm9yIGNvbXBhcmluZyBhZGRyZXNzZXMuICovCiAjZGVmaW5lIENSWVBUX0tWX1ZBTElE
ICAgIDEKQEAgLTExOTAsNiArMTE5MCw3IEBACiAgIGdwZ21lX3ZlcmlmeV9yZXN1bHRfdCByZXN1
bHQ7CiAgIGdwZ21lX3NpZ25hdHVyZV90IHNpZzsKICAgZ3BnbWVfZXJyb3JfdCBlcnIgPSBHUEdf
RVJSX05PX0VSUk9SOworICBjaGFyIGJ1ZltTSE9SVF9TVFJJTkddOwogCiAgIHJlc3VsdCA9IGdw
Z21lX29wX3ZlcmlmeV9yZXN1bHQgKGN0eCk7CiAgIGlmIChyZXN1bHQpCkBAIC0xMjIwLDcgKzEy
MjEsOCBAQAogICAgICAgZXJyID0gZ3BnbWVfZ2V0X2tleSAoY3R4LCBmcHIsICZrZXksIDApOyAv
KiBzZWNyZXQga2V5PyAgKi8KICAgICAgIGlmICghIGVycikKIAl7Ci0JICB1aWQgPSAoa2V5LT51
aWRzICYmIGtleS0+dWlkcy0+dWlkKSA/IGtleS0+dWlkcy0+dWlkIDogIls/XSI7CisJICAvKiBm
b3IgdHJhbnNsYXRvcnM6ICJbP10iIG1lYW5zIGFuIHVua25vd24gdWlkIG9mIGEga2V5ICovCisJ
ICB1aWQgPSAoa2V5LT51aWRzICYmIGtleS0+dWlkcy0+dWlkKSA/IGtleS0+dWlkcy0+dWlkIDog
XygiWz9dIik7CiAJICBpZiAoISBzaWduYXR1cmVfa2V5KQogCSAgICBzaWduYXR1cmVfa2V5ID0g
a2V5OwogCX0KQEAgLTEyMjgsMjMgKzEyMzAsMzEgQEAKICAgICAgICB7CiAgICAgICAgICAga2V5
ID0gTlVMTDsgLyogT2xkIGdwZ21lIHZlcnNpb25zIGRpZCBub3Qgc2V0IEtFWSB0byBOVUxMIG9u
CiAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IuICAgRG8gaXQgaGVyZSB0byBhdm9pZCBh
IGRvdWJsZSBmcmVlLiAqLwotICAgICAgICAgIHVpZCA9ICJbP10iOworICAgICAgICAgIHVpZCA9
IF8oIls/XSIpOwogICAgICAgIH0KIAogICAgICAgaWYgKCFzIHx8ICFzLT5mcG91dCB8fCAhKHMt
PmZsYWdzICYgTV9ESVNQTEFZKSkKIAk7IC8qIE5vIHN0YXRlIGluZm9ybWF0aW9uIHNvIG5vIHdh
eSB0byBwcmludCBhbnl0aGluZy4gKi8KICAgICAgIGVsc2UgaWYgKGVycikKIAl7Ci0JICBzdGF0
ZV9hdHRhY2hfcHV0cyAoXygiRXJyb3IgZ2V0dGluZyBrZXkgaW5mb3JtYXRpb246ICIpLCBzKTsK
LSAgICAgICAgIHN0YXRlX2F0dGFjaF9wdXRzICggZ3BnX3N0cmVycm9yIChlcnIpLCBzICk7Ci0J
ICBzdGF0ZV9hdHRhY2hfcHV0cyAoIlxuIiwgcyk7CisJICBzbnByaW50ZiAoYnVmLCBzaXplb2Yg
KGJ1ZiksCisJCSAgICBfKCJFcnJvciBnZXR0aW5nIGtleSBpbmZvcm1hdGlvbjogJXNcbiIpLAor
CQkgICAgZ3BnX3N0cmVycm9yIChlcnIpKTsKKwkgIHN0YXRlX2F0dGFjaF9wdXRzIChidWYsIHMp
OwogICAgICAgICAgYW55YmFkID0gMTsKIAl9CiAgICAgICBlbHNlIGlmICgoc3VtICYgR1BHTUVf
U0lHU1VNX0dSRUVOKSkKIAl7Ci0JICBzdGF0ZV9hdHRhY2hfcHV0cyAoXygiR29vZCBzaWduYXR1
cmUgZnJvbTogIiksIHMpOwotCSAgc3RhdGVfYXR0YWNoX3B1dHMgKHVpZCwgcyk7Ci0JICBzdGF0
ZV9hdHRhY2hfcHV0cyAoIlxuIiwgcyk7CisJICAvKgorCSAgICogRm9yIHRyYW5zbGF0b3JzOiAy
MSBtZWFucyB0aGUgbWF4IHdpZHRoIG9mIHRoZSBmb2xsb3dpbmcKKwkgICAqIHRocmVlIG1lc3Nh
Z2VzICgiR29vZCBzaWduYXR1cmUiLCAiYWthIiwgYW5kICJjcmVhdGVkIikKKwkgICAqLworCSAg
c2l6ZV90IHJqd2lkID0gYXRvaSAoXygiMjEgKHNlZSByandpZCBpbiBjcnlwdC1ncGdtZS5jKSIp
KTsKKwkgIGNoYXIgcmp1c3RbU0hPUlRfU1RSSU5HXTsKKworCSAgcmpfZm9ybWF0IChyanVzdCwg
cmp3aWQsIF8oIkdvb2Qgc2lnbmF0dXJlIGZyb206ICIpKTsKKwkgIHNucHJpbnRmIChidWYsIHNp
emVvZiAoYnVmKSwgKCIlcyVzXG4iKSwgcmp1c3QsIHVpZCk7CisJICBzdGF0ZV9hdHRhY2hfcHV0
cyAoYnVmLCBzKTsKIAkgIGZvciAoaSA9IDEsIHVpZHMgPSBrZXktPnVpZHM7IHVpZHM7IGkrKywg
dWlkcyA9IHVpZHMtPm5leHQpCiAJICAgIHsKIAkgICAgICBpZiAoaSA9PSAxKQpAQCAtMTI1Miwx
MSArMTI2MiwxMiBAQAogCQljb250aW51ZTsKIAkgICAgICBpZiAodWlkcy0+cmV2b2tlZCkKIAkJ
Y29udGludWU7Ci0JICAgICAgc3RhdGVfYXR0YWNoX3B1dHMgKF8oIiAgICAgICAgICAgICAgICBh
a2E6ICIpLCBzKTsKLQkgICAgICBzdGF0ZV9hdHRhY2hfcHV0cyAodWlkcy0+dWlkLCBzKTsKLQkg
ICAgICBzdGF0ZV9hdHRhY2hfcHV0cyAoIlxuIiwgcyk7CisJICAgICAgcmpfZm9ybWF0IChyanVz
dCwgcmp3aWQsIF8oIiBha2E6ICIpKTsKKwkgICAgICBzbnByaW50ZiAoYnVmLCBzaXplb2YgKGJ1
ZiksICgiJXMlc1xuIiksIHJqdXN0LCB1aWRzLT51aWQpOworCSAgICAgIHN0YXRlX2F0dGFjaF9w
dXRzIChidWYsIHMpOwogCSAgICB9Ci0JICBzdGF0ZV9hdHRhY2hfcHV0cyAoXygiICAgICAgICAg
ICAgY3JlYXRlZDogIiksIHMpOworCSAgcmpfZm9ybWF0IChyanVzdCwgcmp3aWQsIF8oIiBjcmVh
dGVkOiAiKSk7CisJICBzdGF0ZV9hdHRhY2hfcHV0cyAocmp1c3QsIHMpOwogCSAgcHJpbnRfdGlt
ZSAoY3JlYXRlZCwgcyk7CiAJICBzdGF0ZV9hdHRhY2hfcHV0cyAoIlxuIiwgcyk7CiAJICBpZiAo
c2hvd19zaWdfc3VtbWFyeSAoc3VtLCBjdHgsIGtleSwgaWR4LCBzKSkKQEAgLTEyNzUsMTAgKzEy
ODYsMTYgQEAKIAkgICAgIHNpZ25hdHVyZSwgc28gd2UgZGlzcGxheSB3aGF0IGEgUEdQIHVzZXIg
ZXhwZWN0czogVGhlIG5hbWUsCiAJICAgICBmaW5nZXJwcmludCBhbmQgdGhlIGtleSB2YWxpZGl0
eSAod2hpY2ggaXMgbmVpdGhlciBmdWxseSBvcgogCSAgICAgdWx0aW1hdGUpLiAqLwotCSAgc3Rh
dGVfYXR0YWNoX3B1dHMgKF8oIkdvb2Qgc2lnbmF0dXJlIGZyb206ICIpLCBzKTsKKworCSAgY2hh
ciByanVzdFtTSE9SVF9TVFJJTkddOworCSAgc2l6ZV90IHJqd2lkID0gYXRvaSAoXygiMjEgKHNl
ZSByandpZCBpbiBjcnlwdC1ncGdtZS5jKSIpKTsKKworCSAgcmpfZm9ybWF0IChyanVzdCwgcmp3
aWQsIF8oIkdvb2Qgc2lnbmF0dXJlIGZyb206ICIpKTsKKwkgIHN0YXRlX2F0dGFjaF9wdXRzIChy
anVzdCwgcyk7CiAJICBzdGF0ZV9hdHRhY2hfcHV0cyAodWlkLCBzKTsKIAkgIHN0YXRlX2F0dGFj
aF9wdXRzICgiXG4iLCBzKTsKLQkgIHN0YXRlX2F0dGFjaF9wdXRzIChfKCIgICAgICAgICAgICBj
cmVhdGVkOiAiKSwgcyk7CisJICByal9mb3JtYXQgKHJqdXN0LCByandpZCwgXygiIGNyZWF0ZWQ6
ICIpKTsKKwkgIHN0YXRlX2F0dGFjaF9wdXRzIChyanVzdCwgcyk7CiAJICBwcmludF90aW1lIChj
cmVhdGVkLCBzKTsKIAkgIHN0YXRlX2F0dGFjaF9wdXRzICgiXG4iLCBzKTsKIAkgIHNob3dfb25l
X3NpZ192YWxpZGl0eSAoY3R4LCBpZHgsIHMpOwpAQCAtMjk0MCw2ICsyOTU3LDEyIEBACiAgIGlu
dCBpc19wZ3AgPSAwOwogICBpbnQgaTsKICAgZ3BnbWVfdXNlcl9pZF90IHVpZCA9IE5VTEw7Cisg
IGNoYXIgZG90ZmlsbFtTSE9SVF9TVFJJTkddOworICAvKgorICAgKiBmb3IgdHJhbnNsYXRvcnM6
IDExIG1lYW5zIHRoZSBtYXhpbXVtIHdpZHRoIG9mCisgICAqICJOYW1lIiwgIlZhbGlkIGZyb20i
LCAiRmluZ2VycHJpbnQiLCBhbmQgb3RoZXJzCisgICAqLworICBzaXplX3QgZG90d2lkID0gYXRv
aSAoXygiMTEgKHNlZSBkb3R3aWQgaW4gY3J5cHQtZ3BnbWUuYykiKSk7CiAKICAgaWYgKExvY2Fs
ZSkKICAgICBzZXRsb2NhbGUgKExDX1RJTUUsIExvY2FsZSk7CkBAIC0yOTUyLDcgKzI5NzUsMTEg
QEAKICAgICAgICAgY29udGludWU7CiAKICAgICAgIHMgPSB1aWQtPnVpZDsKLSAgICAgIGZwcmlu
dGYgKGZwLCAiJXMgLi4uLi4uOiAiLCBpZHggPyBfKCIgYWthIikgOl8oIk5hbWUiKSk7CisgICAg
ICBpZiAoaWR4KQorCWRvdF9mb3JtYXQgKGRvdGZpbGwsIGRvdHdpZCwgXygiIGFrYSAiKSk7Cisg
ICAgICBlbHNlCisJZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJOYW1lICIpKTsKKyAg
ICAgIGZwcmludGYgKGZwLCAiJXM6ICIsIGRvdGZpbGwpOwogICAgICAgaWYgKHVpZC0+aW52YWxp
ZCkKICAgICAgICAgewogICAgICAgICAgIGZwdXRzIChfKCJbSW52YWxpZF0iKSwgZnApOwpAQCAt
Mjk3NSw3ICszMDAyLDggQEAKICNlbHNlCiAgICAgICBzdHJmdGltZSAoc2hvcnRidWYsIHNpemVv
ZiBzaG9ydGJ1ZiwgIiVjIiwgdG0pOwogI2VuZGlmCi0gICAgICBmcHJpbnRmIChmcCwgIlZhbGlk
IEZyb20gOiAlc1xuIiwgc2hvcnRidWYpOworICAgICAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90
d2lkLCBfKCJWYWxpZCBGcm9tICIpKTsKKyAgICAgIGZwcmludGYgKGZwLCAiJXM6ICVzXG4iLCBk
b3RmaWxsLCBzaG9ydGJ1Zik7CiAgICAgfQogICAKICAgaWYgKGtleS0+c3Via2V5cyAmJiAoa2V5
LT5zdWJrZXlzLT5leHBpcmVzID4gMCkpCkBAIC0yOTg4LDcgKzMwMTYsOCBAQAogI2Vsc2UKICAg
ICAgIHN0cmZ0aW1lIChzaG9ydGJ1Ziwgc2l6ZW9mIHNob3J0YnVmLCAiJWMiLCB0bSk7CiAjZW5k
aWYKLSAgICAgIGZwcmludGYgKGZwLCAiVmFsaWQgVG8gLi46ICVzXG4iLCBzaG9ydGJ1Zik7Cisg
ICAgICBkb3RfZm9ybWF0IChkb3RmaWxsLCBkb3R3aWQsIF8oIlZhbGlkIFRvICIpKTsKKyAgICAg
IGZwcmludGYgKGZwLCAiJXM6ICVzXG4iLCBkb3RmaWxsLCBzaG9ydGJ1Zik7CiAgICAgfQogCiAg
IGlmIChrZXktPnN1YmtleXMpCkBAIC0zMDAxLDMyICszMDMwLDM2IEBACiAgIGlmIChrZXktPnN1
YmtleXMpCiAgICAgYXZhbCA9IGtleS0+c3Via2V5cy0+bGVuZ3RoOwogCi0gIGZwcmludGYgKGZw
LCAiS2V5IFR5cGUgLi46ICVzLCAlbHUgYml0ICVzXG4iLCBzMiwgYXZhbCwgcyk7CisgIGRvdF9m
b3JtYXQgKGRvdGZpbGwsIGRvdHdpZCwgXygiS2V5IFR5cGUgIikpOworICBmcHJpbnRmIChmcCwg
IiVzOiAlcywgJWx1IGJpdCAlc1xuIiwgZG90ZmlsbCwgczIsIGF2YWwsIHMpOwogCi0gIGZwcmlu
dGYgKGZwLCAiS2V5IFVzYWdlIC46ICIpOworICBkb3RfZm9ybWF0IChkb3RmaWxsLCBkb3R3aWQs
IF8oIktleSBVc2FnZSAiKSk7CisgIGZwcmludGYgKGZwLCAiJXM6ICIsIGRvdGZpbGwpOwogICBk
ZWxpbSA9ICIiOwogCiAgIGlmIChrZXlfY2hlY2tfY2FwIChrZXksIEtFWV9DQVBfQ0FOX0VOQ1JZ
UFQpKQogICAgIHsKICAgICAgIGZwcmludGYgKGZwLCAiJXMlcyIsIGRlbGltLCBfKCJlbmNyeXB0
aW9uIikpOwotICAgICAgZGVsaW0gPSAiLCAiOworICAgICAgLyogZm9yIHRyYW5zbGF0b3JzOiB0
aGlzIGlzIHVzZWQgYXMgIktleSBVc2FnZSAuOiBlbmNyeXB0aW9uLCBzaWduaW5nIiAqLworICAg
ICAgZGVsaW0gPSBfKCIsICIpOwogICAgIH0KICAgaWYgKGtleV9jaGVja19jYXAgKGtleSwgS0VZ
X0NBUF9DQU5fU0lHTikpCiAgICAgewogICAgICAgZnByaW50ZiAoZnAsICIlcyVzIiwgZGVsaW0s
IF8oInNpZ25pbmciKSk7Ci0gICAgICBkZWxpbSA9ICIsICI7CisgICAgICBkZWxpbSA9IF8oIiwg
Iik7CiAgICAgfQogICBpZiAoa2V5X2NoZWNrX2NhcCAoa2V5LCBLRVlfQ0FQX0NBTl9DRVJUSUZZ
KSkKICAgICB7CiAgICAgICBmcHJpbnRmIChmcCwgIiVzJXMiLCBkZWxpbSwgXygiY2VydGlmaWNh
dGlvbiIpKTsKLSAgICAgIGRlbGltID0gIiwgIjsKKyAgICAgIGRlbGltID0gXygiLCAiKTsKICAg
ICB9CiAgIHB1dGMgKCdcbicsIGZwKTsKIAogICBpZiAoa2V5LT5zdWJrZXlzKQogICAgIHsKICAg
ICAgIHMgPSBrZXktPnN1YmtleXMtPmZwcjsKLSAgICAgIGZwdXRzIChfKCJGaW5nZXJwcmludDog
IiksIGZwKTsKKyAgICAgIGRvdF9mb3JtYXQgKGRvdGZpbGwsIGRvdHdpZCwgXygiRmluZ2VycHJp
bnQgIikpOworICAgICAgZnByaW50ZiAoZnAsICIlczogIiwgZG90ZmlsbCk7CiAgICAgICBpZiAo
aXNfcGdwICYmIHN0cmxlbiAocykgPT0gNDApCiAgICAgICAgIHsKICAgICAgICAgICBmb3IgKGk9
MDsgKnMgJiYgc1sxXSAmJiBzWzJdICYmIHNbM10gJiYgc1s0XTsgcyArPSA0LCBpKyspCkBAIC0z
MDU4LDcgKzMwOTEsMTAgQEAKICAgICB7CiAgICAgICBzID0ga2V5LT5pc3N1ZXJfc2VyaWFsOwog
ICAgICAgaWYgKHMpCi0JZnByaW50ZiAoZnAsICJTZXJpYWwtTm8gLjogMHglc1xuIiwgcyk7CisJ
eworCSAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJTZXJpYWwtTm8gIikpOworCSAg
ZnByaW50ZiAoZnAsICIlczogMHglc1xuIiwgZG90ZmlsbCwgcyk7CisJfQogICAgIH0KIAogICBp
ZiAoa2V5LT5pc3N1ZXJfbmFtZSkKQEAgLTMwNjYsNyArMzEwMiw4IEBACiAgICAgICBzID0ga2V5
LT5pc3N1ZXJfbmFtZTsKICAgICAgIGlmIChzKQogCXsKLQkgIGZwcmludGYgKGZwLCAiSXNzdWVk
IEJ5IC46ICIpOworCSAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJJc3N1ZWQgQnkg
IikpOworCSAgZnByaW50ZiAoZnAsICIlczogIiwgZG90ZmlsbCk7CiAJICBwYXJzZV9hbmRfcHJp
bnRfdXNlcl9pZCAoZnAsIHMpOwogCSAgcHV0YyAoJ1xuJywgZnApOwogCX0KQEAgLTMwODUsNyAr
MzEyMiw4IEBACiAgICAgICAgICAgcHV0YyAoJ1xuJywgZnApOwogICAgICAgICAgIGlmICggc3Ry
bGVuIChzKSA9PSAxNikKICAgICAgICAgICAgIHMgKz0gODsgLyogZGlzcGxheSBvbmx5IHRoZSBz
aG9ydCBrZXlJRCAqLwotICAgICAgICAgIGZwcmludGYgKGZwLCAiU3Via2V5IC4uLi46IDB4JXMi
LCBzKTsKKyAgICAgICAgICBkb3RfZm9ybWF0IChkb3RmaWxsLCBkb3R3aWQsIF8oIlN1YmtleSAi
KSk7CisgICAgICAgICAgZnByaW50ZiAoZnAsICIlczogMHglcyIsIGRvdGZpbGwsIHMpOwogCSAg
aWYgKHN1YmtleS0+cmV2b2tlZCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgcHV0YyAo
JyAnLCBmcCk7CkBAIC0zMTE4LDcgKzMxNTYsOCBAQAogI2Vsc2UKICAgICAgICAgICAgICAgc3Ry
ZnRpbWUgKHNob3J0YnVmLCBzaXplb2Ygc2hvcnRidWYsICIlYyIsIHRtKTsKICNlbmRpZgotICAg
ICAgICAgICAgICBmcHJpbnRmIChmcCwgIlZhbGlkIEZyb20gOiAlc1xuIiwgc2hvcnRidWYpOwor
ICAgICAgICAgICAgICBkb3RfZm9ybWF0IChkb3RmaWxsLCBkb3R3aWQsIF8oIlZhbGlkIEZyb20g
IikpOworICAgICAgICAgICAgICBmcHJpbnRmIChmcCwgIiVzOiAlc1xuIiwgZG90ZmlsbCwgc2hv
cnRidWYpOwogICAgICAgICAgICAgfQogCiAJICBpZiAoc3Via2V5LT5leHBpcmVzID4gMCkKQEAg
LTMxMzEsMzggKzMxNzAsNDIgQEAKICNlbHNlCiAgICAgICAgICAgICAgIHN0cmZ0aW1lIChzaG9y
dGJ1Ziwgc2l6ZW9mIHNob3J0YnVmLCAiJWMiLCB0bSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAg
ZnByaW50ZiAoZnAsICJWYWxpZCBUbyAuLjogJXNcbiIsIHNob3J0YnVmKTsKKyAgICAgICAgICAg
ICAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJWYWxpZCBUbyAiKSk7CisgICAgICAg
ICAgICAgIGZwcmludGYgKGZwLCAiJXM6ICVzXG4iLCBkb3RmaWxsLCBzaG9ydGJ1Zik7CiAgICAg
ICAgICAgICB9CiAKIAkgIGlmIChzdWJrZXkpCiAJICAgIHMgPSBncGdtZV9wdWJrZXlfYWxnb19u
YW1lIChzdWJrZXktPnB1YmtleV9hbGdvKTsKIAkgIGVsc2UKLSAgICAgICAgICAgIHMgPSAiPyI7
CisJICAgIC8qIGZvciB0cmFuc2xhdG9yczogdGhpcyBtZWFucyB1bmtub3duIGFsZ28gbmFtZSAq
LworICAgICAgICAgICAgcyA9IF8oIj8iKTsKIAogCSAgaWYgKHN1YmtleSkKIAkgICAgYXZhbCA9
IHN1YmtleS0+bGVuZ3RoOwogCSAgZWxzZQogCSAgICBhdmFsID0gMDsKIAotICAgICAgICAgIGZw
cmludGYgKGZwLCAiS2V5IFR5cGUgLi46ICVzLCAlbHUgYml0ICVzXG4iLCAiUEdQIiwgYXZhbCwg
cyk7CisgICAgICAgICAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJLZXkgVHlwZSAi
KSk7CisgICAgICAgICAgZnByaW50ZiAoZnAsICIlczogJXMsICVsdSBiaXQgJXNcbiIsIGRvdGZp
bGwsICJQR1AiLCBhdmFsLCBzKTsKIAotICAgICAgICAgIGZwcmludGYgKGZwLCAiS2V5IFVzYWdl
IC46ICIpOworICAgICAgICAgIGRvdF9mb3JtYXQgKGRvdGZpbGwsIGRvdHdpZCwgXygiS2V5IFVz
YWdlICIpKTsKKyAgICAgICAgICBmcHJpbnRmIChmcCwgIiVzOiAiLCBkb3RmaWxsKTsKICAgICAg
ICAgICBkZWxpbSA9ICIiOwogCiAJICBpZiAoc3Via2V5LT5jYW5fZW5jcnlwdCkKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgZnByaW50ZiAoZnAsICIlcyVzIiwgZGVsaW0sIF8oImVuY3J5
cHRpb24iKSk7Ci0gICAgICAgICAgICAgIGRlbGltID0gIiwgIjsKKyAgICAgICAgICAgICAgZGVs
aW0gPSBfKCIsICIpOwogICAgICAgICAgICAgfQogICAgICAgICAgIGlmIChzdWJrZXktPmNhbl9z
aWduKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICBmcHJpbnRmIChmcCwgIiVzJXMiLCBk
ZWxpbSwgXygic2lnbmluZyIpKTsKLSAgICAgICAgICAgICAgZGVsaW0gPSAiLCAiOworICAgICAg
ICAgICAgICBkZWxpbSA9IF8oIiwgIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgaWYgKHN1
YmtleS0+Y2FuX2NlcnRpZnkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGZwcmludGYg
KGZwLCAiJXMlcyIsIGRlbGltLCBfKCJjZXJ0aWZpY2F0aW9uIikpOwotICAgICAgICAgICAgICBk
ZWxpbSA9ICIsICI7CisgICAgICAgICAgICAgIGRlbGltID0gXygiLCAiKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICBwdXRjICgnXG4nLCBmcCk7CiAgICAgICAgIH0KQEAgLTMxOTgsNyArMzI0
MSw3IEBACiAgIGVyciA9IGdwZ21lX25ldyAoJmxpc3RjdHgpOwogICBpZiAoZXJyKQogICAgIHsK
LSAgICAgIGZwcmludGYgKGZwLCAiSW50ZXJuYWwgZXJyb3I6IGNhbid0IGNyZWF0ZSBncGdtZSBj
b250ZXh0OiAlc1xuIiwKKyAgICAgIGZwcmludGYgKGZwLCBfKCJJbnRlcm5hbCBlcnJvcjogY2Fu
J3QgY3JlYXRlIGdwZ21lIGNvbnRleHQ6ICVzXG4iKSwKICAgICAgICAgICAgICAgIGdwZ21lX3N0
cmVycm9yIChlcnIpKTsKICAgICAgIGdvdG8gbGVhdmU7CiAgICAgfQo=