<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>71689</bug_id>
          
          <creation_ts>2004-11-18 12:01 0000</creation_ts>
          <short_desc>diffutils-2.8.4-r4 is utf-8 aware</short_desc>
          <delta_ts>2005-01-03 19:43:04 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Core system</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          <bug_file_loc>http://www.gnu.org/software/diffutils/diffutils.html</bug_file_loc>
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>caglar@pardus.org.tr</reporter>
          <assigned_to>utf8@gentoo.org</assigned_to>
          <cc>base-system@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-11-18 12:01:18 0000</bug_when>
            <thetext>diffutils-2.8.4-r4 is not working with utf-8 locales</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-11-18 12:05:08 0000</bug_when>
            <thetext>Created an attachment (id=44241)
diffutils-2.8.4-i18n.patch

This patch is from mandrake. It solves lots of utf-8 problem but it doesnt work
with tr_TR.UTF-8 locale because of our i/I problem.

Full story can be found on http://www.i18nguy.com/unicode/turkish-i18n.html,
&quot;Turkish Case Mappings and Case-Insensitivity&quot; section :)
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2004-12-16 21:37:04 0000</bug_when>
            <thetext>is a patch still needed for 2.8.7 ?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-12-16 23:10:23 0000</bug_when>
            <thetext>Same situation for diffutils-2.8.7, sample output;

$ diff -iu test1 test2
--- test1       2004-12-17 09:06:46.584342568 +0200
+++ test2       2004-12-17 09:07:14.457105264 +0200
@@ -1,5 +1,4 @@
-</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-12-16 23:10:23 0000</bug_when>
            <thetext>Same situation for diffutils-2.8.7, sample output;

$ diff -iu test1 test2
--- test1       2004-12-17 09:06:46.584342568 +0200
+++ test2       2004-12-17 09:07:14.457105264 +0200
@@ -1,5 +1,4 @@
-ça&amp;#287;lar onur
-bar&amp;#305;&amp;#351; metin
-gürer özen
+ÇA&amp;#286;LAR ONUR
+BARI&amp;#350; MET&amp;#304;N
+GÜRER ÖZEN
 murat eren

$ diff --version
diff (GNU diffutils) 2.8.7
Written by Paul Eggert, Mike Haertel, David Hayes,
Richard Stallman, and Len Tower.

Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-12-16 23:10:47 0000</bug_when>
            <thetext>Created an attachment (id=46193)
test1
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-12-16 23:11:02 0000</bug_when>
            <thetext>Created an attachment (id=46194)
test2
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-12-16 23:11:59 0000</bug_when>
            <thetext>Attached test1 and test2 files are same in tr_TR.UTF-8 locale.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2004-12-16 23:14:58 0000</bug_when>
            <thetext>can you attach an updated patch then for 2.8.7 ?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-12-17 14:30:59 0000</bug_when>
            <thetext>Created an attachment (id=46237)
diffutils-2.8.7-i18n.patch

New version of patch as requested...</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caglar@pardus.org.tr</who>
            <bug_when>2004-12-17 14:31:40 0000</bug_when>
            <thetext>Created an attachment (id=46238)
diffutils-2.8.7.ebuild.patch
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2005-01-03 19:43:04 0000</bug_when>
            <thetext>fixed in 2.8.7-r1, thanks !</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44241</attachid>
            <date>2004-11-18 12:05 0000</date>
            <desc>diffutils-2.8.4-i18n.patch</desc>
            <filename>diffutils-2.8.4-i18n.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGRpZmZ1dGlscy0yLjguNC9zcmMvZGlmZi5jLmkxOG4JMjAwMi0wNi0xNyAwMTo1NTo0Mi4w
MDAwMDAwMDAgLTA0MDAKKysrIGRpZmZ1dGlscy0yLjguNC9zcmMvZGlmZi5jCTIwMDItMTEtMTYg
MTg6NDE6MzcuMDAwMDAwMDAwIC0wNTAwCkBAIC0yNzUsNiArMjc1LDEzIEBACiAgIHJlX3NldF9z
eW50YXggKFJFX1NZTlRBWF9HUkVQIHwgUkVfTk9fUE9TSVhfQkFDS1RSQUNLSU5HKTsKICAgZXhj
bHVkZWQgPSBuZXdfZXhjbHVkZSAoKTsKIAorI2lmZGVmIEhBTkRMRV9NVUxUSUJZVEUKKyAgaWYg
KE1CX0NVUl9NQVggPiAxKQorICAgIGxpbmVzX2RpZmZlciA9IGxpbmVzX2RpZmZlcl9tdWx0aWJ5
dGU7CisgIGVsc2UKKyNlbmRpZgorICAgIGxpbmVzX2RpZmZlciA9IGxpbmVzX2RpZmZlcl9zaW5n
bGVieXRlOworCiAgIC8qIERlY29kZSB0aGUgb3B0aW9ucy4gICovCiAKICAgd2hpbGUgKChjID0g
Z2V0b3B0X2xvbmcgKGFyZ2MsIGFyZ3YsIHNob3J0b3B0cywgbG9uZ29wdHMsIDApKSAhPSAtMSkK
LS0tIGRpZmZ1dGlscy0yLjguNC9zcmMvZGlmZi5oLmkxOG4JMjAwMi0xMS0xNiAxODozMTozMi4w
MDAwMDAwMDAgLTA1MDAKKysrIGRpZmZ1dGlscy0yLjguNC9zcmMvZGlmZi5oCTIwMDItMTEtMTYg
MTg6NDg6NTguMDAwMDAwMDAwIC0wNTAwCkBAIC0yMyw2ICsyMywxOSBAQAogI2luY2x1ZGUgInN5
c3RlbS5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKKy8qIEZvciBwbGF0Zm9ybSB3aGljaCBzdXBw
b3J0IHRoZSBJU08gQyBhbWVuZGVtZW50IDEgZnVuY3Rpb25hbGl0eSB3ZQorICAgc3VwcG9ydCB1
c2VyIGRlZmluZWQgY2hhcmFjdGVyIGNsYXNzZXMuICAqLworI2lmIGRlZmluZWQgSEFWRV9XQ1RZ
UEVfSCAmJiBkZWZpbmVkIEhBVkVfV0NIQVJfSAorLyogU29sYXJpcyAyLjUgaGFzIGEgYnVnOiA8
d2NoYXIuaD4gbXVzdCBiZSBpbmNsdWRlZCBiZWZvcmUgPHdjdHlwZS5oPi4gICovCisjIGluY2x1
ZGUgPHdjaGFyLmg+CisjIGluY2x1ZGUgPHdjdHlwZS5oPgorIyBpZiBkZWZpbmVkIChIQVZFX01C
UlRPV0MpCisjICBkZWZpbmUgSEFORExFX01VTFRJQllURSAgICAgIDEKKyMgZW5kaWYKKyNlbmRp
ZgorCisjZGVmaW5lIFRBQl9XSURUSCA4CisKIC8qIFdoYXQga2luZCBvZiBjaGFuZ2VzIGEgaHVu
ayBjb250YWlucy4gICovCiBlbnVtIGNoYW5nZXMKIHsKQEAgLTM1MCw3ICszNjMsMTMgQEAKIGV4
dGVybiBjaGFyIGNvbnN0IHByX3Byb2dyYW1bXTsKIGNoYXIgKmNvbmNhdCAoY2hhciBjb25zdCAq
LCBjaGFyIGNvbnN0ICosIGNoYXIgY29uc3QgKik7CiBjaGFyICpkaXJfZmlsZV9wYXRobmFtZSAo
Y2hhciBjb25zdCAqLCBjaGFyIGNvbnN0ICopOwotYm9vbCBsaW5lc19kaWZmZXIgKGNoYXIgY29u
c3QgKiwgY2hhciBjb25zdCAqKTsKKworYm9vbCAoKmxpbmVzX2RpZmZlcikgKGNoYXIgY29uc3Qg
KiwgY2hhciBjb25zdCAqKTsKK2Jvb2wgbGluZXNfZGlmZmVyX3NpbmdsZWJ5dGUgKGNoYXIgY29u
c3QgKiwgY2hhciBjb25zdCAqKTsKKyNpZmRlZiBIQU5ETEVfTVVMVElCWVRFCitib29sIGxpbmVz
X2RpZmZlcl9tdWx0aWJ5dGUgKGNoYXIgY29uc3QgKiwgY2hhciBjb25zdCAqKTsKKyNlbmRpZgor
CiBsaW4gdHJhbnNsYXRlX2xpbmVfbnVtYmVyIChzdHJ1Y3QgZmlsZV9kYXRhIGNvbnN0ICosIGxp
bik7CiBzdHJ1Y3QgY2hhbmdlICpmaW5kX2NoYW5nZSAoc3RydWN0IGNoYW5nZSAqKTsKIHN0cnVj
dCBjaGFuZ2UgKmZpbmRfcmV2ZXJzZV9jaGFuZ2UgKHN0cnVjdCBjaGFuZ2UgKik7Ci0tLSBkaWZm
dXRpbHMtMi44LjQvc3JjL2lvLmMuaTE4bgkyMDAyLTA2LTExIDAyOjA2OjMyLjAwMDAwMDAwMCAt
MDQwMAorKysgZGlmZnV0aWxzLTIuOC40L3NyYy9pby5jCTIwMDItMTEtMTYgMTg6NTc6MzAuMDAw
MDAwMDAwIC0wNTAwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8cmVnZXguaD4KICNpbmNs
dWRlIDxzZXRtb2RlLmg+CiAjaW5jbHVkZSA8eGFsbG9jLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+
CiAKIC8qIFJvdGF0ZSBhbiB1bnNpZ25lZCB2YWx1ZSB0byB0aGUgbGVmdC4gICovCiAjZGVmaW5l
IFJPTCh2LCBuKSAoKHYpIDw8IChuKSB8ICh2KSA+PiAoc2l6ZW9mICh2KSAqIENIQVJfQklUIC0g
KG4pKSkKQEAgLTIxMyw2ICsyMTQsMjggQEAKIAwKIC8qIFNwbGl0IHRoZSBmaWxlIGludG8gbGlu
ZXMsIHNpbXVsdGFuZW91c2x5IGNvbXB1dGluZyB0aGUgZXF1aXZhbGVuY2UKICAgIGNsYXNzIGZv
ciBlYWNoIGxpbmUuICAqLworI2lmZGVmIEhBTkRMRV9NVUxUSUJZVEUKKyMgZGVmaW5lIE1CQzJX
QyhQLCBFTkQsIE1CTEVOR1RILCBXQywgU1RBVEUsIENPTlZGQUlMKQkJCVwKK2RvCQkJCQkJCQkJ
XAorewkJCQkJCQkJCVwKKyAgICBtYnN0YXRlX3Qgc3RhdGVfYmFrID0gU1RBVEU7CQkJCQlcCisJ
CQkJCQkJCQlcCisgICAgQ09OVkZBSUwgPSAwOwkJCQkJCQlcCisgICAgTUJMRU5HVEggPSBtYnJ0
b3djICgmV0MsIFAsIEVORCAtIChjaGFyIGNvbnN0ICopUCwgJlNUQVRFKTsJCVwKKwkJCQkJCQkJ
CVwKKyAgICBzd2l0Y2ggKE1CTEVOR1RIKQkJCQkJCQlcCisgICAgICB7CQkJCQkJCQkJXAorICAg
ICAgY2FzZSAoc2l6ZV90KS0yOgkJCQkJCQlcCisgICAgICBjYXNlIChzaXplX3QpLTE6CQkJCQkJ
CVwKKwlTVEFURSA9IHN0YXRlX2JhazsJCQkJCQlcCisJKytDT05WRkFJTDsJCQkJCQkJXAorCSAg
LyogRmFsbCB0aHJvdWdoLiAqLwkJCQkJCVwKKyAgICAgIGNhc2UgMDoJCQkJCQkJCVwKKwlNQkxF
TkdUSCA9IDE7CQkJCQkJCVwKKyAgICAgIH0JCQkJCQkJCQlcCit9CQkJCQkJCQkJXAord2hpbGUg
KDApCisjZW5kaWYKIAogc3RhdGljIHZvaWQKIGZpbmRfYW5kX2hhc2hfZWFjaF9saW5lIChzdHJ1
Y3QgZmlsZV9kYXRhICpjdXJyZW50KQpAQCAtMjM5LDEyICsyNjIsMjgwIEBACiAgIGJvb2wgc2Ft
ZV9sZW5ndGhfZGlmZl9jb250ZW50c19jb21wYXJlX2FueXdheSA9CiAgICAgZGlmZl9sZW5ndGhf
Y29tcGFyZV9hbnl3YXkgfCBpZ25vcmVfY2FzZTsKIAorI2lmZGVmIEhBTkRMRV9NVUxUSUJZVEUK
KyAgd2NoYXJfdCAgIHdjOworICBzaXplX3QgICAgbWJsZW5ndGg7CisgIG1ic3RhdGVfdCBzdGF0
ZTsKKyAgaW50ICAgICAgIGNvbnZmYWlsOworICAKKyAgbWVtc2V0ICgmc3RhdGUsICdcMCcsIHNp
emVvZiAobWJzdGF0ZV90KSk7CisjZW5kaWYKKwogICB3aGlsZSAoKGNoYXIgY29uc3QgKikgcCA8
IHN1ZmZpeF9iZWdpbikKICAgICB7CiAgICAgICBjaGFyIGNvbnN0ICppcCA9IChjaGFyIGNvbnN0
ICopIHA7CiAKICAgICAgIGggPSAwOworI2lmZGVmIEhBTkRMRV9NVUxUSUJZVEUKKyAgICAgIGlm
IChNQl9DVVJfTUFYID4gMSkKKwl7CisJICB3Y2hhcl90ICAgbG9fd2M7CisJICBjaGFyCSAgICBt
YmNbTUJfTEVOX01BWF07CisJICBtYnN0YXRlX3Qgc3RhdGVfd2M7CisKKwkgIC8qIEhhc2ggdGhp
cyBsaW5lIHVudGlsIHdlIGZpbmQgYSBuZXdsaW5lLiAgKi8KKwkgIHN3aXRjaCAoaWdub3JlX3do
aXRlX3NwYWNlKQorCSAgICB7CisJICAgIGNhc2UgSUdOT1JFX0FMTF9TUEFDRToKKwkgICAgICB3
aGlsZSAoMSkKKwkJeworCQkgIGlmICgqcCA9PSAnXG4nKQorCQkgICAgeworCQkgICAgICArK3A7
CisJCSAgICAgIGJyZWFrOworCQkgICAgfQorCisJCSAgTUJDMldDIChwLCBzdWZmaXhfYmVnaW4s
IG1ibGVuZ3RoLCB3Yywgc3RhdGUsIGNvbnZmYWlsKTsKKworCQkgIGlmIChjb252ZmFpbCkKKwkJ
ICAgIG1iY1swXSA9ICpwKys7CisJCSAgZWxzZSBpZiAoIWlzd3NwYWNlICh3YykpCisJCSAgICB7
CisJCSAgICAgIGJvb2wgZmxhZyA9IDA7CisKKwkJICAgICAgaWYgKGlnbm9yZV9jYXNlKQorCQkJ
eworCQkJICBsb193YyA9IHRvd2xvd2VyICh3Yyk7CisJCQkgIGlmIChsb193YyAhPSB3YykKKwkJ
CSAgICB7CisJCQkgICAgICBmbGFnID0gMTsKKworCQkJICAgICAgcCArPSBtYmxlbmd0aDsKKwkJ
CSAgICAgIG1lbXNldCAoJnN0YXRlX3djLCAnXDAnLCBzaXplb2YobWJzdGF0ZV90KSk7CisJCQkg
ICAgICBtYmxlbmd0aCA9IHdjcnRvbWIgKG1iYywgbG9fd2MsICZzdGF0ZV93Yyk7CisKKwkJCSAg
ICAgIGFzc2VydCAobWJsZW5ndGggIT0gKHNpemVfdCktMSAmJgorCQkJCSAgbWJsZW5ndGggIT0g
KHNpemVfdCktMik7CisKKwkJCSAgICAgIG1ibGVuZ3RoID0gKG1ibGVuZ3RoIDwgMSkgPyAxIDog
bWJsZW5ndGg7CisJCQkgICAgfQorCQkJfQorCisJCSAgICAgIGlmICghZmxhZykKKwkJCXsKKwkJ
CSAgZm9yIChpID0gMDsgaSA8IG1ibGVuZ3RoOyBpKyspCisJCQkgICAgbWJjW2ldID0gICpwKys7
CisJCQl9CisJCSAgICB9CisJCSAgZWxzZQorCQkgICAgeworCQkgICAgICBwICs9IG1ibGVuZ3Ro
OworCQkgICAgICBjb250aW51ZTsKKwkJICAgIH0KKworCQkgIGZvciAoaSA9IDA7IGkgPCBtYmxl
bmd0aDsgaSsrKQorCQkgICAgaCA9IEhBU0ggKGgsIG1iY1tpXSk7CisJCX0KKwkgICAgICBicmVh
azsKKworCSAgICBjYXNlIElHTk9SRV9TUEFDRV9DSEFOR0U6CisJICAgICAgd2hpbGUgKDEpCisJ
CXsKKwkJICBpZiAoKnAgPT0gJ1xuJykKKwkJICAgIHsKKwkJICAgICAgKytwOworCQkgICAgICBi
cmVhazsKKwkJICAgIH0KIAorCQkgIE1CQzJXQyAocCwgc3VmZml4X2JlZ2luLCBtYmxlbmd0aCwg
d2MsIHN0YXRlLCBjb252ZmFpbCk7CisKKwkJICBpZiAoIWNvbnZmYWlsICYmIGlzd3NwYWNlICh3
YykpCisJCSAgICB7CisJCSAgICAgIHdoaWxlICgxKQorCQkJeworCQkJICBpZiAoKnAgPT0gJ1xu
JykKKwkJCSAgICB7CisJCQkgICAgICArK3A7CisJCQkgICAgICBnb3RvIGhhc2hpbmdfZG9uZTsK
KwkJCSAgICB9CisKKwkJCSAgcCArPSBtYmxlbmd0aDsKKwkJCSAgTUJDMldDIChwLCBzdWZmaXhf
YmVnaW4sIG1ibGVuZ3RoLCB3Yywgc3RhdGUsIGNvbnZmYWlsKTsKKwkJCSAgaWYgKGNvbnZmYWls
IHx8ICghY29udmZhaWwgJiYgIWlzd3NwYWNlICh3YykpKQorCQkJICAgIGJyZWFrOworCQkJfQor
CQkgICAgICBoID0gSEFTSCAoaCwgJyAnKTsKKwkJICAgIH0KKworCQkgIC8qIFdDIGlzIG5vdyB0
aGUgZmlyc3Qgbm9uLXNwYWNlLiAgKi8KKwkJICBpZiAoY29udmZhaWwpCisJCSAgICBtYmNbMF0g
PSAqcCsrOworCQkgIGVsc2UKKwkJICAgIHsKKwkJICAgICAgYm9vbCBmbGFnID0gMDsKKworCQkg
ICAgICBpZiAoaWdub3JlX2Nhc2UpCisJCQl7CisJCQkgIGxvX3djID0gdG93bG93ZXIgKHdjKTsK
KwkJCSAgaWYgKGxvX3djICE9IHdjKQorCQkJICAgIHsKKwkJCSAgICAgIGZsYWcgPSAxOworCisJ
CQkgICAgICBwICs9IG1ibGVuZ3RoOworCQkJICAgICAgbWVtc2V0ICgmc3RhdGVfd2MsICdcMCcs
IHNpemVvZihtYnN0YXRlX3QpKTsKKwkJCSAgICAgIG1ibGVuZ3RoID0gd2NydG9tYiAobWJjLCBs
b193YywgJnN0YXRlX3djKTsKKworCQkJICAgICAgYXNzZXJ0IChtYmxlbmd0aCAhPSAoc2l6ZV90
KS0xICYmCisJCQkJICBtYmxlbmd0aCAhPSAoc2l6ZV90KS0yKTsKKworCQkJICAgICAgbWJsZW5n
dGggPSAobWJsZW5ndGggPCAxKSA/IDEgOiBtYmxlbmd0aDsKKwkJCSAgICB9CisJCQl9CisKKwkJ
ICAgICAgaWYgKCFmbGFnKQorCQkJeworCQkJICBmb3IgKGkgPSAwOyBpIDwgbWJsZW5ndGg7IGkr
KykKKwkJCSAgICBtYmNbaV0gPSAqcCsrOworCQkJfQorCQkgICAgfQorCisJCSAgZm9yIChpID0g
MDsgaSA8IG1ibGVuZ3RoOyBpKyspCisJCSAgICBoID0gSEFTSCAoaCwgbWJjW2ldKTsKKwkJfQor
CSAgICAgIGJyZWFrOworCisJICAgIGNhc2UgSUdOT1JFX1RBQl9FWFBBTlNJT046CisJCXsKKwkJ
ICBzaXplX3QgY29sdW1uID0gMDsKKworCQkgIHdoaWxlICgxKQorCQkgICAgeworCQkgICAgICBp
ZiAoKnAgPT0gJ1xuJykKKwkJCXsKKwkJCSAgKytwOworCQkJICBicmVhazsKKwkJCX0KKworCQkg
ICAgICBNQkMyV0MgKHAsIHN1ZmZpeF9iZWdpbiwgbWJsZW5ndGgsIHdjLCBzdGF0ZSwgY29udmZh
aWwpOworCisJCSAgICAgIGlmIChjb252ZmFpbCkKKwkJCXsKKwkJCSAgaCA9IEhBU0ggKGgsICpw
KyspOworCQkJICArK2NvbHVtbjsKKwkJCX0KKwkJICAgICAgZWxzZQorCQkJeworCQkJICBib29s
IGZsYWc7CisKKwkJCSAgc3dpdGNoICh3YykKKwkJCSAgICB7CisJCQkgICAgY2FzZSBMJ1xiJzoK
KwkJCSAgICAgIGNvbHVtbiAtPSAwIDwgY29sdW1uOworCQkJICAgICAgaCA9IEhBU0ggKGgsICdc
YicpOworCQkJICAgICAgKytwOworCQkJICAgICAgYnJlYWs7CisKKwkJCSAgICBjYXNlIEwnXHQn
OgorCQkJCXsKKwkJCQkgIGludCByZXBldGl0aW9uczsKKworCQkJCSAgcmVwZXRpdGlvbnMgPSBU
QUJfV0lEVEggLSBjb2x1bW4gJSBUQUJfV0lEVEg7CisJCQkJICBjb2x1bW4gKz0gcmVwZXRpdGlv
bnM7CisJCQkJICBkbworCQkJCSAgICBoID0gSEFTSCAoaCwgJyAnKTsKKwkJCQkgIHdoaWxlICgt
LXJlcGV0aXRpb25zICE9IDApOworCQkJCSAgKytwOworCQkJCX0KKwkJCSAgICAgIGJyZWFrOwor
CisJCQkgICAgY2FzZSBMJ1xyJzoKKwkJCSAgICAgIGNvbHVtbiA9IDA7CisJCQkgICAgICBoID0g
SEFTSCAoaCwgJ1xyJyk7CisJCQkgICAgICArK3A7CisJCQkgICAgICBicmVhazsKKworCQkJICAg
IGRlZmF1bHQ6CisJCQkgICAgICBmbGFnID0gMDsKKwkJCSAgICAgIGNvbHVtbiArPSB3Y3dpZHRo
ICh3Yyk7CisJCQkgICAgICBpZiAoaWdub3JlX2Nhc2UpCisJCQkJeworCQkJCSAgbG9fd2MgPSB0
b3dsb3dlciAod2MpOworCQkJCSAgaWYgKGxvX3djICE9IHdjKQorCQkJCSAgICB7CisJCQkJICAg
ICAgZmxhZyA9IDE7CisJCQkJICAgICAgcCArPSBtYmxlbmd0aDsKKwkJCQkgICAgICBtZW1zZXQg
KCZzdGF0ZV93YywgJ1wwJywgc2l6ZW9mKG1ic3RhdGVfdCkpOworCQkJCSAgICAgIG1ibGVuZ3Ro
ID0gd2NydG9tYiAobWJjLCBsb193YywgJnN0YXRlX3djKTsKKworCQkJCSAgICAgIGFzc2VydCAo
bWJsZW5ndGggIT0gKHNpemVfdCktMSAmJgorCQkJCQkgIG1ibGVuZ3RoICE9IChzaXplX3QpLTIp
OworCisJCQkJICAgICAgbWJsZW5ndGggPSAobWJsZW5ndGggPCAxKSA/IDEgOiBtYmxlbmd0aDsK
KwkJCQkgICAgfQorCQkJCX0KKworCQkJICAgICAgaWYgKCFmbGFnKQorCQkJCXsKKwkJCQkgIGZv
ciAoaSA9IDA7IGkgPCBtYmxlbmd0aDsgaSsrKQorCQkJCSAgICBtYmNbaV0gPSAqcCsrOworCQkJ
CX0KKworCQkJICAgICAgZm9yIChpID0gMDsgaSA8IG1ibGVuZ3RoOyBpKyspCisJCQkJaCA9IEhB
U0ggKGgsIG1iY1tpXSk7CisJCQkgICAgfQorCQkJfQorCQkgICAgfQorCQl9CisJICAgICAgYnJl
YWs7CisKKwkgICAgZGVmYXVsdDoKKwkgICAgICB3aGlsZSAoMSkKKwkJeworCQkgIGlmICgqcCA9
PSAnXG4nKQorCQkgICAgeworCQkgICAgICArK3A7CisJCSAgICAgIGJyZWFrOworCQkgICAgfQor
CisJCSAgTUJDMldDIChwLCBzdWZmaXhfYmVnaW4sIG1ibGVuZ3RoLCB3Yywgc3RhdGUsIGNvbnZm
YWlsKTsKKworCQkgIGlmIChjb252ZmFpbCkKKwkJICAgIG1iY1swXSA9ICpwKys7CisJCSAgZWxz
ZQorCQkgICAgeworCQkgICAgICBpbnQgZmxhZyA9IDA7CisKKwkJICAgICAgaWYgKGlnbm9yZV9j
YXNlKQorCQkJeworCQkJICBsb193YyA9IHRvd2xvd2VyICh3Yyk7CisJCQkgIGlmIChsb193YyAh
PSB3YykKKwkJCSAgICB7CisJCQkgICAgICBmbGFnID0gMTsKKwkJCSAgICAgIHAgKz0gbWJsZW5n
dGg7CisJCQkgICAgICBtZW1zZXQgKCZzdGF0ZV93YywgJ1wwJywgc2l6ZW9mKG1ic3RhdGVfdCkp
OworCQkJICAgICAgbWJsZW5ndGggPSB3Y3J0b21iIChtYmMsIGxvX3djLCAmc3RhdGVfd2MpOwor
CisJCQkgICAgICBhc3NlcnQgKG1ibGVuZ3RoICE9IChzaXplX3QpLTEgJiYKKwkJCQkgIG1ibGVu
Z3RoICE9IChzaXplX3QpLTIpOworCisJCQkgICAgICBtYmxlbmd0aCA9IChtYmxlbmd0aCA8IDEp
ID8gMSA6IG1ibGVuZ3RoOworCQkJICAgIH0KKwkJCX0KKworCQkgICAgICBpZiAoIWZsYWcpCisJ
CQl7CisJCQkgIGZvciAoaSA9IDA7IGkgPCBtYmxlbmd0aDsgaSsrKQorCQkJICAgIG1iY1tpXSA9
ICpwKys7CisJCQl9CisJCSAgICB9CisKKwkJICBmb3IgKGkgPSAwOyBpIDwgbWJsZW5ndGg7IGkr
KykKKwkJICAgIGggPSBIQVNIIChoLCBtYmNbaV0pOworCQl9CisJICAgIH0KKwl9CisgICAgICBl
bHNlCisjZW5kaWYKICAgICAgIC8qIEhhc2ggdGhpcyBsaW5lIHVudGlsIHdlIGZpbmQgYSBuZXds
aW5lLiAgKi8KICAgICAgIGlmIChpZ25vcmVfY2FzZSkKIAlzd2l0Y2ggKGlnbm9yZV93aGl0ZV9z
cGFjZSkKLS0tIGRpZmZ1dGlscy0yLjguNC9zcmMvc2lkZS5jLmkxOG4JMjAwMi0wNi0xMSAwMjow
NjozMi4wMDAwMDAwMDAgLTA0MDAKKysrIGRpZmZ1dGlscy0yLjguNC9zcmMvc2lkZS5jCTIwMDIt
MTEtMTYgMTg6NDE6MzcuMDAwMDAwMDAwIC0wNTAwCkBAIC03MywxMSArNzMsNzIgQEAKICAgcmVn
aXN0ZXIgc2l6ZV90IG91dF9wb3NpdGlvbiA9IDA7CiAgIHJlZ2lzdGVyIGNoYXIgY29uc3QgKnRl
eHRfcG9pbnRlciA9IGxpbmVbMF07CiAgIHJlZ2lzdGVyIGNoYXIgY29uc3QgKnRleHRfbGltaXQg
PSBsaW5lWzFdOworI2lmIGRlZmluZWQgSEFWRV9XQ0hBUl9IICYmIGRlZmluZWQgSEFWRV9XQ1RZ
UEVfSAorICB1bnNpZ25lZCBjaGFyIG1iY1tNQl9MRU5fTUFYXTsKKyAgd2NoYXJfdCB3YzsKKyAg
bWJzdGF0ZV90IHN0YXRlLCBzdGF0ZV9iYWs7CisgIHNpemVfdCBtYmNfcG9zLCBtYmxlbmd0aDsK
KyAgaW50IG1iY19sb2FkaW5nX2ZsYWcgPSAwOworICBpbnQgd2Nfd2lkdGg7CisKKyAgbWVtc2V0
ICgmc3RhdGUsICdcMCcsIHNpemVvZiAobWJzdGF0ZV90KSk7CisjZW5kaWYKIAogICB3aGlsZSAo
dGV4dF9wb2ludGVyIDwgdGV4dF9saW1pdCkKICAgICB7CiAgICAgICByZWdpc3RlciB1bnNpZ25l
ZCBjaGFyIGMgPSAqdGV4dF9wb2ludGVyKys7CiAKKyNpZiBkZWZpbmVkIEhBVkVfV0NIQVJfSCAm
JiBkZWZpbmVkIEhBVkVfV0NUWVBFX0gKKyAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBtYmNf
bG9hZGluZ19mbGFnKQorCXsKKwkgIG1iY19sb2FkaW5nX2ZsYWcgPSAwOworCSAgc3RhdGVfYmFr
ID0gc3RhdGU7CisJICBtYmNbbWJjX3BvcysrXSA9IGM7CisKK3Byb2Nlc3NfbWJjOgorCSAgbWJs
ZW5ndGggPSBtYnJ0b3djICgmd2MsIG1iYywgbWJjX3BvcywgJnN0YXRlKTsKKworCSAgc3dpdGNo
IChtYmxlbmd0aCkKKwkgICAgeworCSAgICBjYXNlIChzaXplX3QpLTI6CS8qIEluY29tcGxldGUg
bXVsdGlieXRlIGNoYXJhY3Rlci4gKi8KKwkgICAgICBtYmNfbG9hZGluZ19mbGFnID0gMTsKKwkg
ICAgICBzdGF0ZSA9IHN0YXRlX2JhazsKKwkgICAgICBicmVhazsKKworCSAgICBjYXNlIChzaXpl
X3QpLTE6CS8qIEludmFsaWQgYXMgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyLiAqLworCSAgICAgIGlm
IChpbl9wb3NpdGlvbisrIDwgb3V0X2JvdW5kKQorCQl7CisJCSAgb3V0X3Bvc2l0aW9uID0gaW5f
cG9zaXRpb247CisJCSAgcHV0YyAobWJjWzBdLCBvdXQpOworCQl9CisJICAgICAgbWVtbW92ZSAo
bWJjLCBtYmMgKyAxLCAtLW1iY19wb3MpOworCSAgICAgIGlmIChtYmNfcG9zID4gMCkKKwkJewor
CQkgIG1iY1ttYmNfcG9zXSA9ICdcMCc7CisJCSAgZ290byBwcm9jZXNzX21iYzsKKwkJfQorCSAg
ICAgIGJyZWFrOworCisJICAgIGRlZmF1bHQ6CisJICAgICAgd2Nfd2lkdGggPSB3Y3dpZHRoICh3
Yyk7CisJICAgICAgaWYgKHdjX3dpZHRoIDwgMSkJLyogVW5wcmludGFibGUgbXVsdGlieXRlIGNo
YXJhY3Rlci4gKi8KKwkJeworCQkgIGlmIChpbl9wb3NpdGlvbiA8PSBvdXRfYm91bmQpCisJCSAg
ICBmcHJpbnRmIChvdXQsICIlbGMiLCAod2ludF90KXdjKTsKKwkJfQorCSAgICAgIGVsc2UJCS8q
IFByaW50YWJsZSBtdWx0aWJ5dGUgY2hhcmFjdGVyLiAqLworCQl7CisJCSAgaW5fcG9zaXRpb24g
Kz0gd2Nfd2lkdGg7CisJCSAgaWYgKGluX3Bvc2l0aW9uIDw9IG91dF9ib3VuZCkKKwkJICAgIHsK
KwkJICAgICAgb3V0X3Bvc2l0aW9uID0gaW5fcG9zaXRpb247CisJCSAgICAgIGZwcmludGYgKG91
dCwgIiVsYyIsICh3aW50X3Qpd2MpOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgIGNvbnRpbnVl
OworCX0KKyNlbmRpZgogICAgICAgc3dpdGNoIChjKQogCXsKIAljYXNlICdcdCc6CkBAIC0xMzUs
OCArMTk2LDM5IEBACiAJICBicmVhazsKIAogCWRlZmF1bHQ6Ci0JICBpZiAoISBJU1BSSU5UIChj
KSkKLQkgICAgZ290byBjb250cm9sX2NoYXI7CisjaWYgZGVmaW5lZCBIQVZFX1dDSEFSX0ggJiYg
ZGVmaW5lZCBIQVZFX1dDVFlQRV9ICisJICBpZiAoTUJfQ1VSX01BWCA+IDEpCisJICAgIHsKKwkg
ICAgICBtZW1zZXQgKG1iYywgJ1wwJywgTUJfTEVOX01BWCk7CisJICAgICAgbWJjX3BvcyA9IDA7
CisJICAgICAgbWJjW21iY19wb3MrK10gPSBjOworCSAgICAgIHN0YXRlX2JhayA9IHN0YXRlOwor
CisJICAgICAgbWJsZW5ndGggPSBtYnJ0b3djICgmd2MsIG1iYywgbWJjX3BvcywgJnN0YXRlKTsK
KworCSAgICAgIC8qIFRoZSB2YWx1ZSBvZiBtYmxlbmd0aCBpcyBhbHdheXMgbGVzcyB0aGFuIDIg
aGVyZS4gKi8KKwkgICAgICBzd2l0Y2ggKG1ibGVuZ3RoKQorCQl7CisJCWNhc2UgKHNpemVfdCkt
MjoJLyogSW5jb21wbGV0ZSBtdWx0aWJ5dGUgY2hhcmFjdGVyLiAqLworCQkgIHN0YXRlID0gc3Rh
dGVfYmFrOworCQkgIG1iY19sb2FkaW5nX2ZsYWcgPSAxOworCQkgIGNvbnRpbnVlOworCisJCWNh
c2UgKHNpemVfdCktMToJLyogSW52YWxpZCBhcyBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIuICovCisJ
CSAgc3RhdGUgPSBzdGF0ZV9iYWs7CisJCSAgYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJICBpZiAo
ISBpc3dwcmludCAod2MpKQorCQkgICAgZ290byBjb250cm9sX2NoYXI7CisJCX0KKwkgICAgfQor
CSAgZWxzZQorI2VuZGlmCisJICAgIHsKKwkgICAgICBpZiAoISBJU1BSSU5UIChjKSkKKwkJZ290
byBjb250cm9sX2NoYXI7CisJICAgIH0KIAkgIC8qIGZhbGxzIHRocm91Z2ggKi8KIAljYXNlICcg
JzoKIAkgIGlmIChpbl9wb3NpdGlvbisrIDwgb3V0X2JvdW5kKQotLS0gZGlmZnV0aWxzLTIuOC40
L3NyYy91dGlsLmMuaTE4bgkyMDAyLTA2LTExIDAyOjA2OjMyLjAwMDAwMDAwMCAtMDQwMAorKysg
ZGlmZnV0aWxzLTIuOC40L3NyYy91dGlsLmMJMjAwMi0xMS0xNiAxODo0MTozNy4wMDAwMDAwMDAg
LTA1MDAKQEAgLTMyMSw3ICszMjEsNyBAQAogICAgUmV0dXJuIG5vbnplcm8gaWYgdGhlIGxpbmVz
IGRpZmZlci4gICovCiAKIGJvb2wKLWxpbmVzX2RpZmZlciAoY2hhciBjb25zdCAqczEsIGNoYXIg
Y29uc3QgKnMyKQorbGluZXNfZGlmZmVyX3NpbmdsZWJ5dGUgKGNoYXIgY29uc3QgKnMxLCBjaGFy
IGNvbnN0ICpzMikKIHsKICAgcmVnaXN0ZXIgdW5zaWduZWQgY2hhciBjb25zdCAqdDEgPSAodW5z
aWduZWQgY2hhciBjb25zdCAqKSBzMTsKICAgcmVnaXN0ZXIgdW5zaWduZWQgY2hhciBjb25zdCAq
dDIgPSAodW5zaWduZWQgY2hhciBjb25zdCAqKSBzMjsKQEAgLTQ1MCw2ICs0NTAsMjkzIEBACiAK
ICAgcmV0dXJuIDE7CiB9CisKKyNpZmRlZiBIQU5ETEVfTVVMVElCWVRFCisjIGRlZmluZSBNQkMy
V0MoVCwgRU5ELCBNQkxFTkdUSCwgV0MsIFNUQVRFLCBDT05WRkFJTCkJCQlcCitkbwkJCQkJCQkJ
CVwKK3sJCQkJCQkJCQlcCisgICAgbWJzdGF0ZV90IGJhayA9IFNUQVRFOwkJCQkJCVwKKwkJCQkJ
CQkJCVwKKyAgICBDT05WRkFJTCA9IDA7CQkJCQkJCVwKKyAgICBNQkxFTkdUSCA9IG1icnRvd2Mg
KCZXQywgVCwgRU5EIC0gVCwgJlNUQVRFKTsJCQlcCisJCQkJCQkJCQlcCisgICAgc3dpdGNoIChN
QkxFTkdUSCkJCQkJCQkJXAorICAgICAgewkJCQkJCQkJCVwKKyAgICAgIGNhc2UgKHNpemVfdCkt
MjoJCQkJCQkJXAorICAgICAgY2FzZSAoc2l6ZV90KS0xOgkJCQkJCQlcCisJU1RBVEUgPSBiYWs7
CQkJCQkJCVwKKwkrK0NPTlZGQUlMOwkJCQkJCQlcCisJICAvKiBGYWxsIHRocm91Z2guICovCQkJ
CQkJXAorICAgICAgY2FzZSAwOgkJCQkJCQkJXAorCU1CTEVOR1RIID0gMTsJCQkJCQkJXAorICAg
ICAgfQkJCQkJCQkJCVwKK30JCQkJCQkJCQlcCit3aGlsZSAoMCkKKworYm9vbAorbGluZXNfZGlm
ZmVyX211bHRpYnl0ZSAoY2hhciBjb25zdCAqczEsIGNoYXIgY29uc3QgKnMyKQoreworICB1bnNp
Z25lZCBjaGFyIGNvbnN0ICplbmQxLCAqZW5kMjsKKyAgdW5zaWduZWQgY2hhciBjMSwgYzI7Cisg
IHdjaGFyX3Qgd2MxLCB3YzIsIHdjMV9iYWssIHdjMl9iYWs7CisgIHNpemVfdCBtYmxlbjEsIG1i
bGVuMjsKKyAgbWJzdGF0ZV90IHN0YXRlMSwgc3RhdGUyLCBzdGF0ZTFfYmFrLCBzdGF0ZTJfYmFr
OworICBpbnQgY29udmZhaWwxLCBjb252ZmFpbDIsIGNvbnZmYWlsMV9iYWssIGNvbnZmYWlsMl9i
YWs7CisgIAorICB1bnNpZ25lZCBjaGFyIGNvbnN0ICp0MSA9ICh1bnNpZ25lZCBjaGFyIGNvbnN0
ICopIHMxOworICB1bnNpZ25lZCBjaGFyIGNvbnN0ICp0MiA9ICh1bnNpZ25lZCBjaGFyIGNvbnN0
ICopIHMyOworICB1bnNpZ25lZCBjaGFyIGNvbnN0ICp0MV9iYWssICp0Ml9iYWs7CisgIHNpemVf
dCBjb2x1bW4gPSAwOworCisgIGlmIChpZ25vcmVfd2hpdGVfc3BhY2UgPT0gSUdOT1JFX05PX1dI
SVRFX1NQQUNFICAmJiAhaWdub3JlX2Nhc2UpCisgICAgeworICAgICAgd2hpbGUgKCp0MSAhPSAn
XG4nKQorCWlmICgqdDErKyAhPSAqIHQyKyspCisJICByZXR1cm4gMTsKKyAgICAgIHJldHVybiAw
OworICAgIH0KKworICBtZW1zZXQgKCZzdGF0ZTEsICdcMCcsIHNpemVvZiAobWJzdGF0ZV90KSk7
CisgIG1lbXNldCAoJnN0YXRlMiwgJ1wwJywgc2l6ZW9mIChtYnN0YXRlX3QpKTsKKworICBlbmQx
ID0gczEgKyBzdHJsZW4gKHMxKTsKKyAgZW5kMiA9IHMyICsgc3RybGVuIChzMik7CisKKyAgd2hp
bGUgKDEpCisgICAgeworICAgICAgYzEgPSAqdDE7CisgICAgICBjMiA9ICp0MjsKKyAgICAgIE1C
QzJXQyAodDEsIGVuZDEsIG1ibGVuMSwgd2MxLCBzdGF0ZTEsIGNvbnZmYWlsMSk7CisgICAgICBN
QkMyV0MgKHQyLCBlbmQyLCBtYmxlbjIsIHdjMiwgc3RhdGUyLCBjb252ZmFpbDIpOworCisgICAg
ICAvKiBUZXN0IGZvciBleGFjdCBjaGFyIGVxdWFsaXR5IGZpcnN0LCBzaW5jZSBpdCdzIGEgY29t
bW9uIGNhc2UuICAqLworICAgICAgaWYgKGNvbnZmYWlsMSBeIGNvbnZmYWlsMikKKwlicmVhazsK
KyAgICAgIGVsc2UgaWYgKGNvbnZmYWlsMSAmJiBjb252ZmFpbDIgJiYgYzEgIT0gYzIpCisJYnJl
YWs7CisgICAgICBlbHNlIGlmICghY29udmZhaWwxICYmICFjb252ZmFpbDIgJiYgd2MxICE9IHdj
MikKKwl7CisJICBzd2l0Y2ggKGlnbm9yZV93aGl0ZV9zcGFjZSkKKwkgICAgeworCSAgICBjYXNl
IElHTk9SRV9BTExfU1BBQ0U6CisJICAgICAgLyogRm9yIC13LCBqdXN0IHNraXAgcGFzdCBhbnkg
d2hpdGUgc3BhY2UuICAqLworCSAgICAgIHdoaWxlICgxKQorCQl7CisJCSAgaWYgKGNvbnZmYWls
MSkKKwkJICAgIGJyZWFrOworCQkgIGVsc2UgaWYgKHdjMSA9PSBMJ1xuJyB8fCAhaXN3c3BhY2Ug
KHdjMSkpCisJCSAgICBicmVhazsKKworCQkgIHQxICs9IG1ibGVuMTsKKwkJICBjMSA9ICp0MTsK
KwkJICBNQkMyV0MgKHQxLCBlbmQxLCBtYmxlbjEsIHdjMSwgc3RhdGUxLCBjb252ZmFpbDEpOwor
CQl9CisKKwkgICAgICB3aGlsZSAoMSkKKwkJeworCQkgIGlmIChjb252ZmFpbDIpCisJCSAgICBi
cmVhazsKKwkJICBlbHNlIGlmICh3YzIgPT0gTCdcbicgfHwgIWlzd3NwYWNlICh3YzIpKQorCQkg
ICAgYnJlYWs7CisKKwkJICB0MiArPSBtYmxlbjI7CisJCSAgYzIgPSAqdDI7CisJCSAgTUJDMldD
ICh0MiwgZW5kMiwgbWJsZW4yLCB3YzIsIHN0YXRlMiwgY29udmZhaWwyKTsKKwkJfQorCSAgICAg
IHQxICs9IG1ibGVuMTsKKwkgICAgICB0MiArPSBtYmxlbjI7CisJICAgICAgYnJlYWs7CisKKwkg
ICAgY2FzZSBJR05PUkVfU1BBQ0VfQ0hBTkdFOgorCSAgICAgIC8qIEZvciAtYiwgYWR2YW5jZSBw
YXN0IGFueSBzZXF1ZW5jZSBvZiB3aGl0ZSBzcGFjZSBpbgorCQkgbGluZSAxIGFuZCBjb25zaWRl
ciBpdCBqdXN0IG9uZSBzcGFjZSwgb3Igbm90aGluZyBhdAorCQkgYWxsIGlmIGl0IGlzIGF0IHRo
ZSBlbmQgb2YgdGhlIGxpbmUuICAqLworCSAgICAgIGlmICh3YzEgIT0gTCdcbicgJiYgaXN3c3Bh
Y2UgKHdjMSkpCisJCXsKKwkJICBzaXplX3QgbWJsZW5fYmFrOworCQkgIG1ic3RhdGVfdCBzdGF0
ZV9iYWs7CisKKwkJICBkbworCQkgICAgeworCQkgICAgICB0MSArPSBtYmxlbjE7CisJCSAgICAg
IG1ibGVuX2JhayA9IG1ibGVuMTsKKwkJICAgICAgc3RhdGVfYmFrID0gc3RhdGUxOworCQkgICAg
ICBNQkMyV0MgKHQxLCBlbmQxLCBtYmxlbjEsIHdjMSwgc3RhdGUxLCBjb252ZmFpbDEpOworCQkg
ICAgfQorCQkgIHdoaWxlICghY29udmZhaWwxICYmICh3YzEgIT0gTCdcbicgJiYgaXN3c3BhY2Ug
KHdjMSkpKTsKKworCQkgIHN0YXRlMSA9IHN0YXRlX2JhazsKKwkJICBtYmxlbjEgPSBtYmxlbl9i
YWs7CisJCSAgdDEgLT0gbWJsZW4xOworCQkgIGNvbnZmYWlsMSA9IDA7CisJCSAgd2MxID0gTCcg
JzsKKwkJfQorCisJICAgICAgLyogTGlrZXdpc2UgZm9yIGxpbmUgMi4gICovCisJICAgICAgaWYg
KHdjMiAhPSBMJ1xuJyAmJiBpc3dzcGFjZSAod2MyKSkKKwkJeworCQkgIHNpemVfdCBtYmxlbl9i
YWs7CisJCSAgbWJzdGF0ZV90IHN0YXRlX2JhazsKKworCQkgIGRvCisJCSAgICB7CisJCSAgICAg
IHQyICs9IG1ibGVuMjsKKwkJICAgICAgbWJsZW5fYmFrID0gbWJsZW4yOworCQkgICAgICBzdGF0
ZV9iYWsgPSBzdGF0ZTI7CisJCSAgICAgIE1CQzJXQyAodDIsIGVuZDIsIG1ibGVuMiwgd2MyLCBz
dGF0ZTIsIGNvbnZmYWlsMik7CisJCSAgICB9CisJCSAgd2hpbGUgKCFjb252ZmFpbDIgJiYgKHdj
MiAhPSBMJ1xuJyAmJiBpc3dzcGFjZSAod2MyKSkpOworCisJCSAgc3RhdGUyID0gc3RhdGVfYmFr
OworCQkgIG1ibGVuMiA9IG1ibGVuX2JhazsKKwkJICB0MiAtPSBtYmxlbjI7CisJCSAgY29udmZh
aWwyID0gMDsKKwkJICB3YzIgPSBMJyAnOworCQl9CisKKwkgICAgICBpZiAod2MxICE9IHdjMikK
KwkJeworCQkgIGlmICh3YzIgPT0gTCcgJyAmJiB3YzEgIT0gTCdcbicgJiYKKwkJICAgICAgdDEg
PiAodW5zaWduZWQgY2hhciBjb25zdCAqKXMxICYmCisJCSAgICAgICFjb252ZmFpbDFfYmFrICYm
IGlzd3NwYWNlICh3YzFfYmFrKSkKKwkJICAgIHsKKwkJICAgICAgdDEgPSB0MV9iYWs7CisJCSAg
ICAgIHdjMSA9IHdjMV9iYWs7CisJCSAgICAgIHN0YXRlMSA9IHN0YXRlMV9iYWs7CisJCSAgICAg
IGNvbnZmYWlsMSA9IGNvbnZmYWlsMV9iYWs7CisJCSAgICAgIGNvbnRpbnVlOworCQkgICAgfQor
CQkgIGlmICh3YzEgPT0gTCcgJyAmJiB3YzIgIT0gTCdcbicKKwkJICAgICAgJiYgdDIgPiAodW5z
aWduZWQgY2hhciBjb25zdCAqKXMyCisJCSAgICAgICYmICFjb252ZmFpbDJfYmFrICYmIGlzd3Nw
YWNlICh3YzJfYmFrKSkKKwkJICAgIHsKKwkJICAgICAgdDIgPSB0Ml9iYWs7CisJCSAgICAgIHdj
MiA9IHdjMl9iYWs7CisJCSAgICAgIHN0YXRlMiA9IHN0YXRlMl9iYWs7CisJCSAgICAgIGNvbnZm
YWlsMiA9IGNvbnZmYWlsMl9iYWs7CisJCSAgICAgIGNvbnRpbnVlOworCQkgICAgfQorCQl9CisK
KwkgICAgICB0MV9iYWsgPSB0MTsJCSAgdDJfYmFrID0gdDI7CisJICAgICAgd2MxX2JhayA9IHdj
MTsJCSAgd2MyX2JhayA9IHdjMjsKKwkgICAgICBzdGF0ZTFfYmFrID0gc3RhdGUxOwkgIHN0YXRl
Ml9iYWsgPSBzdGF0ZTI7CisJICAgICAgY29udmZhaWwxX2JhayA9IGNvbnZmYWlsMTsgIGNvbnZm
YWlsMl9iYWsgPSBjb252ZmFpbDI7CisKKwkgICAgICBpZiAod2MxID09IEwnXG4nKQorCQl3YzEg
PSBMJyAnOworCSAgICAgIGVsc2UKKwkJdDEgKz0gbWJsZW4xOworCisJICAgICAgaWYgKHdjMiA9
PSBMJ1xuJykKKwkJd2MyID0gTCcgJzsKKwkgICAgICBlbHNlCisJCXQyICs9IG1ibGVuMjsKKwor
CSAgICAgIGJyZWFrOworCisJICAgIGNhc2UgSUdOT1JFX1RBQl9FWFBBTlNJT046CisJICAgICAg
aWYgKCh3YzEgPT0gTCcgJyAmJiB3YzIgPT0gTCdcdCcpCisJCSAgfHwgKHdjMSA9PSBMJ1x0JyAm
JiB3YzIgPT0gTCcgJykpCisJCXsKKwkJICBzaXplX3QgY29sdW1uMiA9IGNvbHVtbjsKKworCQkg
IHdoaWxlICgxKQorCQkgICAgeworCQkgICAgICBpZiAoY29udmZhaWwxKQorCQkJeworCQkJICAr
K3QxOworCQkJICBicmVhazsKKwkJCX0KKwkJICAgICAgZWxzZSBpZiAod2MxID09IEwnICcpCisJ
CQljb2x1bW4rKzsKKwkJICAgICAgZWxzZSBpZiAod2MxID09IEwnXHQnKQorCQkJY29sdW1uICs9
IFRBQl9XSURUSCAtIGNvbHVtbiAlIFRBQl9XSURUSDsKKwkJICAgICAgZWxzZQorCQkJeworCQkJ
ICB0MSArPSBtYmxlbjE7CisJCQkgIGJyZWFrOworCQkJfQorCisJCSAgICAgIHQxICs9IG1ibGVu
MTsKKwkJICAgICAgYzEgPSAqdDE7CisJCSAgICAgIE1CQzJXQyAodDEsIGVuZDEsIG1ibGVuMSwg
d2MxLCBzdGF0ZTEsIGNvbnZmYWlsMSk7CisJCSAgICB9CisKKwkJICB3aGlsZSAoMSkKKwkJICAg
IHsKKwkJICAgICAgaWYgKGNvbnZmYWlsMikKKwkJCXsKKwkJCSAgKyt0MjsKKwkJCSAgYnJlYWs7
CisJCQl9CisJCSAgICAgIGVsc2UgaWYgKHdjMiA9PSBMJyAnKQorCQkJY29sdW1uMisrOworCQkg
ICAgICBlbHNlIGlmICh3YzIgPT0gTCdcdCcpCisJCQljb2x1bW4yICs9IFRBQl9XSURUSCAtIGNv
bHVtbjIgJSBUQUJfV0lEVEg7CisJCSAgICAgIGVsc2UKKwkJCXsKKwkJCSAgdDIgKz0gbWJsZW4y
OworCQkJICBicmVhazsKKwkJCX0KKworCQkgICAgICB0MiArPSBtYmxlbjI7CisJCSAgICAgIGMy
ID0gKnQyOworCQkgICAgICBNQkMyV0MgKHQyLCBlbmQyLCBtYmxlbjIsIHdjMiwgc3RhdGUyLCBj
b252ZmFpbDIpOworCQkgICAgfQorCisJCSAgaWYgKGNvbHVtbiAhPSBjb2x1bW4yKQorCQkgICAg
cmV0dXJuIDE7CisJCX0KKwkgICAgICBlbHNlCisJCXsKKwkJICB0MSArPSBtYmxlbjE7CisJCSAg
dDIgKz0gbWJsZW4yOworCQl9CisJICAgICAgYnJlYWs7CisKKwkgICAgY2FzZSBJR05PUkVfTk9f
V0hJVEVfU1BBQ0U6CisJICAgICAgdDEgKz0gbWJsZW4xOworCSAgICAgIHQyICs9IG1ibGVuMjsK
KwkgICAgICBicmVhazsKKwkgICAgfQorCisJICAvKiBMb3dlcmNhc2UgYWxsIGxldHRlcnMgaWYg
LWkgaXMgc3BlY2lmaWVkLiAgKi8KKwkgIGlmIChpZ25vcmVfY2FzZSkKKwkgICAgeworCSAgICAg
IGlmICghY29udmZhaWwxKQorCQl3YzEgPSB0b3dsb3dlciAod2MxKTsKKwkgICAgICBpZiAoIWNv
bnZmYWlsMikKKwkJd2MyID0gdG93bG93ZXIgKHdjMik7CisJICAgIH0KKworCSAgaWYgKGNvbnZm
YWlsMSBeIGNvbnZmYWlsMikKKwkgICAgYnJlYWs7CisJICBlbHNlIGlmIChjb252ZmFpbDEgJiYg
Y29udmZhaWwyICYmIGMxICE9IGMyKQorCSAgICBicmVhazsKKwkgIGVsc2UgaWYgKCFjb252ZmFp
bDEgJiYgIWNvbnZmYWlsMiAmJiB3YzEgIT0gd2MyKQorCSAgICBicmVhazsKKwl9CisgICAgICBl
bHNlCisJeworCSAgdDFfYmFrID0gdDE7CQkJdDJfYmFrID0gdDI7CisJICB3YzFfYmFrID0gd2Mx
OwkJd2MyX2JhayA9IHdjMjsKKwkgIHN0YXRlMV9iYWsgPSBzdGF0ZTE7CQlzdGF0ZTJfYmFrID0g
c3RhdGUyOworCSAgY29udmZhaWwxX2JhayA9IGNvbnZmYWlsMTsJY29udmZhaWwyX2JhayA9IGNv
bnZmYWlsMjsKKworCSAgdDEgKz0gbWJsZW4xOwkJCXQyICs9IG1ibGVuMjsKKwl9CisgICAgICAK
KyAgICAgIGlmICghY29udmZhaWwxICYmIHdjMSA9PSBMJ1xuJykKKwlyZXR1cm4gMDsKKworICAg
ICAgY29sdW1uICs9IGNvbnZmYWlsMSA/IDEgOgorCSh3YzEgPT0gTCdcdCcpID8gVEFCX1dJRFRI
IC0gY29sdW1uICUgVEFCX1dJRFRIIDogd2N3aWR0aCAod2MxKTsKKyAgICB9CisKKyAgcmV0dXJu
IDE7Cit9CisjZW5kaWYKIAwKIC8qIEZpbmQgdGhlIGNvbnNlY3V0aXZlIGNoYW5nZXMgYXQgdGhl
IHN0YXJ0IG9mIHRoZSBzY3JpcHQgU1RBUlQuCiAgICBSZXR1cm4gdGhlIGxhc3QgbGluayBiZWZv
cmUgdGhlIGZpcnN0IGdhcC4gICovCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>46193</attachid>
            <date>2004-12-16 23:10 0000</date>
            <desc>test1</desc>
            <filename>test1</filename>
            <type>text/plain</type>
            <data encoding="base64">w6dhxJ9sYXIgb251cgpiYXLEscWfIG1ldGluCmfDvHJlciDDtnplbgptdXJhdCBlcmVuCgo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>46194</attachid>
            <date>2004-12-16 23:11 0000</date>
            <desc>test2</desc>
            <filename>test2</filename>
            <type>text/plain</type>
            <data encoding="base64">w4dBxJ5MQVIgT05VUgpCQVJJxZ4gTUVUxLBOCkfDnFJFUiDDllpFTgpNVVJBVCBFUkVOCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46237</attachid>
            <date>2004-12-17 14:30 0000</date>
            <desc>diffutils-2.8.7-i18n.patch</desc>
            <filename>diffutils-2.8.7-i18n.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtdXIgZGlmZnV0aWxzLTIuOC43Lm9yaWcvc3JjL2RpZmYuYyBkaWZmdXRpbHMtMi44Ljcv
c3JjL2RpZmYuYwotLS0gZGlmZnV0aWxzLTIuOC43Lm9yaWcvc3JjL2RpZmYuYwkyMDA0LTA0LTEy
IDEwOjQ0OjM1LjAwMDAwMDAwMCArMDMwMAorKysgZGlmZnV0aWxzLTIuOC43L3NyYy9kaWZmLmMJ
MjAwNC0xMi0xOCAwMDoxMzoyNy45NTI2MzUwMDAgKzAyMDAKQEAgLTI3Myw2ICsyNzMsMTMgQEAK
ICAgcmVfc2V0X3N5bnRheCAoUkVfU1lOVEFYX0dSRVAgfCBSRV9OT19QT1NJWF9CQUNLVFJBQ0tJ
TkcpOwogICBleGNsdWRlZCA9IG5ld19leGNsdWRlICgpOwogCisjaWZkZWYgSEFORExFX01VTFRJ
QllURQorICBpZiAoTUJfQ1VSX01BWCA+IDEpCisgICAgbGluZXNfZGlmZmVyID0gbGluZXNfZGlm
ZmVyX211bHRpYnl0ZTsKKyAgZWxzZQorI2VuZGlmCisgICAgbGluZXNfZGlmZmVyID0gbGluZXNf
ZGlmZmVyX3NpbmdsZWJ5dGU7CisKICAgLyogRGVjb2RlIHRoZSBvcHRpb25zLiAgKi8KIAogICB3
aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyAoYXJnYywgYXJndiwgc2hvcnRvcHRzLCBsb25nb3B0cywg
MCkpICE9IC0xKQpkaWZmIC11ciBkaWZmdXRpbHMtMi44Ljcub3JpZy9zcmMvZGlmZi5oIGRpZmZ1
dGlscy0yLjguNy9zcmMvZGlmZi5oCi0tLSBkaWZmdXRpbHMtMi44Ljcub3JpZy9zcmMvZGlmZi5o
CTIwMDQtMDQtMTIgMTA6NDQ6MzUuMDAwMDAwMDAwICswMzAwCisrKyBkaWZmdXRpbHMtMi44Ljcv
c3JjL2RpZmYuaAkyMDA0LTEyLTE4IDAwOjE0OjI2Ljk1MzY2NTQ4MCArMDIwMApAQCAtMjUsNiAr
MjUsMTkgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHVubG9ja2VkLWlvLmg+CiAK
Ky8qIEZvciBwbGF0Zm9ybSB3aGljaCBzdXBwb3J0IHRoZSBJU08gQyBhbWVuZGVtZW50IDEgZnVu
Y3Rpb25hbGl0eSB3ZQorICAgc3VwcG9ydCB1c2VyIGRlZmluZWQgY2hhcmFjdGVyIGNsYXNzZXMu
ICAqLworI2lmIGRlZmluZWQgSEFWRV9XQ1RZUEVfSCAmJiBkZWZpbmVkIEhBVkVfV0NIQVJfSAor
LyogU29sYXJpcyAyLjUgaGFzIGEgYnVnOiA8d2NoYXIuaD4gbXVzdCBiZSBpbmNsdWRlZCBiZWZv
cmUgPHdjdHlwZS5oPi4gICovCisjIGluY2x1ZGUgPHdjaGFyLmg+CisjIGluY2x1ZGUgPHdjdHlw
ZS5oPgorIyBpZiBkZWZpbmVkIChIQVZFX01CUlRPV0MpCisjICBkZWZpbmUgSEFORExFX01VTFRJ
QllURSAgICAgIDEKKyMgZW5kaWYKKyNlbmRpZgorCisjZGVmaW5lIFRBQl9XSURUSCA4CisKIC8q
IFdoYXQga2luZCBvZiBjaGFuZ2VzIGEgaHVuayBjb250YWlucy4gICovCiBlbnVtIGNoYW5nZXMK
IHsKQEAgLTM1Miw3ICszNjUsMTEgQEAKIGV4dGVybiBjaGFyIGNvbnN0IHByX3Byb2dyYW1bXTsK
IGNoYXIgKmNvbmNhdCAoY2hhciBjb25zdCAqLCBjaGFyIGNvbnN0ICosIGNoYXIgY29uc3QgKik7
CiBjaGFyICpkaXJfZmlsZV9wYXRobmFtZSAoY2hhciBjb25zdCAqLCBjaGFyIGNvbnN0ICopOwot
Ym9vbCBsaW5lc19kaWZmZXIgKGNoYXIgY29uc3QgKiwgY2hhciBjb25zdCAqKTsKK2Jvb2wgKCps
aW5lc19kaWZmZXIpIChjaGFyIGNvbnN0ICosIGNoYXIgY29uc3QgKik7Citib29sIGxpbmVzX2Rp
ZmZlcl9zaW5nbGVieXRlIChjaGFyIGNvbnN0ICosIGNoYXIgY29uc3QgKik7CisjaWZkZWYgSEFO
RExFX01VTFRJQllURQorYm9vbCBsaW5lc19kaWZmZXJfbXVsdGlieXRlIChjaGFyIGNvbnN0ICos
IGNoYXIgY29uc3QgKik7CisjZW5kaWYKIGxpbiB0cmFuc2xhdGVfbGluZV9udW1iZXIgKHN0cnVj
dCBmaWxlX2RhdGEgY29uc3QgKiwgbGluKTsKIHN0cnVjdCBjaGFuZ2UgKmZpbmRfY2hhbmdlIChz
dHJ1Y3QgY2hhbmdlICopOwogc3RydWN0IGNoYW5nZSAqZmluZF9yZXZlcnNlX2NoYW5nZSAoc3Ry
dWN0IGNoYW5nZSAqKTsKZGlmZiAtdXIgZGlmZnV0aWxzLTIuOC43Lm9yaWcvc3JjL2lvLmMgZGlm
ZnV0aWxzLTIuOC43L3NyYy9pby5jCi0tLSBkaWZmdXRpbHMtMi44Ljcub3JpZy9zcmMvaW8uYwky
MDA0LTA0LTEyIDEwOjQ0OjM1LjAwMDAwMDAwMCArMDMwMAorKysgZGlmZnV0aWxzLTIuOC43L3Ny
Yy9pby5jCTIwMDQtMTItMTggMDA6MjA6MTIuNTAyMTM0MTI4ICswMjAwCkBAIC0yNSw2ICsyNSw3
IEBACiAjaW5jbHVkZSA8ZmlsZS10eXBlLmg+CiAjaW5jbHVkZSA8c2V0bW9kZS5oPgogI2luY2x1
ZGUgPHhhbGxvYy5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgogCiAvKiBSb3RhdGUgYW4gdW5zaWdu
ZWQgdmFsdWUgdG8gdGhlIGxlZnQuICAqLwogI2RlZmluZSBST0wodiwgbikgKCh2KSA8PCAobikg
fCAodikgPj4gKHNpemVvZiAodikgKiBDSEFSX0JJVCAtIChuKSkpCkBAIC0yMTMsNiArMjE0LDI5
IEBACiAvKiBTcGxpdCB0aGUgZmlsZSBpbnRvIGxpbmVzLCBzaW11bHRhbmVvdXNseSBjb21wdXRp
bmcgdGhlIGVxdWl2YWxlbmNlCiAgICBjbGFzcyBmb3IgZWFjaCBsaW5lLiAgKi8KIAorI2lmZGVm
IEhBTkRMRV9NVUxUSUJZVEUKKyMgZGVmaW5lIE1CQzJXQyhQLCBFTkQsIE1CTEVOR1RILCBXQywg
U1RBVEUsIENPTlZGQUlMKSAgICAgICAgICAgICAgICAgXAorZG8gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBtYnN0YXRlX3Qgc3RhdGVfYmFrID0gU1RBVEU7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQ09OVkZB
SUwgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICBNQkxFTkdUSCA9IG1icnRvd2MgKCZXQywgUCwgRU5EIC0gKGNoYXIgY29uc3Qg
KilQLCAmU1RBVEUpOyAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzd2l0
Y2ggKE1CTEVOR1RIKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGNhc2UgKHNpemVfdCktMjog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg
Y2FzZSAoc2l6ZV90KS0xOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgU1RBVEUgPSBzdGF0ZV9iYWs7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICArK0NPTlZGQUlMOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgLyog
RmFsbCB0aHJvdWdoLiAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICBjYXNlIDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBNQkxFTkdUSCA9IDE7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAord2hpbGUgKDApCisjZW5kaWYKKwogc3RhdGljIHZvaWQK
IGZpbmRfYW5kX2hhc2hfZWFjaF9saW5lIChzdHJ1Y3QgZmlsZV9kYXRhICpjdXJyZW50KQogewpA
QCAtMjM4LDEyICsyNjIsMjgyIEBACiAgIGJvb2wgc2FtZV9sZW5ndGhfZGlmZl9jb250ZW50c19j
b21wYXJlX2FueXdheSA9CiAgICAgZGlmZl9sZW5ndGhfY29tcGFyZV9hbnl3YXkgfCBpZ25vcmVf
Y2FzZTsKIAorI2lmZGVmIEhBTkRMRV9NVUxUSUJZVEUKKyAgd2NoYXJfdCAgIHdjOworICBzaXpl
X3QgICAgbWJsZW5ndGg7CisgIG1ic3RhdGVfdCBzdGF0ZTsKKyAgaW50ICAgICAgIGNvbnZmYWls
OworCisgIG1lbXNldCAoJnN0YXRlLCAnXDAnLCBzaXplb2YgKG1ic3RhdGVfdCkpOworI2VuZGlm
CisKICAgd2hpbGUgKHAgPCBzdWZmaXhfYmVnaW4pCiAgICAgewogICAgICAgY2hhciBjb25zdCAq
aXAgPSBwOwogCiAgICAgICBoID0gMDsKIAorI2lmZGVmIEhBTkRMRV9NVUxUSUJZVEUKKyAgICAg
IGlmIChNQl9DVVJfTUFYID4gMSkKKyAgICAgICB7CisgICAgICAgICB3Y2hhcl90ICAgbG9fd2M7
CisgICAgICAgICBjaGFyICAgICAgbWJjW01CX0xFTl9NQVhdOworICAgICAgICAgbWJzdGF0ZV90
IHN0YXRlX3djOworCisgICAgICAgICAvKiBIYXNoIHRoaXMgbGluZSB1bnRpbCB3ZSBmaW5kIGEg
bmV3bGluZS4gICovCisgICAgICAgICBzd2l0Y2ggKGlnbm9yZV93aGl0ZV9zcGFjZSkKKyAgICAg
ICAgICB7CisgICAgICAgICAgIGNhc2UgSUdOT1JFX0FMTF9TUEFDRToKKyAgICAgICAgICAgICB3
aGlsZSAoMSkKKyAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgaWYgKCpwID09ICdc
bicpCisgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgKytwOworICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgIE1CQzJXQyAocCwgc3VmZml4X2JlZ2luLCBtYmxlbmd0aCwgd2MsIHN0YXRlLCBj
b252ZmFpbCk7CisKKyAgICAgICAgICAgICAgICAgaWYgKGNvbnZmYWlsKQorICAgICAgICAgICAg
ICAgICAgIG1iY1swXSA9ICpwKys7CisgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc3dzcGFj
ZSAod2MpKQorICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGJvb2wg
ZmxhZyA9IDA7CisKKyAgICAgICAgICAgICAgICAgICAgIGlmIChpZ25vcmVfY2FzZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxvX3djID0gdG93
bG93ZXIgKHdjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9fd2MgIT0gd2MpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZsYWcgPSAxOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAgKz0gbWJsZW5ndGg7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbXNldCAoJnN0YXRlX3djLCAnXDAnLCBz
aXplb2YobWJzdGF0ZV90KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ibGVuZ3Ro
ID0gd2NydG9tYiAobWJjLCBsb193YywgJnN0YXRlX3djKTsKKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQgKG1ibGVuZ3RoICE9IChzaXplX3QpLTEgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1ibGVuZ3RoICE9IChzaXplX3QpLTIpOworCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1ibGVuZ3RoID0gKG1ibGVuZ3RoIDwgMSkgPyAxIDogbWJs
ZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgaWYgKCFmbGFnKQorICAgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1ibGVu
Z3RoOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmNbaV0gPSAgKnArKzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHAg
Kz0gbWJsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1ibGVuZ3RoOyBp
KyspCisgICAgICAgICAgICAgICAgICAgaCA9IEhBU0ggKGgsIG1iY1tpXSk7CisgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgY2FzZSBJR05PUkVfU1BB
Q0VfQ0hBTkdFOgorICAgICAgICAgICAgIHdoaWxlICgxKQorICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICBpZiAoKnAgPT0gJ1xuJykKKyAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgTUJDMldDIChwLCBzdWZmaXhfYmVn
aW4sIG1ibGVuZ3RoLCB3Yywgc3RhdGUsIGNvbnZmYWlsKTsKKworICAgICAgICAgICAgICAgICBp
ZiAoIWNvbnZmYWlsICYmIGlzd3NwYWNlICh3YykpCisgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgd2hpbGUgKDEpCisgICAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoKnAgPT0gJ1xuJykKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnb3RvIGhhc2hpbmdfZG9uZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgIHAgKz0gbWJsZW5ndGg7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgTUJDMldDIChwLCBzdWZmaXhfYmVnaW4sIG1ibGVuZ3Ro
LCB3Yywgc3RhdGUsIGNvbnZmYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29u
dmZhaWwgfHwgKCFjb252ZmFpbCAmJiAhaXN3c3BhY2UgKHdjKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgaCA9IEhBU0ggKGgsICcgJyk7CisgICAgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgIC8qIFdDIGlzIG5vdyB0aGUgZmlyc3Qgbm9uLXNwYWNlLiAgKi8KKyAgICAg
ICAgICAgICAgICAgaWYgKGNvbnZmYWlsKQorICAgICAgICAgICAgICAgICAgIG1iY1swXSA9ICpw
Kys7CisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBib29sIGZsYWcgPSAwOworCisgICAgICAgICAgICAgICAgICAgICBpZiAo
aWdub3JlX2Nhc2UpCisgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBsb193YyA9IHRvd2xvd2VyICh3Yyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGxvX3djICE9IHdjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmbGFnID0gMTsKKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwICs9IG1ibGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1zZXQg
KCZzdGF0ZV93YywgJ1wwJywgc2l6ZW9mKG1ic3RhdGVfdCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYmxlbmd0aCA9IHdjcnRvbWIgKG1iYywgbG9fd2MsICZzdGF0ZV93Yyk7CisK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IChtYmxlbmd0aCAhPSAoc2l6ZV90
KS0xICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmxlbmd0aCAhPSAoc2l6
ZV90KS0yKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmxlbmd0aCA9IChtYmxl
bmd0aCA8IDEpID8gMSA6IG1ibGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgIGlmICghZmxh
ZykKKyAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciAoaSA9IDA7IGkgPCBtYmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWJjW2ldID0gKnArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbWJsZW5ndGg7IGkrKykK
KyAgICAgICAgICAgICAgICAgICBoID0gSEFTSCAoaCwgbWJjW2ldKTsKKyAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICBjYXNlIElHTk9SRV9UQUJfRVhQ
QU5TSU9OOgorICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBzaXplX3QgY29sdW1u
ID0gMDsKKworICAgICAgICAgICAgICAgICB3aGlsZSAoMSkKKyAgICAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICBpZiAoKnAgPT0gJ1xuJykKKyAgICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgICAgICBNQkMyV0MgKHAsIHN1ZmZpeF9iZWdpbiwgbWJsZW5ndGgsIHdjLCBzdGF0ZSwgY29u
dmZhaWwpOworCisgICAgICAgICAgICAgICAgICAgICBpZiAoY29udmZhaWwpCisgICAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBoID0gSEFTSCAoaCwgKnAr
Kyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgKytjb2x1bW47CisgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxhZzsKKworICAgICAgICAgICAg
ICAgICAgICAgICAgIHN3aXRjaCAod2MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEwnXGInOgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb2x1bW4gLT0gMCA8IGNvbHVtbjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaCA9IEhBU0ggKGgsICdcYicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr
K3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIEwnXHQnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXBldGl0aW9uczsKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwZXRpdGlvbnMgPSBUQUJfV0lEVEgg
LSBjb2x1bW4gJSBUQUJfV0lEVEg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b2x1bW4gKz0gcmVwZXRpdGlvbnM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoID0gSEFTSCAoaCwgJyAnKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgtLXJlcGV0aXRpb25zICE9
IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgTCdccic6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbHVtbiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGggPSBIQVNIIChoLCAnXHInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZyA9IDA7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbiArPSB3Y3dpZHRoICh3Yyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZ25vcmVfY2FzZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b193YyA9IHRvd2xvd2VyICh3Yyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobG9fd2MgIT0gd2MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwICs9IG1ibGVuZ3RoOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lbXNldCAoJnN0YXRlX3djLCAnXDAnLCBzaXplb2YobWJz
dGF0ZV90KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJsZW5ndGgg
PSB3Y3J0b21iIChtYmMsIGxvX3djLCAmc3RhdGVfd2MpOworCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IChtYmxlbmd0aCAhPSAoc2l6ZV90KS0xICYmCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ibGVuZ3RoICE9IChzaXplX3Qp
LTIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJsZW5ndGggPSAo
bWJsZW5ndGggPCAxKSA/IDEgOiBtYmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIWZsYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8
IG1ibGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iY1tp
XSA9ICpwKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtYmxlbmd0aDsgaSsrKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGggPSBIQVNIIChoLCBtYmNbaV0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgd2hpbGUgKDEpCisgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgIGlmICgqcCA9PSAnXG4nKQorICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICBNQkMyV0MgKHAsIHN1ZmZp
eF9iZWdpbiwgbWJsZW5ndGgsIHdjLCBzdGF0ZSwgY29udmZhaWwpOworCisgICAgICAgICAgICAg
ICAgIGlmIChjb252ZmFpbCkKKyAgICAgICAgICAgICAgICAgICBtYmNbMF0gPSAqcCsrOworICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAgaW50IGZsYWcgPSAwOworCisgICAgICAgICAgICAgICAgICAgICBpZiAoaWdub3JlX2Nh
c2UpCisgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBs
b193YyA9IHRvd2xvd2VyICh3Yyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvX3dj
ICE9IHdjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmbGFnID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCArPSBt
Ymxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0ICgmc3RhdGVfd2Ms
ICdcMCcsIHNpemVvZihtYnN0YXRlX3QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWJsZW5ndGggPSB3Y3J0b21iIChtYmMsIGxvX3djLCAmc3RhdGVfd2MpOworCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCAobWJsZW5ndGggIT0gKHNpemVfdCktMSAmJgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJsZW5ndGggIT0gKHNpemVfdCktMik7CisK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJsZW5ndGggPSAobWJsZW5ndGggPCAxKSA/
IDEgOiBtYmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICBpZiAoIWZsYWcpCisgICAgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBp
IDwgbWJsZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iY1tpXSA9ICpw
Kys7CisgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1ibGVuZ3RoOyBpKyspCisgICAgICAgICAg
ICAgICAgICAgaCA9IEhBU0ggKGgsIG1iY1tpXSk7CisgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgIH0KKyAgICAgICB9CisgICAgICBlbHNlCisjZW5kaWYKKwogICAgICAgLyogSGFzaCB0aGlz
IGxpbmUgdW50aWwgd2UgZmluZCBhIG5ld2xpbmUuICAqLwogICAgICAgaWYgKGlnbm9yZV9jYXNl
KQogCXN3aXRjaCAoaWdub3JlX3doaXRlX3NwYWNlKQpkaWZmIC11ciBkaWZmdXRpbHMtMi44Ljcu
b3JpZy9zcmMvc2lkZS5jIGRpZmZ1dGlscy0yLjguNy9zcmMvc2lkZS5jCi0tLSBkaWZmdXRpbHMt
Mi44Ljcub3JpZy9zcmMvc2lkZS5jCTIwMDQtMDQtMTIgMTA6NDQ6MzUuMDAwMDAwMDAwICswMzAw
CisrKyBkaWZmdXRpbHMtMi44Ljcvc3JjL3NpZGUuYwkyMDA0LTEyLTE4IDAwOjIyOjA5Ljg3NTI5
MDY5NiArMDIwMApAQCAtNzQsMTAgKzc0LDc0IEBACiAgIHJlZ2lzdGVyIGNoYXIgY29uc3QgKnRl
eHRfcG9pbnRlciA9IGxpbmVbMF07CiAgIHJlZ2lzdGVyIGNoYXIgY29uc3QgKnRleHRfbGltaXQg
PSBsaW5lWzFdOwogCisjaWYgZGVmaW5lZCBIQVZFX1dDSEFSX0ggJiYgZGVmaW5lZCBIQVZFX1dD
VFlQRV9ICisgIHVuc2lnbmVkIGNoYXIgbWJjW01CX0xFTl9NQVhdOworICB3Y2hhcl90IHdjOwor
ICBtYnN0YXRlX3Qgc3RhdGUsIHN0YXRlX2JhazsKKyAgc2l6ZV90IG1iY19wb3MsIG1ibGVuZ3Ro
OworICBpbnQgbWJjX2xvYWRpbmdfZmxhZyA9IDA7CisgIGludCB3Y193aWR0aDsKKworICBtZW1z
ZXQgKCZzdGF0ZSwgJ1wwJywgc2l6ZW9mIChtYnN0YXRlX3QpKTsKKyNlbmRpZgorCiAgIHdoaWxl
ICh0ZXh0X3BvaW50ZXIgPCB0ZXh0X2xpbWl0KQogICAgIHsKICAgICAgIHJlZ2lzdGVyIHVuc2ln
bmVkIGNoYXIgYyA9ICp0ZXh0X3BvaW50ZXIrKzsKIAorI2lmIGRlZmluZWQgSEFWRV9XQ0hBUl9I
ICYmIGRlZmluZWQgSEFWRV9XQ1RZUEVfSAorICAgICAgaWYgKE1CX0NVUl9NQVggPiAxICYmIG1i
Y19sb2FkaW5nX2ZsYWcpCisgICAgICAgeworICAgICAgICAgbWJjX2xvYWRpbmdfZmxhZyA9IDA7
CisgICAgICAgICBzdGF0ZV9iYWsgPSBzdGF0ZTsKKyAgICAgICAgIG1iY1ttYmNfcG9zKytdID0g
YzsKKworcHJvY2Vzc19tYmM6CisgICAgICAgICBtYmxlbmd0aCA9IG1icnRvd2MgKCZ3YywgbWJj
LCBtYmNfcG9zLCAmc3RhdGUpOworCisgICAgICAgICBzd2l0Y2ggKG1ibGVuZ3RoKQorICAgICAg
ICAgICB7CisgICAgICAgICAgIGNhc2UgKHNpemVfdCktMjogICAgLyogSW5jb21wbGV0ZSBtdWx0
aWJ5dGUgY2hhcmFjdGVyLiAqLworICAgICAgICAgICAgIG1iY19sb2FkaW5nX2ZsYWcgPSAxOwor
ICAgICAgICAgICAgIHN0YXRlID0gc3RhdGVfYmFrOworICAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgICAgIGNhc2UgKHNpemVfdCktMTogICAgLyogSW52YWxpZCBhcyBhIG11bHRpYnl0ZSBj
aGFyYWN0ZXIuICovCisgICAgICAgICAgICAgaWYgKGluX3Bvc2l0aW9uKysgPCBvdXRfYm91bmQp
CisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIG91dF9wb3NpdGlvbiA9IGluX3Bv
c2l0aW9uOworICAgICAgICAgICAgICAgICBwdXRjIChtYmNbMF0sIG91dCk7CisgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgbWVtbW92ZSAobWJjLCBtYmMgKyAxLCAtLW1iY19wb3MpOwor
ICAgICAgICAgICAgIGlmIChtYmNfcG9zID4gMCkKKyAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgbWJjW21iY19wb3NdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICAgZ290byBwcm9j
ZXNzX21iYzsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgIHdjX3dpZHRoID0gd2N3aWR0aCAod2MpOworICAg
ICAgICAgICAgIGlmICh3Y193aWR0aCA8IDEpIC8qIFVucHJpbnRhYmxlIG11bHRpYnl0ZSBjaGFy
YWN0ZXIuICovCisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGlmIChpbl9wb3Np
dGlvbiA8PSBvdXRfYm91bmQpCisgICAgICAgICAgICAgICAgICAgZnByaW50ZiAob3V0LCAiJWxj
IiwgKHdpbnRfdCl3Yyk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZSAgICAg
ICAgICAgICAgLyogUHJpbnRhYmxlIG11bHRpYnl0ZSBjaGFyYWN0ZXIuICovCisgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgIGluX3Bvc2l0aW9uICs9IHdjX3dpZHRoOworICAgICAg
ICAgICAgICAgICBpZiAoaW5fcG9zaXRpb24gPD0gb3V0X2JvdW5kKQorICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIG91dF9wb3NpdGlvbiA9IGluX3Bvc2l0aW9uOwor
ICAgICAgICAgICAgICAgICAgICAgZnByaW50ZiAob3V0LCAiJWxjIiwgKHdpbnRfdCl3Yyk7Cisg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICB9CisjZW5kaWYKKworCiAgICAgICBzd2l0Y2ggKGMpCiAJ
ewogCWNhc2UgJ1x0JzoKQEAgLTEzNSw5ICsxOTksNDAgQEAKIAkgIGJyZWFrOwogCiAJZGVmYXVs
dDoKLQkgIGlmICghIGlzcHJpbnQgKGMpKQotCSAgICBnb3RvIGNvbnRyb2xfY2hhcjsKLQkgIC8q
IGZhbGxzIHRocm91Z2ggKi8KKyNpZiBkZWZpbmVkIEhBVkVfV0NIQVJfSCAmJiBkZWZpbmVkIEhB
VkVfV0NUWVBFX0gKKyAgICAgICAgIGlmIChNQl9DVVJfTUFYID4gMSkKKyAgICAgICAgICAgewor
ICAgICAgICAgICAgIG1lbXNldCAobWJjLCAnXDAnLCBNQl9MRU5fTUFYKTsKKyAgICAgICAgICAg
ICBtYmNfcG9zID0gMDsKKyAgICAgICAgICAgICBtYmNbbWJjX3BvcysrXSA9IGM7CisgICAgICAg
ICAgICAgc3RhdGVfYmFrID0gc3RhdGU7CisKKyAgICAgICAgICAgICBtYmxlbmd0aCA9IG1icnRv
d2MgKCZ3YywgbWJjLCBtYmNfcG9zLCAmc3RhdGUpOworCisgICAgICAgICAgICAgLyogVGhlIHZh
bHVlIG9mIG1ibGVuZ3RoIGlzIGFsd2F5cyBsZXNzIHRoYW4gMiBoZXJlLiAqLworICAgICAgICAg
ICAgIHN3aXRjaCAobWJsZW5ndGgpCisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICBj
YXNlIChzaXplX3QpLTI6ICAgICAgICAvKiBJbmNvbXBsZXRlIG11bHRpYnl0ZSBjaGFyYWN0ZXIu
ICovCisgICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhdGVfYmFrOworICAgICAgICAgICAgICAg
ICBtYmNfbG9hZGluZ19mbGFnID0gMTsKKyAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgICAgICAgIGNhc2UgKHNpemVfdCktMTogICAgICAgIC8qIEludmFsaWQgYXMgYSBtdWx0
aWJ5dGUgY2hhcmFjdGVyLiAqLworICAgICAgICAgICAgICAgICBzdGF0ZSA9IHN0YXRlX2JhazsK
KyAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgIGlmICghIGlzd3ByaW50ICh3YykpCisgICAgICAgICAgICAgICAgICAgZ290
byBjb250cm9sX2NoYXI7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICAg
IGVsc2UKKyNlbmRpZgorICAgICAgICAgICB7CisgICAgICAgICAgICAgaWYgKCEgaXNwcmludCAo
YykpCisgICAgICAgICAgICAgICBnb3RvIGNvbnRyb2xfY2hhcjsKKyAgICAgICAgICAgfQorCS8q
IGZhbGxzIHRocm91Z2ggKi8KIAljYXNlICcgJzoKIAkgIGlmIChpbl9wb3NpdGlvbisrIDwgb3V0
X2JvdW5kKQogCSAgICB7CmRpZmYgLXVyIGRpZmZ1dGlscy0yLjguNy5vcmlnL3NyYy91dGlsLmMg
ZGlmZnV0aWxzLTIuOC43L3NyYy91dGlsLmMKLS0tIGRpZmZ1dGlscy0yLjguNy5vcmlnL3NyYy91
dGlsLmMJMjAwNC0wNC0xMiAxMDo0NDozNS4wMDAwMDAwMDAgKzAzMDAKKysrIGRpZmZ1dGlscy0y
LjguNy9zcmMvdXRpbC5jCTIwMDQtMTItMTggMDA6MjQ6MjkuMjA5MTA4NzM2ICswMjAwCkBAIC0z
MTksNyArMzE5LDcgQEAKICAgIFJldHVybiBub256ZXJvIGlmIHRoZSBsaW5lcyBkaWZmZXIuICAq
LwogCiBib29sCi1saW5lc19kaWZmZXIgKGNoYXIgY29uc3QgKnMxLCBjaGFyIGNvbnN0ICpzMikK
K2xpbmVzX2RpZmZlcl9zaW5nbGVieXRlIChjaGFyIGNvbnN0ICpzMSwgY2hhciBjb25zdCAqczIp
CiB7CiAgIHJlZ2lzdGVyIGNoYXIgY29uc3QgKnQxID0gczE7CiAgIHJlZ2lzdGVyIGNoYXIgY29u
c3QgKnQyID0gczI7CkBAIC00NDgsNiArNDQ4LDI5NCBAQAogCiAgIHJldHVybiB0cnVlOwogfQor
CisKKyNpZmRlZiBIQU5ETEVfTVVMVElCWVRFCisjIGRlZmluZSBNQkMyV0MoVCwgRU5ELCBNQkxF
TkdUSCwgV0MsIFNUQVRFLCBDT05WRkFJTCkgICAgICAgICAgICAgICAgIFwKK2RvICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgbWJzdGF0ZV90IGJhayA9IFNUQVRFOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIENPTlZGQUlMID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgTUJMRU5HVEggPSBtYnJ0b3djICgmV0MsIFQsIEVORCAtIFQs
ICZTVEFURSk7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN3
aXRjaCAoTUJMRU5HVEgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgY2FzZSAoc2l6ZV90KS0y
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICBjYXNlIChzaXplX3QpLTE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICBTVEFURSA9IGJhazsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICsrQ09OVkZBSUw7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAv
KiBGYWxsIHRocm91Z2guICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgIGNhc2UgMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgIE1CTEVOR1RIID0gMTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCit3aGlsZSAoMCkKKworYm9vbAorbGluZXNfZGlmZmVy
X211bHRpYnl0ZSAoY2hhciBjb25zdCAqczEsIGNoYXIgY29uc3QgKnMyKQoreworICB1bnNpZ25l
ZCBjaGFyIGNvbnN0ICplbmQxLCAqZW5kMjsKKyAgdW5zaWduZWQgY2hhciBjMSwgYzI7CisgIHdj
aGFyX3Qgd2MxLCB3YzIsIHdjMV9iYWssIHdjMl9iYWs7CisgIHNpemVfdCBtYmxlbjEsIG1ibGVu
MjsKKyAgbWJzdGF0ZV90IHN0YXRlMSwgc3RhdGUyLCBzdGF0ZTFfYmFrLCBzdGF0ZTJfYmFrOwor
ICBpbnQgY29udmZhaWwxLCBjb252ZmFpbDIsIGNvbnZmYWlsMV9iYWssIGNvbnZmYWlsMl9iYWs7
CisKKyAgdW5zaWduZWQgY2hhciBjb25zdCAqdDEgPSAodW5zaWduZWQgY2hhciBjb25zdCAqKSBz
MTsKKyAgdW5zaWduZWQgY2hhciBjb25zdCAqdDIgPSAodW5zaWduZWQgY2hhciBjb25zdCAqKSBz
MjsKKyAgdW5zaWduZWQgY2hhciBjb25zdCAqdDFfYmFrLCAqdDJfYmFrOworICBzaXplX3QgY29s
dW1uID0gMDsKKworICBpZiAoaWdub3JlX3doaXRlX3NwYWNlID09IElHTk9SRV9OT19XSElURV9T
UEFDRSAgJiYgIWlnbm9yZV9jYXNlKQorICAgIHsKKyAgICAgIHdoaWxlICgqdDEgIT0gJ1xuJykK
KyAgICAgICBpZiAoKnQxKysgIT0gKiB0MisrKQorICAgICAgICAgcmV0dXJuIDE7CisgICAgICBy
ZXR1cm4gMDsKKyAgICB9CisKKyAgbWVtc2V0ICgmc3RhdGUxLCAnXDAnLCBzaXplb2YgKG1ic3Rh
dGVfdCkpOworICBtZW1zZXQgKCZzdGF0ZTIsICdcMCcsIHNpemVvZiAobWJzdGF0ZV90KSk7CisK
KyAgZW5kMSA9IHMxICsgc3RybGVuIChzMSk7CisgIGVuZDIgPSBzMiArIHN0cmxlbiAoczIpOwor
CisgIHdoaWxlICgxKQorICAgIHsKKyAgICAgIGMxID0gKnQxOworICAgICAgYzIgPSAqdDI7Cisg
ICAgICBNQkMyV0MgKHQxLCBlbmQxLCBtYmxlbjEsIHdjMSwgc3RhdGUxLCBjb252ZmFpbDEpOwor
ICAgICAgTUJDMldDICh0MiwgZW5kMiwgbWJsZW4yLCB3YzIsIHN0YXRlMiwgY29udmZhaWwyKTsK
KworICAgICAgLyogVGVzdCBmb3IgZXhhY3QgY2hhciBlcXVhbGl0eSBmaXJzdCwgc2luY2UgaXQn
cyBhIGNvbW1vbiBjYXNlLiAgKi8KKyAgICAgIGlmIChjb252ZmFpbDEgXiBjb252ZmFpbDIpCisg
ICAgICAgYnJlYWs7CisgICAgICBlbHNlIGlmIChjb252ZmFpbDEgJiYgY29udmZhaWwyICYmIGMx
ICE9IGMyKQorICAgICAgIGJyZWFrOworICAgICAgZWxzZSBpZiAoIWNvbnZmYWlsMSAmJiAhY29u
dmZhaWwyICYmIHdjMSAhPSB3YzIpCisgICAgICAgeworICAgICAgICAgc3dpdGNoIChpZ25vcmVf
d2hpdGVfc3BhY2UpCisgICAgICAgICAgIHsKKyAgICAgICAgICAgY2FzZSBJR05PUkVfQUxMX1NQ
QUNFOgorICAgICAgICAgICAgIC8qIEZvciAtdywganVzdCBza2lwIHBhc3QgYW55IHdoaXRlIHNw
YWNlLiAgKi8KKyAgICAgICAgICAgICB3aGlsZSAoMSkKKyAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgaWYgKGNvbnZmYWlsMSkKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAod2MxID09IEwnXG4nIHx8ICFpc3dzcGFjZSAod2MxKSkK
KyAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICB0MSArPSBtYmxl
bjE7CisgICAgICAgICAgICAgICAgIGMxID0gKnQxOworICAgICAgICAgICAgICAgICBNQkMyV0Mg
KHQxLCBlbmQxLCBtYmxlbjEsIHdjMSwgc3RhdGUxLCBjb252ZmFpbDEpOworICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgd2hpbGUgKDEpCisgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgIGlmIChjb252ZmFpbDIpCisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKHdjMiA9PSBMJ1xuJyB8fCAhaXN3c3BhY2UgKHdjMikpCisg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgdDIgKz0gbWJsZW4y
OworICAgICAgICAgICAgICAgICBjMiA9ICp0MjsKKyAgICAgICAgICAgICAgICAgTUJDMldDICh0
MiwgZW5kMiwgbWJsZW4yLCB3YzIsIHN0YXRlMiwgY29udmZhaWwyKTsKKyAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICB0MSArPSBtYmxlbjE7CisgICAgICAgICAgICAgdDIgKz0gbWJsZW4y
OworICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgIGNhc2UgSUdOT1JFX1NQQUNFX0NI
QU5HRToKKyAgICAgICAgICAgICAvKiBGb3IgLWIsIGFkdmFuY2UgcGFzdCBhbnkgc2VxdWVuY2Ug
b2Ygd2hpdGUgc3BhY2UgaW4KKyAgICAgICAgICAgICAgICBsaW5lIDEgYW5kIGNvbnNpZGVyIGl0
IGp1c3Qgb25lIHNwYWNlLCBvciBub3RoaW5nIGF0CisgICAgICAgICAgICAgICAgYWxsIGlmIGl0
IGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUuICAqLworICAgICAgICAgICAgIGlmICh3YzEgIT0g
TCdcbicgJiYgaXN3c3BhY2UgKHdjMSkpCisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIHNpemVfdCBtYmxlbl9iYWs7CisgICAgICAgICAgICAgICAgIG1ic3RhdGVfdCBzdGF0ZV9i
YWs7CisKKyAgICAgICAgICAgICAgICAgZG8KKyAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICB0MSArPSBtYmxlbjE7CisgICAgICAgICAgICAgICAgICAgICBtYmxlbl9i
YWsgPSBtYmxlbjE7CisgICAgICAgICAgICAgICAgICAgICBzdGF0ZV9iYWsgPSBzdGF0ZTE7Cisg
ICAgICAgICAgICAgICAgICAgICBNQkMyV0MgKHQxLCBlbmQxLCBtYmxlbjEsIHdjMSwgc3RhdGUx
LCBjb252ZmFpbDEpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgd2hp
bGUgKCFjb252ZmFpbDEgJiYgKHdjMSAhPSBMJ1xuJyAmJiBpc3dzcGFjZSAod2MxKSkpOworCisg
ICAgICAgICAgICAgICAgIHN0YXRlMSA9IHN0YXRlX2JhazsKKyAgICAgICAgICAgICAgICAgbWJs
ZW4xID0gbWJsZW5fYmFrOworICAgICAgICAgICAgICAgICB0MSAtPSBtYmxlbjE7CisgICAgICAg
ICAgICAgICAgIGNvbnZmYWlsMSA9IDA7CisgICAgICAgICAgICAgICAgIHdjMSA9IEwnICc7Cisg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAvKiBMaWtld2lzZSBmb3IgbGluZSAyLiAg
Ki8KKyAgICAgICAgICAgICBpZiAod2MyICE9IEwnXG4nICYmIGlzd3NwYWNlICh3YzIpKQorICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBzaXplX3QgbWJsZW5fYmFrOworICAgICAg
ICAgICAgICAgICBtYnN0YXRlX3Qgc3RhdGVfYmFrOworCisgICAgICAgICAgICAgICAgIGRvCisg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgdDIgKz0gbWJsZW4yOwor
ICAgICAgICAgICAgICAgICAgICAgbWJsZW5fYmFrID0gbWJsZW4yOworICAgICAgICAgICAgICAg
ICAgICAgc3RhdGVfYmFrID0gc3RhdGUyOworICAgICAgICAgICAgICAgICAgICAgTUJDMldDICh0
MiwgZW5kMiwgbWJsZW4yLCB3YzIsIHN0YXRlMiwgY29udmZhaWwyKTsKKyAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgIHdoaWxlICghY29udmZhaWwyICYmICh3YzIgIT0gTCdc
bicgJiYgaXN3c3BhY2UgKHdjMikpKTsKKworICAgICAgICAgICAgICAgICBzdGF0ZTIgPSBzdGF0
ZV9iYWs7CisgICAgICAgICAgICAgICAgIG1ibGVuMiA9IG1ibGVuX2JhazsKKyAgICAgICAgICAg
ICAgICAgdDIgLT0gbWJsZW4yOworICAgICAgICAgICAgICAgICBjb252ZmFpbDIgPSAwOworICAg
ICAgICAgICAgICAgICB3YzIgPSBMJyAnOworICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgaWYgKHdjMSAhPSB3YzIpCisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGlm
ICh3YzIgPT0gTCcgJyAmJiB3YzEgIT0gTCdcbicgJiYKKyAgICAgICAgICAgICAgICAgICAgIHQx
ID4gKHVuc2lnbmVkIGNoYXIgY29uc3QgKilzMSAmJgorICAgICAgICAgICAgICAgICAgICAgIWNv
bnZmYWlsMV9iYWsgJiYgaXN3c3BhY2UgKHdjMV9iYWspKQorICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgIHQxID0gdDFfYmFrOworICAgICAgICAgICAgICAgICAgICAg
d2MxID0gd2MxX2JhazsKKyAgICAgICAgICAgICAgICAgICAgIHN0YXRlMSA9IHN0YXRlMV9iYWs7
CisgICAgICAgICAgICAgICAgICAgICBjb252ZmFpbDEgPSBjb252ZmFpbDFfYmFrOworICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICBpZiAod2MxID09IEwnICcgJiYgd2MyICE9IEwnXG4nCisgICAgICAgICAgICAgICAg
ICAgICAmJiB0MiA+ICh1bnNpZ25lZCBjaGFyIGNvbnN0ICopczIKKyAgICAgICAgICAgICAgICAg
ICAgICYmICFjb252ZmFpbDJfYmFrICYmIGlzd3NwYWNlICh3YzJfYmFrKSkKKyAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICB0MiA9IHQyX2JhazsKKyAgICAgICAgICAg
ICAgICAgICAgIHdjMiA9IHdjMl9iYWs7CisgICAgICAgICAgICAgICAgICAgICBzdGF0ZTIgPSBz
dGF0ZTJfYmFrOworICAgICAgICAgICAgICAgICAgICAgY29udmZhaWwyID0gY29udmZhaWwyX2Jh
azsKKyAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgIHQxX2JhayA9IHQxOyAgICAgICAgICAg
ICAgICB0Ml9iYWsgPSB0MjsKKyAgICAgICAgICAgICB3YzFfYmFrID0gd2MxOyAgICAgICAgICAg
ICAgd2MyX2JhayA9IHdjMjsKKyAgICAgICAgICAgICBzdGF0ZTFfYmFrID0gc3RhdGUxOyAgICAg
ICAgc3RhdGUyX2JhayA9IHN0YXRlMjsKKyAgICAgICAgICAgICBjb252ZmFpbDFfYmFrID0gY29u
dmZhaWwxOyAgY29udmZhaWwyX2JhayA9IGNvbnZmYWlsMjsKKworICAgICAgICAgICAgIGlmICh3
YzEgPT0gTCdcbicpCisgICAgICAgICAgICAgICB3YzEgPSBMJyAnOworICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgIHQxICs9IG1ibGVuMTsKKworICAgICAgICAgICAgIGlmICh3YzIg
PT0gTCdcbicpCisgICAgICAgICAgICAgICB3YzIgPSBMJyAnOworICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgIHQyICs9IG1ibGVuMjsKKworICAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgICAgIGNhc2UgSUdOT1JFX1RBQl9FWFBBTlNJT046CisgICAgICAgICAgICAgaWYgKCh3
YzEgPT0gTCcgJyAmJiB3YzIgPT0gTCdcdCcpCisgICAgICAgICAgICAgICAgIHx8ICh3YzEgPT0g
TCdcdCcgJiYgd2MyID09IEwnICcpKQorICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICBzaXplX3QgY29sdW1uMiA9IGNvbHVtbjsKKworICAgICAgICAgICAgICAgICB3aGlsZSAoMSkK
KyAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBpZiAoY29udmZhaWwx
KQorICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgKyt0
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAod2MxID09IEwnICcpCisgICAgICAg
ICAgICAgICAgICAgICAgIGNvbHVtbisrOworICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAo
d2MxID09IEwnXHQnKQorICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4gKz0gVEFCX1dJRFRI
IC0gY29sdW1uICUgVEFCX1dJRFRIOworICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgdDEgKz0gbWJsZW4x
OworICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICAgICAgIHQxICs9IG1ibGVuMTsKKyAgICAgICAgICAgICAg
ICAgICAgIGMxID0gKnQxOworICAgICAgICAgICAgICAgICAgICAgTUJDMldDICh0MSwgZW5kMSwg
bWJsZW4xLCB3YzEsIHN0YXRlMSwgY29udmZhaWwxKTsKKyAgICAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAgd2hpbGUgKDEpCisgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNvbnZmYWlsMikKKyAgICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICsrdDI7CisgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKHdjMiA9PSBMJyAnKQorICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4yKys7Cisg
ICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh3YzIgPT0gTCdcdCcpCisgICAgICAgICAgICAg
ICAgICAgICAgIGNvbHVtbjIgKz0gVEFCX1dJRFRIIC0gY29sdW1uMiAlIFRBQl9XSURUSDsKKyAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgIHQyICs9IG1ibGVuMjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAg
ICB0MiArPSBtYmxlbjI7CisgICAgICAgICAgICAgICAgICAgICBjMiA9ICp0MjsKKyAgICAgICAg
ICAgICAgICAgICAgIE1CQzJXQyAodDIsIGVuZDIsIG1ibGVuMiwgd2MyLCBzdGF0ZTIsIGNvbnZm
YWlsMik7CisgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIGlmIChjb2x1
bW4gIT0gY29sdW1uMikKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIHQxICs9IG1ibGVuMTsKKyAgICAgICAgICAgICAgICAgdDIgKz0gbWJsZW4yOworICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgIGNhc2UgSUdOT1JF
X05PX1dISVRFX1NQQUNFOgorICAgICAgICAgICAgIHQxICs9IG1ibGVuMTsKKyAgICAgICAgICAg
ICB0MiArPSBtYmxlbjI7CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIH0KKworICAg
ICAgICAgLyogTG93ZXJjYXNlIGFsbCBsZXR0ZXJzIGlmIC1pIGlzIHNwZWNpZmllZC4gICovCisg
ICAgICAgICBpZiAoaWdub3JlX2Nhc2UpCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICBpZiAo
IWNvbnZmYWlsMSkKKyAgICAgICAgICAgICAgIHdjMSA9IHRvd2xvd2VyICh3YzEpOworICAgICAg
ICAgICAgIGlmICghY29udmZhaWwyKQorICAgICAgICAgICAgICAgd2MyID0gdG93bG93ZXIgKHdj
Mik7CisgICAgICAgICAgIH0KKworICAgICAgICAgaWYgKGNvbnZmYWlsMSBeIGNvbnZmYWlsMikK
KyAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBlbHNlIGlmIChjb252ZmFpbDEgJiYgY29udmZh
aWwyICYmIGMxICE9IGMyKQorICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGVsc2UgaWYgKCFj
b252ZmFpbDEgJiYgIWNvbnZmYWlsMiAmJiB3YzEgIT0gd2MyKQorICAgICAgICAgICBicmVhazsK
KyAgICAgICB9CisgICAgICBlbHNlCisgICAgICAgeworICAgICAgICAgdDFfYmFrID0gdDE7ICAg
ICAgICAgICAgICAgICAgdDJfYmFrID0gdDI7CisgICAgICAgICB3YzFfYmFrID0gd2MxOyAgICAg
ICAgICAgICAgICB3YzJfYmFrID0gd2MyOworICAgICAgICAgc3RhdGUxX2JhayA9IHN0YXRlMTsg
ICAgICAgICAgc3RhdGUyX2JhayA9IHN0YXRlMjsKKyAgICAgICAgIGNvbnZmYWlsMV9iYWsgPSBj
b252ZmFpbDE7ICAgIGNvbnZmYWlsMl9iYWsgPSBjb252ZmFpbDI7CisKKyAgICAgICAgIHQxICs9
IG1ibGVuMTsgICAgICAgICAgICAgICAgIHQyICs9IG1ibGVuMjsKKyAgICAgICB9CisKKyAgICAg
IGlmICghY29udmZhaWwxICYmIHdjMSA9PSBMJ1xuJykKKyAgICAgICByZXR1cm4gMDsKKworICAg
ICAgY29sdW1uICs9IGNvbnZmYWlsMSA/IDEgOgorICAgICAgICh3YzEgPT0gTCdcdCcpID8gVEFC
X1dJRFRIIC0gY29sdW1uICUgVEFCX1dJRFRIIDogd2N3aWR0aCAod2MxKTsKKyAgICB9CisKKyAg
cmV0dXJuIDE7Cit9CisjZW5kaWYKIAwKIC8qIEZpbmQgdGhlIGNvbnNlY3V0aXZlIGNoYW5nZXMg
YXQgdGhlIHN0YXJ0IG9mIHRoZSBzY3JpcHQgU1RBUlQuCiAgICBSZXR1cm4gdGhlIGxhc3QgbGlu
ayBiZWZvcmUgdGhlIGZpcnN0IGdhcC4gICovCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46238</attachid>
            <date>2004-12-17 14:31 0000</date>
            <desc>diffutils-2.8.7.ebuild.patch</desc>
            <filename>diffutils-2.8.7.ebuild.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIC91c3IvcG9ydGFnZS9zeXMtYXBwcy9kaWZmdXRpbHMvZGlmZnV0aWxzLTIuOC43LmVidWls
ZAkyMDA0LTEyLTA5IDA3OjE5OjU3LjAwMDAwMDAwMCArMDIwMAorKysgZGlmZnV0aWxzLTIuOC43
LmVidWlsZAkyMDA0LTEyLTE4IDAwOjI1OjM1LjE1NTA4MzQyNCArMDIwMApAQCAtMjUsNiArMjUs
OCBAQAogCSMgYnVnICMxMTcyOCwgdGhhbmtzIHRvIEQgV29sbG1hbm4gPGNvbnZlcnRlckBkYWxu
ZXQtcGVybC5vcmc+CiAJZXBhdGNoICR7RklMRVNESVJ9L2RpZmZ1dGlscy0yLjguNC1zZGlmZi1u
by13YWl0cGlkLnBhdGNoCiAKKwllcGF0Y2ggJHtGSUxFU0RJUn0vJHtQfS1pMThuLnBhdGNoCisK
IAkjIE1ha2Ugc3VyZSB3ZSBkb24ndCB0cnkgZ2VuZXJhdGluZyB0aGUgbWFucGFnZXMgLi4uIHRo
aXMgcmVxdWlyZXMgCiAJIyAnaGVscDJtYW4nIHdoaWNoIGlzIGEgcGVybCBhcHAgd2hpY2ggaXMg
bm90IGF2YWlsYWJsZSBpbiBhIAogCSMgc3RhZ2UyIC8gc3RhZ2UzIC4uLiBkb24ndCBERVBFTkQg
b24gaXQgb3Igd2UgZ2V0IGEgREVQRU5EIGxvb3AgOigK
</data>        

          </attachment>
    </bug>

</bugzilla>