<?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>33496</bug_id>
          
          <creation_ts>2010-01-11 15:41:39 -0800</creation_ts>
          <short_desc>webkit-commit-queue status page is confusing</short_desc>
          <delta_ts>2010-06-10 20:35:59 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179580</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-11 15:41:39 -0800</bug_when>
    <thetext>webkit-commit-queue status page is confusing

&lt;WildFox&gt; eseidel: wondering about this commit-queue status page, when it says &quot;patch 46256... from bug...: Fail&quot; - what does that mean

Most of those &quot;Fail&quot; messages are temporary.  The page does not express that very well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180015</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-12 16:09:28 -0800</bug_when>
    <thetext>This is actually partially teh commit-queue bots fault.  It shouldn&apos;t post &quot;FAIL&quot; in those cases, it shoudl post &quot;Error&quot; when the failure is temporary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180309</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-13 11:30:13 -0800</bug_when>
    <thetext>I&apos;ve had two more complaints since about FAIL being confusing.  Need to improve status reporting here. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182549</commentid>
    <comment_count>3</comment_count>
      <attachid>46964</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-19 17:16:34 -0800</bug_when>
    <thetext>Created attachment 46964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182552</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-19 17:19:10 -0800</bug_when>
    <thetext>*** Bug 33871 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182587</commentid>
    <comment_count>5</comment_count>
      <attachid>46964</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-19 20:02:23 -0800</bug_when>
    <thetext>Comment on attachment 46964
Patch

         if is_svn_apply:
-            QueueEngine.exit_after_handled_error(script_error)
+            return # No need to update the bug for svn-apply failures.
[...]
-        exit(1)

How is the master process supposed to distinguish these cases if we don&apos;t return a different exit code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182602</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-19 20:36:43 -0800</bug_when>
    <thetext>Why does the master process need to care?  We&apos;ve updated the server, the master process will notice next time it queries the server.

Exiting 1 will cause the master process to also update the server, because it thinks things failed.  The master process doesnt&apos; need to do anything in that case.

This is the only place that handle_script_error is called:
http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/stepsequence.py#L76</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182606</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-19 21:16:06 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Why does the master process need to care?

The master process decides whether to log a &quot;FAIL&quot; message to the server depending on the return code used by the child process.  If we land this change, the purple bubbles will become red because the master will not know that the child was able to handle svn-apply failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182609</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-19 21:25:37 -0800</bug_when>
    <thetext>exit code 1 should cause FAIL.  2 should cause nothing because the child handled it.  You&apos;re seeing something I&quot;m not, or you&apos;re reading the code backwards. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182681</commentid>
    <comment_count>9</comment_count>
      <attachid>46995</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-20 02:21:19 -0800</bug_when>
    <thetext>Created attachment 46995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182689</commentid>
    <comment_count>10</comment_count>
      <attachid>46997</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-20 02:50:20 -0800</bug_when>
    <thetext>Created attachment 46997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182690</commentid>
    <comment_count>11</comment_count>
      <attachid>46997</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-20 02:55:27 -0800</bug_when>
    <thetext>Comment on attachment 46997
Patch

This is much better</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182701</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-20 03:21:34 -0800</bug_when>
    <thetext>Committed r53537: &lt;http://trac.webkit.org/changeset/53537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182929</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-20 15:01:41 -0800</bug_when>
    <thetext>Reverted r53537 for reason:

Added a failure condition to the commit-queue and looks to have broken the EWS bots

Committed r53570: &lt;http://trac.webkit.org/changeset/53570&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183032</commentid>
    <comment_count>14</comment_count>
      <attachid>46997</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-20 19:09:50 -0800</bug_when>
    <thetext>Comment on attachment 46997
Patch

Clearing flags on attachment: 46997

Committed r53593: &lt;http://trac.webkit.org/changeset/53593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183033</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-20 19:09:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183036</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-20 19:17:07 -0800</bug_when>
    <thetext>Bah!  This is why we clear flags.  The commit-queeu just re-landed what I had rolled out.  I guess I&apos;ll just fix it this time...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183094</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-20 23:35:36 -0800</bug_when>
    <thetext>About to roll this out again.  Filed a bug about webkit-patch rollout needing to clear flag when re-opening bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183095</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-20 23:50:46 -0800</bug_when>
    <thetext>Reverted r53593 for reason:

Re-rollout this patch, the commit-queue should not have landed it again, but it did due to land-diff and rollout both not clearing flags.

Committed r53609: &lt;http://trac.webkit.org/changeset/53609&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46964</attachid>
            <date>2010-01-19 17:16:34 -0800</date>
            <delta_ts>2010-01-20 02:21:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33496-20100119171633.patch</filename>
            <type>text/plain</type>
            <size>12213</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzZDNiODY4Li4xY2JhMmFiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMgQEAKIDIwMTAtMDEt
MTkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1jb21taXQtcXVldWUgc3RhdHVzIHBh
Z2UgaXMgY29uZnVzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMzQ5NgorCisgICAgICAgIFRoaXMgc2hvdWxkIGltcHJvdmUgdGhlIHN0YXR1cyBw
YWdlIGJ5IHJlbW92aW5nIG1vcmUgRmFpbCBtZXNzYWdlcy4KKworICAgICAgICBUaGlzIHdpbGwg
YWxzbyBtYWtlIHRoZSBzdHlsZS1xdWV1ZSBzaGFyZSBtb3JlIGJ1ZyBwb3N0aW5nIGxvZ2ljIHdp
dGggb3RoZXIgcXVldWVzOgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzM4NzEKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZWFy
bHlfd2FybmluZ19zeXN0ZW0ucHk6CisgICAgICAgICAtIERvbid0IGV4aXQoMSkgYXMgdGhhdCB3
aWxsIGNhdXNlIHRoZSBjYWxsaW5nIHF1ZXVlIHRvIGFsc28gcmVwb3J0IEZBSUwgdG8gdGhlIHN0
YXR1cyBzZXJ2ZXIuCisgICAgICAgICAgIEltcGxlbWVudG9ycyBvZiBoYW5kbGVfc2NyaXB0X2Vy
cm9yIGFyZSBleHBlY3RlZCB0byB1cGRhdGUgdGhlIHN0YXR1cyBzZXJ2ZXIgaWYgbmVlZGVkLCBi
dXQgb25seSBleGl0IGlmIHRoZSBlcnJvciBjb3VsZCBub3QgYmUgaGFuZGxlZC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAgIC0gQWJzdHJh
Y3QgX2Zvcm1hdF9zY3JpcHRfZXJyb3Jfb3V0cHV0X2Zvcl9idWcgdG8gc2hhcmUgY29kZSBiZXR3
ZWVuIGFsbCBxdWV1ZXMuCisgICAgICAgICAtIFRoZSBuZXcgX2Zvcm1hdF9zY3JpcHRfZXJyb3Jf
b3V0cHV0X2Zvcl9idWcgYWxsb3dzIHRoZSBzdHlsZS1xdWV1ZSB0byBzaGFyZSB0aGUgcG9zdGlu
ZyBsaW1pdCB3aXRoIG90aGVyIHF1ZXVlcywgYXMgd2VsbCBhcyBzdXBwb3J0IGxpbmtpbmcgdG8g
dGhlIGZ1bGwgb3V0cHV0LgorICAgICAgICAgLSBSZW5hbWUgX2Nhbl9idWlsZF9hbmRfdGVzdCB0
byBfY3VycmVudF9jaGVja291dF9idWlsZHNfYW5kX3Bhc3Nlc190ZXN0cyB0byBiZXR0ZXIgZXhw
bGFpbiB3aGF0IHJldmlzaW9uIGl0J3MgdGVzdGluZy4KKyAgICAgICAgIC0gTW92ZSBsb2dnaW5n
IG91dCBvZiBfY2FuX2J1aWxkX2FuZF90ZXN0IGFuZCBtYWtlIHRoZSBsb2dzIGV4cGxhaW4gd2hh
dCByZXZpc2lvbiB3ZSdyZSB0ZXN0aW5nLgorICAgICAgICAgLSBUaGUgY29tbWl0LXF1ZXVlIHNo
b3VsZCBub3QgcG9zdCAiRkFJTCIgd2hlbiB0aGUgc3VicHJvY2VzcyByZXR1cm5zIGFmdGVyIGEg
aGFuZGxlZCBlcnJvci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3F1ZXVlZW5naW5lLnB5
OgorICAgICAgICAgLSBRdWV1ZUVuZ2luZSBpcyBubyBsb25nZXIgdXNlZCBqdXN0IGJ5IHRoZSBj
b21taXQtcXVldWUsIHVwZGF0ZSB0aGUgbG9nZ2luZyB0byBzYXkgInByb2Nlc3NpbmciIGluc3Rl
YWQgb2YgbGFuZGluZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3NjbS5weToKKyAgICAg
ICAgIC0gQWRkIG5ldyBjaGVja291dF9yZXZpc2lvbiBmdW5jdGlvbi4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3NjbV91bml0dGVzdC5weToKKyAgICAgICAgIC0gVGVzdCBvdXIgbmV3IGNo
ZWNrb3V0X3JldmlzaW9uIGZ1bmN0aW9uLgorCisyMDEwLTAxLTE5ICBFcmljIFNlaWRlbCAgPGVy
aWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgogCiAgICAg
ICAgIHZhbGlkYXRlLWNvbW1pdHRlci1saXN0cyB0aHJvd3MgZXhjZXB0aW9uIGFuZCBjb21taXR0
ZXJzLnB5IG5lZWRzIGEgcmVmcmVzaApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tYW5kcy9lYXJseV93YXJuaW5nX3N5c3RlbS5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZWFybHlfd2FybmluZ19zeXN0ZW0ucHkKaW5kZXggYjMx
ODI5MS4uZGEyNmUwZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tYW5kcy9lYXJseV93YXJuaW5nX3N5c3RlbS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL2Vhcmx5X3dhcm5pbmdfc3lzdGVtLnB5CkBAIC03NCwxMSArNzQs
MTAgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1
ZSk6CiAgICAgICAgIGlzX3N2bl9hcHBseSA9IHNjcmlwdF9lcnJvci5jb21tYW5kX25hbWUoKSA9
PSAic3ZuLWFwcGx5IgogICAgICAgICBzdGF0dXNfaWQgPSBjbHMuX3VwZGF0ZV9zdGF0dXNfZm9y
X3NjcmlwdF9lcnJvcih0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yLCBpc19lcnJvcj1pc19zdm5f
YXBwbHkpCiAgICAgICAgIGlmIGlzX3N2bl9hcHBseToKLSAgICAgICAgICAgIFF1ZXVlRW5naW5l
LmV4aXRfYWZ0ZXJfaGFuZGxlZF9lcnJvcihzY3JpcHRfZXJyb3IpCisgICAgICAgICAgICByZXR1
cm4gIyBObyBuZWVkIHRvIHVwZGF0ZSB0aGUgYnVnIGZvciBzdm4tYXBwbHkgZmFpbHVyZXMuCiAg
ICAgICAgIHJlc3VsdHNfbGluayA9IHRvb2wuc3RhdHVzX3NlcnZlci5yZXN1bHRzX3VybF9mb3Jf
c3RhdHVzKHN0YXR1c19pZCkKICAgICAgICAgbWVzc2FnZSA9ICJBdHRhY2htZW50ICVzIGRpZCBu
b3QgYnVpbGQgb24gJXM6XG5CdWlsZCBvdXRwdXQ6ICVzIiAlIChzdGF0ZVsicGF0Y2giXS5pZCgp
LCBjbHMucG9ydF9uYW1lLCByZXN1bHRzX2xpbmspCiAgICAgICAgIHRvb2wuYnVncy5wb3N0X2Nv
bW1lbnRfdG9fYnVnKHN0YXRlWyJwYXRjaCJdLmJ1Z19pZCgpLCBtZXNzYWdlLCBjYz1jbHMud2F0
Y2hlcnMpCi0gICAgICAgIGV4aXQoMSkKIAogCiBjbGFzcyBHdGtFV1MoQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0pOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tYW5kcy9xdWV1ZXMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRz
L3F1ZXVlcy5weQppbmRleCAzNTBjMWVhLi4wNzMwYzZlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weQpAQCAtMTMxLDYgKzEzMSwxMyBAQCBj
bGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lRGVsZWdhdGUpOgogICAgICAg
ICAgICAgbWVzc2FnZSA9ICJFcnJvcjogJXMiICUgbWVzc2FnZQogICAgICAgICByZXR1cm4gdG9v
bC5zdGF0dXNfc2VydmVyLnVwZGF0ZV9zdGF0dXMoY2xzLm5hbWUsIG1lc3NhZ2UsIHN0YXRlWyJw
YXRjaCJdLCBTdHJpbmdJTyhzY3JpcHRfZXJyb3Iub3V0cHV0KSkKIAorICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBfZm9ybWF0X3NjcmlwdF9lcnJvcl9vdXRwdXRfZm9yX2J1Zyh0b29sLCBzdGF0
dXNfaWQsIHNjcmlwdF9lcnJvcik6CisgICAgICAgIGlmIG5vdCBzY3JpcHRfZXJyb3Iub3V0cHV0
OgorICAgICAgICAgICAgcmV0dXJuIHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KCkK
KyAgICAgICAgcmVzdWx0c19saW5rID0gdG9vbC5zdGF0dXNfc2VydmVyLnJlc3VsdHNfdXJsX2Zv
cl9zdGF0dXMoc3RhdHVzX2lkKQorICAgICAgICByZXR1cm4gIiVzXG5GdWxsIG91dHB1dDogJXMi
ICUgKHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KCksIHJlc3VsdHNfbGluaykKKwog
CiBjbGFzcyBDb21taXRRdWV1ZShBYnN0cmFjdFF1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRs
ZXIpOgogICAgIG5hbWUgPSAiY29tbWl0LXF1ZXVlIgpAQCAtMTU5LDExICsxNjYsMTAgQEAgY2xh
c3MgQ29tbWl0UXVldWUoQWJzdHJhY3RRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToK
ICAgICAgICAgc2VsZi5sb2dfcHJvZ3Jlc3MoW3BhdGNoLmlkKCkgZm9yIHBhdGNoIGluIHBhdGNo
ZXNdKQogICAgICAgICByZXR1cm4gcGF0Y2hlc1swXQogCi0gICAgZGVmIF9jYW5fYnVpbGRfYW5k
X3Rlc3Qoc2VsZik6CisgICAgZGVmIF9jdXJyZW50X2NoZWNrb3V0X2J1aWxkc19hbmRfcGFzc2Vz
X3Rlc3RzKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnJ1bl93ZWJraXRf
cGF0Y2goWyJidWlsZC1hbmQtdGVzdCIsICItLWZvcmNlLWNsZWFuIiwgIi0tbm9uLWludGVyYWN0
aXZlIiwgIi0tYnVpbGQtc3R5bGU9Ym90aCIsICItLXF1aWV0Il0pCiAgICAgICAgIGV4Y2VwdCBT
Y3JpcHRFcnJvciwgZToKLSAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoIlVuYWJsZWQg
dG8gc3VjY2Vzc2Z1bGx5IGJ1aWxkIGFuZCB0ZXN0IiwgTm9uZSkKICAgICAgICAgICAgIHJldHVy
biBGYWxzZQogICAgICAgICByZXR1cm4gVHJ1ZQogCkBAIC0xNzgsNyArMTg0LDEwIEBAIGNsYXNz
IENvbW1pdFF1ZXVlKEFic3RyYWN0UXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6CiAg
ICAgZGVmIHNob3VsZF9wcm9jZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKICAgICAg
ICAgaWYgbm90IHNlbGYuX2J1aWxkZXJzX2FyZV9ncmVlbigpOgogICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCi0gICAgICAgIGlmIG5vdCBzZWxmLl9jYW5fYnVpbGRfYW5kX3Rlc3QoKToKKyAgICAg
ICAgY3VycmVudF9yZXZpc2lvbiA9IHNlbGYudG9vbC5zY20oKS5jaGVja291dF9yZXZpc2lvbigp
CisgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoIkJ1aWxkaW5nIGFuZCB0ZXN0aW5nIHIlcyBi
ZWZvcmUgbGFuZGluZyBwYXRjaCIgJSBjdXJyZW50X3JldmlzaW9uLCBwYXRjaCkKKyAgICAgICAg
aWYgbm90IHNlbGYuX2N1cnJlbnRfY2hlY2tvdXRfYnVpbGRzX2FuZF9wYXNzZXNfdGVzdHMoKToK
KyAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoIkZhaWxlZCB0byBidWlsZCBhbmQgdGVz
dCByJXMsIHdpbGwgdHJ5IGxhbmRpbmcgbGF0ZXIiICUgY3VycmVudF9yZXZpc2lvbiwgcGF0Y2gp
CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkZXJz
X2FyZV9ncmVlbigpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC0xOTQsNyArMjAzLDgg
QEAgY2xhc3MgQ29tbWl0UXVldWUoQWJzdHJhY3RRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5k
bGVyKToKICAgICAgICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChbImxhbmQtYXR0YWNobWVu
dCIsICItLWZvcmNlLWNsZWFuIiwgIi0tbm9uLWludGVyYWN0aXZlIiwgIi0tbm8tdXBkYXRlIiwg
Ii0tcGFyZW50LWNvbW1hbmQ9Y29tbWl0LXF1ZXVlIiwgIi0tYnVpbGQtc3R5bGU9Ym90aCIsICIt
LXF1aWV0IiwgcGF0Y2guaWQoKV0pCiAgICAgICAgICAgICBzZWxmLl9kaWRfcGFzcyhwYXRjaCkK
ICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAgICAgICAgc2VsZi5fZGlkX2Zh
aWwocGF0Y2gpCisgICAgICAgICAgICBpZiBlLmV4aXRfY29kZSAhPSBRdWV1ZUVuZ2luZS5oYW5k
bGVkX2Vycm9yX2NvZGU6CisgICAgICAgICAgICAgICAgc2VsZi5fZGlkX2ZhaWwocGF0Y2gpCiAg
ICAgICAgICAgICByYWlzZSBlCiAKICAgICBkZWYgaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3Ioc2Vs
ZiwgcGF0Y2gsIG1lc3NhZ2UpOgpAQCAtMjAyLDE4ICsyMTIsMTEgQEAgY2xhc3MgQ29tbWl0UXVl
dWUoQWJzdHJhY3RRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKIAogICAgICMgU3Rl
cFNlcXVlbmNlRXJyb3JIYW5kbGVyIG1ldGhvZHMKIAotICAgIEBzdGF0aWNtZXRob2QKLSAgICBk
ZWYgX2Vycm9yX21lc3NhZ2VfZm9yX2J1Zyh0b29sLCBzdGF0dXNfaWQsIHNjcmlwdF9lcnJvcik6
Ci0gICAgICAgIGlmIG5vdCBzY3JpcHRfZXJyb3Iub3V0cHV0OgotICAgICAgICAgICAgcmV0dXJu
IHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KCkKLSAgICAgICAgcmVzdWx0c19saW5r
ID0gdG9vbC5zdGF0dXNfc2VydmVyLnJlc3VsdHNfdXJsX2Zvcl9zdGF0dXMoc3RhdHVzX2lkKQot
ICAgICAgICByZXR1cm4gIiVzXG5GdWxsIG91dHB1dDogJXMiICUgKHNjcmlwdF9lcnJvci5tZXNz
YWdlX3dpdGhfb3V0cHV0KCksIHJlc3VsdHNfbGluaykKLQogICAgIEBjbGFzc21ldGhvZAogICAg
IGRlZiBoYW5kbGVfc2NyaXB0X2Vycm9yKGNscywgdG9vbCwgc3RhdGUsIHNjcmlwdF9lcnJvcik6
CiAgICAgICAgIHN0YXR1c19pZCA9IGNscy5fdXBkYXRlX3N0YXR1c19mb3Jfc2NyaXB0X2Vycm9y
KHRvb2wsIHN0YXRlLCBzY3JpcHRfZXJyb3IpCi0gICAgICAgIHZhbGlkYXRvciA9IENvbW1pdHRl
clZhbGlkYXRvcih0b29sLmJ1Z3MpCi0gICAgICAgIHZhbGlkYXRvci5yZWplY3RfcGF0Y2hfZnJv
bV9jb21taXRfcXVldWUoc3RhdGVbInBhdGNoIl0uaWQoKSwgY2xzLl9lcnJvcl9tZXNzYWdlX2Zv
cl9idWcodG9vbCwgc3RhdHVzX2lkLCBzY3JpcHRfZXJyb3IpKQorICAgICAgICBzY3JpcHRfZXJy
b3Jfb3V0cHV0ID0gY2xzLl9mb3JtYXRfc2NyaXB0X2Vycm9yX291dHB1dF9mb3JfYnVnKHRvb2ws
IHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKQorICAgICAgICBDb21taXR0ZXJWYWxpZGF0b3IodG9v
bC5idWdzKS5yZWplY3RfcGF0Y2hfZnJvbV9jb21taXRfcXVldWUoc3RhdGVbInBhdGNoIl0uaWQo
KSwgc2NyaXB0X2Vycm9yX291dHB1dCkKIAogCiBjbGFzcyBBYnN0cmFjdFJldmlld1F1ZXVlKEFi
c3RyYWN0UXVldWUsIFBlcnNpc3RlbnRQYXRjaENvbGxlY3Rpb25EZWxlZ2F0ZSwgU3RlcFNlcXVl
bmNlRXJyb3JIYW5kbGVyKToKQEAgLTI4MSwxMSArMjg0LDE4IEBAIGNsYXNzIFN0eWxlUXVldWUo
QWJzdHJhY3RSZXZpZXdRdWV1ZSk6CiAgICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChbImNo
ZWNrLXN0eWxlIiwgIi0tZm9yY2UtY2xlYW4iLCAiLS1ub24taW50ZXJhY3RpdmUiLCAiLS1wYXJl
bnQtY29tbWFuZD1zdHlsZS1xdWV1ZSIsIHBhdGNoLmlkKCldKQogCiAgICAgQGNsYXNzbWV0aG9k
CisgICAgZGVmIF9zdHlsZV9lcnJvcl9tZXNzYWdlX2Zvcl9idWcoY2xzLCBwYXRjaF9pZCwgc2Ny
aXB0X2Vycm9yX291dHB1dCk6CisgICAgICAgIGNoZWNrX3N0eWxlX2NvbW1hbmQgPSAiY2hlY2st
d2Via2l0LXN0eWxlIgorICAgICAgICBtZXNzYWdlX2hlYWRlciA9ICJBdHRhY2htZW50ICVzIGRp
ZCBub3QgcGFzcyAlczoiICUgKHBhdGNoX2lkLCBjbHMubmFtZSkKKyAgICAgICAgbWVzc2FnZV9m
b290ZXIgPSAiSWYgYW55IG9mIHRoZXNlIGVycm9ycyBhcmUgZmFsc2UgcG9zaXRpdmVzLCBwbGVh
c2UgZmlsZSBhIGJ1ZyBhZ2FpbnN0ICVzLiIgJSBjaGVja19zdHlsZV9jb21tYW5kCisgICAgICAg
IHJldHVybiAiJXNcblxuJXNcblxuJXMiICUgKG1lc3NhZ2VfaGVhZGVyLCBzY3JpcHRfZXJyb3Jf
b3V0cHV0LCBtZXNzYWdlX2Zvb3RlcikKKworICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBoYW5k
bGVfc2NyaXB0X2Vycm9yKGNscywgdG9vbCwgc3RhdGUsIHNjcmlwdF9lcnJvcik6CiAgICAgICAg
IGlzX3N2bl9hcHBseSA9IHNjcmlwdF9lcnJvci5jb21tYW5kX25hbWUoKSA9PSAic3ZuLWFwcGx5
IgogICAgICAgICBzdGF0dXNfaWQgPSBjbHMuX3VwZGF0ZV9zdGF0dXNfZm9yX3NjcmlwdF9lcnJv
cih0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yLCBpc19lcnJvcj1pc19zdm5fYXBwbHkpCiAgICAg
ICAgIGlmIGlzX3N2bl9hcHBseToKLSAgICAgICAgICAgIFF1ZXVlRW5naW5lLmV4aXRfYWZ0ZXJf
aGFuZGxlZF9lcnJvcihzY3JpcHRfZXJyb3IpCi0gICAgICAgIG1lc3NhZ2UgPSAiQXR0YWNobWVu
dCAlcyBkaWQgbm90IHBhc3MgJXM6XG5cbiVzXG5cbklmIGFueSBvZiB0aGVzZSBlcnJvcnMgYXJl
IGZhbHNlIHBvc2l0aXZlcywgcGxlYXNlIGZpbGUgYSBidWcgYWdhaW5zdCBjaGVjay13ZWJraXQt
c3R5bGUuIiAlIChzdGF0ZVsicGF0Y2giXS5pZCgpLCBjbHMubmFtZSwgc2NyaXB0X2Vycm9yLm1l
c3NhZ2Vfd2l0aF9vdXRwdXQob3V0cHV0X2xpbWl0PTMqMTAyNCkpCisgICAgICAgICAgICByZXR1
cm4gIyBObyBuZWVkIHRvIHVwZGF0ZSB0aGUgYnVnIGZvciBzdm4tYXBwbHkgZmFpbHVyZXMuCisg
ICAgICAgIHNjcmlwdF9lcnJvcl9vdXRwdXQgPSBzZWxmLl9mb3JtYXRfc2NyaXB0X2Vycm9yX291
dHB1dF9mb3JfYnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKQorICAgICAgICBidWdf
bWVzc2FnZSA9IGNscy5fc3R5bGVfZXJyb3JfbWVzc2FnZV9mb3JfYnVnKHN0YXRlWyJwYXRjaCJd
LmlkKCksIHNjcmlwdF9lcnJvcl9vdXRwdXQpCiAgICAgICAgIHRvb2wuYnVncy5wb3N0X2NvbW1l
bnRfdG9fYnVnKHN0YXRlWyJwYXRjaCJdLmJ1Z19pZCgpLCBtZXNzYWdlLCBjYz1jbHMud2F0Y2hl
cnMpCi0gICAgICAgIGV4aXQoMSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcXVldWVlbmdpbmUucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3F1ZXVl
ZW5naW5lLnB5CmluZGV4IGQxNDE3N2QuLjBiZDQyMjQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcXVldWVlbmdpbmUucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9xdWV1ZWVuZ2luZS5weQpAQCAtMTA3LDcgKzEwNyw3IEBAIGNsYXNzIFF1ZXVl
RW5naW5lOgogICAgICAgICAgICAgICAgICAgICAjIGhhbmRsZWQgaW4gdGhlIGNoaWxkIHByb2Nl
c3MgYW5kIHdlIHNob3VsZCBqdXN0IGtlZXAgbG9vcGluZy4KICAgICAgICAgICAgICAgICAgICAg
aWYgZS5leGl0X2NvZGUgPT0gc2VsZi5oYW5kbGVkX2Vycm9yX2NvZGU6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gIlVuZXhw
ZWN0ZWQgZmFpbHVyZSB3aGVuIGxhbmRpbmcgcGF0Y2ghICBQbGVhc2UgZmlsZSBhIGJ1ZyBhZ2Fp
bnN0IHdlYmtpdC1wYXRjaC5cbiVzIiAlIGUubWVzc2FnZV93aXRoX291dHB1dCgpCisgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgPSAiVW5leHBlY3RlZCBmYWlsdXJlIHdoZW4gcHJvY2Vzc2lu
ZyBwYXRjaCEgIFBsZWFzZSBmaWxlIGEgYnVnIGFnYWluc3Qgd2Via2l0LXBhdGNoLlxuJXMiICUg
ZS5tZXNzYWdlX3dpdGhfb3V0cHV0KCkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGVsZWdh
dGUuaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3Iod29ya19pdGVtLCBtZXNzYWdlKQogICAgICAgICAg
ICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0LCBlOgogICAgICAgICAgICAgICAgIGxvZygiXG5V
c2VyIHRlcm1pbmF0ZWQgcXVldWUuIikKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc2NtLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zY20ucHkKaW5k
ZXggNzQzZjNmZS4uNGE4MWI3ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zY20ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zY20ucHkKQEAg
LTIzMyw2ICsyMzMsOSBAQCBjbGFzcyBTQ006CiAgICAgZGVmIGxhc3Rfc3ZuX2NvbW1pdF9sb2co
c2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11
c3QgaW1wbGVtZW50IgogCisgICAgZGVmIGNoZWNrb3V0X3JldmlzaW9uKHNlbGYpOgorICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIK
KwogICAgICMgU3ViY2xhc3NlcyBtdXN0IGluZGljYXRlIGlmIHRoZXkgc3VwcG9ydCBsb2NhbCBj
b21taXRzLAogICAgICMgYnV0IHRoZSBTQ00gYmFzZWNsYXNzIHdpbGwgb25seSBjYWxsIGxvY2Fs
X2NvbW1pdHMgbWV0aG9kcyB3aGVuIHRoaXMgaXMgdHJ1ZS4KICAgICBAc3RhdGljbWV0aG9kCkBA
IC0zNjIsNiArMzY1LDkgQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAgICAgICMgaHR0cDovL3N2bmJv
b2sucmVkLWJlYW4uY29tL2VuLzEuMC9jaDAzczAzLmh0bWwKICAgICAgICAgcmV0dXJuIHNlbGYu
c3ZuX2NvbW1pdF9sb2coJ0JBU0UnKQogCisgICAgZGVmIGNoZWNrb3V0X3JldmlzaW9uKHNlbGYp
OgorICAgICAgICByZXR1cm4gaW50KHNlbGYudmFsdWVfZnJvbV9zdm5faW5mbyhzZWxmLmNoZWNr
b3V0X3Jvb3QsICdSZXZpc2lvbicpKQorCiAjIEFsbCBnaXQtc3BlY2lmaWMgbG9naWMgc2hvdWxk
IGdvIGhlcmUuCiBjbGFzcyBHaXQoU0NNKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgY3dkLCBk
cnlydW49RmFsc2UpOgpAQCAtNDYwLDYgKzQ2Niw5IEBAIGNsYXNzIEdpdChTQ00pOgogICAgIGRl
ZiBsYXN0X3N2bl9jb21taXRfbG9nKHNlbGYpOgogICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQo
WydnaXQnLCAnc3ZuJywgJ2xvZycsICctLWxpbWl0PTEnXSkKIAorICAgIGRlZiBjaGVja291dF9y
ZXZpc2lvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIGludChydW5fY29tbWFuZChbImdpdCIsICJz
dm4iLCAiZmluZC1yZXYiLCAiSEVBRCJdKS5yc3RyaXAoKSkKKwogICAgICMgR2l0LXNwZWNpZmlj
IG1ldGhvZHM6CiAKICAgICBkZWYgY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KHNlbGYs
IGNvbW1pdF9pZCk6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Nj
bV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc2NtX3VuaXR0ZXN0
LnB5CmluZGV4IDczZmFmNDAuLjk4NTk1OTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc2NtX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc2NtX3VuaXR0ZXN0LnB5CkBAIC0yMDQsNiArMjA0LDkgQEAgY2xhc3MgU0NNVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2goJ3Rl
c3QyJywgcjNfcGF0Y2gpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKCd0ZXN0
MicsIHNlbGYuc2NtLmRpZmZfZm9yX3JldmlzaW9uKDIpKSkKIAorICAgIGRlZiBfc2hhcmVkX3Rl
c3RfY2hlY2tvdXRfcmV2aXNpb24oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5zY20uY2hlY2tvdXRfcmV2aXNpb24oKSwgNCkKKwogICAgIGRlZiBfc2hhcmVkX3Rlc3Rfc3Zu
X2FwcGx5X2dpdF9wYXRjaChzZWxmKToKICAgICAgICAgc2VsZi5fc2V0dXBfd2Via2l0dG9vbHNf
c2NyaXB0c19zeW1saW5rKHNlbGYuc2NtKQogICAgICAgICBnaXRfYmluYXJ5X2FkZGl0aW9uID0g
IiIiZGlmZiAtLWdpdCBhL2ZpenpidXp6Ny5naWYgYi9maXp6YnV6ejcuZ2lmCkBAIC00NjUsNiAr
NDY4LDkgQEAgUTFkVEJ4MEFBQUI0Mml0ZzRHbGdZSmpHd01ERHlPRE14TUR3MzRHQmdRRUFKUFFE
SkE9PQogICAgIGRlZiB0ZXN0X2RpZmZfZm9yX3JldmlzaW9uKHNlbGYpOgogICAgICAgICBzZWxm
Ll9zaGFyZWRfdGVzdF9kaWZmX2Zvcl9yZXZpc2lvbigpCiAKKyAgICBkZWYgdGVzdF9jaGVja291
dF9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgc2VsZi5fc2hhcmVkX3Rlc3RfY2hlY2tvdXRfcmV2
aXNpb24oKQorCiAgICAgZGVmIHRlc3Rfc3ZuX2FwcGx5X2dpdF9wYXRjaChzZWxmKToKICAgICAg
ICAgc2VsZi5fc2hhcmVkX3Rlc3Rfc3ZuX2FwcGx5X2dpdF9wYXRjaCgpCiAKQEAgLTU1Nyw2ICs1
NjMsOSBAQCBjbGFzcyBHaXRUZXN0KFNDTVRlc3QpOgogICAgIGRlZiB0ZXN0X2RpZmZfZm9yX3Jl
dmlzaW9uKHNlbGYpOgogICAgICAgICBzZWxmLl9zaGFyZWRfdGVzdF9kaWZmX2Zvcl9yZXZpc2lv
bigpCiAKKyAgICBkZWYgdGVzdF9jaGVja291dF9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgc2Vs
Zi5fc2hhcmVkX3Rlc3RfY2hlY2tvdXRfcmV2aXNpb24oKQorCiAgICAgZGVmIHRlc3Rfc3ZuX2Fw
cGx5X2dpdF9wYXRjaChzZWxmKToKICAgICAgICAgc2VsZi5fc2hhcmVkX3Rlc3Rfc3ZuX2FwcGx5
X2dpdF9wYXRjaCgpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46995</attachid>
            <date>2010-01-20 02:21:19 -0800</date>
            <delta_ts>2010-01-20 02:50:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33496-20100120022118.patch</filename>
            <type>text/plain</type>
            <size>18022</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5NjdhY2E2Li45ZmRiYjRkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDEt
MjAgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1jb21taXQtcXVldWUgc3RhdHVzIHBh
Z2UgaXMgY29uZnVzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMzQ5NgorCisgICAgICAgIFRoaXMgc2hvdWxkIGltcHJvdmUgdGhlIHN0YXR1cyBw
YWdlIGJ5IHJlbW92aW5nIG1vcmUgRmFpbCBtZXNzYWdlcy4KKyAgICAgICAgVG8gZG8gdGhpcywg
SSByZS1mYWN0b3JlZCB0aGUgQ29tbWl0UXVldWUgYW5kIHRoZSBBYnN0cmFjdFJldmlld1F1ZXVl
cworICAgICAgICB0byBiZWhhdmUgbW9yZSBsaWtlIG9uZSBhbm90aGVyLiAgVGhpcyBtZWFudCBt
b3Zpbmcgd2hlcmUgdGhlIGZhaWx1cmUgcmVwb3J0aW5nIHdhcyBkb25lLgorICAgICAgICBQcmV2
aW91c2x5IHRoZSBBYnN0cmFjdFJldmlld1F1ZXVlIGFsd2F5cyB1c2VkIHRoZSBwYXJlbnQgcHJv
Y2VzcyB0byByZXBvcnQgdGhlIGVycm9yLAorICAgICAgICB3aGlsZSBDb21taXRRdWV1ZSB1c2Vk
IHRoZSBzdWJwcm9jZXNzIHdoZW4gcG9zc2libGUsIGFuZCB0aGUgcGFyZW50IG9ubHkgcmVwb3J0
ZWQgZXJyb3JzCisgICAgICAgIHRoYXQgd2UgZGlkbid0IGtub3cgaG93IHRvIGhhbmRsZSAoYnVn
cyBpbiB0aGUgY29tbWl0LXF1ZXVlIGl0c2VsZikuCisgICAgICAgIE5vdyB0aGUgQWJzdHJhY3RS
ZXZpZXdRdWV1ZSBmb2xsb3cncyB0aGUgY29tbWl0LXF1ZXVlJ3MgbW9kZWwuICBUaGlzIGdvdCBy
aWQgb2YgYSB0cnktYmxvY2sKKyAgICAgICAgaW4gYm90aCBpbXBsZW1lbnRhdGlvbnMgYW5kIHJl
cXVpcmVkIHRlYWNoaW5nIGhhbmRsZV9zY3JpcHRfZXJyb3IgaW4gZWFjaCB0byBwb3N0IEZhaWwg
bWVzc2FnZXMKKyAgICAgICAgdG8gdGhlIHN0YXR1cyBzZXJ2ZXIgaW5zdGVhZCBvZiBjYWxsaW5n
IGV4aXQoMSkuCisKKyAgICAgICAgVGhpcyB3aWxsIGFsc28gbWFrZSB0aGUgc3R5bGUtcXVldWUg
c2hhcmUgbW9yZSBidWcgcG9zdGluZyBsb2dpYyB3aXRoIG90aGVyIHF1ZXVlczoKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzODcxCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Vhcmx5X3dhcm5pbmdfc3lzdGVtLnB5OgorICAg
ICAgICAgLSBEb24ndCBleGl0KDEpIGFzIHRoYXQgd2lsbCBjYXVzZSB0aGUgY2FsbGluZyBxdWV1
ZSB0byBhbHNvIHJlcG9ydCBGYWlsIHRvIHRoZSBzdGF0dXMgc2VydmVyLgorICAgICAgICAgICBJ
bXBsZW1lbnRvcnMgb2YgaGFuZGxlX3NjcmlwdF9lcnJvciBhcmUgZXhwZWN0ZWQgdG8gdXBkYXRl
IHRoZSBzdGF0dXMgc2VydmVyIGlmIG5lZWRlZCwgYnV0IG9ubHkgZXhpdCBpZiB0aGUgZXJyb3Ig
Y291bGQgbm90IGJlIGhhbmRsZWQuCisgICAgICAgICAgIFNvIHdlIGluc3RlYWQgcGFzcyBwYXRj
aF9oYXNfZmFpbGVkX3RoaXNfcXVldWU9VHJ1ZSB0byBfdXBkYXRlX3N0YXR1c19mb3Jfc2NyaXB0
X2Vycm9yIGluIHRoZSBjYXNlIHRoYXQgdGhpcyB3YXMgYSByZWFsIGZhaWx1cmUuCisgICAgICAg
ICAgIF91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3Iga25vd3MgaG93IHRvIHBvc3QgdGhl
IEZhaWwgbWVzc2FnZSB0byB0aGUgc3RhdHVzIHNlcnZlci4KKyAgICAgICAgIC0gVGVhY2ggX3Vw
ZGF0ZV9zdGF0dXNfZm9yX3NjcmlwdF9lcnJvciBob3cgdG8gcG9zdCBGYWlsIG1lc3NhZ2VzIHRv
IHRoZSBzdGF0dXMgc2VydmVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMv
cXVldWVzLnB5OgorICAgICAgICAgLSBSZW1vdmUgdGhlIHRyeSBibG9jayBmcm9tIHByb2Nlc3Nf
d29ya19pdGVtIHNpbmNlIHRoZSBjYWxsZXIgYWxyZWFkeSBoYXMgb25lLgorICAgICAgICAgLSBP
bmx5IENDIHdhdGNoZXJzIG9uIGZhaWx1cmUgdG8gY3V0IGRvd24gb24gY29tbWl0LXF1ZXVlIGdl
bmVyYXRlZCBtYWlsLgorICAgICAgICAgLSBoYW5kbGVfdW5leHBlY3RlZF9lcnJvciBuZWVkcyB0
byBtYXJrIF9kaWRfZmFpbCBub3cgdGhhdCB0aGUgdHJ5IGJsb2NrIGlzIGdvbmUgZnJvbSBwcm9j
ZXNzX3dvcmtfaXRlbS4KKyAgICAgICAgIC0gQWJzdHJhY3QgX2Zvcm1hdF9zY3JpcHRfZXJyb3Jf
b3V0cHV0X2Zvcl9idWcgdG8gc2hhcmUgY29kZSBiZXR3ZWVuIGFsbCBxdWV1ZXMuCisgICAgICAg
ICAtIFRoZSBuZXcgX2Zvcm1hdF9zY3JpcHRfZXJyb3Jfb3V0cHV0X2Zvcl9idWcgYWxsb3dzIHRo
ZSBzdHlsZS1xdWV1ZSB0byBzaGFyZSB0aGUgcG9zdGluZyBsaW1pdCB3aXRoIG90aGVyIHF1ZXVl
cywgYXMgd2VsbCBhcyBzdXBwb3J0IGxpbmtpbmcgdG8gdGhlIGZ1bGwgb3V0cHV0LgorICAgICAg
ICAgLSBSZW5hbWUgX2Nhbl9idWlsZF9hbmRfdGVzdCB0byBfY3VycmVudF9jaGVja291dF9idWls
ZHNfYW5kX3Bhc3Nlc190ZXN0cyB0byBiZXR0ZXIgZXhwbGFpbiB3aGF0IHJldmlzaW9uIGl0J3Mg
dGVzdGluZy4KKyAgICAgICAgIC0gTW92ZSBsb2dnaW5nIG91dCBvZiBfY2FuX2J1aWxkX2FuZF90
ZXN0IGFuZCBtYWtlIHRoZSBsb2dzIGV4cGxhaW4gd2hhdCByZXZpc2lvbiB3ZSdyZSB0ZXN0aW5n
LgorICAgICAgICAgLSBoYW5kbGVfc2NyaXB0X2Vycm9yIG5vdyBwb3N0cyBGYWlsIGluc3RlYWQg
b2YgdGhlIHRyeSBibG9jayBpbiBwcm9jZXNzX3dvcmtfaXRlbSBoYW5kbGluZyBpdC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3F1ZXVlZW5naW5lLnB5OgorICAgICAgICAgLSBRdWV1ZUVu
Z2luZSBpcyBubyBsb25nZXIgdXNlZCBqdXN0IGJ5IHRoZSBjb21taXQtcXVldWUsIHVwZGF0ZSB0
aGUgbG9nZ2luZyB0byBzYXkgInByb2Nlc3NpbmciIGluc3RlYWQgb2YgbGFuZGluZy4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3NjbS5weToKKyAgICAgICAgIC0gQWRkIG5ldyBjaGVja291
dF9yZXZpc2lvbiBmdW5jdGlvbi4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3NjbV91bml0
dGVzdC5weToKKyAgICAgICAgIC0gVGVzdCBvdXIgbmV3IGNoZWNrb3V0X3JldmlzaW9uIGZ1bmN0
aW9uLgorCiAyMDEwLTAxLTE5ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5v
a2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZWFybHlfd2FybmluZ19z
eXN0ZW0ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Vhcmx5X3dh
cm5pbmdfc3lzdGVtLnB5CmluZGV4IGUzZTE0ZGQuLjU0Nzk0OGEgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZWFybHlfd2FybmluZ19zeXN0ZW0ucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9lYXJseV93YXJuaW5n
X3N5c3RlbS5weQpAQCAtNzEsMTQgKzcxLDEzIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVm
IGhhbmRsZV9zY3JpcHRfZXJyb3IoY2xzLCB0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yKToKLSAg
ICAgICAgaXNfc3ZuX2FwcGx5ID0gc2NyaXB0X2Vycm9yLmNvbW1hbmRfbmFtZSgpID09ICJzdm4t
YXBwbHkiCi0gICAgICAgIHN0YXR1c19pZCA9IGNscy5fdXBkYXRlX3N0YXR1c19mb3Jfc2NyaXB0
X2Vycm9yKHRvb2wsIHN0YXRlLCBzY3JpcHRfZXJyb3IsIGlzX2Vycm9yPWlzX3N2bl9hcHBseSkK
LSAgICAgICAgaWYgaXNfc3ZuX2FwcGx5OgotICAgICAgICAgICAgUXVldWVFbmdpbmUuZXhpdF9h
ZnRlcl9oYW5kbGVkX2Vycm9yKHNjcmlwdF9lcnJvcikKKyAgICAgICAgcGF0Y2hfaGFzX2ZhaWxl
ZCA9IHNjcmlwdF9lcnJvci5jb21tYW5kX25hbWUoKSA9PSAic3ZuLWFwcGx5IiAjIHN2bi1hcHBs
eSBmYWlsdXJlcyBkbyBub3QgbmVjZXNzYXJpbHkgbWVhbiB0aGUgcGF0Y2ggd291bGQgZmFpbCB0
byBidWlsZC4KKyAgICAgICAgc3RhdHVzX2lkID0gY2xzLl91cGRhdGVfc3RhdHVzX2Zvcl9zY3Jp
cHRfZXJyb3IodG9vbCwgc3RhdGUsIHNjcmlwdF9lcnJvciwgcGF0Y2hfaGFzX2ZhaWxlZF90aGlz
X3F1ZXVlPXBhdGNoX2hhc19mYWlsZWQpCisgICAgICAgIGlmIHBhdGNoX2hhc19mYWlsZWQ6Cisg
ICAgICAgICAgICByZXR1cm4gIyBObyBuZWVkIHRvIHVwZGF0ZSB0aGUgYnVnIGZvciBzdm4tYXBw
bHkgZmFpbHVyZXMuCiAgICAgICAgIHJlc3VsdHNfbGluayA9IHRvb2wuc3RhdHVzX3NlcnZlci5y
ZXN1bHRzX3VybF9mb3Jfc3RhdHVzKHN0YXR1c19pZCkKICAgICAgICAgbWVzc2FnZSA9ICJBdHRh
Y2htZW50ICVzIGRpZCBub3QgYnVpbGQgb24gJXM6XG5CdWlsZCBvdXRwdXQ6ICVzIiAlIChzdGF0
ZVsicGF0Y2giXS5pZCgpLCBjbHMucG9ydF9uYW1lLCByZXN1bHRzX2xpbmspCiAgICAgICAgIHRv
b2wuYnVncy5wb3N0X2NvbW1lbnRfdG9fYnVnKHN0YXRlWyJwYXRjaCJdLmJ1Z19pZCgpLCBtZXNz
YWdlLCBjYz1jbHMud2F0Y2hlcnMpCi0gICAgICAgIGV4aXQoMSkKIAogCiBjbGFzcyBHdGtFV1Mo
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWV1ZXMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weQppbmRleCAzNTBjMWVhLi40ZjYwODZiIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weQpAQCAtMTA2
LDYgKzEwNiw4IEBAIGNsYXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmVEZWxl
Z2F0ZSk6CiAgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIHdvcmtfaXRlbSk6CiAgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50
IgogCisgICAgIyBTdWJjbGFzc2VzIGFyZSBleHBlY3RlZCB0byBwb3N0IHRoZSBtZXNzYWdlIHNv
bWV3aGVyZSBpdCBjYW4gYmUgcmVhZCBieSBhIGh1bWFuLgorICAgICMgVGhleSBzaG91bGQgYWxz
byBwcmV2ZW50IHRoZSBxdWV1ZSBmcm9tIHByb2Nlc3NpbmcgdGhpcyBwYXRjaCBhZ2Fpbi4KICAg
ICBkZWYgaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3Ioc2VsZiwgd29ya19pdGVtLCBtZXNzYWdlKToK
ICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVzdCBpbXBs
ZW1lbnQiCiAKQEAgLTEyNSwxMSArMTI3LDI1IEBAIGNsYXNzIEFic3RyYWN0UXVldWUoQ29tbWFu
ZCwgUXVldWVFbmdpbmVEZWxlZ2F0ZSk6CiAgICAgICAgIHJldHVybiBlbmdpbmUoc2VsZi5uYW1l
LCBzZWxmKS5ydW4oKQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF91cGRhdGVfc3RhdHVz
X2Zvcl9zY3JpcHRfZXJyb3IoY2xzLCB0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yLCBpc19lcnJv
cj1GYWxzZSk6CisgICAgZGVmIF91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3IoY2xzLCB0
b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yLCBwYXRjaF9oYXNfZmFpbGVkX3RoaXNfcXVldWU9VHJ1
ZSk6CiAgICAgICAgIG1lc3NhZ2UgPSBzY3JpcHRfZXJyb3IubWVzc2FnZQotICAgICAgICBpZiBp
c19lcnJvcjoKKyAgICAgICAgIyBFcnJvcjogdHVybnMgdGhlIHN0YXR1cyBidWJibGUgcHVycGxl
IGFuZCBtZWFucyB0aGF0IHRoZSBlcnJvciB3YXMgc3VjaCB0aGF0IHdlIGNhbid0IHRlbGwgaWYg
dGhlIHBhdGNoIGZhaWxzIG9yIG5vdC4KKyAgICAgICAgaWYgbm90IHBhdGNoX2hhc19mYWlsZWRf
dGhpc19xdWV1ZToKICAgICAgICAgICAgIG1lc3NhZ2UgPSAiRXJyb3I6ICVzIiAlIG1lc3NhZ2UK
LSAgICAgICAgcmV0dXJuIHRvb2wuc3RhdHVzX3NlcnZlci51cGRhdGVfc3RhdHVzKGNscy5uYW1l
LCBtZXNzYWdlLCBzdGF0ZVsicGF0Y2giXSwgU3RyaW5nSU8oc2NyaXB0X2Vycm9yLm91dHB1dCkp
CisgICAgICAgIHN0YXR1c19pZCA9IHRvb2wuc3RhdHVzX3NlcnZlci51cGRhdGVfc3RhdHVzKGNs
cy5uYW1lLCBtZXNzYWdlLCBzdGF0ZVsicGF0Y2giXSwgU3RyaW5nSU8oc2NyaXB0X2Vycm9yLm91
dHB1dCkpCisgICAgICAgICMgSW4gdGhlIGNhc2Ugd2Uga25vdyB0aGF0IHRoaXMgcGF0Y2ggYWN0
dWFsbHkgZmFpbGVkIHRoZSBxdWV1ZSwgd2UgbWFrZSBhIHNlY29uZCBzdGF0dXMgZW50cnkgKG1v
c3RseSBiZWNhdXNlIHRoZSBzZXJ2ZXIgZG9lc24ndCkKKyAgICAgICAgIyB1bmRlcnN0YW5kIG1l
c3NhZ2VzIHByZWZpeGVkIHdpdGggIkZhaWw6IiB0byBtZWFuIGZhaWx1cmVzLCBhbmQgdGh1cyB3
b3VsZCBsZWF2ZSB0aGUgc3RhdHVzIGJ1YmJsZSB5ZWxsb3cgaW5zdGVhZCBvZiByZWQuCisgICAg
ICAgICMgRklYTUU6IEZhaWwgdnMuIEVycm9yIHNob3VsZCByZWFsbHkgYmUgc3RvcmVkIG9uIGEg
c2VwYXJhdGUgZmllbGQgZnJvbSB0aGUgbWVzc2FnZSBvbiB0aGUgc2VydmVyLgorICAgICAgICBp
ZiBwYXRjaF9oYXNfZmFpbGVkX3RoaXNfcXVldWU6CisgICAgICAgICAgICB0b29sLnN0YXR1c19z
ZXJ2ZXIudXBkYXRlX3N0YXR1cyhjbHMubmFtZSwgY2xzLl9mYWlsX3N0YXR1cykKKyAgICAgICAg
cmV0dXJuIHN0YXR1c19pZCAjIFJldHVybiB0aGUgc3RhdHVzIGlkIHRvIHRoZSBvcmlnaW5hbCBt
ZXNzYWdlIHdpdGggYWxsIHRoZSBzY3JpcHQgb3V0cHV0LgorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIF9mb3JtYXRfc2NyaXB0X2Vycm9yX291dHB1dF9mb3JfYnVnKHRvb2wsIHN0YXR1c19p
ZCwgc2NyaXB0X2Vycm9yKToKKyAgICAgICAgaWYgbm90IHNjcmlwdF9lcnJvci5vdXRwdXQ6Cisg
ICAgICAgICAgICByZXR1cm4gc2NyaXB0X2Vycm9yLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKQorICAg
ICAgICByZXN1bHRzX2xpbmsgPSB0b29sLnN0YXR1c19zZXJ2ZXIucmVzdWx0c191cmxfZm9yX3N0
YXR1cyhzdGF0dXNfaWQpCisgICAgICAgIHJldHVybiAiJXNcbkZ1bGwgb3V0cHV0OiAlcyIgJSAo
c2NyaXB0X2Vycm9yLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSwgcmVzdWx0c19saW5rKQogCiAKIGNs
YXNzIENvbW1pdFF1ZXVlKEFic3RyYWN0UXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6
CkBAIC0xNTksMTEgKzE3NSwxMCBAQCBjbGFzcyBDb21taXRRdWV1ZShBYnN0cmFjdFF1ZXVlLCBT
dGVwU2VxdWVuY2VFcnJvckhhbmRsZXIpOgogICAgICAgICBzZWxmLmxvZ19wcm9ncmVzcyhbcGF0
Y2guaWQoKSBmb3IgcGF0Y2ggaW4gcGF0Y2hlc10pCiAgICAgICAgIHJldHVybiBwYXRjaGVzWzBd
CiAKLSAgICBkZWYgX2Nhbl9idWlsZF9hbmRfdGVzdChzZWxmKToKKyAgICBkZWYgX2N1cnJlbnRf
Y2hlY2tvdXRfYnVpbGRzX2FuZF9wYXNzZXNfdGVzdHMoc2VsZik6CiAgICAgICAgIHRyeToKICAg
ICAgICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChbImJ1aWxkLWFuZC10ZXN0IiwgIi0tZm9y
Y2UtY2xlYW4iLCAiLS1ub24taW50ZXJhY3RpdmUiLCAiLS1idWlsZC1zdHlsZT1ib3RoIiwgIi0t
cXVpZXQiXSkKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAgICAgICAgc2Vs
Zi5fdXBkYXRlX3N0YXR1cygiVW5hYmxlZCB0byBzdWNjZXNzZnVsbHkgYnVpbGQgYW5kIHRlc3Qi
LCBOb25lKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHJldHVybiBUcnVlCiAK
QEAgLTE3OCw0MyArMTkzLDM3IEBAIGNsYXNzIENvbW1pdFF1ZXVlKEFic3RyYWN0UXVldWUsIFN0
ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6CiAgICAgZGVmIHNob3VsZF9wcm9jZWVkX3dpdGhfd29y
a19pdGVtKHNlbGYsIHBhdGNoKToKICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkZXJzX2FyZV9n
cmVlbigpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIG5vdCBzZWxmLl9j
YW5fYnVpbGRfYW5kX3Rlc3QoKToKKyAgICAgICAgY3VycmVudF9yZXZpc2lvbiA9IHNlbGYudG9v
bC5zY20oKS5jaGVja291dF9yZXZpc2lvbigpCisgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMo
IkJ1aWxkaW5nIGFuZCB0ZXN0aW5nIHIlcyBiZWZvcmUgbGFuZGluZyBwYXRjaCIgJSBjdXJyZW50
X3JldmlzaW9uLCBwYXRjaCkKKyAgICAgICAgaWYgbm90IHNlbGYuX2N1cnJlbnRfY2hlY2tvdXRf
YnVpbGRzX2FuZF9wYXNzZXNfdGVzdHMoKToKKyAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0
dXMoIkZhaWxlZCB0byBidWlsZCBhbmQgdGVzdCByJXMsIHdpbGwgdHJ5IGxhbmRpbmcgbGF0ZXIi
ICUgY3VycmVudF9yZXZpc2lvbiwgcGF0Y2gpCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAg
ICAgICAgaWYgbm90IHNlbGYuX2J1aWxkZXJzX2FyZV9ncmVlbigpOgogICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCiAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoIkxhbmRpbmcgcGF0Y2giLCBw
YXRjaCkKICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIGJl
IHVuaWZpZWQgd2l0aCBBYnN0cmFjdFJldmlld1F1ZXVlJ3MgaW1wbGVtZW50YXRpb24uICAoTW9z
dGx5IF9yZXZpZXdfcGF0Y2gganVzdCBuZWVkcyBhIHJlbmFtZS4pCiAgICAgZGVmIHByb2Nlc3Nf
d29ya19pdGVtKHNlbGYsIHBhdGNoKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5f
Y2Nfd2F0Y2hlcnMocGF0Y2guYnVnX2lkKCkpCi0gICAgICAgICAgICAjIFdlIHBhc3MgLS1uby11
cGRhdGUgaGVyZSBiZWNhdXNlIHdlJ3ZlIGFscmVhZHkgdmFsaWRhdGVkCi0gICAgICAgICAgICAj
IHRoYXQgdGhlIGN1cnJlbnQgcmV2aXNpb24gYWN0dWFsbHkgYnVpbGRzIGFuZCBwYXNzZXMgdGhl
IHRlc3RzLgotICAgICAgICAgICAgIyBJZiB3ZSB1cGRhdGUsIHdlIHJpc2sgbW92aW5nIHRvIGEg
cmV2aXNpb24gdGhhdCBkb2Vzbid0IQotICAgICAgICAgICAgc2VsZi5ydW5fd2Via2l0X3BhdGNo
KFsibGFuZC1hdHRhY2htZW50IiwgIi0tZm9yY2UtY2xlYW4iLCAiLS1ub24taW50ZXJhY3RpdmUi
LCAiLS1uby11cGRhdGUiLCAiLS1wYXJlbnQtY29tbWFuZD1jb21taXQtcXVldWUiLCAiLS1idWls
ZC1zdHlsZT1ib3RoIiwgIi0tcXVpZXQiLCBwYXRjaC5pZCgpXSkKLSAgICAgICAgICAgIHNlbGYu
X2RpZF9wYXNzKHBhdGNoKQotICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6Ci0gICAgICAg
ICAgICBzZWxmLl9kaWRfZmFpbChwYXRjaCkKLSAgICAgICAgICAgIHJhaXNlIGUKKyAgICAgICAg
IyBXZSBwYXNzIC0tbm8tdXBkYXRlIGhlcmUgYmVjYXVzZSB3ZSd2ZSBhbHJlYWR5IHZhbGlkYXRl
ZAorICAgICAgICAjIHRoYXQgdGhlIGN1cnJlbnQgcmV2aXNpb24gYWN0dWFsbHkgYnVpbGRzIGFu
ZCBwYXNzZXMgdGhlIHRlc3RzLgorICAgICAgICAjIElmIHdlIHVwZGF0ZSwgd2UgcmlzayBtb3Zp
bmcgdG8gYSByZXZpc2lvbiB0aGF0IGRvZXNuJ3QhCisgICAgICAgIHNlbGYucnVuX3dlYmtpdF9w
YXRjaChbImxhbmQtYXR0YWNobWVudCIsICItLWZvcmNlLWNsZWFuIiwgIi0tbm9uLWludGVyYWN0
aXZlIiwgIi0tbm8tdXBkYXRlIiwgIi0tcGFyZW50LWNvbW1hbmQ9Y29tbWl0LXF1ZXVlIiwgIi0t
YnVpbGQtc3R5bGU9Ym90aCIsICItLXF1aWV0IiwgcGF0Y2guaWQoKV0pCisgICAgICAgIHNlbGYu
X2RpZF9wYXNzKHBhdGNoKQogCiAgICAgZGVmIGhhbmRsZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYs
IHBhdGNoLCBtZXNzYWdlKToKLSAgICAgICAgc2VsZi5jb21taXR0ZXJfdmFsaWRhdG9yLnJlamVj
dF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShwYXRjaC5pZCgpLCBtZXNzYWdlKQorICAgICAgICBz
ZWxmLl9kaWRfZmFpbChwYXRjaCkKKyAgICAgICAgc2VsZi5fY2Nfd2F0Y2hlcnMocGF0Y2guYnVn
X2lkKCkpCisgICAgICAgIHNlbGYuY29tbWl0dGVyX3ZhbGlkYXRvci5yZWplY3RfcGF0Y2hfZnJv
bV9jb21taXRfcXVldWUocGF0Y2guaWQoKSwgbWVzc2FnZSkgIyBTaG91bGQgaW5zdGVhZCBwYXNz
IGNscy53YXRjaGVycyBhcyBhIENDIGxpc3QgaGVyZS4KIAogICAgICMgU3RlcFNlcXVlbmNlRXJy
b3JIYW5kbGVyIG1ldGhvZHMKIAotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX2Vycm9yX21l
c3NhZ2VfZm9yX2J1Zyh0b29sLCBzdGF0dXNfaWQsIHNjcmlwdF9lcnJvcik6Ci0gICAgICAgIGlm
IG5vdCBzY3JpcHRfZXJyb3Iub3V0cHV0OgotICAgICAgICAgICAgcmV0dXJuIHNjcmlwdF9lcnJv
ci5tZXNzYWdlX3dpdGhfb3V0cHV0KCkKLSAgICAgICAgcmVzdWx0c19saW5rID0gdG9vbC5zdGF0
dXNfc2VydmVyLnJlc3VsdHNfdXJsX2Zvcl9zdGF0dXMoc3RhdHVzX2lkKQotICAgICAgICByZXR1
cm4gIiVzXG5GdWxsIG91dHB1dDogJXMiICUgKHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0
cHV0KCksIHJlc3VsdHNfbGluaykKLQogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBoYW5kbGVf
c2NyaXB0X2Vycm9yKGNscywgdG9vbCwgc3RhdGUsIHNjcmlwdF9lcnJvcik6Ci0gICAgICAgIHN0
YXR1c19pZCA9IGNscy5fdXBkYXRlX3N0YXR1c19mb3Jfc2NyaXB0X2Vycm9yKHRvb2wsIHN0YXRl
LCBzY3JpcHRfZXJyb3IpCi0gICAgICAgIHZhbGlkYXRvciA9IENvbW1pdHRlclZhbGlkYXRvcih0
b29sLmJ1Z3MpCi0gICAgICAgIHZhbGlkYXRvci5yZWplY3RfcGF0Y2hfZnJvbV9jb21taXRfcXVl
dWUoc3RhdGVbInBhdGNoIl0uaWQoKSwgY2xzLl9lcnJvcl9tZXNzYWdlX2Zvcl9idWcodG9vbCwg
c3RhdHVzX2lkLCBzY3JpcHRfZXJyb3IpKQotCisgICAgICAgIHN0YXR1c19pZCA9IGNscy5fdXBk
YXRlX3N0YXR1c19mb3Jfc2NyaXB0X2Vycm9yKHRvb2wsIHN0YXRlLCBzY3JpcHRfZXJyb3IsIHBh
dGNoX2hhc19mYWlsZWRfdGhpc19xdWV1ZT1UcnVlKQorICAgICAgICBzY3JpcHRfZXJyb3Jfb3V0
cHV0ID0gY2xzLl9mb3JtYXRfc2NyaXB0X2Vycm9yX291dHB1dF9mb3JfYnVnKHRvb2wsIHN0YXR1
c19pZCwgc2NyaXB0X2Vycm9yKQorICAgICAgICBzZWxmLl9jY193YXRjaGVycyhwYXRjaC5idWdf
aWQoKSkKKyAgICAgICAgQ29tbWl0dGVyVmFsaWRhdG9yKHRvb2wuYnVncykucmVqZWN0X3BhdGNo
X2Zyb21fY29tbWl0X3F1ZXVlKHN0YXRlWyJwYXRjaCJdLmlkKCksIHNjcmlwdF9lcnJvcl9vdXRw
dXQpICMgU2hvdWxkIGluc3RlYWQgcGFzcyBjbHMud2F0Y2hlcnMgYXMgYSBDQyBsaXN0IGhlcmUu
CiAKIGNsYXNzIEFic3RyYWN0UmV2aWV3UXVldWUoQWJzdHJhY3RRdWV1ZSwgUGVyc2lzdGVudFBh
dGNoQ29sbGVjdGlvbkRlbGVnYXRlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIpOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zPU5vbmUpOgpAQCAtMjUwLDE2ICsyNTksMTIgQEAgY2xh
c3MgQWJzdHJhY3RSZXZpZXdRdWV1ZShBYnN0cmFjdFF1ZXVlLCBQZXJzaXN0ZW50UGF0Y2hDb2xs
ZWN0aW9uRGVsZWdhdGUsIFN0ZXAKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwg
InN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCiAKICAgICBkZWYgcHJvY2Vzc193b3JrX2l0ZW0o
c2VsZiwgcGF0Y2gpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9yZXZpZXdfcGF0
Y2gocGF0Y2gpCi0gICAgICAgICAgICBzZWxmLl9kaWRfcGFzcyhwYXRjaCkKLSAgICAgICAgZXhj
ZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAgICAgICAgaWYgZS5leGl0X2NvZGUgIT0gUXVldWVF
bmdpbmUuaGFuZGxlZF9lcnJvcl9jb2RlOgotICAgICAgICAgICAgICAgIHNlbGYuX2RpZF9mYWls
KHBhdGNoKQotICAgICAgICAgICAgcmFpc2UgZQorICAgICAgICBzZWxmLl9yZXZpZXdfcGF0Y2go
cGF0Y2gpCisgICAgICAgIHNlbGYuX2RpZF9wYXNzKHBhdGNoKQogCiAgICAgZGVmIGhhbmRsZV91
bmV4cGVjdGVkX2Vycm9yKHNlbGYsIHBhdGNoLCBtZXNzYWdlKToKLSAgICAgICAgbG9nKG1lc3Nh
Z2UpCisgICAgICAgIHNlbGYuX2RpZF9mYWlsKHBhdGNoKQorICAgICAgICBzZWxmLnRvb2wuYnVn
cy5wb3N0X2NvbW1lbnRfdG9fYnVnKHBhdGNoLmJ1Z19pZCgpLCBtZXNzYWdlLCBjYz1zZWxmLndh
dGNoZXJzKQogCiAgICAgIyBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIgbWV0aG9kcwogCkBAIC0y
ODEsMTEgKzI4NiwxOCBAQCBjbGFzcyBTdHlsZVF1ZXVlKEFic3RyYWN0UmV2aWV3UXVldWUpOgog
ICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goWyJjaGVjay1zdHlsZSIsICItLWZvcmNlLWNs
ZWFuIiwgIi0tbm9uLWludGVyYWN0aXZlIiwgIi0tcGFyZW50LWNvbW1hbmQ9c3R5bGUtcXVldWUi
LCBwYXRjaC5pZCgpXSkKIAogICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfc3R5bGVfZXJyb3Jf
bWVzc2FnZV9mb3JfYnVnKGNscywgcGF0Y2hfaWQsIHNjcmlwdF9lcnJvcl9vdXRwdXQpOgorICAg
ICAgICBjaGVja19zdHlsZV9jb21tYW5kID0gImNoZWNrLXdlYmtpdC1zdHlsZSIKKyAgICAgICAg
bWVzc2FnZV9oZWFkZXIgPSAiQXR0YWNobWVudCAlcyBkaWQgbm90IHBhc3MgJXM6IiAlIChwYXRj
aF9pZCwgY2xzLm5hbWUpCisgICAgICAgIG1lc3NhZ2VfZm9vdGVyID0gIklmIGFueSBvZiB0aGVz
ZSBlcnJvcnMgYXJlIGZhbHNlIHBvc2l0aXZlcywgcGxlYXNlIGZpbGUgYSBidWcgYWdhaW5zdCAl
cy4iICUgY2hlY2tfc3R5bGVfY29tbWFuZAorICAgICAgICByZXR1cm4gIiVzXG5cbiVzXG5cbiVz
IiAlIChtZXNzYWdlX2hlYWRlciwgc2NyaXB0X2Vycm9yX291dHB1dCwgbWVzc2FnZV9mb290ZXIp
CisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgaGFuZGxlX3NjcmlwdF9lcnJvcihjbHMsIHRv
b2wsIHN0YXRlLCBzY3JpcHRfZXJyb3IpOgotICAgICAgICBpc19zdm5fYXBwbHkgPSBzY3JpcHRf
ZXJyb3IuY29tbWFuZF9uYW1lKCkgPT0gInN2bi1hcHBseSIKLSAgICAgICAgc3RhdHVzX2lkID0g
Y2xzLl91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3IodG9vbCwgc3RhdGUsIHNjcmlwdF9l
cnJvciwgaXNfZXJyb3I9aXNfc3ZuX2FwcGx5KQotICAgICAgICBpZiBpc19zdm5fYXBwbHk6Ci0g
ICAgICAgICAgICBRdWV1ZUVuZ2luZS5leGl0X2FmdGVyX2hhbmRsZWRfZXJyb3Ioc2NyaXB0X2Vy
cm9yKQotICAgICAgICBtZXNzYWdlID0gIkF0dGFjaG1lbnQgJXMgZGlkIG5vdCBwYXNzICVzOlxu
XG4lc1xuXG5JZiBhbnkgb2YgdGhlc2UgZXJyb3JzIGFyZSBmYWxzZSBwb3NpdGl2ZXMsIHBsZWFz
ZSBmaWxlIGEgYnVnIGFnYWluc3QgY2hlY2std2Via2l0LXN0eWxlLiIgJSAoc3RhdGVbInBhdGNo
Il0uaWQoKSwgY2xzLm5hbWUsIHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KG91dHB1
dF9saW1pdD0zKjEwMjQpKQorICAgICAgICBwYXRjaF9oYXNfZmFpbGVkID0gc2NyaXB0X2Vycm9y
LmNvbW1hbmRfbmFtZSgpID09ICJzdm4tYXBwbHkiICMgc3ZuLWFwcGx5IGZhaWx1cmVzIGRvIG5v
dCBuZWNlc3NhcmlseSBtZWFuIHRoZSBwYXRjaCBoYXMgYmFkIHN0eWxlLgorICAgICAgICBzdGF0
dXNfaWQgPSBjbHMuX3VwZGF0ZV9zdGF0dXNfZm9yX3NjcmlwdF9lcnJvcih0b29sLCBzdGF0ZSwg
c2NyaXB0X2Vycm9yLCBwYXRjaF9oYXNfZmFpbGVkX3RoaXNfcXVldWU9cGF0Y2hfaGFzX2ZhaWxl
ZCkKKyAgICAgICAgaWYgcGF0Y2hfaGFzX2ZhaWxlZDoKKyAgICAgICAgICAgIHJldHVybiAjIE5v
IG5lZWQgdG8gdXBkYXRlIHRoZSBidWcgZm9yIHN2bi1hcHBseSBmYWlsdXJlcy4KKyAgICAgICAg
c2NyaXB0X2Vycm9yX291dHB1dCA9IHNlbGYuX2Zvcm1hdF9zY3JpcHRfZXJyb3Jfb3V0cHV0X2Zv
cl9idWcodG9vbCwgc3RhdHVzX2lkLCBzY3JpcHRfZXJyb3IpCisgICAgICAgIGJ1Z19tZXNzYWdl
ID0gY2xzLl9zdHlsZV9lcnJvcl9tZXNzYWdlX2Zvcl9idWcoc3RhdGVbInBhdGNoIl0uaWQoKSwg
c2NyaXB0X2Vycm9yX291dHB1dCkKICAgICAgICAgdG9vbC5idWdzLnBvc3RfY29tbWVudF90b19i
dWcoc3RhdGVbInBhdGNoIl0uYnVnX2lkKCksIG1lc3NhZ2UsIGNjPWNscy53YXRjaGVycykKLSAg
ICAgICAgZXhpdCgxKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9x
dWV1ZWVuZ2luZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcXVldWVlbmdpbmUu
cHkKaW5kZXggZDE0MTc3ZC4uZmUxMWNhNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9xdWV1ZWVuZ2luZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3F1ZXVlZW5naW5lLnB5CkBAIC0xMDcsNyArMTA3LDkgQEAgY2xhc3MgUXVldWVFbmdpbmU6
CiAgICAgICAgICAgICAgICAgICAgICMgaGFuZGxlZCBpbiB0aGUgY2hpbGQgcHJvY2VzcyBhbmQg
d2Ugc2hvdWxkIGp1c3Qga2VlcCBsb29waW5nLgogICAgICAgICAgICAgICAgICAgICBpZiBlLmV4
aXRfY29kZSA9PSBzZWxmLmhhbmRsZWRfZXJyb3JfY29kZToKICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiVW5leHBlY3RlZCBm
YWlsdXJlIHdoZW4gbGFuZGluZyBwYXRjaCEgIFBsZWFzZSBmaWxlIGEgYnVnIGFnYWluc3Qgd2Vi
a2l0LXBhdGNoLlxuJXMiICUgZS5tZXNzYWdlX3dpdGhfb3V0cHV0KCkKKyAgICAgICAgICAgICAg
ICAgICAgdG9vbF9uYW1lID0gIndlYmtpdC1wYXRjaCIgIyBRdWV1ZUVuZ2luZSBoYXMgbm8gd2F5
IHRvIGdldCB0byB0b29sLm5hbWUoKSBhdCBjdXJyZW50LgorICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlX2hlYWRlciA9ICJVbmV4cGVjdGVkIGZhaWx1cmUgd2hpbGUgcHJvY2Vzc2luZyBwYXRj
aCEgIFBsZWFzZSBmaWxlIGEgYnVnIGFnYWluc3QgJXMuIiAlIHRvb2xfbmFtZQorICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlID0gIiVzXG5cbiVzIiAlIChtZXNzYWdlX2hlYWRlciwgZS5tZXNz
YWdlX3dpdGhfb3V0cHV0KCkpCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RlbGVnYXRlLmhh
bmRsZV91bmV4cGVjdGVkX2Vycm9yKHdvcmtfaXRlbSwgbWVzc2FnZSkKICAgICAgICAgICAgIGV4
Y2VwdCBLZXlib2FyZEludGVycnVwdCwgZToKICAgICAgICAgICAgICAgICBsb2coIlxuVXNlciB0
ZXJtaW5hdGVkIHF1ZXVlLiIpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3NjbS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc2NtLnB5CmluZGV4IDc0
M2YzZmUuLjRhODFiN2QgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c2NtLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc2NtLnB5CkBAIC0yMzMs
NiArMjMzLDkgQEAgY2xhc3MgU0NNOgogICAgIGRlZiBsYXN0X3N2bl9jb21taXRfbG9nKHNlbGYp
OgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGlt
cGxlbWVudCIKIAorICAgIGRlZiBjaGVja291dF9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCisKICAg
ICAjIFN1YmNsYXNzZXMgbXVzdCBpbmRpY2F0ZSBpZiB0aGV5IHN1cHBvcnQgbG9jYWwgY29tbWl0
cywKICAgICAjIGJ1dCB0aGUgU0NNIGJhc2VjbGFzcyB3aWxsIG9ubHkgY2FsbCBsb2NhbF9jb21t
aXRzIG1ldGhvZHMgd2hlbiB0aGlzIGlzIHRydWUuCiAgICAgQHN0YXRpY21ldGhvZApAQCAtMzYy
LDYgKzM2NSw5IEBAIGNsYXNzIFNWTihTQ00pOgogICAgICAgICAjIGh0dHA6Ly9zdm5ib29rLnJl
ZC1iZWFuLmNvbS9lbi8xLjAvY2gwM3MwMy5odG1sCiAgICAgICAgIHJldHVybiBzZWxmLnN2bl9j
b21taXRfbG9nKCdCQVNFJykKIAorICAgIGRlZiBjaGVja291dF9yZXZpc2lvbihzZWxmKToKKyAg
ICAgICAgcmV0dXJuIGludChzZWxmLnZhbHVlX2Zyb21fc3ZuX2luZm8oc2VsZi5jaGVja291dF9y
b290LCAnUmV2aXNpb24nKSkKKwogIyBBbGwgZ2l0LXNwZWNpZmljIGxvZ2ljIHNob3VsZCBnbyBo
ZXJlLgogY2xhc3MgR2l0KFNDTSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGN3ZCwgZHJ5cnVu
PUZhbHNlKToKQEAgLTQ2MCw2ICs0NjYsOSBAQCBjbGFzcyBHaXQoU0NNKToKICAgICBkZWYgbGFz
dF9zdm5fY29tbWl0X2xvZyhzZWxmKToKICAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsnZ2l0
JywgJ3N2bicsICdsb2cnLCAnLS1saW1pdD0xJ10pCiAKKyAgICBkZWYgY2hlY2tvdXRfcmV2aXNp
b24oc2VsZik6CisgICAgICAgIHJldHVybiBpbnQocnVuX2NvbW1hbmQoWyJnaXQiLCAic3ZuIiwg
ImZpbmQtcmV2IiwgIkhFQUQiXSkucnN0cmlwKCkpCisKICAgICAjIEdpdC1zcGVjaWZpYyBtZXRo
b2RzOgogCiAgICAgZGVmIGNyZWF0ZV9wYXRjaF9mcm9tX2xvY2FsX2NvbW1pdChzZWxmLCBjb21t
aXRfaWQpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zY21fdW5p
dHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3NjbV91bml0dGVzdC5weQpp
bmRleCA3M2ZhZjQwLi45ODU5NTk4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3NjbV91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3NjbV91bml0dGVzdC5weQpAQCAtMjA0LDYgKzIwNCw5IEBAIGNsYXNzIFNDTVRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKCd0ZXN0Mics
IHIzX3BhdGNoKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaCgndGVzdDInLCBz
ZWxmLnNjbS5kaWZmX2Zvcl9yZXZpc2lvbigyKSkpCiAKKyAgICBkZWYgX3NoYXJlZF90ZXN0X2No
ZWNrb3V0X3JldmlzaW9uKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2Nt
LmNoZWNrb3V0X3JldmlzaW9uKCksIDQpCisKICAgICBkZWYgX3NoYXJlZF90ZXN0X3N2bl9hcHBs
eV9naXRfcGF0Y2goc2VsZik6CiAgICAgICAgIHNlbGYuX3NldHVwX3dlYmtpdHRvb2xzX3Njcmlw
dHNfc3ltbGluayhzZWxmLnNjbSkKICAgICAgICAgZ2l0X2JpbmFyeV9hZGRpdGlvbiA9ICIiImRp
ZmYgLS1naXQgYS9maXp6YnV6ejcuZ2lmIGIvZml6emJ1eno3LmdpZgpAQCAtNDY1LDYgKzQ2OCw5
IEBAIFExZFRCeDBBQUFCNDJpdGc0R2xnWUpqR3dNRER5T0RNeE1EdzM0R0JnUUVBSlBRREpBPT0K
ICAgICBkZWYgdGVzdF9kaWZmX2Zvcl9yZXZpc2lvbihzZWxmKToKICAgICAgICAgc2VsZi5fc2hh
cmVkX3Rlc3RfZGlmZl9mb3JfcmV2aXNpb24oKQogCisgICAgZGVmIHRlc3RfY2hlY2tvdXRfcmV2
aXNpb24oc2VsZik6CisgICAgICAgIHNlbGYuX3NoYXJlZF90ZXN0X2NoZWNrb3V0X3JldmlzaW9u
KCkKKwogICAgIGRlZiB0ZXN0X3N2bl9hcHBseV9naXRfcGF0Y2goc2VsZik6CiAgICAgICAgIHNl
bGYuX3NoYXJlZF90ZXN0X3N2bl9hcHBseV9naXRfcGF0Y2goKQogCkBAIC01NTcsNiArNTYzLDkg
QEAgY2xhc3MgR2l0VGVzdChTQ01UZXN0KToKICAgICBkZWYgdGVzdF9kaWZmX2Zvcl9yZXZpc2lv
bihzZWxmKToKICAgICAgICAgc2VsZi5fc2hhcmVkX3Rlc3RfZGlmZl9mb3JfcmV2aXNpb24oKQog
CisgICAgZGVmIHRlc3RfY2hlY2tvdXRfcmV2aXNpb24oc2VsZik6CisgICAgICAgIHNlbGYuX3No
YXJlZF90ZXN0X2NoZWNrb3V0X3JldmlzaW9uKCkKKwogICAgIGRlZiB0ZXN0X3N2bl9hcHBseV9n
aXRfcGF0Y2goc2VsZik6CiAgICAgICAgIHNlbGYuX3NoYXJlZF90ZXN0X3N2bl9hcHBseV9naXRf
cGF0Y2goKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46997</attachid>
            <date>2010-01-20 02:50:20 -0800</date>
            <delta_ts>2010-06-10 20:35:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33496-20100120025018.patch</filename>
            <type>text/plain</type>
            <size>18495</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5NjdhY2E2Li45ZmRiYjRkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDEt
MjAgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1jb21taXQtcXVldWUgc3RhdHVzIHBh
Z2UgaXMgY29uZnVzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMzQ5NgorCisgICAgICAgIFRoaXMgc2hvdWxkIGltcHJvdmUgdGhlIHN0YXR1cyBw
YWdlIGJ5IHJlbW92aW5nIG1vcmUgRmFpbCBtZXNzYWdlcy4KKyAgICAgICAgVG8gZG8gdGhpcywg
SSByZS1mYWN0b3JlZCB0aGUgQ29tbWl0UXVldWUgYW5kIHRoZSBBYnN0cmFjdFJldmlld1F1ZXVl
cworICAgICAgICB0byBiZWhhdmUgbW9yZSBsaWtlIG9uZSBhbm90aGVyLiAgVGhpcyBtZWFudCBt
b3Zpbmcgd2hlcmUgdGhlIGZhaWx1cmUgcmVwb3J0aW5nIHdhcyBkb25lLgorICAgICAgICBQcmV2
aW91c2x5IHRoZSBBYnN0cmFjdFJldmlld1F1ZXVlIGFsd2F5cyB1c2VkIHRoZSBwYXJlbnQgcHJv
Y2VzcyB0byByZXBvcnQgdGhlIGVycm9yLAorICAgICAgICB3aGlsZSBDb21taXRRdWV1ZSB1c2Vk
IHRoZSBzdWJwcm9jZXNzIHdoZW4gcG9zc2libGUsIGFuZCB0aGUgcGFyZW50IG9ubHkgcmVwb3J0
ZWQgZXJyb3JzCisgICAgICAgIHRoYXQgd2UgZGlkbid0IGtub3cgaG93IHRvIGhhbmRsZSAoYnVn
cyBpbiB0aGUgY29tbWl0LXF1ZXVlIGl0c2VsZikuCisgICAgICAgIE5vdyB0aGUgQWJzdHJhY3RS
ZXZpZXdRdWV1ZSBmb2xsb3cncyB0aGUgY29tbWl0LXF1ZXVlJ3MgbW9kZWwuICBUaGlzIGdvdCBy
aWQgb2YgYSB0cnktYmxvY2sKKyAgICAgICAgaW4gYm90aCBpbXBsZW1lbnRhdGlvbnMgYW5kIHJl
cXVpcmVkIHRlYWNoaW5nIGhhbmRsZV9zY3JpcHRfZXJyb3IgaW4gZWFjaCB0byBwb3N0IEZhaWwg
bWVzc2FnZXMKKyAgICAgICAgdG8gdGhlIHN0YXR1cyBzZXJ2ZXIgaW5zdGVhZCBvZiBjYWxsaW5n
IGV4aXQoMSkuCisKKyAgICAgICAgVGhpcyB3aWxsIGFsc28gbWFrZSB0aGUgc3R5bGUtcXVldWUg
c2hhcmUgbW9yZSBidWcgcG9zdGluZyBsb2dpYyB3aXRoIG90aGVyIHF1ZXVlczoKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzODcxCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Vhcmx5X3dhcm5pbmdfc3lzdGVtLnB5OgorICAg
ICAgICAgLSBEb24ndCBleGl0KDEpIGFzIHRoYXQgd2lsbCBjYXVzZSB0aGUgY2FsbGluZyBxdWV1
ZSB0byBhbHNvIHJlcG9ydCBGYWlsIHRvIHRoZSBzdGF0dXMgc2VydmVyLgorICAgICAgICAgICBJ
bXBsZW1lbnRvcnMgb2YgaGFuZGxlX3NjcmlwdF9lcnJvciBhcmUgZXhwZWN0ZWQgdG8gdXBkYXRl
IHRoZSBzdGF0dXMgc2VydmVyIGlmIG5lZWRlZCwgYnV0IG9ubHkgZXhpdCBpZiB0aGUgZXJyb3Ig
Y291bGQgbm90IGJlIGhhbmRsZWQuCisgICAgICAgICAgIFNvIHdlIGluc3RlYWQgcGFzcyBwYXRj
aF9oYXNfZmFpbGVkX3RoaXNfcXVldWU9VHJ1ZSB0byBfdXBkYXRlX3N0YXR1c19mb3Jfc2NyaXB0
X2Vycm9yIGluIHRoZSBjYXNlIHRoYXQgdGhpcyB3YXMgYSByZWFsIGZhaWx1cmUuCisgICAgICAg
ICAgIF91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3Iga25vd3MgaG93IHRvIHBvc3QgdGhl
IEZhaWwgbWVzc2FnZSB0byB0aGUgc3RhdHVzIHNlcnZlci4KKyAgICAgICAgIC0gVGVhY2ggX3Vw
ZGF0ZV9zdGF0dXNfZm9yX3NjcmlwdF9lcnJvciBob3cgdG8gcG9zdCBGYWlsIG1lc3NhZ2VzIHRv
IHRoZSBzdGF0dXMgc2VydmVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMv
cXVldWVzLnB5OgorICAgICAgICAgLSBSZW1vdmUgdGhlIHRyeSBibG9jayBmcm9tIHByb2Nlc3Nf
d29ya19pdGVtIHNpbmNlIHRoZSBjYWxsZXIgYWxyZWFkeSBoYXMgb25lLgorICAgICAgICAgLSBP
bmx5IENDIHdhdGNoZXJzIG9uIGZhaWx1cmUgdG8gY3V0IGRvd24gb24gY29tbWl0LXF1ZXVlIGdl
bmVyYXRlZCBtYWlsLgorICAgICAgICAgLSBoYW5kbGVfdW5leHBlY3RlZF9lcnJvciBuZWVkcyB0
byBtYXJrIF9kaWRfZmFpbCBub3cgdGhhdCB0aGUgdHJ5IGJsb2NrIGlzIGdvbmUgZnJvbSBwcm9j
ZXNzX3dvcmtfaXRlbS4KKyAgICAgICAgIC0gQWJzdHJhY3QgX2Zvcm1hdF9zY3JpcHRfZXJyb3Jf
b3V0cHV0X2Zvcl9idWcgdG8gc2hhcmUgY29kZSBiZXR3ZWVuIGFsbCBxdWV1ZXMuCisgICAgICAg
ICAtIFRoZSBuZXcgX2Zvcm1hdF9zY3JpcHRfZXJyb3Jfb3V0cHV0X2Zvcl9idWcgYWxsb3dzIHRo
ZSBzdHlsZS1xdWV1ZSB0byBzaGFyZSB0aGUgcG9zdGluZyBsaW1pdCB3aXRoIG90aGVyIHF1ZXVl
cywgYXMgd2VsbCBhcyBzdXBwb3J0IGxpbmtpbmcgdG8gdGhlIGZ1bGwgb3V0cHV0LgorICAgICAg
ICAgLSBSZW5hbWUgX2Nhbl9idWlsZF9hbmRfdGVzdCB0byBfY3VycmVudF9jaGVja291dF9idWls
ZHNfYW5kX3Bhc3Nlc190ZXN0cyB0byBiZXR0ZXIgZXhwbGFpbiB3aGF0IHJldmlzaW9uIGl0J3Mg
dGVzdGluZy4KKyAgICAgICAgIC0gTW92ZSBsb2dnaW5nIG91dCBvZiBfY2FuX2J1aWxkX2FuZF90
ZXN0IGFuZCBtYWtlIHRoZSBsb2dzIGV4cGxhaW4gd2hhdCByZXZpc2lvbiB3ZSdyZSB0ZXN0aW5n
LgorICAgICAgICAgLSBoYW5kbGVfc2NyaXB0X2Vycm9yIG5vdyBwb3N0cyBGYWlsIGluc3RlYWQg
b2YgdGhlIHRyeSBibG9jayBpbiBwcm9jZXNzX3dvcmtfaXRlbSBoYW5kbGluZyBpdC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3F1ZXVlZW5naW5lLnB5OgorICAgICAgICAgLSBRdWV1ZUVu
Z2luZSBpcyBubyBsb25nZXIgdXNlZCBqdXN0IGJ5IHRoZSBjb21taXQtcXVldWUsIHVwZGF0ZSB0
aGUgbG9nZ2luZyB0byBzYXkgInByb2Nlc3NpbmciIGluc3RlYWQgb2YgbGFuZGluZy4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3NjbS5weToKKyAgICAgICAgIC0gQWRkIG5ldyBjaGVja291
dF9yZXZpc2lvbiBmdW5jdGlvbi4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3NjbV91bml0
dGVzdC5weToKKyAgICAgICAgIC0gVGVzdCBvdXIgbmV3IGNoZWNrb3V0X3JldmlzaW9uIGZ1bmN0
aW9uLgorCiAyMDEwLTAxLTE5ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5v
a2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZWFybHlfd2FybmluZ19z
eXN0ZW0ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Vhcmx5X3dh
cm5pbmdfc3lzdGVtLnB5CmluZGV4IGUzZTE0ZGQuLjExMGM2N2UgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZWFybHlfd2FybmluZ19zeXN0ZW0ucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9lYXJseV93YXJuaW5n
X3N5c3RlbS5weQpAQCAtNzAsMTUgKzcwLDEwIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUpOgogICAgICAgICAgICAgcGF0Y2guaWQoKV0pCiAK
ICAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgaGFuZGxlX3NjcmlwdF9lcnJvcihjbHMsIHRvb2ws
IHN0YXRlLCBzY3JpcHRfZXJyb3IpOgotICAgICAgICBpc19zdm5fYXBwbHkgPSBzY3JpcHRfZXJy
b3IuY29tbWFuZF9uYW1lKCkgPT0gInN2bi1hcHBseSIKLSAgICAgICAgc3RhdHVzX2lkID0gY2xz
Ll91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3IodG9vbCwgc3RhdGUsIHNjcmlwdF9lcnJv
ciwgaXNfZXJyb3I9aXNfc3ZuX2FwcGx5KQotICAgICAgICBpZiBpc19zdm5fYXBwbHk6Ci0gICAg
ICAgICAgICBRdWV1ZUVuZ2luZS5leGl0X2FmdGVyX2hhbmRsZWRfZXJyb3Ioc2NyaXB0X2Vycm9y
KQorICAgIGRlZiBfcmVwb3J0X3BhdGNoX2ZhaWx1cmUoY2xzLCB0b29sLCBwYXRjaCwgc2NyaXB0
X2Vycm9yKToKICAgICAgICAgcmVzdWx0c19saW5rID0gdG9vbC5zdGF0dXNfc2VydmVyLnJlc3Vs
dHNfdXJsX2Zvcl9zdGF0dXMoc3RhdHVzX2lkKQotICAgICAgICBtZXNzYWdlID0gIkF0dGFjaG1l
bnQgJXMgZGlkIG5vdCBidWlsZCBvbiAlczpcbkJ1aWxkIG91dHB1dDogJXMiICUgKHN0YXRlWyJw
YXRjaCJdLmlkKCksIGNscy5wb3J0X25hbWUsIHJlc3VsdHNfbGluaykKLSAgICAgICAgdG9vbC5i
dWdzLnBvc3RfY29tbWVudF90b19idWcoc3RhdGVbInBhdGNoIl0uYnVnX2lkKCksIG1lc3NhZ2Us
IGNjPWNscy53YXRjaGVycykKLSAgICAgICAgZXhpdCgxKQorICAgICAgICBtZXNzYWdlID0gIkF0
dGFjaG1lbnQgJXMgZGlkIG5vdCBidWlsZCBvbiAlczpcbkJ1aWxkIG91dHB1dDogJXMiICUgKHBh
dGNoLmlkKCksIGNscy5wb3J0X25hbWUsIHJlc3VsdHNfbGluaykKKyAgICAgICAgdG9vbC5idWdz
LnBvc3RfY29tbWVudF90b19idWcocGF0Y2guYnVnX2lkKCksIG1lc3NhZ2UsIGNjPWNscy53YXRj
aGVycykKIAogCiBjbGFzcyBHdGtFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWV1ZXMucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weQppbmRleCAz
NTBjMWVhLi4xMzQ2YTJlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1hbmRzL3F1ZXVlcy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1hbmRzL3F1ZXVlcy5weQpAQCAtMTA2LDYgKzEwNiw4IEBAIGNsYXNzIEFic3RyYWN0UXVldWUo
Q29tbWFuZCwgUXVldWVFbmdpbmVEZWxlZ2F0ZSk6CiAgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVt
KHNlbGYsIHdvcmtfaXRlbSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJz
dWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgogCisgICAgIyBTdWJjbGFzc2VzIGFyZSBleHBlY3Rl
ZCB0byBwb3N0IHRoZSBtZXNzYWdlIHNvbWV3aGVyZSBpdCBjYW4gYmUgcmVhZCBieSBhIGh1bWFu
LgorICAgICMgVGhleSBzaG91bGQgYWxzbyBwcmV2ZW50IHRoZSBxdWV1ZSBmcm9tIHByb2Nlc3Np
bmcgdGhpcyBwYXRjaCBhZ2Fpbi4KICAgICBkZWYgaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3Ioc2Vs
Ziwgd29ya19pdGVtLCBtZXNzYWdlKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
ciwgInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCiAKQEAgLTEyNSwxMSArMTI3LDI1IEBAIGNs
YXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmVEZWxlZ2F0ZSk6CiAgICAgICAg
IHJldHVybiBlbmdpbmUoc2VsZi5uYW1lLCBzZWxmKS5ydW4oKQogCiAgICAgQGNsYXNzbWV0aG9k
Ci0gICAgZGVmIF91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3IoY2xzLCB0b29sLCBzdGF0
ZSwgc2NyaXB0X2Vycm9yLCBpc19lcnJvcj1GYWxzZSk6CisgICAgZGVmIF91cGRhdGVfc3RhdHVz
X2Zvcl9zY3JpcHRfZXJyb3IoY2xzLCB0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yLCBwYXRjaF9o
YXNfZmFpbGVkX3RoaXNfcXVldWU9VHJ1ZSk6CiAgICAgICAgIG1lc3NhZ2UgPSBzY3JpcHRfZXJy
b3IubWVzc2FnZQotICAgICAgICBpZiBpc19lcnJvcjoKKyAgICAgICAgIyBFcnJvcjogdHVybnMg
dGhlIHN0YXR1cyBidWJibGUgcHVycGxlIGFuZCBtZWFucyB0aGF0IHRoZSBlcnJvciB3YXMgc3Vj
aCB0aGF0IHdlIGNhbid0IHRlbGwgaWYgdGhlIHBhdGNoIGZhaWxzIG9yIG5vdC4KKyAgICAgICAg
aWYgbm90IHBhdGNoX2hhc19mYWlsZWRfdGhpc19xdWV1ZToKICAgICAgICAgICAgIG1lc3NhZ2Ug
PSAiRXJyb3I6ICVzIiAlIG1lc3NhZ2UKLSAgICAgICAgcmV0dXJuIHRvb2wuc3RhdHVzX3NlcnZl
ci51cGRhdGVfc3RhdHVzKGNscy5uYW1lLCBtZXNzYWdlLCBzdGF0ZVsicGF0Y2giXSwgU3RyaW5n
SU8oc2NyaXB0X2Vycm9yLm91dHB1dCkpCisgICAgICAgIHN0YXR1c19pZCA9IHRvb2wuc3RhdHVz
X3NlcnZlci51cGRhdGVfc3RhdHVzKGNscy5uYW1lLCBtZXNzYWdlLCBzdGF0ZVsicGF0Y2giXSwg
U3RyaW5nSU8oc2NyaXB0X2Vycm9yLm91dHB1dCkpCisgICAgICAgICMgSW4gdGhlIGNhc2Ugd2Ug
a25vdyB0aGF0IHRoaXMgcGF0Y2ggYWN0dWFsbHkgZmFpbGVkIHRoZSBxdWV1ZSwgd2UgbWFrZSBh
IHNlY29uZCBzdGF0dXMgZW50cnkgKG1vc3RseSBiZWNhdXNlIHRoZSBzZXJ2ZXIgZG9lc24ndAor
ICAgICAgICAjIHVuZGVyc3RhbmQgbWVzc2FnZXMgcHJlZml4ZWQgd2l0aCAiRmFpbDoiIHRvIG1l
YW4gZmFpbHVyZXMsIGFuZCB0aHVzIHdvdWxkIGxlYXZlIHRoZSBzdGF0dXMgYnViYmxlIHllbGxv
dyBpbnN0ZWFkIG9mIHJlZCkuCisgICAgICAgICMgRklYTUU6IEZhaWwgdnMuIEVycm9yIHNob3Vs
ZCByZWFsbHkgYmUgc3RvcmVkIG9uIGEgc2VwYXJhdGUgZmllbGQgZnJvbSB0aGUgbWVzc2FnZSBv
biB0aGUgc2VydmVyLgorICAgICAgICBpZiBwYXRjaF9oYXNfZmFpbGVkX3RoaXNfcXVldWU6Cisg
ICAgICAgICAgICB0b29sLnN0YXR1c19zZXJ2ZXIudXBkYXRlX3N0YXR1cyhjbHMubmFtZSwgY2xz
Ll9mYWlsX3N0YXR1cykKKyAgICAgICAgcmV0dXJuIHN0YXR1c19pZCAjIFJldHVybiB0aGUgc3Rh
dHVzIGlkIHRvIHRoZSBvcmlnaW5hbCBtZXNzYWdlIHdpdGggYWxsIHRoZSBzY3JpcHQgb3V0cHV0
LgorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9mb3JtYXRfc2NyaXB0X2Vycm9yX291dHB1
dF9mb3JfYnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKToKKyAgICAgICAgaWYgbm90
IHNjcmlwdF9lcnJvci5vdXRwdXQ6CisgICAgICAgICAgICByZXR1cm4gc2NyaXB0X2Vycm9yLm1l
c3NhZ2Vfd2l0aF9vdXRwdXQoKQorICAgICAgICByZXN1bHRzX2xpbmsgPSB0b29sLnN0YXR1c19z
ZXJ2ZXIucmVzdWx0c191cmxfZm9yX3N0YXR1cyhzdGF0dXNfaWQpCisgICAgICAgIHJldHVybiAi
JXNcbkZ1bGwgb3V0cHV0OiAlcyIgJSAoc2NyaXB0X2Vycm9yLm1lc3NhZ2Vfd2l0aF9vdXRwdXQo
KSwgcmVzdWx0c19saW5rKQogCiAKIGNsYXNzIENvbW1pdFF1ZXVlKEFic3RyYWN0UXVldWUsIFN0
ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6CkBAIC0xNTksMTEgKzE3NSwxMCBAQCBjbGFzcyBDb21t
aXRRdWV1ZShBYnN0cmFjdFF1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIpOgogICAgICAg
ICBzZWxmLmxvZ19wcm9ncmVzcyhbcGF0Y2guaWQoKSBmb3IgcGF0Y2ggaW4gcGF0Y2hlc10pCiAg
ICAgICAgIHJldHVybiBwYXRjaGVzWzBdCiAKLSAgICBkZWYgX2Nhbl9idWlsZF9hbmRfdGVzdChz
ZWxmKToKKyAgICBkZWYgX2N1cnJlbnRfY2hlY2tvdXRfYnVpbGRzX2FuZF9wYXNzZXNfdGVzdHMo
c2VsZik6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChb
ImJ1aWxkLWFuZC10ZXN0IiwgIi0tZm9yY2UtY2xlYW4iLCAiLS1ub24taW50ZXJhY3RpdmUiLCAi
LS1idWlsZC1zdHlsZT1ib3RoIiwgIi0tcXVpZXQiXSkKICAgICAgICAgZXhjZXB0IFNjcmlwdEVy
cm9yLCBlOgotICAgICAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cygiVW5hYmxlZCB0byBzdWNj
ZXNzZnVsbHkgYnVpbGQgYW5kIHRlc3QiLCBOb25lKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CiAgICAgICAgIHJldHVybiBUcnVlCiAKQEAgLTE3OCw0MyArMTkzLDM3IEBAIGNsYXNzIENvbW1p
dFF1ZXVlKEFic3RyYWN0UXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6CiAgICAgZGVm
IHNob3VsZF9wcm9jZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKICAgICAgICAgaWYg
bm90IHNlbGYuX2J1aWxkZXJzX2FyZV9ncmVlbigpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNl
Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9jYW5fYnVpbGRfYW5kX3Rlc3QoKToKKyAgICAgICAgY3Vy
cmVudF9yZXZpc2lvbiA9IHNlbGYudG9vbC5zY20oKS5jaGVja291dF9yZXZpc2lvbigpCisgICAg
ICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoIkJ1aWxkaW5nIGFuZCB0ZXN0aW5nIHIlcyBiZWZvcmUg
bGFuZGluZyBwYXRjaCIgJSBjdXJyZW50X3JldmlzaW9uLCBwYXRjaCkKKyAgICAgICAgaWYgbm90
IHNlbGYuX2N1cnJlbnRfY2hlY2tvdXRfYnVpbGRzX2FuZF9wYXNzZXNfdGVzdHMoKToKKyAgICAg
ICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoIkZhaWxlZCB0byBidWlsZCBhbmQgdGVzdCByJXMs
IHdpbGwgdHJ5IGxhbmRpbmcgbGF0ZXIiICUgY3VycmVudF9yZXZpc2lvbiwgcGF0Y2gpCiAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkZXJzX2FyZV9n
cmVlbigpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHNlbGYuX3VwZGF0ZV9z
dGF0dXMoIkxhbmRpbmcgcGF0Y2giLCBwYXRjaCkKICAgICAgICAgcmV0dXJuIFRydWUKIAorICAg
ICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHVuaWZpZWQgd2l0aCBBYnN0cmFjdFJldmlld1F1ZXVl
J3MgaW1wbGVtZW50YXRpb24uICAoTW9zdGx5IF9yZXZpZXdfcGF0Y2gganVzdCBuZWVkcyBhIHJl
bmFtZS4pCiAgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgc2VsZi5fY2Nfd2F0Y2hlcnMocGF0Y2guYnVnX2lkKCkpCi0gICAg
ICAgICAgICAjIFdlIHBhc3MgLS1uby11cGRhdGUgaGVyZSBiZWNhdXNlIHdlJ3ZlIGFscmVhZHkg
dmFsaWRhdGVkCi0gICAgICAgICAgICAjIHRoYXQgdGhlIGN1cnJlbnQgcmV2aXNpb24gYWN0dWFs
bHkgYnVpbGRzIGFuZCBwYXNzZXMgdGhlIHRlc3RzLgotICAgICAgICAgICAgIyBJZiB3ZSB1cGRh
dGUsIHdlIHJpc2sgbW92aW5nIHRvIGEgcmV2aXNpb24gdGhhdCBkb2Vzbid0IQotICAgICAgICAg
ICAgc2VsZi5ydW5fd2Via2l0X3BhdGNoKFsibGFuZC1hdHRhY2htZW50IiwgIi0tZm9yY2UtY2xl
YW4iLCAiLS1ub24taW50ZXJhY3RpdmUiLCAiLS1uby11cGRhdGUiLCAiLS1wYXJlbnQtY29tbWFu
ZD1jb21taXQtcXVldWUiLCAiLS1idWlsZC1zdHlsZT1ib3RoIiwgIi0tcXVpZXQiLCBwYXRjaC5p
ZCgpXSkKLSAgICAgICAgICAgIHNlbGYuX2RpZF9wYXNzKHBhdGNoKQotICAgICAgICBleGNlcHQg
U2NyaXB0RXJyb3IsIGU6Ci0gICAgICAgICAgICBzZWxmLl9kaWRfZmFpbChwYXRjaCkKLSAgICAg
ICAgICAgIHJhaXNlIGUKKyAgICAgICAgIyBXZSBwYXNzIC0tbm8tdXBkYXRlIGhlcmUgYmVjYXVz
ZSB3ZSd2ZSBhbHJlYWR5IHZhbGlkYXRlZAorICAgICAgICAjIHRoYXQgdGhlIGN1cnJlbnQgcmV2
aXNpb24gYWN0dWFsbHkgYnVpbGRzIGFuZCBwYXNzZXMgdGhlIHRlc3RzLgorICAgICAgICAjIElm
IHdlIHVwZGF0ZSwgd2UgcmlzayBtb3ZpbmcgdG8gYSByZXZpc2lvbiB0aGF0IGRvZXNuJ3QhCisg
ICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChbImxhbmQtYXR0YWNobWVudCIsICItLWZvcmNl
LWNsZWFuIiwgIi0tbm9uLWludGVyYWN0aXZlIiwgIi0tbm8tdXBkYXRlIiwgIi0tcGFyZW50LWNv
bW1hbmQ9Y29tbWl0LXF1ZXVlIiwgIi0tYnVpbGQtc3R5bGU9Ym90aCIsICItLXF1aWV0IiwgcGF0
Y2guaWQoKV0pCisgICAgICAgIHNlbGYuX2RpZF9wYXNzKHBhdGNoKQogCiAgICAgZGVmIGhhbmRs
ZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYsIHBhdGNoLCBtZXNzYWdlKToKLSAgICAgICAgc2VsZi5j
b21taXR0ZXJfdmFsaWRhdG9yLnJlamVjdF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShwYXRjaC5p
ZCgpLCBtZXNzYWdlKQorICAgICAgICBzZWxmLl9kaWRfZmFpbChwYXRjaCkKKyAgICAgICAgc2Vs
Zi5fY2Nfd2F0Y2hlcnMocGF0Y2guYnVnX2lkKCkpCisgICAgICAgIHNlbGYuY29tbWl0dGVyX3Zh
bGlkYXRvci5yZWplY3RfcGF0Y2hfZnJvbV9jb21taXRfcXVldWUocGF0Y2guaWQoKSwgbWVzc2Fn
ZSkgIyBTaG91bGQgaW5zdGVhZCBwYXNzIGNscy53YXRjaGVycyBhcyBhIENDIGxpc3QgaGVyZS4K
IAogICAgICMgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyIG1ldGhvZHMKIAotICAgIEBzdGF0aWNt
ZXRob2QKLSAgICBkZWYgX2Vycm9yX21lc3NhZ2VfZm9yX2J1Zyh0b29sLCBzdGF0dXNfaWQsIHNj
cmlwdF9lcnJvcik6Ci0gICAgICAgIGlmIG5vdCBzY3JpcHRfZXJyb3Iub3V0cHV0OgotICAgICAg
ICAgICAgcmV0dXJuIHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KCkKLSAgICAgICAg
cmVzdWx0c19saW5rID0gdG9vbC5zdGF0dXNfc2VydmVyLnJlc3VsdHNfdXJsX2Zvcl9zdGF0dXMo
c3RhdHVzX2lkKQotICAgICAgICByZXR1cm4gIiVzXG5GdWxsIG91dHB1dDogJXMiICUgKHNjcmlw
dF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KCksIHJlc3VsdHNfbGluaykKLQogICAgIEBjbGFz
c21ldGhvZAogICAgIGRlZiBoYW5kbGVfc2NyaXB0X2Vycm9yKGNscywgdG9vbCwgc3RhdGUsIHNj
cmlwdF9lcnJvcik6Ci0gICAgICAgIHN0YXR1c19pZCA9IGNscy5fdXBkYXRlX3N0YXR1c19mb3Jf
c2NyaXB0X2Vycm9yKHRvb2wsIHN0YXRlLCBzY3JpcHRfZXJyb3IpCi0gICAgICAgIHZhbGlkYXRv
ciA9IENvbW1pdHRlclZhbGlkYXRvcih0b29sLmJ1Z3MpCi0gICAgICAgIHZhbGlkYXRvci5yZWpl
Y3RfcGF0Y2hfZnJvbV9jb21taXRfcXVldWUoc3RhdGVbInBhdGNoIl0uaWQoKSwgY2xzLl9lcnJv
cl9tZXNzYWdlX2Zvcl9idWcodG9vbCwgc3RhdHVzX2lkLCBzY3JpcHRfZXJyb3IpKQotCisgICAg
ICAgIHN0YXR1c19pZCA9IGNscy5fdXBkYXRlX3N0YXR1c19mb3Jfc2NyaXB0X2Vycm9yKHRvb2ws
IHN0YXRlLCBzY3JpcHRfZXJyb3IsIHBhdGNoX2hhc19mYWlsZWRfdGhpc19xdWV1ZT1UcnVlKQor
ICAgICAgICBzY3JpcHRfZXJyb3Jfb3V0cHV0ID0gY2xzLl9mb3JtYXRfc2NyaXB0X2Vycm9yX291
dHB1dF9mb3JfYnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKQorICAgICAgICBzZWxm
Ll9jY193YXRjaGVycyhwYXRjaC5idWdfaWQoKSkKKyAgICAgICAgQ29tbWl0dGVyVmFsaWRhdG9y
KHRvb2wuYnVncykucmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0X3F1ZXVlKHN0YXRlWyJwYXRjaCJd
LmlkKCksIHNjcmlwdF9lcnJvcl9vdXRwdXQpICMgU2hvdWxkIGluc3RlYWQgcGFzcyBjbHMud2F0
Y2hlcnMgYXMgYSBDQyBsaXN0IGhlcmUuCiAKIGNsYXNzIEFic3RyYWN0UmV2aWV3UXVldWUoQWJz
dHJhY3RRdWV1ZSwgUGVyc2lzdGVudFBhdGNoQ29sbGVjdGlvbkRlbGVnYXRlLCBTdGVwU2VxdWVu
Y2VFcnJvckhhbmRsZXIpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zPU5vbmUpOgpA
QCAtMjUwLDE2ICsyNTksMjUgQEAgY2xhc3MgQWJzdHJhY3RSZXZpZXdRdWV1ZShBYnN0cmFjdFF1
ZXVlLCBQZXJzaXN0ZW50UGF0Y2hDb2xsZWN0aW9uRGVsZWdhdGUsIFN0ZXAKICAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCiAKICAg
ICBkZWYgcHJvY2Vzc193b3JrX2l0ZW0oc2VsZiwgcGF0Y2gpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBzZWxmLl9yZXZpZXdfcGF0Y2gocGF0Y2gpCi0gICAgICAgICAgICBzZWxmLl9kaWRf
cGFzcyhwYXRjaCkKLSAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgotICAgICAgICAgICAg
aWYgZS5leGl0X2NvZGUgIT0gUXVldWVFbmdpbmUuaGFuZGxlZF9lcnJvcl9jb2RlOgotICAgICAg
ICAgICAgICAgIHNlbGYuX2RpZF9mYWlsKHBhdGNoKQotICAgICAgICAgICAgcmFpc2UgZQorICAg
ICAgICBzZWxmLl9yZXZpZXdfcGF0Y2gocGF0Y2gpCisgICAgICAgIHNlbGYuX2RpZF9wYXNzKHBh
dGNoKQogCiAgICAgZGVmIGhhbmRsZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYsIHBhdGNoLCBtZXNz
YWdlKToKLSAgICAgICAgbG9nKG1lc3NhZ2UpCisgICAgICAgIGxvZyhtZXNzYWdlKSAjIFVuaXQg
dGVzdHMgZXhwZWN0IHVzIHRvIGxvZywgd2UgY291bGQgZXZlbnR1YWxseSByZW1vdmUgdGhpcyBz
aW5jZSBwb3N0X2NvbW1lbnRfdG9fYnVnIHdpbGwgbG9nIGFzIHdlbGwuCisgICAgICAgIHNlbGYu
X2RpZF9mYWlsKHBhdGNoKQorICAgICAgICBzZWxmLnRvb2wuYnVncy5wb3N0X2NvbW1lbnRfdG9f
YnVnKHBhdGNoLmJ1Z19pZCgpLCBtZXNzYWdlLCBjYz1zZWxmLndhdGNoZXJzKQorCisgICAgQGNs
YXNzbWV0aG9kCisgICAgZGVmIF9yZXBvcnRfcGF0Y2hfZmFpbHVyZShjbHMsIHRvb2wsIHBhdGNo
LCBzY3JpcHRfZXJyb3IpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3Vi
Y2xhc3NlcyBtdXN0IGltcGxlbWVudCIKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBoYW5k
bGVfc2NyaXB0X2Vycm9yKGNscywgdG9vbCwgc3RhdGUsIHNjcmlwdF9lcnJvcik6CisgICAgICAg
IHBhdGNoX2hhc19mYWlsZWQgPSBzY3JpcHRfZXJyb3IuY29tbWFuZF9uYW1lKCkgIT0gInN2bi1h
cHBseSIgIyBzdm4tYXBwbHkgZmFpbHVyZXMgZG8gbm90IG5lY2Vzc2FyaWx5IG1lYW4gdGhlIHBh
dGNoIHdvdWxkIGZhaWwgdG8gYnVpbGQuCisgICAgICAgIHN0YXR1c19pZCA9IGNscy5fdXBkYXRl
X3N0YXR1c19mb3Jfc2NyaXB0X2Vycm9yKHRvb2wsIHN0YXRlLCBzY3JpcHRfZXJyb3IsIHBhdGNo
X2hhc19mYWlsZWRfdGhpc19xdWV1ZT1wYXRjaF9oYXNfZmFpbGVkKQorICAgICAgICBpZiBwYXRj
aF9oYXNfZmFpbGVkOgorICAgICAgICAgICAgcmV0dXJuICMgTm8gbmVlZCB0byB1cGRhdGUgdGhl
IGJ1ZyBmb3Igc3ZuLWFwcGx5IGZhaWx1cmVzLgorICAgICAgICBjbHMuX3JlcG9ydF9wYXRjaF9m
YWlsdXJlKHRvb2wsIHBhdGNoLCBzY3JpcHRfZXJyb3IpCiAKICAgICAjIFN0ZXBTZXF1ZW5jZUVy
cm9ySGFuZGxlciBtZXRob2RzCiAKQEAgLTI4MSwxMSArMjk5LDE0IEBAIGNsYXNzIFN0eWxlUXVl
dWUoQWJzdHJhY3RSZXZpZXdRdWV1ZSk6CiAgICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChb
ImNoZWNrLXN0eWxlIiwgIi0tZm9yY2UtY2xlYW4iLCAiLS1ub24taW50ZXJhY3RpdmUiLCAiLS1w
YXJlbnQtY29tbWFuZD1zdHlsZS1xdWV1ZSIsIHBhdGNoLmlkKCldKQogCiAgICAgQGNsYXNzbWV0
aG9kCi0gICAgZGVmIGhhbmRsZV9zY3JpcHRfZXJyb3IoY2xzLCB0b29sLCBzdGF0ZSwgc2NyaXB0
X2Vycm9yKToKLSAgICAgICAgaXNfc3ZuX2FwcGx5ID0gc2NyaXB0X2Vycm9yLmNvbW1hbmRfbmFt
ZSgpID09ICJzdm4tYXBwbHkiCi0gICAgICAgIHN0YXR1c19pZCA9IGNscy5fdXBkYXRlX3N0YXR1
c19mb3Jfc2NyaXB0X2Vycm9yKHRvb2wsIHN0YXRlLCBzY3JpcHRfZXJyb3IsIGlzX2Vycm9yPWlz
X3N2bl9hcHBseSkKLSAgICAgICAgaWYgaXNfc3ZuX2FwcGx5OgotICAgICAgICAgICAgUXVldWVF
bmdpbmUuZXhpdF9hZnRlcl9oYW5kbGVkX2Vycm9yKHNjcmlwdF9lcnJvcikKLSAgICAgICAgbWVz
c2FnZSA9ICJBdHRhY2htZW50ICVzIGRpZCBub3QgcGFzcyAlczpcblxuJXNcblxuSWYgYW55IG9m
IHRoZXNlIGVycm9ycyBhcmUgZmFsc2UgcG9zaXRpdmVzLCBwbGVhc2UgZmlsZSBhIGJ1ZyBhZ2Fp
bnN0IGNoZWNrLXdlYmtpdC1zdHlsZS4iICUgKHN0YXRlWyJwYXRjaCJdLmlkKCksIGNscy5uYW1l
LCBzY3JpcHRfZXJyb3IubWVzc2FnZV93aXRoX291dHB1dChvdXRwdXRfbGltaXQ9MyoxMDI0KSkK
LSAgICAgICAgdG9vbC5idWdzLnBvc3RfY29tbWVudF90b19idWcoc3RhdGVbInBhdGNoIl0uYnVn
X2lkKCksIG1lc3NhZ2UsIGNjPWNscy53YXRjaGVycykKLSAgICAgICAgZXhpdCgxKQorICAgIGRl
ZiBfc3R5bGVfZXJyb3JfbWVzc2FnZV9mb3JfYnVnKGNscywgcGF0Y2hfaWQsIHNjcmlwdF9lcnJv
cl9vdXRwdXQpOgorICAgICAgICBjaGVja19zdHlsZV9jb21tYW5kID0gImNoZWNrLXdlYmtpdC1z
dHlsZSIKKyAgICAgICAgbWVzc2FnZV9oZWFkZXIgPSAiQXR0YWNobWVudCAlcyBkaWQgbm90IHBh
c3MgJXM6IiAlIChwYXRjaF9pZCwgY2xzLm5hbWUpCisgICAgICAgIG1lc3NhZ2VfZm9vdGVyID0g
IklmIGFueSBvZiB0aGVzZSBlcnJvcnMgYXJlIGZhbHNlIHBvc2l0aXZlcywgcGxlYXNlIGZpbGUg
YSBidWcgYWdhaW5zdCAlcy4iICUgY2hlY2tfc3R5bGVfY29tbWFuZAorICAgICAgICByZXR1cm4g
IiVzXG5cbiVzXG5cbiVzIiAlIChtZXNzYWdlX2hlYWRlciwgc2NyaXB0X2Vycm9yX291dHB1dCwg
bWVzc2FnZV9mb290ZXIpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3JlcG9ydF9wYXRj
aF9mYWlsdXJlKGNscywgdG9vbCwgcGF0Y2gsIHNjcmlwdF9lcnJvcik6CisgICAgICAgIHNjcmlw
dF9lcnJvcl9vdXRwdXQgPSBzZWxmLl9mb3JtYXRfc2NyaXB0X2Vycm9yX291dHB1dF9mb3JfYnVn
KHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKQorICAgICAgICBidWdfbWVzc2FnZSA9IGNs
cy5fc3R5bGVfZXJyb3JfbWVzc2FnZV9mb3JfYnVnKHBhdGNoLmlkKCksIHNjcmlwdF9lcnJvcl9v
dXRwdXQpCisgICAgICAgIHRvb2wuYnVncy5wb3N0X2NvbW1lbnRfdG9fYnVnKHBhdGNoLmJ1Z19p
ZCgpLCBtZXNzYWdlLCBjYz1jbHMud2F0Y2hlcnMpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3F1ZXVlZW5naW5lLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9xdWV1ZWVuZ2luZS5weQppbmRleCBkMTQxNzdkLi5mZTExY2E1IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3F1ZXVlZW5naW5lLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcXVldWVlbmdpbmUucHkKQEAgLTEwNyw3ICsxMDcsOSBAQCBj
bGFzcyBRdWV1ZUVuZ2luZToKICAgICAgICAgICAgICAgICAgICAgIyBoYW5kbGVkIGluIHRoZSBj
aGlsZCBwcm9jZXNzIGFuZCB3ZSBzaG91bGQganVzdCBrZWVwIGxvb3BpbmcuCiAgICAgICAgICAg
ICAgICAgICAgIGlmIGUuZXhpdF9jb2RlID09IHNlbGYuaGFuZGxlZF9lcnJvcl9jb2RlOgogICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZSA9ICJVbmV4cGVjdGVkIGZhaWx1cmUgd2hlbiBsYW5kaW5nIHBhdGNoISAgUGxlYXNlIGZpbGUg
YSBidWcgYWdhaW5zdCB3ZWJraXQtcGF0Y2guXG4lcyIgJSBlLm1lc3NhZ2Vfd2l0aF9vdXRwdXQo
KQorICAgICAgICAgICAgICAgICAgICB0b29sX25hbWUgPSAid2Via2l0LXBhdGNoIiAjIFF1ZXVl
RW5naW5lIGhhcyBubyB3YXkgdG8gZ2V0IHRvIHRvb2wubmFtZSgpIGF0IGN1cnJlbnQuCisgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2VfaGVhZGVyID0gIlVuZXhwZWN0ZWQgZmFpbHVyZSB3aGls
ZSBwcm9jZXNzaW5nIHBhdGNoISAgUGxlYXNlIGZpbGUgYSBidWcgYWdhaW5zdCAlcy4iICUgdG9v
bF9uYW1lCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiJXNcblxuJXMiICUgKG1lc3Nh
Z2VfaGVhZGVyLCBlLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSkKICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fZGVsZWdhdGUuaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3Iod29ya19pdGVtLCBtZXNzYWdl
KQogICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0LCBlOgogICAgICAgICAgICAg
ICAgIGxvZygiXG5Vc2VyIHRlcm1pbmF0ZWQgcXVldWUuIikKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc2NtLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zY20ucHkKaW5kZXggNzQzZjNmZS4uNGE4MWI3ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zY20ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zY20ucHkKQEAgLTIzMyw2ICsyMzMsOSBAQCBjbGFzcyBTQ006CiAgICAgZGVmIGxhc3Rfc3Zu
X2NvbW1pdF9sb2coc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJz
dWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgogCisgICAgZGVmIGNoZWNrb3V0X3JldmlzaW9uKHNl
bGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0
IGltcGxlbWVudCIKKwogICAgICMgU3ViY2xhc3NlcyBtdXN0IGluZGljYXRlIGlmIHRoZXkgc3Vw
cG9ydCBsb2NhbCBjb21taXRzLAogICAgICMgYnV0IHRoZSBTQ00gYmFzZWNsYXNzIHdpbGwgb25s
eSBjYWxsIGxvY2FsX2NvbW1pdHMgbWV0aG9kcyB3aGVuIHRoaXMgaXMgdHJ1ZS4KICAgICBAc3Rh
dGljbWV0aG9kCkBAIC0zNjIsNiArMzY1LDkgQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAgICAgICMg
aHR0cDovL3N2bmJvb2sucmVkLWJlYW4uY29tL2VuLzEuMC9jaDAzczAzLmh0bWwKICAgICAgICAg
cmV0dXJuIHNlbGYuc3ZuX2NvbW1pdF9sb2coJ0JBU0UnKQogCisgICAgZGVmIGNoZWNrb3V0X3Jl
dmlzaW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gaW50KHNlbGYudmFsdWVfZnJvbV9zdm5faW5m
byhzZWxmLmNoZWNrb3V0X3Jvb3QsICdSZXZpc2lvbicpKQorCiAjIEFsbCBnaXQtc3BlY2lmaWMg
bG9naWMgc2hvdWxkIGdvIGhlcmUuCiBjbGFzcyBHaXQoU0NNKToKICAgICBkZWYgX19pbml0X18o
c2VsZiwgY3dkLCBkcnlydW49RmFsc2UpOgpAQCAtNDYwLDYgKzQ2Niw5IEBAIGNsYXNzIEdpdChT
Q00pOgogICAgIGRlZiBsYXN0X3N2bl9jb21taXRfbG9nKHNlbGYpOgogICAgICAgICByZXR1cm4g
cnVuX2NvbW1hbmQoWydnaXQnLCAnc3ZuJywgJ2xvZycsICctLWxpbWl0PTEnXSkKIAorICAgIGRl
ZiBjaGVja291dF9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIGludChydW5fY29tbWFu
ZChbImdpdCIsICJzdm4iLCAiZmluZC1yZXYiLCAiSEVBRCJdKS5yc3RyaXAoKSkKKwogICAgICMg
R2l0LXNwZWNpZmljIG1ldGhvZHM6CiAKICAgICBkZWYgY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxf
Y29tbWl0KHNlbGYsIGNvbW1pdF9pZCk6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3NjbV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c2NtX3VuaXR0ZXN0LnB5CmluZGV4IDczZmFmNDAuLjk4NTk1OTggMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc2NtX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc2NtX3VuaXR0ZXN0LnB5CkBAIC0yMDQsNiArMjA0LDkgQEAgY2xh
c3MgU0NNVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShy
ZS5zZWFyY2goJ3Rlc3QyJywgcjNfcGF0Y2gpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocmUu
c2VhcmNoKCd0ZXN0MicsIHNlbGYuc2NtLmRpZmZfZm9yX3JldmlzaW9uKDIpKSkKIAorICAgIGRl
ZiBfc2hhcmVkX3Rlc3RfY2hlY2tvdXRfcmV2aXNpb24oc2VsZik6CisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc2VsZi5zY20uY2hlY2tvdXRfcmV2aXNpb24oKSwgNCkKKwogICAgIGRlZiBfc2hh
cmVkX3Rlc3Rfc3ZuX2FwcGx5X2dpdF9wYXRjaChzZWxmKToKICAgICAgICAgc2VsZi5fc2V0dXBf
d2Via2l0dG9vbHNfc2NyaXB0c19zeW1saW5rKHNlbGYuc2NtKQogICAgICAgICBnaXRfYmluYXJ5
X2FkZGl0aW9uID0gIiIiZGlmZiAtLWdpdCBhL2ZpenpidXp6Ny5naWYgYi9maXp6YnV6ejcuZ2lm
CkBAIC00NjUsNiArNDY4LDkgQEAgUTFkVEJ4MEFBQUI0Mml0ZzRHbGdZSmpHd01ERHlPRE14TUR3
MzRHQmdRRUFKUFFESkE9PQogICAgIGRlZiB0ZXN0X2RpZmZfZm9yX3JldmlzaW9uKHNlbGYpOgog
ICAgICAgICBzZWxmLl9zaGFyZWRfdGVzdF9kaWZmX2Zvcl9yZXZpc2lvbigpCiAKKyAgICBkZWYg
dGVzdF9jaGVja291dF9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgc2VsZi5fc2hhcmVkX3Rlc3Rf
Y2hlY2tvdXRfcmV2aXNpb24oKQorCiAgICAgZGVmIHRlc3Rfc3ZuX2FwcGx5X2dpdF9wYXRjaChz
ZWxmKToKICAgICAgICAgc2VsZi5fc2hhcmVkX3Rlc3Rfc3ZuX2FwcGx5X2dpdF9wYXRjaCgpCiAK
QEAgLTU1Nyw2ICs1NjMsOSBAQCBjbGFzcyBHaXRUZXN0KFNDTVRlc3QpOgogICAgIGRlZiB0ZXN0
X2RpZmZfZm9yX3JldmlzaW9uKHNlbGYpOgogICAgICAgICBzZWxmLl9zaGFyZWRfdGVzdF9kaWZm
X2Zvcl9yZXZpc2lvbigpCiAKKyAgICBkZWYgdGVzdF9jaGVja291dF9yZXZpc2lvbihzZWxmKToK
KyAgICAgICAgc2VsZi5fc2hhcmVkX3Rlc3RfY2hlY2tvdXRfcmV2aXNpb24oKQorCiAgICAgZGVm
IHRlc3Rfc3ZuX2FwcGx5X2dpdF9wYXRjaChzZWxmKToKICAgICAgICAgc2VsZi5fc2hhcmVkX3Rl
c3Rfc3ZuX2FwcGx5X2dpdF9wYXRjaCgpCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>