<?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>97699</bug_id>
          
          <creation_ts>2012-09-26 10:51:52 -0700</creation_ts>
          <short_desc>The style bot spams about skia_test_expectations.txt</short_desc>
          <delta_ts>2012-09-26 17:09:03 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>728732</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 10:51:52 -0700</bug_when>
    <thetext>The style bot spams about skia_test_expectations.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728733</commentid>
    <comment_count>1</comment_count>
      <attachid>165830</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 10:52:46 -0700</bug_when>
    <thetext>Created attachment 165830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728737</commentid>
    <comment_count>2</comment_count>
      <attachid>165830</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-09-26 10:54:12 -0700</bug_when>
    <thetext>Comment on attachment 165830
Patch

We could also downgrade this to an info?  But seems OK to me.  Should let Dirk comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728740</commentid>
    <comment_count>3</comment_count>
      <attachid>165830</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 10:56:00 -0700</bug_when>
    <thetext>Comment on attachment 165830
Patch

I&apos;m not okay with just removing this message altogether, since it can catch real issues with people interactively uploading patches and running the style checks (or doing other things when parsing the chromium files). 

I thought we discussed this somewhere a couple days ago ... I agree that we should fix this so that the style bot doesn&apos;t get this warning, but removing the message altogether isn&apos;t the right way to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728741</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 10:56:51 -0700</bug_when>
    <thetext>I&apos;m open to suggestions about how to make the style bot not spam.  Our earlier discussion did not result in the problem being fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728742</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 10:57:24 -0700</bug_when>
    <thetext>I am sympathetic to wanting to stop the bleeding ... give me a few minutes to suggest an alternative; if there isn&apos;t a straightforward way to do that we can land this until I can come up with a better mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728743</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 10:57:59 -0700</bug_when>
    <thetext>Thanks!  (See https://bugs.webkit.org/show_bug.cgi?id=97013#c24 for a recent example of spamming.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728778</commentid>
    <comment_count>7</comment_count>
      <attachid>165837</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 11:21:11 -0700</bug_when>
    <thetext>Created attachment 165837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728788</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 11:25:48 -0700</bug_when>
    <thetext>Okay, I&apos;ve posted a patch that&apos;s closer to what I had in mind, but I&apos;m not totally happy with it. The main thing is that I would like there to be a warning when check-webkit-style is run interactively (or during webkit-patch upload), but not on the EWS bot, and I&apos;m not sure yet how to accomplish this. Also, the patch needs tests and it&apos;s generally crufty so I&apos;m not sure if this is worth the effort.

To Eric&apos;s comment on the other bug ... what is the style bot&apos;s threshold for failures: warnings or errors? I would&apos;ve hoped it would be errors (since that&apos;s my normal definition of the difference between an error and a warning), but if it&apos;s not feasible to not have warnings turn the bot red, maybe a better workaround would be to just change this message to _log.info().

If neither of those suggestions will fly, then I&apos;m okay with getting rid of the message altogether, temporarily, but can we do that by commenting out the line and adding a fixme referencing this bug so that I can be reminded to figure out a better way to deal with this? I do agree that the bot shouldn&apos;t get this message at all but I&apos;m still working on the best way to make that happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728792</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-09-26 11:28:40 -0700</bug_when>
    <thetext>It&apos;s unclear to me what this warning does?

It is an error to run check-webkit-style in WebKit w/o a full chromium checkout?

It&apos;s warning you that you haven&apos;t run update-webkit --chromium, no?

Why does this have any bearing on style (or the expectations)?

(I don&apos;t have enough information here to know if any of this is good or bad.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728797</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 11:35:13 -0700</bug_when>
    <thetext>It seems unfortunate to need to teach all the other ports about the Chromium-specific notion of a partial checkout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728806</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 11:44:59 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; It&apos;s unclear to me what this warning does?
&gt; 

It&apos;s warning the user that they might not get the results they&apos;re expecting because they don&apos;t have a properly configured checkout.

&gt; It is an error to run check-webkit-style in WebKit w/o a full chromium checkout?
&gt;

It&apos;s not supposed to be an &quot;error&quot; using my definition above, i.e., it shouldn&apos;t stop you from running things. It&apos;s debatable whether you can properly lint the TestExpectations files if you don&apos;t have a full set of them, but I think you should be able to just lint the lines you&apos;ve changed (which is what check-webkit-style is supposed to be doing, I think), so I&apos;m okay with the bots not needing a full checkout and not producing this warning.

In the interactive user case, I haven&apos;t decided if we should have the error or not. In once sense, if a user is modifying the chromium TestExpectations file and doesn&apos;t have a full checkout, I&apos;m a bit worried and perhaps the warning is a good thing. In another sense, this should be okay because we should only complain about the lines the user changed.
 
&gt; It&apos;s warning you that you haven&apos;t run update-webkit --chromium, no?

Right.
 
&gt; Why does this have any bearing on style (or the expectations)?
&gt; 

See above. If you don&apos;t have a full chromium checkout, the expectations for the chromium ports may be &quot;wrong&quot;: at least, not what you think they might be.


(In reply to comment #10)
&gt; It seems unfortunate to need to teach all the other ports about the Chromium-specific notion of a partial checkout.

Agreed. That&apos;s one of the reasons why I&apos;m not totally happy with my patch and okay with landing the other one now that I&apos;ve taken a look at things. I&apos;m also not happy that I  had to touch so many files; it seems like that indicates that something isn&apos;t designed well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728810</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 11:47:01 -0700</bug_when>
    <thetext>You should be able to change Chromium&apos;s TestExpectations file without a DEPS-enabled checkout.  We change the TestExpectations files for other ports all the time, and don&apos;t need any of their secret sauce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728840</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 12:08:25 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; You should be able to change Chromium&apos;s TestExpectations file without a DEPS-enabled checkout.  We change the TestExpectations files for other ports all the time, and don&apos;t need any of their secret sauce.

I&apos;m not sure where (or even if) we&apos;re disagreeing here. Here are some examples of my thinking, in order of when I think errors are appropriate ...

1.  &quot;run-webkit-tests --chromium&quot; should produce a warning if the skia test expectations file is missing. Arguably, this shouldn&apos;t normally happen since one would&apos;ve had to do a checkout to do a build, but if the file is missing this likely indicates that something&apos;s wrong.

2. run-webkit-test --lint-test-files probably should generate a warning, since you may not be seeing a full set of warnings about the chromium ports. I&apos;m not 100% sure about this since I can see arguments for not wanting to get warnings, in some situations, too.

3. As discussed above, check-webkit-style probably should *not* generate a warning, but I&apos;m a bit less certain here because arguably if someone is modifying the chromium files w/o having the downstream files checked out, they might be doing the wrong thing (although I understand your observation and wish we didn&apos;t have to split expectations across the multiple repos).

4. The style bot shouldn&apos;t generate an error in this case, since it doesn&apos;t have a full checkout and we don&apos;t want it to have to have one. Arguably it would be nice to generate a non-fatal warning, but I wouldn&apos;t want it to generate the 10+ it seems to do now.

Do you agree with the above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728858</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 12:21:16 -0700</bug_when>
    <thetext>&gt; Do you agree with the above?

Yes.  Perhaps the solution is to check for the file in a different layer.  For example, we could move the check to the same place we check for wdiff and the like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728864</commentid>
    <comment_count>15</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-26 12:27:18 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; 2. run-webkit-test --lint-test-files probably should generate a warning, since you may not be seeing a full set of warnings about the chromium ports. I&apos;m not 100% sure about this since I can see arguments for not wanting to get warnings, in some situations, too.

I don&apos;t think it should warn unless you pass --chromium or something. Having it always spam out this line for people without a Chromium DEPS checkout makes it more likely that they&apos;ll learn to ignore the lint output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728913</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 13:22:04 -0700</bug_when>
    <thetext>I suppose one could argue that this warning is doing more harm than good at this point; if the only place we want a warning for sure in case #1, that&apos;s also the least likely to actually happen. Thinking about this more over the past couple hours, I think I&apos;ve convinced myself that it&apos;s not that useful a warning at this point (I think it was more useful when things were brand new and the existence of the skia file was not as well known).

I will rework the code a bit and post another try. Something should definitely warn if the file doesn&apos;t exist and we&apos;re actually trying to run the tests, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729084</commentid>
    <comment_count>17</comment_count>
      <attachid>165901</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 17:06:21 -0700</bug_when>
    <thetext>Created attachment 165901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729085</commentid>
    <comment_count>18</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 17:07:06 -0700</bug_when>
    <thetext>Okay, I&apos;m giving up on this warning for now. I&apos;ve posted a patch that is basically Adam&apos;s path with some more comments and some cleaned up test code that will no longer be necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729087</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 17:08:24 -0700</bug_when>
    <thetext>&gt; Okay, I&apos;m giving up on this warning for now. I&apos;ve posted a patch that is basically Adam&apos;s path with some more comments and some cleaned up test code that will no longer be necessary.

Thanks.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729088</commentid>
    <comment_count>20</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 17:09:03 -0700</bug_when>
    <thetext>Committed r129714: &lt;http://trac.webkit.org/changeset/129714&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165830</attachid>
            <date>2012-09-26 10:52:46 -0700</date>
            <delta_ts>2012-09-26 11:21:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97699-20120926105212.patch</filename>
            <type>text/plain</type>
            <size>1787</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEyOTY2OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDEyLTA5LTI2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVGhlIHN0eWxlIGJvdCBzcGFtcyBhYm91dCBza2lhX3Rlc3RfZXhwZWN0YXRpb25z
LnR4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2
OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIHJlbW92ZXMgdGhpcyB3YXJuaW5nIG1lc3NhZ2UgYmVjYXVzZSBpdCBpcyBjYXVzaW5n
IHRoZSBzdHlsZQorICAgICAgICBib3QgdG8gc3BhbSBidWdzLiBUaGlzIHdhcm5pbmcgbWlnaHQg
YmUgdXNlZnVsIGluIHNvbWUgY2FzZXMsIGJ1dCBpdCdzCisgICAgICAgIG5vdCBvayB0byBzcGFt
IGJ1Z3Mgd2l0aCB0aGlzIG1lc3NhZ2UuIFdlIGNhbiByZS1hZGQgdGhpcyBtZXNzYWdlIGlmIHdl
CisgICAgICAgIGNhbiBkbyBpdCBpbiBhIHdheSB0aGF0IGRvZXNuJ3Qgc3BhbS4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHk6CisgICAg
ICAgIChDaHJvbWl1bVBvcnQuZXhwZWN0YXRpb25zX2ZpbGVzKToKKwogMjAxMi0wOS0yNiAgTWlj
aGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1
aWxkIGNoYW5nZS4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW0ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQkocmV2aXNpb24gMTI5NjY4KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQkod29ya2luZyBjb3B5
KQpAQCAtMzM3LDggKzMzNyw2IEBAIGNsYXNzIENocm9taXVtUG9ydChQb3J0KToKICAgICAgICAg
c2tpYV9leHBlY3RhdGlvbnNfcGF0aCA9IHNlbGYucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3Nr
aWEnLCAnc2tpYV90ZXN0X2V4cGVjdGF0aW9ucy50eHQnKQogICAgICAgICBpZiBzZWxmLl9maWxl
c3lzdGVtLmV4aXN0cyhza2lhX2V4cGVjdGF0aW9uc19wYXRoKToKICAgICAgICAgICAgIHBhdGhz
LmFwcGVuZChza2lhX2V4cGVjdGF0aW9uc19wYXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgX2xvZy53YXJuaW5nKCJVc2luZyB0aGUgY2hyb21pdW0gcG9ydCB3aXRob3V0IGhhdmluZyB0
aGUgZG93bnN0cmVhbSBza2lhX3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBmaWxlIGNoZWNrZWQgb3V0
LiBFeHBlY3RhdGlvbnMgcmVsYXRlZCB0aGluZ3MgbWlnaHQgYmUgd29ua3kuIikKIAogICAgICAg
ICBidWlsZGVyX25hbWUgPSBzZWxmLmdldF9vcHRpb24oJ2J1aWxkZXJfbmFtZScsICdEVU1NWV9C
VUlMREVSX05BTUUnKQogICAgICAgICBpZiBidWlsZGVyX25hbWUgPT0gJ0RVTU1ZX0JVSUxERVJf
TkFNRScgb3IgJyhkZXBzKScgaW4gYnVpbGRlcl9uYW1lIG9yIGJ1aWxkZXJfbmFtZSBpbiBzZWxm
LnRyeV9idWlsZGVyX25hbWVzOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165837</attachid>
            <date>2012-09-26 11:21:11 -0700</date>
            <delta_ts>2012-09-26 17:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97699-20120926112047.patch</filename>
            <type>text/plain</type>
            <size>19586</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NjcwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjNhMGE5NzVhOTAxNzM5ZDc1ODFmMDFjNmE3ZGRkNDhl
Y2NlNTZlYS4uYzY5MWM5YzI3MWI1MTk2OWFiMTk3MmQ0MjBiMWIyMWM0NDFmMWEzMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUz
IEBACisyMDEyLTA5LTI2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFRoZSBzdHlsZSBib3Qgc3BhbXMgYWJvdXQgc2tpYV90ZXN0X2V4cGVjdGF0aW9ucy50
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Njk5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG90ZW50
aWFsIGZpeCBmb3IgbWFraW5nIHRoaW5ncyB3b3JrIGJldHRlciBldmVuIHRoZXJlIGlzbid0IGEK
KyAgICAgICAgc2tpYSBjaGVja291dDsgdGhpcyBpc24ndCBhIGZ1bGwgZml4IGJlY2F1c2Ugd2Ug
ZG9uJ3QgaGF2ZSBhIHdheQorICAgICAgICB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGFuIGludGVy
YWN0aXZlIHJ1biBvZiBjaGVjay13ZWJraXQtc3R5bGUKKyAgICAgICAgYW5kIHRoZSBhdXRvbWF0
ZWQgaW52b2NhdGlvbiBvbiB0aGUgc3R5bGUgYm90cyAod2hpY2ggc2hvdWxkbid0CisgICAgICAg
IGdldCB0aGUgd2FybmluZykuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoUmVzdWx0U3Vt
bWFyeVRlc3QuZ2V0X3Jlc3VsdF9zdW1tYXJ5KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHk6CisgICAgICAgIChUZXN0
RXhwZWN0YXRpb25zLl9faW5pdF9fKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHk6CisgICAgICAgIChw
YXJzZV9leHApOgorICAgICAgICAoU2tpcHBlZFRlc3RzLmNoZWNrKToKKyAgICAgICAgKFNraXBw
ZWRUZXN0cy50ZXN0X3NraXBwZWRfZW50cnlfZG9udF9leGlzdCk6CisgICAgICAgIChSZW1vdmVD
b25maWd1cmF0aW9uc1Rlc3QudGVzdF9yZW1vdmUpOgorICAgICAgICAodGVzdF9yZW1vdmVfbGlu
ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9hcHBsZS5w
eToKKyAgICAgICAgKEFwcGxlUG9ydC5fZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToK
KyAgICAgICAgKFBvcnQuZXhwZWN0YXRpb25zX2RpY3QpOgorICAgICAgICAoUG9ydC5leHBlY3Rh
dGlvbnNfZmlsZXMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvYmFzZV91bml0dGVzdC5weToKKyAgICAgICAgKFBvcnRUZXN0LnRlc3Rfbm9uZXhpc3RhbnRf
ZXhwZWN0YXRpb25zKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtLnB5OgorICAgICAgICAoQ2hyb21pdW1Qb3J0LmV4cGVjdGF0aW9uc19maWxl
cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9hbmRyb2lkLnB5OgorICAgICAgICAoQ2hyb21pdW1BbmRyb2lkUG9ydC5leHBlY3RhdGlvbnNf
ZmlsZXMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZWZs
LnB5OgorICAgICAgICAoRWZsUG9ydC5leHBlY3RhdGlvbnNfZmlsZXMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9y
dCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rl
c3RjYXNlLnB5OgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfZXhwZWN0YXRpb25zX29yZGVy
aW5nKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5
OgorICAgICAgICAoUXRQb3J0LmV4cGVjdGF0aW9uc19maWxlcyk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3Qu
cHk6CisgICAgICAgIChMaW50VGVzdC50ZXN0X2FsbF9jb25maWd1cmF0aW9ucy5GYWtlUG9ydC5l
eHBlY3RhdGlvbnNfZGljdCk6CisgICAgICAgIChMaW50VGVzdC50ZXN0X2xpbnRfdGVzdF9maWxl
c19fZXJyb3JzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rl
c3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uc0NoZWNrZXIuX2Rl
dGVybWluZV9wb3J0X2Zyb21fZXhwZWN0YXRpb25zX3BhdGgpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5OgorICAgICAgICAo
dGVzdF9vdmVycmlkZXNfYXJlX2luY2x1ZGVkX2NvcnJlY3RseSk6CisKIDIwMTItMDktMjYgIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBjaGFuZ2UuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQppbmRleCBl
OTRkMTMzMmJlNDIzNTZhNGZmMmM2OWNlM2Y0ODg0NGJhMjk4YjQzLi41MzRhZGNlOTk0ZWQ1YzJk
NjA0ZDM3N2RiN2M0NGRiZjY4MmIxNGRlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5p
dHRlc3QucHkKQEAgLTE0MCw3ICsxNDAsNyBAQCBjbGFzcyBSZXN1bHRTdW1tYXJ5VGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHJldHVybiB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0
ZXN0X25hbWUsIGZhaWx1cmVzPWZhaWx1cmVzLCB0ZXN0X3J1bl90aW1lPXJ1bl90aW1lKQogCiAg
ICAgZGVmIGdldF9yZXN1bHRfc3VtbWFyeShzZWxmLCBwb3J0LCB0ZXN0X25hbWVzLCBleHBlY3Rh
dGlvbnNfc3RyKToKLSAgICAgICAgcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYTogeycn
OiBleHBlY3RhdGlvbnNfc3RyfQorICAgICAgICBwb3J0LmV4cGVjdGF0aW9uc19kaWN0ID0gbGFt
YmRhIHBhcnRpYWxfY2hlY2tvdXQ9RmFsc2U6IHsnJzogZXhwZWN0YXRpb25zX3N0cn0KICAgICAg
ICAgZXhwZWN0YXRpb25zID0gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucyhwb3J0
LCB0ZXN0X25hbWVzKQogICAgICAgICByZXR1cm4gdGVzdF9uYW1lcywgUmVzdWx0U3VtbWFyeShl
eHBlY3RhdGlvbnMsIHRlc3RfbmFtZXMsIDEsIHNldCgpKSwgZXhwZWN0YXRpb25zCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4
cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCA0MmI1MThmN2ZiODk1MzczNzc2YzRiYTVkM2Ni
ZGFiYTMzNTgzMGRiLi4yY2RhNGYyNmFjMWE2M2M0OWE0MDA2OWI1OGZiNzA2YmZhZWU5Y2Y3IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9leHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC04NDYsNyArODQ2LDcgQEAgY2xhc3Mg
VGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAogICAg
ICAgICBzZWxmLl9za2lwcGVkX3Rlc3RzX3dhcm5pbmdzID0gW10KIAotICAgICAgICBleHBlY3Rh
dGlvbnNfZGljdCA9IHBvcnQuZXhwZWN0YXRpb25zX2RpY3QoKQorICAgICAgICBleHBlY3RhdGlv
bnNfZGljdCA9IHBvcnQuZXhwZWN0YXRpb25zX2RpY3QocGFydGlhbF9jaGVja291dD1GYWxzZSkK
ICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zID0gc2VsZi5fcGFyc2VyLnBhcnNlKGV4cGVjdGF0
aW9uc19kaWN0LmtleXMoKVswXSwgZXhwZWN0YXRpb25zX2RpY3QudmFsdWVzKClbMF0pCiAgICAg
ICAgIHNlbGYuX2FkZF9leHBlY3RhdGlvbnMoc2VsZi5fZXhwZWN0YXRpb25zKQogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBl
Y3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggYzU2MDYwNzFkNjkx
YjMwZmYwNDJjMWIxMjIzNWMwMWZhZjJjNWFjZC4uMDM5MWI3ZGMwNzI1YzJiNzI5NDBjY2RlOTM5
NjI4Mjc2OTk5OTVjMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0
dGVzdC5weQpAQCAtNzksNyArNzksNyBAQCBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvaW1h
Z2UuaHRtbCBbIFdvbnRGaXggTWFjIF0KICAgICAgICAgZXhwZWN0YXRpb25zX2RpY3RbJ2V4cGVj
dGF0aW9ucyddID0gZXhwZWN0YXRpb25zCiAgICAgICAgIGlmIG92ZXJyaWRlczoKICAgICAgICAg
ICAgIGV4cGVjdGF0aW9uc19kaWN0WydvdmVycmlkZXMnXSA9IG92ZXJyaWRlcwotICAgICAgICBz
ZWxmLl9wb3J0LmV4cGVjdGF0aW9uc19kaWN0ID0gbGFtYmRhOiBleHBlY3RhdGlvbnNfZGljdAor
ICAgICAgICBzZWxmLl9wb3J0LmV4cGVjdGF0aW9uc19kaWN0ID0gbGFtYmRhIHBhcnRpYWxfY2hl
Y2tvdXQ9RmFsc2U6IGV4cGVjdGF0aW9uc19kaWN0CiAgICAgICAgIHNlbGYuX2V4cCA9IFRlc3RF
eHBlY3RhdGlvbnMoc2VsZi5fcG9ydCwgc2VsZi5nZXRfYmFzaWNfdGVzdHMoKSwgaXNfbGludF9t
b2RlKQogCiAgICAgZGVmIGFzc2VydF9leHAoc2VsZiwgdGVzdCwgcmVzdWx0KToKQEAgLTI0Niw3
ICsyNDYsNyBAQCBjbGFzcyBTa2lwcGVkVGVzdHMoQmFzZSk6CiAgICAgICAgIGV4cGVjdGF0aW9u
c19kaWN0WydleHBlY3RhdGlvbnMnXSA9IGV4cGVjdGF0aW9ucwogICAgICAgICBpZiBvdmVycmlk
ZXM6CiAgICAgICAgICAgICBleHBlY3RhdGlvbnNfZGljdFsnb3ZlcnJpZGVzJ10gPSBvdmVycmlk
ZXMKLSAgICAgICAgcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYTogZXhwZWN0YXRpb25z
X2RpY3QKKyAgICAgICAgcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYSBwYXJ0aWFsX2No
ZWNrb3V0PUZhbHNlOiBleHBlY3RhdGlvbnNfZGljdAogICAgICAgICBwb3J0LnNraXBwZWRfbGF5
b3V0X3Rlc3RzID0gbGFtYmRhIHRlc3RzOiBzZXQoc2tpcHMpCiAgICAgICAgIGV4cCA9IFRlc3RF
eHBlY3RhdGlvbnMocG9ydCwgWydmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnXSwgbGludCkK
IApAQCAtMjgxLDcgKzI4MSw3IEBAIGNsYXNzIFNraXBwZWRUZXN0cyhCYXNlKToKICAgICAgICAg
cG9ydCA9IE1vY2tIb3N0KCkucG9ydF9mYWN0b3J5LmdldCgncXQnKQogICAgICAgICBleHBlY3Rh
dGlvbnNfZGljdCA9IE9yZGVyZWREaWN0KCkKICAgICAgICAgZXhwZWN0YXRpb25zX2RpY3RbJ2V4
cGVjdGF0aW9ucyddID0gJycKLSAgICAgICAgcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJk
YTogZXhwZWN0YXRpb25zX2RpY3QKKyAgICAgICAgcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxh
bWJkYSBwYXJ0aWFsX2NoZWNrb3V0PUZhbHNlOiBleHBlY3RhdGlvbnNfZGljdAogICAgICAgICBw
b3J0LnNraXBwZWRfbGF5b3V0X3Rlc3RzID0gbGFtYmRhIHRlc3RzOiBzZXQoWydmb28vYmFyL2Jh
ei5odG1sJ10pCiAgICAgICAgIGNhcHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKICAgICAgICAgY2Fw
dHVyZS5jYXB0dXJlX291dHB1dCgpCkBAIC00NjIsNyArNDYyLDcgQEAgY2xhc3MgUmVtb3ZlQ29u
ZmlndXJhdGlvbnNUZXN0KEJhc2UpOgogICAgICAgICB0ZXN0X3BvcnQudGVzdF9pc2ZpbGUgPSBs
YW1iZGEgdGVzdDogVHJ1ZQogCiAgICAgICAgIHRlc3RfY29uZmlnID0gdGVzdF9wb3J0LnRlc3Rf
Y29uZmlndXJhdGlvbigpCi0gICAgICAgIHRlc3RfcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxh
bWJkYTogeyJleHBlY3RhdGlvbnMiOiAiIiJCdWcoeCkgWyBMaW51eCBXaW4gUmVsZWFzZSBdIGZh
aWx1cmVzL2V4cGVjdGVkL2Zvby5odG1sIFsgRmFpbHVyZSBdCisgICAgICAgIHRlc3RfcG9ydC5l
eHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYSBwYXJ0aWFsX2NoZWNrb3V0PUZhbHNlOiB7ImV4cGVj
dGF0aW9ucyI6ICIiIkJ1Zyh4KSBbIExpbnV4IFdpbiBSZWxlYXNlIF0gZmFpbHVyZXMvZXhwZWN0
ZWQvZm9vLmh0bWwgWyBGYWlsdXJlIF0KIEJ1Zyh5KSBbIFdpbiBNYWMgRGVidWcgXSBmYWlsdXJl
cy9leHBlY3RlZC9mb28uaHRtbCBbIENyYXNoIF0KICIiIn0KICAgICAgICAgZXhwZWN0YXRpb25z
ID0gVGVzdEV4cGVjdGF0aW9ucyh0ZXN0X3BvcnQsIHNlbGYuZ2V0X2Jhc2ljX3Rlc3RzKCkpCkBA
IC00ODAsNyArNDgwLDcgQEAgQnVnKHkpIFsgV2luIE1hYyBEZWJ1ZyBdIGZhaWx1cmVzL2V4cGVj
dGVkL2Zvby5odG1sIFsgQ3Jhc2ggXQogICAgICAgICB0ZXN0X3BvcnQudGVzdF9pc2ZpbGUgPSBs
YW1iZGEgdGVzdDogVHJ1ZQogCiAgICAgICAgIHRlc3RfY29uZmlnID0gdGVzdF9wb3J0LnRlc3Rf
Y29uZmlndXJhdGlvbigpCi0gICAgICAgIHRlc3RfcG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxh
bWJkYTogeydleHBlY3RhdGlvbnMnOiAiIiJCdWcoeCkgWyBXaW4gUmVsZWFzZSBdIGZhaWx1cmVz
L2V4cGVjdGVkL2Zvby5odG1sIFsgRmFpbHVyZSBdCisgICAgICAgIHRlc3RfcG9ydC5leHBlY3Rh
dGlvbnNfZGljdCA9IGxhbWJkYSBwYXJ0aWFsX2NoZWNrb3V0PUZhbHNlOiB7J2V4cGVjdGF0aW9u
cyc6ICIiIkJ1Zyh4KSBbIFdpbiBSZWxlYXNlIF0gZmFpbHVyZXMvZXhwZWN0ZWQvZm9vLmh0bWwg
WyBGYWlsdXJlIF0KIEJ1Zyh5KSBbIFdpbiBEZWJ1ZyBdIGZhaWx1cmVzL2V4cGVjdGVkL2Zvby5o
dG1sIFsgQ3Jhc2ggXQogIiIifQogICAgICAgICBleHBlY3RhdGlvbnMgPSBUZXN0RXhwZWN0YXRp
b25zKHRlc3RfcG9ydCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvYXBwbGUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2FwcGxlLnB5CmluZGV4IDA1NTQxOWExNGQxYTRkZGVmMTczYTNjN2IzODc5YTQ4NDlh
MWQwZTAuLjRiOTdmNDE5YjRlMDI0NzhmZWM1ZjliYWI2NWRlZDk4Y2M1OGY1Y2IgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYXBwbGUucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9hcHBsZS5weQpAQCAt
OTgsNiArOTgsMyBAQCBjbGFzcyBBcHBsZVBvcnQoUG9ydCk6CiAgICAgICAgICAgICAgICAgZm9y
IGFyY2hpdGVjdHVyZSBpbiBzZWxmLkFSQ0hJVEVDVFVSRVM6CiAgICAgICAgICAgICAgICAgICAg
IGNvbmZpZ3VyYXRpb25zLmFwcGVuZChUZXN0Q29uZmlndXJhdGlvbih2ZXJzaW9uPXNlbGYuX3N0
cmlwX3BvcnRfbmFtZV9wcmVmaXgocG9ydF9uYW1lKSwgYXJjaGl0ZWN0dXJlPWFyY2hpdGVjdHVy
ZSwgYnVpbGRfdHlwZT1idWlsZF90eXBlKSkKICAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb25z
Ci0KLSAgICBkZWYgZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYpOgotICAgICAgICByZXR1cm4gW3Nl
bGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aChkKSwgJ1Rlc3RF
eHBlY3RhdGlvbnMnKSBmb3IgZCBpbiBzZWxmLl9za2lwcGVkX2ZpbGVfc2VhcmNoX3BhdGhzKCld
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jh
c2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkK
aW5kZXggY2Q1NzAzMmU5NDJhNjFjMTQ3MWVhYjA5N2RhNDI1YTQ3MjI0ODJlNS4uNmZjNDRmMzUy
NDBjZjliMTcxZGZhYjJhN2NmOGJhNTk4OWUyYjA1MCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtOTk3LDcgKzk5Nyw3IEBAIGNs
YXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgIyBzb21lIHBvcnRzIGhhdmUgU2tpcHBlZCBmaWxl
cyB3aGljaCBhcmUgcmV0dXJuZWQgYXMgcGFydCBvZiB0ZXN0X2V4cGVjdGF0aW9ucygpLgogICAg
ICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoc2VsZi5wYXRoX3RvX3Rlc3RfZXhw
ZWN0YXRpb25zX2ZpbGUoKSkKIAotICAgIGRlZiBleHBlY3RhdGlvbnNfZGljdChzZWxmKToKKyAg
ICBkZWYgZXhwZWN0YXRpb25zX2RpY3Qoc2VsZiwgcGFydGlhbF9jaGVja291dD1GYWxzZSk6CiAg
ICAgICAgICIiIlJldHVybnMgYW4gT3JkZXJlZERpY3Qgb2YgbmFtZSAtPiBleHBlY3RhdGlvbnMg
c3RyaW5ncy4KICAgICAgICAgVGhlIG5hbWVzIGFyZSBleHBlY3RlZCB0byBiZSAoYnV0IG5vdCBy
ZXF1aXJlZCB0byBiZSkgcGF0aHMgaW4gdGhlIGZpbGVzeXN0ZW0uCiAgICAgICAgIElmIHRoZSBu
YW1lIGlzIGEgcGF0aCwgdGhlIGZpbGUgY2FuIGJlIGNvbnNpZGVyZWQgdXBkYXRhYmxlIGZvciB0
aGluZ3MgbGlrZSByZWJhc2VsaW5pbmcsCkBAIC0xMDA4LDcgKzEwMDgsNyBAQCBjbGFzcyBQb3J0
KG9iamVjdCk6CiAgICAgICAgICMgRklYTUU6IHJlbmFtZSB0aGlzIHRvIHRlc3RfZXhwZWN0YXRp
b25zKCkgb25jZSBhbGwgdGhlIGNhbGxlcnMgYXJlIHVwZGF0ZWQgdG8ga25vdyBhYm91dCB0aGUg
b3JkZXJlZCBkaWN0LgogICAgICAgICBleHBlY3RhdGlvbnMgPSBPcmRlcmVkRGljdCgpCiAKLSAg
ICAgICAgZm9yIHBhdGggaW4gc2VsZi5leHBlY3RhdGlvbnNfZmlsZXMoKToKKyAgICAgICAgZm9y
IHBhdGggaW4gc2VsZi5leHBlY3RhdGlvbnNfZmlsZXMocGFydGlhbF9jaGVja291dCk6CiAgICAg
ICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhwYXRoKToKICAgICAgICAgICAgICAg
ICBleHBlY3RhdGlvbnNbcGF0aF0gPSBzZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHBh
dGgpCiAKQEAgLTEwMjEsOSArMTAyMSw4IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAg
ICAgICAgICBfbG9nLndhcm5pbmcoImFkZGl0aW9uYWxfZXhwZWN0YXRpb25zIHBhdGggJyVzJyBk
b2VzIG5vdCBleGlzdCIgJSBwYXRoKQogICAgICAgICByZXR1cm4gZXhwZWN0YXRpb25zCiAKLSAg
ICBkZWYgZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYpOgotICAgICAgICAjIEZJWE1FOiBzZWUgY29t
bWVudCBpbiBwYXRoX3RvX2V4cGVjdGF0aW9uc19maWxlKCkuCi0gICAgICAgIHJldHVybiBbc2Vs
Zi5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKV0KKyAgICBkZWYgZXhwZWN0YXRpb25z
X2ZpbGVzKHNlbGYsIHBhcnRpYWxfY2hlY2tvdXQ9RmFsc2UpOgorICAgICAgICByZXR1cm4gW3Nl
bGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aChkKSwgJ1Rlc3RF
eHBlY3RhdGlvbnMnKSBmb3IgZCBpbiBzZWxmLl9za2lwcGVkX2ZpbGVfc2VhcmNoX3BhdGhzKCld
CiAKICAgICBkZWYgcmVwb3NpdG9yeV9wYXRocyhzZWxmKToKICAgICAgICAgIiIiUmV0dXJucyBh
IGxpc3Qgb2YgKHJlcG9zaXRvcnlfbmFtZSwgcmVwb3NpdG9yeV9wYXRoKSB0dXBsZXMgb2YgaXRz
IGRlcGVuZGluZyBjb2RlIGJhc2UuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKaW5kZXggZjZhNmViMDFmNjM5
OGMxZmY2YTg4MTRjM2Y2OTIyMDIwZDU1NGY0Zi4uYjJlMjFjYzJkNDRlYTViZGM5ODVmNjA1NTgw
MmRmZTZhNmJhNDdhOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQpAQCAtMjY2LDcgKzI2Niw3IEBAIGNs
YXNzIFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X25vbmV4aXN0
YW50X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBv
cnRfbmFtZT0nZm9vJykKLSAgICAgICAgcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMgPSBsYW1iZGE6
IFsnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZXhpc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMnLCAnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbm9uZXhpc3RhbnQv
VGVzdEV4cGVjdGF0aW9ucyddCisgICAgICAgIHBvcnQuZXhwZWN0YXRpb25zX2ZpbGVzID0gbGFt
YmRhIHBhcnRpYWxfY2hlY2tvdXQ9RmFsc2U6IFsnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZXhpc3RzL1Rlc3RFeHBlY3RhdGlvbnMnLCAnL21vY2stY2hlY2tvdXQvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbm9uZXhpc3RhbnQvVGVzdEV4cGVjdGF0aW9ucyddCiAgICAgICAgIHBv
cnQuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9leGlzdHMvVGVzdEV4cGVjdGF0aW9ucycsICcnKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFscygnXG4nLmpvaW4ocG9ydC5leHBlY3RhdGlvbnNfZGljdCgpLmtleXMoKSksICcv
bW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9leGlzdHMvVGVzdEV4cGVjdGF0aW9u
cycpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtLnB5CmluZGV4IDQ0Yzk4YTM4M2EyMGYzODUyNDliMzBlOGFkNWM0OWIwNjg5YWNi
MjQuLjQ1YzUzN2Y1NDY2MDE3Nzc3Mjc2M2NlM2JjZGJlNGMyOTRkYTRiNTkgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQpA
QCAtMzMyLDEyICszMzIsMTIgQEAgY2xhc3MgQ2hyb21pdW1Qb3J0KFBvcnQpOgogICAgICAgICAn
d2luX2xheW91dF9yZWwnLAogICAgIF0pCiAKLSAgICBkZWYgZXhwZWN0YXRpb25zX2ZpbGVzKHNl
bGYpOgorICAgIGRlZiBleHBlY3RhdGlvbnNfZmlsZXMoc2VsZiwgcGFydGlhbF9jaGVja291dD1G
YWxzZSk6CiAgICAgICAgIHBhdGhzID0gW3NlbGYucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19m
aWxlKCldCiAgICAgICAgIHNraWFfZXhwZWN0YXRpb25zX3BhdGggPSBzZWxmLnBhdGhfZnJvbV9j
aHJvbWl1bV9iYXNlKCdza2lhJywgJ3NraWFfdGVzdF9leHBlY3RhdGlvbnMudHh0JykKICAgICAg
ICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoc2tpYV9leHBlY3RhdGlvbnNfcGF0aCk6CiAg
ICAgICAgICAgICBwYXRocy5hcHBlbmQoc2tpYV9leHBlY3RhdGlvbnNfcGF0aCkKLSAgICAgICAg
ZWxzZToKKyAgICAgICAgZWxpZiBub3QgcGFydGlhbF9jaGVja291dDoKICAgICAgICAgICAgIF9s
b2cud2FybmluZygiVXNpbmcgdGhlIGNocm9taXVtIHBvcnQgd2l0aG91dCBoYXZpbmcgdGhlIGRv
d25zdHJlYW0gc2tpYV90ZXN0X2V4cGVjdGF0aW9ucy50eHQgZmlsZSBjaGVja2VkIG91dC4gRXhw
ZWN0YXRpb25zIHJlbGF0ZWQgdGhpbmdzIG1pZ2h0IGJlIHdvbmt5LiIpCiAKICAgICAgICAgYnVp
bGRlcl9uYW1lID0gc2VsZi5nZXRfb3B0aW9uKCdidWlsZGVyX25hbWUnLCAnRFVNTVlfQlVJTERF
Ul9OQU1FJykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fYW5kcm9pZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fYW5kcm9pZC5weQppbmRleCAzZGZlYWI3YTNiM2JiMWE1MjJi
ZjkzZjVjODViMzBkOGU0YzNkY2Q2Li41Zjc5MDYyMDVmOTg1Njg0NDUwMzI4ZjhhMTQ2ZjM0ZjJi
ZmQ1YmRjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Nocm9taXVtX2FuZHJvaWQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9hbmRyb2lkLnB5CkBAIC0yMTUsNyArMjE1LDcgQEAgY2xh
c3MgQ2hyb21pdW1BbmRyb2lkUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgZGVmIGV4cGVj
dGF0aW9uc19maWxlcyhzZWxmKToKKyAgICBkZWYgZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYsIHBh
cnRpYWxfY2hlY2tvdXQ9RmFsc2UpOgogICAgICAgICAjIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWFuZHJvaWQvVGVzdEV4cGVjdGF0aW9ucyBzaG91bGQgY29udGFpbiBvbmx5IHRoZSBy
dWxlcyB0bwogICAgICAgICAjIHNraXAgdGVzdHMgZm9yIHRoZSBmZWF0dXJlcyBub3Qgc3VwcG9y
dGVkIG9yIG5vdCB0ZXN0YWJsZSBvbiBBbmRyb2lkLgogICAgICAgICAjIE90aGVyIHJ1bGVzIHNo
b3VsZCBiZSBpbiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9l
ZmwucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2VmbC5weQpp
bmRleCAyNjkxNDZhZWRlZjIyZDlhNDliOTc2YTVlNDRiMjgwMTUzYTgwNWNkLi40MDMyZTNkYjE4
ZDkwMTNiYWVjODJhZGE0ZjQyNWNkYmNmNjA4NWZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2VmbC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2VmbC5weQpAQCAtMTAzLDcgKzEwMyw3IEBAIGNsYXNz
IEVmbFBvcnQoUG9ydCwgUHVsc2VBdWRpb1Nhbml0aXplcik6CiAgICAgICAgIHNlYXJjaF9wYXRo
cy5hcHBlbmQoc2VsZi5wb3J0X25hbWUpCiAgICAgICAgIHJldHVybiBzZWFyY2hfcGF0aHMKIAot
ICAgIGRlZiBleHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6CisgICAgZGVmIGV4cGVjdGF0aW9uc19m
aWxlcyhzZWxmLCBwYXJ0aWFsX2NoZWNrb3V0PUZhbHNlKToKICAgICAgICAgcmV0dXJuIGxpc3Qo
cmV2ZXJzZWQoW3NlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0
aChwKSwgJ1Rlc3RFeHBlY3RhdGlvbnMnKSBmb3IgcCBpbiBzZWxmLl9zZWFyY2hfcGF0aHMoKV0p
KQogCiAgICAgZGVmIHNob3dfcmVzdWx0c19odG1sX2ZpbGUoc2VsZiwgcmVzdWx0c19maWxlbmFt
ZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2d0ay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5
CmluZGV4IGYwMmQxNDgxOTJkYjQzNzc5ZDI1NWFlNzA1MmUwMjljOTMxOGVmNTEuLjNjYzBlYTU2
NmE0ODliMGJjYzU4MzBlNmExN2E4YzkzY2UyZmUxMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ3RrLnB5CkBAIC0zOCw5ICszOCw2IEBAIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQueHZmYmRyaXZlciBpbXBvcnQgWHZmYkRyaXZlcgog
Y2xhc3MgR3RrUG9ydChQb3J0LCBQdWxzZUF1ZGlvU2FuaXRpemVyKToKICAgICBwb3J0X25hbWUg
PSAiZ3RrIgogCi0gICAgZGVmIGV4cGVjdGF0aW9uc19maWxlcyhzZWxmKToKLSAgICAgICAgcmV0
dXJuIFtzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoZCks
ICdUZXN0RXhwZWN0YXRpb25zJykgZm9yIGQgaW4gc2VsZi5fc2tpcHBlZF9maWxlX3NlYXJjaF9w
YXRocygpXQotCiAgICAgZGVmIF9wb3J0X2ZsYWdfZm9yX3NjcmlwdHMoc2VsZik6CiAgICAgICAg
IHJldHVybiAiLS1ndGsiCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQppbmRleCA5ODUyNDFlZGU5ZTNkMzlh
MzliNGQ0NDkzNjE1NjJjMDI1ZDM3NTQzLi40ZGQ5ZGE1ZGNlMDFmN2IzYTJiZGFhODAyYzY1MDM0
ZDhjMzEwZWUyIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CkBAIC00MTUsNyArNDE1LDcgQEAgY2xhc3Mg
UG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2V4cGVjdGF0
aW9uc19vcmRlcmluZyhzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKLSAg
ICAgICAgZm9yIHBhdGggaW4gcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMoKToKKyAgICAgICAgZm9y
IHBhdGggaW4gcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMocGFydGlhbF9jaGVja291dD1GYWxzZSk6
CiAgICAgICAgICAgICBwb3J0Ll9maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShwYXRoLCAnJykK
ICAgICAgICAgb3JkZXJlZF9kaWN0ID0gcG9ydC5leHBlY3RhdGlvbnNfZGljdCgpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCks
IG9yZGVyZWRfZGljdC5rZXlzKClbMF0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9xdC5weQppbmRleCA4MjhhODBkNjQ5NmQ4ZDk5MjU2NmMyNzAxYTViNWM1
YTVkYjU0YmRkLi4wZjcyNGNhMjM3M2Y2MzAzMjA1Y2JmZmI4NzM5Nzg0MzI4ZTc0MmI2IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkKQEAgLTE0
OCw3ICsxNDgsNyBAQCBjbGFzcyBRdFBvcnQoUG9ydCk6CiAgICAgICAgICAgICBza2lwcGVkX3Bh
dGguYXBwZW5kKCd3azInKQogICAgICAgICByZXR1cm4gc2tpcHBlZF9wYXRoCiAKLSAgICBkZWYg
ZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYpOgorICAgIGRlZiBleHBlY3RhdGlvbnNfZmlsZXMoc2Vs
ZiwgcGFydGlhbF9jaGVja291dD1GYWxzZSk6CiAgICAgICAgICMgZXhwZWN0YXRpb25zX2ZpbGVz
KCkgdXNlcyB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGluIF9zZWFyY2hfcGF0aHMgcmV2ZXJzZWQu
CiAgICAgICAgICMgZS5nLiBxdCAtPiBxdC1saW51eCAtPiBxdC00LjgKICAgICAgICAgcmV0dXJu
IGxpc3QocmV2ZXJzZWQoW3NlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl93ZWJraXRfYmFzZWxp
bmVfcGF0aChwKSwgJ1Rlc3RFeHBlY3RhdGlvbnMnKSBmb3IgcCBpbiBzZWxmLl9zZWFyY2hfcGF0
aHMoKV0pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQppbmRl
eCA0YWZjYzE0NjY5YmE1NDAxZDcyOWQ3NTdiMjJjNTBiNjE5MjUxODViLi45ODg1NjgxNDVlNzk3
ZTcyMDI0YTI5ZTA3OTJmZjY2MDg2MzdjMTMxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
X2ludGVncmF0aW9udGVzdC5weQpAQCAtMjA1LDcgKzIwNSw3IEBAIGNsYXNzIExpbnRUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAgICAgICAgICAgZGVmIHRl
c3RfY29uZmlndXJhdGlvbihzZWxmKToKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQogCi0g
ICAgICAgICAgICBkZWYgZXhwZWN0YXRpb25zX2RpY3Qoc2VsZik6CisgICAgICAgICAgICBkZWYg
ZXhwZWN0YXRpb25zX2RpY3Qoc2VsZiwgcGFydGlhbF9jaGVja291dD1GYWxzZSk6CiAgICAgICAg
ICAgICAgICAgc2VsZi5ob3N0LnBvcnRzX3BhcnNlZC5hcHBlbmQoc2VsZi5uYW1lKQogICAgICAg
ICAgICAgICAgIHJldHVybiB7c2VsZi5wYXRoOiAnJ30KIApAQCAtMjYwLDcgKzI2MCw3IEBAIGNs
YXNzIExpbnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UZXN0aW5nTWl4aW4pOgogICAg
ICAgICBvcHRpb25zLCBwYXJzZWRfYXJncyA9IHBhcnNlX2FyZ3MoWyctLWxpbnQtdGVzdC1maWxl
cyddKQogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBwb3J0X29iaiA9IGhvc3Qu
cG9ydF9mYWN0b3J5LmdldChvcHRpb25zLnBsYXRmb3JtLCBvcHRpb25zPW9wdGlvbnMpCi0gICAg
ICAgIHBvcnRfb2JqLmV4cGVjdGF0aW9uc19kaWN0ID0gbGFtYmRhOiB7Jyc6ICctLSBzeW50YXgg
ZXJyb3InfQorICAgICAgICBwb3J0X29iai5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYSBwYXJ0
aWFsX2NoZWNrb3V0PUZhbHNlOiB7Jyc6ICctLSBzeW50YXggZXJyb3InfQogICAgICAgICByZXMs
IG91dCwgZXJyID0gcnVuX2FuZF9jYXB0dXJlKHBvcnRfb2JqLCBvcHRpb25zLCBwYXJzZWRfYXJn
cykKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgLTEpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9ucy5w
eQppbmRleCA0NjQwM2I3ZGI5ZTg2YmZlMWZhYTMwN2FlZTMxNjRjOGQ4YTFlMzE5Li44YWY2Yjc4
ZDljNWJjNmFlMGQ4M2UwMDg0OWE1ODk1YjFiMTljOWE0IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9leHBlY3RhdGlvbnMucHkK
QEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uc0NoZWNrZXIob2JqZWN0KToK
ICAgICAgICAgZm9yIHBvcnRfbmFtZSBpbiBob3N0LnBvcnRfZmFjdG9yeS5hbGxfcG9ydF9uYW1l
cygpOgogICAgICAgICAgICAgcG9ydHMgPSBbaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFt
ZSwgb3B0aW9ucz1vcHRpb25zX3drMSksIGhvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWUs
IG9wdGlvbnM9b3B0aW9uc193azIpXQogICAgICAgICAgICAgZm9yIHBvcnQgaW4gcG9ydHM6Ci0g
ICAgICAgICAgICAgICAgZm9yIHRlc3RfZXhwZWN0YXRpb25fZmlsZSBpbiBwb3J0LmV4cGVjdGF0
aW9uc19maWxlcygpOgorICAgICAgICAgICAgICAgIGZvciB0ZXN0X2V4cGVjdGF0aW9uX2ZpbGUg
aW4gcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMocGFydGlhbF9jaGVja291dD1UcnVlKToKICAgICAg
ICAgICAgICAgICAgICAgaWYgdGVzdF9leHBlY3RhdGlvbl9maWxlLnJlcGxhY2UocG9ydC5wYXRo
X2Zyb21fd2Via2l0X2Jhc2UoKSArIGhvc3QuZmlsZXN5c3RlbS5zZXAsICcnKSA9PSBleHBlY3Rh
dGlvbnNfcGF0aDoKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3J0CiAgICAgICAg
IHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5CmluZGV4IDIyZmIxNzA0YjQ3YTk3ZjA2
ZWVjYzFhMjUyYzIxZWQ1MmE4YTE4NjAuLjJmY2JlYTNmYmVmNzgyMGFhOWVhYjg1ZjEzOTMzNGYz
YWJmZDg3NGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5CkBAIC0zNDQsNyArMzQ0LDcgQEAgTU9D
SyBydW5fY29tbWFuZDogWydxbWFrZScsICctdiddLCBjd2Q9Tm9uZQogICAgICAgICBleHBlY3Rh
dGlvbnNfcGF0aCA9IHBvcnQuZXhwZWN0YXRpb25zX2ZpbGVzKClbMF0KICAgICAgICAgZXhwZWN0
YXRpb25zX2NvbnRlbnRzID0gJycKICAgICAgICAgcG9ydC5fZmlsZXN5c3RlbS53cml0ZV90ZXh0
X2ZpbGUoZXhwZWN0YXRpb25zX3BhdGgsIGV4cGVjdGF0aW9uc19jb250ZW50cykKLSAgICAgICAg
cG9ydC5leHBlY3RhdGlvbnNfZGljdCA9IGxhbWJkYTogeworICAgICAgICBwb3J0LmV4cGVjdGF0
aW9uc19kaWN0ID0gbGFtYmRhIHBhcnRpYWxfY2hlY2tvdXQ9RmFsc2U6IHsKICAgICAgICAgICAg
IGV4cGVjdGF0aW9uc19wYXRoOiBleHBlY3RhdGlvbnNfY29udGVudHMsCiAgICAgICAgICAgICAn
b3ZlcnJpZGVzJzogKCdCdWcoeCkgdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwgWyBGYWls
dXJlIFJlYmFzZWxpbmUgXVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnQnVnKHkpIHVz
ZXJzY3JpcHRzL3Rlc3QuaHRtbCBbIENyYXNoIF1cbicpfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165901</attachid>
            <date>2012-09-26 17:06:21 -0700</date>
            <delta_ts>2012-09-26 17:08:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97699-20120926170540.patch</filename>
            <type>text/plain</type>
            <size>6565</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzEyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmI1ZTIxNzU1NzM5NDQ1NGM2MzFjYTBhNzlkOGRjYTlk
NTg1NGFlMS4uMTAyNDg1ZjRkNzM5NGFkMzcxNTE2YjJmNjkwNzU2NzNlN2UzMmQzMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDEyLTA5LTI2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFRoZSBzdHlsZSBib3Qgc3BhbXMgYWJvdXQgc2tpYV90ZXN0X2V4cGVjdGF0aW9ucy50
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3Njk5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Zl
IHRoZSB3YXJuaW5nIGFib3V0IGEgbWlzc2luZyBza2lhX3Rlc3RfZXhwZWN0YXRpb25zLnR4dAor
ICAgICAgICBmaWxlIGZvciBub3cuIFRoZXJlIGFyZSBzb21lIHNpdHVhdGlvbnMgd2hlcmUgaXQg
d291bGQgYmUKKyAgICAgICAgaGVscGZ1bCB0byBnZXQgdGhpcyB3YXJuaW5nIGFzIGl0IG1pZ2h0
IGluZGljYXRlIHRoYXQgdGhlIHVzZXIKKyAgICAgICAgaXMgZ29pbmcgdG8gZ2V0IHJlc3VsdHMg
ZGlmZmVyZW50IHRoYW4gd2hhdCB0aGV5J3JlIGV4cGVjdGluZywKKyAgICAgICAgYnV0IGF0IHRo
ZSBtb21lbnQgaXQgbG9va3MgZGlmZmljdWx0IGlmIG5vdCBpbXBvc3NpYmxlIHRvIGdldAorICAg
ICAgICB0aG9zZSB3YXJuaW5ncyBhbmQgbm90IGFsc28gZ2V0IHdhcm5pbmdzIHRoYXQgd2UgZG9u
J3QgY2FyZQorICAgICAgICBhYm91dCwgc28gdGhlIG5vaXNlIGlzIG91dHdlaWdoaW5nIHRoZSB2
YWx1ZSBvZiB0aGUgc2lnbmFsLgorCisgICAgICAgIFRoaXMgYXQgbGVhc3Qgd2lsbCBzdG9wIHRo
ZSBmYWxzZSBuZWdhdGl2ZXMgd2UncmUgZ2V0dGluZyBvbiB0aGUKKyAgICAgICAgc3R5bGUgYm90
cy4gSWYgaXQgdHVybnMgb3V0IHBlb3BsZSBkbyBuZWVkIHRoZSB3YXJuaW5nIHdlIGNhbgorICAg
ICAgICBhZGQgaXQgYmFjayBpbiBpbiBzb21lIG90aGVyIG1vcmUgY29uZGl0aW9uYWwgd2F5Lgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5w
eToKKyAgICAgICAgKENocm9taXVtUG9ydC5leHBlY3RhdGlvbnNfZmlsZXMpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5Ogor
ICAgICAgICAoVGVzdFJlYmFzZWxpbmUudGVzdF9yZWJhc2VsaW5lX3VwZGF0ZXNfZXhwZWN0YXRp
b25zX2ZpbGVfbm9vcCk6CisgICAgICAgICh0ZXN0X3JlYmFzZWxpbmVfdXBkYXRlc19leHBlY3Rh
dGlvbnNfZmlsZSk6CisgICAgICAgICh0ZXN0X3JlYmFzZWxpbmVfZG9lc19ub3RfaW5jbHVkZV9v
dmVycmlkZXMpOgorICAgICAgICAodGVzdF9yZWJhc2VsaW5lX2V4cGVjdGF0aW9ucyk6CisgICAg
ICAgIChfYXNzZXJ0X2NvbW1hbmQpOgorCiAyMDEyLTA5LTI2ICBEYXZpZCBNaWNoYWVsIEJhcnIg
IDxkYXZpZGJhcnJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZ3JhZGUg
bXlzZWxmIGZyb20gY29udHJpYnV0b3IgdG8gY29tbWl0dGVyLgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggNDRjOThh
MzgzYTIwZjM4NTI0OWIzMGU4YWQ1YzQ5YjA2ODlhY2IyNC4uOWY4MDgwN2U3MDUwNTVjYmIxZTBm
NjhlYWU5MDA1MGNmODFlMzMwMCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CkBAIC0zMzUsMTAgKzMzNSwxMCBAQCBjbGFz
cyBDaHJvbWl1bVBvcnQoUG9ydCk6CiAgICAgZGVmIGV4cGVjdGF0aW9uc19maWxlcyhzZWxmKToK
ICAgICAgICAgcGF0aHMgPSBbc2VsZi5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKV0K
ICAgICAgICAgc2tpYV9leHBlY3RhdGlvbnNfcGF0aCA9IHNlbGYucGF0aF9mcm9tX2Nocm9taXVt
X2Jhc2UoJ3NraWEnLCAnc2tpYV90ZXN0X2V4cGVjdGF0aW9ucy50eHQnKQorICAgICAgICAjIEZJ
WE1FOiB3ZSBzaG91bGQgcHJvYmFibHkgd2FybiBpZiB0aGlzIGZpbGUgaXMgbWlzc2luZyBpbiBz
b21lIHNpdHVhdGlvbnMuCisgICAgICAgICMgU2VlIHRoZSBkaXNjdXNzaW9uIGluIHdlYmtpdC5v
cmcvYi85NzY5OS4KICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoc2tpYV9leHBl
Y3RhdGlvbnNfcGF0aCk6CiAgICAgICAgICAgICBwYXRocy5hcHBlbmQoc2tpYV9leHBlY3RhdGlv
bnNfcGF0aCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIF9sb2cud2FybmluZygiVXNpbmcg
dGhlIGNocm9taXVtIHBvcnQgd2l0aG91dCBoYXZpbmcgdGhlIGRvd25zdHJlYW0gc2tpYV90ZXN0
X2V4cGVjdGF0aW9ucy50eHQgZmlsZSBjaGVja2VkIG91dC4gRXhwZWN0YXRpb25zIHJlbGF0ZWQg
dGhpbmdzIG1pZ2h0IGJlIHdvbmt5LiIpCiAKICAgICAgICAgYnVpbGRlcl9uYW1lID0gc2VsZi5n
ZXRfb3B0aW9uKCdidWlsZGVyX25hbWUnLCAnRFVNTVlfQlVJTERFUl9OQU1FJykKICAgICAgICAg
aWYgYnVpbGRlcl9uYW1lID09ICdEVU1NWV9CVUlMREVSX05BTUUnIG9yICcoZGVwcyknIGluIGJ1
aWxkZXJfbmFtZSBvciBidWlsZGVyX25hbWUgaW4gc2VsZi50cnlfYnVpbGRlcl9uYW1lczoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5l
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFz
ZWxpbmVfdW5pdHRlc3QucHkKaW5kZXggMjJmYjE3MDRiNDdhOTdmMDZlZWNjMWEyNTJjMjFlZDUy
YThhMTg2MC4uNzhhZjc4ZjkxMWQ0NWMzMTM4YTczYzMzNWVjMWQ1Y2Y4OTEzMDkyYyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFz
ZWxpbmVfdW5pdHRlc3QucHkKQEAgLTYzLDggKzYzLDYgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmUo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBjb21tYW5kLmJpbmRfdG9fdG9vbCh0b29sKQog
CiAgICAgICAgIGxpb25fcG9ydCA9IHRvb2wucG9ydF9mYWN0b3J5LmdldF9mcm9tX2J1aWxkZXJf
bmFtZSgiV2Via2l0IE1hYzEwLjciKQotICAgICAgICAjIEZJWE1FOiB3b3JrIGFyb3VuZCB0aGUg
Y2hyb21pdW0gc2tpYSBleHBlY3RhdGlvbnMgZmlsZSB0byBhdm9pZCBnZXR0aW5nIGEgYnVuY2gg
b2YgY29uZnVzaW5nIHdhcm5pbmdzLgotICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4
dF9maWxlKGxpb25fcG9ydC5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgnc2tpYScsICdza2lhX3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCcpLCAnJykKICAgICAgICAgZm9yIHBhdGggaW4gbGlvbl9wb3J0
LmV4cGVjdGF0aW9uc19maWxlcygpOgogICAgICAgICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRl
X3RleHRfZmlsZShwYXRoLCAnJykKICAgICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRlX3RleHRf
ZmlsZShsaW9uX3BvcnQucGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCksICIiIkJ1ZyhC
KSBbIE1hYyBMaW51eCBYUCBEZWJ1ZyBdIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3Nh
Z2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbCBbIFBhc3MgXQpAQCAtOTEsNyArODksNiBA
QCBCdWcoQSkgWyBEZWJ1ZyBdIDogZmFzdC9jc3MvbGFyZ2UtbGlzdC1vZi1ydWxlcy1jcmFzaC5o
dG1sIFsgRmFpbHVyZSBdCiAgICAgICAgIGNvbW1hbmQuYmluZF90b190b29sKHRvb2wpCiAKICAg
ICAgICAgbGlvbl9wb3J0ID0gdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0X2Zyb21fYnVpbGRlcl9uYW1l
KCJXZWJraXQgTWFjMTAuNyIpCi0gICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2Zp
bGUobGlvbl9wb3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCdza2lhJywgJ3NraWFfdGVzdF9l
eHBlY3RhdGlvbnMudHh0JyksICcnKQogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4
dF9maWxlKGxpb25fcG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKSwgIkJ1Zyh4
KSBbIE1hYyBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdXG5idWcoeikgWyBMaW51eCBdIHVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdXG4iKQogICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9m
aWxlKG9zLnBhdGguam9pbihsaW9uX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCAidXNlcnNjcmlw
dHMvYW5vdGhlci10ZXN0Lmh0bWwiKSwgIkR1bW15IHRlc3QgY29udGVudHMiKQogCkBAIC0xMTAs
NyArMTA3LDYgQEAgUmV0cmlldmluZyBodHRwOi8vZXhhbXBsZS5jb20vZi9idWlsZGVycy9XZWJr
aXQgTWFjMTAuNy9yZXN1bHRzL2xheW91dC10ZXN0LXJlc3UKICAgICAgICAgY29tbWFuZC5iaW5k
X3RvX3Rvb2wodG9vbCkKIAogICAgICAgICBsaW9uX3BvcnQgPSB0b29sLnBvcnRfZmFjdG9yeS5n
ZXRfZnJvbV9idWlsZGVyX25hbWUoIldlYmtpdCBNYWMxMC43IikKLSAgICAgICAgdG9vbC5maWxl
c3lzdGVtLndyaXRlX3RleHRfZmlsZShsaW9uX3BvcnQucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2Uo
J3NraWEnLCAnc2tpYV90ZXN0X2V4cGVjdGF0aW9ucy50eHQnKSwgJycpCiAgICAgICAgIHRvb2wu
ZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhfdG9fdGVzdF9leHBlY3Rh
dGlvbnNfZmlsZSgpLCAiQnVnKHgpIFsgTWFjIF0gdXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbkJ1Zyh6KSBbIExpbnV4IF0gdXNlcnNjcmlwdHMvYW5v
dGhlci10ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF1cbiIpCiAgICAgICAgIHRvb2wuZmls
ZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUobGlvbl9wb3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNl
KCdza2lhJywgJ3NraWFfdGVzdF9leHBlY3RhdGlvbnMudHh0JyksICJCdWcoeSkgWyBNYWMgXSBv
dGhlci10ZXN0Lmh0bWwgWyBGYWlsdXJlIF1cbiIpCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53
cml0ZV90ZXh0X2ZpbGUob3MucGF0aC5qb2luKGxpb25fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCks
ICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIpLCAiRHVtbXkgdGVzdCBjb250ZW50cyIp
CkBAIC0yMjgsOSArMjI0LDcgQEAgTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ29wdGltaXpl
LWJhc2VsaW5lcycsICctLXN1ZmZpeGVzJywgJ3R4dCcsICd1c2VyLXNjcmkKICAgICAgICAgdG9v
bCA9IE1vY2tUb29sKCkKICAgICAgICAgY29tbWFuZC5iaW5kX3RvX3Rvb2wodG9vbCkKIAotICAg
ICAgICAjIEZJWE1FOiB3b3JrIGFyb3VuZCB0aGUgY2hyb21pdW0gc2tpYSBleHBlY3RhdGlvbnMg
ZmlsZSB0byBhdm9pZCBnZXR0aW5nIGEgYnVuY2ggb2YgY29uZnVzaW5nIHdhcm5pbmdzLgogICAg
ICAgICBsaW9uX3BvcnQgPSB0b29sLnBvcnRfZmFjdG9yeS5nZXRfZnJvbV9idWlsZGVyX25hbWUo
IldlYmtpdCBNYWMxMC43IikKLSAgICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRlX3RleHRfZmls
ZShsaW9uX3BvcnQucGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3NraWEnLCAnc2tpYV90ZXN0X2V4
cGVjdGF0aW9ucy50eHQnKSwgJycpCiAgICAgICAgIGZvciBwb3J0X25hbWUgaW4gdG9vbC5wb3J0
X2ZhY3RvcnkuYWxsX3BvcnRfbmFtZXMoKToKICAgICAgICAgICAgIHBvcnQgPSB0b29sLnBvcnRf
ZmFjdG9yeS5nZXQocG9ydF9uYW1lKQogICAgICAgICAgICAgZm9yIHBhdGggaW4gcG9ydC5leHBl
Y3RhdGlvbnNfZmlsZXMoKToKQEAgLTMyMSw3ICszMTUsNiBAQCBNT0NLIHJ1bl9jb21tYW5kOiBb
J3FtYWtlJywgJy12J10sIGN3ZD1Ob25lCiAgICAgICAgIGNvbW1hbmQuYmluZF90b190b29sKHRv
b2wpCiAKICAgICAgICAgcG9ydCA9IHRvb2wucG9ydF9mYWN0b3J5LmdldCgnY2hyb21pdW0tbWFj
LWxpb24nKQotICAgICAgICB0b29sLmZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHBvcnQucGF0
aF9mcm9tX2Nocm9taXVtX2Jhc2UoJ3NraWEnLCAnc2tpYV90ZXN0X2V4cGVjdGF0aW9ucy50eHQn
KSwgJycpCiAKICAgICAgICAgZm9yIHBvcnRfbmFtZSBpbiB0b29sLnBvcnRfZmFjdG9yeS5hbGxf
cG9ydF9uYW1lcygpOgogICAgICAgICAgICAgcG9ydCA9IHRvb2wucG9ydF9mYWN0b3J5LmdldChw
b3J0X25hbWUpCg==
</data>
<flag name="review"
          id="178065"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>