<?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>46058</bug_id>
          
          <creation_ts>2010-09-19 12:50:19 -0700</creation_ts>
          <short_desc>Add infrastructure towards detecting change log diffs that aren&apos;t at the top of the ChangeLog</short_desc>
          <delta_ts>2010-10-05 21:59:49 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46061</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>281301</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-09-19 12:50:19 -0700</bug_when>
    <thetext>Towards checking that a change log diff inserts an entry at the top of the ChangeLog file (and possibly have the caller print a warning if it does not), we need to modify VCSUtils::fixChangeLogPatch() so that it returns a reference to a hash structure instead of a string that represents a diff. This will allow us to return additional information to the caller, such as whether the the change log diff inserts an entry at the top of the ChangeLog file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281318</commentid>
    <comment_count>1</comment_count>
      <attachid>68036</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-09-19 14:21:50 -0700</bug_when>
    <thetext>Created attachment 68036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285319</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-26 22:28:26 -0700</bug_when>
    <thetext>This looks very useful.  Sadly, I don&apos;t speak Perl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288805</commentid>
    <comment_count>3</comment_count>
      <attachid>68036</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-10-03 20:23:17 -0700</bug_when>
    <thetext>Comment on attachment 68036
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=68036&amp;action=review

&gt; WebKitTools/Scripts/VCSUtils.pm:1575
&gt; +        my $changeLog = fixChangeLogPatch($patch);

Variable name should note it&apos;s a reference to a hash.  Maybe $changeLogHash.

&gt; WebKitTools/Scripts/svn-apply:319
&gt; +            my $changeLog = fixChangeLogPatch($patch);

Ditto.

&gt; WebKitTools/Scripts/svn-create-patch:236
&gt; +        my $changeLog = fixChangeLogPatch($patch);

Ditto.

&gt; WebKitTools/Scripts/svn-unapply:161
&gt; +            my $changeLog = fixChangeLogPatch($patch);

Ditto.

&gt; WebKitTools/Scripts/webkitperl/VCSUtils_unittest/fixChangeLogPatch.pl:4
&gt; +# Copyright (C) Research in Motion Limited 2010. All Rights Reserved.

Shouldn&apos;t the year of the copyright be after the &quot;(C)&quot;?

r=me with the variable name changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290048</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-05 19:54:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 68036 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68036&amp;action=review
&gt; 
&gt; &gt; WebKitTools/Scripts/VCSUtils.pm:1575
&gt; &gt; +        my $changeLog = fixChangeLogPatch($patch);
&gt; 
&gt; Variable name should note it&apos;s a reference to a hash.  Maybe $changeLogHash.
&gt; 

Will change before I land.

&gt; &gt; WebKitTools/Scripts/svn-apply:319
&gt; &gt; +            my $changeLog = fixChangeLogPatch($patch);
&gt; 
&gt; Ditto.
&gt; 

Will change before I land.

&gt; &gt; WebKitTools/Scripts/svn-create-patch:236
&gt; &gt; +        my $changeLog = fixChangeLogPatch($patch);
&gt; 
&gt; Ditto.
&gt; 

Will change before I land.

&gt; &gt; WebKitTools/Scripts/svn-unapply:161
&gt; &gt; +            my $changeLog = fixChangeLogPatch($patch);
&gt; 
&gt; Ditto.
&gt; 

Will change before I land.

&gt; &gt; WebKitTools/Scripts/webkitperl/VCSUtils_unittest/fixChangeLogPatch.pl:4
&gt; &gt; +# Copyright (C) Research in Motion Limited 2010. All Rights Reserved.
&gt; 
&gt; Shouldn&apos;t the year of the copyright be after the &quot;(C)&quot;?

The RIM copyright string uses this explicit order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290092</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-05 21:59:49 -0700</bug_when>
    <thetext>Committed r69177: &lt;http://trac.webkit.org/changeset/69177&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68036</attachid>
            <date>2010-09-19 14:21:50 -0700</date>
            <delta_ts>2010-10-03 20:23:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Bug46058.patch</filename>
            <type>text/plain</type>
            <size>15878</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY3ODE1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAtMDktMTkgIERhbmllbCBCYXRlcyAgPGRi
YXRlc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byB0b3dhcmRzIGRldGVjdGluZyBjaGFuZ2UgbG9n
IGRpZmZzIHRoYXQgYXJlbid0IGF0IHRoZSB0b3Agb2YgdGhlIENoYW5nZUxvZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwNTgKKworICAgICAgICBN
YWtlIFZDU1V0aWxzOjpmaXhDaGFuZ2VMb2dQYXRjaCgpIHJldHVybiBhIHJlZmVyZW5jZSB0byBh
IGhhc2gKKyAgICAgICAgc3RydWN0dXJlIHNvIGFzIHRvIHN1cHBvcnQgcmV0dXJuaW5nIGFkZGl0
aW9uYWwgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgYSBjaGFuZ2UgbG9nIGRpZmYuCisKKyAg
ICAgICAgQ3VycmVudGx5LCBWQ1NVdGlsczo6Zml4Q2hhbmdlTG9nUGF0Y2goKSByZXR1cm5zIGEg
c3RyaW5nIHRoYXQKKyAgICAgICAgcmVwcmVzZW50cyB0aGUgY2hhbmdlIGxvZyBkaWZmLiBUb3dh
cmRzIHN1cHBvcnRpbmcgdGhlIHJldHVybgorICAgICAgICBvZiBhZGRpdGlvbmFsIGluZm9ybWF0
aW9uLCBzdWNoIGFzIHdoZXRoZXIgdGhlIGNoYW5nZSBsb2cgZGlmZgorICAgICAgICBpbnNlcnRz
IGFuIGVudHJ5IGF0IHRoZSB0b3Agb2YgdGhlIENoYW5nZUxvZyBmaWxlLCB3ZSBuZWVkIHRvCisg
ICAgICAgIG1ha2UgVkNTVXRpbHM6OmZpeENoYW5nZUxvZ1BhdGNoKCkgcmV0dXJuIGEgcmVmZXJl
bmNlIHRvIGhhc2gKKyAgICAgICAgc3RydWN0dXJlLgorCisgICAgICAgICogU2NyaXB0cy9WQ1NV
dGlscy5wbToKKyAgICAgICAgICAtIE1vZGlmaWVkIGZpeENoYW5nZUxvZ1BhdGNoKCkgdG8gcmV0
dXJuIGEgcmVmZXJlbmNlIHRvIGEKKyAgICAgICAgICAgIGhhc2ggc3RydWN0dXJlLgorICAgICAg
ICAgIC0gQWRkZWQgZG9jdW1lbnRhdGlvbiB0byBmaXhDaGFuZ2VMb2dQYXRjaCgpLgorICAgICAg
ICAgIC0gTW9kaWZpZWQgY2FsbCBzaXRlIGluIG1lcmdlQ2hhbmdlTG9ncygpIGFzIG5lY2Vzc2Fy
eS4KKyAgICAgICAgKiBTY3JpcHRzL3N2bi1hcHBseToKKyAgICAgICAgICAtIE1vZGlmaWVkIGNh
bGwgc2l0ZSBpbiBwYXRjaCgpIGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgKiBTY3JpcHRzL3N2bi1j
cmVhdGUtcGF0Y2g6CisgICAgICAgICAgLSBNb2RpZmllZCBjYWxsIHNpdGUgaW4gZ2VuZXJhdGVE
aWZmKCkgYXMgbmVjZXNzYXJ5LgorICAgICAgICAqIFNjcmlwdHMvc3ZuLXVuYXBwbHk6CisgICAg
ICAgICAgLSBNb2RpZmllZCBjYWxsIHNpdGUgaW4gcGF0Y2goKSBhcyBuZWNlc3NhcnkuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2ZpeENoYW5nZUxvZ1Bh
dGNoLnBsOgorICAgICAgICAgIC0gTW9kaWZpZWQgdGhlIHVuaXQgdGVzdHMgYXMgbmVjZXNzYXJ5
LgorCiAyMDEwLTA5LTE5ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy9W
Q1NVdGlscy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBt
CShyZXZpc2lvbiA2Nzc4NSkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0JKHdv
cmtpbmcgY29weSkKQEAgLTEyODQsNiArMTI4NCwxNiBAQCBzdWIgc2V0Q2hhbmdlTG9nRGF0ZUFu
ZFJldmlld2VyKCQkJCkKICMgY29udGV4dC4KICMKICMgVGhpcyBzdWJyb3V0aW5lIGhhcyB1bml0
IHRlc3RzIGluIFZDU1V0aWxzX3VuaXR0ZXN0LnBsLgorIworIyBSZXR1cm5zICRjaGFuZ2VMb2dI
YXNoUmVmOgorIyAgICRjaGFuZ2VMb2dIYXNoUmVmOiBhIGhhc2ggcmVmZXJlbmNlIHJlcHJlc2Vu
dGluZyBhIGNoYW5nZSBsb2cgcGF0Y2guCisjICAgICBwYXRjaDogYSBDaGFuZ2VMb2cgcGF0Y2gg
ZXF1aXZhbGVudCB0byB0aGUgZ2l2ZW4gb25lLCBidXQgd2l0aCB0aGUKKyMgICAgICAgICAgICBu
ZXdlc3QgQ2hhbmdlTG9nIGVudHJ5IGluc2VydGVkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIGlm
IHBvc3NpYmxlLgorIyAgICAgaGFzT3ZlcmxhcHBpbmdMaW5lczogdGhlIHZhbHVlIDEgaWYgdGhl
IGNoYW5nZSBsb2cgZW50cnkgb3ZlcmxhcHMKKyMgICAgICAgICAgICAgICAgICAgICAgICAgIHNv
bWUgbGluZXMgb2YgYW5vdGhlciBjaGFuZ2UgbG9nIGVudHJ5LiBUaGlzIGNhbgorIyAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGFwcGVuIHdoZW4gZGVsaWJlcmF0ZWx5IGluc2VydGluZyBhIG5l
dyBDaGFuZ2VMb2cKKyMgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5IGVhcmxpZXIgaW4g
dGhlIGZpbGUgYWJvdmUgYW4gZW50cnkgd2l0aAorIyAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhlIHNhbWUgZGF0ZSBhbmQgYXV0aG9yLiAgICAgICAgICAgICAgICAgICAgIAogc3ViIGZpeENo
YW5nZUxvZ1BhdGNoKCQpCiB7CiAgICAgbXkgJHBhdGNoID0gc2hpZnQ7ICMgJHBhdGNoIHdpbGwg
b25seSBjb250YWluIHBhdGNoIGZyYWdtZW50cyBmb3IgQ2hhbmdlTG9nLgpAQCAtMTMwMSwxMCAr
MTMxMSwxMiBAQCBzdWIgZml4Q2hhbmdlTG9nUGF0Y2goJCkKICAgICAgICAgfQogICAgIH0KICAg
ICBteSAkY2h1bmtTdGFydEluZGV4ID0gKyskaTsKKyAgICBteSAlY2hhbmdlTG9nSGFzaFJlZjsK
IAogICAgICMgT3B0aW1pemF0aW9uOiBkbyBub3QgcHJvY2VzcyBpZiBuZXcgbGluZXMgYWxyZWFk
eSBiZWdpbiB0aGUgY2h1bmsuCiAgICAgaWYgKHN1YnN0cigkbGluZXNbJGldLCAwLCAxKSBlcSAi
KyIpIHsKLSAgICAgICAgcmV0dXJuICRwYXRjaDsKKyAgICAgICAgJGNoYW5nZUxvZ0hhc2hSZWZ7
cGF0Y2h9ID0gJHBhdGNoOworICAgICAgICByZXR1cm4gXCVjaGFuZ2VMb2dIYXNoUmVmOwogICAg
IH0KIAogICAgICMgU2tpcCB0byBmaXJzdCBsaW5lIG9mIG5ld2x5IGFkZGVkIENoYW5nZUxvZyBl
bnRyeS4KQEAgLTEzMjEsMTAgKzEzMzMsMTIgQEAgc3ViIGZpeENoYW5nZUxvZ1BhdGNoKCQpCiAg
ICAgICAgIH0gZWxzaWYgKCRmaXJzdENoYXIgZXEgIiAiIG9yICRmaXJzdENoYXIgZXEgIisiKSB7
CiAgICAgICAgICAgICBuZXh0OwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiAkcGF0Y2g7ICMg
RG8gbm90IGNoYW5nZSBpZiwgZm9yIGV4YW1wbGUsICItIiBvciAiQCIgZm91bmQuCisgICAgICAg
ICRjaGFuZ2VMb2dIYXNoUmVme3BhdGNofSA9ICRwYXRjaDsgIyBEbyBub3QgY2hhbmdlIGlmLCBm
b3IgZXhhbXBsZSwgIi0iIG9yICJAIiBmb3VuZC4KKyAgICAgICAgcmV0dXJuIFwlY2hhbmdlTG9n
SGFzaFJlZjsKICAgICB9CiAgICAgaWYgKCRpID49IEBsaW5lcykgewotICAgICAgICByZXR1cm4g
JHBhdGNoOyAjIERvIG5vdCBjaGFuZ2UgaWYgZGF0ZSBub3QgZm91bmQuCisgICAgICAgICRjaGFu
Z2VMb2dIYXNoUmVme3BhdGNofSA9ICRwYXRjaDsgIyBEbyBub3QgY2hhbmdlIGlmIGRhdGUgbm90
IGZvdW5kLgorICAgICAgICByZXR1cm4gXCVjaGFuZ2VMb2dIYXNoUmVmOwogICAgIH0KICAgICBt
eSAkZGF0ZVN0YXJ0SW5kZXggPSAkaTsKIApAQCAtMTM2Nyw3ICsxMzgxLDggQEAgc3ViIGZpeENo
YW5nZUxvZ1BhdGNoKCQpCiAgICAgICAgIG15ICR0ZXh0ID0gc3Vic3RyKCRsaW5lLCAxKTsKICAg
ICAgICAgbXkgJG5ld0xpbmUgPSBwb3AoQG92ZXJsYXBwaW5nTGluZXMpOwogICAgICAgICBpZiAo
JHRleHQgbmUgc3Vic3RyKCRuZXdMaW5lLCAxKSkgewotICAgICAgICAgICAgcmV0dXJuICRwYXRj
aDsgIyBVbmV4cGVjdGVkIGRpZmZlcmVuY2UuCisgICAgICAgICAgICAkY2hhbmdlTG9nSGFzaFJl
ZntwYXRjaH0gPSAkcGF0Y2g7ICMgVW5leHBlY3RlZCBkaWZmZXJlbmNlLgorICAgICAgICAgICAg
cmV0dXJuIFwlY2hhbmdlTG9nSGFzaFJlZjsKICAgICAgICAgfQogICAgICAgICAkbGluZXNbJGld
ID0gIiskdGV4dCI7CiAgICAgfQpAQCAtMTM3OSw3ICsxMzk0LDggQEAgc3ViIGZpeENoYW5nZUxv
Z1BhdGNoKCQpCiAgICAgICAgICMgRklYTUU6IEhhbmRsZSBlcnJvcnMgZGlmZmVyZW50bHkgZnJv
bSBDaGFuZ2VMb2cgZmlsZXMgdGhhdAogICAgICAgICAjIGFyZSBva2F5IGJ1dCBzaG91bGQgbm90
IGJlIGFsdGVyZWQuIFRoYXQgd2F5IHdlIGNhbiBmaW5kIG91dAogICAgICAgICAjIGlmIGltcHJv
dmVtZW50cyB0byB0aGUgc2NyaXB0IGV2ZXIgYmVjb21lIG5lY2Vzc2FyeS4KLSAgICAgICAgcmV0
dXJuICRwYXRjaDsgIyBFcnJvcjogdW5leHBlY3RlZCBwYXRjaCBzdHJpbmcgZm9ybWF0LgorICAg
ICAgICAkY2hhbmdlTG9nSGFzaFJlZntwYXRjaH0gPSAkcGF0Y2g7ICMgRXJyb3I6IHVuZXhwZWN0
ZWQgcGF0Y2ggc3RyaW5nIGZvcm1hdC4KKyAgICAgICAgcmV0dXJuIFwlY2hhbmdlTG9nSGFzaFJl
ZjsKICAgICB9CiAgICAgbXkgJHNraXBwZWRGaXJzdExpbmVDb3VudCA9ICQxIC0gMTsKICAgICBt
eSAkb2xkU291cmNlTGluZUNvdW50ID0gJDI7CkBAIC0xMzg4LDcgKzE0MDQsOSBAQCBzdWIgZml4
Q2hhbmdlTG9nUGF0Y2goJCkKICAgICBpZiAoQG92ZXJsYXBwaW5nTGluZXMgIT0gJHNraXBwZWRG
aXJzdExpbmVDb3VudCkgewogICAgICAgICAjIFRoaXMgY2FuIGhhcHBlbiwgZm9yIGV4YW1wbGUs
IHdoZW4gZGVsaWJlcmF0ZWx5IGluc2VydGluZwogICAgICAgICAjIGEgbmV3IENoYW5nZUxvZyBl
bnRyeSBlYXJsaWVyIGluIHRoZSBmaWxlLgotICAgICAgICByZXR1cm4gJHBhdGNoOworICAgICAg
ICAkY2hhbmdlTG9nSGFzaFJlZntoYXNPdmVybGFwcGluZ0xpbmVzfSA9IDE7CisgICAgICAgICRj
aGFuZ2VMb2dIYXNoUmVme3BhdGNofSA9ICRwYXRjaDsKKyAgICAgICAgcmV0dXJuIFwlY2hhbmdl
TG9nSGFzaFJlZjsKICAgICB9CiAgICAgIyBJZiBAb3ZlcmxhcHBpbmdMaW5lcyA+IDAsIHRoaXMg
aXMgd2hlcmUgd2UgbWFrZSB1c2Ugb2YgdGhlCiAgICAgIyBhc3N1bXB0aW9uIHRoYXQgdGhlIGJl
Z2lubmluZyBvZiB0aGUgc291cmNlIGZpbGUgd2FzIG5vdCBtb2RpZmllZC4KQEAgLTEzOTgsNyAr
MTQxNiw4IEBAIHN1YiBmaXhDaGFuZ2VMb2dQYXRjaCgkKQogICAgIG15ICR0YXJnZXRMaW5lQ291
bnQgPSAkb2xkVGFyZ2V0TGluZUNvdW50ICsgQG92ZXJsYXBwaW5nTGluZXMgLSAkZGVsZXRlZExp
bmVDb3VudDsKICAgICAkbGluZXNbJGNodW5rU3RhcnRJbmRleCAtIDFdID0gIkBAIC0xLCRzb3Vy
Y2VMaW5lQ291bnQgKzEsJHRhcmdldExpbmVDb3VudCBAQCI7CiAKLSAgICByZXR1cm4gam9pbigk
bGluZUVuZGluZywgQGxpbmVzKSAuICJcbiI7ICMgcGF0Y2goMSkgZXhwZWN0cyBhbiBleHRyYSB0
cmFpbGluZyBuZXdsaW5lLgorICAgICRjaGFuZ2VMb2dIYXNoUmVme3BhdGNofSA9IGpvaW4oJGxp
bmVFbmRpbmcsIEBsaW5lcykgLiAiXG4iOyAjIHBhdGNoKDEpIGV4cGVjdHMgYW4gZXh0cmEgdHJh
aWxpbmcgbmV3bGluZS4KKyAgICByZXR1cm4gXCVjaGFuZ2VMb2dIYXNoUmVmOwogfQogCiAjIFRo
aXMgaXMgYSBzdXBwb3J0aW5nIG1ldGhvZCBmb3IgcnVuUGF0Y2hDb21tYW5kLgpAQCAtMTU1MCw3
ICsxNTY5LDEyIEBAIHN1YiBtZXJnZUNoYW5nZUxvZ3MoJCQkKQogICAgIHVubGluaygiJHtmaWxl
TmV3ZXJ9LnJlaiIpOwogCiAgICAgb3BlbihQQVRDSCwgInwgcGF0Y2ggLS1mb3JjZSAtLWZ1eno9
MyAtLWJpbmFyeSAkZmlsZU5ld2VyID4gIiAuIEZpbGU6OlNwZWMtPmRldm51bGwoKSkgb3IgZGll
ICQhOwotICAgIHByaW50IFBBVENIICgkdHJhZGl0aW9uYWxSZWplY3QgPyAkcGF0Y2ggOiBmaXhD
aGFuZ2VMb2dQYXRjaCgkcGF0Y2gpKTsKKyAgICBpZiAoJHRyYWRpdGlvbmFsUmVqZWN0KSB7Cisg
ICAgICAgIHByaW50IFBBVENIICRwYXRjaDsKKyAgICB9IGVsc2UgeworICAgICAgICBteSAkY2hh
bmdlTG9nID0gZml4Q2hhbmdlTG9nUGF0Y2goJHBhdGNoKTsKKyAgICAgICAgcHJpbnQgUEFUQ0gg
JGNoYW5nZUxvZy0+e3BhdGNofTsKKyAgICB9CiAgICAgY2xvc2UoUEFUQ0gpOwogCiAgICAgbXkg
JHJlc3VsdCA9ICFleGl0U3RhdHVzKCQ/KTsKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvc3Zu
LWFwcGx5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvc3ZuLWFwcGx5CShyZXZp
c2lvbiA2Nzc4NSkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMvc3ZuLWFwcGx5CSh3b3JraW5nIGNv
cHkpCkBAIC0zMTYsNyArMzE2LDggQEAgc3ViIHBhdGNoKCQpCiAgICAgICAgICMgU3RhbmRhcmQg
cGF0Y2gsIHBhdGNoIHRvb2wgY2FuIGhhbmRsZSB0aGlzLgogICAgICAgICBpZiAoYmFzZW5hbWUo
JGZ1bGxQYXRoKSBlcSAiQ2hhbmdlTG9nIikgewogICAgICAgICAgICAgbXkgJGNoYW5nZUxvZ0Rv
dE9yaWdFeGlzdGVkID0gLWYgIiR7ZnVsbFBhdGh9Lm9yaWciOwotICAgICAgICAgICAgbXkgJG5l
d1BhdGNoID0gc2V0Q2hhbmdlTG9nRGF0ZUFuZFJldmlld2VyKGZpeENoYW5nZUxvZ1BhdGNoKCRw
YXRjaCksICRyZXZpZXdlciwgJGVwb2NoVGltZSk7CisgICAgICAgICAgICBteSAkY2hhbmdlTG9n
ID0gZml4Q2hhbmdlTG9nUGF0Y2goJHBhdGNoKTsKKyAgICAgICAgICAgIG15ICRuZXdQYXRjaCA9
IHNldENoYW5nZUxvZ0RhdGVBbmRSZXZpZXdlcigkY2hhbmdlTG9nLT57cGF0Y2h9LCAkcmV2aWV3
ZXIsICRlcG9jaFRpbWUpOwogICAgICAgICAgICAgYXBwbHlQYXRjaCgkbmV3UGF0Y2gsICRmdWxs
UGF0aCwgWyItLWZ1eno9MyJdKTsKICAgICAgICAgICAgIHVubGluaygiJHtmdWxsUGF0aH0ub3Jp
ZyIpIGlmICghICRjaGFuZ2VMb2dEb3RPcmlnRXhpc3RlZCk7CiAgICAgICAgIH0gZWxzZSB7Cklu
ZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3N2bi1jcmVhdGUtcGF0Y2gKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvU2NyaXB0cy9zdm4tY3JlYXRlLXBhdGNoCShyZXZpc2lvbiA2Nzc4NSkKKysr
IFdlYktpdFRvb2xzL1NjcmlwdHMvc3ZuLWNyZWF0ZS1wYXRjaAkod29ya2luZyBjb3B5KQpAQCAt
MjMyLDcgKzIzMiwxMCBAQCBzdWIgZ2VuZXJhdGVEaWZmKCQkKQogICAgICAgICAkcGF0Y2ggLj0g
JF87CiAgICAgfQogICAgIGNsb3NlIERJRkY7Ci0gICAgJHBhdGNoID0gZml4Q2hhbmdlTG9nUGF0
Y2goJHBhdGNoKSBpZiBiYXNlbmFtZSgkZmlsZSkgZXEgIkNoYW5nZUxvZyI7CisgICAgaWYgKGJh
c2VuYW1lKCRmaWxlKSBlcSAiQ2hhbmdlTG9nIikgeworICAgICAgICBteSAkY2hhbmdlTG9nID0g
Zml4Q2hhbmdlTG9nUGF0Y2goJHBhdGNoKTsKKyAgICAgICAgJHBhdGNoID0gJGNoYW5nZUxvZy0+
e3BhdGNofTsgICAKKyAgICB9CiAgICAgcHJpbnQgJHBhdGNoOwogICAgIGlmICgkZmlsZURhdGEt
Pntpc0JpbmFyeX0pIHsKICAgICAgICAgcHJpbnQgIlxuIiBpZiAoJHBhdGNoICYmICRwYXRjaCA9
fiBtL1xuXFMrJC9tKTsKSW5kZXg6IFdlYktpdFRvb2xzL1NjcmlwdHMvc3ZuLXVuYXBwbHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9zdm4tdW5hcHBseQkocmV2aXNpb24gNjc3
ODUpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3N2bi11bmFwcGx5CSh3b3JraW5nIGNvcHkpCkBA
IC0xNTgsNyArMTU4LDggQEAgc3ViIHBhdGNoKCQpCiAgICAgICAgICMgU3RhbmRhcmQgcGF0Y2gs
IHBhdGNoIHRvb2wgY2FuIGhhbmRsZSB0aGlzLgogICAgICAgICBpZiAoYmFzZW5hbWUoJGZ1bGxQ
YXRoKSBlcSAiQ2hhbmdlTG9nIikgewogICAgICAgICAgICAgbXkgJGNoYW5nZUxvZ0RvdE9yaWdF
eGlzdGVkID0gLWYgIiR7ZnVsbFBhdGh9Lm9yaWciOwotICAgICAgICAgICAgdW5hcHBseVBhdGNo
KHVuc2V0Q2hhbmdlTG9nRGF0ZSgkZnVsbFBhdGgsIGZpeENoYW5nZUxvZ1BhdGNoKCRwYXRjaCkp
LCAkZnVsbFBhdGgsIFsiLS1mdXp6PTMiXSk7CisgICAgICAgICAgICBteSAkY2hhbmdlTG9nID0g
Zml4Q2hhbmdlTG9nUGF0Y2goJHBhdGNoKTsKKyAgICAgICAgICAgIHVuYXBwbHlQYXRjaCh1bnNl
dENoYW5nZUxvZ0RhdGUoJGZ1bGxQYXRoLCAkY2hhbmdlTG9nLT57cGF0Y2h9KSwgJGZ1bGxQYXRo
LCBbIi0tZnV6ej0zIl0pOwogICAgICAgICAgICAgdW5saW5rKCIke2Z1bGxQYXRofS5vcmlnIikg
aWYgKCEgJGNoYW5nZUxvZ0RvdE9yaWdFeGlzdGVkKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHVuYXBwbHlQYXRjaCgkcGF0Y2gsICRmdWxsUGF0aCk7CkluZGV4OiBXZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZml4Q2hhbmdlTG9nUGF0Y2gu
cGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxz
X3VuaXR0ZXN0L2ZpeENoYW5nZUxvZ1BhdGNoLnBsCShyZXZpc2lvbiA2Nzc4NSkKKysrIFdlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9maXhDaGFuZ2VMb2dQ
YXRjaC5wbAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKICMhL3Vzci9iaW4vcGVybAog
IwogIyBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNocmlzLmplcmRv
bmVrQGdtYWlsLmNvbSkKKyMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBpbiBNb3Rpb24gTGltaXRl
ZCAyMDEwLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMzAsNyArMzEsMTAgQEAKIAogIyBVbml0IHRlc3RzIG9mIFZDU1V0aWxzOjpmaXhD
aGFuZ2VMb2dQYXRjaCgpLgogCi11c2UgVGVzdDo6U2ltcGxlIHRlc3RzID0+IDg7Cit1c2Ugc3Ry
aWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgVGVzdDo6TW9yZTsKIHVzZSBWQ1NVdGlsczsKIAog
IyBUaGUgc291cmNlIENoYW5nZUxvZyBmb3IgdGhlc2UgdGVzdHMgaXMgdGhlIGZvbGxvd2luZzoK
QEAgLTUzLDE0ICs1NywxMCBAQCB1c2UgVkNTVXRpbHM7CiAjICAgICAgICAgKiBGaWxlOgogIyAg
ICAgICAgICogRmlsZTI6CiAKLW15ICR0aXRsZTsKLW15ICRpbjsKLW15ICRvdXQ7Ci0KLSMgTmV3
IHRlc3QKLSR0aXRsZSA9ICJmaXhDaGFuZ2VMb2dQYXRjaDogW25vIGNoYW5nZV0gRmlyc3QgbGlu
ZSBpcyBuZXcgbGluZS4iOwotCi0kaW4gPSA8PCdFTkQnOworbXkgQHRlc3RDYXNlSGFzaFJlZnMg
PSAoCit7ICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAiZml4Q2hhbmdlTG9nUGF0Y2g6IFtu
byBjaGFuZ2VdIEZpcnN0IGxpbmUgaXMgbmV3IGxpbmUuIiwKKyAgICBpbnB1dFRleHQgPT4gPDwn
RU5EJywKIC0tLSBDaGFuZ2VMb2cKICsrKyBDaGFuZ2VMb2cKIEBAIC0xLDMgKzEsMTEgQEAKQEAg
LTc2LDEzICs3NiwyOCBAQCAkaW4gPSA8PCdFTkQnOwogIAogICAgICAgICAgUmV2aWV3ZWQgYnkg
UmF5LgogRU5ECi0KLW9rKGZpeENoYW5nZUxvZ1BhdGNoKCRpbikgZXEgJGluLCAkdGl0bGUpOwot
Ci0jIE5ldyB0ZXN0Ci0kdGl0bGUgPSAiZml4Q2hhbmdlTG9nUGF0Y2g6IFtubyBjaGFuZ2VdIE5v
IGRhdGUgc3RyaW5nLiI7Ci0KLSRpbiA9IDw8J0VORCc7CisgICAgZXhwZWN0ZWRSZXR1cm4gPT4g
eworICAgIHBhdGNoID0+IDw8J0VORCcsCistLS0gQ2hhbmdlTG9nCisrKysgQ2hhbmdlTG9nCitA
QCAtMSwzICsxLDExIEBACisrMjAwOS0xMi0yMiAgQm9iICA8Ym9iQGVtYWlsLmFkZHJlc3M+Cisr
CisrICAgICAgICBSZXZpZXdlZCBieSBSYXkuCisrCisrICAgICAgICBDaGFuZ2VkIHNvbWUgbW9y
ZSBjb2RlIG9uIDIwMDktMTItMjIuCisrCisrICAgICAgICAqIEZpbGU6CisrCisgMjAwOS0xMi0y
MiAgQWxpY2UgIDxhbGljZUBlbWFpbC5hZGRyZXNzPgorIAorICAgICAgICAgUmV2aWV3ZWQgYnkg
UmF5LgorRU5ECisgICAgfQorfSwKK3sgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJmaXhD
aGFuZ2VMb2dQYXRjaDogW25vIGNoYW5nZV0gTm8gZGF0ZSBzdHJpbmcuIiwKKyAgICBpbnB1dFRl
eHQgPT4gPDwnRU5EJywKIC0tLSBDaGFuZ2VMb2cKICsrKyBDaGFuZ2VMb2cKIEBAIC02LDYgKzYs
NyBAQApAQCAtOTQsMTMgKzEwOSwyNCBAQCAkaW4gPSA8PCdFTkQnOwogIDIwMDktMTItMjEgIEFs
aWNlICA8YWxpY2VAZW1haWwuYWRkcmVzcz4KICAKIEVORAotCi1vayhmaXhDaGFuZ2VMb2dQYXRj
aCgkaW4pIGVxICRpbiwgJHRpdGxlKTsKLQotIyBOZXcgdGVzdAotJHRpdGxlID0gImZpeENoYW5n
ZUxvZ1BhdGNoOiBbbm8gY2hhbmdlXSBOZXcgZW50cnkgaW5zZXJ0ZWQgaW4gbWlkZGxlLiI7Ci0K
LSRpbiA9IDw8J0VORCc7CisgICAgZXhwZWN0ZWRSZXR1cm4gPT4geworICAgIHBhdGNoID0+IDw8
J0VORCcsCistLS0gQ2hhbmdlTG9nCisrKysgQ2hhbmdlTG9nCitAQCAtNiw2ICs2LDcgQEAKKyAK
KyAgICAgICAgICogRmlsZToKKyAgICAgICAgICogRmlsZTI6CisrICAgICAgICAqIEZpbGUzOgor
IAorIDIwMDktMTItMjEgIEFsaWNlICA8YWxpY2VAZW1haWwuYWRkcmVzcz4KKyAKK0VORAorICAg
IH0KK30sCit7ICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAiZml4Q2hhbmdlTG9nUGF0Y2g6
IFtubyBjaGFuZ2VdIE5ldyBlbnRyeSBpbnNlcnRlZCBpbiBtaWRkbGUuIiwKKyAgICBpbnB1dFRl
eHQgPT4gPDwnRU5EJywKIC0tLSBDaGFuZ2VMb2cKICsrKyBDaGFuZ2VMb2cKIEBAIC0xMSw2ICsx
MSwxNCBAQApAQCAtMTE5LDEzICsxNDUsMzIgQEAgJGluID0gPDwnRU5EJzsKICAKICAgICAgICAg
ICogRmlsZToKIEVORAotCi1vayhmaXhDaGFuZ2VMb2dQYXRjaCgkaW4pIGVxICRpbiwgJHRpdGxl
KTsKLQotIyBOZXcgdGVzdAotJHRpdGxlID0gImZpeENoYW5nZUxvZ1BhdGNoOiBbbm8gY2hhbmdl
XSBOZXcgZW50cnkgaW5zZXJ0ZWQgZWFybGllciBpbiB0aGUgZmlsZSwgYnV0IGFmdGVyIGFuIGVu
dHJ5IHdpdGggdGhlIHNhbWUgYXV0aG9yIGFuZCBkYXRlLiI7Ci0KLSRpbiA9IDw8J0VORCc7Cisg
ICAgZXhwZWN0ZWRSZXR1cm4gPT4geworICAgIGhhc092ZXJsYXBwaW5nTGluZXMgPT4gMSwKKyAg
ICBwYXRjaCA9PiA8PCdFTkQnLAorLS0tIENoYW5nZUxvZworKysrIENoYW5nZUxvZworQEAgLTEx
LDYgKzExLDE0IEBACisgCisgICAgICAgICBSZXZpZXdlZCBieSBSYXkuCisgCisrICAgICAgICBD
aGFuZ2VkIHNvbWUgbW9yZSBjb2RlIG9uIDIwMDktMTItMjEuCisrCisrICAgICAgICAqIEZpbGU6
CisrCisrMjAwOS0xMi0yMSAgQWxpY2UgIDxhbGljZUBlbWFpbC5hZGRyZXNzPgorKworKyAgICAg
ICAgUmV2aWV3ZWQgYnkgUmF5LgorKworICAgICAgICAgQ2hhbmdlZCBzb21lIGNvZGUgb24gMjAw
OS0xMi0yMS4KKyAKKyAgICAgICAgICogRmlsZToKK0VORAorICAgIH0KK30sCit7ICMgTmV3IHRl
c3QKKyAgICBkaWZmTmFtZSA9PiAiZml4Q2hhbmdlTG9nUGF0Y2g6IFtubyBjaGFuZ2VdIE5ldyBl
bnRyeSBpbnNlcnRlZCBlYXJsaWVyIGluIHRoZSBmaWxlLCBidXQgYWZ0ZXIgYW4gZW50cnkgd2l0
aCB0aGUgc2FtZSBhdXRob3IgYW5kIGRhdGUuIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywK
IC0tLSBDaGFuZ2VMb2cKICsrKyBDaGFuZ2VMb2cKIEBAIC03MCw2ICs3MCwxNCBAQApAQCAtMTQ0
LDEzICsxODksMzIgQEAgJGluID0gPDwnRU5EJzsKICAKICAgICAgICAgIENoYW5nZWQgc29tZSBj
b2RlIG9uIDIwMDktMTItMjIuCiBFTkQKLQotb2soZml4Q2hhbmdlTG9nUGF0Y2goJGluKSBlcSAk
aW4sICR0aXRsZSk7Ci0KLSMgTmV3IHRlc3QKLSR0aXRsZSA9ICJmaXhDaGFuZ2VMb2dQYXRjaDog
TGVhZGluZyBjb250ZXh0IGluY2x1ZGVzIGZpcnN0IGxpbmUuIjsKLQotJGluID0gPDwnRU5EJzsK
KyAgICBleHBlY3RlZFJldHVybiA9PiB7CisgICAgaGFzT3ZlcmxhcHBpbmdMaW5lcyA9PiAxLAor
ICAgIHBhdGNoID0+IDw8J0VORCcsCistLS0gQ2hhbmdlTG9nCisrKysgQ2hhbmdlTG9nCitAQCAt
NzAsNiArNzAsMTQgQEAKKyAKKyAyMDA5LTEyLTIyICBBbGljZSAgPGFsaWNlQGVtYWlsLmFkZHJl
c3M+CisgCisrICAgICAgICBSZXZpZXdlZCBieSBTdWUuCisrCisrICAgICAgICBDaGFuZ2VkIHNv
bWUgbW9yZSBjb2RlIG9uIDIwMDktMTItMjIuCisrCisrICAgICAgICAqIEZpbGU6CisrCisrMjAw
OS0xMi0yMiAgQWxpY2UgIDxhbGljZUBlbWFpbC5hZGRyZXNzPgorKworICAgICAgICAgUmV2aWV3
ZWQgYnkgUmF5LgorIAorICAgICAgICAgQ2hhbmdlZCBzb21lIGNvZGUgb24gMjAwOS0xMi0yMi4K
K0VORAorICAgIH0KK30sCit7ICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAiZml4Q2hhbmdl
TG9nUGF0Y2g6IExlYWRpbmcgY29udGV4dCBpbmNsdWRlcyBmaXJzdCBsaW5lLiIsCisgICAgaW5w
dXRUZXh0ID0+IDw8J0VORCcsCiAtLS0gQ2hhbmdlTG9nCiArKysgQ2hhbmdlTG9nCiBAQCAtMSw1
ICsxLDEzIEBACkBAIC0xNjgsOCArMjMyLDggQEAgJGluID0gPDwnRU5EJzsKICAKICAgICAgICAg
IENoYW5nZWQgc29tZSBjb2RlIG9uIDIwMDktMTItMjIuCiBFTkQKLQotJG91dCA9IDw8J0VORCc7
CisgICAgZXhwZWN0ZWRSZXR1cm4gPT4geworICAgIHBhdGNoID0+IDw8J0VORCcsCiAtLS0gQ2hh
bmdlTG9nCiArKysgQ2hhbmdlTG9nCiBAQCAtMSwzICsxLDExIEBACkBAIC0xODUsMTMgKzI0OSwx
MSBAQCAkb3V0ID0gPDwnRU5EJzsKICAKICAgICAgICAgIFJldmlld2VkIGJ5IFJheS4KIEVORAot
Ci1vayhmaXhDaGFuZ2VMb2dQYXRjaCgkaW4pIGVxICRvdXQsICR0aXRsZSk7Ci0KLSMgTmV3IHRl
c3QKLSR0aXRsZSA9ICJmaXhDaGFuZ2VMb2dQYXRjaDogTGVhZGluZyBjb250ZXh0IGRvZXMgbm90
IGluY2x1ZGUgZmlyc3QgbGluZS4iOwotCi0kaW4gPSA8PCdFTkQnOworICAgIH0KK30sCit7ICMg
TmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAiZml4Q2hhbmdlTG9nUGF0Y2g6IExlYWRpbmcgY29u
dGV4dCBkb2VzIG5vdCBpbmNsdWRlIGZpcnN0IGxpbmUuIiwKKyAgICBpbnB1dFRleHQgPT4gPDwn
RU5EJywKIEBAIC0yLDYgKzIsMTQgQEAKICAKICAgICAgICAgIFJldmlld2VkIGJ5IFJheS4KQEAg
LTIwOCw4ICsyNzAsOCBAQCAkaW4gPSA8PCdFTkQnOwogIAogICAgICAgICAgKiBGaWxlOgogRU5E
Ci0KLSRvdXQgPSA8PCdFTkQnOworICAgIGV4cGVjdGVkUmV0dXJuID0+IHsKKyAgICBwYXRjaCA9
PiA8PCdFTkQnLAogQEAgLTEsMyArMSwxMSBAQAogKzIwMDktMTItMjIgIEFsaWNlICA8YWxpY2VA
ZW1haWwuYWRkcmVzcz4KICsKQEAgLTIyMywxOCArMjg1LDE3IEBAICRvdXQgPSA8PCdFTkQnOwog
IAogICAgICAgICAgUmV2aWV3ZWQgYnkgUmF5LgogRU5ECi0KLW9rKGZpeENoYW5nZUxvZ1BhdGNo
KCRpbikgZXEgJG91dCwgJHRpdGxlKTsKLQotIyBOZXcgdGVzdAotJHRpdGxlID0gImZpeENoYW5n
ZUxvZ1BhdGNoOiBOb24tY29uc2VjdXRpdmUgbGluZSBhZGRpdGlvbnMuIjsKKyAgICB9Cit9LAor
eyAjIE5ldyB0ZXN0CisgICAgZGlmZk5hbWUgPT4gImZpeENoYW5nZUxvZ1BhdGNoOiBOb24tY29u
c2VjdXRpdmUgbGluZSBhZGRpdGlvbnMuIiwKIAogIyBUaGlzIGNhbiBvY2N1ciwgZm9yIGV4YW1w
bGUsIGlmIHRoZSBuZXcgQ2hhbmdlTG9nIGVudHJ5IGluY2x1ZGVzCiAjIHRyYWlsaW5nIHdoaXRl
IHNwYWNlIGluIHRoZSBmaXJzdCBibGFuayBsaW5lIGJ1dCBub3QgdGhlIHNlY29uZC4KICMgQSBk
aWZmIGNvbW1hbmQgY2FuIHRoZW4gbWF0Y2ggdGhlIHNlY29uZCBibGFuayBsaW5lIG9mIHRoZSBu
ZXcKICMgQ2hhbmdlTG9nIGVudHJ5IHdpdGggdGhlIGZpcnN0IGJsYW5rIGxpbmUgb2YgdGhlIG9s
ZC4KICMgVGhlIHN2biBkaWZmIGNvbW1hbmQgd2l0aCB0aGUgZGVmYXVsdCAtLWRpZmYtY21kIGhh
cyBkb25lIHRoaXMuCi0kaW4gPSA8PCdFTkQnOworICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAog
QEAgLTEsNSArMSwxMSBAQAogIDIwMDktMTItMjIgIEFsaWNlICA8YWxpY2VAZW1haWwuYWRkcmVz
cz4KICsgPHByZXRlbmQtd2hpdGVzcGFjZT4KQEAgLTI0OCw4ICszMDksOCBAQCAkaW4gPSA8PCdF
TkQnOwogIAogICAgICAgICAgQ2hhbmdlZCBzb21lIGNvZGUgb24gMjAwOS0xMi0yMi4KIEVORAot
Ci0kb3V0ID0gPDwnRU5EJzsKKyAgICBleHBlY3RlZFJldHVybiA9PiB7CisgICAgcGF0Y2ggPT4g
PDwnRU5EJywKIEBAIC0xLDMgKzEsOSBAQAogKzIwMDktMTItMjIgIEFsaWNlICA8YWxpY2VAZW1h
aWwuYWRkcmVzcz4KICsgPHByZXRlbmQtd2hpdGVzcGFjZT4KQEAgLTI2MSwxMyArMzIyLDExIEBA
ICRvdXQgPSA8PCdFTkQnOwogIAogICAgICAgICAgUmV2aWV3ZWQgYnkgUmF5LgogRU5ECi0KLW9r
KGZpeENoYW5nZUxvZ1BhdGNoKCRpbikgZXEgJG91dCwgJHRpdGxlKTsKLQotIyBOZXcgdGVzdAot
JHRpdGxlID0gImZpeENoYW5nZUxvZ1BhdGNoOiBBZGRpdGlvbmFsIGVkaXRzIGFmdGVyIG5ldyBl
bnRyeS4iOwotCi0kaW4gPSA8PCdFTkQnOworICAgIH0KK30sCit7ICMgTmV3IHRlc3QKKyAgICBk
aWZmTmFtZSA9PiAiZml4Q2hhbmdlTG9nUGF0Y2g6IEFkZGl0aW9uYWwgZWRpdHMgYWZ0ZXIgbmV3
IGVudHJ5LiIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCiBAQCAtMiwxMCArMiwxNyBAQAog
IAogICAgICAgICAgUmV2aWV3ZWQgYnkgUmF5LgpAQCAtMjg4LDggKzM0Nyw4IEBAICRpbiA9IDw8
J0VORCc7CiAgMjAwOS0xMi0yMSAgQWxpY2UgIDxhbGljZUBlbWFpbC5hZGRyZXNzPgogIAogRU5E
Ci0KLSRvdXQgPSA8PCdFTkQnOworICAgIGV4cGVjdGVkUmV0dXJuID0+IHsKKyAgICBwYXRjaCA9
PiA8PCdFTkQnLAogQEAgLTEsMTEgKzEsMTggQEAKICsyMDA5LTEyLTIyICBBbGljZSAgPGFsaWNl
QGVtYWlsLmFkZHJlc3M+CiArCkBAIC0zMTEsNSArMzcwLDE4IEBAICRvdXQgPSA8PCdFTkQnOwog
IDIwMDktMTItMjEgIEFsaWNlICA8YWxpY2VAZW1haWwuYWRkcmVzcz4KICAKIEVORAorICAgIH0K
K30sCispOworCitteSAkdGVzdENhc2VzQ291bnQgPSBAdGVzdENhc2VIYXNoUmVmczsKK3BsYW4o
dGVzdHMgPT4gJHRlc3RDYXNlc0NvdW50KTsgIyBUb3RhbCBudW1iZXIgb2YgYXNzZXJ0aW9ucy4K
KworZm9yZWFjaCBteSAkdGVzdENhc2UgKEB0ZXN0Q2FzZUhhc2hSZWZzKSB7CisgICAgbXkgJHRl
c3ROYW1lU3RhcnQgPSAiZml4Q2hhbmdlTG9nUGF0Y2goKTogJHRlc3RDYXNlLT57ZGlmZk5hbWV9
OiBjb21wYXJpbmciOworCisgICAgbXkgJGdvdCA9IFZDU1V0aWxzOjpmaXhDaGFuZ2VMb2dQYXRj
aCgkdGVzdENhc2UtPntpbnB1dFRleHR9KTsKKyAgICBteSAkZXhwZWN0ZWRSZXR1cm4gPSAkdGVz
dENhc2UtPntleHBlY3RlZFJldHVybn07CiAKLW9rKGZpeENoYW5nZUxvZ1BhdGNoKCRpbikgZXEg
JG91dCwgJHRpdGxlKTsKKyAgICBpc19kZWVwbHkoJGdvdCwgJGV4cGVjdGVkUmV0dXJuLCAiJHRl
c3ROYW1lU3RhcnQgcmV0dXJuIHZhbHVlLiIpOworfQo=
</data>
<flag name="review"
          id="57480"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="59305"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>