<?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>152913</bug_id>
          
          <creation_ts>2016-01-08 11:44:32 -0800</creation_ts>
          <short_desc>Refactor compareIterations to remove duplicate code.</short_desc>
          <delta_ts>2016-01-20 16:21:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=152345</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>152910</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jason Marcell">jmarcell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>dbates</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>dino</cc>
    
    <cc>jmarcell</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1153921</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-08 11:44:32 -0800</bug_when>
    <thetext>Refactor compareIterations to remove duplicate code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153923</commentid>
    <comment_count>1</comment_count>
      <attachid>268564</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-08 11:48:54 -0800</bug_when>
    <thetext>Created attachment 268564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154565</commentid>
    <comment_count>2</comment_count>
      <attachid>268733</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-11 17:17:10 -0800</bug_when>
    <thetext>Created attachment 268733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155496</commentid>
    <comment_count>3</comment_count>
      <attachid>268981</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-14 11:26:18 -0800</bug_when>
    <thetext>Created attachment 268981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155501</commentid>
    <comment_count>4</comment_count>
      <attachid>268981</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-14 11:34:35 -0800</bug_when>
    <thetext>Comment on attachment 268981
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:69
&gt; +    ok(queue.compareIterations(iteration2, iteration2) === 0, &quot;equal&quot;); // if statement actually falls through

Additional explanation:

My intention for the three groups of &quot;compareIterations&quot; tests was to give full code coverage by forcing the execution path through the three different return statements.

    compareIterations: function(a, b)
    {
        result = this.compareIterationsByRevisions(a, b);
        if (result)
1.          return result;

        // A loaded iteration may not have revision numbers if it failed early, before svn steps finished.
        result = b.loaded - a.loaded;
        if (result)
2.          return result;

3.      return b.id - a.id;
    },

For this particular test we call this.compareIterationsByRevisions and it returns 0, which is falsy, and so we don&apos;t actually return via the first return statement -- it falls through.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156808</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2016-01-19 17:16:47 -0800</bug_when>
    <thetext>LGTM! rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156813</commentid>
    <comment_count>6</comment_count>
      <attachid>268981</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-01-19 17:46:41 -0800</bug_when>
    <thetext>Comment on attachment 268981
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:48
&gt; +        queue = new MockBuildbotQueue();

This is error prone. Specifically, it is error prone to pass module state using global variables. From looking at the examples for setup()/tearDown() on &lt;http://qunitjs.com/upgrade-guide-2.x/&gt; and beforeEach()/afterEach() on &lt;http://api.qunitjs.com/QUnit.module/&gt; the preferred way to share such state is by modifying |this|.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156943</commentid>
    <comment_count>7</comment_count>
      <attachid>268981</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-01-20 08:33:28 -0800</bug_when>
    <thetext>Comment on attachment 268981
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:65
&gt; +    iteration1.revision = { &quot;openSource&quot;: 42 };

I suggest that we instantiate local BuildbotIterations in each test function, including this one, instead of modifying the &quot;global&quot; iteration instances. Shared objects between tests should be immutable and/or conveyed to be immutable. The benefit of using this approach and only sharing immutable data between tests is that it makes it straightforward to verify correctness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156977</commentid>
    <comment_count>8</comment_count>
      <attachid>269364</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 11:12:27 -0800</bug_when>
    <thetext>Created attachment 269364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156979</commentid>
    <comment_count>9</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 11:14:00 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 268981 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=268981&amp;action=review
&gt; 
&gt; &gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:48
&gt; &gt; +        queue = new MockBuildbotQueue();
&gt; 
&gt; This is error prone. Specifically, it is error prone to pass module state
&gt; using global variables. From looking at the examples for setup()/tearDown()
&gt; on &lt;http://qunitjs.com/upgrade-guide-2.x/&gt; and beforeEach()/afterEach() on
&gt; &lt;http://api.qunitjs.com/QUnit.module/&gt; the preferred way to share such state
&gt; is by modifying |this|.

I addressed in the latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156980</commentid>
    <comment_count>10</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 11:14:16 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 268981 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=268981&amp;action=review
&gt; 
&gt; &gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:65
&gt; &gt; +    iteration1.revision = { &quot;openSource&quot;: 42 };
&gt; 
&gt; I suggest that we instantiate local BuildbotIterations in each test
&gt; function, including this one, instead of modifying the &quot;global&quot; iteration
&gt; instances. Shared objects between tests should be immutable and/or conveyed
&gt; to be immutable. The benefit of using this approach and only sharing
&gt; immutable data between tests is that it makes it straightforward to verify
&gt; correctness.

I addressed in the latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157001</commentid>
    <comment_count>11</comment_count>
      <attachid>269369</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 11:41:53 -0800</bug_when>
    <thetext>Created attachment 269369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157002</commentid>
    <comment_count>12</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 11:42:38 -0800</bug_when>
    <thetext>I had to add .bind(this) to the call to compareIterations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157044</commentid>
    <comment_count>13</comment_count>
      <attachid>269369</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-01-20 14:13:32 -0800</bug_when>
    <thetext>Comment on attachment 269369
Patch

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

Thank you Jason for iterating on the patch. I have some minor suggestions.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:61
&gt; +    var id1 = 42;
&gt; +    var id2 = 43;

For your consideration, I suggest using values 1 and 2 for the identifiers for iteration1 and iteration2, respectively, and inline these values into the BuildbotIteration constructor call:

var iteration1 = new BuildbotIteration(this.queue, 1, finished);
var iteration2 = new BuildbotIteration(this.queue, 2, finished);

Then remove the local variables id1 and id2. It will be clear (or clear enough to allow a person to infer) that 1, 2 are the identifiers associated with the respective iteration objects because the ids are mirrored in the names of the variables.

Notice that you define id1 and id2 in other test functions. I suggest making similar changes throughout this patch.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:66
&gt; +    iteration1.revision = { &quot;openSource&quot;: 42 };
&gt; +    iteration2.revision = { &quot;openSource&quot;: 43 };

For your consideration, you may want to consider picking revision numbers that do not coincide with the ids so as to avoid giving a person the impression that the id of a BuildbotIteration is identical its revision.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:69
&gt; +    ok(this.queue.compareIterations(iteration2, iteration2) === 0, &quot;compareIterations: equal&quot;); // if statement actually falls through

On first reading the inline comment I thought it was referring to the code in this function instead of the code in BuildbotQueue.prototype.compareIterations(). Regardless, I do not find this comment meaningful. If you feel that having a comment to describe that the iteration comparison will &quot;fall through&quot; to comparing iterations by their property id then I suggest explicitly referring to this aspect, say by writing a comment &quot;compares iterations by id&quot;.

On another note, we could use strictEqual() to write this line (you do not need to make this change in this patch). See &lt;http://api.qunitjs.com/strictEqual/&gt; for more details.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:72
&gt; +test(&quot;compareIterations by loaded&quot;, function()

For your consideration, I suggest either adding another test that is identical to this one and explicitly defines revisions for the iterations or modify this test to explicitly define revisions for the iterations. I suggest having at least one test explicitly define revisions so as to be more representative of a real-world iteration object.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:85
&gt; +test(&quot;compareIterations by id&quot;, function()

Similar to my suggestion for test &quot;compareIterations by loaded&quot;, I suggest either modifying this test or adding another test that explicitly defines both revisions and loaded for the iterations that are being compared to better reflect real-world iteration objects. This also minimizes the assumptions on the default initialization of the iterations objects (though this is also valuable to test).

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:94
&gt; +    ok(this.queue.compareIterations(iteration2, iteration2) === 0, &quot;compareIterations: equal&quot;);

Nit: This is OK as-is. We could write this using strictEqual().

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:97
&gt; +test(&quot;compareIterationsByRevisions&quot;, function()

For your consideration, I suggest that we explicitly define the loaded property for iterations1 and iteration2 to be true and false, respectively, to ensure that compareIterationsByRevisions() does not care about the loaded state of the iterations.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:108
&gt; +    ok(this.queue.compareIterationsByRevisions(iteration2, iteration2) === 0, &quot;compareIterationsByRevisions: equal&quot;);

Nit: This is OK as-is. We could write this using strictEqual().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157065</commentid>
    <comment_count>14</comment_count>
      <attachid>269391</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 14:58:13 -0800</bug_when>
    <thetext>Created attachment 269391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157067</commentid>
    <comment_count>15</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 14:59:14 -0800</bug_when>
    <thetext>Thanks, Dan. I think I addressed everything you mentioned in your last review in my latest patch. Mind having another look before I land this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157068</commentid>
    <comment_count>16</comment_count>
      <attachid>269391</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 15:00:29 -0800</bug_when>
    <thetext>Comment on attachment 269391
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:273
&gt; +            console.log(&quot;   compareIterations by revisions&quot;);

Oops. I will remove this before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157080</commentid>
    <comment_count>17</comment_count>
      <attachid>269395</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 15:20:02 -0800</bug_when>
    <thetext>Created attachment 269395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157093</commentid>
    <comment_count>18</comment_count>
      <attachid>269395</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-01-20 16:04:46 -0800</bug_when>
    <thetext>Comment on attachment 269395
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:77
&gt; +    iteration1.revision = {};

This is OK as-is. I meant to suggest explicitly specifying a repository revision.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/tests.js:91
&gt; +    iteration1.revision = {};
&gt; +    iteration2.revision = {};

This is OK as-is. I meant to suggest explicitly specifying repository revisions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157100</commentid>
    <comment_count>19</comment_count>
      <attachid>269398</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 16:15:23 -0800</bug_when>
    <thetext>Created attachment 269398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157104</commentid>
    <comment_count>20</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2016-01-20 16:21:41 -0800</bug_when>
    <thetext>Landed: https://trac.webkit.org/changeset/195391</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268564</attachid>
            <date>2016-01-08 11:48:54 -0800</date>
            <delta_ts>2016-01-11 17:17:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152913-20160108114822.patch</filename>
            <type>text/plain</type>
            <size>4798</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0Nzc0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWViNDBiMTM1YjFiNTk2OGNkNDczZTVmMTM2ZmRmYWJl
MTQ5Yzc3NC4uN2Y1NTNmNWJhMGNiYWMxNmMyMTRlMmE5ZjIxNTNiZTAzODhjNTNiMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3
IEBACiAyMDE2LTAxLTA4ICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgogCisg
ICAgICAgIFJlZmFjdG9yIGNvbXBhcmVJdGVyYXRpb25zIHRvIHJlbW92ZSBkdXBsaWNhdGUgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjkx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJv
dG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTogUmVmYWN0b3JlZCB0byByZW1vdmUgZHVwbGljYXRl
IGNvZGUuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanM6IEFkZGVkIHRl
c3RzIGluIG9yZGVyIHRvIGVuc3VyZQorICAgICAgICB0aGUgc2FtZSBiZWhhdmlvciBiZWZvcmUg
YW5kIGFmdGVyIHJlZmFjdG9yLgorCisyMDE2LTAxLTA4ICBKYXNvbiBNYXJjZWxsICA8am1hcmNl
bGxAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBRVW5pdCBmb3IgdW5pdCB0ZXN0aW5nIGFuZCBh
ZGQgYSB1bml0IHRlc3QgdG8gdGVzdCBCdWlsZGJvdFF1ZXVlVmlldy5fYXBwZW5kUGVuZGluZ1Jl
dmlzaW9uQ291bnQuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTI5MTAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RR
dWV1ZS5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKaW5kZXggZTRh
OTk1MTFmODk5MmI3NDhlZTg4MGYzMDA1NzM2ZDg2ZDJhZGRhOC4uMWQ4ZDE2ZDRhOTI2NzEwZWIy
MTMwMGY4MTg4YTM3ZTc2YTRiNGJiNyAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
QnVpbGRib3RRdWV1ZS5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVl
LmpzCkBAIC0yNjgsMTMgKzI2OCw5IEBAIEJ1aWxkYm90UXVldWUucHJvdG90eXBlID0gewogCiAg
ICAgY29tcGFyZUl0ZXJhdGlvbnM6IGZ1bmN0aW9uKGEsIGIpCiAgICAgewotICAgICAgICB2YXIg
c29ydGVkUmVwb3NpdG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmllczsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZSA9IHNvcnRlZFJlcG9zaXRvcmllc1tpXS5u
YW1lOwotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGIucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVd
IC0gYS5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV07Ci0gICAgICAgICAgICBpZiAocmVzdWx0KQot
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KKyAgICAgICAgcmVzdWx0
ID0gdGhpcy5jb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKGEsIGIpOworICAgICAgICBpZiAo
cmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgICAgICAvLyBBIGxvYWRl
ZCBpdGVyYXRpb24gbWF5IG5vdCBoYXZlIHJldmlzaW9uIG51bWJlcnMgaWYgaXQgZmFpbGVkIGVh
cmx5LCBiZWZvcmUgc3ZuIHN0ZXBzIGZpbmlzaGVkLgogICAgICAgICByZXN1bHQgPSBiLmxvYWRl
ZCAtIGEubG9hZGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVz
dHMuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcwppbmRleCBkYTIwNjlj
NmM2YTc2NzYxZWU1OWU5NjMxY2Q2MGE0YmRmMDU3ZTZlLi5mNzgyMTljMmIyZTc1MDU2NDg4NWNj
NjQ3ODQxYTBhY2VmMDU0NGFkIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy90ZXN0
cy90ZXN0cy5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcwpAQCAt
MjEsMyArMjEsMzUgQEAgUVVuaXQudGVzdCgiQnVpbGRCb3RRdWV1ZSBUZXN0IiwgZnVuY3Rpb24o
IGFzc2VydCApCiAgICAgdmFyIHJldmlzaW9uc0JlaGluZCA9IHZpZXcuZWxlbWVudC5nZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lKCJtZXNzYWdlIilbMF0uaW5uZXJIVE1MLm1hdGNoKC8uKihcZCspIHJl
dmlzaW9uKHxzKSBiZWhpbmQvKVsxXTsKICAgICBhc3NlcnQuZXF1YWwocmV2aXNpb25zQmVoaW5k
LCAxLCAiYXNzZXJ0IHJldmlzaW9ucyBiZWhpbmQiKTsKIH0pOworCitRVW5pdC50ZXN0KCJCdWls
ZEJvdEl0ZXJhdGlvbiBjb21wYXJlSXRlcmF0aW9ucyBUZXN0IiwgZnVuY3Rpb24oIGFzc2VydCAp
Cit7CisgICAgdmFyIHF1ZXVlID0gbmV3IE1vY2tCdWlsZGJvdFF1ZXVlKCk7CisgICAgcXVldWUu
YnJhbmNoZXMgPSBbeworICAgICAgICBuYW1lOiAidHJ1bmsiLAorICAgICAgICByZXBvc2l0b3J5
OiB7CisgICAgICAgICAgICBuYW1lOiAib3BlblNvdXJjZSIsCisgICAgICAgIH0KKyAgICB9XQor
ICAgIGFzc2VydC5vayhxdWV1ZSwgInF1ZXVlIGlzIG5vdCBudWxsIik7CisKKyAgICB2YXIgaXRl
cmF0aW9uMSA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbihxdWV1ZSwgNDIsIGZhbHNlKTsKKyAgICB2
YXIgaXRlcmF0aW9uMiA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbihxdWV1ZSwgNDMsIGZhbHNlKTsK
KyAgICBhc3NlcnQub2socXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMiwgaXRlcmF0
aW9uMSkgPCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGxlc3MgdGhhbiIpOworICAgIGFzc2VydC5v
ayhxdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+IDAsICJj
b21wYXJlSXRlcmF0aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgYXNzZXJ0Lm9rKHF1ZXVlLmNv
bXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjIpID09PSAwLCAiY29tcGFyZUl0
ZXJhdGlvbnM6IGVxdWFsIik7CisKKyAgICBpdGVyYXRpb24xLmxvYWRlZCA9IGZhbHNlOyBpdGVy
YXRpb24yLmxvYWRlZCA9IHRydWU7CisgICAgYXNzZXJ0Lm9rKHF1ZXVlLmNvbXBhcmVJdGVyYXRp
b25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4gMCwgImNvbXBhcmVJdGVyYXRpb25zOiBncmVh
dGVyIHRoYW4iKTsKKyAgICBhc3NlcnQub2socXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0
aW9uMiwgaXRlcmF0aW9uMSkgPCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGxlc3MgdGhhbiIpOwor
CisgICAgaXRlcmF0aW9uMS5yZXZpc2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiA0MiB9OworICAgIGl0
ZXJhdGlvbjIucmV2aXNpb24gPSB7ICJvcGVuU291cmNlIjogNDMgfTsKKyAgICBhc3NlcnQub2so
cXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9uMSkgPCAwLCAiY29t
cGFyZUl0ZXJhdGlvbnM6IGxlc3MgdGhhbiIpOworICAgIGFzc2VydC5vayhxdWV1ZS5jb21wYXJl
SXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+IDAsICJjb21wYXJlSXRlcmF0aW9u
czogZ3JlYXRlciB0aGFuIik7CisgICAgYXNzZXJ0Lm9rKHF1ZXVlLmNvbXBhcmVJdGVyYXRpb25z
KGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjIpID09PSAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGVxdWFs
Iik7CisKKyAgICBhc3NlcnQub2socXVldWUuY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyhp
dGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAsICJjb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25z
OiBsZXNzIHRoYW4iKTsKKyAgICBhc3NlcnQub2socXVldWUuY29tcGFyZUl0ZXJhdGlvbnNCeVJl
dmlzaW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+IDAsICJjb21wYXJlSXRlcmF0aW9uc0J5
UmV2aXNpb25zOiBncmVhdGVyIHRoYW4iKTsKKyAgICBhc3NlcnQub2socXVldWUuY29tcGFyZUl0
ZXJhdGlvbnNCeVJldmlzaW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24yKSA9PT0gMCwgImNvbXBh
cmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGVxdWFsIik7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268733</attachid>
            <date>2016-01-11 17:17:10 -0800</date>
            <delta_ts>2016-01-14 11:26:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152913-20160111171639.patch</filename>
            <type>text/plain</type>
            <size>4755</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0ODc0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjFlNGMwMWJiZjYxNmQ5MTcxNjA1OGZmZGMzNTU4NWY3
NmY0OGVlMy4uZjhhNTlmZjAyNjZjN2Y0NjI1NmFmMzJhZWYzN2Q2OTQzMTczMmFjZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3
IEBACiAyMDE2LTAxLTA4ICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgogCisg
ICAgICAgIFJlZmFjdG9yIGNvbXBhcmVJdGVyYXRpb25zIHRvIHJlbW92ZSBkdXBsaWNhdGUgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjkx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJv
dG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTogUmVmYWN0b3JlZCB0byByZW1vdmUgZHVwbGljYXRl
IGNvZGUuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanM6IEFkZGVkIHRl
c3RzIGluIG9yZGVyIHRvIGVuc3VyZQorICAgICAgICB0aGUgc2FtZSBiZWhhdmlvciBiZWZvcmUg
YW5kIGFmdGVyIHJlZmFjdG9yLgorCisyMDE2LTAxLTA4ICBKYXNvbiBNYXJjZWxsICA8am1hcmNl
bGxAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBRVW5pdCBmb3IgdW5pdCB0ZXN0aW5nIGFuZCBh
ZGQgYSB1bml0IHRlc3QgdG8gdGVzdCBCdWlsZGJvdFF1ZXVlVmlldy5fYXBwZW5kUGVuZGluZ1Jl
dmlzaW9uQ291bnQuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTI5MTAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RR
dWV1ZS5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKaW5kZXggZTRh
OTk1MTFmODk5MmI3NDhlZTg4MGYzMDA1NzM2ZDg2ZDJhZGRhOC4uMWQ4ZDE2ZDRhOTI2NzEwZWIy
MTMwMGY4MTg4YTM3ZTc2YTRiNGJiNyAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
QnVpbGRib3RRdWV1ZS5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVl
LmpzCkBAIC0yNjgsMTMgKzI2OCw5IEBAIEJ1aWxkYm90UXVldWUucHJvdG90eXBlID0gewogCiAg
ICAgY29tcGFyZUl0ZXJhdGlvbnM6IGZ1bmN0aW9uKGEsIGIpCiAgICAgewotICAgICAgICB2YXIg
c29ydGVkUmVwb3NpdG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmllczsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZSA9IHNvcnRlZFJlcG9zaXRvcmllc1tpXS5u
YW1lOwotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGIucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVd
IC0gYS5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV07Ci0gICAgICAgICAgICBpZiAocmVzdWx0KQot
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KKyAgICAgICAgcmVzdWx0
ID0gdGhpcy5jb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKGEsIGIpOworICAgICAgICBpZiAo
cmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgICAgICAvLyBBIGxvYWRl
ZCBpdGVyYXRpb24gbWF5IG5vdCBoYXZlIHJldmlzaW9uIG51bWJlcnMgaWYgaXQgZmFpbGVkIGVh
cmx5LCBiZWZvcmUgc3ZuIHN0ZXBzIGZpbmlzaGVkLgogICAgICAgICByZXN1bHQgPSBiLmxvYWRl
ZCAtIGEubG9hZGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVz
dHMuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcwppbmRleCBkNWY3N2Fm
NTdlYTcxNjE0MjA2ZGM3ODRhMGY4NDMzNjRhYjQ5ZjQ2Li45NzNlZGVmZjE1M2RkMDNkNzU3ZDk0
YTRlYmFkYTEwMTQzMmMwYjgxIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy90ZXN0
cy90ZXN0cy5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcwpAQCAt
MTUsMyArMTUsMzUgQEAgUVVuaXQudGVzdCgiQnVpbGRCb3RRdWV1ZSBUZXN0IiwgZnVuY3Rpb24o
YXNzZXJ0KQogICAgIHZhciByZXZpc2lvbnNCZWhpbmQgPSB2aWV3LmVsZW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSgibWVzc2FnZSIpWzBdLmlubmVySFRNTC5tYXRjaCgvLiooXGQrKSByZXZp
c2lvbih8cykgYmVoaW5kLylbMV07CiAgICAgYXNzZXJ0LmVxdWFsKHJldmlzaW9uc0JlaGluZCwg
MSwgImFzc2VydCByZXZpc2lvbnMgYmVoaW5kIik7CiB9KTsKKworUVVuaXQudGVzdCgiQnVpbGRC
b3RJdGVyYXRpb24gY29tcGFyZUl0ZXJhdGlvbnMgVGVzdCIsIGZ1bmN0aW9uKGFzc2VydCkKK3sK
KyAgICB2YXIgcXVldWUgPSBuZXcgTW9ja0J1aWxkYm90UXVldWUoKTsKKyAgICBxdWV1ZS5icmFu
Y2hlcyA9IFt7CisgICAgICAgIG5hbWU6ICJ0cnVuayIsCisgICAgICAgIHJlcG9zaXRvcnk6IHsK
KyAgICAgICAgICAgIG5hbWU6ICJvcGVuU291cmNlIiwKKyAgICAgICAgfQorICAgIH1dCisKKyAg
ICB2YXIgaXRlcmF0aW9uMSA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbihxdWV1ZSwgNDIsIGZhbHNl
KTsKKyAgICB2YXIgaXRlcmF0aW9uMiA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbihxdWV1ZSwgNDMs
IGZhbHNlKTsKKyAgICBhc3NlcnQub2socXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9u
MiwgaXRlcmF0aW9uMSkgPCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGxlc3MgdGhhbiIpOworICAg
IGFzc2VydC5vayhxdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24y
KSA+IDAsICJjb21wYXJlSXRlcmF0aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgYXNzZXJ0Lm9r
KHF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjIpID09PSAwLCAi
Y29tcGFyZUl0ZXJhdGlvbnM6IGVxdWFsIik7CisKKyAgICBpdGVyYXRpb24xLmxvYWRlZCA9IGZh
bHNlOworICAgIGl0ZXJhdGlvbjIubG9hZGVkID0gdHJ1ZTsKKyAgICBhc3NlcnQub2socXVldWUu
Y29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMSwgaXRlcmF0aW9uMikgPiAwLCAiY29tcGFyZUl0
ZXJhdGlvbnM6IGdyZWF0ZXIgdGhhbiIpOworICAgIGFzc2VydC5vayhxdWV1ZS5jb21wYXJlSXRl
cmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAsICJjb21wYXJlSXRlcmF0aW9uczog
bGVzcyB0aGFuIik7CisKKyAgICBpdGVyYXRpb24xLnJldmlzaW9uID0geyAib3BlblNvdXJjZSI6
IDQyIH07CisgICAgaXRlcmF0aW9uMi5yZXZpc2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiA0MyB9Owor
ICAgIGFzc2VydC5vayhxdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRp
b24xKSA8IDAsICJjb21wYXJlSXRlcmF0aW9uczogbGVzcyB0aGFuIik7CisgICAgYXNzZXJ0Lm9r
KHF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4gMCwgImNv
bXBhcmVJdGVyYXRpb25zOiBncmVhdGVyIHRoYW4iKTsKKyAgICBhc3NlcnQub2socXVldWUuY29t
cGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9uMikgPT09IDAsICJjb21wYXJlSXRl
cmF0aW9uczogZXF1YWwiKTsKKworICAgIGFzc2VydC5vayhxdWV1ZS5jb21wYXJlSXRlcmF0aW9u
c0J5UmV2aXNpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwgMCwgImNvbXBhcmVJdGVyYXRp
b25zQnlSZXZpc2lvbnM6IGxlc3MgdGhhbiIpOworICAgIGFzc2VydC5vayhxdWV1ZS5jb21wYXJl
SXRlcmF0aW9uc0J5UmV2aXNpb25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4gMCwgImNvbXBh
cmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGdyZWF0ZXIgdGhhbiIpOworICAgIGFzc2VydC5vayhx
dWV1ZS5jb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjIp
ID09PSAwLCAiY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9uczogZXF1YWwiKTsKK30pOwpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268981</attachid>
            <date>2016-01-14 11:26:18 -0800</date>
            <delta_ts>2016-01-20 11:12:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152913-20160114112548.patch</filename>
            <type>text/plain</type>
            <size>4850</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1MDY0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzExNjFhODllNTRkZDM5OTg1ZDBhMDBmNGVlMjE3OGVl
MmJkOTA1ZS4uZGM1YzEyYTEzODc4ODgzZDQzOGRmYjYyZmE5MjY5MDI2NDllMDliMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3
IEBACiAyMDE2LTAxLTE0ICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgogCisg
ICAgICAgIFJlZmFjdG9yIGNvbXBhcmVJdGVyYXRpb25zIHRvIHJlbW92ZSBkdXBsaWNhdGUgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjkx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJv
dG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTogUmVmYWN0b3JlZCB0byByZW1vdmUgZHVwbGljYXRl
IGNvZGUuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanM6IEFkZGVkIHRl
c3RzIGluIG9yZGVyIHRvIGVuc3VyZQorICAgICAgICB0aGUgc2FtZSBiZWhhdmlvciBiZWZvcmUg
YW5kIGFmdGVyIHJlZmFjdG9yLgorCisyMDE2LTAxLTE0ICBKYXNvbiBNYXJjZWxsICA8am1hcmNl
bGxAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBhIHVuaXQgdGVzdCB0byB0ZXN0IEJ1aWxkYm90
UXVldWVWaWV3Ll9hcHBlbmRQZW5kaW5nUmV2aXNpb25Db3VudC4KICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjkxMAogCmRpZmYgLS1naXQgYS9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9k
YXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
QnVpbGRib3RRdWV1ZS5qcwppbmRleCBlNGE5OTUxMWY4OTkyYjc0OGVlODgwZjMwMDU3MzZkODZk
MmFkZGE4Li4xZDhkMTZkNGE5MjY3MTBlYjIxMzAwZjgxODhhMzdlNzZhNGI0YmI3IDEwMDY0NAot
LS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCisrKyBiL1Rvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hi
b2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKQEAgLTI2OCwxMyArMjY4LDkgQEAgQnVpbGRi
b3RRdWV1ZS5wcm90b3R5cGUgPSB7CiAKICAgICBjb21wYXJlSXRlcmF0aW9uczogZnVuY3Rpb24o
YSwgYikKICAgICB7Ci0gICAgICAgIHZhciBzb3J0ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQu
c29ydGVkUmVwb3NpdG9yaWVzOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJl
cG9zaXRvcmllcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1l
ID0gc29ydGVkUmVwb3NpdG9yaWVzW2ldLm5hbWU7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0g
Yi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0gLSBhLnJldmlzaW9uW3JlcG9zaXRvcnlOYW1lXTsK
LSAgICAgICAgICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICAgfQorICAgICAgICByZXN1bHQgPSB0aGlzLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZp
c2lvbnMoYSwgYik7CisgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwogCiAgICAgICAgIC8vIEEgbG9hZGVkIGl0ZXJhdGlvbiBtYXkgbm90IGhhdmUgcmV2aXNp
b24gbnVtYmVycyBpZiBpdCBmYWlsZWQgZWFybHksIGJlZm9yZSBzdm4gc3RlcHMgZmluaXNoZWQu
CiAgICAgICAgIHJlc3VsdCA9IGIubG9hZGVkIC0gYS5sb2FkZWQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9k
YXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL3Rl
c3RzL3Rlc3RzLmpzCmluZGV4IDE5MzQwMDg4MWVkMGI2YjBhZTEzNzJhMGYwZTgxNjJjYWU1YjU1
ZmQuLjhiM2NiZDM3YmVmNmQ1MGQ0OGRkNzY2ODYwODk2YWFjN2M4ZGQ0MTUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL3Rlc3RzL3Rlc3RzLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL3Rlc3RzL3Rlc3RzLmpzCkBAIC00MiwzICs0Miw1MyBAQCB0ZXN0KCJfYXBwZW5kUGVu
ZGluZ1JldmlzaW9uQ291bnQiLCBmdW5jdGlvbigpCiAgICAgdmFyIHJldmlzaW9uc0JlaGluZCA9
IHZpZXcuZWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJtZXNzYWdlIilbMF0uaW5uZXJI
VE1MLm1hdGNoKC8uKihcZCspIHJldmlzaW9uKHxzKSBiZWhpbmQvKVsxXTsKICAgICBlcXVhbChy
ZXZpc2lvbnNCZWhpbmQsICIxIiwgImFzc2VydCByZXZpc2lvbnMgYmVoaW5kIik7CiB9KTsKKwor
bW9kdWxlKCJCdWlsZEJvdFF1ZXVlIiwgeworICAgIHNldHVwOiBmdW5jdGlvbigpIHsKKyAgICAg
ICAgcXVldWUgPSBuZXcgTW9ja0J1aWxkYm90UXVldWUoKTsKKyAgICAgICAgcXVldWUuYnJhbmNo
ZXMgPSBbeworICAgICAgICAgICAgbmFtZTogInRydW5rIiwKKyAgICAgICAgICAgIHJlcG9zaXRv
cnk6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAib3BlblNvdXJjZSIsCisgICAgICAgICAgICB9
CisgICAgICAgIH1dCisgICAgICAgIHZhciBpZDEgPSA0MjsKKyAgICAgICAgdmFyIGlkMiA9IDQz
OworICAgICAgICB2YXIgZmluaXNoZWQgPSBmYWxzZTsKKyAgICAgICAgaXRlcmF0aW9uMSA9IG5l
dyBCdWlsZGJvdEl0ZXJhdGlvbihxdWV1ZSwgaWQxLCBmaW5pc2hlZCk7CisgICAgICAgIGl0ZXJh
dGlvbjIgPSBuZXcgQnVpbGRib3RJdGVyYXRpb24ocXVldWUsIGlkMiwgZmluaXNoZWQpOworICAg
IH0KK30pOworCit0ZXN0KCJjb21wYXJlSXRlcmF0aW9ucyBieSByZXZpc2lvbnMiLCBmdW5jdGlv
bigpCit7CisgICAgaXRlcmF0aW9uMS5yZXZpc2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiA0MiB9Owor
ICAgIGl0ZXJhdGlvbjIucmV2aXNpb24gPSB7ICJvcGVuU291cmNlIjogNDMgfTsKKyAgICBvayhx
dWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAsICJsZXNz
IHRoYW4iKTsKKyAgICBvayhxdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVy
YXRpb24yKSA+IDAsICJncmVhdGVyIHRoYW4iKTsKKyAgICBvayhxdWV1ZS5jb21wYXJlSXRlcmF0
aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24yKSA9PT0gMCwgImVxdWFsIik7IC8vIGlmIHN0YXRl
bWVudCBhY3R1YWxseSBmYWxscyB0aHJvdWdoCit9KTsKKwordGVzdCgiY29tcGFyZUl0ZXJhdGlv
bnMgYnkgbG9hZGVkIiwgZnVuY3Rpb24oKQoreworICAgIGl0ZXJhdGlvbjEubG9hZGVkID0gZmFs
c2U7CisgICAgaXRlcmF0aW9uMi5sb2FkZWQgPSB0cnVlOworICAgIG9rKHF1ZXVlLmNvbXBhcmVJ
dGVyYXRpb25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4gMCwgImdyZWF0ZXIgdGhhbiIpOwor
ICAgIG9rKHF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwg
MCwgImxlc3MgdGhhbiIpOworfSk7CisKK3Rlc3QoImNvbXBhcmVJdGVyYXRpb25zIGJ5IGlkIiwg
ZnVuY3Rpb24oKQoreworICAgIG9rKHF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIs
IGl0ZXJhdGlvbjEpIDwgMCwgImxlc3MgdGhhbiIpOworICAgIG9rKHF1ZXVlLmNvbXBhcmVJdGVy
YXRpb25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4gMCwgImdyZWF0ZXIgdGhhbiIpOworICAg
IG9rKHF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjIpID09PSAw
LCAiZXF1YWwiKTsKK30pOworCit0ZXN0KCJjb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zIiwg
ZnVuY3Rpb24oKQoreworICAgIGl0ZXJhdGlvbjEucmV2aXNpb24gPSB7ICJvcGVuU291cmNlIjog
NDIgfTsKKyAgICBpdGVyYXRpb24yLnJldmlzaW9uID0geyAib3BlblNvdXJjZSI6IDQzIH07Cisg
ICAgb2socXVldWUuY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyhpdGVyYXRpb24yLCBpdGVy
YXRpb24xKSA8IDAsICJsZXNzIHRoYW4iKTsKKyAgICBvayhxdWV1ZS5jb21wYXJlSXRlcmF0aW9u
c0J5UmV2aXNpb25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4gMCwgImdyZWF0ZXIgdGhhbiIp
OworICAgIG9rKHF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnMoaXRlcmF0aW9uMiwg
aXRlcmF0aW9uMikgPT09IDAsICJlcXVhbCIpOworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269364</attachid>
            <date>2016-01-20 11:12:27 -0800</date>
            <delta_ts>2016-01-20 11:41:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152913-20160120111200.patch</filename>
            <type>text/plain</type>
            <size>5745</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1MzU3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDA3NDRhNjk1NTAzNjIwZGZkNmQ1Y2EyZDZlNGFmYjcy
NWJiZGY5NS4uODNkNjExNzNkNmFlYjgzMTI1YzI0OWYwNjQ3YTVjNzQ5YjY4MjRlOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE2LTAxLTIwICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlZmFjdG9yIGNvbXBhcmVJdGVyYXRpb25zIHRvIHJlbW92ZSBkdXBsaWNhdGUgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjkx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJv
dG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTogUmVmYWN0b3JlZCB0byByZW1vdmUgZHVwbGljYXRl
IGNvZGUuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanM6IEFkZGVkIHRl
c3RzIGluIG9yZGVyIHRvIGVuc3VyZQorICAgICAgICB0aGUgc2FtZSBiZWhhdmlvciBiZWZvcmUg
YW5kIGFmdGVyIHJlZmFjdG9yLgorCiAyMDE2LTAxLTE5ICBKYXNvbiBNYXJjZWxsICA8am1hcmNl
bGxAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhc3NlcnRpb24gZnJvbSByZXZpc2lvbkNv
bnRlbnRGb3JJdGVyYXRpb24gdGhhdCBpcyBjYXVzaW5nIGVycm9ycyBvbiB0aGUgZGFzaGJvYXJk
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcyBiL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKaW5kZXggZTRhOTk1MTFmODk5MmI3
NDhlZTg4MGYzMDA1NzM2ZDg2ZDJhZGRhOC4uMWQ4ZDE2ZDRhOTI2NzEwZWIyMTMwMGY4MTg4YTM3
ZTc2YTRiNGJiNyAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1
ZS5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCkBAIC0yNjgs
MTMgKzI2OCw5IEBAIEJ1aWxkYm90UXVldWUucHJvdG90eXBlID0gewogCiAgICAgY29tcGFyZUl0
ZXJhdGlvbnM6IGZ1bmN0aW9uKGEsIGIpCiAgICAgewotICAgICAgICB2YXIgc29ydGVkUmVwb3Np
dG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmllczsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IHZhciByZXBvc2l0b3J5TmFtZSA9IHNvcnRlZFJlcG9zaXRvcmllc1tpXS5uYW1lOwotICAgICAg
ICAgICAgdmFyIHJlc3VsdCA9IGIucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdIC0gYS5yZXZpc2lv
bltyZXBvc2l0b3J5TmFtZV07Ci0gICAgICAgICAgICBpZiAocmVzdWx0KQotICAgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gdGhpcy5jb21w
YXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKGEsIGIpOworICAgICAgICBpZiAocmVzdWx0KQorICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgICAgICAvLyBBIGxvYWRlZCBpdGVyYXRpb24g
bWF5IG5vdCBoYXZlIHJldmlzaW9uIG51bWJlcnMgaWYgaXQgZmFpbGVkIGVhcmx5LCBiZWZvcmUg
c3ZuIHN0ZXBzIGZpbmlzaGVkLgogICAgICAgICByZXN1bHQgPSBiLmxvYWRlZCAtIGEubG9hZGVk
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanMgYi9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9k
YXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcwppbmRleCAxOTM0MDA4ODFlZDBiNmIwYWUx
MzcyYTBmMGU4MTYyY2FlNWI1NWZkLi4xN2ZjNDhkOTY4MjgwOTg1MTdmNzAwNGRmN2Y3ZWVmZjQ4
MmJiZDQ2IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcwor
KysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcwpAQCAtNDIsMyArNDIsNjgg
QEAgdGVzdCgiX2FwcGVuZFBlbmRpbmdSZXZpc2lvbkNvdW50IiwgZnVuY3Rpb24oKQogICAgIHZh
ciByZXZpc2lvbnNCZWhpbmQgPSB2aWV3LmVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgi
bWVzc2FnZSIpWzBdLmlubmVySFRNTC5tYXRjaCgvLiooXGQrKSByZXZpc2lvbih8cykgYmVoaW5k
LylbMV07CiAgICAgZXF1YWwocmV2aXNpb25zQmVoaW5kLCAiMSIsICJhc3NlcnQgcmV2aXNpb25z
IGJlaGluZCIpOwogfSk7CisKK21vZHVsZSgiQnVpbGRCb3RRdWV1ZSIsIHsKKyAgICBzZXR1cDog
ZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucXVldWUgPSBuZXcgTW9ja0J1aWxkYm90UXVldWUo
KTsKKyAgICAgICAgdGhpcy5xdWV1ZS5icmFuY2hlcyA9IFt7CisgICAgICAgICAgICBuYW1lOiAi
dHJ1bmsiLAorICAgICAgICAgICAgcmVwb3NpdG9yeTogeworICAgICAgICAgICAgICAgIG5hbWU6
ICJvcGVuU291cmNlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfV07CisgICAgfQorfSk7CisK
K3Rlc3QoImNvbXBhcmVJdGVyYXRpb25zIGJ5IHJldmlzaW9ucyIsIGZ1bmN0aW9uKCkKK3sKKyAg
ICB2YXIgaWQxID0gNDI7CisgICAgdmFyIGlkMiA9IDQzOworICAgIHZhciBmaW5pc2hlZCA9IGZh
bHNlOworICAgIHZhciBpdGVyYXRpb24xID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVl
dWUsIGlkMSwgZmluaXNoZWQpOworICAgIHZhciBpdGVyYXRpb24yID0gbmV3IEJ1aWxkYm90SXRl
cmF0aW9uKHRoaXMucXVldWUsIGlkMiwgZmluaXNoZWQpOworICAgIGl0ZXJhdGlvbjEucmV2aXNp
b24gPSB7ICJvcGVuU291cmNlIjogNDIgfTsKKyAgICBpdGVyYXRpb24yLnJldmlzaW9uID0geyAi
b3BlblNvdXJjZSI6IDQzIH07CisgICAgb2sodGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhp
dGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAsICJjb21wYXJlSXRlcmF0aW9uczogbGVzcyB0aGFu
Iik7CisgICAgb2sodGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVy
YXRpb24yKSA+IDAsICJjb21wYXJlSXRlcmF0aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgb2so
dGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24yKSA9PT0g
MCwgImNvbXBhcmVJdGVyYXRpb25zOiBlcXVhbCIpOyAvLyBpZiBzdGF0ZW1lbnQgYWN0dWFsbHkg
ZmFsbHMgdGhyb3VnaAorfSk7CisKK3Rlc3QoImNvbXBhcmVJdGVyYXRpb25zIGJ5IGxvYWRlZCIs
IGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgaWQxID0gNDI7CisgICAgdmFyIGlkMiA9IDQzOworICAg
IHZhciBmaW5pc2hlZCA9IGZhbHNlOworICAgIHZhciBpdGVyYXRpb24xID0gbmV3IEJ1aWxkYm90
SXRlcmF0aW9uKHRoaXMucXVldWUsIGlkMSwgZmluaXNoZWQpOworICAgIHZhciBpdGVyYXRpb24y
ID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVldWUsIGlkMiwgZmluaXNoZWQpOworICAg
IGl0ZXJhdGlvbjEubG9hZGVkID0gZmFsc2U7CisgICAgaXRlcmF0aW9uMi5sb2FkZWQgPSB0cnVl
OworICAgIG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMSwgaXRlcmF0
aW9uMikgPiAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGdyZWF0ZXIgdGhhbiIpOworICAgIG9rKHRo
aXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9uMSkgPCAwLCAi
Y29tcGFyZUl0ZXJhdGlvbnM6IGxlc3MgdGhhbiIpOworfSk7CisKK3Rlc3QoImNvbXBhcmVJdGVy
YXRpb25zIGJ5IGlkIiwgZnVuY3Rpb24oKQoreworICAgIHZhciBpZDEgPSA0MjsKKyAgICB2YXIg
aWQyID0gNDM7CisgICAgdmFyIGZpbmlzaGVkID0gZmFsc2U7CisgICAgdmFyIGl0ZXJhdGlvbjEg
PSBuZXcgQnVpbGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgaWQxLCBmaW5pc2hlZCk7CisgICAg
dmFyIGl0ZXJhdGlvbjIgPSBuZXcgQnVpbGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgaWQyLCBm
aW5pc2hlZCk7CisgICAgb2sodGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24y
LCBpdGVyYXRpb24xKSA8IDAsICJjb21wYXJlSXRlcmF0aW9uczogbGVzcyB0aGFuIik7CisgICAg
b2sodGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+
IDAsICJjb21wYXJlSXRlcmF0aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgb2sodGhpcy5xdWV1
ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24yKSA9PT0gMCwgImNvbXBh
cmVJdGVyYXRpb25zOiBlcXVhbCIpOworfSk7CisKK3Rlc3QoImNvbXBhcmVJdGVyYXRpb25zQnlS
ZXZpc2lvbnMiLCBmdW5jdGlvbigpCit7CisgICAgdmFyIGlkMSA9IDQyOworICAgIHZhciBpZDIg
PSA0MzsKKyAgICB2YXIgZmluaXNoZWQgPSBmYWxzZTsKKyAgICB2YXIgaXRlcmF0aW9uMSA9IG5l
dyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCBpZDEsIGZpbmlzaGVkKTsKKyAgICB2YXIg
aXRlcmF0aW9uMiA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCBpZDIsIGZpbmlz
aGVkKTsKKyAgICBpdGVyYXRpb24xLnJldmlzaW9uID0geyAib3BlblNvdXJjZSI6IDQyIH07Cisg
ICAgaXRlcmF0aW9uMi5yZXZpc2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiA0MyB9OworICAgIG9rKHRo
aXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyhpdGVyYXRpb24yLCBpdGVyYXRp
b24xKSA8IDAsICJjb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zOiBsZXNzIHRoYW4iKTsKKyAg
ICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnMoaXRlcmF0aW9uMSwg
aXRlcmF0aW9uMikgPiAwLCAiY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9uczogZ3JlYXRlciB0
aGFuIik7CisgICAgb2sodGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKGl0
ZXJhdGlvbjIsIGl0ZXJhdGlvbjIpID09PSAwLCAiY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9u
czogZXF1YWwiKTsKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269369</attachid>
            <date>2016-01-20 11:41:53 -0800</date>
            <delta_ts>2016-01-20 14:58:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152913-20160120114125.patch</filename>
            <type>text/plain</type>
            <size>6034</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1MzYwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWM0MDhmYzYwMDg2MDNiMWY5MDI0ZWQ3MzQ3ZDI4M2Vi
OTJlNjM3Ni4uOTk5YTM5M2UxZmQwYjQ5MmNkY2I0YTBhZWNjYTliMmQ2Nzk4ODQ5MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE2LTAxLTIwICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlZmFjdG9yIGNvbXBhcmVJdGVyYXRpb25zIHRvIHJlbW92ZSBkdXBsaWNhdGUgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjkx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJv
dG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTogUmVmYWN0b3JlZCB0byByZW1vdmUgZHVwbGljYXRl
IGNvZGUuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5zb3J0SXRlcmF0aW9ucyk6
IEFkZCBiaW5kaW5nIHRvIGNhbGwgdG8gY29tcGFyZUl0ZXJhdGlvbnMuCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanM6IEFkZGVkIHRlc3RzIGluIG9yZGVyIHRvIGVuc3Vy
ZQorICAgICAgICB0aGUgc2FtZSBiZWhhdmlvciBiZWZvcmUgYW5kIGFmdGVyIHJlZmFjdG9yLgor
CiAyMDE2LTAxLTIwICBEYW5hIEJ1cmthcnQgIDxkYnVya2FydEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQm90d2F0Y2hlcidzIGRhc2hib2FyZCBzaG91bGQgc2hvdyBhbiAnWCcgd2hlbiB0aGUgYnVp
bGQgaXMgYnJva2VuCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwppbmRleCBlNGE5
OTUxMWY4OTkyYjc0OGVlODgwZjMwMDU3MzZkODZkMmFkZGE4Li43NzE5OGQwYmRlNjM3ZmRhZjdl
YWY2ODViZTA4MzI2NzQwMmJlNmRlIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdFF1ZXVlLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUu
anMKQEAgLTI2OCwxMyArMjY4LDkgQEAgQnVpbGRib3RRdWV1ZS5wcm90b3R5cGUgPSB7CiAKICAg
ICBjb21wYXJlSXRlcmF0aW9uczogZnVuY3Rpb24oYSwgYikKICAgICB7Ci0gICAgICAgIHZhciBz
b3J0ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVwb3NpdG9yaWVzOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmllcy5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gc29ydGVkUmVwb3NpdG9yaWVzW2ldLm5h
bWU7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gYi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0g
LSBhLnJldmlzaW9uW3JlcG9zaXRvcnlOYW1lXTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQorICAgICAgICByZXN1bHQg
PSB0aGlzLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnMoYSwgYik7CisgICAgICAgIGlmIChy
ZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgICAgIC8vIEEgbG9hZGVk
IGl0ZXJhdGlvbiBtYXkgbm90IGhhdmUgcmV2aXNpb24gbnVtYmVycyBpZiBpdCBmYWlsZWQgZWFy
bHksIGJlZm9yZSBzdm4gc3RlcHMgZmluaXNoZWQuCiAgICAgICAgIHJlc3VsdCA9IGIubG9hZGVk
IC0gYS5sb2FkZWQ7CkBAIC0yOTksNiArMjk1LDYgQEAgQnVpbGRib3RRdWV1ZS5wcm90b3R5cGUg
PSB7CiAKICAgICBzb3J0SXRlcmF0aW9uczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhp
cy5pdGVyYXRpb25zLnNvcnQodGhpcy5jb21wYXJlSXRlcmF0aW9ucyk7CisgICAgICAgIHRoaXMu
aXRlcmF0aW9ucy5zb3J0KHRoaXMuY29tcGFyZUl0ZXJhdGlvbnMuYmluZCh0aGlzKSk7CiAgICAg
fQogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL3Rlc3RzL3Rlc3RzLmpzIGIv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanMKaW5kZXggMTkzNDAwODgxZWQwYjZi
MGFlMTM3MmEwZjBlODE2MmNhZTViNTVmZC4uMTdmYzQ4ZDk2ODI4MDk4NTE3ZjcwMDRkZjdmN2Vl
ZmY0ODJiYmQ0NiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMu
anMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanMKQEAgLTQyLDMgKzQy
LDY4IEBAIHRlc3QoIl9hcHBlbmRQZW5kaW5nUmV2aXNpb25Db3VudCIsIGZ1bmN0aW9uKCkKICAg
ICB2YXIgcmV2aXNpb25zQmVoaW5kID0gdmlldy5lbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoIm1lc3NhZ2UiKVswXS5pbm5lckhUTUwubWF0Y2goLy4qKFxkKykgcmV2aXNpb24ofHMpIGJl
aGluZC8pWzFdOwogICAgIGVxdWFsKHJldmlzaW9uc0JlaGluZCwgIjEiLCAiYXNzZXJ0IHJldmlz
aW9ucyBiZWhpbmQiKTsKIH0pOworCittb2R1bGUoIkJ1aWxkQm90UXVldWUiLCB7CisgICAgc2V0
dXA6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnF1ZXVlID0gbmV3IE1vY2tCdWlsZGJvdFF1
ZXVlKCk7CisgICAgICAgIHRoaXMucXVldWUuYnJhbmNoZXMgPSBbeworICAgICAgICAgICAgbmFt
ZTogInRydW5rIiwKKyAgICAgICAgICAgIHJlcG9zaXRvcnk6IHsKKyAgICAgICAgICAgICAgICBu
YW1lOiAib3BlblNvdXJjZSIsCisgICAgICAgICAgICB9CisgICAgICAgIH1dOworICAgIH0KK30p
OworCit0ZXN0KCJjb21wYXJlSXRlcmF0aW9ucyBieSByZXZpc2lvbnMiLCBmdW5jdGlvbigpCit7
CisgICAgdmFyIGlkMSA9IDQyOworICAgIHZhciBpZDIgPSA0MzsKKyAgICB2YXIgZmluaXNoZWQg
PSBmYWxzZTsKKyAgICB2YXIgaXRlcmF0aW9uMSA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlz
LnF1ZXVlLCBpZDEsIGZpbmlzaGVkKTsKKyAgICB2YXIgaXRlcmF0aW9uMiA9IG5ldyBCdWlsZGJv
dEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCBpZDIsIGZpbmlzaGVkKTsKKyAgICBpdGVyYXRpb24xLnJl
dmlzaW9uID0geyAib3BlblNvdXJjZSI6IDQyIH07CisgICAgaXRlcmF0aW9uMi5yZXZpc2lvbiA9
IHsgIm9wZW5Tb3VyY2UiOiA0MyB9OworICAgIG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlv
bnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9uMSkgPCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGxlc3Mg
dGhhbiIpOworICAgIG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMSwg
aXRlcmF0aW9uMikgPiAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGdyZWF0ZXIgdGhhbiIpOworICAg
IG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9uMikg
PT09IDAsICJjb21wYXJlSXRlcmF0aW9uczogZXF1YWwiKTsgLy8gaWYgc3RhdGVtZW50IGFjdHVh
bGx5IGZhbGxzIHRocm91Z2gKK30pOworCit0ZXN0KCJjb21wYXJlSXRlcmF0aW9ucyBieSBsb2Fk
ZWQiLCBmdW5jdGlvbigpCit7CisgICAgdmFyIGlkMSA9IDQyOworICAgIHZhciBpZDIgPSA0MzsK
KyAgICB2YXIgZmluaXNoZWQgPSBmYWxzZTsKKyAgICB2YXIgaXRlcmF0aW9uMSA9IG5ldyBCdWls
ZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCBpZDEsIGZpbmlzaGVkKTsKKyAgICB2YXIgaXRlcmF0
aW9uMiA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCBpZDIsIGZpbmlzaGVkKTsK
KyAgICBpdGVyYXRpb24xLmxvYWRlZCA9IGZhbHNlOworICAgIGl0ZXJhdGlvbjIubG9hZGVkID0g
dHJ1ZTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjEsIGl0
ZXJhdGlvbjIpID4gMCwgImNvbXBhcmVJdGVyYXRpb25zOiBncmVhdGVyIHRoYW4iKTsKKyAgICBv
ayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwg
MCwgImNvbXBhcmVJdGVyYXRpb25zOiBsZXNzIHRoYW4iKTsKK30pOworCit0ZXN0KCJjb21wYXJl
SXRlcmF0aW9ucyBieSBpZCIsIGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgaWQxID0gNDI7CisgICAg
dmFyIGlkMiA9IDQzOworICAgIHZhciBmaW5pc2hlZCA9IGZhbHNlOworICAgIHZhciBpdGVyYXRp
b24xID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVldWUsIGlkMSwgZmluaXNoZWQpOwor
ICAgIHZhciBpdGVyYXRpb24yID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVldWUsIGlk
MiwgZmluaXNoZWQpOworICAgIG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0
aW9uMiwgaXRlcmF0aW9uMSkgPCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGxlc3MgdGhhbiIpOwor
ICAgIG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMSwgaXRlcmF0aW9u
MikgPiAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGdyZWF0ZXIgdGhhbiIpOworICAgIG9rKHRoaXMu
cXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9uMikgPT09IDAsICJj
b21wYXJlSXRlcmF0aW9uczogZXF1YWwiKTsKK30pOworCit0ZXN0KCJjb21wYXJlSXRlcmF0aW9u
c0J5UmV2aXNpb25zIiwgZnVuY3Rpb24oKQoreworICAgIHZhciBpZDEgPSA0MjsKKyAgICB2YXIg
aWQyID0gNDM7CisgICAgdmFyIGZpbmlzaGVkID0gZmFsc2U7CisgICAgdmFyIGl0ZXJhdGlvbjEg
PSBuZXcgQnVpbGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgaWQxLCBmaW5pc2hlZCk7CisgICAg
dmFyIGl0ZXJhdGlvbjIgPSBuZXcgQnVpbGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgaWQyLCBm
aW5pc2hlZCk7CisgICAgaXRlcmF0aW9uMS5yZXZpc2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiA0MiB9
OworICAgIGl0ZXJhdGlvbjIucmV2aXNpb24gPSB7ICJvcGVuU291cmNlIjogNDMgfTsKKyAgICBv
ayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnMoaXRlcmF0aW9uMiwgaXRl
cmF0aW9uMSkgPCAwLCAiY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9uczogbGVzcyB0aGFuIik7
CisgICAgb2sodGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKGl0ZXJhdGlv
bjEsIGl0ZXJhdGlvbjIpID4gMCwgImNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGdyZWF0
ZXIgdGhhbiIpOworICAgIG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9u
cyhpdGVyYXRpb24yLCBpdGVyYXRpb24yKSA9PT0gMCwgImNvbXBhcmVJdGVyYXRpb25zQnlSZXZp
c2lvbnM6IGVxdWFsIik7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269391</attachid>
            <date>2016-01-20 14:58:13 -0800</date>
            <delta_ts>2016-01-20 15:19:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152913-20160120145745.patch</filename>
            <type>text/plain</type>
            <size>6193</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1Mzc2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWM0MDhmYzYwMDg2MDNiMWY5MDI0ZWQ3MzQ3ZDI4M2Vi
OTJlNjM3Ni4uOTk5YTM5M2UxZmQwYjQ5MmNkY2I0YTBhZWNjYTliMmQ2Nzk4ODQ5MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE2LTAxLTIwICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlZmFjdG9yIGNvbXBhcmVJdGVyYXRpb25zIHRvIHJlbW92ZSBkdXBsaWNhdGUgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjkx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJv
dG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTogUmVmYWN0b3JlZCB0byByZW1vdmUgZHVwbGljYXRl
IGNvZGUuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5zb3J0SXRlcmF0aW9ucyk6
IEFkZCBiaW5kaW5nIHRvIGNhbGwgdG8gY29tcGFyZUl0ZXJhdGlvbnMuCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanM6IEFkZGVkIHRlc3RzIGluIG9yZGVyIHRvIGVuc3Vy
ZQorICAgICAgICB0aGUgc2FtZSBiZWhhdmlvciBiZWZvcmUgYW5kIGFmdGVyIHJlZmFjdG9yLgor
CiAyMDE2LTAxLTIwICBEYW5hIEJ1cmthcnQgIDxkYnVya2FydEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQm90d2F0Y2hlcidzIGRhc2hib2FyZCBzaG91bGQgc2hvdyBhbiAnWCcgd2hlbiB0aGUgYnVp
bGQgaXMgYnJva2VuCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwppbmRleCBlNGE5
OTUxMWY4OTkyYjc0OGVlODgwZjMwMDU3MzZkODZkMmFkZGE4Li42NjM3MDMwMzI0NzIxMTQ4NGE2
OTE1NDQ2ODk3MTZkNzkxNzYxNjdkIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdFF1ZXVlLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUu
anMKQEAgLTI2OCwxMiArMjY4LDEwIEBAIEJ1aWxkYm90UXVldWUucHJvdG90eXBlID0gewogCiAg
ICAgY29tcGFyZUl0ZXJhdGlvbnM6IGZ1bmN0aW9uKGEsIGIpCiAgICAgewotICAgICAgICB2YXIg
c29ydGVkUmVwb3NpdG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmllczsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZSA9IHNvcnRlZFJlcG9zaXRvcmllc1tpXS5u
YW1lOwotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGIucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVd
IC0gYS5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV07Ci0gICAgICAgICAgICBpZiAocmVzdWx0KQot
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJlc3VsdCA9IHRoaXMuY29t
cGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyhhLCBiKTsKKyAgICAgICAgaWYgKHJlc3VsdCkgewor
ICAgICAgICAgICAgY29uc29sZS5sb2coIiAgIGNvbXBhcmVJdGVyYXRpb25zIGJ5IHJldmlzaW9u
cyIpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogCiAgICAgICAgIC8v
IEEgbG9hZGVkIGl0ZXJhdGlvbiBtYXkgbm90IGhhdmUgcmV2aXNpb24gbnVtYmVycyBpZiBpdCBm
YWlsZWQgZWFybHksIGJlZm9yZSBzdm4gc3RlcHMgZmluaXNoZWQuCmRpZmYgLS1naXQgYS9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9k
YXNoYm9hcmQvU2NyaXB0cy90ZXN0cy90ZXN0cy5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL3Rl
c3RzL3Rlc3RzLmpzCmluZGV4IDE5MzQwMDg4MWVkMGI2YjBhZTEzNzJhMGYwZTgxNjJjYWU1YjU1
ZmQuLmZlN2E4NmQ0Njk3MGViYTU1ZTE3ODQ2ODk0YzI3NDAzNjdiNGI1MDYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL3Rlc3RzL3Rlc3RzLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL3Rlc3RzL3Rlc3RzLmpzCkBAIC00MiwzICs0Miw3NCBAQCB0ZXN0KCJfYXBwZW5kUGVu
ZGluZ1JldmlzaW9uQ291bnQiLCBmdW5jdGlvbigpCiAgICAgdmFyIHJldmlzaW9uc0JlaGluZCA9
IHZpZXcuZWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJtZXNzYWdlIilbMF0uaW5uZXJI
VE1MLm1hdGNoKC8uKihcZCspIHJldmlzaW9uKHxzKSBiZWhpbmQvKVsxXTsKICAgICBlcXVhbChy
ZXZpc2lvbnNCZWhpbmQsICIxIiwgImFzc2VydCByZXZpc2lvbnMgYmVoaW5kIik7CiB9KTsKKwor
bW9kdWxlKCJCdWlsZEJvdFF1ZXVlIiwgeworICAgIHNldHVwOiBmdW5jdGlvbigpIHsKKyAgICAg
ICAgdGhpcy5xdWV1ZSA9IG5ldyBNb2NrQnVpbGRib3RRdWV1ZSgpOworICAgICAgICB0aGlzLnF1
ZXVlLmJyYW5jaGVzID0gW3sKKyAgICAgICAgICAgIG5hbWU6ICJ0cnVuayIsCisgICAgICAgICAg
ICByZXBvc2l0b3J5OiB7CisgICAgICAgICAgICAgICAgbmFtZTogIm9wZW5Tb3VyY2UiLAorICAg
ICAgICAgICAgfQorICAgICAgICB9XTsKKyAgICB9Cit9KTsKKwordGVzdCgiY29tcGFyZUl0ZXJh
dGlvbnMgYnkgcmV2aXNpb25zIiwgZnVuY3Rpb24oKQoreworICAgIGNvbnNvbGUubG9nKCJjb21w
YXJlSXRlcmF0aW9ucyBieSByZXZpc2lvbnMiKTsKKyAgICB2YXIgZmluaXNoZWQgPSBmYWxzZTsK
KyAgICB2YXIgaXRlcmF0aW9uMSA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCAx
LCBmaW5pc2hlZCk7CisgICAgdmFyIGl0ZXJhdGlvbjIgPSBuZXcgQnVpbGRib3RJdGVyYXRpb24o
dGhpcy5xdWV1ZSwgMiwgZmluaXNoZWQpOworICAgIGl0ZXJhdGlvbjEucmV2aXNpb24gPSB7ICJv
cGVuU291cmNlIjogMzMwMTggfTsKKyAgICBpdGVyYXRpb24yLnJldmlzaW9uID0geyAib3BlblNv
dXJjZSI6IDMzMDE5IH07CisgICAgaXRlcmF0aW9uMS5sb2FkZWQgPSB0cnVlOworICAgIGl0ZXJh
dGlvbjIubG9hZGVkID0gdHJ1ZTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25z
KGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwgMCwgImNvbXBhcmVJdGVyYXRpb25zOiBsZXNzIHRo
YW4iKTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjEsIGl0
ZXJhdGlvbjIpID4gMCwgImNvbXBhcmVJdGVyYXRpb25zOiBncmVhdGVyIHRoYW4iKTsKKyAgICBz
dHJpY3RFcXVhbCh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJh
dGlvbjIpLCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGVxdWFsIik7Cit9KTsKKwordGVzdCgiY29t
cGFyZUl0ZXJhdGlvbnMgYnkgbG9hZGVkIiwgZnVuY3Rpb24oKQoreworICAgIGNvbnNvbGUubG9n
KCJjb21wYXJlSXRlcmF0aW9ucyBieSBsb2FkZWQiKTsKKyAgICB2YXIgZmluaXNoZWQgPSBmYWxz
ZTsKKyAgICB2YXIgaXRlcmF0aW9uMSA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVl
LCAxLCBmaW5pc2hlZCk7CisgICAgdmFyIGl0ZXJhdGlvbjIgPSBuZXcgQnVpbGRib3RJdGVyYXRp
b24odGhpcy5xdWV1ZSwgMiwgZmluaXNoZWQpOworICAgIGl0ZXJhdGlvbjEucmV2aXNpb24gPSB7
fTsKKyAgICBpdGVyYXRpb24yLnJldmlzaW9uID0geyAib3BlblNvdXJjZSI6IDMzMDE5IH07Cisg
ICAgaXRlcmF0aW9uMS5sb2FkZWQgPSBmYWxzZTsKKyAgICBpdGVyYXRpb24yLmxvYWRlZCA9IHRy
dWU7CisgICAgb2sodGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVy
YXRpb24yKSA+IDAsICJjb21wYXJlSXRlcmF0aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgb2so
dGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAs
ICJjb21wYXJlSXRlcmF0aW9uczogbGVzcyB0aGFuIik7Cit9KTsKKwordGVzdCgiY29tcGFyZUl0
ZXJhdGlvbnMgYnkgaWQiLCBmdW5jdGlvbigpCit7CisgICAgY29uc29sZS5sb2coImNvbXBhcmVJ
dGVyYXRpb25zIGJ5IGlkIik7CisgICAgdmFyIGZpbmlzaGVkID0gZmFsc2U7CisgICAgdmFyIGl0
ZXJhdGlvbjEgPSBuZXcgQnVpbGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgMSwgZmluaXNoZWQp
OworICAgIHZhciBpdGVyYXRpb24yID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVldWUs
IDIsIGZpbmlzaGVkKTsKKyAgICBpdGVyYXRpb24xLnJldmlzaW9uID0ge307CisgICAgaXRlcmF0
aW9uMi5yZXZpc2lvbiA9IHt9OworICAgIGl0ZXJhdGlvbjEubG9hZGVkID0gZmFsc2U7CisgICAg
aXRlcmF0aW9uMi5sb2FkZWQgPSBmYWxzZTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVy
YXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwgMCwgImNvbXBhcmVJdGVyYXRpb25zOiBs
ZXNzIHRoYW4iKTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlv
bjEsIGl0ZXJhdGlvbjIpID4gMCwgImNvbXBhcmVJdGVyYXRpb25zOiBncmVhdGVyIHRoYW4iKTsK
KyAgICBzdHJpY3RFcXVhbCh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIs
IGl0ZXJhdGlvbjIpLCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGVxdWFsIik7Cit9KTsKKwordGVz
dCgiY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyIsIGZ1bmN0aW9uKCkKK3sKKyAgICBjb25z
b2xlLmxvZygiY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyIpOworICAgIHZhciBmaW5pc2hl
ZCA9IGZhbHNlOworICAgIHZhciBpdGVyYXRpb24xID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRo
aXMucXVldWUsIDEsIGZpbmlzaGVkKTsKKyAgICB2YXIgaXRlcmF0aW9uMiA9IG5ldyBCdWlsZGJv
dEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCAyLCBmaW5pc2hlZCk7CisgICAgaXRlcmF0aW9uMS5yZXZp
c2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiAzMzAxOCB9OworICAgIGl0ZXJhdGlvbjIucmV2aXNpb24g
PSB7ICJvcGVuU291cmNlIjogMzMwMTkgfTsKKyAgICBpdGVyYXRpb24xLmxvYWRlZCA9IHRydWU7
CisgICAgaXRlcmF0aW9uMi5sb2FkZWQgPSBmYWxzZTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBh
cmVJdGVyYXRpb25zQnlSZXZpc2lvbnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9uMSkgPCAwLCAiY29t
cGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9uczogbGVzcyB0aGFuIik7CisgICAgb2sodGhpcy5xdWV1
ZS5jb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4g
MCwgImNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGdyZWF0ZXIgdGhhbiIpOworICAgIHN0
cmljdEVxdWFsKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyhpdGVyYXRp
b24yLCBpdGVyYXRpb24yKSwgMCwgImNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGVxdWFs
Iik7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269395</attachid>
            <date>2016-01-20 15:20:02 -0800</date>
            <delta_ts>2016-01-20 16:18:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152913-20160120151934.patch</filename>
            <type>text/plain</type>
            <size>6191</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1Mzc2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWM0MDhmYzYwMDg2MDNiMWY5MDI0ZWQ3MzQ3ZDI4M2Vi
OTJlNjM3Ni4uOTk5YTM5M2UxZmQwYjQ5MmNkY2I0YTBhZWNjYTliMmQ2Nzk4ODQ5MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE2LTAxLTIwICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlZmFjdG9yIGNvbXBhcmVJdGVyYXRpb25zIHRvIHJlbW92ZSBkdXBsaWNhdGUgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjkx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJv
dG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTogUmVmYWN0b3JlZCB0byByZW1vdmUgZHVwbGljYXRl
IGNvZGUuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5zb3J0SXRlcmF0aW9ucyk6
IEFkZCBiaW5kaW5nIHRvIGNhbGwgdG8gY29tcGFyZUl0ZXJhdGlvbnMuCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanM6IEFkZGVkIHRlc3RzIGluIG9yZGVyIHRvIGVuc3Vy
ZQorICAgICAgICB0aGUgc2FtZSBiZWhhdmlvciBiZWZvcmUgYW5kIGFmdGVyIHJlZmFjdG9yLgor
CiAyMDE2LTAxLTIwICBEYW5hIEJ1cmthcnQgIDxkYnVya2FydEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQm90d2F0Y2hlcidzIGRhc2hib2FyZCBzaG91bGQgc2hvdyBhbiAnWCcgd2hlbiB0aGUgYnVp
bGQgaXMgYnJva2VuCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwppbmRleCBlNGE5
OTUxMWY4OTkyYjc0OGVlODgwZjMwMDU3MzZkODZkMmFkZGE4Li43NzE5OGQwYmRlNjM3ZmRhZjdl
YWY2ODViZTA4MzI2NzQwMmJlNmRlIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdFF1ZXVlLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUu
anMKQEAgLTI2OCwxMyArMjY4LDkgQEAgQnVpbGRib3RRdWV1ZS5wcm90b3R5cGUgPSB7CiAKICAg
ICBjb21wYXJlSXRlcmF0aW9uczogZnVuY3Rpb24oYSwgYikKICAgICB7Ci0gICAgICAgIHZhciBz
b3J0ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVwb3NpdG9yaWVzOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmllcy5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gc29ydGVkUmVwb3NpdG9yaWVzW2ldLm5h
bWU7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gYi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0g
LSBhLnJldmlzaW9uW3JlcG9zaXRvcnlOYW1lXTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQorICAgICAgICByZXN1bHQg
PSB0aGlzLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnMoYSwgYik7CisgICAgICAgIGlmIChy
ZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgICAgIC8vIEEgbG9hZGVk
IGl0ZXJhdGlvbiBtYXkgbm90IGhhdmUgcmV2aXNpb24gbnVtYmVycyBpZiBpdCBmYWlsZWQgZWFy
bHksIGJlZm9yZSBzdm4gc3RlcHMgZmluaXNoZWQuCiAgICAgICAgIHJlc3VsdCA9IGIubG9hZGVk
IC0gYS5sb2FkZWQ7CkBAIC0yOTksNiArMjk1LDYgQEAgQnVpbGRib3RRdWV1ZS5wcm90b3R5cGUg
PSB7CiAKICAgICBzb3J0SXRlcmF0aW9uczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhp
cy5pdGVyYXRpb25zLnNvcnQodGhpcy5jb21wYXJlSXRlcmF0aW9ucyk7CisgICAgICAgIHRoaXMu
aXRlcmF0aW9ucy5zb3J0KHRoaXMuY29tcGFyZUl0ZXJhdGlvbnMuYmluZCh0aGlzKSk7CiAgICAg
fQogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL3Rlc3RzL3Rlc3RzLmpzIGIv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanMKaW5kZXggMTkzNDAwODgxZWQwYjZi
MGFlMTM3MmEwZjBlODE2MmNhZTViNTVmZC4uNDEzZjA1MDUyMjcyZTgyMGMxM2YzMGRiMDUwYjE3
NmU5NWU4YzA3MiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMu
anMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanMKQEAgLTQyLDMgKzQy
LDcwIEBAIHRlc3QoIl9hcHBlbmRQZW5kaW5nUmV2aXNpb25Db3VudCIsIGZ1bmN0aW9uKCkKICAg
ICB2YXIgcmV2aXNpb25zQmVoaW5kID0gdmlldy5lbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoIm1lc3NhZ2UiKVswXS5pbm5lckhUTUwubWF0Y2goLy4qKFxkKykgcmV2aXNpb24ofHMpIGJl
aGluZC8pWzFdOwogICAgIGVxdWFsKHJldmlzaW9uc0JlaGluZCwgIjEiLCAiYXNzZXJ0IHJldmlz
aW9ucyBiZWhpbmQiKTsKIH0pOworCittb2R1bGUoIkJ1aWxkQm90UXVldWUiLCB7CisgICAgc2V0
dXA6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnF1ZXVlID0gbmV3IE1vY2tCdWlsZGJvdFF1
ZXVlKCk7CisgICAgICAgIHRoaXMucXVldWUuYnJhbmNoZXMgPSBbeworICAgICAgICAgICAgbmFt
ZTogInRydW5rIiwKKyAgICAgICAgICAgIHJlcG9zaXRvcnk6IHsKKyAgICAgICAgICAgICAgICBu
YW1lOiAib3BlblNvdXJjZSIsCisgICAgICAgICAgICB9CisgICAgICAgIH1dOworICAgIH0KK30p
OworCit0ZXN0KCJjb21wYXJlSXRlcmF0aW9ucyBieSByZXZpc2lvbnMiLCBmdW5jdGlvbigpCit7
CisgICAgdmFyIGZpbmlzaGVkID0gZmFsc2U7CisgICAgdmFyIGl0ZXJhdGlvbjEgPSBuZXcgQnVp
bGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgMSwgZmluaXNoZWQpOworICAgIHZhciBpdGVyYXRp
b24yID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVldWUsIDIsIGZpbmlzaGVkKTsKKyAg
ICBpdGVyYXRpb24xLnJldmlzaW9uID0geyAib3BlblNvdXJjZSI6IDMzMDE4IH07CisgICAgaXRl
cmF0aW9uMi5yZXZpc2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiAzMzAxOSB9OworICAgIGl0ZXJhdGlv
bjEubG9hZGVkID0gdHJ1ZTsKKyAgICBpdGVyYXRpb24yLmxvYWRlZCA9IHRydWU7CisgICAgb2so
dGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAs
ICJjb21wYXJlSXRlcmF0aW9uczogbGVzcyB0aGFuIik7CisgICAgb2sodGhpcy5xdWV1ZS5jb21w
YXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+IDAsICJjb21wYXJlSXRlcmF0
aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgc3RyaWN0RXF1YWwodGhpcy5xdWV1ZS5jb21wYXJl
SXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24yKSwgMCwgImNvbXBhcmVJdGVyYXRpb25z
OiBlcXVhbCIpOworfSk7CisKK3Rlc3QoImNvbXBhcmVJdGVyYXRpb25zIGJ5IGxvYWRlZCIsIGZ1
bmN0aW9uKCkKK3sKKyAgICB2YXIgZmluaXNoZWQgPSBmYWxzZTsKKyAgICB2YXIgaXRlcmF0aW9u
MSA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCAxLCBmaW5pc2hlZCk7CisgICAg
dmFyIGl0ZXJhdGlvbjIgPSBuZXcgQnVpbGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgMiwgZmlu
aXNoZWQpOworICAgIGl0ZXJhdGlvbjEucmV2aXNpb24gPSB7fTsKKyAgICBpdGVyYXRpb24yLnJl
dmlzaW9uID0geyAib3BlblNvdXJjZSI6IDMzMDE5IH07CisgICAgaXRlcmF0aW9uMS5sb2FkZWQg
PSBmYWxzZTsKKyAgICBpdGVyYXRpb24yLmxvYWRlZCA9IHRydWU7CisgICAgb2sodGhpcy5xdWV1
ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+IDAsICJjb21wYXJl
SXRlcmF0aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgb2sodGhpcy5xdWV1ZS5jb21wYXJlSXRl
cmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAsICJjb21wYXJlSXRlcmF0aW9uczog
bGVzcyB0aGFuIik7Cit9KTsKKwordGVzdCgiY29tcGFyZUl0ZXJhdGlvbnMgYnkgaWQiLCBmdW5j
dGlvbigpCit7CisgICAgdmFyIGZpbmlzaGVkID0gZmFsc2U7CisgICAgdmFyIGl0ZXJhdGlvbjEg
PSBuZXcgQnVpbGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgMSwgZmluaXNoZWQpOworICAgIHZh
ciBpdGVyYXRpb24yID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVldWUsIDIsIGZpbmlz
aGVkKTsKKyAgICBpdGVyYXRpb24xLnJldmlzaW9uID0ge307CisgICAgaXRlcmF0aW9uMi5yZXZp
c2lvbiA9IHt9OworICAgIGl0ZXJhdGlvbjEubG9hZGVkID0gZmFsc2U7CisgICAgaXRlcmF0aW9u
Mi5sb2FkZWQgPSBmYWxzZTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0
ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwgMCwgImNvbXBhcmVJdGVyYXRpb25zOiBsZXNzIHRoYW4i
KTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjEsIGl0ZXJh
dGlvbjIpID4gMCwgImNvbXBhcmVJdGVyYXRpb25zOiBncmVhdGVyIHRoYW4iKTsKKyAgICBzdHJp
Y3RFcXVhbCh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlv
bjIpLCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGVxdWFsIik7Cit9KTsKKwordGVzdCgiY29tcGFy
ZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyIsIGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgZmluaXNoZWQg
PSBmYWxzZTsKKyAgICB2YXIgaXRlcmF0aW9uMSA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlz
LnF1ZXVlLCAxLCBmaW5pc2hlZCk7CisgICAgdmFyIGl0ZXJhdGlvbjIgPSBuZXcgQnVpbGRib3RJ
dGVyYXRpb24odGhpcy5xdWV1ZSwgMiwgZmluaXNoZWQpOworICAgIGl0ZXJhdGlvbjEucmV2aXNp
b24gPSB7ICJvcGVuU291cmNlIjogMzMwMTggfTsKKyAgICBpdGVyYXRpb24yLnJldmlzaW9uID0g
eyAib3BlblNvdXJjZSI6IDMzMDE5IH07CisgICAgaXRlcmF0aW9uMS5sb2FkZWQgPSB0cnVlOwor
ICAgIGl0ZXJhdGlvbjIubG9hZGVkID0gZmFsc2U7CisgICAgb2sodGhpcy5xdWV1ZS5jb21wYXJl
SXRlcmF0aW9uc0J5UmV2aXNpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwgMCwgImNvbXBh
cmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGxlc3MgdGhhbiIpOworICAgIG9rKHRoaXMucXVldWUu
Y29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+IDAs
ICJjb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zOiBncmVhdGVyIHRoYW4iKTsKKyAgICBzdHJp
Y3RFcXVhbCh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnMoaXRlcmF0aW9u
MiwgaXRlcmF0aW9uMiksIDAsICJjb21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zOiBlcXVhbCIp
OworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269398</attachid>
            <date>2016-01-20 16:15:23 -0800</date>
            <delta_ts>2016-01-20 16:16:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152913-20160120161455.patch</filename>
            <type>text/plain</type>
            <size>7558</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1Mzg4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWM0MDhmYzYwMDg2MDNiMWY5MDI0ZWQ3MzQ3ZDI4M2Vi
OTJlNjM3Ni4uOTk5YTM5M2UxZmQwYjQ5MmNkY2I0YTBhZWNjYTliMmQ2Nzk4ODQ5MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE2LTAxLTIwICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlZmFjdG9yIGNvbXBhcmVJdGVyYXRpb25zIHRvIHJlbW92ZSBkdXBsaWNhdGUgY29k
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjkx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUucHJv
dG90eXBlLmNvbXBhcmVJdGVyYXRpb25zKTogUmVmYWN0b3JlZCB0byByZW1vdmUgZHVwbGljYXRl
IGNvZGUuCisgICAgICAgIChCdWlsZGJvdFF1ZXVlLnByb3RvdHlwZS5zb3J0SXRlcmF0aW9ucyk6
IEFkZCBiaW5kaW5nIHRvIGNhbGwgdG8gY29tcGFyZUl0ZXJhdGlvbnMuCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanM6IEFkZGVkIHRlc3RzIGluIG9yZGVyIHRvIGVuc3Vy
ZQorICAgICAgICB0aGUgc2FtZSBiZWhhdmlvciBiZWZvcmUgYW5kIGFmdGVyIHJlZmFjdG9yLgor
CiAyMDE2LTAxLTIwICBEYW5hIEJ1cmthcnQgIDxkYnVya2FydEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQm90d2F0Y2hlcidzIGRhc2hib2FyZCBzaG91bGQgc2hvdyBhbiAnWCcgd2hlbiB0aGUgYnVp
bGQgaXMgYnJva2VuCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwppbmRleCBlNGE5
OTUxMWY4OTkyYjc0OGVlODgwZjMwMDU3MzZkODZkMmFkZGE4Li43NzE5OGQwYmRlNjM3ZmRhZjdl
YWY2ODViZTA4MzI2NzQwMmJlNmRlIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdFF1ZXVlLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUu
anMKQEAgLTI2OCwxMyArMjY4LDkgQEAgQnVpbGRib3RRdWV1ZS5wcm90b3R5cGUgPSB7CiAKICAg
ICBjb21wYXJlSXRlcmF0aW9uczogZnVuY3Rpb24oYSwgYikKICAgICB7Ci0gICAgICAgIHZhciBz
b3J0ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVwb3NpdG9yaWVzOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmllcy5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gc29ydGVkUmVwb3NpdG9yaWVzW2ldLm5h
bWU7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gYi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0g
LSBhLnJldmlzaW9uW3JlcG9zaXRvcnlOYW1lXTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQorICAgICAgICByZXN1bHQg
PSB0aGlzLmNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnMoYSwgYik7CisgICAgICAgIGlmIChy
ZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgICAgIC8vIEEgbG9hZGVk
IGl0ZXJhdGlvbiBtYXkgbm90IGhhdmUgcmV2aXNpb24gbnVtYmVycyBpZiBpdCBmYWlsZWQgZWFy
bHksIGJlZm9yZSBzdm4gc3RlcHMgZmluaXNoZWQuCiAgICAgICAgIHJlc3VsdCA9IGIubG9hZGVk
IC0gYS5sb2FkZWQ7CkBAIC0yOTksNiArMjk1LDYgQEAgQnVpbGRib3RRdWV1ZS5wcm90b3R5cGUg
PSB7CiAKICAgICBzb3J0SXRlcmF0aW9uczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhp
cy5pdGVyYXRpb25zLnNvcnQodGhpcy5jb21wYXJlSXRlcmF0aW9ucyk7CisgICAgICAgIHRoaXMu
aXRlcmF0aW9ucy5zb3J0KHRoaXMuY29tcGFyZUl0ZXJhdGlvbnMuYmluZCh0aGlzKSk7CiAgICAg
fQogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL3Rlc3RzL3Rlc3RzLmpzIGIv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanMKaW5kZXggMTkzNDAwODgxZWQwYjZi
MGFlMTM3MmEwZjBlODE2MmNhZTViNTVmZC4uNGE2ODMxM2JhNGVjNjc0MThmOTVhYTE4NjQxYmMw
OTkxYWU0Y2NmNyAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMu
anMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvdGVzdHMvdGVzdHMuanMKQEAgLTQyLDMgKzQy
LDk3IEBAIHRlc3QoIl9hcHBlbmRQZW5kaW5nUmV2aXNpb25Db3VudCIsIGZ1bmN0aW9uKCkKICAg
ICB2YXIgcmV2aXNpb25zQmVoaW5kID0gdmlldy5lbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoIm1lc3NhZ2UiKVswXS5pbm5lckhUTUwubWF0Y2goLy4qKFxkKykgcmV2aXNpb24ofHMpIGJl
aGluZC8pWzFdOwogICAgIGVxdWFsKHJldmlzaW9uc0JlaGluZCwgIjEiLCAiYXNzZXJ0IHJldmlz
aW9ucyBiZWhpbmQiKTsKIH0pOworCittb2R1bGUoIkJ1aWxkQm90UXVldWUiLCB7CisgICAgc2V0
dXA6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnF1ZXVlID0gbmV3IE1vY2tCdWlsZGJvdFF1
ZXVlKCk7CisgICAgICAgIHRoaXMucXVldWUuYnJhbmNoZXMgPSBbeworICAgICAgICAgICAgbmFt
ZTogInRydW5rIiwKKyAgICAgICAgICAgIHJlcG9zaXRvcnk6IHsKKyAgICAgICAgICAgICAgICBu
YW1lOiAib3BlblNvdXJjZSIsCisgICAgICAgICAgICB9CisgICAgICAgIH1dOworICAgIH0KK30p
OworCit0ZXN0KCJjb21wYXJlSXRlcmF0aW9ucyBieSByZXZpc2lvbnMiLCBmdW5jdGlvbigpCit7
CisgICAgdmFyIGZpbmlzaGVkID0gZmFsc2U7CisgICAgdmFyIGl0ZXJhdGlvbjEgPSBuZXcgQnVp
bGRib3RJdGVyYXRpb24odGhpcy5xdWV1ZSwgMSwgZmluaXNoZWQpOworICAgIHZhciBpdGVyYXRp
b24yID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVldWUsIDIsIGZpbmlzaGVkKTsKKyAg
ICBpdGVyYXRpb24xLnJldmlzaW9uID0geyAib3BlblNvdXJjZSI6IDMzMDE4IH07CisgICAgaXRl
cmF0aW9uMi5yZXZpc2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiAzMzAxOSB9OworICAgIGl0ZXJhdGlv
bjEubG9hZGVkID0gdHJ1ZTsKKyAgICBpdGVyYXRpb24yLmxvYWRlZCA9IHRydWU7CisgICAgb2so
dGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAs
ICJjb21wYXJlSXRlcmF0aW9uczogbGVzcyB0aGFuIik7CisgICAgb2sodGhpcy5xdWV1ZS5jb21w
YXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+IDAsICJjb21wYXJlSXRlcmF0
aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgc3RyaWN0RXF1YWwodGhpcy5xdWV1ZS5jb21wYXJl
SXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24yKSwgMCwgImNvbXBhcmVJdGVyYXRpb25z
OiBlcXVhbCIpOworfSk7CisKK3Rlc3QoImNvbXBhcmVJdGVyYXRpb25zIGJ5IGxvYWRlZCAob25l
IHJldmlzaW9uIG1pc3NpbmcpIiwgZnVuY3Rpb24oKQoreworICAgIHZhciBmaW5pc2hlZCA9IGZh
bHNlOworICAgIHZhciBpdGVyYXRpb24xID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMucXVl
dWUsIDEsIGZpbmlzaGVkKTsKKyAgICB2YXIgaXRlcmF0aW9uMiA9IG5ldyBCdWlsZGJvdEl0ZXJh
dGlvbih0aGlzLnF1ZXVlLCAyLCBmaW5pc2hlZCk7CisgICAgaXRlcmF0aW9uMS5yZXZpc2lvbiA9
IHt9OworICAgIGl0ZXJhdGlvbjIucmV2aXNpb24gPSB7ICJvcGVuU291cmNlIjogMzMwMTkgfTsK
KyAgICBpdGVyYXRpb24xLmxvYWRlZCA9IGZhbHNlOworICAgIGl0ZXJhdGlvbjIubG9hZGVkID0g
dHJ1ZTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjEsIGl0
ZXJhdGlvbjIpID4gMCwgImNvbXBhcmVJdGVyYXRpb25zOiBncmVhdGVyIHRoYW4iKTsKKyAgICBv
ayh0aGlzLnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwg
MCwgImNvbXBhcmVJdGVyYXRpb25zOiBsZXNzIHRoYW4iKTsKK30pOworCit0ZXN0KCJjb21wYXJl
SXRlcmF0aW9ucyBieSBsb2FkZWQgKHNhbWUgcmV2aXNpb24pIiwgZnVuY3Rpb24oKQoreworICAg
IHZhciBmaW5pc2hlZCA9IGZhbHNlOworICAgIHZhciBpdGVyYXRpb24xID0gbmV3IEJ1aWxkYm90
SXRlcmF0aW9uKHRoaXMucXVldWUsIDEsIGZpbmlzaGVkKTsKKyAgICB2YXIgaXRlcmF0aW9uMiA9
IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCAyLCBmaW5pc2hlZCk7CisgICAgaXRl
cmF0aW9uMS5yZXZpc2lvbiA9IHsgIm9wZW5Tb3VyY2UiOiAzMzAxOSB9OworICAgIGl0ZXJhdGlv
bjIucmV2aXNpb24gPSB7ICJvcGVuU291cmNlIjogMzMwMTkgfTsKKyAgICBpdGVyYXRpb24xLmxv
YWRlZCA9IGZhbHNlOworICAgIGl0ZXJhdGlvbjIubG9hZGVkID0gdHJ1ZTsKKyAgICBvayh0aGlz
LnF1ZXVlLmNvbXBhcmVJdGVyYXRpb25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4gMCwgImNv
bXBhcmVJdGVyYXRpb25zOiBncmVhdGVyIHRoYW4iKTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBh
cmVJdGVyYXRpb25zKGl0ZXJhdGlvbjIsIGl0ZXJhdGlvbjEpIDwgMCwgImNvbXBhcmVJdGVyYXRp
b25zOiBsZXNzIHRoYW4iKTsKK30pOworCit0ZXN0KCJjb21wYXJlSXRlcmF0aW9ucyBieSBpZCAo
cmV2aXNpb25zIG5vdCBzcGVjaWZpZWQpIiwgZnVuY3Rpb24oKQoreworICAgIHZhciBmaW5pc2hl
ZCA9IGZhbHNlOworICAgIHZhciBpdGVyYXRpb24xID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRo
aXMucXVldWUsIDEsIGZpbmlzaGVkKTsKKyAgICB2YXIgaXRlcmF0aW9uMiA9IG5ldyBCdWlsZGJv
dEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCAyLCBmaW5pc2hlZCk7CisgICAgaXRlcmF0aW9uMS5yZXZp
c2lvbiA9IHt9OworICAgIGl0ZXJhdGlvbjIucmV2aXNpb24gPSB7fTsKKyAgICBpdGVyYXRpb24x
LmxvYWRlZCA9IGZhbHNlOworICAgIGl0ZXJhdGlvbjIubG9hZGVkID0gZmFsc2U7CisgICAgb2so
dGhpcy5xdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24xKSA8IDAs
ICJjb21wYXJlSXRlcmF0aW9uczogbGVzcyB0aGFuIik7CisgICAgb2sodGhpcy5xdWV1ZS5jb21w
YXJlSXRlcmF0aW9ucyhpdGVyYXRpb24xLCBpdGVyYXRpb24yKSA+IDAsICJjb21wYXJlSXRlcmF0
aW9uczogZ3JlYXRlciB0aGFuIik7CisgICAgc3RyaWN0RXF1YWwodGhpcy5xdWV1ZS5jb21wYXJl
SXRlcmF0aW9ucyhpdGVyYXRpb24yLCBpdGVyYXRpb24yKSwgMCwgImNvbXBhcmVJdGVyYXRpb25z
OiBlcXVhbCIpOworfSk7CisKK3Rlc3QoImNvbXBhcmVJdGVyYXRpb25zIGJ5IGlkIChzYW1lIHJl
dmlzaW9uKSIsIGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgZmluaXNoZWQgPSBmYWxzZTsKKyAgICB2
YXIgaXRlcmF0aW9uMSA9IG5ldyBCdWlsZGJvdEl0ZXJhdGlvbih0aGlzLnF1ZXVlLCAxLCBmaW5p
c2hlZCk7CisgICAgdmFyIGl0ZXJhdGlvbjIgPSBuZXcgQnVpbGRib3RJdGVyYXRpb24odGhpcy5x
dWV1ZSwgMiwgZmluaXNoZWQpOworICAgIGl0ZXJhdGlvbjEucmV2aXNpb24gPSB7ICJvcGVuU291
cmNlIjogMzMwMTkgfTsKKyAgICBpdGVyYXRpb24yLnJldmlzaW9uID0geyAib3BlblNvdXJjZSI6
IDMzMDE5IH07CisgICAgaXRlcmF0aW9uMS5sb2FkZWQgPSBmYWxzZTsKKyAgICBpdGVyYXRpb24y
LmxvYWRlZCA9IGZhbHNlOworICAgIG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRl
cmF0aW9uMiwgaXRlcmF0aW9uMSkgPCAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGxlc3MgdGhhbiIp
OworICAgIG9rKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMSwgaXRlcmF0
aW9uMikgPiAwLCAiY29tcGFyZUl0ZXJhdGlvbnM6IGdyZWF0ZXIgdGhhbiIpOworICAgIHN0cmlj
dEVxdWFsKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9u
MiksIDAsICJjb21wYXJlSXRlcmF0aW9uczogZXF1YWwiKTsKK30pOworCit0ZXN0KCJjb21wYXJl
SXRlcmF0aW9uc0J5UmV2aXNpb25zIiwgZnVuY3Rpb24oKQoreworICAgIHZhciBmaW5pc2hlZCA9
IGZhbHNlOworICAgIHZhciBpdGVyYXRpb24xID0gbmV3IEJ1aWxkYm90SXRlcmF0aW9uKHRoaXMu
cXVldWUsIDEsIGZpbmlzaGVkKTsKKyAgICB2YXIgaXRlcmF0aW9uMiA9IG5ldyBCdWlsZGJvdEl0
ZXJhdGlvbih0aGlzLnF1ZXVlLCAyLCBmaW5pc2hlZCk7CisgICAgaXRlcmF0aW9uMS5yZXZpc2lv
biA9IHsgIm9wZW5Tb3VyY2UiOiAzMzAxOCB9OworICAgIGl0ZXJhdGlvbjIucmV2aXNpb24gPSB7
ICJvcGVuU291cmNlIjogMzMwMTkgfTsKKyAgICBpdGVyYXRpb24xLmxvYWRlZCA9IHRydWU7Cisg
ICAgaXRlcmF0aW9uMi5sb2FkZWQgPSBmYWxzZTsKKyAgICBvayh0aGlzLnF1ZXVlLmNvbXBhcmVJ
dGVyYXRpb25zQnlSZXZpc2lvbnMoaXRlcmF0aW9uMiwgaXRlcmF0aW9uMSkgPCAwLCAiY29tcGFy
ZUl0ZXJhdGlvbnNCeVJldmlzaW9uczogbGVzcyB0aGFuIik7CisgICAgb2sodGhpcy5xdWV1ZS5j
b21wYXJlSXRlcmF0aW9uc0J5UmV2aXNpb25zKGl0ZXJhdGlvbjEsIGl0ZXJhdGlvbjIpID4gMCwg
ImNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGdyZWF0ZXIgdGhhbiIpOworICAgIHN0cmlj
dEVxdWFsKHRoaXMucXVldWUuY29tcGFyZUl0ZXJhdGlvbnNCeVJldmlzaW9ucyhpdGVyYXRpb24y
LCBpdGVyYXRpb24yKSwgMCwgImNvbXBhcmVJdGVyYXRpb25zQnlSZXZpc2lvbnM6IGVxdWFsIik7
Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>