<?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>33475</bug_id>
          
          <creation_ts>2010-01-11 10:36:04 -0800</creation_ts>
          <short_desc>Create a unit-tested subroutine to parse a patch created by svn-create-patch</short_desc>
          <delta_ts>2010-01-22 13:37:30 -0800</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179417</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-11 10:36:04 -0800</bug_when>
    <thetext>This subroutine will be able to replace the main while loop at the top of svn-apply and svn-unapply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181525</commentid>
    <comment_count>1</comment_count>
      <attachid>46744</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-16 10:44:47 -0800</bug_when>
    <thetext>Created attachment 46744
Proposed patch

Note that there is about 50 lines of near cut-and-paste between the two helper subroutines at the bottom of the two unit test files parseDiffHeader.pl and parseDiff.pl.  While it would be possible to share some of this code, I view it more as a (temporary) coincidence that they can be so similar.  If the signature, return value, or test logic for either parseDiff() or parseDiffHeader() were to change slightly, then for readability reasons it would probably not be worthwhile to share the two helper functions.  I am open to breaking some of that into a separate file though if you feel it&apos;s important.  Thanks in advance for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181526</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-16 10:47:35 -0800</bug_when>
    <thetext>Attachment 46744 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Last 3072 characters of output:
test/parseDiff.pl:91:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:105:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:106:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:126:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:127:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:135:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:136:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:153:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:154:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:159:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:165:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:166:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:183:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:184:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:197:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:198:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:250:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:261:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl:51:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl:52:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl:57:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl:58:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl:68:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl:69:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl:81:  Line contains tab character.  [whitespace/tab] [5]
WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl:82:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 31</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181527</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-16 10:51:39 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 46744 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
&gt; Last 3072 characters of output:
&gt; test/parseDiff.pl:91:  Line contains tab character.  [whitespace/tab] [5]
&gt; WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:105:  Line
&gt; contains tab character.  [whitespace/tab] [5]
&gt; WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:106:  Line
&gt; ...

Whoa, there!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182464</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-19 14:34:44 -0800</bug_when>
    <thetext>Does Perl require tabs?  Why would this file have them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182580</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-19 19:26:14 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Does Perl require tabs?  Why would this file have them?

Tabs are present because the file has unit tests containing svn-create-patch output as input, and svn-create-patch creates output with tabs:

&gt; print &quot;--- ${file}\t(revision ${sourceRevision})\t(from ${sourceFile}:${sourceRevision})\n&quot;;
&gt; print &quot;+++ ${file}\t(working copy)\n&quot;;

(from svn-create-patch&apos;s manufacturePatchForAdditionWithHistory())

The tabs are in heredoc strings and so are covered by this report:

https://bugs.webkit.org/show_bug.cgi?id=33737

Strictly speaking, we could remove the tabs from the tests and not test the exact ouput of svn-create-patch (or at least limit the number of test cases with tabs to one).

And if David doesn&apos;t see any reason not to, I could go ahead and change svn-create-patch so as not to output tabs at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183211</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-21 09:03:32 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Strictly speaking, we could remove the tabs from the tests and not test the
&gt; exact ouput of svn-create-patch (or at least limit the number of test cases
&gt; with tabs to one).
&gt; 
&gt; And if David doesn&apos;t see any reason not to, I could go ahead and change
&gt; svn-create-patch so as not to output tabs at all.

I think we should keep the tabs where they are.  There&apos;s no need to change the format, and this issue will only come up as long as Bug 33737 isn&apos;t fixed or any time the unit test file is updated (which probably won&apos;t be that often after it&apos;s written).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183222</commentid>
    <comment_count>7</comment_count>
      <attachid>46744</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-21 09:32:29 -0800</bug_when>
    <thetext>Comment on attachment 46744
Proposed patch

&gt; diff --git a/WebKitTools/Scripts/VCSUtils.pm b/WebKitTools/Scripts/VCSUtils.pm
&gt; +# Returns ($diffHashRef, $lastReadLine):
&gt; +#   $diffHashRef:
&gt; +#     copiedFromPath: if a file copy, the path from which the file was
&gt; +#                     copied. Otherwise, undefined.
&gt; +#     indexPath: the path in the &quot;Index:&quot; line.
&gt; +#     sourceRevision: the revision number of the source. This is the same
&gt; +#                     as the revision number the file was copied from, in
&gt; +#                     the case of a file copy.
&gt; +#     svnConvertedText: the diff converted to SVN format.
&gt; +#   $line: the line last read from $fileHandle

&quot;$line&quot; should be &quot;$lastReadLine&quot; here.

&gt; diff --git a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl
&gt; +# Redistribution and use in source and binary forms, with or without
&gt; +# modification, are permitted provided that the following conditions are
&gt; +# met:
&gt; +#
&gt; +#     * Redistributions of source code must retain the above copyright
&gt; +# notice, this list of conditions and the following disclaimer.
&gt; +#     * Redistributions in binary form must reproduce the above
&gt; +# copyright notice, this list of conditions and the following disclaimer
&gt; +# in the documentation and/or other materials provided with the
&gt; +# distribution.
&gt; +#     * Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of
&gt; +# its contributors may be used to endorse or promote products derived
&gt; +# from this software without specific prior written permission.
&gt; +#
&gt; +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; +# &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This is the &quot;old&quot; BSD license.  I probably didn&apos;t catch this before, but you should use the text from WebCore/LICENSE-APPLE instead if you have no objections.

&gt; +use strict;
&gt; +use warnings;
&gt; +
&gt; +use Test::More;
&gt; +use VCSUtils;

This doesn&apos;t require FindBin?  I guess it gets its include path from the script that includes it.

&gt; diff --git a/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl b/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parsePatch.pl
&gt; +# Redistribution and use in source and binary forms, with or without
&gt; +# modification, are permitted provided that the following conditions are
&gt; +# met:
&gt; +#
&gt; +#     * Redistributions of source code must retain the above copyright
&gt; +# notice, this list of conditions and the following disclaimer.
&gt; +#     * Redistributions in binary form must reproduce the above
&gt; +# copyright notice, this list of conditions and the following disclaimer
&gt; +# in the documentation and/or other materials provided with the
&gt; +# distribution.
&gt; +#     * Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of
&gt; +# its contributors may be used to endorse or promote products derived
&gt; +# from this software without specific prior written permission.
&gt; +#
&gt; +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; +# &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Ditto for the license.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183277</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-21 12:21:25 -0800</bug_when>
    <thetext>(In reply to comment #7)

Thanks for the review, David!

&gt; This is the &quot;old&quot; BSD license.  I probably didn&apos;t catch this before, but you
&gt; should use the text from WebCore/LICENSE-APPLE instead if you have no
&gt; objections.

Is this the canonical license text for new files?  Maybe I can add a pointer to this in the web site documentation, so other people can know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183294</commentid>
    <comment_count>9</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-01-21 13:05:54 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; This is the &quot;old&quot; BSD license.  I probably didn&apos;t catch this before, but you
&gt; &gt; should use the text from WebCore/LICENSE-APPLE instead if you have no
&gt; &gt; objections.
&gt; 
&gt; Is this the canonical license text for new files?  Maybe I can add a pointer to
&gt; this in the web site documentation, so other people can know.

Yes, I believe so.  Maciej will correct me if I&apos;m wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183299</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-21 13:27:22 -0800</bug_when>
    <thetext>I&apos;m going to manually commit this (after making David&apos;s suggested changes locally) since I need to add the allow-tabs property to a couple files.

This will be my first commit, so I have a couple questions.

I&apos;m planning to do this:

(1) Use svn-apply to apply the Git patch to an SVN checkout on my local machine.
(2) Set the allow-tabs property on the appropriate files.
(3) Run &quot;svn commit&quot; with no args and my SVN_EDITOR environment variable set to commit-log-editor so the commit message will get properly populated.

Is there any easier way than what I&apos;ve outlined above?  Also, is svn commit smart enough to put the ChangeLog entry at the top, or do I need to svn update immediately before committing (or is there another way to ensure this)?  Thanks -- any help is appreciated!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183303</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 13:51:03 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; This will be my first commit, so I have a couple questions.

Please see http://trac.webkit.org/wiki/CommitterTips and update it if necessary.

&gt; (1) Use svn-apply to apply the Git patch to an SVN checkout on my local
&gt; machine.

Personally I would use:
webkit-patch apply-from-bug 33475
as that will find the patch, and set the reviewer for you.  It uses svn-apply under the covers.  (For help on this and other commands see webkit-patch help or webkit-patch help --all-commands.)

&gt; (2) Set the allow-tabs property on the appropriate files.

Yes.  You have to do that manually.  At least until someone fixes svn-apply (nudge, nudge). :)
https://bugs.webkit.org/show_bug.cgi?id=27204

&gt; (3) Run &quot;svn commit&quot; with no args and my SVN_EDITOR environment variable set to
&gt; commit-log-editor so the commit message will get properly populated.

You could do that.  I find:
webkit-patch land --no-build
to be easier.

The only trouble you might run into is that if SVN has never asked for your credentials, that command will hang.  See https://bugs.webkit.org/show_bug.cgi?id=31500

&gt; Is there any easier way than what I&apos;ve outlined above?  Also, is svn commit
&gt; smart enough to put the ChangeLog entry at the top, or do I need to svn update
&gt; immediately before committing (or is there another way to ensure this)?

Unlikely.  resolve-ChangeLogs -f is used for this.  In general, assume all tools do the wrong things with ChangeLogs.  You&apos;ll be right 99% of the time. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183305</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 13:53:05 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; Also, is svn commit
&gt; &gt; smart enough to put the ChangeLog entry at the top, or do I need to svn update
&gt; &gt; immediately before committing (or is there another way to ensure this)?
&gt; 
&gt; Unlikely.  resolve-ChangeLogs -f is used for this.  In general, assume all
&gt; tools do the wrong things with ChangeLogs.  You&apos;ll be right 99% of the time. :)

update-webkit is smart enough to run resolve-ChangeLogs when necessary (at least for SVN).  Eventually we&apos;d like to make it smart enough for Git users too. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183443</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-21 18:39:54 -0800</bug_when>
    <thetext>Manually committed r53667: http://trac.webkit.org/changeset/53667

Thanks for the advice, Eric!  I will be updating the wiki committer tips with info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183473</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-21 21:23:31 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; This will be my first commit, so I have a couple questions.
&gt; 
&gt; Please see http://trac.webkit.org/wiki/CommitterTips and update it if
&gt; necessary.

FYI, I wrote a first draft for the section of the committer tips page called &quot;Walking you through your first commit&quot;:

http://trac.webkit.org/wiki/CommitterTips

Feel free to update if anything is incorrect or misleading.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183674</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-22 09:29:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; This is the &quot;old&quot; BSD license.  I probably didn&apos;t catch this before, but you
&gt; &gt; &gt; should use the text from WebCore/LICENSE-APPLE instead if you have no
&gt; &gt; &gt; objections.
&gt; &gt; 
&gt; &gt; Is this the canonical license text for new files?  Maybe I can add a pointer to
&gt; &gt; this in the web site documentation, so other people can know.
&gt; 
&gt; Yes, I believe so.  Maciej will correct me if I&apos;m wrong.

FYI, it looks like this license file exists in several places (which you probably knew):

http://trac.webkit.org/changeset/50154

So there is no one &quot;master copy&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183776</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-22 13:37:30 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; This is the &quot;old&quot; BSD license.  I probably didn&apos;t catch this before, but you
&gt; &gt; &gt; should use the text from WebCore/LICENSE-APPLE instead if you have no
&gt; &gt; &gt; objections.
&gt; &gt; 
&gt; &gt; Is this the canonical license text for new files?  Maybe I can add a pointer to
&gt; &gt; this in the web site documentation, so other people can know.
&gt; 
&gt; Yes, I believe so.  Maciej will correct me if I&apos;m wrong.

I filed a bug for this issue here:

https://bugs.webkit.org/show_bug.cgi?id=34017</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46744</attachid>
            <date>2010-01-16 10:44:47 -0800</date>
            <delta_ts>2010-01-21 09:32:29 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-33475-1.txt</filename>
            <type>text/plain</type>
            <size>24069</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3YTM1ODZlLi5lZDI5MjgxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDEt
MTYgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlIGEgdW5pdC10ZXN0ZWQg
c3Vicm91dGluZSB0byBwYXJzZSBwYXRjaCBmaWxlcyBjcmVhdGVkCisgICAgICAgIGJ5IHN2bi1j
cmVhdGUtcGF0Y2guCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzNDc1CisKKyAgICAgICAgKiBTY3JpcHRzL1ZDU1V0aWxzLnBtOgorICAgICAgICAg
IC0gQWRkZWQgcGFyc2VEaWZmKCkuCisgICAgICAgICAgLSBBZGRlZCBwYXJzZVBhdGNoKCkuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZm
LnBsOiBBZGRlZC4KKyAgICAgICAgICAtIEFkZGVkIHVuaXQgdGVzdHMgZm9yIHBhcnNlRGlmZigp
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNl
RGlmZkhlYWRlci5wbDoKKyAgICAgICAgICAtIFRvdGFsIG51bWJlciBvZiB0ZXN0cyBub3cgY29t
cHV0ZWQgZHluYW1pY2FsbHkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRp
bHNfdW5pdHRlc3QvcGFyc2VQYXRjaC5wbDogQWRkZWQuCisgICAgICAgICAgLSBBZGRlZCB1bml0
IHRlc3RzIGZvciBwYXJzZVBhdGNoKCkuCisKIDIwMTAtMDEtMTUgIENocmlzIEplcmRvbmVrICA8
Y2hyaXMuamVyZG9uZWtAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtp
bHplci4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0gYi9XZWJL
aXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtCmluZGV4IDc2NGZkYmQuLjNjODMxMzUgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0KKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy9WQ1NVdGlscy5wbQpAQCAtNjIsNiArNjIsNyBAQCBCRUdJTiB7CiAgICAgICAgICZp
c1NWTlZlcnNpb24xNk9yTmV3ZXIKICAgICAgICAgJm1ha2VGaWxlUGF0aFJlbGF0aXZlCiAgICAg
ICAgICZub3JtYWxpemVQYXRoCisgICAgICAgICZwYXJzZVBhdGNoCiAgICAgICAgICZwYXRoUmVs
YXRpdmVUb1NWTlJlcG9zaXRvcnlSb290Rm9yUGF0aAogICAgICAgICAmcnVuUGF0Y2hDb21tYW5k
CiAgICAgICAgICZzdm5SZXZpc2lvbkZvckRpcmVjdG9yeQpAQCAtNDgwLDYgKzQ4MSw5OCBAQCBz
dWIgcGFyc2VEaWZmSGVhZGVyKCQkKQogICAgIHJldHVybiAoXCVoZWFkZXIsICRsYXN0UmVhZExp
bmUpOwogfQogCisjIFBhcnNlIG9uZSBkaWZmIGZyb20gYSBwYXRjaCBmaWxlIGNyZWF0ZWQgYnkg
c3ZuLWNyZWF0ZS1wYXRjaCwgYW5kCisjIGFkdmFuY2UgdGhlIGZpbGUgaGFuZGxlIHNvIHRoZSBs
YXN0IGxpbmUgcmVhZCBpcyB0aGUgZmlyc3QgbGluZQorIyBvZiB0aGUgbmV4dCBoZWFkZXIgYmxv
Y2suCisjCisjIFRoaXMgc3Vicm91dGluZSBwcmVzZXJ2ZXMgYW55IGxlYWRpbmcganVuayBlbmNv
dW50ZXJlZCBiZWZvcmUgdGhlIGhlYWRlci4KKyMKKyMgQXJnczoKKyMgICAkZmlsZUhhbmRsZTog
YSBmaWxlIGhhbmRsZSBhZHZhbmNlZCB0byB0aGUgZmlyc3QgbGluZSBvZiB0aGUgbmV4dAorIyAg
ICAgICAgICAgICAgICBoZWFkZXIgYmxvY2suIExlYWRpbmcganVuayBpcyBva2F5LgorIyAgICRs
aW5lOiB0aGUgbGluZSBsYXN0IHJlYWQgZnJvbSAkZmlsZUhhbmRsZS4KKyMKKyMgUmV0dXJucyAo
JGRpZmZIYXNoUmVmLCAkbGFzdFJlYWRMaW5lKToKKyMgICAkZGlmZkhhc2hSZWY6CisjICAgICBj
b3BpZWRGcm9tUGF0aDogaWYgYSBmaWxlIGNvcHksIHRoZSBwYXRoIGZyb20gd2hpY2ggdGhlIGZp
bGUgd2FzCisjICAgICAgICAgICAgICAgICAgICAgY29waWVkLiBPdGhlcndpc2UsIHVuZGVmaW5l
ZC4KKyMgICAgIGluZGV4UGF0aDogdGhlIHBhdGggaW4gdGhlICJJbmRleDoiIGxpbmUuCisjICAg
ICBzb3VyY2VSZXZpc2lvbjogdGhlIHJldmlzaW9uIG51bWJlciBvZiB0aGUgc291cmNlLiBUaGlz
IGlzIHRoZSBzYW1lCisjICAgICAgICAgICAgICAgICAgICAgYXMgdGhlIHJldmlzaW9uIG51bWJl
ciB0aGUgZmlsZSB3YXMgY29waWVkIGZyb20sIGluCisjICAgICAgICAgICAgICAgICAgICAgdGhl
IGNhc2Ugb2YgYSBmaWxlIGNvcHkuCisjICAgICBzdm5Db252ZXJ0ZWRUZXh0OiB0aGUgZGlmZiBj
b252ZXJ0ZWQgdG8gU1ZOIGZvcm1hdC4KKyMgICAkbGluZTogdGhlIGxpbmUgbGFzdCByZWFkIGZy
b20gJGZpbGVIYW5kbGUKK3N1YiBwYXJzZURpZmYoJCQpCit7CisgICAgbXkgKCRmaWxlSGFuZGxl
LCAkbGluZSkgPSBAXzsKKworICAgIG15ICRoZWFkZXJTdGFydFJlZ0V4ID0gcXIjXkluZGV4OiAj
OyAjIFNWTi1zdHlsZSBoZWFkZXIgZm9yIHRoZSBkZWZhdWx0CisgICAgbXkgJGdpdEhlYWRlclN0
YXJ0UmVnRXggPSBxciNeZGlmZiAtLWdpdCBcdy8jOworCisgICAgbXkgJGhlYWRlckhhc2hSZWY7
ICMgTGFzdCBoZWFkZXIgZm91bmQsIGFzIHJldHVybmVkIGJ5IHBhcnNlRGlmZkhlYWRlcigpLgor
ICAgIG15ICRzdm5UZXh0OworICAgIHdoaWxlIChkZWZpbmVkKCRsaW5lKSkgeworICAgICAgICBp
ZiAoISRoZWFkZXJIYXNoUmVmICYmICgkbGluZSA9fiAkZ2l0SGVhZGVyU3RhcnRSZWdFeCkpIHsK
KyAgICAgICAgICAgICMgVGhlbiBhc3N1bWUgYWxsIGRpZmZzIGluIHRoZSBwYXRjaCBhcmUgR2l0
LWZvcm1hdHRlZC4gVGhpcworICAgICAgICAgICAgIyBibG9jayB3YXMgbWFkZSB0byBiZSBlbnRl
cmFibGUgYXQgbW9zdCBvbmNlIHNpbmNlIHdlIGFzc3VtZQorICAgICAgICAgICAgIyBhbGwgZGlm
ZnMgaW4gdGhlIHBhdGNoIGFyZSBmb3JtYXR0ZWQgdGhlIHNhbWUgKFNWTiBvciBHaXQpLgorICAg
ICAgICAgICAgJGhlYWRlclN0YXJ0UmVnRXggPSAkZ2l0SGVhZGVyU3RhcnRSZWdFeDsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICgkbGluZSAhfiAkaGVhZGVyU3RhcnRSZWdFeCkgeworICAgICAg
ICAgICAgIyBUaGVuIHdlIGFyZSBpbiB0aGUgYm9keSBvZiB0aGUgZGlmZi4KKyAgICAgICAgICAg
ICRzdm5UZXh0IC49ICRsaW5lOworICAgICAgICAgICAgJGxpbmUgPSA8JGZpbGVIYW5kbGU+Owor
ICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfSAjIE90aGVyd2lzZSwgd2UgZm91bmQgYSBkaWZm
IGhlYWRlci4KKworICAgICAgICBpZiAoJGhlYWRlckhhc2hSZWYpIHsKKyAgICAgICAgICAgICMg
VGhlbiB0aGlzIGlzIHRoZSBzZWNvbmQgZGlmZiBoZWFkZXIgb2YgdGhpcyB3aGlsZSBsb29wLgor
ICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorCisgICAgICAgICgkaGVhZGVySGFzaFJlZiwg
JGxpbmUpID0gcGFyc2VEaWZmSGVhZGVyKCRmaWxlSGFuZGxlLCAkbGluZSk7CisKKyAgICAgICAg
JHN2blRleHQgLj0gJGhlYWRlckhhc2hSZWYtPntzdm5Db252ZXJ0ZWRUZXh0fTsKKyAgICB9CisK
KyAgICBteSAlZGlmZkhhc2hSZWY7CisgICAgJGRpZmZIYXNoUmVme2NvcGllZEZyb21QYXRofSA9
ICRoZWFkZXJIYXNoUmVmLT57Y29waWVkRnJvbVBhdGh9OworICAgICRkaWZmSGFzaFJlZntpbmRl
eFBhdGh9ID0gJGhlYWRlckhhc2hSZWYtPntpbmRleFBhdGh9OworICAgICRkaWZmSGFzaFJlZntz
b3VyY2VSZXZpc2lvbn0gPSAkaGVhZGVySGFzaFJlZi0+e3NvdXJjZVJldmlzaW9ufTsKKyAgICAk
ZGlmZkhhc2hSZWZ7c3ZuQ29udmVydGVkVGV4dH0gPSAkc3ZuVGV4dDsKKworICAgIHJldHVybiAo
XCVkaWZmSGFzaFJlZiwgJGxpbmUpOworfQorCisjIFBhcnNlIGEgcGF0Y2ggZmlsZSBjcmVhdGVk
IGJ5IHN2bi1jcmVhdGUtcGF0Y2guCisjCisjIEFyZ3M6CisjICAgJGZpbGVIYW5kbGU6IEEgZmls
ZSBoYW5kbGUgdG8gdGhlIHBhdGNoIGZpbGUgdGhhdCBoYXMgbm90IHlldCBiZWVuCisjICAgICAg
ICAgICAgICAgIHJlYWQgZnJvbS4KKyMKKyMgUmV0dXJuczoKKyMgICBAZGlmZkhhc2hSZWZzOiBh
biBhcnJheSBvZiBkaWZmIGhhc2ggcmVmZXJlbmNlcy4gU2VlIHBhcnNlRGlmZigpIGZvcgorIyAg
ICAgICAgICAgICAgICAgIGEgZGVzY3JpcHRpb24gb2YgZWFjaCAkZGlmZkhhc2hSZWYuCitzdWIg
cGFyc2VQYXRjaCgkKQoreworICAgIG15ICgkZmlsZUhhbmRsZSkgPSBAXzsKKworICAgIG15IEBk
aWZmSGFzaFJlZnM7ICMgcmV0dXJuIHZhbHVlCisKKyAgICBteSAkbGluZSA9IDwkZmlsZUhhbmRs
ZT47CisKKyAgICB3aGlsZSAoZGVmaW5lZCgkbGluZSkpIHsgIyBPdGhlcndpc2UsIGF0IEVPRi4K
KworICAgICAgICBteSAkZGlmZkhhc2hSZWY7CisgICAgICAgICgkZGlmZkhhc2hSZWYsICRsaW5l
KSA9IHBhcnNlRGlmZigkZmlsZUhhbmRsZSwgJGxpbmUpOworCisgICAgICAgIHB1c2ggQGRpZmZI
YXNoUmVmcywgJGRpZmZIYXNoUmVmOworICAgIH0KKworICAgIHJldHVybiBAZGlmZkhhc2hSZWZz
OworfQorCiAjIElmIHBvc3NpYmxlLCByZXR1cm5zIGEgQ2hhbmdlTG9nIHBhdGNoIGVxdWl2YWxl
bnQgdG8gdGhlIGdpdmVuIG9uZSwKICMgYnV0IHdpdGggdGhlIG5ld2VzdCBDaGFuZ2VMb2cgZW50
cnkgaW5zZXJ0ZWQgYXQgdGhlIHRvcCBvZiB0aGUKICMgZmlsZSAtLSBpLmUuIG5vIGxlYWRpbmcg
Y29udGV4dCBhbmQgYWxsIGxpbmVzIHN0YXJ0aW5nIHdpdGggIisiLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZi5w
bCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJz
ZURpZmYucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE1MTQxMQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191
bml0dGVzdC9wYXJzZURpZmYucGwKQEAgLTAsMCArMSwzMzQgQEAKKyMhL3Vzci9iaW4vcGVybCAt
dworIworIyBDb3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNocmlzLmplcmRvbmVr
QGdtYWlsLmNvbSkKKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIwor
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisj
IGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorIyBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVu
aXQgdGVzdHMgb2YgcGFyc2VEaWZmKCkuCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisK
K3VzZSBUZXN0OjpNb3JlOwordXNlIFZDU1V0aWxzOworCitteSBAZGlmZkhhc2hSZWZLZXlzID0g
KCAjIFRoZSAkZGlmZkhhc2hSZWYga2V5cyB0byBjaGVjay4KKyAgICAiY29waWVkRnJvbVBhdGgi
LAorICAgICJpbmRleFBhdGgiLAorICAgICJzb3VyY2VSZXZpc2lvbiIsCisgICAgInN2bkNvbnZl
cnRlZFRleHQiLAorKTsKKworIyBUaGUgYXJyYXkgb2YgdGVzdCBjYXNlcy4KK215IEB0ZXN0Q2Fz
ZUhhc2hSZWZzID0gKAoreworICAgICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAiU1ZOOiBz
aW1wbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IE1ha2VmaWxlCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CistLS0gTWFrZWZpbGUJKHJldmlzaW9uIDUzMDUyKQorKysrIE1ha2VmaWxlCSh3b3Jr
aW5nIGNvcHkpCitAQCAtMSwzICsxLDQgQEAKKysKKyBNT0RVTEVTID0gSmF2YVNjcmlwdENvcmUg
SmF2YVNjcmlwdEdsdWUgV2ViQ29yZSBXZWJLaXQgV2ViS2l0VG9vbHMKKyAKKyBhbGw6CitFTkQK
KyAgICAjIEhlYWRlciBrZXlzIHRvIGNoZWNrCisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiAgPDwn
RU5EJywgIyBTYW1lIGFzIGlucHV0IHRleHQKK0luZGV4OiBNYWtlZmlsZQorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
LS0tIE1ha2VmaWxlCShyZXZpc2lvbiA1MzA1MikKKysrKyBNYWtlZmlsZQkod29ya2luZyBjb3B5
KQorQEAgLTEsMyArMSw0IEBACisrCisgTU9EVUxFUyA9IEphdmFTY3JpcHRDb3JlIEphdmFTY3Jp
cHRHbHVlIFdlYkNvcmUgV2ViS2l0IFdlYktpdFRvb2xzCisgCisgYWxsOgorRU5ECisgICAgY29w
aWVkRnJvbVBhdGggPT4gdW5kZWYsCisgICAgaW5kZXhQYXRoID0+ICJNYWtlZmlsZSIsCisgICAg
c291cmNlUmV2aXNpb24gPT4gIjUzMDUyIiwKKyAgICAjIE90aGVyIHZhbHVlcyB0byBjaGVjawor
ICAgIGxhc3RSZWFkTGluZSA9PiB1bmRlZiwKKyAgICBuZXh0TGluZSA9PiB1bmRlZiwKK30sCit7
CisgICAgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJTVk46IGxlYWRpbmcganVuayIsCisg
ICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCisKK0xFQURJTkcgSlVOSworCitJbmRleDogTWFrZWZp
bGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKy0tLSBNYWtlZmlsZQkocmV2aXNpb24gNTMwNTIpCisrKysgTWFrZWZp
bGUJKHdvcmtpbmcgY29weSkKK0BAIC0xLDMgKzEsNCBAQAorKworIE1PRFVMRVMgPSBKYXZhU2Ny
aXB0Q29yZSBKYXZhU2NyaXB0R2x1ZSBXZWJDb3JlIFdlYktpdCBXZWJLaXRUb29scworIAorIGFs
bDoKK0VORAorICAgICMgSGVhZGVyIGtleXMgdG8gY2hlY2sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0
ID0+ICA8PCdFTkQnLCAjIFNhbWUgYXMgaW5wdXQgdGV4dAorCitMRUFESU5HIEpVTksKKworSW5k
ZXg6IE1ha2VmaWxlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gTWFrZWZpbGUJKHJldmlzaW9uIDUzMDUyKQor
KysrIE1ha2VmaWxlCSh3b3JraW5nIGNvcHkpCitAQCAtMSwzICsxLDQgQEAKKysKKyBNT0RVTEVT
ID0gSmF2YVNjcmlwdENvcmUgSmF2YVNjcmlwdEdsdWUgV2ViQ29yZSBXZWJLaXQgV2ViS2l0VG9v
bHMKKyAKKyBhbGw6CitFTkQKKyAgICBjb3BpZWRGcm9tUGF0aCA9PiB1bmRlZiwKKyAgICBpbmRl
eFBhdGggPT4gIk1ha2VmaWxlIiwKKyAgICBzb3VyY2VSZXZpc2lvbiA9PiAiNTMwNTIiLAorICAg
ICMgT3RoZXIgdmFsdWVzIHRvIGNoZWNrCisgICAgbGFzdFJlYWRMaW5lID0+IHVuZGVmLAorICAg
IG5leHRMaW5lID0+IHVuZGVmLAorfSwKK3sKKyAgICAjIE5ldyB0ZXN0CisgICAgZGlmZk5hbWUg
PT4gIlNWTjogY29waWVkIGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6
IE1ha2VmaWxlX25ldworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIE1ha2VmaWxlX25ldwkocmV2aXNpb24gNTMx
MzEpCShmcm9tIE1ha2VmaWxlOjUzMTMxKQorKysrIE1ha2VmaWxlX25ldwkod29ya2luZyBjb3B5
KQorQEAgLTAsMCArMSwxIEBACisrTU9EVUxFUyA9IEphdmFTY3JpcHRDb3JlIEphdmFTY3JpcHRH
bHVlIFdlYkNvcmUgV2ViS2l0IFdlYktpdFRvb2xzCitFTkQKKyAgICAjIEhlYWRlciBrZXlzIHRv
IGNoZWNrCisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiAgPDwnRU5EJywgIyBTYW1lIGFzIGlucHV0
IHRleHQKK0luZGV4OiBNYWtlZmlsZV9uZXcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBNYWtlZmlsZV9uZXcJ
KHJldmlzaW9uIDUzMTMxKQkoZnJvbSBNYWtlZmlsZTo1MzEzMSkKKysrKyBNYWtlZmlsZV9uZXcJ
KHdvcmtpbmcgY29weSkKK0BAIC0wLDAgKzEsMSBAQAorK01PRFVMRVMgPSBKYXZhU2NyaXB0Q29y
ZSBKYXZhU2NyaXB0R2x1ZSBXZWJDb3JlIFdlYktpdCBXZWJLaXRUb29scworRU5ECisgICAgY29w
aWVkRnJvbVBhdGggPT4gIk1ha2VmaWxlIiwKKyAgICBpbmRleFBhdGggPT4gIk1ha2VmaWxlX25l
dyIsCisgICAgc291cmNlUmV2aXNpb24gPT4gIjUzMTMxIiwKKyAgICAjIE90aGVyIHZhbHVlcyB0
byBjaGVjaworICAgIGxhc3RSZWFkTGluZSA9PiB1bmRlZiwKKyAgICBuZXh0TGluZSA9PiB1bmRl
ZiwKK30sCit7CisgICAgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJTVk46IHR3byBkaWZm
cyIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogTWFrZWZpbGUKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKy0tLSBNYWtlZmlsZQkocmV2aXNpb24gNTMxMzEpCisrKysgTWFrZWZpbGUJKHdvcmtpbmcg
Y29weSkKK0BAIC0xLDEgKzAsMCBAQAorLU1PRFVMRVMgPSBKYXZhU2NyaXB0Q29yZSBKYXZhU2Ny
aXB0R2x1ZSBXZWJDb3JlIFdlYktpdCBXZWJLaXRUb29scworSW5kZXg6IE1ha2VmaWxlX25ldwor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorLS0tIE1ha2VmaWxlX25ldwkocmV2aXNpb24gNTMxMzEpCShmcm9tIE1ha2Vm
aWxlOjUzMTMxKQorRU5ECisgICAgIyBIZWFkZXIga2V5cyB0byBjaGVjaworICAgIHN2bkNvbnZl
cnRlZFRleHQgPT4gIDw8J0VORCcsCitJbmRleDogTWFrZWZpbGUKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBN
YWtlZmlsZQkocmV2aXNpb24gNTMxMzEpCisrKysgTWFrZWZpbGUJKHdvcmtpbmcgY29weSkKK0BA
IC0xLDEgKzAsMCBAQAorLU1PRFVMRVMgPSBKYXZhU2NyaXB0Q29yZSBKYXZhU2NyaXB0R2x1ZSBX
ZWJDb3JlIFdlYktpdCBXZWJLaXRUb29scworRU5ECisgICAgY29waWVkRnJvbVBhdGggPT4gdW5k
ZWYsCisgICAgaW5kZXhQYXRoID0+ICJNYWtlZmlsZSIsCisgICAgc291cmNlUmV2aXNpb24gPT4g
IjUzMTMxIiwKKyAgICAjIE90aGVyIHZhbHVlcyB0byBjaGVjaworICAgIGxhc3RSZWFkTGluZSA9
PiAiSW5kZXg6IE1ha2VmaWxlX25ld1xuIiwKKyAgICBuZXh0TGluZSA9PiAiPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxu
IiwKK30sCit7CisgICAgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJTVk46IFNWTiBkaWZm
IGZvbGxvd2VkIGJ5IEdpdCBkaWZmIiwgIyBTaG91bGQgbm90IHJlY29nbml6ZSBHaXQgc3RhcnQK
KyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBNYWtlZmlsZQorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
LS0tIE1ha2VmaWxlCShyZXZpc2lvbiA1MzEzMSkKKysrKyBNYWtlZmlsZQkod29ya2luZyBjb3B5
KQorQEAgLTEsMSArMCwwIEBACistTU9EVUxFUyA9IEphdmFTY3JpcHRDb3JlIEphdmFTY3JpcHRH
bHVlIFdlYkNvcmUgV2ViS2l0IFdlYktpdFRvb2xzCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9N
YWtlZmlsZQoraW5kZXggZjVkNWU3NC4uM2I2YWE5MiAxMDA2NDQKKy0tLSBhL01ha2VmaWxlCisr
KysgYi9NYWtlZmlsZQorQEAgLTEsMSAxLDEgQEAgcHVibGljOgorRU5ECisgICAgIyBIZWFkZXIg
a2V5cyB0byBjaGVjaworICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gIDw8J0VORCcsICMgU2FtZSBh
cyBpbnB1dCB0ZXh0CitJbmRleDogTWFrZWZpbGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBNYWtlZmlsZQko
cmV2aXNpb24gNTMxMzEpCisrKysgTWFrZWZpbGUJKHdvcmtpbmcgY29weSkKK0BAIC0xLDEgKzAs
MCBAQAorLU1PRFVMRVMgPSBKYXZhU2NyaXB0Q29yZSBKYXZhU2NyaXB0R2x1ZSBXZWJDb3JlIFdl
YktpdCBXZWJLaXRUb29scworZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4
IGY1ZDVlNzQuLjNiNmFhOTIgMTAwNjQ0CistLS0gYS9NYWtlZmlsZQorKysrIGIvTWFrZWZpbGUK
K0BAIC0xLDEgMSwxIEBAIHB1YmxpYzoKK0VORAorICAgIGNvcGllZEZyb21QYXRoID0+IHVuZGVm
LAorICAgIGluZGV4UGF0aCA9PiAiTWFrZWZpbGUiLAorICAgIHNvdXJjZVJldmlzaW9uID0+ICI1
MzEzMSIsCisgICAgIyBPdGhlciB2YWx1ZXMgdG8gY2hlY2sKKyAgICBsYXN0UmVhZExpbmUgPT4g
dW5kZWYsCisgICAgbmV4dExpbmUgPT4gdW5kZWYsCit9LAoreworICAgICMgTmV3IHRlc3QKKyAg
ICBkaWZmTmFtZSA9PiAiR2l0OiBzaW1wbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAor
ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IGY1ZDVlNzQuLjNiNmFhOTIg
MTAwNjQ0CistLS0gYS9NYWtlZmlsZQorKysrIGIvTWFrZWZpbGUKK0BAIC0xLDEgMSwxIEBAIHB1
YmxpYzoKK0VORAorICAgICMgSGVhZGVyIGtleXMgdG8gY2hlY2sKKyAgICBzdm5Db252ZXJ0ZWRU
ZXh0ID0+ICA8PCdFTkQnLAorSW5kZXg6IE1ha2VmaWxlCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gTWFrZWZp
bGUKKysrKyBNYWtlZmlsZQorQEAgLTEsMSAxLDEgQEAgcHVibGljOgorRU5ECisgICAgY29waWVk
RnJvbVBhdGggPT4gdW5kZWYsCisgICAgaW5kZXhQYXRoID0+ICJNYWtlZmlsZSIsCisgICAgc291
cmNlUmV2aXNpb24gPT4gdW5kZWYsCisgICAgIyBPdGhlciB2YWx1ZXMgdG8gY2hlY2sKKyAgICBs
YXN0UmVhZExpbmUgPT4gdW5kZWYsCisgICAgbmV4dExpbmUgPT4gdW5kZWYsCit9LAoreworICAg
ICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAiR2l0OiBHaXQgZGlmZiBmb2xsb3dlZCBieSBT
Vk4gZGlmZiIsICMgU2hvdWxkIG5vdCByZWNvZ25pemUgU1ZOIHN0YXJ0CisgICAgaW5wdXRUZXh0
ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQoraW5kZXggZjVk
NWU3NC4uM2I2YWE5MiAxMDA2NDQKKy0tLSBhL01ha2VmaWxlCisrKysgYi9NYWtlZmlsZQorQEAg
LTEsMSAxLDEgQEAgcHVibGljOgorSW5kZXg6IE1ha2VmaWxlX25ldworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t
IE1ha2VmaWxlX25ldwkocmV2aXNpb24gNTMxMzEpCShmcm9tIE1ha2VmaWxlOjUzMTMxKQorRU5E
CisgICAgIyBIZWFkZXIga2V5cyB0byBjaGVjaworICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gIDw8
J0VORCcsCitJbmRleDogTWFrZWZpbGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBNYWtlZmlsZQorKysrIE1h
a2VmaWxlCitAQCAtMSwxIDEsMSBAQCBwdWJsaWM6CitJbmRleDogTWFrZWZpbGVfbmV3Cis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CistLS0gTWFrZWZpbGVfbmV3CShyZXZpc2lvbiA1MzEzMSkJKGZyb20gTWFrZWZpbGU6
NTMxMzEpCitFTkQKKyAgICBjb3BpZWRGcm9tUGF0aCA9PiB1bmRlZiwKKyAgICBpbmRleFBhdGgg
PT4gIk1ha2VmaWxlIiwKKyAgICBzb3VyY2VSZXZpc2lvbiA9PiB1bmRlZiwKKyAgICAjIE90aGVy
IHZhbHVlcyB0byBjaGVjaworICAgIGxhc3RSZWFkTGluZSA9PiB1bmRlZiwKKyAgICBuZXh0TGlu
ZSA9PiB1bmRlZiwKK30sCispOworCisjIFJldHVybiB0aGUgYXJndW1lbnRzIGZvciBlYWNoIGFz
c2VydGlvbiBwZXIgdGVzdCBjYXNlLgorIworIyBJbiBwYXJ0aWN1bGFyLCB0aGUgbnVtYmVyIG9m
IGFzc2VydGlvbnMgcGVyIHRlc3QgY2FzZSBpcyB0aGUgbGVuZ3RoCisjIG9mIHRoZSByZXR1cm4g
dmFsdWUgb2YgdGhpcyBzdWJyb3V0aW5lIG9uIGEgc2FtcGxlIGlucHV0LgorIworIyBSZXR1cm5z
IEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzOgorIyAgICRhc3NlcnRpb25BcmdzQXJyYXlSZWY6IEEg
cmVmZXJlbmNlIHRvIGFuIGFycmF5IG9mIHBhcmFtZXRlcnMgdG8gcGFzcworIyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvIGVhY2ggY2FsbCB0byBpcygpLiBUaGUgcGFyYW1ldGVycyBhcmUt
LQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdvdDogVGhlIHZhbHVlIG9idGFpbmVk
CisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQ6IFRoZSBleHBlY3RlZCB2
YWx1ZQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRlc3ROYW1lOiBUaGUgbmFtZSBv
ZiB0aGUgdGVzdAorc3ViIHRlc3RQYXJzZURpZmZBc3NlcnRpb25BcmdzKCQpCit7CisgICAgbXkg
KCR0ZXN0Q2FzZUhhc2hSZWYpID0gQF87CisKKyAgICBteSAkZmlsZUhhbmRsZTsKKyAgICBvcGVu
KCRmaWxlSGFuZGxlLCAiPCIsIFwkdGVzdENhc2VIYXNoUmVmLT57aW5wdXRUZXh0fSk7CisKKyAg
ICBteSAkbGluZSA9IDwkZmlsZUhhbmRsZT47CisKKyAgICBteSAoJGRpZmZIYXNoUmVmLCAkbGFz
dFJlYWRMaW5lKSA9IFZDU1V0aWxzOjpwYXJzZURpZmYoJGZpbGVIYW5kbGUsICRsaW5lKTsKKwor
ICAgIG15ICR0ZXN0TmFtZVN0YXJ0ID0gInBhcnNlRGlmZigpOiBbJHRlc3RDYXNlSGFzaFJlZi0+
e2RpZmZOYW1lfV0gIjsKKworICAgIG15IEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzOyAjIFJldHVy
biB2YWx1ZQorICAgIG15IEBhc3NlcnRpb25BcmdzOworICAgIGZvcmVhY2ggbXkgJGRpZmZIYXNo
UmVmS2V5IChAZGlmZkhhc2hSZWZLZXlzKSB7CisgICAgICAgIG15ICR0ZXN0TmFtZSA9ICIke3Rl
c3ROYW1lU3RhcnR9a2V5PVwiJGRpZmZIYXNoUmVmS2V5XCIiOworICAgICAgICBAYXNzZXJ0aW9u
QXJncyA9ICgkZGlmZkhhc2hSZWYtPnskZGlmZkhhc2hSZWZLZXl9LCAkdGVzdENhc2VIYXNoUmVm
LT57JGRpZmZIYXNoUmVmS2V5fSwgJHRlc3ROYW1lKTsKKyAgICAgICAgcHVzaChAYXNzZXJ0aW9u
QXJnc0FycmF5UmVmcywgXEBhc3NlcnRpb25BcmdzKTsKKyAgICB9CisKKyAgICBAYXNzZXJ0aW9u
QXJncyA9ICgkbGFzdFJlYWRMaW5lLCAkdGVzdENhc2VIYXNoUmVmLT57bGFzdFJlYWRMaW5lfSwg
IiR7dGVzdE5hbWVTdGFydH1sYXN0UmVhZExpbmUiKTsKKyAgICBwdXNoKEBhc3NlcnRpb25Bcmdz
QXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworCisgICAgbXkgJG5leHRMaW5lID0gPCRmaWxl
SGFuZGxlPjsKKyAgICBAYXNzZXJ0aW9uQXJncyA9ICgkbmV4dExpbmUsICR0ZXN0Q2FzZUhhc2hS
ZWYtPntuZXh0TGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bmV4dExpbmUiKTsKKyAgICBwdXNoKEBh
c3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworCisgICAgcmV0dXJuIEBh
c3NlcnRpb25BcmdzQXJyYXlSZWZzOworfQorCisjIFRlc3QgcGFyc2VEaWZmKCkgZm9yIHRoZSBn
aXZlbiB0ZXN0IGNhc2UuCitzdWIgdGVzdFBhcnNlRGlmZigkKQoreworICAgIG15ICgkdGVzdENh
c2VIYXNoUmVmKSA9IEBfOworCisgICAgbXkgQGFzc2VydGlvbkFyZ3NBcnJheVJlZnMgPSB0ZXN0
UGFyc2VEaWZmQXNzZXJ0aW9uQXJncygkdGVzdENhc2VIYXNoUmVmKTsKKworICAgIGZvcmVhY2gg
bXkgJGFycmF5UmVmIChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcykgeworICAgICAgICAjIFRoZSBw
YXJhbWV0ZXJzIGFyZSAtLSBpcygkZ290LCAkZXhwZWN0ZWQsICR0ZXN0TmFtZSkuCisgICAgICAg
IGlzKCRhcnJheVJlZi0+WzBdLCAkYXJyYXlSZWYtPlsxXSwgJGFycmF5UmVmLT5bMl0pOworICAg
IH0KK30KKworIyBDb3VudCB0aGUgbnVtYmVyIG9mIGFzc2VydGlvbnMgcGVyIHRlc3QgY2FzZSwg
dXNpbmcgYSBzYW1wbGUgdGVzdCBjYXNlLgorbXkgJGFzc2VydGlvbkNvdW50ID0gdGVzdFBhcnNl
RGlmZkFzc2VydGlvbkFyZ3MoJHRlc3RDYXNlSGFzaFJlZnNbMF0pOworCitwbGFuKHRlc3RzID0+
IEB0ZXN0Q2FzZUhhc2hSZWZzICogJGFzc2VydGlvbkNvdW50KTsgIyBUb3RhbCBudW1iZXIgb2Yg
dGVzdHMKKworZm9yZWFjaCBteSAkdGVzdENhc2VIYXNoUmVmIChAdGVzdENhc2VIYXNoUmVmcykg
eworICAgIHRlc3RQYXJzZURpZmYoJHRlc3RDYXNlSGFzaFJlZik7Cit9CmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZm
SGVhZGVyLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0
ZXN0L3BhcnNlRGlmZkhlYWRlci5wbApvbGQgbW9kZSAxMDA3NTUKbmV3IG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQwOTVkYzAuLmE3YTNjMjYKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlRGlmZkhlYWRlci5wbAorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VEaWZmSGVhZGVyLnBsCkBA
IC0zNiw0MCArMzYsMTUgQEAgdXNlIHdhcm5pbmdzOwogdXNlIFRlc3Q6Ok1vcmU7CiB1c2UgVkNT
VXRpbHM7CiAKLW15IEBoZWFkZXJLZXlzID0gKCAjIFRoZSAkaGVhZGVySGFzaFJlZiBrZXlzIHRv
IGNoZWNrLgorbXkgQGRpZmZIZWFkZXJIYXNoUmVmS2V5cyA9ICggIyBUaGUgJGRpZmZIZWFkZXJI
YXNoUmVmIGtleXMgdG8gY2hlY2suCiAgICAgImNvcGllZEZyb21QYXRoIiwKICAgICAiaW5kZXhQ
YXRoIiwKICAgICAic291cmNlUmV2aXNpb24iLAogICAgICJzdm5Db252ZXJ0ZWRUZXh0IiwKICk7
CiAKLSMgVGVzdCBwYXJzZURpZmZIZWFkZXIoKSBmb3IgdGhlIGdpdmVuICRkaWZmVGVzdEhhc2hS
ZWYuCi1zdWIgZG9EaWZmVGVzdCgkKQotewotICAgIG15ICgkZGlmZlRlc3RIYXNoUmVmKSA9IEBf
OwotCi0gICAgbXkgJGZpbGVIYW5kbGU7Ci0gICAgb3BlbigkZmlsZUhhbmRsZSwgIjwiLCBcJGRp
ZmZUZXN0SGFzaFJlZi0+e2lucHV0VGV4dH0pOwotCi0gICAgbXkgJGxpbmUgPSA8JGZpbGVIYW5k
bGU+OwotCi0gICAgbXkgKCRoZWFkZXJIYXNoUmVmLCAkbGFzdFJlYWRMaW5lKSA9IFZDU1V0aWxz
OjpwYXJzZURpZmZIZWFkZXIoJGZpbGVIYW5kbGUsICRsaW5lKTsKLQotICAgIG15ICR0aXRsZUhl
YWRlciA9ICJwYXJzZURpZmZIZWFkZXIoKTogWyRkaWZmVGVzdEhhc2hSZWYtPntkaWZmTmFtZX1d
ICI7Ci0gICAgbXkgJHRpdGxlOwotCi0gICAgZm9yZWFjaCBteSAkaGVhZGVyS2V5IChAaGVhZGVy
S2V5cykgewotICAgICAgICBteSAkdGl0bGUgPSAiJHt0aXRsZUhlYWRlcn1rZXk9XCIkaGVhZGVy
S2V5XCIiOwotICAgICAgICBpcygkaGVhZGVySGFzaFJlZi0+eyRoZWFkZXJLZXl9LCAkZGlmZlRl
c3RIYXNoUmVmLT57JGhlYWRlcktleX0sICR0aXRsZSk7Ci0gICAgfQotCi0gICAgaXMoJGxhc3RS
ZWFkTGluZSwgJGRpZmZUZXN0SGFzaFJlZi0+e2xhc3RSZWFkTGluZX0sICIke3RpdGxlSGVhZGVy
fWxhc3RSZWFkTGluZSIpOwotCi0gICAgbXkgJG5leHRMaW5lID0gPCRmaWxlSGFuZGxlPjsKLSAg
ICBpcygkbmV4dExpbmUsICRkaWZmVGVzdEhhc2hSZWYtPntuZXh0TGluZX0sICIke3RpdGxlSGVh
ZGVyfW5leHRMaW5lIik7Ci19Ci0KLW15IEBkaWZmVGVzdHMgPSAoCisjIFRoZSBhcnJheSBvZiB0
ZXN0IGNhc2VzLgorbXkgQHRlc3RDYXNlSGFzaFJlZnMgPSAoCiB7CiAgICAgIyBOZXcgdGVzdAog
ICAgIGRpZmZOYW1lID0+ICJTVk46IHNpbXBsZSIsCkBAIC0yNDcsOCArMjIyLDY3IEBAIEVORAog
fSwKICk7CiAKLXBsYW4odGVzdHMgPT4gQGRpZmZUZXN0cyAqIDYpOyAjIE11bHRpcGx5IGJ5IG51
bWJlciBvZiBhc3NlcnRpb25zIHBlciBjYWxsIHRvIGRvRGlmZlRlc3QoKS4KKyMgUmV0dXJuIHRo
ZSBhcmd1bWVudHMgZm9yIGVhY2ggYXNzZXJ0aW9uIHBlciB0ZXN0IGNhc2UuCisjCisjIEluIHBh
cnRpY3VsYXIsIHRoZSBudW1iZXIgb2YgYXNzZXJ0aW9ucyBwZXIgdGVzdCBjYXNlIGlzIHRoZSBs
ZW5ndGgKKyMgb2YgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGlzIHN1YnJvdXRpbmUgb24gYSBzYW1w
bGUgaW5wdXQuCisjCisjIFJldHVybnMgQGFzc2VydGlvbkFyZ3NBcnJheVJlZnM6CisjICAgJGFz
c2VydGlvbkFyZ3NBcnJheVJlZjogQSByZWZlcmVuY2UgdG8gYW4gYXJyYXkgb2YgcGFyYW1ldGVy
cyB0byBwYXNzCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gZWFjaCBjYWxsIHRvIGlz
KCkuIFRoZSBwYXJhbWV0ZXJzIGFyZS0tCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
Z290OiBUaGUgdmFsdWUgb2J0YWluZWQKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRl
eHBlY3RlZDogVGhlIGV4cGVjdGVkIHZhbHVlCisjICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkdGVzdE5hbWU6IFRoZSBuYW1lIG9mIHRoZSB0ZXN0CitzdWIgdGVzdFBhcnNlRGlmZkhlYWRl
ckFzc2VydGlvbkFyZ3MoJCkKK3sKKyAgICBteSAoJHRlc3RDYXNlSGFzaFJlZikgPSBAXzsKKwor
ICAgIG15ICRmaWxlSGFuZGxlOworICAgIG9wZW4oJGZpbGVIYW5kbGUsICI8IiwgXCR0ZXN0Q2Fz
ZUhhc2hSZWYtPntpbnB1dFRleHR9KTsKKworICAgIG15ICRsaW5lID0gPCRmaWxlSGFuZGxlPjsK
KworICAgIG15ICgkaGVhZGVySGFzaFJlZiwgJGxhc3RSZWFkTGluZSkgPSBWQ1NVdGlsczo6cGFy
c2VEaWZmSGVhZGVyKCRmaWxlSGFuZGxlLCAkbGluZSk7CisKKyAgICBteSAkdGVzdE5hbWVTdGFy
dCA9ICJwYXJzZURpZmZIZWFkZXIoKTogWyR0ZXN0Q2FzZUhhc2hSZWYtPntkaWZmTmFtZX1dICI7
CisKKyAgICBteSBAYXNzZXJ0aW9uQXJnc0FycmF5UmVmczsgIyBSZXR1cm4gdmFsdWUKKyAgICBt
eSBAYXNzZXJ0aW9uQXJnczsKKyAgICBmb3JlYWNoIG15ICRkaWZmSGVhZGVySGFzaFJlZktleSAo
QGRpZmZIZWFkZXJIYXNoUmVmS2V5cykgeworICAgICAgICBteSAkdGVzdE5hbWUgPSAiJHt0ZXN0
TmFtZVN0YXJ0fWtleT1cIiRkaWZmSGVhZGVySGFzaFJlZktleVwiIjsKKyAgICAgICAgQGFzc2Vy
dGlvbkFyZ3MgPSAoJGhlYWRlckhhc2hSZWYtPnskZGlmZkhlYWRlckhhc2hSZWZLZXl9LCAkdGVz
dENhc2VIYXNoUmVmLT57JGRpZmZIZWFkZXJIYXNoUmVmS2V5fSwgJHRlc3ROYW1lKTsKKyAgICAg
ICAgcHVzaChAYXNzZXJ0aW9uQXJnc0FycmF5UmVmcywgXEBhc3NlcnRpb25BcmdzKTsKKyAgICB9
CisKKyAgICBAYXNzZXJ0aW9uQXJncyA9ICgkbGFzdFJlYWRMaW5lLCAkdGVzdENhc2VIYXNoUmVm
LT57bGFzdFJlYWRMaW5lfSwgIiR7dGVzdE5hbWVTdGFydH1sYXN0UmVhZExpbmUiKTsKKyAgICBw
dXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3MpOworCisgICAgbXkg
JG5leHRMaW5lID0gPCRmaWxlSGFuZGxlPjsKKyAgICBAYXNzZXJ0aW9uQXJncyA9ICgkbmV4dExp
bmUsICR0ZXN0Q2FzZUhhc2hSZWYtPntuZXh0TGluZX0sICIke3Rlc3ROYW1lU3RhcnR9bmV4dExp
bmUiKTsKKyAgICBwdXNoKEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzLCBcQGFzc2VydGlvbkFyZ3Mp
OworCisgICAgcmV0dXJuIEBhc3NlcnRpb25BcmdzQXJyYXlSZWZzOworfQorCisjIFRlc3QgcGFy
c2VEaWZmSGVhZGVyKCkgZm9yIHRoZSBnaXZlbiB0ZXN0IGNhc2UuCitzdWIgdGVzdFBhcnNlRGlm
ZkhlYWRlcigkKQoreworICAgIG15ICgkdGVzdENhc2VIYXNoUmVmKSA9IEBfOworCisgICAgbXkg
QGFzc2VydGlvbkFyZ3NBcnJheVJlZnMgPSB0ZXN0UGFyc2VEaWZmSGVhZGVyQXNzZXJ0aW9uQXJn
cygkdGVzdENhc2VIYXNoUmVmKTsKKworICAgIGZvcmVhY2ggbXkgJGFycmF5UmVmIChAYXNzZXJ0
aW9uQXJnc0FycmF5UmVmcykgeworICAgICAgICAjIFRoZSBwYXJhbWV0ZXJzIGFyZSAtLSBpcygk
Z290LCAkZXhwZWN0ZWQsICR0ZXN0TmFtZSkuCisgICAgICAgIGlzKCRhcnJheVJlZi0+WzBdLCAk
YXJyYXlSZWYtPlsxXSwgJGFycmF5UmVmLT5bMl0pOworICAgIH0KK30KKworIyBDb3VudCB0aGUg
bnVtYmVyIG9mIGFzc2VydGlvbnMgcGVyIHRlc3QgY2FzZSB0byBjYWxjdWxhdGUgdGhlIHRvdGFs
IG51bWJlcgorIyBvZiBUZXN0OjpNb3JlIHRlc3RzLiBXZSBjb3VsZCBoYXZlIHVzZWQgYW55IHRl
c3QgY2FzZSBmb3IgdGhlIGNvdW50LgorbXkgJGFzc2VydGlvbkNvdW50ID0gdGVzdFBhcnNlRGlm
ZkhlYWRlckFzc2VydGlvbkFyZ3MoJHRlc3RDYXNlSGFzaFJlZnNbMF0pOworCitwbGFuKHRlc3Rz
ID0+IEB0ZXN0Q2FzZUhhc2hSZWZzICogJGFzc2VydGlvbkNvdW50KTsgIyBUb3RhbCBudW1iZXIg
b2YgdGVzdHMKIAotZm9yZWFjaCBteSAkZGlmZlRlc3RIYXNoUmVmIChAZGlmZlRlc3RzKSB7Ci0g
ICAgZG9EaWZmVGVzdCgkZGlmZlRlc3RIYXNoUmVmKTsKK2ZvcmVhY2ggbXkgJHRlc3RDYXNlSGFz
aFJlZiAoQHRlc3RDYXNlSGFzaFJlZnMpIHsKKyAgICB0ZXN0UGFyc2VEaWZmSGVhZGVyKCR0ZXN0
Q2FzZUhhc2hSZWYpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
ZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlUGF0Y2gucGwgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VQYXRjaC5wbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGNkNmYyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlUGF0Y2gucGwK
QEAgLTAsMCArMSwxMDggQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIworIyBDb3B5cmlnaHQgKEMp
IDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNocmlzLmplcmRvbmVrQGdtYWlsLmNvbSkKKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorIyBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisj
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVuaXQgdGVzdHMgb2YgcGFyc2VEaWZm
SGVhZGVyKCkuCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK3VzZSBUZXN0OjpNb3Jl
OwordXNlIFZDU1V0aWxzOworCitteSBAZGlmZkhhc2hSZWZLZXlzID0gKCAjIFRoZSBoYXNoIHJl
ZmVyZW5jZSBrZXlzIHRvIGNoZWNrIHBlciBkaWZmLgorICAgICJjb3BpZWRGcm9tUGF0aCIsCisg
ICAgImluZGV4UGF0aCIsCisgICAgInNvdXJjZVJldmlzaW9uIiwKKyAgICAic3ZuQ29udmVydGVk
VGV4dCIsCispOworCisjIE5ldyB0ZXN0CitteSAkdGVzdE5hbWVTdGFydCA9ICJwYXJzZVBhdGNo
KCk6IFtTVk46IFJlbmFtZV0gIjsKK215ICRwYXRjaCA9IDw8J0VORCcsCitJbmRleDogTWFrZWZp
bGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKy0tLSBNYWtlZmlsZQkocmV2aXNpb24gNTMxMzEpCisrKysgTWFrZWZp
bGUJKHdvcmtpbmcgY29weSkKK0BAIC0xLDEgKzAsMCBAQAorLU1PRFVMRVMgPSBKYXZhU2NyaXB0
Q29yZSBKYXZhU2NyaXB0R2x1ZSBXZWJDb3JlIFdlYktpdCBXZWJLaXRUb29scworSW5kZXg6IE1h
a2VmaWxlX25ldworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorLS0tIE1ha2VmaWxlX25ldwkocmV2aXNpb24gNTMxMzEp
CShmcm9tIE1ha2VmaWxlOjUzMTMxKQorKysrIE1ha2VmaWxlX25ldwkod29ya2luZyBjb3B5KQor
QEAgLTAsMCArMSwxIEBACisrTU9EVUxFUyA9IEphdmFTY3JpcHRDb3JlIEphdmFTY3JpcHRHbHVl
IFdlYkNvcmUgV2ViS2l0IFdlYktpdFRvb2xzCitFTkQKKworbXkgQGV4cGVjdGVkRGlmZkhhc2hS
ZWZzID0gKAoreworICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBNYWtl
ZmlsZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorLS0tIE1ha2VmaWxlCShyZXZpc2lvbiA1MzEzMSkKKysrKyBNYWtl
ZmlsZQkod29ya2luZyBjb3B5KQorQEAgLTEsMSArMCwwIEBACistTU9EVUxFUyA9IEphdmFTY3Jp
cHRDb3JlIEphdmFTY3JpcHRHbHVlIFdlYkNvcmUgV2ViS2l0IFdlYktpdFRvb2xzCitFTkQKKyAg
ICBjb3BpZWRGcm9tUGF0aCA9PiB1bmRlZiwKKyAgICBpbmRleFBhdGggPT4gIk1ha2VmaWxlIiwK
KyAgICBzb3VyY2VSZXZpc2lvbiA9PiAiNTMxMzEiLAorfSwKK3sKKyAgICBzdm5Db252ZXJ0ZWRU
ZXh0ID0+IDw8J0VORCcsCitJbmRleDogTWFrZWZpbGVfbmV3Cis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gTWFr
ZWZpbGVfbmV3CShyZXZpc2lvbiA1MzEzMSkJKGZyb20gTWFrZWZpbGU6NTMxMzEpCisrKysgTWFr
ZWZpbGVfbmV3CSh3b3JraW5nIGNvcHkpCitAQCAtMCwwICsxLDEgQEAKKytNT0RVTEVTID0gSmF2
YVNjcmlwdENvcmUgSmF2YVNjcmlwdEdsdWUgV2ViQ29yZSBXZWJLaXQgV2ViS2l0VG9vbHMKK0VO
RAorICAgIGNvcGllZEZyb21QYXRoID0+ICJNYWtlZmlsZSIsCisgICAgaW5kZXhQYXRoID0+ICJN
YWtlZmlsZV9uZXciLAorICAgIHNvdXJjZVJldmlzaW9uID0+ICI1MzEzMSIsCit9LAorKTsKKwor
cGxhbih0ZXN0cyA9PiBAZXhwZWN0ZWREaWZmSGFzaFJlZnMgKiBAZGlmZkhhc2hSZWZLZXlzKTsK
KworbXkgJGZpbGVIYW5kbGU7CitvcGVuKCRmaWxlSGFuZGxlLCAiPCIsIFwkcGF0Y2gpOworCitt
eSBAZ290RGlmZkhhc2hSZWZzID0gcGFyc2VQYXRjaCgkZmlsZUhhbmRsZSk7CisKK215ICRpID0g
MDsKK2ZvcmVhY2ggbXkgJGV4cGVjdGVkRGlmZkhhc2hSZWYgKEBleHBlY3RlZERpZmZIYXNoUmVm
cykgeworCisgICAgbXkgJGdvdERpZmZIYXNoUmVmID0gJGdvdERpZmZIYXNoUmVmc1skaSsrXTsK
KworICAgIGZvcmVhY2ggbXkgJGRpZmZIYXNoUmVmS2V5IChAZGlmZkhhc2hSZWZLZXlzKSB7Cisg
ICAgICAgIG15ICR0ZXN0TmFtZSA9ICIke3Rlc3ROYW1lU3RhcnR9W2RpZmYgJGldIGtleT1cIiRk
aWZmSGFzaFJlZktleVwiIjsKKyAgICAgICAgaXMoJGdvdERpZmZIYXNoUmVmLT57JGRpZmZIYXNo
UmVmS2V5fSwgJGV4cGVjdGVkRGlmZkhhc2hSZWYtPnskZGlmZkhhc2hSZWZLZXl9LCAkdGVzdE5h
bWUpOworICAgIH0KK30K
</data>
<flag name="review"
          id="29055"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="29056"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>