<?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>66360</bug_id>
          
          <creation_ts>2004-10-04 15:38 0000</creation_ts>
          <short_desc>dev-lang/perl: Insecure tempfile handling</short_desc>
          <delta_ts>2004-12-07 12:46:42 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Security</product>
          <component>Vulnerabilities</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.securityfocus.com/advisories/7263</bug_file_loc>
          <status_whiteboard>A3 [glsa] lewk</status_whiteboard>
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>lewk@gentoo.org</reporter>
          <assigned_to>security@gentoo.org</assigned_to>
          <cc>mcummings@gentoo.org</cc>
    
    <cc>perl@gentoo.org</cc>
    
    <cc>rac@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-10-04 15:38:49 0000</bug_when>
            <thetext>Problem description:

  Trustix Security Engineers identified that all these packages had one or
  more script(s) that handled temporary files in an insecure manner.  While
  it is not believed that any of these holes could lead to privilege
  escalation, it would be possible to trick the scripts to overwrite data
  writable by the user that invokes the script.

  These problems can only be exploited by local users, and they would have to
  wait for someone else, preferably root, to run the vulnerable scripts.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-10-04 15:39:16 0000</bug_when>
            <thetext>Created an attachment (id=41099)
mysql-4.0.18-tempfile.patch

Trustix patch to fix tempfile insecurities.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-10-04 15:40:05 0000</bug_when>
            <thetext>perl herd,

please verify and apply patch if necessary.  perl-5.8.4-r1 looks to be vulnerable to this issue.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mcummings@gentoo.org</who>
            <bug_when>2004-10-05 13:42:03 0000</bug_when>
            <thetext>Lewk - any hints on which files in the perl distribution tree...? Maybe a url for the advisory...?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-10-05 13:53:20 0000</bug_when>
            <thetext>Created an attachment (id=41172)
perl-5.8.3-openwall-1.3-tempfile.patch

Sorry, I added the wrong patch.  Here is the Trustix patch to fix tempfile
vulnerabilities in perl-5.8.3, but 5.8.4-r1 looks to have the same issues.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-10-07 18:08:21 0000</bug_when>
            <thetext>Any updates on whether or not you guys want this patch?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2004-10-09 03:27:01 0000</bug_when>
            <thetext>Perl team, please comment/apply patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mcummings@gentoo.org</who>
            <bug_when>2004-10-09 05:07:36 0000</bug_when>
            <thetext>We are reviewing. Most of it is silly - changing /tmp to /var/tmp - when there is no security advantage whatsoever in it. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2004-10-09 05:37:52 0000</bug_when>
            <thetext>There are silly parts (like the .pod changes), but the changes to /tmp/X to /var/run/X make sense... as one is world-writeable while the other is not.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2004-10-20 04:39:18 0000</bug_when>
            <thetext>This is CAN-2004-0976</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mcummings@gentoo.org</who>
            <bug_when>2004-10-20 11:17:09 0000</bug_when>
            <thetext>Check your tmps again. They are the same perms. There is very little of value in this patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mcummings@gentoo.org</who>
            <bug_when>2004-10-20 11:20:33 0000</bug_when>
            <thetext>lmcummings@sys947 ~ $ ls -al /|grep tmp
drwxrwxrwt   22 root root     8192 Oct 20 14:14 tmp
mcummings@sys947 ~ $ ls -al /var|grep tmp
drwxrwxrwt  12 root   root   4096 Oct 20 10:22 tmp


Same on every bare and not so bare gentoo box I can find (5 total). There is no value to that portion of the patch, it isn&apos;t any more secure one way than the other (not to mention if you want to get all technical, /var/tmp is supposed to be reserved for temporary files that persist between boots, and why would you want your perl compile writing in there??)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mcummings@gentoo.org</who>
            <bug_when>2004-10-20 11:27:04 0000</bug_when>
            <thetext>Sorry, last comment was based on the wrong patch set:/

Still - this patch is largely worthless (sorry, but it is). Most of it involves patching inline documentation and pods. This isn&apos;t the huge security risk that you are implying, but we will attempt to look more when we/I can.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2004-10-20 11:58:30 0000</bug_when>
            <thetext>If it just patches the doc, then it should not be applied. If it patches even just one tempfile vuln, then it should.

I&apos;m not implying any huge security risk to justify it needs to be quickly done. Our job is also to quickly patch small security risks.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-10-20 12:10:09 0000</bug_when>
            <thetext>http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=136325

They are going to be using the same patch (before backporting).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mcummings@gentoo.org</who>
            <bug_when>2004-10-20 13:16:38 0000</bug_when>
            <thetext> You cannot expect perl herd to include patches like:

+# XXX: The temporary file handling implemented in here is crap.  It should
+# be re-done making use of File::Temp.

Yes, that is the sum total of the patch to CGI.pm. I am weeding out the documentation patches to be able to evalute the real parts.

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mcummings@gentoo.org</who>
            <bug_when>2004-10-20 13:31:01 0000</bug_when>
            <thetext>Created an attachment (id=42265)
Edited version

This is what I am left after removing the documentation changes and the patches
that have already gone upstream (this patch was for perl 5.8.3, I compared it
to the next version up that we still support wich is 5.8.4 - and that doesn&apos;t
mean that even more can be removed when compared to 5.8.5, I just haven&apos;t
gotten that far). 500 lines less.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-10-28 13:20:07 0000</bug_when>
            <thetext>According to other advisories, the majority of these vulnerabilities have been fixed in version 5.8.5.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mcummings@gentoo.org</who>
            <bug_when>2004-10-28 17:38:37 0000</bug_when>
            <thetext>All but a small handful were fixed by 5.8.4, and soon as I find free time, I&apos;ll confirm the remaining ones were corrected in 5.8.5 and/or the independant modules that replace them.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2004-11-04 02:30:46 0000</bug_when>
            <thetext>For information, Ubuntu patched their 5.8.4 and issued the following advisory :

-----------------
Ubuntu Security Notice USN-16-1		  November 02, 2004
perl vulnerabilities
CAN-2004-0976

Recently, Trustix Secure Linux discovered some vulnerabilities in the
perl package. The utility &quot;instmodsh&quot;, the Perl package &quot;PPPort.pm&quot;,
and several test scripts (which are not shipped and only used during
build) created temporary files in an insecure way, which could allow a
symlink attack to create or overwrite arbitrary files with the
privileges of the user invoking the program, or building the perl
package, respectively.
-----------------</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2004-11-11 08:46:58 0000</bug_when>
            <thetext>Micheal any news on this one?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rac@gentoo.org</who>
            <bug_when>2004-12-04 12:17:02 0000</bug_when>
            <thetext>The few bits that are still relevant are added to 5.8.5-r2 and 5.8.6-r1.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-12-04 16:46:02 0000</bug_when>
            <thetext>Please do not close security bugs...

Arches, please mark stable.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2004-12-05 01:19:57 0000</bug_when>
            <thetext>already done for a bunch of arches ;)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>corsair@gentoo.org</who>
            <bug_when>2004-12-05 03:01:19 0000</bug_when>
            <thetext>perl-5.8.5-r2 is now stable on ppc64</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kloeri@gentoo.org</who>
            <bug_when>2004-12-05 06:45:33 0000</bug_when>
            <thetext>perl-5.8.5-r2 stable on alpha.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>sekretarz@gentoo.org</who>
            <bug_when>2004-12-05 13:29:19 0000</bug_when>
            <thetext>Already marked stable on amd64</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gustavoz@gentoo.org</who>
            <bug_when>2004-12-06 12:55:46 0000</bug_when>
            <thetext>sparc stable.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lewk@gentoo.org</who>
            <bug_when>2004-12-06 19:55:19 0000</bug_when>
            <thetext>GLSA 200412-04</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>hardave@gentoo.org</who>
            <bug_when>2004-12-07 12:46:42 0000</bug_when>
            <thetext>Stable on mips.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41099</attachid>
            <date>2004-10-04 15:39 0000</date>
            <desc>mysql-4.0.18-tempfile.patch</desc>
            <filename>mysql-4.0.18-tempfile.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtdXIgbXlzcWwtNC4wLjE4Lm9yaWcvc2NyaXB0cy9teXNxbGhvdGNvcHkuc2ggbXlzcWwt
NC4wLjE4L3NjcmlwdHMvbXlzcWxob3Rjb3B5LnNoCi0tLSBteXNxbC00LjAuMTgub3JpZy9zY3Jp
cHRzL215c3FsaG90Y29weS5zaAkyMDA0LTAyLTEwIDE5OjE2OjA4LjAwMDAwMDAwMCArMDEwMAor
KysgbXlzcWwtNC4wLjE4L3NjcmlwdHMvbXlzcWxob3Rjb3B5LnNoCTIwMDQtMDktMTMgMTM6MTE6
NDkuMDAwMDAwMDAwICswMjAwCkBAIC02MzYsNyArNjM2LDggQEAKICAgICBlbHNpZiAoJG9wdHtt
ZXRob2R9IGVxICdzY3AnKQogICAgIHsKICAgICAgIG15ICR0bXA9JHRtcGZpbGU7Ci0gICAgICBv
cGVuKE9VVFBVVCwiPiR0bXAiKSB8fCBkaWUgIkNhblwndCBjcmVhdGUgZmlsZSAkdG1wOiAkIVxu
IjsKKyAgICAgIHVzZSBGY250bDsKKyAgICAgIHN5c29wZW4oT1VUUFVULCR0bXAsT19XUk9OTFl8
T19FWENMfE9fQ1JFQVQpIHx8IGRpZSAiQ2FuXCd0IGNyZWF0ZSBmaWxlICR0bXA6ICQhXG4iOwog
ICAgICAgaWYgKHN5c3dyaXRlKE9VVFBVVCwkYnVmZikgIT0gbGVuZ3RoKCRidWZmKSkKICAgICAg
IHsKIAlkaWUgIkVycm9yIHdoZW4gd3JpdGluZyBkYXRhIHRvICR0bXA6ICQhXG4iOwo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41172</attachid>
            <date>2004-10-05 13:53 0000</date>
            <desc>perl-5.8.3-openwall-1.3-tempfile.patch</desc>
            <filename>perl-5.8.3-openwall-1.3-tempfile.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2V4dC9EQl9GaWxlL0RCX0ZpbGUucG0gcGVybC01Ljgu
My9leHQvREJfRmlsZS9EQl9GaWxlLnBtCi0tLSBwZXJsLTUuOC4zLm9yaWcvZXh0L0RCX0ZpbGUv
REJfRmlsZS5wbQlNb24gSmFuIDE5IDE4OjQ2OjI1IDIwMDQKKysrIHBlcmwtNS44LjMvZXh0L0RC
X0ZpbGUvREJfRmlsZS5wbQlNb24gSmFuIDE5IDIwOjE0OjExIDIwMDQKQEAgLTE4MjEsNyArMTgy
MSw3IEBACiAgICAgdXNlIERCX0ZpbGUgOwogCiAgICAgbXkgJWhhc2ggOwotICAgIG15ICRmaWxl
bmFtZSA9ICIvdG1wL2ZpbHQiIDsKKyAgICBteSAkZmlsZW5hbWUgPSAiL3Zhci9ydW4vZmlsdCIg
OwogICAgIHVubGluayAkZmlsZW5hbWUgOwogCiAgICAgbXkgJGRiID0gdGllICVoYXNoLCAnREJf
RmlsZScsICRmaWxlbmFtZSwgT19DUkVBVHxPX1JEV1IsIDA2NjYsICREQl9IQVNIIApAQCAtMTg2
Myw3ICsxODYzLDcgQEAKICAgICB1c2Ugc3RyaWN0IDsKICAgICB1c2UgREJfRmlsZSA7CiAgICAg
bXkgJWhhc2ggOwotICAgIG15ICRmaWxlbmFtZSA9ICIvdG1wL2ZpbHQiIDsKKyAgICBteSAkZmls
ZW5hbWUgPSAiL3Zhci9ydW4vZmlsdCIgOwogICAgIHVubGluayAkZmlsZW5hbWUgOwogCiAKQEAg
LTE4OTQsOCArMTg5NCw4IEBACiAKIFRoZSBsb2NraW5nIHRlY2huaXF1ZSB3ZW50IGxpa2UgdGhp
cy4gCiAKLSAgICAkZGIgPSB0aWUoJWRiLCAnREJfRmlsZScsICcvdG1wL2Zvby5kYicsIE9fQ1JF
QVR8T19SRFdSLCAwNjY2KQotICAgICAgICB8fCBkaWUgImRiY3JlYXQgL3RtcC9mb28uZGIgJCEi
OworICAgICRkYiA9IHRpZSglZGIsICdEQl9GaWxlJywgJy92YXIvcnVuL2Zvby5kYicsIE9fQ1JF
QVR8T19SRFdSLCAwNjQ0KQorICAgICAgICB8fCBkaWUgImRiY3JlYXQgL3Zhci9ydW4vZm9vLmRi
ICQhIjsKICAgICAkZmQgPSAkZGItPmZkOwogICAgIG9wZW4oREJfRkgsICIrPCY9JGZkIikgfHwg
ZGllICJkdXAgJCEiOwogICAgIGZsb2NrIChEQl9GSCwgTE9DS19FWCkgfHwgZGllICJmbG9jazog
JCEiOwpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvZXh0L0RCX0ZpbGUvdC9kYi1yZWNuby50IHBl
cmwtNS44LjMvZXh0L0RCX0ZpbGUvdC9kYi1yZWNuby50Ci0tLSBwZXJsLTUuOC4zLm9yaWcvZXh0
L0RCX0ZpbGUvdC9kYi1yZWNuby50CU1vbiBKYW4gMTkgMTg6NDY6MjUgMjAwNAorKysgcGVybC01
LjguMy9leHQvREJfRmlsZS90L2RiLXJlY25vLnQJU3VuIEphbiAyNSAxODo1Mzo1MSAyMDA0CkBA
IC0xMTk4LDcgKzExOTgsNyBAQAogCiBteSAkdGVzdG51bSA9IDE4MTsKIG15ICRmYWlsZWQgPSAw
OwotcmVxdWlyZSBQT1NJWDsgbXkgJHRtcCA9IFBPU0lYOjp0bXBuYW0oKTsKK215ICR0bXAgPSAi
ZGJyJCQiOwogZm9yZWFjaCBteSAkdGVzdCAoQHRlc3RzKSB7CiAgICAgbXkgJGVyciA9IHRlc3Rf
c3BsaWNlKEAkdGVzdCk7CiAgICAgaWYgKGRlZmluZWQgJGVycikgewpkaWZmIC11ciBwZXJsLTUu
OC4zLm9yaWcvZXh0L0RldmVsL1BQUG9ydC9QUFBvcnQucG0gcGVybC01LjguMy9leHQvRGV2ZWwv
UFBQb3J0L1BQUG9ydC5wbQotLS0gcGVybC01LjguMy5vcmlnL2V4dC9EZXZlbC9QUFBvcnQvUFBQ
b3J0LnBtCU1vbiBKYW4gMTkgMTg6NDY6MjUgMjAwNAorKysgcGVybC01LjguMy9leHQvRGV2ZWwv
UFBQb3J0L1BQUG9ydC5wbQlTdW4gSmFuIDI1IDE2OjE2OjUzIDIwMDQKQEAgLTM0OSwxMyArMzQ5
LDEzIEBACiAJfQogCQogCWlmICgkY2hhbmdlcykgewotCQlvcGVuKE9VVCwiPi90bXAvcHBwb3J0
LmguJCQiKTsKKwkJb3BlbihPVVQsInBwcG9ydC5oLiQkIik7CiAJCXByaW50IE9VVCAkYzsKIAkJ
Y2xvc2UoT1VUKTsKLQkJb3BlbihESUZGLCAiZGlmZiAtdSAkZmlsZW5hbWUgL3RtcC9wcHBvcnQu
aC4kJHwiKTsKLQkJd2hpbGUgKDxESUZGPikgeyBzIS90bXAvcHBwb3J0XC5oXC4kJCEkZmlsZW5h
bWUucGF0Y2hlZCE7IHByaW50IFNURE9VVDsgfQorCQlvcGVuKERJRkYsICJkaWZmIC11ICRmaWxl
bmFtZSBwcHBvcnQuaC4kJHwiKTsKKwkJd2hpbGUgKDxESUZGPikgeyBzIXBwcG9ydFwuaFwuJCQh
JGZpbGVuYW1lLnBhdGNoZWQhOyBwcmludCBTVERPVVQ7IH0KIAkJY2xvc2UoRElGRik7Ci0JCXVu
bGluaygiL3RtcC9wcHBvcnQuaC4kJCIpOworCQl1bmxpbmsoInBwcG9ydC5oLiQkIik7CiAJfSBl
bHNlIHsKIAkJcHJpbnQgIkxvb2tzIE9LXG4iOwogCX0KZGlmZiAtdXIgcGVybC01LjguMy5vcmln
L2V4dC9JTy90L2lvX3VuaXgudCBwZXJsLTUuOC4zL2V4dC9JTy90L2lvX3VuaXgudAotLS0gcGVy
bC01LjguMy5vcmlnL2V4dC9JTy90L2lvX3VuaXgudAlUdWUgU2VwIDMwIDE3OjEwOjE3IDIwMDMK
KysrIHBlcmwtNS44LjMvZXh0L0lPL3QvaW9fdW5peC50CVN1biBKYW4gMjUgMTY6MTc6NDMgMjAw
NApAQCAtMjQsNyArMjQsNyBAQAogCWVsc2lmICgkXk8gZXEgJ29zMicpIHsKIAkgICAgcmVxdWly
ZSBJTzo6U29ja2V0OwogCi0JICAgIGV2YWwge0lPOjpTb2NrZXQ6OnBhY2tfc29ja2FkZHJfdW4o
Jy90bXAvZm9vJykgfHwgMX0KKwkgICAgZXZhbCB7SU86OlNvY2tldDo6cGFja19zb2NrYWRkcl91
bignL2Zvby9iYXInKSB8fCAxfQogCSAgICAgIG9yICRAICF+IC9ub3QgaW1wbGVtZW50ZWQvIG9y
CiAJCSRyZWFzb24gPSAnY29tcGlsZWQgd2l0aG91dCBUQ1AvSVAgc3RhY2sgdjQnOwogCX0gZWxz
aWYgKCReTyA9fiBtL14oPzpxbnh8bnRvfHZvcykkLyApIHsKQEAgLTM3LDcgKzM3LDcgQEAKICAg
ICB9CiB9CiAKLSRQQVRIID0gIi90bXAvc29jay0kJCI7CiskUEFUSCA9ICJzb2NrLSQkIjsKIAog
IyBUZXN0IGlmIHdlIGNhbiBjcmVhdGUgdGhlIGZpbGUgd2l0aGluIHRoZSB0bXAgZGlyZWN0b3J5
CiBpZiAoLWUgJFBBVEggb3Igbm90IG9wZW4oVEVTVCwgIj4kUEFUSCIpIGFuZCAkXk8gbmUgJ29z
MicpIHsKZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2V4dC9PREJNX0ZpbGUvT0RCTV9GaWxlLnhz
IHBlcmwtNS44LjMvZXh0L09EQk1fRmlsZS9PREJNX0ZpbGUueHMKLS0tIHBlcmwtNS44LjMub3Jp
Zy9leHQvT0RCTV9GaWxlL09EQk1fRmlsZS54cwlUdWUgU2VwIDMwIDE3OjEwOjIwIDIwMDMKKysr
IHBlcmwtNS44LjMvZXh0L09EQk1fRmlsZS9PREJNX0ZpbGUueHMJTW9uIEphbiAxOSAyMTo1NTo1
NCAyMDA0CkBAIC0zMiw3ICszMiw3IEBACiAgKiBTZXQgREJNX0JVR19EVVBMSUNBVEVfRlJFRSBp
biB0aGUgZXh0ZW5zaW9uIGhpbnQgZmlsZS4KICAqLwogLyogQ2xvc2UgdGhlIHByZXZpb3VzIGRi
bSwgYW5kIGZhaWwgdG8gb3BlbiBhIG5ldyBkYm0gKi8KLSNkZWZpbmUgZGJtY2xvc2UoKQkoKHZv
aWQpIGRibWluaXQoIi90bXAveC95L3ovei95IikpCisjZGVmaW5lIGRibWNsb3NlKCkJKCh2b2lk
KSBkYm1pbml0KCIvbm9uZXhpc3RlbnQiKSkKICNlbmRpZgogCiAjaW5jbHVkZSA8ZmNudGwuaD4K
ZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2V4dC9QT1NJWC9QT1NJWC5wb2QgcGVybC01LjguMy9l
eHQvUE9TSVgvUE9TSVgucG9kCi0tLSBwZXJsLTUuOC4zLm9yaWcvZXh0L1BPU0lYL1BPU0lYLnBv
ZAlUdWUgU2VwIDMwIDE3OjEwOjIyIDIwMDMKKysrIHBlcmwtNS44LjMvZXh0L1BPU0lYL1BPU0lY
LnBvZAlTdW4gSmFuIDI1IDE2OjE5OjE2IDIwMDQKQEAgLTQxNyw5ICs0MTcsOSBAQAogdXNlcyBm
aWxlIGRlc2NyaXB0b3JzIHN1Y2ggYXMgdGhvc2Ugb2J0YWluZWQgYnkgY2FsbGluZyBDPFBPU0lY
OjpvcGVuPi4KIAogVGhlIGZvbGxvd2luZyB3aWxsIGRldGVybWluZSB0aGUgbWF4aW11bSBsZW5n
dGggb2YgdGhlIGxvbmdlc3QgYWxsb3dhYmxlCi1wYXRobmFtZSBvbiB0aGUgZmlsZXN5c3RlbSB3
aGljaCBob2xkcyBDPC90bXAvZm9vPi4KK3BhdGhuYW1lIG9uIHRoZSBmaWxlc3lzdGVtIHdoaWNo
IGhvbGRzIEM8L3Zhci9mb28+LgogCi0JJGZkID0gUE9TSVg6Om9wZW4oICIvdG1wL2ZvbyIsICZQ
T1NJWDo6T19SRE9OTFkgKTsKKwkkZmQgPSBQT1NJWDo6b3BlbiggIi92YXIvZm9vIiwgJlBPU0lY
OjpPX1JET05MWSApOwogCSRwYXRoX21heCA9IFBPU0lYOjpmcGF0aGNvbmYoICRmZCwgJlBPU0lY
OjpfUENfUEFUSF9NQVggKTsKIAogUmV0dXJucyBDPHVuZGVmPiBvbiBmYWlsdXJlLgpAQCAtOTE5
LDcgKzkxOSw3IEBACiAKIE9wZW4gYSBkaXJlY3RvcnkgZm9yIHJlYWRpbmcuCiAKLQkkZGlyID0g
UE9TSVg6Om9wZW5kaXIoICIvdG1wIiApOworCSRkaXIgPSBQT1NJWDo6b3BlbmRpciggIi92YXIi
ICk7CiAJQGZpbGVzID0gUE9TSVg6OnJlYWRkaXIoICRkaXIgKTsKIAlQT1NJWDo6Y2xvc2VkaXIo
ICRkaXIgKTsKIApAQCAtOTMwLDkgKzkzMCw5IEBACiBSZXRyaWV2ZXMgdGhlIHZhbHVlIG9mIGEg
Y29uZmlndXJhYmxlIGxpbWl0IG9uIGEgZmlsZSBvciBkaXJlY3RvcnkuCiAKIFRoZSBmb2xsb3dp
bmcgd2lsbCBkZXRlcm1pbmUgdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBsb25nZXN0IGFsbG93
YWJsZQotcGF0aG5hbWUgb24gdGhlIGZpbGVzeXN0ZW0gd2hpY2ggaG9sZHMgQzwvdG1wPi4KK3Bh
dGhuYW1lIG9uIHRoZSBmaWxlc3lzdGVtIHdoaWNoIGhvbGRzIEM8L3Zhcj4uCiAKLQkkcGF0aF9t
YXggPSBQT1NJWDo6cGF0aGNvbmYoICIvdG1wIiwgJlBPU0lYOjpfUENfUEFUSF9NQVggKTsKKwkk
cGF0aF9tYXggPSBQT1NJWDo6cGF0aGNvbmYoICIvdmFyIiwgJlBPU0lYOjpfUENfUEFUSF9NQVgg
KTsKIAogUmV0dXJucyBDPHVuZGVmPiBvbiBmYWlsdXJlLgogCmRpZmYgLXVyIHBlcmwtNS44LjMu
b3JpZy9leHQvU29ja2V0L1NvY2tldC5wbSBwZXJsLTUuOC4zL2V4dC9Tb2NrZXQvU29ja2V0LnBt
Ci0tLSBwZXJsLTUuOC4zLm9yaWcvZXh0L1NvY2tldC9Tb2NrZXQucG0JVHVlIFNlcCAzMCAxNzox
MDoyNSAyMDAzCisrKyBwZXJsLTUuOC4zL2V4dC9Tb2NrZXQvU29ja2V0LnBtCU1vbiBKYW4gMTkg
MjA6MTQ6MTEgMjAwNApAQCAtMzIsOCArMzIsOCBAQAogCiAgICAgJHByb3RvID0gZ2V0cHJvdG9i
eW5hbWUoJ3RjcCcpOwogICAgIHNvY2tldChTb2NrZXRfSGFuZGxlLCBQRl9VTklYLCBTT0NLX1NU
UkVBTSwgJHByb3RvKTsKLSAgICB1bmxpbmsoJy90bXAvdXNvY2snKTsKLSAgICAkc3VuID0gc29j
a2FkZHJfdW4oJy90bXAvdXNvY2snKTsKKyAgICB1bmxpbmsoJy92YXIvcnVuL3Vzb2NrJyk7Cisg
ICAgJHN1biA9IHNvY2thZGRyX3VuKCcvdmFyL3J1bi91c29jaycpOwogICAgIGNvbm5lY3QoU29j
a2V0X0hhbmRsZSwkc3VuKTsKIAogPWhlYWQxIERFU0NSSVBUSU9OCmRpZmYgLXVyIHBlcmwtNS44
LjMub3JpZy9leHQvU3RvcmFibGUvU3RvcmFibGUucG0gcGVybC01LjguMy9leHQvU3RvcmFibGUv
U3RvcmFibGUucG0KLS0tIHBlcmwtNS44LjMub3JpZy9leHQvU3RvcmFibGUvU3RvcmFibGUucG0J
TW9uIEphbiAxOSAxODo0NjoyNSAyMDA0CisrKyBwZXJsLTUuOC4zL2V4dC9TdG9yYWJsZS9TdG9y
YWJsZS5wbQlTdW4gSmFuIDI1IDE2OjI0OjI0IDIwMDQKQEAgLTc4NiwxMCArNzg2LDEwIEBACiAK
IAklY29sb3IgPSAoJ0JsdWUnID0+IDAuMSwgJ1JlZCcgPT4gMC44LCAnQmxhY2snID0+IDAsICdX
aGl0ZScgPT4gMSk7CiAKLQlzdG9yZShcJWNvbG9yLCAnL3RtcC9jb2xvcnMnKSBvciBkaWUgIkNh
bid0IHN0b3JlICVhIGluIC90bXAvY29sb3JzIVxuIjsKKwlzdG9yZShcJWNvbG9yLCAnL3Zhci9y
dW4vY29sb3JzJykgb3IgZGllICJDYW4ndCBzdG9yZSAlYSBpbiAvdmFyL3J1bi9jb2xvcnMhXG4i
OwogCi0JJGNvbHJlZiA9IHJldHJpZXZlKCcvdG1wL2NvbG9ycycpOwotCWRpZSAiVW5hYmxlIHRv
IHJldHJpZXZlIGZyb20gL3RtcC9jb2xvcnMhXG4iIHVubGVzcyBkZWZpbmVkICRjb2xyZWY7CisJ
JGNvbHJlZiA9IHJldHJpZXZlKCcvdmFyL3J1bi9jb2xvcnMnKTsKKwlkaWUgIlVuYWJsZSB0byBy
ZXRyaWV2ZSBmcm9tIC92YXIvcnVuL2NvbG9ycyFcbiIgdW5sZXNzIGRlZmluZWQgJGNvbHJlZjsK
IAlwcmludGYgIkJsdWUgaXMgc3RpbGwgJWxmXG4iLCAkY29scmVmLT57J0JsdWUnfTsKIAogCSRj
b2xyZWYyID0gZGNsb25lKFwlY29sb3IpOwpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvZXh0L1Rp
bWUvSGlSZXMvTWFrZWZpbGUuUEwgcGVybC01LjguMy9leHQvVGltZS9IaVJlcy9NYWtlZmlsZS5Q
TAotLS0gcGVybC01LjguMy5vcmlnL2V4dC9UaW1lL0hpUmVzL01ha2VmaWxlLlBMCVR1ZSBPY3Qg
MjggMjA6MzU6NTEgMjAwMworKysgcGVybC01LjguMy9leHQvVGltZS9IaVJlcy9NYWtlZmlsZS5Q
TAlTdW4gSmFuIDI1IDE2OjI3OjAxIDIwMDQKQEAgLTcxLDE5ICs3MSwxMSBAQAogIyB3aXRob3V0
IGNoYW5naW5nIGl0LCBhbmQgdGhlbiBJJ2QgYWx3YXlzIGZvcmdldCB0byBjaGFuZ2UgaXQgYmVm
b3JlIGEKICMgcmVsZWFzZS4gU29ycnksIEVkd2FyZCA6KQogCi1zdWIgVE1QRElSIHsKLSAgICBt
eSAkVE1QRElSID0KLQkoZ3JlcChkZWZpbmVkICRfICYmIC1kICRfICYmIC13IF8sCi0JICAgICAg
KChkZWZpbmVkICRFTlZ7J1RNUERJUid9ID8gJEVOVnsnVE1QRElSJ30gOiB1bmRlZiksCi0JICAg
ICAgIHF3KC92YXIvdG1wIC91c3IvdG1wIC90bXAgYzovdGVtcCkpKSlbMF07Ci0gICAgJFRNUERJ
UiB8fCBkaWUgIkNhbm5vdCBmaW5kIHdyaXRhYmxlIHRlbXBvcmFyeSBkaXJlY3RvcnkuXG4iOwot
fQotCiBzdWIgdHJ5X2NvbXBpbGVfYW5kX2xpbmsgewogICAgIG15ICgkYywgJWFyZ3MpID0gQF87
CiAKICAgICBteSAoJG9rKSA9IDA7Ci0gICAgbXkgKCR0bXApID0gKCgkXk8gZXEgJ1ZNUycpID8g
InN5c1wkc2NyYXRjaDp0bXAkJCIgOiBUTVBESVIoKSAuICcvJyAuICJ0bXAkJCIpOworICAgIG15
ICgkdG1wKSA9ICJ0bXAkJCI7CiAgICAgbG9jYWwoKlRNUEMpOwogCiAgICAgbXkgJG9ial9leHQg
PSAkQ29uZmlne29ial9leHR9IHx8ICIubyI7CmRpZmYgLXVyIHBlcmwtNS44LjMub3JpZy9saWIv
Q0dJL0Nvb2tpZS5wbSBwZXJsLTUuOC4zL2xpYi9DR0kvQ29va2llLnBtCi0tLSBwZXJsLTUuOC4z
Lm9yaWcvbGliL0NHSS9Db29raWUucG0JTW9uIEphbiAxOSAxODo0NjoyNSAyMDA0CisrKyBwZXJs
LTUuOC4zL2xpYi9DR0kvQ29va2llLnBtCU1vbiBKYW4gMTkgMjA6MTQ6MTEgMjAwNApAQCAtNDA3
LDcgKzQwNyw3IEBACiBZb3UgbWF5IGFsc28gcmV0cmlldmUgY29va2llcyB0aGF0IHdlcmUgc3Rv
cmVkIGluIHNvbWUgZXh0ZXJuYWwKIGZvcm0gdXNpbmcgdGhlIHBhcnNlKCkgY2xhc3MgbWV0aG9k
OgogCi0gICAgICAgJENPT0tJRVMgPSBgY2F0IC91c3IvdG1wL0Nvb2tpZV9zdGFzaGA7CisgICAg
ICAgJENPT0tJRVMgPSBgY2F0IC92YXIvcnVuL3d3dy9Db29raWVfc3Rhc2hgOwogICAgICAgICVj
b29raWVzID0gcGFyc2UgQ0dJOjpDb29raWUoJENPT0tJRVMpOwogCiBJZiB5b3UgYXJlIGluIGEg
bW9kX3BlcmwgZW52aXJvbm1lbnQsIHlvdSBjYW4gc2F2ZSBzb21lIG92ZXJoZWFkIGJ5CmRpZmYg
LXVyIHBlcmwtNS44LjMub3JpZy9saWIvQ0dJLnBtIHBlcmwtNS44LjMvbGliL0NHSS5wbQotLS0g
cGVybC01LjguMy5vcmlnL2xpYi9DR0kucG0JTW9uIEphbiAxOSAxODo0NjoyNSAyMDA0CisrKyBw
ZXJsLTUuOC4zL2xpYi9DR0kucG0JU3VuIEphbiAyNSAxNjo0NToyNiAyMDA0CkBAIC0yLDYgKzIs
OSBAQAogcmVxdWlyZSA1LjAwNDsKIHVzZSBDYXJwICdjcm9hayc7CiAKKyMgWFhYOiBUaGUgdGVt
cG9yYXJ5IGZpbGUgaGFuZGxpbmcgaW1wbGVtZW50ZWQgaW4gaGVyZSBpcyBjcmFwLiAgSXQgc2hv
dWxkCisjIGJlIHJlLWRvbmUgbWFraW5nIHVzZSBvZiBGaWxlOjpUZW1wLgorCiAjIFNlZSB0aGUg
Ym90dG9tIG9mIHRoaXMgZmlsZSBmb3IgdGhlIFBPRCBkb2N1bWVudGF0aW9uLiAgU2VhcmNoIGZv
ciB0aGUKICMgc3RyaW5nICc9aGVhZCcuCiAKZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2xpYi9D
UEFOLnBtIHBlcmwtNS44LjMvbGliL0NQQU4ucG0KLS0tIHBlcmwtNS44LjMub3JpZy9saWIvQ1BB
Ti5wbQlUdWUgU2VwIDMwIDE3OjEwOjQ0IDIwMDMKKysrIHBlcmwtNS44LjMvbGliL0NQQU4ucG0J
U3VuIEphbiAyNSAxNjo0NjowMiAyMDA0CkBAIC0yMjczLDcgKzIyNzMsNyBAQAogIyBJZiBtb3Jl
IGFjY3VyYWN5IGlzIHdhbnRlZC9uZWVkZWQsIENocmlzIExlYWNoIHNlbnQgbWUgdGhpcyBwYXRj
aC4uLgogCiAgIyA+ICoqKiAvaW5zdGFsbC9wZXJsL2xpdmUvbGliL0NQQU4ucG0tCVdlZCBTZXAg
MjQgMTM6MDg6NDggMTk5NwotICMgPiAtLS0gL3RtcC9jcAlXZWQgU2VwIDI0IDEzOjI2OjQwIDE5
OTcKKyAjID4gLS0tIGNwCVdlZCBTZXAgMjQgMTM6MjY6NDAgMTk5NwogICMgPiAqKioqKioqKioq
KioqKioKICAjID4gKioqIDE1NjIsMTU2NyAqKioqCiAgIyA+IC0tLSAxNTYyLDE1ODAgLS0tLQpk
aWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvbGliL0V4dFV0aWxzL01ha2VNYWtlci5wbSBwZXJsLTUu
OC4zL2xpYi9FeHRVdGlscy9NYWtlTWFrZXIucG0KLS0tIHBlcmwtNS44LjMub3JpZy9saWIvRXh0
VXRpbHMvTWFrZU1ha2VyLnBtCUZyaSBPY3QgMzEgMjI6MDM6NDkgMjAwMworKysgcGVybC01Ljgu
My9saWIvRXh0VXRpbHMvTWFrZU1ha2VyLnBtCVN1biBKYW4gMjUgMTY6NDg6MDAgMjAwNApAQCAt
MTAxMyw3ICsxMDEzLDcgQEAKIFRoZSBNYWtlZmlsZSB0byBiZSBwcm9kdWNlZCBtYXkgYmUgYWx0
ZXJlZCBieSBhZGRpbmcgYXJndW1lbnRzIG9mIHRoZQogZm9ybSBDPEtFWT1WQUxVRT4uIEUuZy4K
IAotICBwZXJsIE1ha2VmaWxlLlBMIFBSRUZJWD0vdG1wL215cGVybDUKKyAgcGVybCBNYWtlZmls
ZS5QTCBQUkVGSVg9fi9teXBlcmw1CiAKIE90aGVyIGludGVyZXN0aW5nIHRhcmdldHMgaW4gdGhl
IGdlbmVyYXRlZCBNYWtlZmlsZSBhcmUKIApAQCAtMTM1NSwxMyArMTM1NSwxMyBAQAogCiBUaGlz
IGlzIHRoZSByb290IGRpcmVjdG9yeSBpbnRvIHdoaWNoIHRoZSBjb2RlIHdpbGwgYmUgaW5zdGFs
bGVkLiAgSXQKIEk8cHJlcGVuZHMgaXRzZWxmIHRvIHRoZSBub3JtYWwgcHJlZml4Pi4gIEZvciBl
eGFtcGxlLCBpZiB5b3VyIGNvZGUKLXdvdWxkIG5vcm1hbGx5IGdvIGludG8gL3Vzci9sb2NhbC9s
aWIvcGVybCB5b3UgY291bGQgc2V0IERFU1RESVI9L3RtcC8KLWFuZCBpbnN0YWxsYXRpb24gd291
bGQgZ28gaW50byAvdG1wL3Vzci9sb2NhbC9saWIvcGVybC4KK3dvdWxkIG5vcm1hbGx5IGdvIGlu
dG8gL3Vzci9sb2NhbC9saWIvcGVybCB5b3UgY291bGQgc2V0IERFU1RESVI9L290aGVyLworYW5k
IGluc3RhbGxhdGlvbiB3b3VsZCBnbyBpbnRvIC9vdGhlci91c3IvbG9jYWwvbGliL3BlcmwuCiAK
IFRoaXMgaXMgcHJpbWFyaWx5IG9mIHVzZSBmb3IgcGVvcGxlIHdobyByZXBhY2thZ2UgUGVybCBt
b2R1bGVzLgogCiBOT1RFOiBEdWUgdG8gdGhlIG5hdHVyZSBvZiBtYWtlLCBpdCBpcyBpbXBvcnRh
bnQgdGhhdCB5b3UgcHV0IHRoZSB0cmFpbGluZwotc2xhc2ggb24geW91ciBERVNURElSLiAgIi90
bXAvIiBub3QgIi90bXAiLgorc2xhc2ggb24geW91ciBERVNURElSLiAgIi9vdGhlci8iIG5vdCAi
L290aGVyIi4KIAogPWl0ZW0gRElSCiAKZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2xpYi9FeHRV
dGlscy9pbnN0bW9kc2ggcGVybC01LjguMy9saWIvRXh0VXRpbHMvaW5zdG1vZHNoCi0tLSBwZXJs
LTUuOC4zLm9yaWcvbGliL0V4dFV0aWxzL2luc3Rtb2RzaAlUdWUgU2VwIDMwIDE3OjEwOjQ3IDIw
MDMKKysrIHBlcmwtNS44LjMvbGliL0V4dFV0aWxzL2luc3Rtb2RzaAlNb24gSmFuIDE5IDIwOjE0
OjExIDIwMDQKQEAgLTIsNiArMiw3IEBACiAKIHVzZSBzdHJpY3Q7CiB1c2UgSU86OkZpbGU7Cit1
c2UgRmlsZTo6VGVtcDsKIHVzZSBFeHRVdGlsczo6UGFja2xpc3Q7CiB1c2UgRXh0VXRpbHM6Oklu
c3RhbGxlZDsKIApAQCAtNTgsMTYgKzU5LDEyIEBACiAgICAgICAkcmVwbHkgPX4gL150XHMqLyBh
bmQgZG8KICAgICAgICAgIHsKICAgICAgICAgIG15ICRmaWxlID0gKHNwbGl0KCcgJywgJHJlcGx5
KSlbMV07Ci0gICAgICAgICBteSAkdG1wID0gIi90bXAvaW5zdC4kJCI7Ci0gICAgICAgICBpZiAo
bXkgJGZoID0gSU86OkZpbGUtPm5ldygkdG1wLCAidyIpKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgJGZoLT5wcmludChqb2luKCJcbiIsICRJbnN0LT5maWxlcygkbW9kdWxlKSkpOwotICAg
ICAgICAgICAgJGZoLT5jbG9zZSgpOwotICAgICAgICAgICAgc3lzdGVtKCJ0YXIgY3ZmICRmaWxl
IC1JICR0bXAiKTsKLSAgICAgICAgICAgIHVubGluaygkdG1wKTsKLSAgICAgICAgICAgIGxhc3Qg
Q0FTRTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgIGVsc2UgeyBwcmludCgiQ2FuJ3Qgb3BlbiAk
ZmlsZTogJCFcbiIpOyB9CisgICAgICAgICBteSAoJGZoLCAkdG1wKSA9IEZpbGU6OlRlbXA6OnRl
bXBmaWxlKFVOTElOSyA9PiAxKTsKKyAgICAgICAgICRmaC0+cHJpbnQoam9pbigiXG4iLCAkSW5z
dC0+ZmlsZXMoJG1vZHVsZSkpKTsKKyAgICAgICAgICRmaC0+Y2xvc2UoKTsKKyAgICAgICAgICMg
VGhpcyB1c2VkIHRvIHVzZSAtSSB3aGljaCBpcyB3cm9uZyBmb3IgR05VIHRhci4KKyAgICAgICAg
IHN5c3RlbSgidGFyIGN2ZiAkZmlsZSAtVCAkdG1wIik7CisgICAgICAgICB1bmxpbmsoJHRtcCk7
CiAgICAgICAgICBsYXN0IENBU0U7CiAgICAgICAgICB9OwogICAgICAgJHJlcGx5IGVxICd2JyBh
bmQgZG8KZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2xpYi9NZW1vaXplL3QvdGllLnQgcGVybC01
LjguMy9saWIvTWVtb2l6ZS90L3RpZS50Ci0tLSBwZXJsLTUuOC4zLm9yaWcvbGliL01lbW9pemUv
dC90aWUudAlUdWUgU2VwIDMwIDE3OjEwOjU4IDIwMDMKKysrIHBlcmwtNS44LjMvbGliL01lbW9p
emUvdC90aWUudAlTdW4gSmFuIDI1IDE2OjU0OjMxIDIwMDQKQEAgLTI5LDE0ICsyOSw3IEBACiAg
ICRfWzBdKzE7CiB9CiAKLWlmIChldmFsIHtyZXF1aXJlIEZpbGU6OlNwZWM6OkZ1bmN0aW9uc30p
IHsKLSAgRmlsZTo6U3BlYzo6RnVuY3Rpb25zLT5pbXBvcnQoJ3RtcGRpcicsICdjYXRmaWxlJyk7
Ci0gICR0bXBkaXIgPSB0bXBkaXIoKTsKLX0gZWxzZSB7Ci0gICpjYXRmaWxlID0gc3ViIHsgam9p
biAnLycsIEBfIH07Ci0gICR0bXBkaXIgPSAkRU5We1RNUH0gfHwgJEVOVntUTVBESVJ9IHx8ICcv
dG1wJzsKLX0KLSRmaWxlID0gY2F0ZmlsZSgkdG1wZGlyLCAibWQkJCIpOworJGZpbGUgPSAibWQk
JCI7CiBAZmlsZXMgPSAoJGZpbGUsICIkZmlsZS5kYiIsICIkZmlsZS5kaXIiLCAiJGZpbGUucGFn
Iik7CiAxIHdoaWxlIHVubGluayBAZmlsZXM7CiAKZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2xp
Yi9NZW1vaXplL3QvdGllX2dkYm0udCBwZXJsLTUuOC4zL2xpYi9NZW1vaXplL3QvdGllX2dkYm0u
dAotLS0gcGVybC01LjguMy5vcmlnL2xpYi9NZW1vaXplL3QvdGllX2dkYm0udAlUdWUgU2VwIDMw
IDE3OjEwOjU4IDIwMDMKKysrIHBlcmwtNS44LjMvbGliL01lbW9pemUvdC90aWVfZ2RibS50CVN1
biBKYW4gMjUgMTY6NTM6MDcgMjAwNApAQCAtMjYsMTMgKzI2LDcgQEAKIAogcHJpbnQgIjEuLjRc
biI7CiAKLWlmIChldmFsIHtyZXF1aXJlIEZpbGU6OlNwZWM6OkZ1bmN0aW9uc30pIHsKLSBGaWxl
OjpTcGVjOjpGdW5jdGlvbnMtPmltcG9ydCgpOwotfSBlbHNlIHsKLSAgKmNhdGZpbGUgPSBzdWIg
eyBqb2luICcvJywgQF8gfTsKLX0KLSR0bXBkaXIgPSAkRU5We1RNUH0gfHwgJEVOVntUTVBESVJ9
IHx8ICAnL3RtcCc7ICAKLSRmaWxlID0gY2F0ZmlsZSgkdG1wZGlyLCAibWQkJCIpOworJGZpbGUg
PSAibWQkJCI7CiAxIHdoaWxlIHVubGluayAkZmlsZSwgIiRmaWxlLmRpciIsICIkZmlsZS5wYWci
OwogdHJ5b3V0KCdHREJNX0ZpbGUnLCAkZmlsZSwgMSk7ICAjIFRlc3QgMS4uNAogMSB3aGlsZSB1
bmxpbmsgJGZpbGUsICIkZmlsZS5kaXIiLCAiJGZpbGUucGFnIjsKZGlmZiAtdXIgcGVybC01Ljgu
My5vcmlnL2xpYi9NZW1vaXplL3QvdGllX25kYm0udCBwZXJsLTUuOC4zL2xpYi9NZW1vaXplL3Qv
dGllX25kYm0udAotLS0gcGVybC01LjguMy5vcmlnL2xpYi9NZW1vaXplL3QvdGllX25kYm0udAlU
dWUgU2VwIDMwIDE3OjEwOjU5IDIwMDMKKysrIHBlcmwtNS44LjMvbGliL01lbW9pemUvdC90aWVf
bmRibS50CVN1biBKYW4gMjUgMTY6NTM6NTYgMjAwNApAQCAtMjgsMTQgKzI4LDcgQEAKIAogcHJp
bnQgIjEuLjRcbiI7CiAKLQotaWYgKGV2YWwge3JlcXVpcmUgRmlsZTo6U3BlYzo6RnVuY3Rpb25z
fSkgewotIEZpbGU6OlNwZWM6OkZ1bmN0aW9ucy0+aW1wb3J0KCk7Ci19IGVsc2UgewotICAqY2F0
ZmlsZSA9IHN1YiB7IGpvaW4gJy8nLCBAXyB9OwotfQotJHRtcGRpciA9ICRFTlZ7VE1QfSB8fCAk
RU5We1RNUERJUn0gfHwgICcvdG1wJzsgIAotJGZpbGUgPSBjYXRmaWxlKCR0bXBkaXIsICJtZCQk
Iik7CiskZmlsZSA9ICJtZCQkIjsKIDEgd2hpbGUgdW5saW5rICRmaWxlLCAiJGZpbGUuZGlyIiwg
IiRmaWxlLnBhZyI7CiB0cnlvdXQoJ01lbW9pemU6Ok5EQk1fRmlsZScsICRmaWxlLCAxKTsgICMg
VGVzdCAxLi40CiAxIHdoaWxlIHVubGluayAkZmlsZSwgIiRmaWxlLmRpciIsICIkZmlsZS5wYWci
OwpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvbGliL01lbW9pemUvdC90aWVfc2RibS50IHBlcmwt
NS44LjMvbGliL01lbW9pemUvdC90aWVfc2RibS50Ci0tLSBwZXJsLTUuOC4zLm9yaWcvbGliL01l
bW9pemUvdC90aWVfc2RibS50CVR1ZSBTZXAgMzAgMTc6MTA6NTkgMjAwMworKysgcGVybC01Ljgu
My9saWIvTWVtb2l6ZS90L3RpZV9zZGJtLnQJU3VuIEphbiAyNSAxNjo1MjozMyAyMDA0CkBAIC0y
OCwxNCArMjgsNyBAQAogCiBwcmludCAiMS4uNFxuIjsKIAotaWYgKGV2YWwge3JlcXVpcmUgRmls
ZTo6U3BlYzo6RnVuY3Rpb25zfSkgewotIEZpbGU6OlNwZWM6OkZ1bmN0aW9ucy0+aW1wb3J0KCd0
bXBkaXInLCAnY2F0ZmlsZScpOwotICR0bXBkaXIgPSB0bXBkaXIoKTsKLX0gZWxzZSB7Ci0gKmNh
dGZpbGUgPSBzdWIgeyBqb2luICcvJywgQF8gfTsKLSAgJHRtcGRpciA9ICRFTlZ7VE1QfSB8fCAk
RU5We1RNUERJUn0gfHwgJy90bXAnOwotfQotJGZpbGUgPSBjYXRmaWxlKCR0bXBkaXIsICJtZCQk
Iik7CiskZmlsZSA9ICJtZCQkIjsKIDEgd2hpbGUgdW5saW5rICRmaWxlLCAiJGZpbGUuZGlyIiwg
IiRmaWxlLnBhZyI7CiB0cnlvdXQoJ01lbW9pemU6OlNEQk1fRmlsZScsICRmaWxlLCAxKTsgICMg
VGVzdCAxLi40CiAxIHdoaWxlIHVubGluayAkZmlsZSwgIiRmaWxlLmRpciIsICIkZmlsZS5wYWci
OwpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvbGliL01lbW9pemUvdC90aWVfc3RvcmFibGUudCBw
ZXJsLTUuOC4zL2xpYi9NZW1vaXplL3QvdGllX3N0b3JhYmxlLnQKLS0tIHBlcmwtNS44LjMub3Jp
Zy9saWIvTWVtb2l6ZS90L3RpZV9zdG9yYWJsZS50CVR1ZSBTZXAgMzAgMTc6MTA6NTkgMjAwMwor
KysgcGVybC01LjguMy9saWIvTWVtb2l6ZS90L3RpZV9zdG9yYWJsZS50CVN1biBKYW4gMjUgMTY6
NTM6MjUgMjAwNApAQCAtMzMsMTQgKzMzLDcgQEAKIAogcHJpbnQgIjEuLjRcbiI7CiAKLQotaWYg
KGV2YWwge3JlcXVpcmUgRmlsZTo6U3BlYzo6RnVuY3Rpb25zfSkgewotIEZpbGU6OlNwZWM6OkZ1
bmN0aW9ucy0+aW1wb3J0KCk7Ci19IGVsc2UgewotICAqY2F0ZmlsZSA9IHN1YiB7IGpvaW4gJy8n
LCBAXyB9OwotfQotJHRtcGRpciA9ICRFTlZ7VE1QfSB8fCAkRU5We1RNUERJUn0gfHwgICcvdG1w
JzsgIAotJGZpbGUgPSBjYXRmaWxlKCR0bXBkaXIsICJzdG9yYWJsZSQkIik7CiskZmlsZSA9ICJz
dG9yYWJsZSQkIjsKIDEgd2hpbGUgdW5saW5rICRmaWxlOwogdHJ5b3V0KCdNZW1vaXplOjpTdG9y
YWJsZScsICRmaWxlLCAxKTsgICMgVGVzdCAxLi40CiAxIHdoaWxlIHVubGluayAkZmlsZTsKZGlm
ZiAtdXIgcGVybC01LjguMy5vcmlnL2xpYi9TaGVsbC5wbSBwZXJsLTUuOC4zL2xpYi9TaGVsbC5w
bQotLS0gcGVybC01LjguMy5vcmlnL2xpYi9TaGVsbC5wbQlUdWUgU2VwIDMwIDE3OjExOjA1IDIw
MDMKKysrIHBlcmwtNS44LjMvbGliL1NoZWxsLnBtCU1vbiBKYW4gMTkgMjA6MTQ6MTEgMjAwNApA
QCAtMTQwLDcgKzE0MCw3IEBACiAgICAgc3ViIHBzOwogICAgIHByaW50IHBzIC13dzsKIAotICAg
IGNwKCIvZXRjL3Bhc3N3ZCIsICIvdG1wL3Bhc3N3ZCIpOworICAgIGNwKCIvZXRjL3Bhc3N3ZCIs
ICIvZXRjL3Bhc3N3ZC5vcmlnIik7CiAKIFRoYXQncyBtYXliZSB0b28gZ29uem8uICBJdCBhY3R1
YWxseSBleHBvcnRzIGFuIEFVVE9MT0FEIHRvIHRoZSBjdXJyZW50CiBwYWNrYWdlIChhbmQgdW5j
b3ZlcmVkIGEgYnVnIGluIEJldGEgMywgYnkgdGhlIHdheSkuICBNYXliZSB0aGUgdXN1YWwKZGlm
ZiAtdXIgcGVybC01LjguMy5vcmlnL2xpYi9kb3RzaC5wbCBwZXJsLTUuOC4zL2xpYi9kb3RzaC5w
bAotLS0gcGVybC01LjguMy5vcmlnL2xpYi9kb3RzaC5wbAlUdWUgU2VwIDMwIDE3OjExOjE2IDIw
MDMKKysrIHBlcmwtNS44LjMvbGliL2RvdHNoLnBsCU1vbiBKYW4gMTkgMjA6MTQ6MTEgMjAwNApA
QCAtMjcsOSArMjcsOSBAQAogIyAgICAgICAgIGRlcGVuZGVudCB1cG9uLiBUaGVzZSB2YXJpYWJs
ZXMgTVVTVCBiZSBkZWZpbmVkIHVzaW5nIHNoZWxsIHN5bnRheC4KICMKICMgICBFeGFtcGxlOgot
IyAgICAgICZkb3RzaCAoJy90bXAvZm9vJywgJ2FyZzEnKTsKLSMgICAgICAmZG90c2ggKCcvdG1w
L2ZvbycpOwotIyAgICAgICZkb3RzaCAoJy90bXAvZm9vIGFyZzEgLi4uIGFyZ04nKTsKKyMgICAg
ICAmZG90c2ggKCcvZm9vL2JhcicsICdhcmcxJyk7CisjICAgICAgJmRvdHNoICgnL2Zvby9iYXIn
KTsKKyMgICAgICAmZG90c2ggKCcvZm9vL2JhciBhcmcxIC4uLiBhcmdOJyk7CiAjCiBzdWIgZG90
c2ggewogICAgbG9jYWwoQHNoKSA9IEBfOwpAQCAtNTQsMTkgKzU0LDE3IEBACiAgICAgICB9CiAg
ICB9CiAgICBpZiAobGVuZ3RoKCR2YXJzKSA+IDApIHsKLSAgICAgIHN5c3RlbSAiJHNoZWxsIFwi
JHZhcnM7LiAkY29tbWFuZCAkYXJnczsgc2V0ID4gL3RtcC9fc2hfZW52JCRcIiI7CisgICAgICBv
cGVuIChfU0hfRU5WLCAiJHNoZWxsIFwiJHZhcnMgJiYgLiAkY29tbWFuZCAkYXJncyAmJiBzZXQg
XCIgfCIpIHx8IGRpZTsKICAgIH0gZWxzZSB7Ci0gICAgICBzeXN0ZW0gIiRzaGVsbCBcIi4gJGNv
bW1hbmQgJGFyZ3M7IHNldCA+IC90bXAvX3NoX2VudiQkXCIiOworICAgICAgb3BlbiAoX1NIX0VO
ViwgIiRzaGVsbCBcIi4gJGNvbW1hbmQgJGFyZ3MgJiYgc2V0IFwiIHwiKSB8fCBkaWU7CiAgICB9
CiAKLSAgIG9wZW4gKF9TSF9FTlYsICIvdG1wL19zaF9lbnYkJCIpIHx8IGRpZSAiQ291bGQgbm90
IG9wZW4gL3RtcC9fc2hfZW52JCQhXG4iOwogICAgd2hpbGUgKDxfU0hfRU5WPikgewogICAgICAg
IGNob3A7CiAgICAgICAgbS9eKFtePV0qKT0oLiopL3M7CiAgICAgICAgJEVOVnskMX0gPSAkMjsK
ICAgIH0KICAgIGNsb3NlIChfU0hfRU5WKTsKLSAgIHN5c3RlbSAicm0gLWYgL3RtcC9fc2hfZW52
JCQiOwogCiAgICBmb3JlYWNoICRrZXkgKGtleXMoJUVOVikpIHsKICAgICAgICAkdG1wIC49ICJc
JCRrZXkgPSBcJEVOVnsnJGtleSd9OyIgaWYgJGtleSA9fiAvXltBLVphLXpdXHcqJC87CmRpZmYg
LXVyIHBlcmwtNS44LjMub3JpZy9saWIvcGVybDVkYi5wbCBwZXJsLTUuOC4zL2xpYi9wZXJsNWRi
LnBsCi0tLSBwZXJsLTUuOC4zLm9yaWcvbGliL3Blcmw1ZGIucGwJTW9uIEphbiAxOSAxODo0Njoy
NSAyMDA0CisrKyBwZXJsLTUuOC4zL2xpYi9wZXJsNWRiLnBsCU1vbiBKYW4gMTkgMjA6MTQ6MTEg
MjAwNApAQCAtMjA2LDcgKzIwNiw3IEBACiA9aXRlbSAqIG5vVFRZIAogCiBpZiBzZXQsIGdvZXMg
aW4gTm9uU3RvcCBtb2RlLiAgT24gaW50ZXJydXB0LCBpZiBUVFkgaXMgbm90IHNldCwKLXVzZXMg
dGhlIHZhbHVlIG9mIG5vVFRZIG9yICIvdG1wL3BlcmxkYnR0eSQkIiB0byBmaW5kIFRUWSB1c2lu
ZwordXNlcyB0aGUgdmFsdWUgb2Ygbm9UVFkgb3IgIi92YXIvcnVuL3BlcmxkYnR0eSQkIiB0byBm
aW5kIFRUWSB1c2luZwogVGVybTo6UmVuZGV6dm91cy4gIEN1cnJlbnQgdmFyaWFudCBpcyB0byBo
YXZlIHRoZSBuYW1lIG9mIFRUWSBpbiB0aGlzCiBmaWxlLgogCkBAIC01Njg5LDggKzU2ODksOCBA
QAogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGV2YWwgInJlcXVpcmUgVGVybTo6UmVuZGV6
dm91czsiIG9yIGRpZTsKICAgICAgICAgICAgICMgU2VlIGlmIHdlIGhhdmUgYW55dGhpbmcgdG8g
cGFzcyB0byBUZXJtOjpSZW5kZXp2b3VzLgotICAgICAgICAgICAgIyBVc2UgL3RtcC9wZXJsZGJ0
dHkkJCBpZiBub3QuCi0gICAgICAgICAgICBteSAkcnYgPSAkRU5We1BFUkxEQl9OT1RUWX0gfHwg
Ii90bXAvcGVybGRidHR5JCQiOworICAgICAgICAgICAgIyBVc2UgL3Zhci9ydW4vcGVybGRidHR5
JCQgaWYgbm90LgorICAgICAgICAgICAgbXkgJHJ2ID0gJEVOVntQRVJMREJfTk9UVFl9IHx8ICIv
dmFyL3J1bi9wZXJsZGJ0dHkkJCI7CiAKICAgICAgICAgICAgICMgUmVuZGV6dm91cyBhbmQgZ2V0
IHRoZSBmaWxlaGFuZGxlcy4KICAgICAgICAgICAgIG15ICR0ZXJtX3J2ID0gbmV3IFRlcm06OlJl
bmRlenZvdXMgJHJ2OwpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvbXBlaXgvbm0gcGVybC01Ljgu
My9tcGVpeC9ubQotLS0gcGVybC01LjguMy5vcmlnL21wZWl4L25tCVR1ZSBTZXAgMzAgMTc6MTE6
MzkgMjAwMworKysgcGVybC01LjguMy9tcGVpeC9ubQlTdW4gSmFuIDI1IDE2OjU1OjI2IDIwMDQK
QEAgLTIyLDEyICsyMiwxMiBAQAogIyBJIHdhbnRlZCB0byBwaXBlIHRoaXMgaW50byBhd2ssIGJ1
dCBpdCBmZWxsIHZpY3RpbSB0byBhIGtub3duIHBpcGUvc3RyZWFtcwogIyBidWcgb24gbXkgbXVs
dGlwcm9jZXNzb3IgbWFjaGluZS4KIAotY2FsbGNpIHhlcSBsaW5rZWRpdC5wdWIuc3lzIFwiJExJ
U1RcIiA+L3RtcC9ubS4kJAorY2FsbGNpIHhlcSBsaW5rZWRpdC5wdWIuc3lzIFwiJExJU1RcIiA+
bm0uJCQKIAogL2Jpbi9hd2sgJ1wKICAgICAvIGRhdGEgIHVuaXYgLyB7IHByaW50ZiAiJS0yMHN8
JTEwc3wlLTZzfCUtN3N8JXNcbiIsJDEsJDUsImV4dGVybiIsImRhdGEiLCI/In0gXAotICAgIC8g
ZW50cnkgdW5pdiAvIHsgcHJpbnRmICIlLTIwc3wlMTBzfCUtNnN8JS03c3wlc1xuIiwkMSwkNywi
ZXh0ZXJuIiwiZW50cnkiLCI/In0nIC90bXAvbm0uJCQKKyAgICAvIGVudHJ5IHVuaXYgLyB7IHBy
aW50ZiAiJS0yMHN8JTEwc3wlLTZzfCUtN3N8JXNcbiIsJDEsJDcsImV4dGVybiIsImVudHJ5Iiwi
PyJ9JyBubS4kJAogCi1ybSAtZiAvdG1wL25tLiQkCitybSAtZiBubS4kJAogCiBleGl0IDAKZGlm
ZiAtdXIgcGVybC01LjguMy5vcmlnL21wZWl4L3JlbGluayBwZXJsLTUuOC4zL21wZWl4L3JlbGlu
awotLS0gcGVybC01LjguMy5vcmlnL21wZWl4L3JlbGluawlUdWUgU2VwIDMwIDE3OjExOjM5IDIw
MDMKKysrIHBlcmwtNS44LjMvbXBlaXgvcmVsaW5rCVN1biBKYW4gMjUgMTY6NTU6NDQgMjAwNApA
QCAtMTQsNyArMTQsNyBAQAogCiBlY2hvICJDcmVhdGluZyAkUkFORC5zbC4uLlxuIgogCi1URU1Q
PS90bXAvcGVybG1wZS4kJAorVEVNUD1wZXJsbXBlLiQkCiAKIHJtIC1mICRURU1QICRSQU5ELmEg
JFJBTkQuc2wKIApkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvcGVybHkuZml4ZXIgcGVybC01Ljgu
My9wZXJseS5maXhlcgotLS0gcGVybC01LjguMy5vcmlnL3Blcmx5LmZpeGVyCVR1ZSBTZXAgMzAg
MTc6MTE6NDIgMjAwMworKysgcGVybC01LjguMy9wZXJseS5maXhlcglNb24gSmFuIDE5IDIwOjE0
OjExIDIwMDQKQEAgLTIzLDcgKzIzLDcgQEAKIAogaW5wdXQ9JDEKIG91dHB1dD0kMgotdG1wPS90
bXAvZiQkCit0bXA9cGVybHkkJAogCiBpbnB1dGg9YGVjaG8gJGlucHV0fHNlZCAnczpcLmMkOi5o
OidgCiBpZiBncmVwICdeI2lmZGVmIFBFUkxfQ09SRScgJGlucHV0aDsgdGhlbgpkaWZmIC11ciBw
ZXJsLTUuOC4zLm9yaWcvcG9kL3Blcmw1NzFkZWx0YS5wb2QgcGVybC01LjguMy9wb2QvcGVybDU3
MWRlbHRhLnBvZAotLS0gcGVybC01LjguMy5vcmlnL3BvZC9wZXJsNTcxZGVsdGEucG9kCVR1ZSBT
ZXAgMzAgMTc6MTE6NDQgMjAwMworKysgcGVybC01LjguMy9wb2QvcGVybDU3MWRlbHRhLnBvZAlT
dW4gSmFuIDI1IDE2OjU3OjQwIDIwMDQKQEAgLTc3MSwxNyArNzcxLDE3IEBACiBJZiB5b3VyIGZp
bGUgc3lzdGVtIHN1cHBvcnRzIHN5bWJvbGljIGxpbmtzIHlvdSBjYW4gYnVpbGQgUGVybCBvdXRz
aWRlCiBvZiB0aGUgc291cmNlIGRpcmVjdG9yeSBieQogCi0JbWtkaXIgL3RtcC9wZXJsL2J1aWxk
L2RpcmVjdG9yeQotCWNkIC90bXAvcGVybC9idWlsZC9kaXJlY3RvcnkKKwlta2RpciBwZXJsL2J1
aWxkL2RpcmVjdG9yeQorCWNkIHBlcmwvYnVpbGQvZGlyZWN0b3J5CiAJc2ggL3BhdGgvdG8vcGVy
bC9zb3VyY2UvQ29uZmlndXJlIC1EbWtzeW1saW5rcyAuLi4KIAotVGhpcyB3aWxsIGNyZWF0ZSBp
biAvdG1wL3BlcmwvYnVpbGQvZGlyZWN0b3J5IGEgdHJlZSBvZiBzeW1ib2xpYyBsaW5rcworVGhp
cyB3aWxsIGNyZWF0ZSBpbiBwZXJsL2J1aWxkL2RpcmVjdG9yeSBhIHRyZWUgb2Ygc3ltYm9saWMg
bGlua3MKIHBvaW50aW5nIHRvIGZpbGVzIGluIC9wYXRoL3RvL3Blcmwvc291cmNlLiAgVGhlIG9y
aWdpbmFsIGZpbGVzIGFyZSBsZWZ0CiB1bmFmZmVjdGVkLiAgQWZ0ZXIgQ29uZmlndXJlIGhhcyBm
aW5pc2hlZCB5b3UgY2FuIGp1c3Qgc2F5CiAKIAltYWtlIGFsbCB0ZXN0CiAKLWFuZCBQZXJsIHdp
bGwgYmUgYnVpbHQgYW5kIHRlc3RlZCwgYWxsIGluIC90bXAvcGVybC9idWlsZC9kaXJlY3Rvcnku
CithbmQgUGVybCB3aWxsIGJlIGJ1aWx0IGFuZCB0ZXN0ZWQsIGFsbCBpbiBwZXJsL2J1aWxkL2Rp
cmVjdG9yeS4KIAogPWJhY2sKIApkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvcG9kL3Blcmw1OGRl
bHRhLnBvZCBwZXJsLTUuOC4zL3BvZC9wZXJsNThkZWx0YS5wb2QKLS0tIHBlcmwtNS44LjMub3Jp
Zy9wb2QvcGVybDU4ZGVsdGEucG9kCU1vbiBKYW4gMTkgMTg6NDY6MjUgMjAwNAorKysgcGVybC01
LjguMy9wb2QvcGVybDU4ZGVsdGEucG9kCVN1biBKYW4gMjUgMTY6NTg6MDMgMjAwNApAQCAtMTkw
NSwxNyArMTkwNSwxNyBAQAogSWYgeW91ciBmaWxlIHN5c3RlbSBzdXBwb3J0cyBzeW1ib2xpYyBs
aW5rcywgeW91IGNhbiBidWlsZCBQZXJsIG91dHNpZGUKIG9mIHRoZSBzb3VyY2UgZGlyZWN0b3J5
IGJ5CiAKLQlta2RpciAvdG1wL3BlcmwvYnVpbGQvZGlyZWN0b3J5Ci0JY2QgL3RtcC9wZXJsL2J1
aWxkL2RpcmVjdG9yeQorCW1rZGlyIHBlcmwvYnVpbGQvZGlyZWN0b3J5CisJY2QgcGVybC9idWls
ZC9kaXJlY3RvcnkKIAlzaCAvcGF0aC90by9wZXJsL3NvdXJjZS9Db25maWd1cmUgLURta3N5bWxp
bmtzIC4uLgogCi1UaGlzIHdpbGwgY3JlYXRlIGluIC90bXAvcGVybC9idWlsZC9kaXJlY3Rvcnkg
YSB0cmVlIG9mIHN5bWJvbGljIGxpbmtzCitUaGlzIHdpbGwgY3JlYXRlIGluIHBlcmwvYnVpbGQv
ZGlyZWN0b3J5IGEgdHJlZSBvZiBzeW1ib2xpYyBsaW5rcwogcG9pbnRpbmcgdG8gZmlsZXMgaW4g
L3BhdGgvdG8vcGVybC9zb3VyY2UuICBUaGUgb3JpZ2luYWwgZmlsZXMgYXJlIGxlZnQKIHVuYWZm
ZWN0ZWQuICBBZnRlciBDb25maWd1cmUgaGFzIGZpbmlzaGVkLCB5b3UgY2FuIGp1c3Qgc2F5CiAK
IAltYWtlIGFsbCB0ZXN0CiAKLWFuZCBQZXJsIHdpbGwgYmUgYnVpbHQgYW5kIHRlc3RlZCwgYWxs
IGluIC90bXAvcGVybC9idWlsZC9kaXJlY3RvcnkuCithbmQgUGVybCB3aWxsIGJlIGJ1aWx0IGFu
ZCB0ZXN0ZWQsIGFsbCBpbiBwZXJsL2J1aWxkL2RpcmVjdG9yeS4KIFs1NjFdCiAKID1pdGVtICoK
ZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL3BvZC9wZXJsZGJtZmlsdGVyLnBvZCBwZXJsLTUuOC4z
L3BvZC9wZXJsZGJtZmlsdGVyLnBvZAotLS0gcGVybC01LjguMy5vcmlnL3BvZC9wZXJsZGJtZmls
dGVyLnBvZAlUdWUgU2VwIDMwIDE3OjExOjQ1IDIwMDMKKysrIHBlcmwtNS44LjMvcG9kL3Blcmxk
Ym1maWx0ZXIucG9kCU1vbiBKYW4gMTkgMjA6MTQ6MTEgMjAwNApAQCAtOTEsNyArOTEsNyBAQAog
ICAgIHVzZSBGY250bCA7CiAKICAgICBteSAlaGFzaCA7Ci0gICAgbXkgJGZpbGVuYW1lID0gIi90
bXAvZmlsdCIgOworICAgIG15ICRmaWxlbmFtZSA9ICIvdmFyL3J1bi9maWx0IiA7CiAgICAgdW5s
aW5rICRmaWxlbmFtZSA7CiAKICAgICBteSAkZGIgPSB0aWUoJWhhc2gsICdTREJNX0ZpbGUnLCAk
ZmlsZW5hbWUsIE9fUkRXUnxPX0NSRUFULCAwNjQwKQpAQCAtMTM3LDcgKzEzNyw3IEBACiAgICAg
dXNlIHdhcm5pbmdzIDsKICAgICB1c2UgREJfRmlsZSA7CiAgICAgbXkgJWhhc2ggOwotICAgIG15
ICRmaWxlbmFtZSA9ICIvdG1wL2ZpbHQiIDsKKyAgICBteSAkZmlsZW5hbWUgPSAiL3Zhci9ydW4v
ZmlsdCIgOwogICAgIHVubGluayAkZmlsZW5hbWUgOwogCiAKZGlmZiAtdXIgcGVybC01LjguMy5v
cmlnL3BvZC9wZXJsZGVidWcucG9kIHBlcmwtNS44LjMvcG9kL3BlcmxkZWJ1Zy5wb2QKLS0tIHBl
cmwtNS44LjMub3JpZy9wb2QvcGVybGRlYnVnLnBvZAlUdWUgU2VwIDMwIDE3OjExOjQ1IDIwMDMK
KysrIHBlcmwtNS44LjMvcG9kL3BlcmxkZWJ1Zy5wb2QJTW9uIEphbiAxOSAyMDoxNDoxMSAyMDA0
CkBAIC03MDAsNyArNzAwLDcgQEAKIHdpdGggdHdvIG1ldGhvZHM6IEM8SU4+IGFuZCBDPE9VVD4u
ICBUaGVzZSBzaG91bGQgcmV0dXJuIGZpbGVoYW5kbGVzIHRvIHVzZQogZm9yIGRlYnVnZ2luZyBp
bnB1dCBhbmQgb3V0cHV0IGNvcnJlc3BvbmRpbmdseS4gIFRoZSBDPG5ldz4gbWV0aG9kIHNob3Vs
ZAogaW5zcGVjdCBhbiBhcmd1bWVudCBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiBDPCRFTlZ7UEVS
TERCX05PVFRZfT4gYXQKLXN0YXJ0dXAsIG9yIEM8Ii90bXAvcGVybGRidHR5JCQiPiBvdGhlcndp
c2UuICBUaGlzIGZpbGUgaXMgbm90IAorc3RhcnR1cCwgb3IgQzwiL3Zhci9ydW4vcGVybGRidHR5
JCQiPiBvdGhlcndpc2UuICBUaGlzIGZpbGUgaXMgbm90IAogaW5zcGVjdGVkIGZvciBwcm9wZXIg
b3duZXJzaGlwLCBzbyBzZWN1cml0eSBoYXphcmRzIGFyZSB0aGVvcmV0aWNhbGx5CiBwb3NzaWJs
ZS4KIApkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvcG9kL3BlcmxmYXE1LnBvZCBwZXJsLTUuOC4z
L3BvZC9wZXJsZmFxNS5wb2QKLS0tIHBlcmwtNS44LjMub3JpZy9wb2QvcGVybGZhcTUucG9kCU1v
biBKYW4gMTkgMTg6NDY6MjUgMjAwNAorKysgcGVybC01LjguMy9wb2QvcGVybGZhcTUucG9kCVN1
biBKYW4gMjUgMTY6NTk6MTUgMjAwNApAQCAtMTQxLDYgKzE0MSw3IEBACiAJICAgIG15ICRjb3Vu
dCA9IDA7CiAJICAgIHVudGlsIChkZWZpbmVkKGZpbGVubyhGSCkpIHx8ICRjb3VudCsrID4gMTAw
KSB7CiAJCSRiYXNlX25hbWUgPX4gcy8tKFxkKykkLyItIiAuICgxICsgJDEpL2U7CisJCSMgT19F
WENMIGlzIHJlcXVpcmVkIGZvciBzZWN1cml0eSByZWFzb25zLgogCQlzeXNvcGVuKEZILCAkYmFz
ZV9uYW1lLCBPX1dST05MWXxPX0VYQ0x8T19DUkVBVCk7CiAJICAgIH0KIAkgICAgaWYgKGRlZmlu
ZWQoZmlsZW5vKEZIKSkKQEAgLTQyNyw4ICs0MjgsOCBAQAogCiBUbyBvcGVuIGEgZmlsZSB3aXRo
b3V0IGJsb2NraW5nLCBjcmVhdGluZyBpZiBuZWNlc3Nhcnk6CiAKLSAgICBzeXNvcGVuKEZILCAi
L3RtcC9zb21lZmlsZSIsIE9fV1JPTkxZfE9fTkRFTEFZfE9fQ1JFQVQpCi0JICAgIG9yIGRpZSAi
Y2FuJ3Qgb3BlbiAvdG1wL3NvbWVmaWxlOiAkISI6CisgICAgc3lzb3BlbihGSCwgIi9mb28vc29t
ZWZpbGUiLCBPX1dST05MWXxPX05ERUxBWXxPX0NSRUFUKQorCSAgICBvciBkaWUgImNhbid0IG9w
ZW4gL2Zvby9zb21lZmlsZTogJCEiOgogCiBCZSB3YXJuZWQgdGhhdCBuZWl0aGVyIGNyZWF0aW9u
IG5vciBkZWxldGlvbiBvZiBmaWxlcyBpcyBndWFyYW50ZWVkIHRvCiBiZSBhbiBhdG9taWMgb3Bl
cmF0aW9uIG92ZXIgTkZTLiAgVGhhdCBpcywgdHdvIHByb2Nlc3NlcyBtaWdodCBib3RoCkBAIC05
MjQsNyArOTI1LDcgQEAKIElmIHlvdSBjaGVjayBMPHBlcmxmdW5jL29wZW4+LCB5b3UnbGwgc2Vl
IHRoYXQgc2V2ZXJhbCBvZiB0aGUgd2F5cwogdG8gY2FsbCBvcGVuKCkgc2hvdWxkIGRvIHRoZSB0
cmljay4gIEZvciBleGFtcGxlOgogCi0gICAgb3BlbihMT0csICI+Pi90bXAvbG9nZmlsZSIpOwor
ICAgIG9wZW4oTE9HLCAiPj4vZm9vL2xvZ2ZpbGUiKTsKICAgICBvcGVuKFNUREVSUiwgIj4mTE9H
Iik7CiAKIE9yIGV2ZW4gd2l0aCBhIGxpdGVyYWwgbnVtZXJpYyBkZXNjcmlwdG9yOgpkaWZmIC11
ciBwZXJsLTUuOC4zLm9yaWcvcG9kL3BlcmxmYXE4LnBvZCBwZXJsLTUuOC4zL3BvZC9wZXJsZmFx
OC5wb2QKLS0tIHBlcmwtNS44LjMub3JpZy9wb2QvcGVybGZhcTgucG9kCVR1ZSBTZXAgMzAgMTc6
MTE6NDYgMjAwMworKysgcGVybC01LjguMy9wb2QvcGVybGZhcTgucG9kCU1vbiBKYW4gMTkgMjA6
MTQ6MTEgMjAwNApAQCAtNzQ5LDEwICs3NDksMTAgQEAKICAgICB3aGlsZSAoPFBIPikgeyB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgcGx1cyBhIHJlYWQKIAogVG8gcmVhZCBib3Ro
IGEgY29tbWFuZCdzIFNURE9VVCBhbmQgaXRzIFNUREVSUiBzZXBhcmF0ZWx5LCBpdCdzIGVhc2ll
c3QKLWFuZCBzYWZlc3QgdG8gcmVkaXJlY3QgdGhlbSBzZXBhcmF0ZWx5IHRvIGZpbGVzLCBhbmQg
dGhlbiByZWFkIGZyb20gdGhvc2UKLWZpbGVzIHdoZW4gdGhlIHByb2dyYW0gaXMgZG9uZToKK3Rv
IHJlZGlyZWN0IHRoZW0gc2VwYXJhdGVseSB0byBmaWxlcywgYW5kIHRoZW4gcmVhZCBmcm9tIHRo
b3NlIGZpbGVzCit3aGVuIHRoZSBwcm9ncmFtIGlzIGRvbmU6CiAKLSAgICBzeXN0ZW0oInByb2dy
YW0gYXJncyAxPi90bXAvcHJvZ3JhbS5zdGRvdXQgMj4vdG1wL3Byb2dyYW0uc3RkZXJyIik7Cisg
ICAgc3lzdGVtKCJwcm9ncmFtIGFyZ3MgMT5wcm9ncmFtLnN0ZG91dCAyPnByb2dyYW0uc3RkZXJy
Iik7CiAKIE9yZGVyaW5nIGlzIGltcG9ydGFudCBpbiBhbGwgdGhlc2UgZXhhbXBsZXMuICBUaGF0
J3MgYmVjYXVzZSB0aGUgc2hlbGwKIHByb2Nlc3NlcyBmaWxlIGRlc2NyaXB0b3IgcmVkaXJlY3Rp
b25zIGluIHN0cmljdGx5IGxlZnQgdG8gcmlnaHQgb3JkZXIuCkBAIC0xMDYzLDggKzEwNjMsOCBA
QAogc3lzb3BlbigpOgogCiAgICAgdXNlIEZjbnRsOwotICAgIHN5c29wZW4oRkgsICIvdG1wL3Nv
bWVmaWxlIiwgT19XUk9OTFl8T19OREVMQVl8T19DUkVBVCwgMDY0NCkKLSAgICAgICAgb3IgZGll
ICJjYW4ndCBvcGVuIC90bXAvc29tZWZpbGU6ICQhIjoKKyAgICBzeXNvcGVuKEZILCAiL2Zvby9z
b21lZmlsZSIsIE9fV1JPTkxZfE9fTkRFTEFZfE9fQ1JFQVQsIDA2NDQpCisgICAgICAgIG9yIGRp
ZSAiY2FuJ3Qgb3BlbiAvZm9vL3NvbWVmaWxlOiAkISI6CiAKID1oZWFkMiBIb3cgZG8gSSBpbnN0
YWxsIGEgbW9kdWxlIGZyb20gQ1BBTj8KIApkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvcG9kL3Bl
cmxmdW5jLnBvZCBwZXJsLTUuOC4zL3BvZC9wZXJsZnVuYy5wb2QKLS0tIHBlcmwtNS44LjMub3Jp
Zy9wb2QvcGVybGZ1bmMucG9kCU1vbiBKYW4gMTkgMTg6NDY6MjUgMjAwNAorKysgcGVybC01Ljgu
My9wb2QvcGVybGZ1bmMucG9kCU1vbiBKYW4gMTkgMjA6MTQ6MTEgMjAwNApAQCAtMjkyOCw3ICsy
OTI4LDcgQEAKICAgICBvcGVuKEFSVElDTEUsICJjYWVzYXIgPCRhcnRpY2xlIHwiKQkJIyBkaXR0
bwogCW9yIGRpZSAiQ2FuJ3Qgc3RhcnQgY2Flc2FyOiAkISI7CiAKLSAgICBvcGVuKEVYVFJBQ1Qs
ICJ8c29ydCA+L3RtcC9UbXAkJCIpCQkjICQkIGlzIG91ciBwcm9jZXNzIGlkCisgICAgb3BlbihF
WFRSQUNULCAifHNvcnQgPlRtcCQkIikJCSMgJCQgaXMgb3VyIHByb2Nlc3MgaWQKIAlvciBkaWUg
IkNhbid0IHN0YXJ0IHNvcnQ6ICQhIjsKIAogICAgICMgaW4gbWVtb3J5IGZpbGVzCmRpZmYgLXVy
IHBlcmwtNS44LjMub3JpZy9wb2QvcGVybGlwYy5wb2QgcGVybC01LjguMy9wb2QvcGVybGlwYy5w
b2QKLS0tIHBlcmwtNS44LjMub3JpZy9wb2QvcGVybGlwYy5wb2QJVHVlIFNlcCAzMCAxNzoxMTo0
OCAyMDAzCisrKyBwZXJsLTUuOC4zL3BvZC9wZXJsaXBjLnBvZAlNb24gSmFuIDE5IDIwOjE0OjEx
IDIwMDQKQEAgLTEwMzAsNyArMTAzMCw3IEBACiAgICAgdXNlIHN0cmljdDsKICAgICBteSAoJHJl
bmRlenZvdXMsICRsaW5lKTsKIAotICAgICRyZW5kZXp2b3VzID0gc2hpZnQgfHwgJy90bXAvY2F0
c29jayc7CisgICAgJHJlbmRlenZvdXMgPSBzaGlmdCB8fCAnY2F0c29jayc7CiAgICAgc29ja2V0
KFNPQ0ssIFBGX1VOSVgsIFNPQ0tfU1RSRUFNLCAwKQl8fCBkaWUgInNvY2tldDogJCEiOwogICAg
IGNvbm5lY3QoU09DSywgc29ja2FkZHJfdW4oJHJlbmRlenZvdXMpKQl8fCBkaWUgImNvbm5lY3Q6
ICQhIjsKICAgICB3aGlsZSAoZGVmaW5lZCgkbGluZSA9IDxTT0NLPikpIHsKQEAgLTEwNTEsNyAr
MTA1MSw3IEBACiAgICAgc3ViIHNwYXduOyAgIyBmb3J3YXJkIGRlY2xhcmF0aW9uCiAgICAgc3Vi
IGxvZ21zZyB7IHByaW50ICIkMCAkJDogQF8gYXQgIiwgc2NhbGFyIGxvY2FsdGltZSwgIlxuIiB9
CiAKLSAgICBteSAkTkFNRSA9ICcvdG1wL2NhdHNvY2snOworICAgIG15ICROQU1FID0gJ2NhdHNv
Y2snOwogICAgIG15ICR1YWRkciA9IHNvY2thZGRyX3VuKCROQU1FKTsKICAgICBteSAkcHJvdG8g
PSBnZXRwcm90b2J5bmFtZSgndGNwJyk7CiAKZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL3BvZC9w
ZXJsbGV4d2Fybi5wb2QgcGVybC01LjguMy9wb2QvcGVybGxleHdhcm4ucG9kCi0tLSBwZXJsLTUu
OC4zLm9yaWcvcG9kL3BlcmxsZXh3YXJuLnBvZAlUdWUgU2VwIDMwIDE3OjExOjQ4IDIwMDMKKysr
IHBlcmwtNS44LjMvcG9kL3BlcmxsZXh3YXJuLnBvZAlTdW4gSmFuIDI1IDE3OjAyOjE0IDIwMDQK
QEAgLTM4MSw5ICszODEsOSBAQAogICAgIHN1YiBvcGVuIHsKICAgICAgICAgbXkgJHBhdGggPSBz
aGlmdCA7CiAgICAgICAgIGlmICgkcGF0aCAhfiBtI14vIykgewotICAgICAgICAgICAgd2Fybmlu
Z3M6Ondhcm4oImNoYW5naW5nIHJlbGF0aXZlIHBhdGggdG8gL3RtcC8iKQorICAgICAgICAgICAg
d2FybmluZ3M6Ondhcm4oImNoYW5naW5nIHJlbGF0aXZlIHBhdGggdG8gL3Zhci9hYmMiKQogICAg
ICAgICAgICAgICAgIGlmIHdhcm5pbmdzOjplbmFibGVkKCk7Ci0gICAgICAgICAgICAkcGF0aCA9
ICIvdG1wLyRwYXRoIiA7IAorICAgICAgICAgICAgJHBhdGggPSAiL3Zhci9hYmMvJHBhdGgiOwog
ICAgICAgICB9CiAgICAgfQogCmRpZmYgLXVyIHBlcmwtNS44LjMub3JpZy9wb2QvcGVybG9iai5w
b2QgcGVybC01LjguMy9wb2QvcGVybG9iai5wb2QKLS0tIHBlcmwtNS44LjMub3JpZy9wb2QvcGVy
bG9iai5wb2QJTW9uIEphbiAxOSAxODo0NjoyNSAyMDA0CisrKyBwZXJsLTUuOC4zL3BvZC9wZXJs
b2JqLnBvZAlNb24gSmFuIDE5IDIwOjE0OjExIDIwMDQKQEAgLTUzNSwxNSArNTM1LDE1IEBACiAg
ICAgd2FybiAidGltZSB0byBkaWUuLi4iOwogICAgIGV4aXQ7CiAKLVdoZW4gcnVuIGFzIEY8L3Rt
cC90ZXN0PiwgdGhlIGZvbGxvd2luZyBvdXRwdXQgaXMgcHJvZHVjZWQ6CitXaGVuIHJ1biBhcyBG
PC9mb28vdGVzdD4sIHRoZSBmb2xsb3dpbmcgb3V0cHV0IGlzIHByb2R1Y2VkOgogCi0gICAgc3Rh
cnRpbmcgcHJvZ3JhbSBhdCAvdG1wL3Rlc3QgbGluZSAxOC4KLSAgICBDUkVBVElORyBTQ0FMQVIo
MHg4ZTViOCkgYXQgL3RtcC90ZXN0IGxpbmUgNy4KLSAgICBDUkVBVElORyBTQ0FMQVIoMHg4ZTU3
YykgYXQgL3RtcC90ZXN0IGxpbmUgNy4KLSAgICBsZWF2aW5nIGJsb2NrIGF0IC90bXAvdGVzdCBs
aW5lIDIzLgotICAgIERFU1RST1lJTkcgU3VidGxlPVNDQUxBUigweDhlNWI4KSBhdCAvdG1wL3Rl
c3QgbGluZSAxMy4KLSAgICBqdXN0IGV4aXRlZCBibG9jayBhdCAvdG1wL3Rlc3QgbGluZSAyNi4K
LSAgICB0aW1lIHRvIGRpZS4uLiBhdCAvdG1wL3Rlc3QgbGluZSAyNy4KKyAgICBzdGFydGluZyBw
cm9ncmFtIGF0IC9mb28vdGVzdCBsaW5lIDE4LgorICAgIENSRUFUSU5HIFNDQUxBUigweDhlNWI4
KSBhdCAvZm9vL3Rlc3QgbGluZSA3LgorICAgIENSRUFUSU5HIFNDQUxBUigweDhlNTdjKSBhdCAv
Zm9vL3Rlc3QgbGluZSA3LgorICAgIGxlYXZpbmcgYmxvY2sgYXQgL2Zvby90ZXN0IGxpbmUgMjMu
CisgICAgREVTVFJPWUlORyBTdWJ0bGU9U0NBTEFSKDB4OGU1YjgpIGF0IC9mb28vdGVzdCBsaW5l
IDEzLgorICAgIGp1c3QgZXhpdGVkIGJsb2NrIGF0IC9mb28vdGVzdCBsaW5lIDI2LgorICAgIHRp
bWUgdG8gZGllLi4uIGF0IC9mb28vdGVzdCBsaW5lIDI3LgogICAgIERFU1RST1lJTkcgU3VidGxl
PVNDQUxBUigweDhlNTdjKSBkdXJpbmcgZ2xvYmFsIGRlc3RydWN0aW9uLgogCiBOb3RpY2UgdGhh
dCAiZ2xvYmFsIGRlc3RydWN0aW9uIiBiaXQgdGhlcmU/ICBUaGF0J3MgdGhlIHRocmVhZApkaWZm
IC11ciBwZXJsLTUuOC4zLm9yaWcvcG9kL3BlcmxvcC5wb2QgcGVybC01LjguMy9wb2QvcGVybG9w
LnBvZAotLS0gcGVybC01LjguMy5vcmlnL3BvZC9wZXJsb3AucG9kCU1vbiBKYW4gMTkgMTg6NDY6
MjUgMjAwNAorKysgcGVybC01LjguMy9wb2QvcGVybG9wLnBvZAlNb24gSmFuIDE5IDIwOjE0OjEx
IDIwMDQKQEAgLTExNjAsMTAgKzExNjAsMTAgQEAKICAgICAkb3V0cHV0ID0gYGNtZCAzPiYxIDE+
JjIgMj4mMyAzPiYtYDsKIAogVG8gcmVhZCBib3RoIGEgY29tbWFuZCdzIFNURE9VVCBhbmQgaXRz
IFNUREVSUiBzZXBhcmF0ZWx5LCBpdCdzIGVhc2llc3QKLWFuZCBzYWZlc3QgdG8gcmVkaXJlY3Qg
dGhlbSBzZXBhcmF0ZWx5IHRvIGZpbGVzLCBhbmQgdGhlbiByZWFkIGZyb20gdGhvc2UKLWZpbGVz
IHdoZW4gdGhlIHByb2dyYW0gaXMgZG9uZToKK3RvIHJlZGlyZWN0IHRoZW0gc2VwYXJhdGVseSB0
byBmaWxlcywgYW5kIHRoZW4gcmVhZCBmcm9tIHRob3NlIGZpbGVzCit3aGVuIHRoZSBwcm9ncmFt
IGlzIGRvbmU6CiAKLSAgICBzeXN0ZW0oInByb2dyYW0gYXJncyAxPi90bXAvcHJvZ3JhbS5zdGRv
dXQgMj4vdG1wL3Byb2dyYW0uc3RkZXJyIik7CisgICAgc3lzdGVtKCJwcm9ncmFtIGFyZ3MgMT5w
cm9ncmFtLnN0ZG91dCAyPnByb2dyYW0uc3RkZXJyIik7CiAKIFVzaW5nIHNpbmdsZS1xdW90ZSBh
cyBhIGRlbGltaXRlciBwcm90ZWN0cyB0aGUgY29tbWFuZCBmcm9tIFBlcmwncwogZG91YmxlLXF1
b3RlIGludGVycG9sYXRpb24sIHBhc3NpbmcgaXQgb24gdG8gdGhlIHNoZWxsIGluc3RlYWQ6CmRp
ZmYgLXVyIHBlcmwtNS44LjMub3JpZy9wb2QvcGVybG9wZW50dXQucG9kIHBlcmwtNS44LjMvcG9k
L3BlcmxvcGVudHV0LnBvZAotLS0gcGVybC01LjguMy5vcmlnL3BvZC9wZXJsb3BlbnR1dC5wb2QJ
VHVlIFNlcCAzMCAxNzoxMTo0OSAyMDAzCisrKyBwZXJsLTUuOC4zL3BvZC9wZXJsb3BlbnR1dC5w
b2QJTW9uIEphbiAxOSAyMDoxNDoxMSAyMDA0CkBAIC0xOTIsMTEgKzE5MiwxMSBAQAogICAgIG9w
ZW4oV1RNUCwgIis8IC91c3IvYWRtL3d0bXAiKSAKICAgICAgICAgfHwgZGllICJjYW4ndCBvcGVu
IC91c3IvYWRtL3d0bXA6ICQhIjsKIAotICAgIG9wZW4oU0NSRUVOLCAiKz4gL3RtcC9sa3NjcmVl
biIpCi0gICAgICAgIHx8IGRpZSAiY2FuJ3Qgb3BlbiAvdG1wL2xrc2NyZWVuOiAkISI7CisgICAg
b3BlbihTQ1JFRU4sICIrPiBsa3NjcmVlbiIpCisgICAgICAgIHx8IGRpZSAiY2FuJ3Qgb3BlbiBs
a3NjcmVlbjogJCEiOwogCi0gICAgb3BlbihMT0dGSUxFLCAiKz4+IC90bXAvYXBwbG9nIgotICAg
ICAgICB8fCBkaWUgImNhbid0IG9wZW4gL3RtcC9hcHBsb2c6ICQhIjsKKyAgICBvcGVuKExPR0ZJ
TEUsICIrPj4gL3Zhci9sb2cvYXBwbG9nIgorICAgICAgICB8fCBkaWUgImNhbid0IG9wZW4gL3Zh
ci9sb2cvYXBwbG9nOiAkISI7CiAKIFRoZSBmaXJzdCBvbmUgd29uJ3QgY3JlYXRlIGEgbmV3IGZp
bGUsIGFuZCB0aGUgc2Vjb25kIG9uZSB3aWxsIGFsd2F5cwogY2xvYmJlciBhbiBvbGQgb25lLiAg
VGhlIHRoaXJkIG9uZSB3aWxsIGNyZWF0ZSBhIG5ldyBmaWxlIGlmIG5lY2Vzc2FyeQpkaWZmIC11
ciBwZXJsLTUuOC4zLm9yaWcvdXRpbHMvYzJwaC5QTCBwZXJsLTUuOC4zL3V0aWxzL2MycGguUEwK
LS0tIHBlcmwtNS44LjMub3JpZy91dGlscy9jMnBoLlBMCVR1ZSBTZXAgMzAgMTc6MTI6MTAgMjAw
MworKysgcGVybC01LjguMy91dGlscy9jMnBoLlBMCU1vbiBKYW4gMTkgMjA6MTg6MTEgMjAwNApA
QCAtMjgwLDYgKzI4MCw3IEBACiAKICRSQ1NJRCA9ICckSWQ6IGMycGgsdiAxLjcgOTUvMTAvMjgg
MTA6NDE6NDcgdGNocmlzdCBFeHAgTG9ja2VyOiB0Y2hyaXN0ICQnOwogCit1c2UgRmlsZTo6VGVt
cDsKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIwogCkBAIC00ODAsNiArNDgxLDEzIEBACiAgICAgcHJpbnRmICIl
LTE2cyUtMTVzICAlc1xuIiwgJHZhciwgZXZhbCAiXCQkdmFyIiwgJG1zZzsKIH0KIAorc3ViIHNh
ZmVkaXIgeworICAgICRTQUZFRElSID0gRmlsZTo6VGVtcDo6dGVtcGRpcigiYzJwaC5YWFhYWFgi
LCBUTVBESVIgPT4gMSwgQ0xFQU5VUCA9PiAxKQorICAgICAgdW5sZXNzIChkZWZpbmVkKCRTQUZF
RElSKSk7Cit9CisKK3VuZGVmICRTQUZFRElSOworCiAkcmVjdXJzZSA9IDE7CiAKIGlmIChAQVJH
VikgewpAQCAtNDk1LDE1ICs1MDMsMTUgQEAKICAgICB9CiAgICAgZWxzaWYgKEBBUkdWID09IDEg
JiYgJEFSR1ZbMF0gPX4gL1wuYyQvKSB7CiAJbG9jYWwoJGRpciwgJGZpbGUpID0gJEFSR1ZbMF0g
PX4gbSMoLiovKT8oLiopJCM7Ci0JJGNoZGlyID0gImNkICRkaXI7ICIgaWYgJGRpcjsKKwkkY2hk
aXIgPSAiY2QgJGRpciAmJiAiIGlmICRkaXI7CiAJJnN5c3RlbSgiJGNoZGlyJENDICRDRkxBR1Mg
JERFRklORVMgJGZpbGUiKSAmJiBleGl0IDE7CiAJJEFSR1ZbMF0gPX4gcy9cLmMkLy5zLzsKICAg
ICB9CiAgICAgZWxzZSB7Ci0JJFRNUERJUiA9IHRlbXBkaXIoQ0xFQU5VUCA9PiAxKTsKLQkkVE1Q
ID0gIiRUTVBESVIvYzJwaC4kJC5jIjsKKwkmc2FmZWRpcjsKKwkkVE1QID0gIiRTQUZFRElSL2My
cGguJCQuYyI7CiAJJnN5c3RlbSgiY2F0IEBBUkdWID4gJFRNUCIpICYmIGV4aXQgMTsKLQkmc3lz
dGVtKCJjZCAkVE1QRElSOyAkQ0MgJENGTEFHUyAkREVGSU5FUyAkVE1QIikgJiYgZXhpdCAxOwor
CSZzeXN0ZW0oImNkICRTQUZFRElSICYmICRDQyAkQ0ZMQUdTICRERUZJTkVTICRUTVAiKSAmJiBl
eGl0IDE7CiAJdW5saW5rICRUTVA7CiAJJFRNUCA9fiBzL1wuYyQvLnMvOwogCUBBUkdWID0gKCRU
TVApOwpAQCAtMTI3NCw4ICsxMjgyLDggQEAKIH0KIAogc3ViIGNvbXB1dGVfaW50cmluc2ljcyB7
Ci0gICAgJFRNUERJUiB8fD0gdGVtcGRpcihDTEVBTlVQID0+IDEpOwotICAgIGxvY2FsKCRUTVAp
ID0gIiRUTVBESVIvYzJwaC1pLiQkLmMiOworICAgICZzYWZlZGlyOworICAgIGxvY2FsKCRUTVAp
ID0gIiRTQUZFRElSL2MycGgtaS4kJC5jIjsKICAgICBvcGVuIChUTVAsICI+JFRNUCIpIHx8IGRp
ZSAiY2FuJ3Qgb3BlbiAkVE1QOiAkISI7CiAgICAgc2VsZWN0KFRNUCk7CiAKQEAgLTEzMDMsNyAr
MTMxMSw3IEBACiAgICAgY2xvc2UgVE1QOwogCiAgICAgc2VsZWN0KFNURE9VVCk7Ci0gICAgb3Bl
bihQSVBFLCAiY2QgJFRNUERJUiAmJiAkQ0MgJFRNUCAmJiAkVE1QRElSL2Eub3V0fCIpOworICAg
IG9wZW4oUElQRSwgImNkICRTQUZFRElSICYmICRDQyAkVE1QICYmICRTQUZFRElSL2Eub3V0fCIp
OwogICAgIHdoaWxlICg8UElQRT4pIHsKIAljaG9wOwogCXNwbGl0KCcgJywkXywyKTs7CkBAIC0x
MzEyLDcgKzEzMjAsNyBAQAogCSRpbnRyaW5zaWNzeyRfWzFdfSA9ICR0ZW1wbGF0ZXskX1swXX07
CiAgICAgfQogICAgIGNsb3NlKFBJUEUpIHx8IGRpZSAiY291bGRuJ3QgcmVhZCBpbnRyaW5zaWNz
ISI7Ci0gICAgdW5saW5rKCRUTVAsICckVE1QRElSL2Eub3V0Jyk7CisgICAgdW5saW5rKCRUTVAs
ICckU0FGRURJUi9hLm91dCcpOwogICAgIHByaW50IFNUREVSUiAiZG9uZVxuIiBpZiAkdHJhY2U7
CiB9CiAKZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL3V0aWxzL3BlcmxidWcuUEwgcGVybC01Ljgu
My91dGlscy9wZXJsYnVnLlBMCi0tLSBwZXJsLTUuOC4zLm9yaWcvdXRpbHMvcGVybGJ1Zy5QTAlU
dWUgU2VwIDMwIDE3OjEyOjEwIDIwMDMKKysrIHBlcmwtNS44LjMvdXRpbHMvcGVybGJ1Zy5QTAlN
b24gSmFuIDE5IDIwOjE0OjExIDIwMDQKQEAgLTc4LDcgKzc4LDcgQEAKIHByaW50IE9VVCA8PCch
Tk8hU1VCUyEnOwogCiB1c2UgQ29uZmlnOwotdXNlIEZpbGU6OlNwZWM7CQkjIGtlZXAgcGVybGJ1
ZyBQZXJsIDUuMDA1IGNvbXBhdGlibGUKK3VzZSBGaWxlOjpUZW1wOwogdXNlIEdldG9wdDo6U3Rk
OwogdXNlIHN0cmljdDsKIApAQCAtOTU4LDEwICs5NTgsOSBAQAogfQogCiBzdWIgZmlsZW5hbWUg
ewotICAgIG15ICRkaXIgPSBGaWxlOjpTcGVjLT50bXBkaXIoKTsKLSAgICAkZmlsZW5hbWUgPSAi
YnVncmVwMCQkIjsKLSAgICAkZmlsZW5hbWUrKyB3aGlsZSAtZSBGaWxlOjpTcGVjLT5jYXRmaWxl
KCRkaXIsICRmaWxlbmFtZSk7Ci0gICAgJGZpbGVuYW1lID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgk
ZGlyLCAkZmlsZW5hbWUpOworICAgIG15ICgkZmgsICRmaWxlbmFtZSkgPSBGaWxlOjpUZW1wOjp0
ZW1wZmlsZShVTkxJTksgPT4gMSk7CisgICAgY2xvc2UoJGZoKTsKKyAgICByZXR1cm4gJGZpbGVu
YW1lOwogfQogCiBzdWIgcGFyYXByaW50IHsK
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>42265</attachid>
            <date>2004-10-20 13:31 0000</date>
            <desc>Edited version</desc>
            <filename>patch-reviewed</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2V4dC9EQl9GaWxlL3QvZGItcmVjbm8udCBwZXJsLTUu
OC4zL2V4dC9EQl9GaWxlL3QvZGItcmVjbm8udAotLS0gcGVybC01LjguMy5vcmlnL2V4dC9EQl9G
aWxlL3QvZGItcmVjbm8udAlNb24gSmFuIDE5IDE4OjQ2OjI1IDIwMDQKKysrIHBlcmwtNS44LjMv
ZXh0L0RCX0ZpbGUvdC9kYi1yZWNuby50CVN1biBKYW4gMjUgMTg6NTM6NTEgMjAwNApAQCAtMTE5
OCw3ICsxMTk4LDcgQEAKIAogbXkgJHRlc3RudW0gPSAxODE7CiBteSAkZmFpbGVkID0gMDsKLXJl
cXVpcmUgUE9TSVg7IG15ICR0bXAgPSBQT1NJWDo6dG1wbmFtKCk7CitteSAkdG1wID0gImRiciQk
IjsKIGZvcmVhY2ggbXkgJHRlc3QgKEB0ZXN0cykgewogICAgIG15ICRlcnIgPSB0ZXN0X3NwbGlj
ZShAJHRlc3QpOwogICAgIGlmIChkZWZpbmVkICRlcnIpIHsKCgpkaWZmIC11ciBwZXJsLTUuOC4z
Lm9yaWcvZXh0L0RldmVsL1BQUG9ydC9QUFBvcnQucG0gcGVybC01LjguMy9leHQvRGV2ZWwvUFBQ
b3J0L1BQUG9ydC5wbQotLS0gcGVybC01LjguMy5vcmlnL2V4dC9EZXZlbC9QUFBvcnQvUFBQb3J0
LnBtCU1vbiBKYW4gMTkgMTg6NDY6MjUgMjAwNAorKysgcGVybC01LjguMy9leHQvRGV2ZWwvUFBQ
b3J0L1BQUG9ydC5wbQlTdW4gSmFuIDI1IDE2OjE2OjUzIDIwMDQKQEAgLTM0OSwxMyArMzQ5LDEz
IEBACiAJfQogCQogCWlmICgkY2hhbmdlcykgewotCQlvcGVuKE9VVCwiPi90bXAvcHBwb3J0Lmgu
JCQiKTsKKwkJb3BlbihPVVQsInBwcG9ydC5oLiQkIik7CiAJCXByaW50IE9VVCAkYzsKIAkJY2xv
c2UoT1VUKTsKLQkJb3BlbihESUZGLCAiZGlmZiAtdSAkZmlsZW5hbWUgL3RtcC9wcHBvcnQuaC4k
JHwiKTsKLQkJd2hpbGUgKDxESUZGPikgeyBzIS90bXAvcHBwb3J0XC5oXC4kJCEkZmlsZW5hbWUu
cGF0Y2hlZCE7IHByaW50IFNURE9VVDsgfQorCQlvcGVuKERJRkYsICJkaWZmIC11ICRmaWxlbmFt
ZSBwcHBvcnQuaC4kJHwiKTsKKwkJd2hpbGUgKDxESUZGPikgeyBzIXBwcG9ydFwuaFwuJCQhJGZp
bGVuYW1lLnBhdGNoZWQhOyBwcmludCBTVERPVVQ7IH0KIAkJY2xvc2UoRElGRik7Ci0JCXVubGlu
aygiL3RtcC9wcHBvcnQuaC4kJCIpOworCQl1bmxpbmsoInBwcG9ydC5oLiQkIik7CiAJfSBlbHNl
IHsKIAkJcHJpbnQgIkxvb2tzIE9LXG4iOwogCX0KCmRpZmYgLXVyIHBlcmwtNS44LjMub3JpZy9l
eHQvSU8vdC9pb191bml4LnQgcGVybC01LjguMy9leHQvSU8vdC9pb191bml4LnQKLS0tIHBlcmwt
NS44LjMub3JpZy9leHQvSU8vdC9pb191bml4LnQJVHVlIFNlcCAzMCAxNzoxMDoxNyAyMDAzCisr
KyBwZXJsLTUuOC4zL2V4dC9JTy90L2lvX3VuaXgudAlTdW4gSmFuIDI1IDE2OjE3OjQzIDIwMDQK
QEAgLTI0LDcgKzI0LDcgQEAKIAllbHNpZiAoJF5PIGVxICdvczInKSB7CiAJICAgIHJlcXVpcmUg
SU86OlNvY2tldDsKIAotCSAgICBldmFsIHtJTzo6U29ja2V0OjpwYWNrX3NvY2thZGRyX3VuKCcv
dG1wL2ZvbycpIHx8IDF9CisJICAgIGV2YWwge0lPOjpTb2NrZXQ6OnBhY2tfc29ja2FkZHJfdW4o
Jy9mb28vYmFyJykgfHwgMX0KIAkgICAgICBvciAkQCAhfiAvbm90IGltcGxlbWVudGVkLyBvcgog
CQkkcmVhc29uID0gJ2NvbXBpbGVkIHdpdGhvdXQgVENQL0lQIHN0YWNrIHY0JzsKIAl9IGVsc2lm
ICgkXk8gPX4gbS9eKD86cW54fG50b3x2b3MpJC8gKSB7CkBAIC0zNyw3ICszNyw3IEBACiAgICAg
fQogfQogCi0kUEFUSCA9ICIvdG1wL3NvY2stJCQiOworJFBBVEggPSAic29jay0kJCI7CiAKICMg
VGVzdCBpZiB3ZSBjYW4gY3JlYXRlIHRoZSBmaWxlIHdpdGhpbiB0aGUgdG1wIGRpcmVjdG9yeQog
aWYgKC1lICRQQVRIIG9yIG5vdCBvcGVuKFRFU1QsICI+JFBBVEgiKSBhbmQgJF5PIG5lICdvczIn
KSB7CgpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvZXh0L1RpbWUvSGlSZXMvTWFrZWZpbGUuUEwg
cGVybC01LjguMy9leHQvVGltZS9IaVJlcy9NYWtlZmlsZS5QTAotLS0gcGVybC01LjguMy5vcmln
L2V4dC9UaW1lL0hpUmVzL01ha2VmaWxlLlBMCVR1ZSBPY3QgMjggMjA6MzU6NTEgMjAwMworKysg
cGVybC01LjguMy9leHQvVGltZS9IaVJlcy9NYWtlZmlsZS5QTAlTdW4gSmFuIDI1IDE2OjI3OjAx
IDIwMDQKQEAgLTcxLDE5ICs3MSwxMSBAQAogIyB3aXRob3V0IGNoYW5naW5nIGl0LCBhbmQgdGhl
biBJJ2QgYWx3YXlzIGZvcmdldCB0byBjaGFuZ2UgaXQgYmVmb3JlIGEKICMgcmVsZWFzZS4gU29y
cnksIEVkd2FyZCA6KQogCi1zdWIgVE1QRElSIHsKLSAgICBteSAkVE1QRElSID0KLQkoZ3JlcChk
ZWZpbmVkICRfICYmIC1kICRfICYmIC13IF8sCi0JICAgICAgKChkZWZpbmVkICRFTlZ7J1RNUERJ
Uid9ID8gJEVOVnsnVE1QRElSJ30gOiB1bmRlZiksCi0JICAgICAgIHF3KC92YXIvdG1wIC91c3Iv
dG1wIC90bXAgYzovdGVtcCkpKSlbMF07Ci0gICAgJFRNUERJUiB8fCBkaWUgIkNhbm5vdCBmaW5k
IHdyaXRhYmxlIHRlbXBvcmFyeSBkaXJlY3RvcnkuXG4iOwotfQotCiBzdWIgdHJ5X2NvbXBpbGVf
YW5kX2xpbmsgewogICAgIG15ICgkYywgJWFyZ3MpID0gQF87CiAKICAgICBteSAoJG9rKSA9IDA7
Ci0gICAgbXkgKCR0bXApID0gKCgkXk8gZXEgJ1ZNUycpID8gInN5c1wkc2NyYXRjaDp0bXAkJCIg
OiBUTVBESVIoKSAuICcvJyAuICJ0bXAkJCIpOworICAgIG15ICgkdG1wKSA9ICJ0bXAkJCI7CiAg
ICAgbG9jYWwoKlRNUEMpOwogCiAgICAgbXkgJG9ial9leHQgPSAkQ29uZmlne29ial9leHR9IHx8
ICIubyI7CgpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvbGliL0V4dFV0aWxzL2luc3Rtb2RzaCBw
ZXJsLTUuOC4zL2xpYi9FeHRVdGlscy9pbnN0bW9kc2gKLS0tIHBlcmwtNS44LjMub3JpZy9saWIv
RXh0VXRpbHMvaW5zdG1vZHNoCVR1ZSBTZXAgMzAgMTc6MTA6NDcgMjAwMworKysgcGVybC01Ljgu
My9saWIvRXh0VXRpbHMvaW5zdG1vZHNoCU1vbiBKYW4gMTkgMjA6MTQ6MTEgMjAwNApAQCAtMiw2
ICsyLDcgQEAKIAogdXNlIHN0cmljdDsKIHVzZSBJTzo6RmlsZTsKK3VzZSBGaWxlOjpUZW1wOwog
dXNlIEV4dFV0aWxzOjpQYWNrbGlzdDsKIHVzZSBFeHRVdGlsczo6SW5zdGFsbGVkOwogCkBAIC01
OCwxNiArNTksMTIgQEAKICAgICAgICRyZXBseSA9fiAvXnRccyovIGFuZCBkbwogICAgICAgICAg
ewogICAgICAgICAgbXkgJGZpbGUgPSAoc3BsaXQoJyAnLCAkcmVwbHkpKVsxXTsKLSAgICAgICAg
IG15ICR0bXAgPSAiL3RtcC9pbnN0LiQkIjsKLSAgICAgICAgIGlmIChteSAkZmggPSBJTzo6Rmls
ZS0+bmV3KCR0bXAsICJ3IikpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAkZmgtPnByaW50
KGpvaW4oIlxuIiwgJEluc3QtPmZpbGVzKCRtb2R1bGUpKSk7Ci0gICAgICAgICAgICAkZmgtPmNs
b3NlKCk7Ci0gICAgICAgICAgICBzeXN0ZW0oInRhciBjdmYgJGZpbGUgLUkgJHRtcCIpOwotICAg
ICAgICAgICAgdW5saW5rKCR0bXApOwotICAgICAgICAgICAgbGFzdCBDQVNFOwotICAgICAgICAg
ICAgfQotICAgICAgICAgZWxzZSB7IHByaW50KCJDYW4ndCBvcGVuICRmaWxlOiAkIVxuIik7IH0K
KyAgICAgICAgIG15ICgkZmgsICR0bXApID0gRmlsZTo6VGVtcDo6dGVtcGZpbGUoVU5MSU5LID0+
IDEpOworICAgICAgICAgJGZoLT5wcmludChqb2luKCJcbiIsICRJbnN0LT5maWxlcygkbW9kdWxl
KSkpOworICAgICAgICAgJGZoLT5jbG9zZSgpOworICAgICAgICAgIyBUaGlzIHVzZWQgdG8gdXNl
IC1JIHdoaWNoIGlzIHdyb25nIGZvciBHTlUgdGFyLgorICAgICAgICAgc3lzdGVtKCJ0YXIgY3Zm
ICRmaWxlIC1UICR0bXAiKTsKKyAgICAgICAgIHVubGluaygkdG1wKTsKICAgICAgICAgIGxhc3Qg
Q0FTRTsKICAgICAgICAgIH07CiAgICAgICAkcmVwbHkgZXEgJ3YnIGFuZCBkbwpkaWZmIC11ciBw
ZXJsLTUuOC4zLm9yaWcvbGliL0V4dFV0aWxzL2luc3Rtb2RzaCBwZXJsLTUuOC4zL2xpYi9FeHRV
dGlscy9pbnN0bW9kc2gKLS0tIHBlcmwtNS44LjMub3JpZy9saWIvRXh0VXRpbHMvaW5zdG1vZHNo
CVR1ZSBTZXAgMzAgMTc6MTA6NDcgMjAwMworKysgcGVybC01LjguMy9saWIvRXh0VXRpbHMvaW5z
dG1vZHNoCU1vbiBKYW4gMTkgMjA6MTQ6MTEgMjAwNApAQCAtMiw2ICsyLDcgQEAKIAogdXNlIHN0
cmljdDsKIHVzZSBJTzo6RmlsZTsKK3VzZSBGaWxlOjpUZW1wOwogdXNlIEV4dFV0aWxzOjpQYWNr
bGlzdDsKIHVzZSBFeHRVdGlsczo6SW5zdGFsbGVkOwogCkBAIC01OCwxNiArNTksMTIgQEAKICAg
ICAgICRyZXBseSA9fiAvXnRccyovIGFuZCBkbwogICAgICAgICAgewogICAgICAgICAgbXkgJGZp
bGUgPSAoc3BsaXQoJyAnLCAkcmVwbHkpKVsxXTsKLSAgICAgICAgIG15ICR0bXAgPSAiL3RtcC9p
bnN0LiQkIjsKLSAgICAgICAgIGlmIChteSAkZmggPSBJTzo6RmlsZS0+bmV3KCR0bXAsICJ3Iikp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAkZmgtPnByaW50KGpvaW4oIlxuIiwgJEluc3Qt
PmZpbGVzKCRtb2R1bGUpKSk7Ci0gICAgICAgICAgICAkZmgtPmNsb3NlKCk7Ci0gICAgICAgICAg
ICBzeXN0ZW0oInRhciBjdmYgJGZpbGUgLUkgJHRtcCIpOwotICAgICAgICAgICAgdW5saW5rKCR0
bXApOwotICAgICAgICAgICAgbGFzdCBDQVNFOwotICAgICAgICAgICAgfQotICAgICAgICAgZWxz
ZSB7IHByaW50KCJDYW4ndCBvcGVuICRmaWxlOiAkIVxuIik7IH0KKyAgICAgICAgIG15ICgkZmgs
ICR0bXApID0gRmlsZTo6VGVtcDo6dGVtcGZpbGUoVU5MSU5LID0+IDEpOworICAgICAgICAgJGZo
LT5wcmludChqb2luKCJcbiIsICRJbnN0LT5maWxlcygkbW9kdWxlKSkpOworICAgICAgICAgJGZo
LT5jbG9zZSgpOworICAgICAgICAgIyBUaGlzIHVzZWQgdG8gdXNlIC1JIHdoaWNoIGlzIHdyb25n
IGZvciBHTlUgdGFyLgorICAgICAgICAgc3lzdGVtKCJ0YXIgY3ZmICRmaWxlIC1UICR0bXAiKTsK
KyAgICAgICAgIHVubGluaygkdG1wKTsKICAgICAgICAgIGxhc3QgQ0FTRTsKICAgICAgICAgIH07
CiAgICAgICAkcmVwbHkgZXEgJ3YnIGFuZCBkbwoKZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2xp
Yi9NZW1vaXplL3QvdGllLnQgcGVybC01LjguMy9saWIvTWVtb2l6ZS90L3RpZS50Ci0tLSBwZXJs
LTUuOC4zLm9yaWcvbGliL01lbW9pemUvdC90aWUudAlUdWUgU2VwIDMwIDE3OjEwOjU4IDIwMDMK
KysrIHBlcmwtNS44LjMvbGliL01lbW9pemUvdC90aWUudAlTdW4gSmFuIDI1IDE2OjU0OjMxIDIw
MDQKQEAgLTI5LDE0ICsyOSw3IEBACiAgICRfWzBdKzE7CiB9CiAKLWlmIChldmFsIHtyZXF1aXJl
IEZpbGU6OlNwZWM6OkZ1bmN0aW9uc30pIHsKLSAgRmlsZTo6U3BlYzo6RnVuY3Rpb25zLT5pbXBv
cnQoJ3RtcGRpcicsICdjYXRmaWxlJyk7Ci0gICR0bXBkaXIgPSB0bXBkaXIoKTsKLX0gZWxzZSB7
Ci0gICpjYXRmaWxlID0gc3ViIHsgam9pbiAnLycsIEBfIH07Ci0gICR0bXBkaXIgPSAkRU5We1RN
UH0gfHwgJEVOVntUTVBESVJ9IHx8ICcvdG1wJzsKLX0KLSRmaWxlID0gY2F0ZmlsZSgkdG1wZGly
LCAibWQkJCIpOworJGZpbGUgPSAibWQkJCI7CiBAZmlsZXMgPSAoJGZpbGUsICIkZmlsZS5kYiIs
ICIkZmlsZS5kaXIiLCAiJGZpbGUucGFnIik7CiAxIHdoaWxlIHVubGluayBAZmlsZXM7CiAKZGlm
ZiAtdXIgcGVybC01LjguMy5vcmlnL2xpYi9NZW1vaXplL3QvdGllX2dkYm0udCBwZXJsLTUuOC4z
L2xpYi9NZW1vaXplL3QvdGllX2dkYm0udAotLS0gcGVybC01LjguMy5vcmlnL2xpYi9NZW1vaXpl
L3QvdGllX2dkYm0udAlUdWUgU2VwIDMwIDE3OjEwOjU4IDIwMDMKKysrIHBlcmwtNS44LjMvbGli
L01lbW9pemUvdC90aWVfZ2RibS50CVN1biBKYW4gMjUgMTY6NTM6MDcgMjAwNApAQCAtMjYsMTMg
KzI2LDcgQEAKIAogcHJpbnQgIjEuLjRcbiI7CiAKLWlmIChldmFsIHtyZXF1aXJlIEZpbGU6OlNw
ZWM6OkZ1bmN0aW9uc30pIHsKLSBGaWxlOjpTcGVjOjpGdW5jdGlvbnMtPmltcG9ydCgpOwotfSBl
bHNlIHsKLSAgKmNhdGZpbGUgPSBzdWIgeyBqb2luICcvJywgQF8gfTsKLX0KLSR0bXBkaXIgPSAk
RU5We1RNUH0gfHwgJEVOVntUTVBESVJ9IHx8ICAnL3RtcCc7ICAKLSRmaWxlID0gY2F0ZmlsZSgk
dG1wZGlyLCAibWQkJCIpOworJGZpbGUgPSAibWQkJCI7CiAxIHdoaWxlIHVubGluayAkZmlsZSwg
IiRmaWxlLmRpciIsICIkZmlsZS5wYWciOwogdHJ5b3V0KCdHREJNX0ZpbGUnLCAkZmlsZSwgMSk7
ICAjIFRlc3QgMS4uNAogMSB3aGlsZSB1bmxpbmsgJGZpbGUsICIkZmlsZS5kaXIiLCAiJGZpbGUu
cGFnIjsKCgpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvbGliL01lbW9pemUvdC90aWVfbmRibS50
IHBlcmwtNS44LjMvbGliL01lbW9pemUvdC90aWVfbmRibS50Ci0tLSBwZXJsLTUuOC4zLm9yaWcv
bGliL01lbW9pemUvdC90aWVfbmRibS50CVR1ZSBTZXAgMzAgMTc6MTA6NTkgMjAwMworKysgcGVy
bC01LjguMy9saWIvTWVtb2l6ZS90L3RpZV9uZGJtLnQJU3VuIEphbiAyNSAxNjo1Mzo1NiAyMDA0
CkBAIC0yOCwxNCArMjgsNyBAQAogCiBwcmludCAiMS4uNFxuIjsKIAotCi1pZiAoZXZhbCB7cmVx
dWlyZSBGaWxlOjpTcGVjOjpGdW5jdGlvbnN9KSB7Ci0gRmlsZTo6U3BlYzo6RnVuY3Rpb25zLT5p
bXBvcnQoKTsKLX0gZWxzZSB7Ci0gICpjYXRmaWxlID0gc3ViIHsgam9pbiAnLycsIEBfIH07Ci19
Ci0kdG1wZGlyID0gJEVOVntUTVB9IHx8ICRFTlZ7VE1QRElSfSB8fCAgJy90bXAnOyAgCi0kZmls
ZSA9IGNhdGZpbGUoJHRtcGRpciwgIm1kJCQiKTsKKyRmaWxlID0gIm1kJCQiOwogMSB3aGlsZSB1
bmxpbmsgJGZpbGUsICIkZmlsZS5kaXIiLCAiJGZpbGUucGFnIjsKIHRyeW91dCgnTWVtb2l6ZTo6
TkRCTV9GaWxlJywgJGZpbGUsIDEpOyAgIyBUZXN0IDEuLjQKIDEgd2hpbGUgdW5saW5rICRmaWxl
LCAiJGZpbGUuZGlyIiwgIiRmaWxlLnBhZyI7CgpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvbGli
L01lbW9pemUvdC90aWVfc2RibS50IHBlcmwtNS44LjMvbGliL01lbW9pemUvdC90aWVfc2RibS50
Ci0tLSBwZXJsLTUuOC4zLm9yaWcvbGliL01lbW9pemUvdC90aWVfc2RibS50CVR1ZSBTZXAgMzAg
MTc6MTA6NTkgMjAwMworKysgcGVybC01LjguMy9saWIvTWVtb2l6ZS90L3RpZV9zZGJtLnQJU3Vu
IEphbiAyNSAxNjo1MjozMyAyMDA0CkBAIC0yOCwxNCArMjgsNyBAQAogCiBwcmludCAiMS4uNFxu
IjsKIAotaWYgKGV2YWwge3JlcXVpcmUgRmlsZTo6U3BlYzo6RnVuY3Rpb25zfSkgewotIEZpbGU6
OlNwZWM6OkZ1bmN0aW9ucy0+aW1wb3J0KCd0bXBkaXInLCAnY2F0ZmlsZScpOwotICR0bXBkaXIg
PSB0bXBkaXIoKTsKLX0gZWxzZSB7Ci0gKmNhdGZpbGUgPSBzdWIgeyBqb2luICcvJywgQF8gfTsK
LSAgJHRtcGRpciA9ICRFTlZ7VE1QfSB8fCAkRU5We1RNUERJUn0gfHwgJy90bXAnOwotfQotJGZp
bGUgPSBjYXRmaWxlKCR0bXBkaXIsICJtZCQkIik7CiskZmlsZSA9ICJtZCQkIjsKIDEgd2hpbGUg
dW5saW5rICRmaWxlLCAiJGZpbGUuZGlyIiwgIiRmaWxlLnBhZyI7CiB0cnlvdXQoJ01lbW9pemU6
OlNEQk1fRmlsZScsICRmaWxlLCAxKTsgICMgVGVzdCAxLi40CiAxIHdoaWxlIHVubGluayAkZmls
ZSwgIiRmaWxlLmRpciIsICIkZmlsZS5wYWciOwoKZGlmZiAtdXIgcGVybC01LjguMy5vcmlnL2xp
Yi9NZW1vaXplL3QvdGllX3N0b3JhYmxlLnQgcGVybC01LjguMy9saWIvTWVtb2l6ZS90L3RpZV9z
dG9yYWJsZS50Ci0tLSBwZXJsLTUuOC4zLm9yaWcvbGliL01lbW9pemUvdC90aWVfc3RvcmFibGUu
dAlUdWUgU2VwIDMwIDE3OjEwOjU5IDIwMDMKKysrIHBlcmwtNS44LjMvbGliL01lbW9pemUvdC90
aWVfc3RvcmFibGUudAlTdW4gSmFuIDI1IDE2OjUzOjI1IDIwMDQKQEAgLTMzLDE0ICszMyw3IEBA
CiAKIHByaW50ICIxLi40XG4iOwogCi0KLWlmIChldmFsIHtyZXF1aXJlIEZpbGU6OlNwZWM6OkZ1
bmN0aW9uc30pIHsKLSBGaWxlOjpTcGVjOjpGdW5jdGlvbnMtPmltcG9ydCgpOwotfSBlbHNlIHsK
LSAgKmNhdGZpbGUgPSBzdWIgeyBqb2luICcvJywgQF8gfTsKLX0KLSR0bXBkaXIgPSAkRU5We1RN
UH0gfHwgJEVOVntUTVBESVJ9IHx8ICAnL3RtcCc7ICAKLSRmaWxlID0gY2F0ZmlsZSgkdG1wZGly
LCAic3RvcmFibGUkJCIpOworJGZpbGUgPSAic3RvcmFibGUkJCI7CiAxIHdoaWxlIHVubGluayAk
ZmlsZTsKIHRyeW91dCgnTWVtb2l6ZTo6U3RvcmFibGUnLCAkZmlsZSwgMSk7ICAjIFRlc3QgMS4u
NAogMSB3aGlsZSB1bmxpbmsgJGZpbGU7CgpkaWZmIC11ciBwZXJsLTUuOC4zLm9yaWcvbGliL3Bl
cmw1ZGIucGwgcGVybC01LjguMy9saWIvcGVybDVkYi5wbAotLS0gcGVybC01LjguMy5vcmlnL2xp
Yi9wZXJsNWRiLnBsCU1vbiBKYW4gMTkgMTg6NDY6MjUgMjAwNAorKysgcGVybC01LjguMy9saWIv
cGVybDVkYi5wbAlNb24gSmFuIDE5IDIwOjE0OjExIDIwMDQKQEAgLTIwNiw3ICsyMDYsNyBAQAog
PWl0ZW0gKiBub1RUWSAKIAogaWYgc2V0LCBnb2VzIGluIE5vblN0b3AgbW9kZS4gIE9uIGludGVy
cnVwdCwgaWYgVFRZIGlzIG5vdCBzZXQsCi11c2VzIHRoZSB2YWx1ZSBvZiBub1RUWSBvciAiL3Rt
cC9wZXJsZGJ0dHkkJCIgdG8gZmluZCBUVFkgdXNpbmcKK3VzZXMgdGhlIHZhbHVlIG9mIG5vVFRZ
IG9yICIvdmFyL3J1bi9wZXJsZGJ0dHkkJCIgdG8gZmluZCBUVFkgdXNpbmcKIFRlcm06OlJlbmRl
enZvdXMuICBDdXJyZW50IHZhcmlhbnQgaXMgdG8gaGF2ZSB0aGUgbmFtZSBvZiBUVFkgaW4gdGhp
cwogZmlsZS4KIApAQCAtNTY4OSw4ICs1Njg5LDggQEAKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBldmFsICJyZXF1aXJlIFRlcm06OlJlbmRlenZvdXM7IiBvciBkaWU7CiAgICAgICAgICAg
ICAjIFNlZSBpZiB3ZSBoYXZlIGFueXRoaW5nIHRvIHBhc3MgdG8gVGVybTo6UmVuZGV6dm91cy4K
LSAgICAgICAgICAgICMgVXNlIC90bXAvcGVybGRidHR5JCQgaWYgbm90LgotICAgICAgICAgICAg
bXkgJHJ2ID0gJEVOVntQRVJMREJfTk9UVFl9IHx8ICIvdG1wL3BlcmxkYnR0eSQkIjsKKyAgICAg
ICAgICAgICMgVXNlIC92YXIvcnVuL3BlcmxkYnR0eSQkIGlmIG5vdC4KKyAgICAgICAgICAgIG15
ICRydiA9ICRFTlZ7UEVSTERCX05PVFRZfSB8fCAiL3Zhci9ydW4vcGVybGRidHR5JCQiOwogCiAg
ICAgICAgICAgICAjIFJlbmRlenZvdXMgYW5kIGdldCB0aGUgZmlsZWhhbmRsZXMuCiAgICAgICAg
ICAgICBteSAkdGVybV9ydiA9IG5ldyBUZXJtOjpSZW5kZXp2b3VzICRydjsKCgpkaWZmIC11ciBw
ZXJsLTUuOC4zLm9yaWcvdXRpbHMvcGVybGJ1Zy5QTCBwZXJsLTUuOC4zL3V0aWxzL3BlcmxidWcu
UEwKLS0tIHBlcmwtNS44LjMub3JpZy91dGlscy9wZXJsYnVnLlBMCVR1ZSBTZXAgMzAgMTc6MTI6
MTAgMjAwMworKysgcGVybC01LjguMy91dGlscy9wZXJsYnVnLlBMCU1vbiBKYW4gMTkgMjA6MTQ6
MTEgMjAwNApAQCAtNzgsNyArNzgsNyBAQAogcHJpbnQgT1VUIDw8JyFOTyFTVUJTISc7CiAKIHVz
ZSBDb25maWc7Ci11c2UgRmlsZTo6U3BlYzsJCSMga2VlcCBwZXJsYnVnIFBlcmwgNS4wMDUgY29t
cGF0aWJsZQordXNlIEZpbGU6OlRlbXA7CiB1c2UgR2V0b3B0OjpTdGQ7CiB1c2Ugc3RyaWN0Owog
CkBAIC05NTgsMTAgKzk1OCw5IEBACiB9CiAKIHN1YiBmaWxlbmFtZSB7Ci0gICAgbXkgJGRpciA9
IEZpbGU6OlNwZWMtPnRtcGRpcigpOwotICAgICRmaWxlbmFtZSA9ICJidWdyZXAwJCQiOwotICAg
ICRmaWxlbmFtZSsrIHdoaWxlIC1lIEZpbGU6OlNwZWMtPmNhdGZpbGUoJGRpciwgJGZpbGVuYW1l
KTsKLSAgICAkZmlsZW5hbWUgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRkaXIsICRmaWxlbmFtZSk7
CisgICAgbXkgKCRmaCwgJGZpbGVuYW1lKSA9IEZpbGU6OlRlbXA6OnRlbXBmaWxlKFVOTElOSyA9
PiAxKTsKKyAgICBjbG9zZSgkZmgpOworICAgIHJldHVybiAkZmlsZW5hbWU7CiB9CiAKIHN1YiBw
YXJhcHJpbnQgewo=
</data>        

          </attachment>
    </bug>

</bugzilla>