<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>148437</bug_id>
          
          <creation_ts>2015-08-25 11:20:31 -0700</creation_ts>
          <short_desc>prepare-ChangeLog lists unmodified functions as modified and marks functions with few changes as deleted</short_desc>
          <delta_ts>2016-08-25 09:56:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159067</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>160924</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Paul Hankes Drielsma">hankesdrielsma</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1120659</commentid>
    <comment_count>0</comment_count>
    <who name="Paul Hankes Drielsma">hankesdrielsma</who>
    <bug_when>2015-08-25 11:20:31 -0700</bug_when>
    <thetext>I have a purely subtractive patch that touches many methods in two Objective-C++ file.  In each method, I removed one or two lines.  prepare-ChangeLog is listing all of those methods as having been deleted.  

Possibly related to or a duplicate of 
  https://bugs.webkit.org/show_bug.cgi?id=137889 or 
  https://bugs.webkit.org/show_bug.cgi?id=144829</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220707</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-16 18:26:14 -0700</bug_when>
    <thetext>*** Bug 159067 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220709</commentid>
    <comment_count>2</comment_count>
      <attachid>286246</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-16 18:46:19 -0700</bug_when>
    <thetext>Created attachment 286246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220733</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-16 19:44:37 -0700</bug_when>
    <thetext>*** Bug 159067 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221751</commentid>
    <comment_count>4</comment_count>
      <attachid>286246</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-21 11:10:07 -0700</bug_when>
    <thetext>Comment on attachment 286246
Patch

Clearing flags on attachment: 286246

Committed r204695: &lt;http://trac.webkit.org/changeset/204695&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221752</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-21 11:10:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223079</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-08-25 09:24:11 -0700</bug_when>
    <thetext>It broke webkit-perl test for GTK in a rather wild way. Why&apos;s it trying to exec /usr/bin/non-existent-command?

Tools/Scripts/webkitperl/VCSUtils_unittest/runCommand.pl ........................................... 1/3 Can&apos;t exec &quot;/usr/bin/non-existent-command&quot;: No such file or directory at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/Tools/Scripts/VCSUtils.pm line 2298.
Failed to exec(): No such file or directory at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/Tools/Scripts/VCSUtils.pm line 2298.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223087</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-25 09:41:17 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; It broke webkit-perl test for GTK in a rather wild way. Why&apos;s it trying to
&gt; exec /usr/bin/non-existent-command?
&gt; 
&gt; Tools/Scripts/webkitperl/VCSUtils_unittest/runCommand.pl
&gt; ........................................... 1/3 Can&apos;t exec
&gt; &quot;/usr/bin/non-existent-command&quot;: No such file or directory at
&gt; /home/slave/webkitgtk/gtk-linux-64-release-tests/build/Tools/Scripts/
&gt; VCSUtils.pm line 2298.
&gt; Failed to exec(): No such file or directory at
&gt; /home/slave/webkitgtk/gtk-linux-64-release-tests/build/Tools/Scripts/
&gt; VCSUtils.pm line 2298.

Notice that this message occurred before &lt;http://trac.webkit.org/changeset/204695&gt;: &lt;https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug%20%28Tests%29/builds/10600/steps/webkitperl-test/logs/stdio&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223088</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-25 09:42:51 -0700</bug_when>
    <thetext>Looking at the latest GTK results I see the following error:

[[
Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl ....................... Can&apos;t locate File/Slurp.pm in @INC (you may need to install the File::Slurp module) (@INC contains: /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/Tools/Scripts /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl line 28.
BEGIN failed--compilation aborted at Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl line 28.
]]
&lt;https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug%20%28Tests%29/builds/10792/steps/webkitperl-test/logs/stdio&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223095</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-25 09:56:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Looking at the latest GTK results I see the following error:
&gt; 
&gt; [[
&gt; Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl
&gt; ....................... Can&apos;t locate File/Slurp.pm in @INC (you may need to
&gt; install the File::Slurp module) (@INC contains:
&gt; /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/Tools/Scripts /etc/perl
&gt; /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2
&gt; /usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5
&gt; /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20
&gt; /usr/local/lib/site_perl .) at
&gt; Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl
&gt; line 28.
&gt; BEGIN failed--compilation aborted at
&gt; Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl
&gt; line 28.
&gt; ]]
&gt; &lt;https://build.webkit.org/builders/GTK%20Linux%2064-
&gt; bit%20Debug%20%28Tests%29/builds/10792/steps/webkitperl-test/logs/stdio&gt;

Committed fix in &lt;http://trac.webkit.org/changeset/204969&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286246</attachid>
            <date>2016-08-16 18:46:19 -0700</date>
            <delta_ts>2016-08-21 11:10:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148437-20160816184432.patch</filename>
            <type>text/plain</type>
            <size>18175</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTQxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmUxZjY5YmI2YmVmYjFmYmYxMWVlNWYzODQyYTQxMDQw
M2Q1NGVkZC4uZThkMzhiNjExMDg4Mzc0Y2I3OTVlNjQ5NjllMWYwMDk2NGZhNDA3ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0
IEBACiAyMDE2LTA4LTE2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAg
ICAgICBwcmVwYXJlLUNoYW5nZUxvZyBsaXN0cyBtb2RpZmllZCBtZXRob2RzIGFzIGhhdmluZyBi
ZWVuIGRlbGV0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZzoKKyAgICAgICAgKGRpZmZDb21tYW5kKTog
V2hlbiB1c2luZyBhIFN1YnZlcnNpb24gY2hlY2tvdXQsIGdlbmVyYXRlIGEgdW5pZmllZCBkaWZm
IHdpdGhvdXQgYW55IGNvbnRleHQgbGluZXMuCisgICAgICAgIFRoaXMgbWF0Y2hlcyBvdXIgYmVo
YXZpb3Igd2hlbiB1c2luZyBhIEdpdCBjaGVja291dC4gVGhlIGZ1bmN0aW9uIG92ZXJsYXAgbG9n
aWMgaW4gZ2VuZXJhdGVGdW5jdGlvbkxpc3RzQnlSYW5nZXMoKQorICAgICAgICBhc3N1bWVzIHRo
YXQgaXRzIGxpbmUgcmFuZ2VzIHdlcmUgZnJvbSBhIHVuaWZpZWQgZGlmZiB3aXRob3V0IGFueSBj
b250ZXh0IGxpbmVzLgorICAgICAgICAoZXh0cmFjdExpbmVSYW5nZUFmdGVyQ2hhbmdlKTogQSBk
ZWxldGVkIGxpbmUgc2hvdWxkIGJlIHJlcHJlc2VudGVkIHdpdGggYSAoImJlZ2luIGxpbmUgbnVt
YmVyIiwgImVuZCBsaW5lIG51bWJlciIpID0gKCJuZXcgc3RhcnRpbmcgbGluZSBudW1iZXIiLCAi
bmV3IHN0YXJ0aW5nIGxpbmUgbnVtYmVyIikuCisgICAgICAgIChleHRyYWN0TGluZVJhbmdlQmVm
b3JlQ2hhbmdlKTogQW4gYWRkZWQgbGluZSBzaG91bGQgYmUgcmVwcmVzZW50ZWQgd2l0aCBhICgi
YmVnaW4gbGluZSBudW1iZXIiLCAiZW5kIGxpbmUgbnVtYmVyIikgPSAoIm9yaWdpbmFsIHN0YXJ0
aW5nIGxpbmUgbnVtYmVyIiwgIm9yaWdpbmFsIHN0YXJ0aW5nIGxpbmUgbnVtYmVyIikuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdlTG9nX3VuaXR0ZXN0L2V4dHJh
Y3RMaW5lUmFuZ2VCZWZvcmVBbmRBZnRlckNoYW5nZS5wbDogVXBkYXRlIGV4cGVjdGVkIHJlc3Vs
dHMKKyAgICAgICAgYmFzZWQgb24gY2hhbmdlcyB0byBleHRyYWN0TGluZVJhbmdlQWZ0ZXJDaGFu
Z2UoKSBhbmQgZXh0cmFjdExpbmVSYW5nZUJlZm9yZUNoYW5nZSgpLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9nZW5lcmF0ZUZ1bmN0aW9u
TGlzdHMucGw6IEFkZGVkLgorICAgICAgICAoZGlzY2FyZE91dHB1dCk6IENvbnZlbmllbmNlIGZ1
bmN0aW9uIGludm9rZXMgdGhlIHNwZWNpZmllZCBmdW5jdGlvbiByZWRpcmVjdGluZyBzdGFuZGFy
ZCBvdXRwdXQgYW5kIHN0YW5kYXJkIGVycm9yCisgICAgICAgIHRvIC9kZXYvbnVsbCBmb3IgdGhl
IGR1cmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBjYWxsLgorCisyMDE2LTA4LTE2ICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBwcmVwYXJlLUNoYW5nZUxvZzogRXh0
cmFjdCBsb2dpYyBmcm9tIGdlbmVyYXRlRnVuY3Rpb25MaXN0cygpIGludG8gYSBmdW5jdGlvbiB0
aGF0IHRha2VzIGEgZGVsZWdhdGUgb2JqZWN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5MjQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9w
cmVwYXJlLUNoYW5nZUxvZyBiL1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cKaW5kZXgg
ODE2NmZjODQyMmU2MThkZmU2NGE5OGY3MWI5MGU2NGExZjIzNGM3OS4uYjNiZGY1ZWM4NGNlYzJi
MWUxOTg0NmJhYzI0NGU0YTBlOTg4ZDZhYiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9wcmVw
YXJlLUNoYW5nZUxvZworKysgYi9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nCkBAIC0x
OTk2LDExICsxOTk2LDEzIEBAIHN1YiBkaWZmQ29tbWFuZCgkJCQkKQogewogICAgIG15ICgkcGF0
aHMsICRnaXRDb21taXQsICRnaXRJbmRleCwgJG1lcmdlQmFzZSkgPSBAXzsKIAorICAgICMgVGhl
IGZ1bmN0aW9uIG92ZXJsYXAgZGV0ZWN0aW9uIGxvZ2ljIGluIGdlbmVyYXRlRnVuY3Rpb25MaXN0
c0J5UmFuZ2VzKCkgYXNzdW1lcyB0aGF0IGl0cyBsaW5lCisgICAgIyByYW5nZXMgd2VyZSBmcm9t
IGEgdW5pZmllZCBkaWZmIHdpdGhvdXQgYW55IGNvbnRleHQgbGluZXMuCiAgICAgbXkgJGNvbW1h
bmQ7CiAgICAgaWYgKGlzU1ZOKCkpIHsKICAgICAgICAgbXkgQGVzY2FwZWRQYXRocyA9IG1hcChl
c2NhcGVTdWJ2ZXJzaW9uUGF0aCgkXyksIEAkcGF0aHMpOwogICAgICAgICBteSAkZXNjYXBlZFBh
dGhzU3RyaW5nID0gcXEoIikgLiBqb2luKHFxKCIgIiksIEBlc2NhcGVkUGF0aHMpIC4gcXEoIik7
Ci0gICAgICAgICRjb21tYW5kID0gU1ZOIC4gIiBkaWZmIC0tZGlmZi1jbWQgZGlmZiAteCAtdSAk
ZXNjYXBlZFBhdGhzU3RyaW5nIjsKKyAgICAgICAgJGNvbW1hbmQgPSBTVk4gLiAiIGRpZmYgLS1k
aWZmLWNtZCBkaWZmIC14IC1VMCAkZXNjYXBlZFBhdGhzU3RyaW5nIjsKICAgICB9IGVsc2lmIChp
c0dpdCgpKSB7CiAgICAgICAgIG15ICRwYXRoc1N0cmluZyA9ICInIiAuIGpvaW4oIicgJyIsIEAk
cGF0aHMpIC4gIiciOyAKICAgICAgICAgJGNvbW1hbmQgPSBHSVQgLiAiIGRpZmYgLS1uby1leHQt
ZGlmZiAtVTAgIiAuIGRpZmZGcm9tVG9TdHJpbmcoJGdpdENvbW1pdCwgJGdpdEluZGV4LCAkbWVy
Z2VCYXNlKTsKQEAgLTIzNjgsOSArMjM3MCwxMiBAQCBzdWIgZXh0cmFjdExpbmVSYW5nZUFmdGVy
Q2hhbmdlKCQpCiB7CiAgICAgbXkgKCRzdHJpbmcpID0gQF87CiAgICAgbXkgJGNodW5rUmFuZ2Ug
PSBwYXJzZUNodW5rUmFuZ2UoJHN0cmluZyk7Ci0gICAgaWYgKCEkY2h1bmtSYW5nZSB8fCAhJGNo
dW5rUmFuZ2UtPntuZXdTdGFydGluZ0xpbmV9IHx8ICEkY2h1bmtSYW5nZS0+e25ld0xpbmVDb3Vu
dH0pIHsKKyAgICBpZiAoISRjaHVua1JhbmdlKSB7CisgICAgICAgIHJldHVybiAoLTEsIC0xKTsg
IyBNYWxmb3JtZWQKKyAgICB9CisgICAgaWYgKCEkY2h1bmtSYW5nZS0+e25ld1N0YXJ0aW5nTGlu
ZX0gfHwgISRjaHVua1JhbmdlLT57bmV3TGluZUNvdW50fSkgewogICAgICAgICAgIyBEZWxldGlv
bjsgbm8gbGluZXMgZXhpc3QgYWZ0ZXIgY2hhbmdlLgotICAgICAgICByZXR1cm4gKC0xLCAtMSk7
CisgICAgICAgIHJldHVybiAoJGNodW5rUmFuZ2UtPntuZXdTdGFydGluZ0xpbmV9LCAkY2h1bmtS
YW5nZS0+e25ld1N0YXJ0aW5nTGluZX0pOwogICAgIH0KICAgICByZXR1cm4gKCRjaHVua1Jhbmdl
LT57bmV3U3RhcnRpbmdMaW5lfSwgJGNodW5rUmFuZ2UtPntuZXdTdGFydGluZ0xpbmV9ICsgJGNo
dW5rUmFuZ2UtPntuZXdMaW5lQ291bnR9IC0gMSk7CiB9CkBAIC0yMzc5LDkgKzIzODQsMTIgQEAg
c3ViIGV4dHJhY3RMaW5lUmFuZ2VCZWZvcmVDaGFuZ2UoJCkKIHsKICAgICBteSAoJHN0cmluZykg
PSBAXzsKICAgICBteSAkY2h1bmtSYW5nZSA9IHBhcnNlQ2h1bmtSYW5nZSgkc3RyaW5nKTsKLSAg
ICBpZiAoISRjaHVua1JhbmdlIHx8ICEkY2h1bmtSYW5nZS0+e3N0YXJ0aW5nTGluZX0gfHwgISRj
aHVua1JhbmdlLT57bGluZUNvdW50fSkgeworICAgIGlmICghJGNodW5rUmFuZ2UpIHsKKyAgICAg
ICAgcmV0dXJuICgtMSwgLTEpOyAjIE1hbGZvcm1lZAorICAgIH0KKyAgICBpZiAoISRjaHVua1Jh
bmdlLT57c3RhcnRpbmdMaW5lfSB8fCAhJGNodW5rUmFuZ2UtPntsaW5lQ291bnR9KSB7CiAgICAg
ICAgICMgQWRkaXRpb247IG5vIGxpbmVzIGV4aXN0ZWQgYmVmb3JlIGNoYW5nZS4KLSAgICAgICAg
cmV0dXJuICgtMSwgLTEpOworICAgICAgICByZXR1cm4gKCRjaHVua1JhbmdlLT57c3RhcnRpbmdM
aW5lfSwgJGNodW5rUmFuZ2UtPntzdGFydGluZ0xpbmV9KTsKICAgICB9CiAgICAgcmV0dXJuICgk
Y2h1bmtSYW5nZS0+e3N0YXJ0aW5nTGluZX0sICRjaHVua1JhbmdlLT57c3RhcnRpbmdMaW5lfSAr
ICRjaHVua1JhbmdlLT57bGluZUNvdW50fSAtIDEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdlTG9nX3VuaXR0ZXN0L2V4dHJhY3RMaW5lUmFu
Z2VCZWZvcmVBbmRBZnRlckNoYW5nZS5wbCBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9wcmVw
YXJlLUNoYW5nZUxvZ191bml0dGVzdC9leHRyYWN0TGluZVJhbmdlQmVmb3JlQW5kQWZ0ZXJDaGFu
Z2UucGwKaW5kZXggNGU2OWE4MzcwZDA5YzI5YWJhNGI4NzJmZTBiY2U4YjA1MzRiZmVkOS4uNWE5
YTJkOWFkNWM1NGY5NjFkMjE1ZjEyOTk5ZGYyNDY0MzJjY2ZlMCAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdlTG9nX3VuaXR0ZXN0L2V4dHJhY3RMaW5l
UmFuZ2VCZWZvcmVBbmRBZnRlckNoYW5nZS5wbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBl
cmwvcHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvZXh0cmFjdExpbmVSYW5nZUJlZm9yZUFuZEFm
dGVyQ2hhbmdlLnBsCkBAIC0zOSw3ICszOSw3IEBAIG15IEB0ZXN0Q2FzZUhhc2hSZWZzID0gKAog
ICAgIHRlc3ROYW1lID0+ICJhZGQgc2luZ2xlIGxpbmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
ZmlsZSIsCiAgICAgaW5wdXRUZXh0ID0+ICJAQCAtMCwwICsxIEBAIiwKICAgICBleHBlY3RlZFJl
c3VsdHMgPT4gewotICAgICAgICBiZWZvcmVDaGFuZ2UgPT4gWy0xLCAtMV0sCisgICAgICAgIGJl
Zm9yZUNoYW5nZSA9PiBbMCwgMF0sCiAgICAgICAgIGFmdGVyQ2hhbmdlID0+IFsxLCAxXSwKICAg
ICB9CiB9LApAQCAtNDgsNyArNDgsNyBAQCBteSBAdGVzdENhc2VIYXNoUmVmcyA9ICgKICAgICB0
ZXN0TmFtZSA9PiAiYWRkIHR3byBsaW5lcyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIiwK
ICAgICBpbnB1dFRleHQgPT4gIkBAIC0wLDAgKzEsMiBAQCIsCiAgICAgZXhwZWN0ZWRSZXN1bHRz
ID0+IHsKLSAgICAgICAgYmVmb3JlQ2hhbmdlID0+IFstMSwgLTFdLAorICAgICAgICBiZWZvcmVD
aGFuZ2UgPT4gWzAsIDBdLAogICAgICAgICBhZnRlckNoYW5nZSA9PiBbMSwgMl0sCiAgICAgfQog
fSwKQEAgLTU3LDcgKzU3LDcgQEAgbXkgQHRlc3RDYXNlSGFzaFJlZnMgPSAoCiAgICAgdGVzdE5h
bWUgPT4gImFkZCB0d28gbGluZXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZmlsZSIsCiAgICAgaW5w
dXRUZXh0ID0+ICJAQCAtNCwwICs1LDIgQEAiLAogICAgIGV4cGVjdGVkUmVzdWx0cyA9PiB7Ci0g
ICAgICAgIGJlZm9yZUNoYW5nZSA9PiBbLTEsIC0xXSwKKyAgICAgICAgYmVmb3JlQ2hhbmdlID0+
IFs0LCA0XSwKICAgICAgICAgYWZ0ZXJDaGFuZ2UgPT4gWzUsIDZdLAogICAgIH0KIH0sCkBAIC02
Niw3ICs2Niw3IEBAIG15IEB0ZXN0Q2FzZUhhc2hSZWZzID0gKAogICAgIHRlc3ROYW1lID0+ICJh
cHBlbmQgYSBzaW5nbGUgbGluZSB0byB0aGUgZW5kIG9mIHRoZSBmaWxlIiwKICAgICBpbnB1dFRl
eHQgPT4gIkBAIC0xLDAgKzIgQEAiLAogICAgIGV4cGVjdGVkUmVzdWx0cyA9PiB7Ci0gICAgICAg
IGJlZm9yZUNoYW5nZSA9PiBbLTEsIC0xXSwKKyAgICAgICAgYmVmb3JlQ2hhbmdlID0+IFsxLCAx
XSwKICAgICAgICAgYWZ0ZXJDaGFuZ2UgPT4gWzIsIDJdLAogICAgIH0KIH0sCkBAIC03OSw3ICs3
OSw3IEBAIG15IEB0ZXN0Q2FzZUhhc2hSZWZzID0gKAogICAgIGlucHV0VGV4dCA9PiAiQEAgLTEg
KzAsMCBAQCIsCiAgICAgZXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgYmVmb3JlQ2hhbmdl
ID0+IFsxLCAxXSwKLSAgICAgICAgYWZ0ZXJDaGFuZ2UgPT4gWy0xLCAtMV0sCisgICAgICAgIGFm
dGVyQ2hhbmdlID0+IFswLCAwXSwKICAgICB9CiB9LAogewpAQCAtODgsNyArODgsNyBAQCBteSBA
dGVzdENhc2VIYXNoUmVmcyA9ICgKICAgICBpbnB1dFRleHQgPT4gIkBAIC0xLDcgKzAsMCBAQCIs
CiAgICAgZXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgYmVmb3JlQ2hhbmdlID0+IFsxLCA3
XSwKLSAgICAgICAgYWZ0ZXJDaGFuZ2UgPT4gWy0xLCAtMV0sCisgICAgICAgIGFmdGVyQ2hhbmdl
ID0+IFswLCAwXSwKICAgICB9CiB9LAogewpAQCAtOTcsNyArOTcsNyBAQCBteSBAdGVzdENhc2VI
YXNoUmVmcyA9ICgKICAgICBpbnB1dFRleHQgPT4gIkBAIC00LDIgKzMsMCBAQCIsCiAgICAgZXhw
ZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgYmVmb3JlQ2hhbmdlID0+IFs0LCA1XSwKLSAgICAg
ICAgYWZ0ZXJDaGFuZ2UgPT4gWy0xLCAtMV0sCisgICAgICAgIGFmdGVyQ2hhbmdlID0+IFszLCAz
XSwKICAgICB9CiB9LAogIyMjIwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L3ByZXBhcmUtQ2hhbmdlTG9nX3VuaXR0ZXN0L2dlbmVyYXRlRnVuY3Rpb25MaXN0cy5wbCBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9nZW5lcmF0
ZUZ1bmN0aW9uTGlzdHMucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RjNDA0YzNhZGUzMWRkMzE5OWU2MGRmMGYw
NTg3N2MwNzNlZDY5MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVy
bC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9nZW5lcmF0ZUZ1bmN0aW9uTGlzdHMucGwKQEAg
LTAsMCArMSwzOTcgQEAKKyMhL3Vzci9iaW4vcGVybAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIAorIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIEZp
bGU6OlNsdXJwOwordXNlIEZpbGU6OlRlbXA7Cit1c2UgRmluZEJpbjsKK3VzZSBUZXN0OjpNb3Jl
OwordXNlIFZDU1V0aWxzOworCit1c2UgbGliIEZpbGU6OlNwZWMtPmNhdGRpcigkRmluZEJpbjo6
QmluLCAiLi4iKTsKK3VzZSBMb2FkQXNNb2R1bGUgcXcoUHJlcGFyZUNoYW5nZUxvZyBwcmVwYXJl
LUNoYW5nZUxvZyk7CisKK215ICRFWEFNUExFX0NQUCA9IDw8RU9GOworI2luY2x1ZGUgPGNhc3Nl
cnQ+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPGlvc3Ry
ZWFtPgorCit1bnNpZ25lZCBmaWIodW5zaWduZWQpOworCit1bnNpZ25lZCBmaWJQbHVzRml2ZSh1
bnNpZ25lZCBuKQoreworICAgIHJldHVybiBmaWIobikgKyA1OworfQorCit1bnNpZ25lZCBmaWIo
dW5zaWduZWQgbikKK3sKKyAgICAvLyBEZXJpdmVkIGZyb20gQmluZXQncyBmb3JtdWxhLCA8aHR0
cDovL21hdGh3b3JsZC53b2xmcmFtLmNvbS9CaW5ldHNGaWJvbmFjY2lOdW1iZXJGb3JtdWxhLmh0
bWw+LgorICAgIGFzc2VydChuIDw9IHN0ZDo6Zmxvb3Ioc3RkOjpsb2coc3RkOjpudW1lcmljX2xp
bWl0czx1bnNpZ25lZD46Om1heCgpICogc3RkOjpzcXJ0KDUpKSAvIHN0ZDo6bG9nKCgxICsgc3Rk
OjpzcXJ0KDUpKSAvIDIpKSk7CisgICAgaWYgKCFuKQorICAgICAgICByZXR1cm4gMDsKKyAgICBp
ZiAobiA9PSAxKQorICAgICAgICByZXR1cm4gMTsKKyAgICAtLW47CisgICAgdW5zaWduZWQgYSA9
IDA7CisgICAgdW5zaWduZWQgYiA9IDE7CisgICAgZG8geworICAgICAgICB1bnNpZ25lZCBrID0g
YSArIGI7CisgICAgICAgIGEgPSBiOworICAgICAgICBiID0gazsKKyAgICB9IHdoaWxlICgtLW4p
OworICAgIHJldHVybiBiOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciogYXJn
dltdKQoreworICAgIHN0ZDo6Y291dCA8PCBmaWIoMSkgPDwgc3RkOjplbmRsOworICAgIHN0ZDo6
Y291dCA8PCBmaWJQbHVzRml2ZSgxKSA8PCBzdGQ6OmVuZGw7CisgICAgc3RkOjpjb3V0IDw8IGZp
Yig1KSA8PCBzdGQ6OmVuZGw7CisgICAgc3RkOjpjb3V0IDw8IGZpYlBsdXNGaXZlKDUpIDw8IHN0
ZDo6ZW5kbDsKKyAgICByZXR1cm4gMDsKK30KK0VPRgorCitteSBAdGVzdENhc2VIYXNoUmVmcyA9
ICgKKyMjIworIyAwIGxpbmVzIG9mIGNvbnRleHQKKyMjCit7CisgICAgdGVzdE5hbWUgPT4gIlVu
aWZpZWQgZGlmZiB3aXRoIDAgY29udGV4dCIsCisgICAgaW5wdXRUZXh0ID0+ICRFWEFNUExFX0NQ
UCwKKyAgICBkaWZmVG9BcHBseSA9PiA8PEVPRiwKK2RpZmYgLS1naXQgYS9maWIuY3BwIGIvZmli
LmNwcAorLS0tIGEvZmliLmNwcAorKysrIGIvZmliLmNwcAorQEAgLTE1ICsxNCwwIEBAIHVuc2ln
bmVkIGZpYih1bnNpZ25lZCBuKQorLSAgICAvLyBEZXJpdmVkIGZyb20gQmluZXQncyBmb3JtdWxh
LCA8aHR0cDovL21hdGh3b3JsZC53b2xmcmFtLmNvbS9CaW5ldHNGaWJvbmFjY2lOdW1iZXJGb3Jt
dWxhLmh0bWw+LgorRU9GCisgICAgZXhwZWN0ZWQgPT4gPDxFT0YKKworICAgICAgICAoZmliKToK
K0VPRgorfSwKK3sKKyAgICB0ZXN0TmFtZSA9PiAiVW5pZmllZCBkaWZmIHdpdGggMCBjb250ZXh0
OyBjb21iaW5lIHR3byBhZGphY2VudCBmdW5jdGlvbnMiLAorICAgIGlucHV0VGV4dCA9PiAkRVhB
TVBMRV9DUFAsCisgICAgZGlmZlRvQXBwbHkgPT4gPDxFT0YsCitkaWZmIC0tZ2l0IGEvZmliLmNw
cCBiL2ZpYi5jcHAKKy0tLSBhL2ZpYi5jcHAKKysrKyBiL2ZpYi5jcHAKK0BAIC0xMCw1ICs5LDAg
QEAgdW5zaWduZWQgZmliUGx1c0ZpdmUodW5zaWduZWQgbikKKy0gICAgcmV0dXJuIGZpYihuKSAr
IDU7CistfQorLQorLXVuc2lnbmVkIGZpYih1bnNpZ25lZCBuKQorLXsKK0VPRgorICAgIGV4cGVj
dGVkID0+IDw8RU9GCisKKyAgICAgICAgKGZpYlBsdXNGaXZlKToKKyAgICAgICAgKGZpYik6IERl
bGV0ZWQuCitFT0YKK30sCit7CisgICAgdGVzdE5hbWUgPT4gIlVuaWZpZWQgZGlmZiB3aXRoIDAg
Y29udGV4dDsgcmVtb3ZlIGZ1bmN0aW9uIiwKKyAgICBpbnB1dFRleHQgPT4gJEVYQU1QTEVfQ1BQ
LAorICAgIGRpZmZUb0FwcGx5ID0+IDw8RU9GLAorZGlmZiAtLWdpdCBhL2ZpYi5jcHAgYi9maWIu
Y3BwCistLS0gYS9maWIuY3BwCisrKysgYi9maWIuY3BwCitAQCAtMTMsMTkgKzEyLDAgQEAgdW5z
aWduZWQgZmliUGx1c0ZpdmUodW5zaWduZWQgbikKKy11bnNpZ25lZCBmaWIodW5zaWduZWQgbikK
Ky17CistICAgIC8vIERlcml2ZWQgZnJvbSBCaW5ldCdzIGZvcm11bGEsIDxodHRwOi8vbWF0aHdv
cmxkLndvbGZyYW0uY29tL0JpbmV0c0ZpYm9uYWNjaU51bWJlckZvcm11bGEuaHRtbD4uCistICAg
IGFzc2VydChuIDw9IHN0ZDo6Zmxvb3Ioc3RkOjpsb2coc3RkOjpudW1lcmljX2xpbWl0czx1bnNp
Z25lZD46Om1heCgpICogc3RkOjpzcXJ0KDUpKSAvIHN0ZDo6bG9nKCgxICsgc3RkOjpzcXJ0KDUp
KSAvIDIpKSk7CistICAgIGlmICghbikKKy0gICAgICAgIHJldHVybiAwOworLSAgICBpZiAobiA9
PSAxKQorLSAgICAgICAgcmV0dXJuIDE7CistICAgIC0tbjsKKy0gICAgdW5zaWduZWQgYSA9IDA7
CistICAgIHVuc2lnbmVkIGIgPSAxOworLSAgICBkbyB7CistICAgICAgICB1bnNpZ25lZCBrID0g
YSArIGI7CistICAgICAgICBhID0gYjsKKy0gICAgICAgIGIgPSBrOworLSAgICB9IHdoaWxlICgt
LW4pOworLSAgICByZXR1cm4gYjsKKy19CistCitFT0YKKyAgICBleHBlY3RlZCA9PiA8PEVPRgor
CisgICAgICAgIChmaWIpOiBEZWxldGVkLgorRU9GCit9LAoreworICAgICMgVGhpcyBpcyBhIGNv
bnRyaXZlZCBleGFtcGxlIGFuZCB3b3VsZCBjYXVzZSBhIHJlZGVmaW5pdGlvbiBlcnJvciBpbiBD
KyssIGJ1dCBhbiBhbmFsYWdvdXMgY2hhbmdlIGluIGEgSmF2YVNjcmlwdCBzY3JpcHQgd291bGQg
YmUgZmluZS4KKyAgICB0ZXN0TmFtZSA9PiAiVW5pZmllZCBkaWZmIHdpdGggMCBjb250ZXh0OyBh
ZGQgZnVuY3Rpb24gYWJvdmUgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBuYW1lIiwKKyAgICBpbnB1
dFRleHQgPT4gJEVYQU1QTEVfQ1BQLAorICAgIGRpZmZUb0FwcGx5ID0+IDw8RU9GLAorZGlmZiAt
LWdpdCBhL2ZpYi5jcHAgYi9maWIuY3BwCistLS0gYS9maWIuY3BwCisrKysgYi9maWIuY3BwCitA
QCAtMzMsMCArMzQsNSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQor
KyAgICByZXR1cm4gMDsKKyt9CisrCisraW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFy
Z3ZbXSkKKyt7CitFT0YKKyAgICBleHBlY3RlZCA9PiA8PEVPRgorCisgICAgICAgIChtYWluKToK
K0VPRgorfSwKK3sKKyAgICAjIFRoaXMgaXMgYSBjb250cml2ZWQgZXhhbXBsZSBhbmQgd291bGQg
Y2F1c2UgYSByZWRlZmluaXRpb24gZXJyb3IgaW4gQysrLCBidXQgYW4gYW5hbGFnb3VzIGNoYW5n
ZSBpbiBhIEphdmFTY3JpcHQgc2NyaXB0IHdvdWxkIGJlIGZpbmUuCisgICAgdGVzdE5hbWUgPT4g
IlVuaWZpZWQgZGlmZiB3aXRoIDAgY29udGV4dDsgYWRkIGZ1bmN0aW9uIGFmdGVyIGZ1bmN0aW9u
IHdpdGggdGhlIHNhbWUgbmFtZSIsCisgICAgaW5wdXRUZXh0ID0+ICRFWEFNUExFX0NQUCwKKyAg
ICBkaWZmVG9BcHBseSA9PiA8PEVPRiwKK2RpZmYgLS1naXQgYS9maWIuY3BwIGIvZmliLmNwcAor
LS0tIGEvZmliLmNwcAorKysrIGIvZmliLmNwcAorQEAgLTM4LDAgKzM5LDUgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKKyt9CisrCisraW50IG1haW4oaW50IGFyZ2Ms
IGNvbnN0IGNoYXIqIGFyZ3ZbXSkKKyt7CisrICAgIHJldHVybiAwOworRU9GCisgICAgZXhwZWN0
ZWQgPT4gPDxFT0YKKworICAgICAgICAobWFpbik6CitFT0YKK30sCisjIyMKKyMgMyBsaW5lcyBv
ZiBjb250ZXh0CisjIworeworICAgIHRlc3ROYW1lID0+ICJVbmlmaWVkIGRpZmYgd2l0aCAzIGxp
bmVzIG9mIGNvbnRleHQiLAorICAgIGlucHV0VGV4dCA9PiAkRVhBTVBMRV9DUFAsCisgICAgZGlm
ZlRvQXBwbHkgPT4gPDxFT0YsCitkaWZmIC0tZ2l0IGEvZmliLmNwcCBiL2ZpYi5jcHAKKy0tLSBh
L2ZpYi5jcHAKKysrKyBiL2ZpYi5jcHAKK0BAIC0xMiw3ICsxMiw2IEBAIHVuc2lnbmVkIGZpYlBs
dXNGaXZlKHVuc2lnbmVkIG4pCisgCisgdW5zaWduZWQgZmliKHVuc2lnbmVkIG4pCisgeworLSAg
ICAvLyBEZXJpdmVkIGZyb20gQmluZXQncyBmb3JtdWxhLCA8aHR0cDovL21hdGh3b3JsZC53b2xm
cmFtLmNvbS9CaW5ldHNGaWJvbmFjY2lOdW1iZXJGb3JtdWxhLmh0bWw+LgorICAgICBhc3NlcnQo
biA8PSBzdGQ6OmZsb29yKHN0ZDo6bG9nKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKSAqIHN0ZDo6c3FydCg1KSkgLyBzdGQ6OmxvZygoMSArIHN0ZDo6c3FydCg1KSkgLyAyKSkp
OworICAgICBpZiAoIW4pCisgICAgICAgICByZXR1cm4gMDsKK0VPRgorICAgIGV4cGVjdGVkID0+
IDw8RU9GCisKKyAgICAgICAgKGZpYik6CitFT0YKK30sCit7CisgICAgdGVzdE5hbWUgPT4gIlVu
aWZpZWQgZGlmZiB3aXRoIDMgbGluZXMgb2YgY29udGV4dDsgY29tYmluZSB0d28gYWRqYWNlbnQg
ZnVuY3Rpb25zIiwKKyAgICBpbnB1dFRleHQgPT4gJEVYQU1QTEVfQ1BQLAorICAgIGRpZmZUb0Fw
cGx5ID0+IDw8RU9GLAorZGlmZiAtLWdpdCBhL2ZpYi5jcHAgYi9maWIuY3BwCistLS0gYS9maWIu
Y3BwCisrKysgYi9maWIuY3BwCitAQCAtNywxMSArNyw2IEBAIHVuc2lnbmVkIGZpYih1bnNpZ25l
ZCk7CisgCisgdW5zaWduZWQgZmliUGx1c0ZpdmUodW5zaWduZWQgbikKKyB7CistICAgIHJldHVy
biBmaWIobikgKyA1OworLX0KKy0KKy11bnNpZ25lZCBmaWIodW5zaWduZWQgbikKKy17CisgICAg
IC8vIERlcml2ZWQgZnJvbSBCaW5ldCdzIGZvcm11bGEsIDxodHRwOi8vbWF0aHdvcmxkLndvbGZy
YW0uY29tL0JpbmV0c0ZpYm9uYWNjaU51bWJlckZvcm11bGEuaHRtbD4uCisgICAgIGFzc2VydChu
IDw9IHN0ZDo6Zmxvb3Ioc3RkOjpsb2coc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpICogc3RkOjpzcXJ0KDUpKSAvIHN0ZDo6bG9nKCgxICsgc3RkOjpzcXJ0KDUpKSAvIDIpKSk7
CisgICAgIGlmICghbikKK0VPRgorICAgIGV4cGVjdGVkID0+IDw8RU9GLAorCisgICAgICAgIChm
aWJQbHVzRml2ZSk6CisgICAgICAgIChmaWIpOiBEZWxldGVkLgorRU9GCit9LAoreworICAgIHRl
c3ROYW1lID0+ICJVbmlmaWVkIGRpZmYgd2l0aCAzIGxpbmVzIG9mIGNvbnRleHQ7IHJlbW92ZSBm
dW5jdGlvbiIsCisgICAgaW5wdXRUZXh0ID0+ICRFWEFNUExFX0NQUCwKKyAgICBkaWZmVG9BcHBs
eSA9PiA8PEVPRiwKK2RpZmYgLS1naXQgYS9maWIuY3BwIGIvZmliLmNwcAorLS0tIGEvZmliLmNw
cAorKysrIGIvZmliLmNwcAorQEAgLTEwLDI1ICsxMCw2IEBAIHVuc2lnbmVkIGZpYlBsdXNGaXZl
KHVuc2lnbmVkIG4pCisgICAgIHJldHVybiBmaWIobikgKyA1OworIH0KKyAKKy11bnNpZ25lZCBm
aWIodW5zaWduZWQgbikKKy17CistICAgIC8vIERlcml2ZWQgZnJvbSBCaW5ldCdzIGZvcm11bGEs
IDxodHRwOi8vbWF0aHdvcmxkLndvbGZyYW0uY29tL0JpbmV0c0ZpYm9uYWNjaU51bWJlckZvcm11
bGEuaHRtbD4uCistICAgIGFzc2VydChuIDw9IHN0ZDo6Zmxvb3Ioc3RkOjpsb2coc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICogc3RkOjpzcXJ0KDUpKSAvIHN0ZDo6bG9nKCgx
ICsgc3RkOjpzcXJ0KDUpKSAvIDIpKSk7CistICAgIGlmICghbikKKy0gICAgICAgIHJldHVybiAw
OworLSAgICBpZiAobiA9PSAxKQorLSAgICAgICAgcmV0dXJuIDE7CistICAgIC0tbjsKKy0gICAg
dW5zaWduZWQgYSA9IDA7CistICAgIHVuc2lnbmVkIGIgPSAxOworLSAgICBkbyB7CistICAgICAg
ICB1bnNpZ25lZCBrID0gYSArIGI7CistICAgICAgICBhID0gYjsKKy0gICAgICAgIGIgPSBrOwor
LSAgICB9IHdoaWxlICgtLW4pOworLSAgICByZXR1cm4gYjsKKy19CistCisgaW50IG1haW4oaW50
IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKKyB7CisgICAgIHN0ZDo6Y291dCA8PCBmaWIoMSkg
PDwgc3RkOjplbmRsOworRU9GCisgICAgIyBOb3RlIHRoYXQgdGhpcyBvdXRwdXQgaXMgZXhwZWN0
ZWQgZ2l2ZW4gdGhhdCB0aGUgY2h1bmsgcmFuZ2UgaW5jbHVkZXMgdGhlIHJlbW92ZWQgY29udGVu
dCBwbHVzIGNvbnRleHQgbGluZXMuCisgICAgIyBUaGUgY29udGV4dCBsaW5lcyBtYWtlIHRoZSBh
ZnRlciBjaHVuayByYW5nZSAoKzEwLCA2KSBvdmVybGFwIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBm
aWJQbHVzRml2ZSgpIGFuZCBtYWluKCkuCisgICAgZXhwZWN0ZWQgPT4gPDxFT0YsCisKKyAgICAg
ICAgKGZpYlBsdXNGaXZlKToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAoZmliKTogRGVsZXRl
ZC4KK0VPRgorfSwKKyMjIworIyBEaWZmIHRoYXQgZG9lcyBub3QgZGlmZmVyIHdpdGggcmVzcGVj
dCB0byBudW1iZXIgb2YgY29udGV4dCBsaW5lcworIyMKK3sKKyAgICB0ZXN0TmFtZSA9PiAiVW5p
ZmllZCBkaWZmOyBkZWxldGUgY29udGVudHMgb2YgZW50aXJlIGZpbGUiLAorICAgIGlucHV0VGV4
dCA9PiAkRVhBTVBMRV9DUFAsCisgICAgZGlmZlRvQXBwbHkgPT4gPDxFT0YsCitkaWZmIC0tZ2l0
IGEvZmliLmNwcCBiL2ZpYi5jcHAKKy0tLSBhL2ZpYi5jcHAKKysrKyBiL2ZpYi5jcHAKK0BAIC0x
LDM5ICswLDAgQEAKKy0jaW5jbHVkZSA8Y2Fzc2VydD4KKy0jaW5jbHVkZSA8Y21hdGg+CistI2lu
Y2x1ZGUgPGxpbWl0cz4KKy0jaW5jbHVkZSA8aW9zdHJlYW0+CistCistdW5zaWduZWQgZmliKHVu
c2lnbmVkKTsKKy0KKy11bnNpZ25lZCBmaWJQbHVzRml2ZSh1bnNpZ25lZCBuKQorLXsKKy0gICAg
cmV0dXJuIGZpYihuKSArIDU7CistfQorLQorLXVuc2lnbmVkIGZpYih1bnNpZ25lZCBuKQorLXsK
Ky0gICAgLy8gRGVyaXZlZCBmcm9tIEJpbmV0J3MgZm9ybXVsYSwgPGh0dHA6Ly9tYXRod29ybGQu
d29sZnJhbS5jb20vQmluZXRzRmlib25hY2NpTnVtYmVyRm9ybXVsYS5odG1sPi4KKy0gICAgYXNz
ZXJ0KG4gPD0gc3RkOjpmbG9vcihzdGQ6OmxvZyhzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVk
Pjo6bWF4KCkgKiBzdGQ6OnNxcnQoNSkpIC8gc3RkOjpsb2coKDEgKyBzdGQ6OnNxcnQoNSkpIC8g
MikpKTsKKy0gICAgaWYgKCFuKQorLSAgICAgICAgcmV0dXJuIDA7CistICAgIGlmIChuID09IDEp
CistICAgICAgICByZXR1cm4gMTsKKy0gICAgLS1uOworLSAgICB1bnNpZ25lZCBhID0gMDsKKy0g
ICAgdW5zaWduZWQgYiA9IDE7CistICAgIGRvIHsKKy0gICAgICAgIHVuc2lnbmVkIGsgPSBhICsg
YjsKKy0gICAgICAgIGEgPSBiOworLSAgICAgICAgYiA9IGs7CistICAgIH0gd2hpbGUgKC0tbik7
CistICAgIHJldHVybiBiOworLX0KKy0KKy1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciog
YXJndltdKQorLXsKKy0gICAgc3RkOjpjb3V0IDw8IGZpYigxKSA8PCBzdGQ6OmVuZGw7CistICAg
IHN0ZDo6Y291dCA8PCBmaWJQbHVzRml2ZSgxKSA8PCBzdGQ6OmVuZGw7CistICAgIHN0ZDo6Y291
dCA8PCBmaWIoNSkgPDwgc3RkOjplbmRsOworLSAgICBzdGQ6OmNvdXQgPDwgZmliUGx1c0ZpdmUo
NSkgPDwgc3RkOjplbmRsOworLSAgICByZXR1cm4gMDsKKy19CitFT0YKKyAgICBleHBlY3RlZCA9
PiA8PEVPRgorCisgICAgICAgIChmaWJQbHVzRml2ZSk6IERlbGV0ZWQuCisgICAgICAgIChmaWIp
OiBEZWxldGVkLgorICAgICAgICAobWFpbik6IERlbGV0ZWQuCitFT0YKK30sCispOworCitzdWIg
ZGlzY2FyZE91dHB1dCgmKQoreworICAgIG15ICgkZnVuY3Rpb25SZWYpID0gQF87CisgICAgb3Bl
bihteSAkc2F2ZWRTdGRvdXQsICI+JlNURE9VVCIpIG9yIGRpZSAiQ2Fubm90IGR1cCBTVERPVVQ6
ICQhIjsKKyAgICBvcGVuKG15ICRzYXZlZFN0ZGVyciwgIj4mU1RERVJSIikgb3IgZGllICJDYW5u
b3QgZHVwIFNUREVSUjogJCEiOworCisgICAgb3BlbihTVERPVVQsICI+IiwgRmlsZTo6U3BlYy0+
ZGV2bnVsbCgpKTsKKyAgICBvcGVuKFNUREVSUiwgIj4iLCBGaWxlOjpTcGVjLT5kZXZudWxsKCkp
OworICAgICYkZnVuY3Rpb25SZWYoKTsKKworICAgIG9wZW4oU1RET1VULCAiPiYiLCAkc2F2ZWRT
dGRvdXQpIG9yIGRpZSAiQ2Fubm90IHJlc3RvcmUgc3Rkb3V0OiAkISI7CisgICAgb3BlbihTVERF
UlIsICI+JiIsICRzYXZlZFN0ZGVycikgb3IgZGllICJDYW5ub3QgcmVzdG9yZSBzdGRlcnI6ICQh
IjsKK30KKworbXkgJHRlc3RDYXNlc0NvdW50ID0gQHRlc3RDYXNlSGFzaFJlZnM7CitwbGFuKHRl
c3RzID0+ICR0ZXN0Q2FzZXNDb3VudCk7CisKK215ICR0ZW1wb3JhcnlEaXJlY3RvcnkgPSBGaWxl
OjpUZW1wLT5uZXdkaXIoKTsKK215ICRmaWxlbmFtZSA9ICJmaWIuY3BwIjsKK215ICRvcmlnaW5h
bEZpbGUgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0ZW1wb3JhcnlEaXJlY3RvcnksICRmaWxlbmFt
ZSk7CitteSAkcGF0Y2hlZEZpbGUgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0ZW1wb3JhcnlEaXJl
Y3RvcnksICJwYXRjaGVkLSRmaWxlbmFtZSIpOworbXkgJGRpZmZGaWxlID0gRmlsZTo6U3BlYy0+
Y2F0ZmlsZSgkdGVtcG9yYXJ5RGlyZWN0b3J5LCAiYS5kaWZmIik7Citmb3JlYWNoIG15ICR0ZXN0
Q2FzZSAoQHRlc3RDYXNlSGFzaFJlZnMpIHsKKyAgICB3cml0ZV9maWxlKCRvcmlnaW5hbEZpbGUs
ICR0ZXN0Q2FzZS0+e2lucHV0VGV4dH0pOworICAgIHdyaXRlX2ZpbGUoJGRpZmZGaWxlLCAkdGVz
dENhc2UtPntkaWZmVG9BcHBseX0pOworICAgIG15ICRleGl0Q29kZSA9IGV4aXRTdGF0dXMoc3lz
dGVtKCJwYXRjaCIsICItcyIsICItZCIsICR0ZW1wb3JhcnlEaXJlY3RvcnksICItaSIsICRkaWZm
RmlsZSwgIi1vIiwgJHBhdGNoZWRGaWxlKSk7CisgICAgZGllICJGYWlsZWQgdG8gYXBwbHkgcGF0
Y2ggZm9yICR0ZXN0Q2FzZS0+e3Rlc3ROYW1lfTogJGV4aXRDb2RlIiBpZiAkZXhpdENvZGU7CisK
KyAgICBteSAlZGVsZWdhdGVIYXNoID0gKAorICAgICAgICBvcGVuRGlmZiA9PiBzdWIgKCkgewor
ICAgICAgICAgICAgbXkgJGZpbGVIYW5kbGU7CisgICAgICAgICAgICBvcGVuKCRmaWxlSGFuZGxl
LCAiPCIsIFwkdGVzdENhc2UtPntkaWZmVG9BcHBseX0pOworICAgICAgICAgICAgcmV0dXJuICRm
aWxlSGFuZGxlOworICAgICAgICB9LAorICAgICAgICBvcGVuRmlsZSA9PiBzdWIgKCkgeworICAg
ICAgICAgICAgcmV0dXJuIHVubGVzcyBvcGVuKFBBVENIRURfRklMRSwgIjwiLCAkcGF0Y2hlZEZp
bGUpOworICAgICAgICAgICAgcmV0dXJuIFwqUEFUQ0hFRF9GSUxFOworICAgICAgICB9LAorICAg
ICAgICBvcGVuT3JpZ2luYWxGaWxlID0+IHN1YiAoKSB7CisgICAgICAgICAgICBteSAkZmlsZUhh
bmRsZTsKKyAgICAgICAgICAgIG9wZW4oJGZpbGVIYW5kbGUsICI8IiwgXCR0ZXN0Q2FzZS0+e2lu
cHV0VGV4dH0pOworICAgICAgICAgICAgcmV0dXJuICRmaWxlSGFuZGxlOworICAgICAgICB9LAor
ICAgICAgICBub3JtYWxpemVQYXRoID0+IHN1YiAoKSB7CisgICAgICAgICAgICByZXR1cm4gJGZp
bGVuYW1lOworICAgICAgICB9LAorICAgICk7CisgICAgbXkgJWZ1bmN0aW9uTGlzdHM7CisgICAg
ZGlzY2FyZE91dHB1dChzdWIgeworICAgICAgICBQcmVwYXJlQ2hhbmdlTG9nOjphY3R1YWxseUdl
bmVyYXRlRnVuY3Rpb25MaXN0cyhbJGZpbGVuYW1lXSwgXCVmdW5jdGlvbkxpc3RzLCB1bmRlZiwg
dW5kZWYsIHVuZGVmLCBcJWRlbGVnYXRlSGFzaCk7CisgICAgfSk7CisgICAgY2hvbXAobXkgJGV4
cGVjdGVkID0gJHRlc3RDYXNlLT57ZXhwZWN0ZWR9KTsKKyAgICBpcygkZnVuY3Rpb25MaXN0c3sk
ZmlsZW5hbWV9LCAkZXhwZWN0ZWQsICR0ZXN0Q2FzZS0+e3Rlc3ROYW1lfSk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>