<?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>36725</bug_id>
          
          <creation_ts>2010-03-28 10:35:33 -0700</creation_ts>
          <short_desc>webkit-patch: Enable Python logging fully (was &quot;test-webkitpy: Eliminate spurious output&quot;)</short_desc>
          <delta_ts>2010-03-31 20:59:01 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>205186</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 10:35:33 -0700</bug_when>
    <thetext>Running test-webkitpy shouldn&apos;t have spurious output like this:

...........................................Received HTTP status 500 from server.  Retrying in 0 seconds...
Received HTTP status 500 from server.  Retrying in 0.0 seconds...
................................................................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 331 tests in 0.799s

OK


This involves replacing deprecated_logging in networktransaction.py with Python logging.

To preserve existing behavior, I may need help in knowing where NetworkTransaction is being used.  I&apos;m not sure whether Python logging has been enabled yet for the scripts currently using NetworkTransaction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205189</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-28 10:37:53 -0700</bug_when>
    <thetext>This is a recent regression from some test.  It didn&apos;t used to have this output as of Friday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205193</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 10:47:42 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; This is a recent regression from some test.  It didn&apos;t used to have this output
&gt; as of Friday.

Running test-webkitpy with verbose output:

&gt; test-webkitpy -v

...
test_trivial (webkitpy.common.net.irc.ircproxy_unittest.IRCProxyTest) ... ok
test_exception (webkitpy.common.net.networktransaction_unittest.NetworkTransactionTest) ... ok
test_retry (webkitpy.common.net.networktransaction_unittest.NetworkTransactionTest) ... Received HTTP status 500 from server.  Retrying in 0 seconds...
Received HTTP status 500 from server.  Retrying in 0.0 seconds...
ok
test_success (webkitpy.common.net.networktransaction_unittest.NetworkTransactionTest) ... ok
test_timeout (webkitpy.common.net.networktransaction_unittest.NetworkTransactionTest) ... ok
...

Is it possible it&apos;s related to the ordering of the tests (if some code shuts off rendering to the screen)? The ordering probably changed with the unit test auto-detection that was landed yesterday:

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

I seem to remember us noticing some order-dependent unit-test behavior when we met middle of the week (though probably not this specific behavior).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205203</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 12:00:05 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Is it possible it&apos;s related to the ordering of the tests (if some code shuts
&gt; off rendering to the screen)? The ordering probably changed with the unit test
&gt; auto-detection that was landed yesterday:
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=36591

I looked into it, and yes, it&apos;s because of what I guessed above.

It turns out there is a bug in deprecated_logging_unittest.py that is shutting off sys.stderr:

class LoggingTest(unittest.TestCase):

    def assert_log_equals(self, log_input, expected_output):
        original_stderr = sys.stderr
        test_stderr = StringIO.StringIO()
        sys.stderr = test_stderr

        try:
            log(log_input)
            actual_output = test_stderr.getvalue()
        finally:
--&gt;         original_stderr = original_stderr (should be sys.stderr = original_stderr)

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/system/deprecated_logging_unittest.py#L49

Before r56671, this test occurred towards the beginning.  But after r56671, this test occurred later -- unmasking the output.

Fixing this bug will cause the spurious output to remain.  (Actually, it will increase the spurious output slightly from another test or two.)  So the fix is still to replace deprecated_logging with Python&apos;s logging module.

test-webkitpy already has logic to filter out log messages from webkitpy so they don&apos;t get displayed to the screen (and without interfering with the unit tests&apos; ability to test logging).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205204</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-28 12:13:39 -0700</bug_when>
    <thetext>Go ahead and change networktransaction to use Python logging.  We should just remove depricated_logging whenever we can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205205</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 12:18:20 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Go ahead and change networktransaction to use Python logging.  We should just
&gt; remove depricated_logging whenever we can.

I&apos;ll do that, but should we first enable Python logging for the calling scripts -- or do you not care about this particular message?  I wouldn&apos;t want my change to suppress errors the end-user should be seeing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205206</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-28 12:21:35 -0700</bug_when>
    <thetext>&gt; I&apos;ll do that, but should we first enable Python logging for the calling scripts
&gt; -- or do you not care about this particular message?  I wouldn&apos;t want my change
&gt; to suppress errors the end-user should be seeing.

Is there a downside to enabling logging for the calling scripts?  In any case, this is a message for folks looking at the raw output of the bots on the console, not normal users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205208</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 12:35:26 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; I&apos;ll do that, but should we first enable Python logging for the calling scripts
&gt; &gt; -- or do you not care about this particular message?  I wouldn&apos;t want my change
&gt; &gt; to suppress errors the end-user should be seeing.
&gt; 
&gt; Is there a downside to enabling logging for the calling scripts?  In any case,
&gt; this is a message for folks looking at the raw output of the bots on the
&gt; console, not normal users.

The only downside is if we don&apos;t filter things correctly initially, there may be some annoying messages from things the user doesn&apos;t want to see (e.g. autoinstall log messages).  That part I can handle though.  Really the only thing I may need help with, as I said above, is knowing which scripts need to have logging enabled.  It might be good to know for--

(1) NetworkTransaction (for the present report), and
(2) everything else (to get rid of deprecated_logging entirely), e.g. webkit-patch

For doing this, I can probably put a standard configure_logging() method in common/system/logutils.py that should be good for most purposes, and that one can be used for the most part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205210</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 12:36:25 -0700</bug_when>
    <thetext>Fixed the typo: http://trac.webkit.org/changeset/56699</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205215</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-28 13:07:43 -0700</bug_when>
    <thetext>I think we should use it for everything.  We have deprecated logging because we didn&apos;t know any better at the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205219</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 13:22:23 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I think we should use it for everything.

I was asking more the specific names of the scripts.  Are there any scripts you know of we should enable logging for aside from--

* check-webkit-style (already enabled)
* new-run-webkit-tests (already enabled)
* test-webkitpy (already enabled)
* validate-committer-lists (probably not)
* webkit-patch (not sure)

I don&apos;t think we should automatically turn on logging when a script imports from webkitpy because I&apos;d rather the caller have control over when and how they&apos;re opted in.  And I&apos;m sure it&apos;s a hackish process to remove or otherwise modify an existing logging configuration.  We can make opting in as simple as calling a configure_logging() method in a standard location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205227</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-28 13:47:02 -0700</bug_when>
    <thetext>Let&apos;s start with webkit-patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205260</commentid>
    <comment_count>12</comment_count>
      <attachid>51870</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-28 16:19:34 -0700</bug_when>
    <thetext>Created attachment 51870
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206925</commentid>
    <comment_count>13</comment_count>
      <attachid>51870</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-31 20:27:53 -0700</bug_when>
    <thetext>Comment on attachment 51870
Proposed patch

Great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206929</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-31 20:33:14 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 51870 [details])
&gt; Great!

Thanks again, Adam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206938</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-31 20:59:01 -0700</bug_when>
    <thetext>Committed:

http://trac.webkit.org/changeset/56892</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51870</attachid>
            <date>2010-03-28 16:19:34 -0700</date>
            <delta_ts>2010-03-31 20:27:52 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-36725-1.diff</filename>
            <type>text/plain</type>
            <size>13456</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxMjNhZDkyLi5iNmQ3YjMyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDMt
MjggIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlZCBQeXRob24ncyBsb2dn
aW5nIG1vZHVsZSBmb3Igd2Via2l0LXBhdGNoLCBhbmQgcmVwbGFjZWQKKyAgICAgICAgZGVwcmVj
YXRlZF9sb2dnaW5nIHdpdGggUHl0aG9uIGxvZ2dpbmcgaW4gbmV0d29ya3RyYW5zYWN0aW9uLnB5
LgorICAgICAgICBUaGlzIGVsaW1pbmF0ZXMgc29tZSBzcHVyaW91cyBvdXRwdXQgd2hlbiBydW5u
aW5nIHRlc3Qtd2Via2l0cHkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM2NzI1CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC1wYXRjaDoKKyAg
ICAgICAgICAtIFJlcGxhY2VkIHRoZSBjb25maWd1cmVfbG9nZ2luZygpIGZ1bmN0aW9uIHdpdGgg
YSBjYWxsIHRvCisgICAgICAgICAgICB0aGUgbmV3IGxvZ3V0aWxzLmNvbmZpZ3VyZV9sb2dnaW5n
KCkgZnVuY3Rpb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbmV0
d29ya3RyYW5zYWN0aW9uLnB5OgorICAgICAgICAgIC0gUmVwbGFjZWQgdGhlIHVzZSBvZiBkZXBy
ZWNhdGVkX2xvZ2dpbmcgd2l0aCBQeXRob24gbG9nZ2luZy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d1dGlscy5weToKKyAgICAgICAgICAtIEFkZGVkIF9k
ZWZhdWx0X2hhbmRsZXJzKCkgd2hpY2ggY3JlYXRlcyB0aGUgZGVmYXVsdCBsb2dnaW5nCisgICAg
ICAgICAgICBoYW5kbGVyIGZvciB3ZWJraXRweS4KKyAgICAgICAgICAtIEFkZGVkIGNvbmZpZ3Vy
ZV9sb2dnaW5nKCkgd2hpY2ggY29uZmlndXJlcyBkZWZhdWx0IGxvZ2dpbmcKKyAgICAgICAgICAg
IGZvciB3ZWJraXRweS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9sb2d1dGlsc191bml0dGVzdC5weToKKyAgICAgICAgICAtIEFkZGVkIHVuaXQgdGVzdHMgZm9y
IGxvZ3V0aWxzLmNvbmZpZ3VyZV9sb2dnaW5nKCkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICAgLSBSZWZhY3RvcmVkIGNoZWNrLXdlYmtp
dC1zdHlsZSdzIGNvbmZpZ3VyZV9sb2dnaW5nKCkgbWV0aG9kCisgICAgICAgICAgICB0byBjYWxs
IHRoZSBuZXcgbG9ndXRpbHMuY29uZmlndXJlX2xvZ2dpbmcoKS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvc3R5bGVfcmVmZXJlbmNlcy5weToKKyAgICAgICAgICAtIFVwZGF0ZWQgcmVm
ZXJlbmNlcyBhcyBuZWNlc3NhcnkuCisKIDIwMTAtMDMtMjggIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCByb2xsaW5nIG91dCByNTY2
NzkuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdC1wYXRjaCBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0LXBhdGNoCmluZGV4IGY3ZWIxYmMuLmUwMTcwZWQgMTAwNzU1
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0LXBhdGNoCisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0LXBhdGNoCkBAIC0zMSwyNyArMzEsMTMgQEAKICMKICMgQSB0b29sIGZv
ciBhdXRvbWF0aW5nIGRlYWxpbmcgd2l0aCBidWd6aWxsYSwgcG9zdGluZyBwYXRjaGVzLCBjb21t
aXR0aW5nIHBhdGNoZXMsIGV0Yy4KIAotaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0
IHN5cwogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndXRpbHMgaW1wb3J0IGNvbmZp
Z3VyZV9sb2dnaW5nCiBpbXBvcnQgd2Via2l0cHkucHl0aG9uMjQudmVyc2lvbmluZyBhcyB2ZXJz
aW9uaW5nCiAKIAotIyBGSVhNRTogQ29uc2lkZXIgbG9nZ2luZyBtb3JlIHRoYW4ganVzdCBtZXNz
YWdlcyBmcm9tIHRoZQotIyAgICAgICAgdmVyc2lvbi1jaGVja2luZyBtb2R1bGUuICBGb3Igbm93
IHdlIGVuYWJsZSBvbmx5IGVub3VnaAotIyAgICAgICAgZm9yIHRoZSB2ZXJzaW9uIHdhcm5pbmcg
dG8gc2hvdyB1cC4KLWRlZiBjb25maWd1cmVfbG9nZ2luZygpOgotICAgICIiIkNvbmZpZ3VyZSBs
b2dnaW5nIGZvciB0aGUgdmVyc2lvbi1jaGVja2VyLiIiIgotICAgIGhhbmRsZXIgPSBsb2dnaW5n
LlN0cmVhbUhhbmRsZXIoc3lzLnN0ZGVycikKLSAgICBmb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1h
dHRlcigiJShsZXZlbG5hbWUpczogJShtZXNzYWdlKXMiKQotICAgIGhhbmRsZXIuc2V0Rm9ybWF0
dGVyKGZvcm1hdHRlcikKLQotICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKHZlcnNpb25p
bmcuX19uYW1lX18pCi0gICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuSU5GTykKLSAgICBsb2dn
ZXIuYWRkSGFuZGxlcihoYW5kbGVyKQotCi0KIGRlZiBtYWluKCk6CiAgICAgY29uZmlndXJlX2xv
Z2dpbmcoKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvbmV0d29ya3RyYW5zYWN0aW9uLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L25ldHdvcmt0cmFuc2FjdGlvbi5weQppbmRleCAyODEwMmNhLi4xNDA5Nzk3
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbmV0
d29ya3RyYW5zYWN0aW9uLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9uZXR3b3JrdHJhbnNhY3Rpb24ucHkKQEAgLTI2LDEwICsyNiwxMiBAQAogIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IGxvZ2dpbmcKIGltcG9ydCB0aW1lCiAK
IGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRvaW5zdGFsbGVkIGltcG9ydCBIVFRQRXJyb3IK
LWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5kZXByZWNhdGVkX2xvZ2dpbmcgaW1wb3J0IGxv
ZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgTmV0d29y
a1RpbWVvdXQoRXhjZXB0aW9uKToKQEAgLTUwLDcgKzUyLDggQEAgY2xhc3MgTmV0d29ya1RyYW5z
YWN0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QoKQogICAgICAg
ICAgICAgZXhjZXB0IEhUVFBFcnJvciwgZToKICAgICAgICAgICAgICAgICBzZWxmLl9jaGVja19m
b3JfdGltZW91dCgpCi0gICAgICAgICAgICAgICAgbG9nKCJSZWNlaXZlZCBIVFRQIHN0YXR1cyAl
cyBmcm9tIHNlcnZlci4gIFJldHJ5aW5nIGluICVzIHNlY29uZHMuLi4iICUgKGUuY29kZSwgc2Vs
Zi5fYmFja29mZl9zZWNvbmRzKSkKKyAgICAgICAgICAgICAgICBfbG9nLndhcm4oIlJlY2VpdmVk
IEhUVFAgc3RhdHVzICVzIGZyb20gc2VydmVyLiAgUmV0cnlpbmcgaW4gIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAiJXMgc2Vjb25kcy4uLiIgJSAoZS5jb2RlLCBzZWxmLl9iYWNrb2ZmX3Nl
Y29uZHMpKQogICAgICAgICAgICAgICAgIHNlbGYuX3NsZWVwKCkKIAogICAgIGRlZiBfY2hlY2tf
Zm9yX3RpbWVvdXQoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHMucHkKaW5kZXggMzY3ZDlhNS4uMzFiMjRkZiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3V0
aWxzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9s
b2d1dGlscy5weQpAQCAtMjIsMTEgKzIyLDE4IEBACiAKICIiIlN1cHBvcnRzIHdlYmtpdHB5IGxv
Z2dpbmcuIiIiCiAKKyMgRklYTUU6IE1vdmUgdGhpcyBmaWxlIHRvIHdlYmtpdHB5L3B5dGhvbjI0
IHNpbmNlIGxvZ2dpbmcgbmVlZHMgdG8KKyMgICAgICAgIGJlIGNvbmZpZ3VyZWQgcHJpb3IgdG8g
cnVubmluZyB2ZXJzaW9uLWNoZWNraW5nIGNvZGUuCisKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQg
b3MKK2ltcG9ydCBzeXMKIAogaW1wb3J0IHdlYmtpdHB5CiAKKworX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQorCiAjIFdlIHNldCB0aGVzZSBkaXJlY3RvcnkgcGF0aHMgbGF6aWx5
IGluIGdldF9sb2dnZXIoKSBiZWxvdy4KIF9zY3JpcHRzX2RpciA9ICIiCiAiIiJUaGUgbm9ybWFs
aXplZCwgYWJzb2x1dGUgcGF0aCB0byB0aGUgLi4uU2NyaXB0cyBkaXJlY3RvcnkuIiIiCkBAIC0x
MTYsMyArMTIzLDgyIEBAIGRlZiBnZXRfbG9nZ2VyKHBhdGgpOgogICAgICAgICBsb2dnZXJfbmFt
ZSA9IG9zLnBhdGguc3BsaXRleHQoYmFzZW5hbWUpWzBdCiAKICAgICByZXR1cm4gbG9nZ2luZy5n
ZXRMb2dnZXIobG9nZ2VyX25hbWUpCisKKworZGVmIF9kZWZhdWx0X2hhbmRsZXJzKHN0cmVhbSk6
CisgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiB0aGUgZGVmYXVsdCBsb2dnaW5nIGhhbmRsZXJzIHRv
IHVzZS4KKworICAgIEFyZ3M6CisgICAgICBzdHJlYW06IFNlZSB0aGUgY29uZmlndXJlX2xvZ2dp
bmcoKSBkb2NzdHJpbmcuCisKKyAgICAiIiIKKyAgICAjIENyZWF0ZSB0aGUgZmlsdGVyLgorICAg
IGRlZiBzaG91bGRfbG9nKHJlY29yZCk6CisgICAgICAgICIiIlJldHVybiB3aGV0aGVyIGEgbG9n
Z2luZy5Mb2dSZWNvcmQgc2hvdWxkIGJlIGxvZ2dlZC4iIiIKKyAgICAgICAgIyBGSVhNRTogRW5h
YmxlIHRoZSBsb2dnaW5nIG9mIGF1dG9pbnN0YWxsIG1lc3NhZ2VzIG9uY2UKKyAgICAgICAgIyAg
ICAgICAgYXV0b2luc3RhbGwgaXMgYWRqdXN0ZWQuICBDdXJyZW50bHksIGF1dG9pbnN0YWxsIGxv
Z3MKKyAgICAgICAgIyAgICAgICAgSU5GTyBtZXNzYWdlcyB3aGVuIGltcG9ydGluZyBhbHJlYWR5
LWRvd25sb2FkZWQgcGFja2FnZXMsCisgICAgICAgICMgICAgICAgIHdoaWNoIGlzIHRvbyB2ZXJi
b3NlLgorICAgICAgICBpZiByZWNvcmQubmFtZS5zdGFydHN3aXRoKCJ3ZWJraXRweS50aGlyZHBh
cnR5LmF1dG9pbnN0YWxsIik6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0
dXJuIFRydWUKKworICAgIGxvZ2dpbmdfZmlsdGVyID0gbG9nZ2luZy5GaWx0ZXIoKQorICAgIGxv
Z2dpbmdfZmlsdGVyLmZpbHRlciA9IHNob3VsZF9sb2cKKworICAgICMgQ3JlYXRlIHRoZSBoYW5k
bGVyLgorICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoc3RyZWFtKQorICAgIGZv
cm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKCIlKG5hbWUpczogWyUobGV2ZWxuYW1lKXNdICUo
bWVzc2FnZSlzIikKKyAgICBoYW5kbGVyLnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCisgICAgaGFu
ZGxlci5hZGRGaWx0ZXIobG9nZ2luZ19maWx0ZXIpCisKKyAgICByZXR1cm4gW2hhbmRsZXJdCisK
KworZGVmIGNvbmZpZ3VyZV9sb2dnaW5nKGxvZ2dpbmdfbGV2ZWw9bG9nZ2luZy5JTkZPLCBsb2dn
ZXI9Tm9uZSwgc3RyZWFtPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM9Tm9u
ZSk6CisgICAgIiIiQ29uZmlndXJlIGxvZ2dpbmcgZm9yIHN0YW5kYXJkIHB1cnBvc2VzLgorCisg
ICAgUmV0dXJuczoKKyAgICAgIEEgbGlzdCBvZiByZWZlcmVuY2VzIHRvIHRoZSBsb2dnaW5nIGhh
bmRsZXJzIGFkZGVkIHRvIHRoZSByb290CisgICAgICBsb2dnZXIuICBUaGlzIGFsbG93cyB0aGUg
Y2FsbGVyIHRvIGxhdGVyIHJlbW92ZSB0aGUgaGFuZGxlcnMKKyAgICAgIHVzaW5nIGxvZ2dlci5y
ZW1vdmVIYW5kbGVyLiAgVGhpcyBpcyB1c2VmdWwgcHJpbWFyaWx5IGR1cmluZyB1bml0CisgICAg
ICB0ZXN0aW5nIHdoZXJlIHRoZSBjYWxsZXIgbWF5IHdhbnQgdG8gY29uZmlndXJlIGxvZ2dpbmcg
dGVtcG9yYXJpbHkKKyAgICAgIGFuZCB0aGVuIHVuZG8gdGhlIGNvbmZpZ3VyaW5nLgorCisgICAg
QXJnczoKKyAgICAgIGxvZ2dpbmdfbGV2ZWw6IFRoZSBtaW5pbXVtIGxvZ2dpbmcgbGV2ZWwgdG8g
bG9nLgorICAgICAgbG9nZ2VyOiBBIGxvZ2dpbmcubG9nZ2VyIGluc3RhbmNlIHRvIGNvbmZpZ3Vy
ZS4gIFRoaXMgcGFyYW1ldGVyCisgICAgICAgICAgICAgIHNob3VsZCBiZSB1c2VkIG9ubHkgaW4g
dW5pdCB0ZXN0cy4gIERlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICByb290IGxvZ2dlci4K
KyAgICAgIHN0cmVhbTogQSBmaWxlLWxpa2Ugb2JqZWN0IHRvIHdoaWNoIHRvIGxvZyB1c2VkIGlu
IGNyZWF0aW5nIHRoZSBkZWZhdWx0CisgICAgICAgICAgICAgIGhhbmRsZXJzLiAgVGhlIHN0cmVh
bSBtdXN0IGRlZmluZSBhbiAiZW5jb2RpbmciIGRhdGEgYXR0cmlidXRlLAorICAgICAgICAgICAg
ICBvciBlbHNlIGxvZ2dpbmcgcmFpc2VzIGFuIGVycm9yLiAgRGVmYXVsdHMgdG8gc3lzLnN0ZGVy
ci4KKyAgICAgIGhhbmRsZXJzOiBBIGxpc3Qgb2YgbG9nZ2luZy5IYW5kbGVyIGluc3RhbmNlcyB0
byBhZGQgdG8gdGhlIGxvZ2dlcgorICAgICAgICAgICAgICAgIGJlaW5nIGNvbmZpZ3VyZWQuICBJ
ZiB0aGlzIHBhcmFtZXRlciBpcyBwcm92aWRlZCwgdGhlbiB0aGUKKyAgICAgICAgICAgICAgICBz
dHJlYW0gcGFyYW1ldGVyIGlzIG5vdCB1c2VkLgorCisgICAgIiIiCisgICAgIyBJZiB0aGUgc3Ry
ZWFtIGRvZXMgbm90IGRlZmluZSBhbiAiZW5jb2RpbmciIGRhdGEgYXR0cmlidXRlLCB0aGUKKyAg
ICAjIGxvZ2dpbmcgbW9kdWxlIGNhbiB0aHJvdyBhbiBlcnJvciBsaWtlIHRoZSBmb2xsb3dpbmc6
CisgICAgIworICAgICMgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICMg
ICBGaWxlICIvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9QeXRob24uZnJhbWV3b3JrL1ZlcnNp
b25zLzIuNi8uLi4KKyAgICAjICAgICAgICAgbGliL3B5dGhvbjIuNi9sb2dnaW5nL19faW5pdF9f
LnB5IiwgbGluZSA3NjEsIGluIGVtaXQKKyAgICAjICAgICBzZWxmLnN0cmVhbS53cml0ZShmcyAl
IG1zZy5lbmNvZGUoc2VsZi5zdHJlYW0uZW5jb2RpbmcpKQorICAgICMgTG9va3VwRXJyb3I6IHVu
a25vd24gZW5jb2Rpbmc6IHVua25vd24KKyAgICBpZiBsb2dnZXIgaXMgTm9uZToKKyAgICAgICAg
bG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorICAgIGlmIHN0cmVhbSBpcyBOb25lOgorICAg
ICAgICBzdHJlYW0gPSBzeXMuc3RkZXJyCisgICAgaWYgaGFuZGxlcnMgaXMgTm9uZToKKyAgICAg
ICAgaGFuZGxlcnMgPSBfZGVmYXVsdF9oYW5kbGVycyhzdHJlYW0pCisKKyAgICBsb2dnZXIuc2V0
TGV2ZWwobG9nZ2luZ19sZXZlbCkKKworICAgIGZvciBoYW5kbGVyIGluIGhhbmRsZXJzOgorICAg
ICAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQorCisgICAgX2xvZy5kZWJ1ZygiRGVidWcg
bG9nZ2luZyBlbmFibGVkLiIpCisKKyAgICByZXR1cm4gaGFuZGxlcnMKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d1dGlsc191bml0dGVz
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9sb2d1dGls
c191bml0dGVzdC5weQppbmRleCBiNmVkMzVmLi5hNGE2NDk2IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vbG9ndXRpbHNfdW5pdHRlc3QucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2xvZ3V0aWxz
X3VuaXR0ZXN0LnB5CkBAIC0yMiwxMCArMjIsMTMgQEAKIAogIiIiVW5pdCB0ZXN0cyBmb3IgbG9n
dXRpbHMucHkuIiIiCiAKK2ltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCB1bml0dGVz
dAogCi1pbXBvcnQgbG9ndXRpbHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d0ZXN0
aW5nIGltcG9ydCBMb2dUZXN0aW5nCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndGVz
dGluZyBpbXBvcnQgVGVzdExvZ1N0cmVhbQoraW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
bG9ndXRpbHMgYXMgbG9ndXRpbHMKIAogCiBjbGFzcyBHZXRMb2dnZXJUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKQEAgLTUwLDMgKzUzLDkwIEBAIGNsYXNzIEdldExvZ2dlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsb2dnZXIubmFtZSwgInRlc3Qt
d2Via2l0cHkiKQogCiAgICAgICAgIG9zLmNoZGlyKHdvcmtpbmdfZGlyZWN0b3J5KQorCisKK2Ns
YXNzIENvbmZpZ3VyZUxvZ2dpbmdUZXN0QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICAi
IiJCYXNlIGNsYXNzIGZvciBjb25maWd1cmVfbG9nZ2luZygpIHVuaXQgdGVzdHMuIiIiCisKKyAg
ICBkZWYgX2xvZ2dpbmdfbGV2ZWwoc2VsZik6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm90
IGltcGxlbWVudGVkLiIpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIGxvZ19zdHJl
YW0gPSBUZXN0TG9nU3RyZWFtKHNlbGYpCisKKyAgICAgICAgIyBVc2UgYSBsb2dnZXIgb3RoZXIg
dGhhbiB0aGUgcm9vdCBsb2dnZXIgb3Igb25lIHByZWZpeGVkIHdpdGgKKyAgICAgICAgIyAid2Vi
a2l0cHkuIiBzbyBhcyBub3QgdG8gY29uZmxpY3Qgd2l0aCB0ZXN0LXdlYmtpdHB5IGxvZ2dpbmcu
CisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ1bml0dGVzdCIpCisKKyAgICAg
ICAgIyBDb25maWd1cmUgdGhlIHRlc3QgbG9nZ2VyIG5vdCB0byBwYXNzIG1lc3NhZ2VzIGFsb25n
IHRvIHRoZQorICAgICAgICAjIHJvb3QgbG9nZ2VyLiAgVGhpcyBwcmV2ZW50cyB0ZXN0IG1lc3Nh
Z2VzIGZyb20gYmVpbmcKKyAgICAgICAgIyBwcm9wYWdhdGVkIHRvIGxvZ2dlcnMgdXNlZCBieSB0
ZXN0LXdlYmtpdHB5IGxvZ2dpbmcgKGUuZy4KKyAgICAgICAgIyB0aGUgcm9vdCBsb2dnZXIpLgor
ICAgICAgICBsb2dnZXIucHJvcGFnYXRlID0gRmFsc2UKKworICAgICAgICBsb2dnaW5nX2xldmVs
ID0gc2VsZi5fbG9nZ2luZ19sZXZlbCgpCisgICAgICAgIHNlbGYuX2hhbmRsZXJzID0gbG9ndXRp
bHMuY29uZmlndXJlX2xvZ2dpbmcobG9nZ2luZ19sZXZlbD1sb2dnaW5nX2xldmVsLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlcj1sb2dn
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RyZWFtPWxvZ19zdHJlYW0pCisgICAgICAgIHNlbGYuX2xvZyA9IGxvZ2dlcgorICAgICAgICBz
ZWxmLl9sb2dfc3RyZWFtID0gbG9nX3N0cmVhbQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgor
ICAgICAgICAiIiJSZXNldCBsb2dnaW5nIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZS4KKworICAgICAg
ICBUaGlzIG1ldGhvZCBlbnN1cmVzIHRoYXQgdGhlIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBzZXQg
dXAKKyAgICAgICAgZm9yIGEgdW5pdCB0ZXN0IGRvZXMgbm90IGFmZmVjdCBsb2dnaW5nIGluIG90
aGVyIHVuaXQgdGVzdHMuCisKKyAgICAgICAgIiIiCisgICAgICAgIGxvZ2dlciA9IHNlbGYuX2xv
ZworICAgICAgICBmb3IgaGFuZGxlciBpbiBzZWxmLl9oYW5kbGVyczoKKyAgICAgICAgICAgIGxv
Z2dlci5yZW1vdmVIYW5kbGVyKGhhbmRsZXIpCisKKyAgICBkZWYgX2Fzc2VydF9sb2dfbWVzc2Fn
ZXMoc2VsZiwgbWVzc2FnZXMpOgorICAgICAgICAiIiJBc3NlcnQgdGhhdCB0aGUgbG9nZ2VkIG1l
c3NhZ2VzIGVxdWFsIHRoZSBnaXZlbiBtZXNzYWdlcy4iIiIKKyAgICAgICAgc2VsZi5fbG9nX3N0
cmVhbS5hc3NlcnRNZXNzYWdlcyhtZXNzYWdlcykKKworCitjbGFzcyBDb25maWd1cmVMb2dnaW5n
VGVzdChDb25maWd1cmVMb2dnaW5nVGVzdEJhc2UpOgorCisgICAgIiIiVGVzdHMgY29uZmlndXJl
X2xvZ2dpbmcoKSB3aXRoIHRoZSBkZWZhdWx0IGxvZ2dpbmcgbGV2ZWwuIiIiCisKKyAgICBkZWYg
X2xvZ2dpbmdfbGV2ZWwoc2VsZik6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgdGVz
dF9pbmZvX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHNlbGYuX2xvZy5pbmZvKCJ0ZXN0IG1lc3Nh
Z2UiKQorICAgICAgICBzZWxmLl9hc3NlcnRfbG9nX21lc3NhZ2VzKFsidW5pdHRlc3Q6IFtJTkZP
XSB0ZXN0IG1lc3NhZ2VcbiJdKQorCisgICAgZGVmIHRlc3RfYmVsb3dfdGhyZXNob2xkX21lc3Nh
Z2Uoc2VsZik6CisgICAgICAgICMgV2UgdGVzdCB0aGUgYm91bmRhcnkgY2FzZSBvZiBhIGxvZ2dp
bmcgbGV2ZWwgZXF1YWwgdG8gMTkuCisgICAgICAgICMgSW4gcHJhY3RpY2UsIHdlIHdpbGwgcHJv
YmFibHkgb25seSBiZSBjYWxsaW5nIGxvZy5kZWJ1ZygpLAorICAgICAgICAjIHdoaWNoIGNvcnJl
c3BvbmRzIHRvIGEgbG9nZ2luZyBsZXZlbCBvZiAxMC4KKyAgICAgICAgbGV2ZWwgPSBsb2dnaW5n
LklORk8gLSAxICAjIEVxdWFscyAxOS4KKyAgICAgICAgc2VsZi5fbG9nLmxvZyhsZXZlbCwgInRl
c3QgbWVzc2FnZSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9sb2dfbWVzc2FnZXMoW10pCisKKyAg
ICBkZWYgdGVzdF90d29fbWVzc2FnZXMoc2VsZik6CisgICAgICAgIHNlbGYuX2xvZy5pbmZvKCJt
ZXNzYWdlMSIpCisgICAgICAgIHNlbGYuX2xvZy5pbmZvKCJtZXNzYWdlMiIpCisgICAgICAgIHNl
bGYuX2Fzc2VydF9sb2dfbWVzc2FnZXMoWyJ1bml0dGVzdDogW0lORk9dIG1lc3NhZ2UxXG4iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pdHRlc3Q6IFtJTkZPXSBtZXNz
YWdlMlxuIl0pCisKKworY2xhc3MgQ29uZmlndXJlTG9nZ2luZ0N1c3RvbUxldmVsVGVzdChDb25m
aWd1cmVMb2dnaW5nVGVzdEJhc2UpOgorCisgICAgIiIiVGVzdHMgY29uZmlndXJlX2xvZ2dpbmco
KSB3aXRoIGEgY3VzdG9tIGxvZ2dpbmcgbGV2ZWwuIiIiCisKKyAgICBfbGV2ZWwgPSAzNgorCisg
ICAgZGVmIF9sb2dnaW5nX2xldmVsKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fbGV2ZWwK
KworICAgIGRlZiB0ZXN0X2xvZ2dlZF9tZXNzYWdlKHNlbGYpOgorICAgICAgICBzZWxmLl9sb2cu
bG9nKHNlbGYuX2xldmVsLCAidGVzdCBtZXNzYWdlIikKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2xv
Z19tZXNzYWdlcyhbInVuaXR0ZXN0OiBbTGV2ZWwgMzZdIHRlc3QgbWVzc2FnZVxuIl0pCisKKyAg
ICBkZWYgdGVzdF9iZWxvd190aHJlc2hvbGRfbWVzc2FnZShzZWxmKToKKyAgICAgICAgc2VsZi5f
bG9nLmxvZyhzZWxmLl9sZXZlbCAtIDEsICJ0ZXN0IG1lc3NhZ2UiKQorICAgICAgICBzZWxmLl9h
c3NlcnRfbG9nX21lc3NhZ2VzKFtdKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5CmluZGV4IGMzNDI4MGQuLmQzYjhkNGUgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTM1LDcgKzM1LDYgQEAgaW1w
b3J0IGxvZ2dpbmcKIGltcG9ydCBvcy5wYXRoCiBpbXBvcnQgc3lzCiAKLWZyb20gLi4gc3R5bGVf
cmVmZXJlbmNlcyBpbXBvcnQgcGFyc2VfcGF0Y2gKIGZyb20gZXJyb3JfaGFuZGxlcnMgaW1wb3J0
IERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcgogZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgUGF0
Y2hTdHlsZUVycm9ySGFuZGxlcgogZnJvbSBmaWx0ZXIgaW1wb3J0IEZpbHRlckNvbmZpZ3VyYXRp
b24KQEAgLTQ1LDYgKzQ0LDggQEAgZnJvbSBwcm9jZXNzb3JzLmNvbW1vbiBpbXBvcnQgY2F0ZWdv
cmllcyBhcyBDb21tb25DYXRlZ29yaWVzCiBmcm9tIHByb2Nlc3NvcnMuY29tbW9uIGltcG9ydCBD
YXJyaWFnZVJldHVyblByb2Nlc3NvcgogZnJvbSBwcm9jZXNzb3JzLmNwcCBpbXBvcnQgQ3BwUHJv
Y2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMudGV4dCBpbXBvcnQgVGV4dFByb2Nlc3NvcgorZnJvbSB3
ZWJraXRweS5zdHlsZV9yZWZlcmVuY2VzIGltcG9ydCBwYXJzZV9wYXRjaAorZnJvbSB3ZWJraXRw
eS5zdHlsZV9yZWZlcmVuY2VzIGltcG9ydCBjb25maWd1cmVfbG9nZ2luZyBhcyBfY29uZmlndXJl
X2xvZ2dpbmcKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweS5zdHlsZS5jaGVj
a2VyIikKIApAQCAtMzA5LDEwICszMTAsOCBAQCBkZWYgY29uZmlndXJlX2xvZ2dpbmcoc3RyZWFt
LCBsb2dnZXI9Tm9uZSwgaXNfdmVyYm9zZT1GYWxzZSk6CiAgICAgICAgIGxvZ2dpbmdfbGV2ZWwg
PSBsb2dnaW5nLklORk8KICAgICAgICAgaGFuZGxlcnMgPSBfY3JlYXRlX2xvZ19oYW5kbGVycyhz
dHJlYW0pCiAKLSAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZ19sZXZlbCkKLQotICAgIGZvciBo
YW5kbGVyIGluIGhhbmRsZXJzOgotICAgICAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQor
ICAgIGhhbmRsZXJzID0gX2NvbmZpZ3VyZV9sb2dnaW5nKGxvZ2dpbmdfbGV2ZWw9bG9nZ2luZ19s
ZXZlbCwgbG9nZ2VyPWxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YW5kbGVycz1oYW5kbGVycykKIAogICAgIHJldHVybiBoYW5kbGVycwogCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlX3JlZmVyZW5jZXMucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlX3JlZmVyZW5jZXMucHkKaW5kZXggOWRkMzk5Zi4u
NDg4OWQ2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZV9y
ZWZlcmVuY2VzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGVfcmVm
ZXJlbmNlcy5weQpAQCAtNDMsNiArNDMsNyBAQCBpbXBvcnQgb3MKIGZyb20gd2Via2l0cHkuY29t
bW9uLmNoZWNrb3V0LmRpZmZfcGFyc2VyIGltcG9ydCBEaWZmUGFyc2VyCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0ubG9ndGVzdGluZyBpbXBvcnQgTG9nVGVzdGluZwogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmxvZ3Rlc3RpbmcgaW1wb3J0IFRlc3RMb2dTdHJlYW0KK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBpbXBvcnQgY29uZmlndXJlX2xvZ2dpbmcKIGZy
b20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0K
IAogCg==
</data>
<flag name="review"
          id="35223"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="35224"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>