<?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>177467</bug_id>
          
          <creation_ts>2017-09-25 14:58:31 -0700</creation_ts>
          <short_desc>webkitpy: Notify parent process when a worker is spawned</short_desc>
          <delta_ts>2017-09-26 13:34:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352445</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-25 14:58:31 -0700</bug_when>
    <thetext>There are a few resources which don&apos;t copy well when multiprocessing.  File handles and sockets are the best examples.  We should provide a way for ports to release such resources after creating workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352450</commentid>
    <comment_count>1</comment_count>
      <attachid>321749</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-25 15:06:06 -0700</bug_when>
    <thetext>Created attachment 321749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352487</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-25 16:27:36 -0700</bug_when>
    <thetext>A few notes to this change after discussing with Dan Bates today (9-25) and exploring a few other techniques for doing this.

1) We could tie this behavior to the Worker.start(...) function of the worker, but function runs on the Worker, not the parent.

2) _Worker.start(...) could own this functionality, but this would mean that _Worker would need to own the release_worker_resources callback, I don&apos;t want to pass the callback more than we need to.

Note that we can&apos;t use the worker_factory callback because the worker_factory callback is actually run before we fork the process.  If we were going to place the callback here, we would need to lazily initialize whatever resources we were reseting in the workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352504</commentid>
    <comment_count>3</comment_count>
      <attachid>321769</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-25 16:59:38 -0700</bug_when>
    <thetext>Created attachment 321769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352505</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-25 17:00:35 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #3)
&gt; Created attachment 321769 [details]
&gt; Patch

Discussed this with Dan, he suggested cleaning up resources for each worker individually instead of all at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352692</commentid>
    <comment_count>5</comment_count>
      <attachid>321769</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 09:43:00 -0700</bug_when>
    <thetext>Comment on attachment 321769
Patch

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

&gt; Tools/Scripts/webkitpy/common/message_pool.py:65
&gt; +    def __init__(self, caller, worker_factory, num_workers, worker_startup_delay_secs=0.0, host=None, release_worker_resources=lambda worker_number: None):

Is it necessary to add a new argument to this constructor? It seems sufficient to make use of the existing |caller|. For our usage, the argument caller is an instance of LayoutTestRunner. And LayoutTestRunner has a reference to the port object. I suggest we add a method called _handle_did_spawn_worker to LayoutTestRunner that takes a worker_number and turns around and calls the port&apos;s did_spawn_worker passing the worker number. Then have MessagePool._start_workers() call self._caller.handle(&apos;did_spawn_worker&apos;, worker_number).

&gt; Tools/Scripts/webkitpy/port/base.py:1551
&gt; +    def release_worker_resources(self, worker_number):

Assuming we make the change I suggested above in MessagePool. It would be consistent to name this method did_spawn_worker.

&gt; Tools/Scripts/webkitpy/port/base.py:1552
&gt; +        # File handle or sockets instantiated in the parent process but managed by workers should be released on the parent process.

Assuming we name this function did_spawn_worker then I would add the following docstring, wrapping as appropriate:

# This is overridden by ports that need to do work in the parent process after a worker subprocess is spawned, such as closing file descriptors that were implicitly cloned to the worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352729</commentid>
    <comment_count>6</comment_count>
      <attachid>321769</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-26 10:38:07 -0700</bug_when>
    <thetext>Comment on attachment 321769
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/common/message_pool.py:65
&gt;&gt; +    def __init__(self, caller, worker_factory, num_workers, worker_startup_delay_secs=0.0, host=None, release_worker_resources=lambda worker_number: None):
&gt; 
&gt; Is it necessary to add a new argument to this constructor? It seems sufficient to make use of the existing |caller|. For our usage, the argument caller is an instance of LayoutTestRunner. And LayoutTestRunner has a reference to the port object. I suggest we add a method called _handle_did_spawn_worker to LayoutTestRunner that takes a worker_number and turns around and calls the port&apos;s did_spawn_worker passing the worker number. Then have MessagePool._start_workers() call self._caller.handle(&apos;did_spawn_worker&apos;, worker_number).

No, I did it this way to avoid needing to modify other users.

It turns out that there is only one other user, so I think your handler suggestion is cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352730</commentid>
    <comment_count>7</comment_count>
      <attachid>321838</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-26 10:40:14 -0700</bug_when>
    <thetext>Created attachment 321838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352739</commentid>
    <comment_count>8</comment_count>
      <attachid>321838</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 10:48:31 -0700</bug_when>
    <thetext>Comment on attachment 321838
Patch

Thank you for updating the patch, Jonathan.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352740</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 10:50:48 -0700</bug_when>
    <thetext>I updated the title of the bug. Please take care to update the ChangeLog before landing. Should we have a radar bug for this Bugzilla bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352746</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-26 11:00:16 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #9)
&gt; I updated the title of the bug. Please take care to update the ChangeLog
&gt; before landing. Should we have a radar bug for this Bugzilla bug?

I&apos;ll manually file it (along with a bug on the importer, since it didn&apos;t do it&apos;s job).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352747</commentid>
    <comment_count>11</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-26 11:00:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/34660124&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352748</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-26 11:00:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/34660194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352762</commentid>
    <comment_count>13</comment_count>
      <attachid>321847</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-09-26 11:18:41 -0700</bug_when>
    <thetext>Created attachment 321847
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352776</commentid>
    <comment_count>14</comment_count>
      <attachid>321847</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 11:59:01 -0700</bug_when>
    <thetext>Comment on attachment 321847
Patch for landing

Clearing flags on attachment: 321847

Committed r222510: &lt;http://trac.webkit.org/changeset/222510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352777</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 11:59:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321749</attachid>
            <date>2017-09-25 15:06:06 -0700</date>
            <delta_ts>2017-09-25 16:59:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177467-20170925150605.patch</filename>
            <type>text/plain</type>
            <size>6689</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjQ3MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDE3LTA5LTI1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUHJvdmlkZSBjYWxsYmFjayB0byByZWxlYXNlIHdvcmtl
ciBtYW5hZ2VkIHJlc291cmNlcyBvbiBwYXJlbnQgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiB3ZSBmb3JrIHRoZSBwYXJlbnQgcHJv
Y2VzcywgdGhlcmUgbWF5IGJlIHJlc291cmNlcyBpbiB0aGF0IHByb2Nlc3MKKyAgICAgICAgd2hp
Y2ggd29ya2VycyB3aWxsIHRha2Ugb3duZXJzaGlwIG9mLiBQcm92aWRlIGEgY2FsbGJhY2sgc28g
dGhhdCBwb3J0cworICAgICAgICBtYXkgcmVsZWFzZSBzdWNoIHJlc291cmNlcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weToKKyAgICAgICAgKGdl
dCk6IEFkZCByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMgY2FsbGJhY2suCisgICAgICAgIChfTWVz
c2FnZVBvb2wuX19pbml0X18pOiBEaXR0by4KKyAgICAgICAgKF9NZXNzYWdlUG9vbC5fc3RhcnRf
d29ya2Vycyk6IEFmdGVyIGFsbCB3b3JrZXJzIGFyZSBzdGFydGVkLCByZWxlYXNlIGFueQorICAg
ICAgICByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGUgcGFyZW50IHByb2Nlc3MgYnV0IG5vdyBvd25l
ZCBieSB0aGUgd29ya2VycywgdW5sZXNzCisgICAgICAgIHdlIGFyZSBydW5uaW5nIGlubGluZSwg
aW4gd2hpY2ggY2FzZSB0aGUgcGFyZW50IHByb2Nlc3MgaXMgc3RpbGwgdGhlIHdvcmtlci4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRf
dGVzdF9ydW5uZXIucHk6CisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLnJ1bl90ZXN0cyk6IERl
ZmluZSB0aGUgcmVsZWFzZV93b3JrZXJfcmVzb3VyY2VzIGNhbGxiYWNrLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5yZWxlYXNlX3dvcmtl
cl9yZXNvdXJjZXMpOiBBZGQgZnVuY3Rpb24gc28gdGhhdCBwb3J0cyBtYXkgcmVsZWFzZSBhbnkK
KyAgICAgICAgcmVzb3VyY2VzIGNyZWF0ZWQgb24gdGhlIHBhcmVudCBwcm9jZXNzIGJ1dCBtYW5h
Z2VkIGJ5IHRoZSB3b3JrZXJzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kZXZp
Y2UucHk6CisgICAgICAgIChEZXZpY2UucmVsZWFzZV93b3JrZXJfcmVzb3VyY2VzKTogQ2FsbCBy
ZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMgb24gdGhlCisgICAgICAgIHBsYXRmb3JtX2RldmljZSBp
ZiBzdWNoIGEgZnVuY3Rpb24gaXMgZGVmaW5lZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvaW9zLnB5OgorICAgICAgICAoSU9TUG9ydC5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMp
OiBDYWxsIHJlbGVhc2Vfd29ya2VyX3Jlc291cmNlcyBvbiBhbnkgaU9TCisgICAgICAgIGRldmlj
ZSBvYmplY3RzLgorCiAyMDE3LTA5LTI1ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBIaWdoIFNpZXJyYSBib3RzIHRvIGJ1aWxkYm90IGFuZCBkYXNo
Ym9hcmQuCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZXNzYWdlX3Bvb2wu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9w
b29sLnB5CShyZXZpc2lvbiAyMjIyOTUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9tZXNzYWdlX3Bvb2wucHkJKHdvcmtpbmcgY29weSkKQEAgLTU2LDE1ICs1NiwxNiBAQCBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHN0YWNrCiBfbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoX19uYW1lX18pCiAKIAotZGVmIGdldChjYWxsZXIsIHdvcmtlcl9mYWN0b3J5LCBudW1f
d29ya2Vycywgd29ya2VyX3N0YXJ0dXBfZGVsYXlfc2Vjcz0wLjAsIGhvc3Q9Tm9uZSk6CitkZWYg
Z2V0KGNhbGxlciwgd29ya2VyX2ZhY3RvcnksIG51bV93b3JrZXJzLCB3b3JrZXJfc3RhcnR1cF9k
ZWxheV9zZWNzPTAuMCwgaG9zdD1Ob25lLCByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXM9bGFtYmRh
OiBOb25lKToKICAgICAiIiJSZXR1cm5zIGFuIG9iamVjdCB0aGF0IGV4cG9zZXMgYSBydW4oKSBt
ZXRob2QgdGhhdCB0YWtlcyBhIGxpc3Qgb2YgdGVzdCBzaGFyZHMgYW5kIHJ1bnMgdGhlbSBpbiBw
YXJhbGxlbC4iIiIKLSAgICByZXR1cm4gX01lc3NhZ2VQb29sKGNhbGxlciwgd29ya2VyX2ZhY3Rv
cnksIG51bV93b3JrZXJzLCB3b3JrZXJfc3RhcnR1cF9kZWxheV9zZWNzLCBob3N0KQorICAgIHJl
dHVybiBfTWVzc2FnZVBvb2woY2FsbGVyLCB3b3JrZXJfZmFjdG9yeSwgbnVtX3dvcmtlcnMsIHdv
cmtlcl9zdGFydHVwX2RlbGF5X3NlY3MsIGhvc3QsIHJlbGVhc2Vfd29ya2VyX3Jlc291cmNlcykK
IAogCiBjbGFzcyBfTWVzc2FnZVBvb2wob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
Y2FsbGVyLCB3b3JrZXJfZmFjdG9yeSwgbnVtX3dvcmtlcnMsIHdvcmtlcl9zdGFydHVwX2RlbGF5
X3NlY3M9MC4wLCBob3N0PU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYWxsZXIsIHdv
cmtlcl9mYWN0b3J5LCBudW1fd29ya2Vycywgd29ya2VyX3N0YXJ0dXBfZGVsYXlfc2Vjcz0wLjAs
IGhvc3Q9Tm9uZSwgcmVsZWFzZV93b3JrZXJfcmVzb3VyY2VzPWxhbWJkYTogTm9uZSk6CiAgICAg
ICAgIHNlbGYuX2NhbGxlciA9IGNhbGxlcgogICAgICAgICBzZWxmLl93b3JrZXJfZmFjdG9yeSA9
IHdvcmtlcl9mYWN0b3J5CisgICAgICAgIHNlbGYuX3JlbGVhc2Vfd29ya2VyX3Jlc291cmNlcyA9
IHJlbGVhc2Vfd29ya2VyX3Jlc291cmNlcwogICAgICAgICBzZWxmLl9udW1fd29ya2VycyA9IG51
bV93b3JrZXJzCiAgICAgICAgIHNlbGYuX3dvcmtlcl9zdGFydHVwX2RlbGF5X3NlY3MgPSB3b3Jr
ZXJfc3RhcnR1cF9kZWxheV9zZWNzCiAgICAgICAgIHNlbGYuX3dvcmtlcnMgPSBbXQpAQCAtMTEw
LDYgKzExMSw5IEBAIGNsYXNzIF9NZXNzYWdlUG9vbChvYmplY3QpOgogICAgICAgICAgICAgaWYg
c2VsZi5fd29ya2VyX3N0YXJ0dXBfZGVsYXlfc2VjczoKICAgICAgICAgICAgICAgICB0aW1lLnNs
ZWVwKHNlbGYuX3dvcmtlcl9zdGFydHVwX2RlbGF5X3NlY3MpCiAKKyAgICAgICAgaWYgbm90IHNl
bGYuX3J1bm5pbmdfaW5saW5lOgorICAgICAgICAgICAgc2VsZi5fcmVsZWFzZV93b3JrZXJfcmVz
b3VyY2VzKCkKKwogICAgIGRlZiBfd29ya2VyX2xvZ19sZXZlbChzZWxmKToKICAgICAgICAgbG9n
X2xldmVsID0gbG9nZ2luZy5OT1RTRVQKICAgICAgICAgZm9yIGhhbmRsZXIgaW4gbG9nZ2luZy5y
b290LmhhbmRsZXJzOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5l
ci5weQkocmV2aXNpb24gMjIyMjk1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0xMTksNyArMTE5LDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAg
ICBzZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnU3RhcnRpbmcgJXMgLi4uJyAlIGdyYW1tYXIu
cGx1cmFsaXplKG51bV93b3JrZXJzLCAid29ya2VyIikpCiAKICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgd2l0aCBtZXNzYWdlX3Bvb2wuZ2V0KHNlbGYsIHNlbGYuX3dvcmtlcl9mYWN0b3J5LCBu
dW1fd29ya2Vycywgc2VsZi5fcG9ydC53b3JrZXJfc3RhcnR1cF9kZWxheV9zZWNzKCksIHNlbGYu
X3BvcnQuaG9zdCkgYXMgcG9vbDoKKyAgICAgICAgICAgIHdpdGggbWVzc2FnZV9wb29sLmdldChz
ZWxmLCBzZWxmLl93b3JrZXJfZmFjdG9yeSwgbnVtX3dvcmtlcnMsIHNlbGYuX3BvcnQud29ya2Vy
X3N0YXJ0dXBfZGVsYXlfc2VjcygpLCBzZWxmLl9wb3J0Lmhvc3QsIHJlbGVhc2Vfd29ya2VyX3Jl
c291cmNlcz1zZWxmLl9wb3J0LnJlbGVhc2Vfd29ya2VyX3Jlc291cmNlcykgYXMgcG9vbDoKICAg
ICAgICAgICAgICAgICBwb29sLnJ1bigoJ3Rlc3RfbGlzdCcsIHNoYXJkLm5hbWUsIHNoYXJkLnRl
c3RfaW5wdXRzKSBmb3Igc2hhcmQgaW4gYWxsX3NoYXJkcykKICAgICAgICAgZXhjZXB0IFRlc3RS
dW5JbnRlcnJ1cHRlZEV4Y2VwdGlvbiwgZToKICAgICAgICAgICAgIF9sb2cud2FybmluZyhlLnJl
YXNvbikKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CShyZXZpc2lvbiAyMjIy
OTUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQkod29ya2luZyBjb3B5
KQpAQCAtMTU0NywzICsxNTQ3LDcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgIGRlZiB0ZXN0
X2V4cGVjdGF0aW9uc19maWxlX3Bvc2l0aW9uKHNlbGYpOgogICAgICAgICAjIEJ5IGRlZmF1bHQg
YmFzZWxpbmUgc2VhcmNoIHBhdGggc2NoZW1hIGlzIGkuZS4gcG9ydC13azIgLT4gd2syIC0+IHBv
cnQgLT4gZ2VuZXJpYywgc28gcG9ydCBleHBlY3RhdGlvbnMgZmlsZSBpcyBhdCBzZWNvbmQgdG8g
bGFzdCBwb3NpdGlvbi4KICAgICAgICAgcmV0dXJuIDEKKworICAgIGRlZiByZWxlYXNlX3dvcmtl
cl9yZXNvdXJjZXMoc2VsZik6CisgICAgICAgICMgRmlsZSBoYW5kbGUgb3Igc29ja2V0cyBpbnN0
YW50aWF0ZWQgaW4gdGhlIHBhcmVudCBwcm9jZXNzIGJ1dCBtYW5hZ2VkIGJ5IHdvcmtlcnMgc2hv
dWxkIGJlIHJlbGVhc2VkIG9uIHRoZSBwYXJlbnQgcHJvY2Vzcy4KKyAgICAgICAgcGFzcwpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RldmljZS5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGV2aWNlLnB5CShyZXZpc2lvbiAyMjIyOTUpCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGV2aWNlLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC02OCw2ICs2OCwxMSBAQCBjbGFzcyBEZXZpY2Uob2JqZWN0KToKICAgICAgICAgICAgIHJldHVy
biBzZWxmLnBsYXRmb3JtX2RldmljZS5zeW1ib2xpY2F0ZV9jcmFzaF9sb2dfaWZfbmVlZGVkKHBh
dGgpCiAgICAgICAgIHJldHVybiBzZWxmLmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkK
IAorICAgIGRlZiByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMoc2VsZik6CisgICAgICAgIGlmIGhh
c2F0dHIoc2VsZi5wbGF0Zm9ybV9kZXZpY2UsICdyZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMnKToK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLnBsYXRmb3JtX2RldmljZS5yZWxlYXNlX3dvcmtlcl9y
ZXNvdXJjZXMoKQorICAgICAgICByZXR1cm4gTm9uZQorCiAgICAgQHByb3BlcnR5CiAgICAgZGVm
IGV4ZWN1dGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYucGxhdGZvcm1fZGV2aWNlLmV4
ZWN1dGl2ZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CShyZXZpc2lvbiAyMjIy
OTUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0yMDgsMyArMjA4LDkgQEAgY2xhc3MgSU9TUG9ydChEYXJ3aW5Qb3J0KToKICAgICAgICAg
ICAgICAgICBfbG9nLmVycm9yKCctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLScpCiAKICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignTXVsdGlw
bGUgZmFpbHVyZXMgd2hlbiB0ZWFyZG93biBkZXZpY2VzJykKKworICAgIGRlZiByZWxlYXNlX3dv
cmtlcl9yZXNvdXJjZXMoc2VsZik6CisgICAgICAgIHN1cGVyKElPU1BvcnQsIHNlbGYpLnJlbGVh
c2Vfd29ya2VyX3Jlc291cmNlcygpCisKKyAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYuY2hp
bGRfcHJvY2Vzc2VzKCkpOgorICAgICAgICAgICAgc2VsZi50YXJnZXRfaG9zdChpKS5yZWxlYXNl
X3dvcmtlcl9yZXNvdXJjZXMoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321769</attachid>
            <date>2017-09-25 16:59:38 -0700</date>
            <delta_ts>2017-09-26 10:40:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177467-20170925165937.patch</filename>
            <type>text/plain</type>
            <size>6904</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjQ4MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDE3LTA5LTI1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUHJvdmlkZSBjYWxsYmFjayB0byByZWxlYXNlIHdvcmtl
ciBtYW5hZ2VkIHJlc291cmNlcyBvbiBwYXJlbnQgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiB3ZSBmb3JrIHRoZSBwYXJlbnQgcHJv
Y2VzcywgdGhlcmUgbWF5IGJlIHJlc291cmNlcyBpbiB0aGF0IHByb2Nlc3MKKyAgICAgICAgd2hp
Y2ggd29ya2VycyB3aWxsIHRha2Ugb3duZXJzaGlwIG9mLiBQcm92aWRlIGEgY2FsbGJhY2sgc28g
dGhhdCBwb3J0cworICAgICAgICBtYXkgcmVsZWFzZSBzdWNoIHJlc291cmNlcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weToKKyAgICAgICAgKGdl
dCk6IEFkZCByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMgY2FsbGJhY2suCisgICAgICAgIChfTWVz
c2FnZVBvb2wuX19pbml0X18pOiBEaXR0by4KKyAgICAgICAgKF9NZXNzYWdlUG9vbC5fc3RhcnRf
d29ya2Vycyk6IEFmdGVyIGFsbCB3b3JrZXJzIGFyZSBzdGFydGVkLCByZWxlYXNlIGFueQorICAg
ICAgICByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGUgcGFyZW50IHByb2Nlc3MgYnV0IG5vdyBvd25l
ZCBieSB0aGUgd29ya2VycywgdW5sZXNzCisgICAgICAgIHdlIGFyZSBydW5uaW5nIGlubGluZSwg
aW4gd2hpY2ggY2FzZSB0aGUgcGFyZW50IHByb2Nlc3MgaXMgc3RpbGwgdGhlIHdvcmtlci4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRf
dGVzdF9ydW5uZXIucHk6CisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLnJ1bl90ZXN0cyk6IERl
ZmluZSB0aGUgcmVsZWFzZV93b3JrZXJfcmVzb3VyY2VzIGNhbGxiYWNrLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5yZWxlYXNlX3dvcmtl
cl9yZXNvdXJjZXMpOiBBZGQgZnVuY3Rpb24gc28gdGhhdCBwb3J0cyBtYXkgcmVsZWFzZSBhbnkK
KyAgICAgICAgcmVzb3VyY2VzIGNyZWF0ZWQgb24gdGhlIHBhcmVudCBwcm9jZXNzIGJ1dCBtYW5h
Z2VkIGJ5IHRoZSB3b3JrZXJzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kZXZp
Y2UucHk6CisgICAgICAgIChEZXZpY2UucmVsZWFzZV93b3JrZXJfcmVzb3VyY2VzKTogQ2FsbCBy
ZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMgb24gdGhlCisgICAgICAgIHBsYXRmb3JtX2RldmljZSBp
ZiBzdWNoIGEgZnVuY3Rpb24gaXMgZGVmaW5lZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvaW9zLnB5OgorICAgICAgICAoSU9TUG9ydC5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMp
OiBDYWxsIHJlbGVhc2Vfd29ya2VyX3Jlc291cmNlcyBvbiBhbnkgaU9TCisgICAgICAgIGRldmlj
ZSBvYmplY3RzLgorCiAyMDE3LTA5LTI1ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBIaWdoIFNpZXJyYSBib3RzIHRvIGJ1aWxkYm90IGFuZCBkYXNo
Ym9hcmQuCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZXNzYWdlX3Bvb2wu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9w
b29sLnB5CShyZXZpc2lvbiAyMjI0ODApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9tZXNzYWdlX3Bvb2wucHkJKHdvcmtpbmcgY29weSkKQEAgLTU2LDE1ICs1NiwxNiBAQCBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHN0YWNrCiBfbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoX19uYW1lX18pCiAKIAotZGVmIGdldChjYWxsZXIsIHdvcmtlcl9mYWN0b3J5LCBudW1f
d29ya2Vycywgd29ya2VyX3N0YXJ0dXBfZGVsYXlfc2Vjcz0wLjAsIGhvc3Q9Tm9uZSk6CitkZWYg
Z2V0KGNhbGxlciwgd29ya2VyX2ZhY3RvcnksIG51bV93b3JrZXJzLCB3b3JrZXJfc3RhcnR1cF9k
ZWxheV9zZWNzPTAuMCwgaG9zdD1Ob25lLCByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXM9bGFtYmRh
IHdvcmtlcl9udW1iZXI6IE5vbmUpOgogICAgICIiIlJldHVybnMgYW4gb2JqZWN0IHRoYXQgZXhw
b3NlcyBhIHJ1bigpIG1ldGhvZCB0aGF0IHRha2VzIGEgbGlzdCBvZiB0ZXN0IHNoYXJkcyBhbmQg
cnVucyB0aGVtIGluIHBhcmFsbGVsLiIiIgotICAgIHJldHVybiBfTWVzc2FnZVBvb2woY2FsbGVy
LCB3b3JrZXJfZmFjdG9yeSwgbnVtX3dvcmtlcnMsIHdvcmtlcl9zdGFydHVwX2RlbGF5X3NlY3Ms
IGhvc3QpCisgICAgcmV0dXJuIF9NZXNzYWdlUG9vbChjYWxsZXIsIHdvcmtlcl9mYWN0b3J5LCBu
dW1fd29ya2Vycywgd29ya2VyX3N0YXJ0dXBfZGVsYXlfc2VjcywgaG9zdCwgcmVsZWFzZV93b3Jr
ZXJfcmVzb3VyY2VzKQogCiAKIGNsYXNzIF9NZXNzYWdlUG9vbChvYmplY3QpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBjYWxsZXIsIHdvcmtlcl9mYWN0b3J5LCBudW1fd29ya2Vycywgd29ya2Vy
X3N0YXJ0dXBfZGVsYXlfc2Vjcz0wLjAsIGhvc3Q9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGNhbGxlciwgd29ya2VyX2ZhY3RvcnksIG51bV93b3JrZXJzLCB3b3JrZXJfc3RhcnR1cF9k
ZWxheV9zZWNzPTAuMCwgaG9zdD1Ob25lLCByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXM9bGFtYmRh
IHdvcmtlcl9udW1iZXI6IE5vbmUpOgogICAgICAgICBzZWxmLl9jYWxsZXIgPSBjYWxsZXIKICAg
ICAgICAgc2VsZi5fd29ya2VyX2ZhY3RvcnkgPSB3b3JrZXJfZmFjdG9yeQorICAgICAgICBzZWxm
Ll9yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMgPSByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMKICAg
ICAgICAgc2VsZi5fbnVtX3dvcmtlcnMgPSBudW1fd29ya2VycwogICAgICAgICBzZWxmLl93b3Jr
ZXJfc3RhcnR1cF9kZWxheV9zZWNzID0gd29ya2VyX3N0YXJ0dXBfZGVsYXlfc2VjcwogICAgICAg
ICBzZWxmLl93b3JrZXJzID0gW10KQEAgLTEwNyw2ICsxMDgsOCBAQCBjbGFzcyBfTWVzc2FnZVBv
b2wob2JqZWN0KToKICAgICAgICAgICAgIHdvcmtlciA9IF9Xb3JrZXIoaG9zdCwgc2VsZi5fbWVz
c2FnZXNfdG9fbWFuYWdlciwgc2VsZi5fbWVzc2FnZXNfdG9fd29ya2VyLCBzZWxmLl93b3JrZXJf
ZmFjdG9yeSwgd29ya2VyX251bWJlciwgc2VsZi5fcnVubmluZ19pbmxpbmUsIHNlbGYgaWYgc2Vs
Zi5fcnVubmluZ19pbmxpbmUgZWxzZSBOb25lLCBzZWxmLl93b3JrZXJfbG9nX2xldmVsKCkpCiAg
ICAgICAgICAgICBzZWxmLl93b3JrZXJzLmFwcGVuZCh3b3JrZXIpCiAgICAgICAgICAgICB3b3Jr
ZXIuc3RhcnQoKQorICAgICAgICAgICAgaWYgbm90IHNlbGYuX3J1bm5pbmdfaW5saW5lOgorICAg
ICAgICAgICAgICAgIHNlbGYuX3JlbGVhc2Vfd29ya2VyX3Jlc291cmNlcyh3b3JrZXJfbnVtYmVy
KQogICAgICAgICAgICAgaWYgc2VsZi5fd29ya2VyX3N0YXJ0dXBfZGVsYXlfc2VjczoKICAgICAg
ICAgICAgICAgICB0aW1lLnNsZWVwKHNlbGYuX3dvcmtlcl9zdGFydHVwX2RlbGF5X3NlY3MpCiAK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xh
eW91dF90ZXN0X3J1bm5lci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkJKHJldmlzaW9u
IDIyMjQ4MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQkod29ya2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw3
IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcHJpbnRl
ci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5nICVzIC4uLicgJSBncmFtbWFyLnBsdXJhbGl6ZShudW1f
d29ya2VycywgIndvcmtlciIpKQogCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHdpdGggbWVz
c2FnZV9wb29sLmdldChzZWxmLCBzZWxmLl93b3JrZXJfZmFjdG9yeSwgbnVtX3dvcmtlcnMsIHNl
bGYuX3BvcnQud29ya2VyX3N0YXJ0dXBfZGVsYXlfc2VjcygpLCBzZWxmLl9wb3J0Lmhvc3QpIGFz
IHBvb2w6CisgICAgICAgICAgICB3aXRoIG1lc3NhZ2VfcG9vbC5nZXQoc2VsZiwgc2VsZi5fd29y
a2VyX2ZhY3RvcnksIG51bV93b3JrZXJzLCBzZWxmLl9wb3J0Lndvcmtlcl9zdGFydHVwX2RlbGF5
X3NlY3MoKSwgc2VsZi5fcG9ydC5ob3N0LCByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXM9c2VsZi5f
cG9ydC5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMpIGFzIHBvb2w6CiAgICAgICAgICAgICAgICAg
cG9vbC5ydW4oKCd0ZXN0X2xpc3QnLCBzaGFyZC5uYW1lLCBzaGFyZC50ZXN0X2lucHV0cykgZm9y
IHNoYXJkIGluIGFsbF9zaGFyZHMpCiAgICAgICAgIGV4Y2VwdCBUZXN0UnVuSW50ZXJydXB0ZWRF
eGNlcHRpb24sIGU6CiAgICAgICAgICAgICBfbG9nLndhcm5pbmcoZS5yZWFzb24pCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQkocmV2aXNpb24gMjIyNDgwKQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTE1NDcsMyAr
MTU0Nyw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnNf
ZmlsZV9wb3NpdGlvbihzZWxmKToKICAgICAgICAgIyBCeSBkZWZhdWx0IGJhc2VsaW5lIHNlYXJj
aCBwYXRoIHNjaGVtYSBpcyBpLmUuIHBvcnQtd2syIC0+IHdrMiAtPiBwb3J0IC0+IGdlbmVyaWMs
IHNvIHBvcnQgZXhwZWN0YXRpb25zIGZpbGUgaXMgYXQgc2Vjb25kIHRvIGxhc3QgcG9zaXRpb24u
CiAgICAgICAgIHJldHVybiAxCisKKyAgICBkZWYgcmVsZWFzZV93b3JrZXJfcmVzb3VyY2VzKHNl
bGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICAjIEZpbGUgaGFuZGxlIG9yIHNvY2tldHMgaW5z
dGFudGlhdGVkIGluIHRoZSBwYXJlbnQgcHJvY2VzcyBidXQgbWFuYWdlZCBieSB3b3JrZXJzIHNo
b3VsZCBiZSByZWxlYXNlZCBvbiB0aGUgcGFyZW50IHByb2Nlc3MuCisgICAgICAgIHBhc3MKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kZXZpY2UucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RldmljZS5weQkocmV2aXNpb24gMjIyNDgwKQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RldmljZS5weQkod29ya2luZyBjb3B5KQpA
QCAtNjgsNiArNjgsMTEgQEAgY2xhc3MgRGV2aWNlKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1
cm4gc2VsZi5wbGF0Zm9ybV9kZXZpY2Uuc3ltYm9saWNhdGVfY3Jhc2hfbG9nX2lmX25lZWRlZChw
YXRoKQogICAgICAgICByZXR1cm4gc2VsZi5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHBhdGgp
CiAKKyAgICBkZWYgcmVsZWFzZV93b3JrZXJfcmVzb3VyY2VzKHNlbGYpOgorICAgICAgICBpZiBo
YXNhdHRyKHNlbGYucGxhdGZvcm1fZGV2aWNlLCAncmVsZWFzZV93b3JrZXJfcmVzb3VyY2VzJyk6
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wbGF0Zm9ybV9kZXZpY2UucmVsZWFzZV93b3JrZXJf
cmVzb3VyY2VzKCkKKyAgICAgICAgcmV0dXJuIE5vbmUKKwogICAgIEBwcm9wZXJ0eQogICAgIGRl
ZiBleGVjdXRpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnBsYXRmb3JtX2RldmljZS5l
eGVjdXRpdmUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3MucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5weQkocmV2aXNpb24gMjIy
NDgwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5weQkod29ya2luZyBjb3B5
KQpAQCAtMjA4LDMgKzIwOCw4IEBAIGNsYXNzIElPU1BvcnQoRGFyd2luUG9ydCk6CiAgICAgICAg
ICAgICAgICAgX2xvZy5lcnJvcignLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0nKQogCiAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ011bHRp
cGxlIGZhaWx1cmVzIHdoZW4gdGVhcmRvd24gZGV2aWNlcycpCisKKyAgICBkZWYgcmVsZWFzZV93
b3JrZXJfcmVzb3VyY2VzKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICBzdXBlcihJT1NQ
b3J0LCBzZWxmKS5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMod29ya2VyX251bWJlcikKKworICAg
ICAgICBzZWxmLnRhcmdldF9ob3N0KHdvcmtlcl9udW1iZXIpLnJlbGVhc2Vfd29ya2VyX3Jlc291
cmNlcygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321838</attachid>
            <date>2017-09-26 10:40:14 -0700</date>
            <delta_ts>2017-09-26 11:18:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177467-20170926104013.patch</filename>
            <type>text/plain</type>
            <size>6443</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjUwMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMzIEBACisyMDE3LTA5LTI1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUHJvdmlkZSBjYWxsYmFjayB0byByZWxlYXNlIHdvcmtl
ciBtYW5hZ2VkIHJlc291cmNlcyBvbiBwYXJlbnQgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiB3ZSBmb3JrIHRoZSBwYXJlbnQgcHJv
Y2VzcywgdGhlcmUgbWF5IGJlIHJlc291cmNlcyBpbiB0aGF0IHByb2Nlc3MKKyAgICAgICAgd2hp
Y2ggd29ya2VycyB3aWxsIHRha2Ugb3duZXJzaGlwIG9mLiBOb3RpZnkgcG9ydHMgd2hlbiBhIG5l
dyB3b3JrZXIgaXMgY3JlYXRlZAorICAgICAgICBzbyB0aGF0IHRoZXNlIHJlc291cmNlcyBjYW4g
YmUgY29ycmVjdGx5IG1hbmFnZWQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9tZXNzYWdlX3Bvb2wucHk6CisgICAgICAgIChfTWVzc2FnZVBvb2wuX3N0YXJ0X3dvcmtlcnMp
OiBBZnRlciBhbGwgd29ya2VycyBhcmUgc3RhcnRlZCwgbm90aWZ5IHRoZSBjYWxsZXIKKyAgICAg
ICAgdGhhdCBhIHdvcmtlciBoYXMgYmVlbiBjcmVhdGVkLCB1bmxlc3Mgd2UgYXJlIHJ1bm5pbmcg
aW5saW5lLCBpbiB3aGljaCBjYXNlIHRoZQorICAgICAgICBwYXJlbnQgcHJvY2VzcyBpcyBzdGls
bCB0aGUgd29ya2VyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weToKKyAgICAgICAgKExheW91dFRlc3RSdW5u
ZXIuX2hhbmRsZV9kaWRfc3Bhd25fd29ya2VyKTogTm90aWZ5IHRoZSBwb3J0IHRoYXQgYSB3b3Jr
ZXIgcHJvY2VzcworICAgICAgICBoYXMgYmVlbiBjcmVhdGVkLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5kaWRfc3Bhd25fd29ya2VyKTog
QWRkIGZ1bmN0aW9uIHNvIHRoYXQgcG9ydHMgbWF5IG1hbmFnZSBhbnkKKyAgICAgICAgcmVzb3Vy
Y2VzIGNyZWF0ZWQgb24gdGhlIHBhcmVudCBwcm9jZXNzIGJ1dCBtYW5hZ2VkIGJ5IHRoZSBwcm92
aWRlZCB3b3JrZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2RldmljZS5weToK
KyAgICAgICAgKERldmljZS5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMpOiBDYWxsIHJlbGVhc2Vf
d29ya2VyX3Jlc291cmNlcyBvbiB0aGUKKyAgICAgICAgcGxhdGZvcm1fZGV2aWNlIGlmIHN1Y2gg
YSBmdW5jdGlvbiBpcyBkZWZpbmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9p
b3MucHk6CisgICAgICAgIChJT1NQb3J0LmRpZF9zcGF3bl93b3JrZXIpOiBSZWxlYXNlIGFueSB3
b3JrZXIgcmVzb3VyY2VzIG9uIHRoZSBpT1MKKyAgICAgICAgZGV2aWNlIG9iamVjdCBhc3NvY2lh
dGVkIHdpdGggdGhlIHNwYXduZWQgd29ya2VyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dGVzdC9ydW5uZXIucHk6CisgICAgICAgIChSdW5uZXIuaGFuZGxlKTogSWdub3JlIHRoZSBkaWRf
c3Bhd25fd29ya2VyIG1lc3NhZ2UgZHVyaW5nIHRlc3RpbmcuCisKIDIwMTctMDktMjYgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dICd3ZWJraXQt
cGF0Y2ggY2xlYW4nIGlzIGZhaWxpbmcgb24gYm90LgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbWVzc2FnZV9wb29sLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQkocmV2aXNpb24gMjIyNDgwKQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9wb29sLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0xMDcsNiArMTA3LDggQEAgY2xhc3MgX01lc3NhZ2VQb29sKG9iamVjdCk6CiAgICAgICAg
ICAgICB3b3JrZXIgPSBfV29ya2VyKGhvc3QsIHNlbGYuX21lc3NhZ2VzX3RvX21hbmFnZXIsIHNl
bGYuX21lc3NhZ2VzX3RvX3dvcmtlciwgc2VsZi5fd29ya2VyX2ZhY3RvcnksIHdvcmtlcl9udW1i
ZXIsIHNlbGYuX3J1bm5pbmdfaW5saW5lLCBzZWxmIGlmIHNlbGYuX3J1bm5pbmdfaW5saW5lIGVs
c2UgTm9uZSwgc2VsZi5fd29ya2VyX2xvZ19sZXZlbCgpKQogICAgICAgICAgICAgc2VsZi5fd29y
a2Vycy5hcHBlbmQod29ya2VyKQogICAgICAgICAgICAgd29ya2VyLnN0YXJ0KCkKKyAgICAgICAg
ICAgIGlmIG5vdCBzZWxmLl9ydW5uaW5nX2lubGluZToKKyAgICAgICAgICAgICAgICBzZWxmLl9j
YWxsZXIuaGFuZGxlKCdkaWRfc3Bhd25fd29ya2VyJywgd29ya2VyX251bWJlcikKICAgICAgICAg
ICAgIGlmIHNlbGYuX3dvcmtlcl9zdGFydHVwX2RlbGF5X3NlY3M6CiAgICAgICAgICAgICAgICAg
dGltZS5zbGVlcChzZWxmLl93b3JrZXJfc3RhcnR1cF9kZWxheV9zZWNzKQogCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9y
dW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CShyZXZpc2lvbiAyMjI0ODApCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRf
dGVzdF9ydW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw2ICsxNDEsOSBAQCBjbGFzcyBM
YXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICByZXN1bHRzX2RpcmVjdG9yeSA9
IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgJ3JldHJpZXMn
KQogICAgICAgICByZXR1cm4gV29ya2VyKHdvcmtlcl9jb25uZWN0aW9uLCByZXN1bHRzX2RpcmVj
dG9yeSwgc2VsZi5fb3B0aW9ucykKIAorICAgIGRlZiBfaGFuZGxlX2RpZF9zcGF3bl93b3JrZXIo
c2VsZiwgd29ya2VyX251bWJlcik6CisgICAgICAgIHNlbGYuX3BvcnQuZGlkX3NwYXduX3dvcmtl
cih3b3JrZXJfbnVtYmVyKQorCiAgICAgZGVmIF9tYXJrX2ludGVycnVwdGVkX3Rlc3RzX2FzX3Nr
aXBwZWQoc2VsZiwgcnVuX3Jlc3VsdHMpOgogICAgICAgICBmb3IgdGVzdF9pbnB1dCBpbiBzZWxm
Ll90ZXN0X2lucHV0czoKICAgICAgICAgICAgIGlmIHRlc3RfaW5wdXQudGVzdF9uYW1lIG5vdCBp
biBydW5fcmVzdWx0cy5yZXN1bHRzX2J5X25hbWU6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvYmFzZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvYmFzZS5weQkocmV2aXNpb24gMjIyNDgwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2Jhc2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTE1NDcsMyArMTU0Nyw4IEBAIGNsYXNzIFBv
cnQob2JqZWN0KToKICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnNfZmlsZV9wb3NpdGlvbihzZWxm
KToKICAgICAgICAgIyBCeSBkZWZhdWx0IGJhc2VsaW5lIHNlYXJjaCBwYXRoIHNjaGVtYSBpcyBp
LmUuIHBvcnQtd2syIC0+IHdrMiAtPiBwb3J0IC0+IGdlbmVyaWMsIHNvIHBvcnQgZXhwZWN0YXRp
b25zIGZpbGUgaXMgYXQgc2Vjb25kIHRvIGxhc3QgcG9zaXRpb24uCiAgICAgICAgIHJldHVybiAx
CisKKyAgICBkZWYgZGlkX3NwYXduX3dvcmtlcihzZWxmLCB3b3JrZXJfbnVtYmVyKToKKyAgICAg
ICAgIyBUaGlzIGlzIG92ZXJyaWRkZW4gYnkgcG9ydHMgdGhhdCBuZWVkIHRvIGRvIHdvcmsgaW4g
dGhlIHBhcmVudCBwcm9jZXNzIGFmdGVyIGEgd29ya2VyIHN1YnByb2Nlc3MgaXMgc3Bhd25lZCwK
KyAgICAgICAgIyBzdWNoIGFzIGNsb3NpbmcgZmlsZSBkZXNjcmlwdG9ycyB0aGF0IHdlcmUgaW1w
bGljaXRseSBjbG9uZWQgdG8gdGhlIHdvcmtlci4KKyAgICAgICAgcGFzcwpJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2RldmljZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZGV2aWNlLnB5CShyZXZpc2lvbiAyMjI0ODApCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZGV2aWNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2
OCwxMSBAQCBjbGFzcyBEZXZpY2Uob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBzZWxmLnBs
YXRmb3JtX2RldmljZS5zeW1ib2xpY2F0ZV9jcmFzaF9sb2dfaWZfbmVlZGVkKHBhdGgpCiAgICAg
ICAgIHJldHVybiBzZWxmLmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkKIAorICAgIGRl
ZiByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMoc2VsZik6CisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
Zi5wbGF0Zm9ybV9kZXZpY2UsICdyZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMnKToKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmLnBsYXRmb3JtX2RldmljZS5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMo
KQorICAgICAgICByZXR1cm4gTm9uZQorCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGV4ZWN1dGl2
ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYucGxhdGZvcm1fZGV2aWNlLmV4ZWN1dGl2ZQpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CShyZXZpc2lvbiAyMjI0ODApCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMDgs
MyArMjA4LDggQEAgY2xhc3MgSU9TUG9ydChEYXJ3aW5Qb3J0KToKICAgICAgICAgICAgICAgICBf
bG9nLmVycm9yKCctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLScpCiAKICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignTXVsdGlwbGUgZmFpbHVy
ZXMgd2hlbiB0ZWFyZG93biBkZXZpY2VzJykKKworICAgIGRlZiBkaWRfc3Bhd25fd29ya2VyKHNl
bGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICBzdXBlcihJT1NQb3J0LCBzZWxmKS5kaWRfc3Bh
d25fd29ya2VyKHdvcmtlcl9udW1iZXIpCisKKyAgICAgICAgc2VsZi50YXJnZXRfaG9zdCh3b3Jr
ZXJfbnVtYmVyKS5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMoKQpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90ZXN0L3J1bm5lci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rlc3QvcnVubmVyLnB5CShyZXZpc2lvbiAyMjI0ODApCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rlc3QvcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1MiwxMCBA
QCBjbGFzcyBSdW5uZXIob2JqZWN0KToKICAgICAgICAgd2l0aCBtZXNzYWdlX3Bvb2wuZ2V0KHNl
bGYsIHNlbGYud29ya2VyX2ZhY3RvcnksIG51bV93b3JrZXJzKSBhcyBwb29sOgogICAgICAgICAg
ICAgcG9vbC5ydW4oKCd0ZXN0JywgdGVzdF9uYW1lKSBmb3IgdGVzdF9uYW1lIGluIHRlc3RfbmFt
ZXMpCiAKLSAgICBkZWYgaGFuZGxlKHNlbGYsIG1lc3NhZ2VfbmFtZSwgc291cmNlLCB0ZXN0X25h
bWUsIGRlbGF5PU5vbmUsIGZhaWx1cmVzPU5vbmUsIGVycm9ycz1Ob25lKToKKyAgICBkZWYgaGFu
ZGxlKHNlbGYsIG1lc3NhZ2VfbmFtZSwgc291cmNlLCB0ZXN0X25hbWU9Tm9uZSwgZGVsYXk9Tm9u
ZSwgZmFpbHVyZXM9Tm9uZSwgZXJyb3JzPU5vbmUpOgorICAgICAgICBpZiBtZXNzYWdlX25hbWUg
PT0gJ2RpZF9zcGF3bl93b3JrZXInOgorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgaWYg
bWVzc2FnZV9uYW1lID09ICdzdGFydGVkX3Rlc3QnOgogICAgICAgICAgICAgc2VsZi5wcmludGVy
LnByaW50X3N0YXJ0ZWRfdGVzdChzb3VyY2UsIHRlc3RfbmFtZSkKICAgICAgICAgICAgIHJldHVy
bgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321847</attachid>
            <date>2017-09-26 11:18:41 -0700</date>
            <delta_ts>2017-09-26 11:59:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-177467-20170926111841.patch</filename>
            <type>text/plain</type>
            <size>6473</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjUwNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM0IEBACisyMDE3LTA5LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogTm90aWZ5IHBhcmVudCBwcm9jZXNzIHdoZW4gYSB3b3Jr
ZXIgaXMgc3Bhd25lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc3NDY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDY2MDE5ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgV2hlbiB3ZSBmb3JrIHRoZSBw
YXJlbnQgcHJvY2VzcywgdGhlcmUgbWF5IGJlIHJlc291cmNlcyBpbiB0aGF0IHByb2Nlc3MKKyAg
ICAgICAgd2hpY2ggd29ya2VycyB3aWxsIHRha2Ugb3duZXJzaGlwIG9mLiBOb3RpZnkgcG9ydHMg
d2hlbiBhIG5ldyB3b3JrZXIgaXMgY3JlYXRlZAorICAgICAgICBzbyB0aGF0IHRoZXNlIHJlc291
cmNlcyBjYW4gYmUgY29ycmVjdGx5IG1hbmFnZWQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9tZXNzYWdlX3Bvb2wucHk6CisgICAgICAgIChfTWVzc2FnZVBvb2wuX3N0YXJ0
X3dvcmtlcnMpOiBBZnRlciBhbGwgd29ya2VycyBhcmUgc3RhcnRlZCwgbm90aWZ5IHRoZSBjYWxs
ZXIKKyAgICAgICAgdGhhdCBhIHdvcmtlciBoYXMgYmVlbiBjcmVhdGVkLCB1bmxlc3Mgd2UgYXJl
IHJ1bm5pbmcgaW5saW5lLCBpbiB3aGljaCBjYXNlIHRoZQorICAgICAgICBwYXJlbnQgcHJvY2Vz
cyBpcyBzdGlsbCB0aGUgd29ya2VyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weToKKyAgICAgICAgKExheW91
dFRlc3RSdW5uZXIuX2hhbmRsZV9kaWRfc3Bhd25fd29ya2VyKTogTm90aWZ5IHRoZSBwb3J0IHRo
YXQgYSB3b3JrZXIgcHJvY2VzcworICAgICAgICBoYXMgYmVlbiBjcmVhdGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5kaWRfc3Bhd25f
d29ya2VyKTogQWRkIGZ1bmN0aW9uIHNvIHRoYXQgcG9ydHMgbWF5IG1hbmFnZSBhbnkKKyAgICAg
ICAgcmVzb3VyY2VzIGNyZWF0ZWQgb24gdGhlIHBhcmVudCBwcm9jZXNzIGJ1dCBtYW5hZ2VkIGJ5
IHRoZSBwcm92aWRlZCB3b3JrZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Rl
dmljZS5weToKKyAgICAgICAgKERldmljZS5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMpOiBDYWxs
IHJlbGVhc2Vfd29ya2VyX3Jlc291cmNlcyBvbiB0aGUKKyAgICAgICAgcGxhdGZvcm1fZGV2aWNl
IGlmIHN1Y2ggYSBmdW5jdGlvbiBpcyBkZWZpbmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC9pb3MucHk6CisgICAgICAgIChJT1NQb3J0LmRpZF9zcGF3bl93b3JrZXIpOiBSZWxl
YXNlIGFueSB3b3JrZXIgcmVzb3VyY2VzIG9uIHRoZSBpT1MKKyAgICAgICAgZGV2aWNlIG9iamVj
dCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwYXduZWQgd29ya2VyLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdGVzdC9ydW5uZXIucHk6CisgICAgICAgIChSdW5uZXIuaGFuZGxlKTogSWdub3Jl
IHRoZSBkaWRfc3Bhd25fd29ya2VyIG1lc3NhZ2UgZHVyaW5nIHRlc3RpbmcuCisKIDIwMTctMDkt
MjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgVGhyb3duIE9i
akMgZXhjZXB0aW9uIHdoZW4gcmlnaHQgY2xpY2tpbmcgb24gPGltZz4gY29udGFpbmluZyBtcDQg
bGluawpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9wb29sLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9v
bC5weQkocmV2aXNpb24gMjIyNTA2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bWVzc2FnZV9wb29sLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDggQEAgY2xhc3Mg
X01lc3NhZ2VQb29sKG9iamVjdCk6CiAgICAgICAgICAgICB3b3JrZXIgPSBfV29ya2VyKGhvc3Qs
IHNlbGYuX21lc3NhZ2VzX3RvX21hbmFnZXIsIHNlbGYuX21lc3NhZ2VzX3RvX3dvcmtlciwgc2Vs
Zi5fd29ya2VyX2ZhY3RvcnksIHdvcmtlcl9udW1iZXIsIHNlbGYuX3J1bm5pbmdfaW5saW5lLCBz
ZWxmIGlmIHNlbGYuX3J1bm5pbmdfaW5saW5lIGVsc2UgTm9uZSwgc2VsZi5fd29ya2VyX2xvZ19s
ZXZlbCgpKQogICAgICAgICAgICAgc2VsZi5fd29ya2Vycy5hcHBlbmQod29ya2VyKQogICAgICAg
ICAgICAgd29ya2VyLnN0YXJ0KCkKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9ydW5uaW5nX2lu
bGluZToKKyAgICAgICAgICAgICAgICBzZWxmLl9jYWxsZXIuaGFuZGxlKCdkaWRfc3Bhd25fd29y
a2VyJywgd29ya2VyX251bWJlcikKICAgICAgICAgICAgIGlmIHNlbGYuX3dvcmtlcl9zdGFydHVw
X2RlbGF5X3NlY3M6CiAgICAgICAgICAgICAgICAgdGltZS5zbGVlcChzZWxmLl93b3JrZXJfc3Rh
cnR1cF9kZWxheV9zZWNzKQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3Rf
cnVubmVyLnB5CShyZXZpc2lvbiAyMjI1MDYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTE0MSw2ICsxNDEsOSBAQCBjbGFzcyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAg
ICAgICAgICAgICByZXN1bHRzX2RpcmVjdG9yeSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxm
Ll9yZXN1bHRzX2RpcmVjdG9yeSwgJ3JldHJpZXMnKQogICAgICAgICByZXR1cm4gV29ya2VyKHdv
cmtlcl9jb25uZWN0aW9uLCByZXN1bHRzX2RpcmVjdG9yeSwgc2VsZi5fb3B0aW9ucykKIAorICAg
IGRlZiBfaGFuZGxlX2RpZF9zcGF3bl93b3JrZXIoc2VsZiwgd29ya2VyX251bWJlcik6CisgICAg
ICAgIHNlbGYuX3BvcnQuZGlkX3NwYXduX3dvcmtlcih3b3JrZXJfbnVtYmVyKQorCiAgICAgZGVm
IF9tYXJrX2ludGVycnVwdGVkX3Rlc3RzX2FzX3NraXBwZWQoc2VsZiwgcnVuX3Jlc3VsdHMpOgog
ICAgICAgICBmb3IgdGVzdF9pbnB1dCBpbiBzZWxmLl90ZXN0X2lucHV0czoKICAgICAgICAgICAg
IGlmIHRlc3RfaW5wdXQudGVzdF9uYW1lIG5vdCBpbiBydW5fcmVzdWx0cy5yZXN1bHRzX2J5X25h
bWU6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQkocmV2aXNpb24gMjIyNTA2
KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHdvcmtpbmcgY29weSkK
QEAgLTE1NDcsMyArMTU0Nyw4IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgdGVzdF9l
eHBlY3RhdGlvbnNfZmlsZV9wb3NpdGlvbihzZWxmKToKICAgICAgICAgIyBCeSBkZWZhdWx0IGJh
c2VsaW5lIHNlYXJjaCBwYXRoIHNjaGVtYSBpcyBpLmUuIHBvcnQtd2syIC0+IHdrMiAtPiBwb3J0
IC0+IGdlbmVyaWMsIHNvIHBvcnQgZXhwZWN0YXRpb25zIGZpbGUgaXMgYXQgc2Vjb25kIHRvIGxh
c3QgcG9zaXRpb24uCiAgICAgICAgIHJldHVybiAxCisKKyAgICBkZWYgZGlkX3NwYXduX3dvcmtl
cihzZWxmLCB3b3JrZXJfbnVtYmVyKToKKyAgICAgICAgIyBUaGlzIGlzIG92ZXJyaWRkZW4gYnkg
cG9ydHMgdGhhdCBuZWVkIHRvIGRvIHdvcmsgaW4gdGhlIHBhcmVudCBwcm9jZXNzIGFmdGVyIGEg
d29ya2VyIHN1YnByb2Nlc3MgaXMgc3Bhd25lZCwKKyAgICAgICAgIyBzdWNoIGFzIGNsb3Npbmcg
ZmlsZSBkZXNjcmlwdG9ycyB0aGF0IHdlcmUgaW1wbGljaXRseSBjbG9uZWQgdG8gdGhlIHdvcmtl
ci4KKyAgICAgICAgcGFzcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Rldmlj
ZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGV2aWNlLnB5
CShyZXZpc2lvbiAyMjI1MDYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGV2aWNl
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwxMSBAQCBjbGFzcyBEZXZpY2Uob2JqZWN0
KToKICAgICAgICAgICAgIHJldHVybiBzZWxmLnBsYXRmb3JtX2RldmljZS5zeW1ib2xpY2F0ZV9j
cmFzaF9sb2dfaWZfbmVlZGVkKHBhdGgpCiAgICAgICAgIHJldHVybiBzZWxmLmZpbGVzeXN0ZW0u
cmVhZF90ZXh0X2ZpbGUocGF0aCkKIAorICAgIGRlZiByZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMo
c2VsZik6CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5wbGF0Zm9ybV9kZXZpY2UsICdyZWxlYXNl
X3dvcmtlcl9yZXNvdXJjZXMnKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnBsYXRmb3JtX2Rl
dmljZS5yZWxlYXNlX3dvcmtlcl9yZXNvdXJjZXMoKQorICAgICAgICByZXR1cm4gTm9uZQorCiAg
ICAgQHByb3BlcnR5CiAgICAgZGVmIGV4ZWN1dGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYucGxhdGZvcm1fZGV2aWNlLmV4ZWN1dGl2ZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2lvcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
aW9zLnB5CShyZXZpc2lvbiAyMjI1MDYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
aW9zLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMDgsMyArMjA4LDggQEAgY2xhc3MgSU9TUG9ydChE
YXJ3aW5Qb3J0KToKICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCctLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLScpCiAKICAgICAgICAgICAgIHJhaXNl
IFJ1bnRpbWVFcnJvcignTXVsdGlwbGUgZmFpbHVyZXMgd2hlbiB0ZWFyZG93biBkZXZpY2VzJykK
KworICAgIGRlZiBkaWRfc3Bhd25fd29ya2VyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAg
ICBzdXBlcihJT1NQb3J0LCBzZWxmKS5kaWRfc3Bhd25fd29ya2VyKHdvcmtlcl9udW1iZXIpCisK
KyAgICAgICAgc2VsZi50YXJnZXRfaG9zdCh3b3JrZXJfbnVtYmVyKS5yZWxlYXNlX3dvcmtlcl9y
ZXNvdXJjZXMoKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3J1bm5lci5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvcnVubmVyLnB5CShyZXZp
c2lvbiAyMjI1MDYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvcnVubmVyLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1MiwxMCBAQCBjbGFzcyBSdW5uZXIob2JqZWN0KToKICAg
ICAgICAgd2l0aCBtZXNzYWdlX3Bvb2wuZ2V0KHNlbGYsIHNlbGYud29ya2VyX2ZhY3RvcnksIG51
bV93b3JrZXJzKSBhcyBwb29sOgogICAgICAgICAgICAgcG9vbC5ydW4oKCd0ZXN0JywgdGVzdF9u
YW1lKSBmb3IgdGVzdF9uYW1lIGluIHRlc3RfbmFtZXMpCiAKLSAgICBkZWYgaGFuZGxlKHNlbGYs
IG1lc3NhZ2VfbmFtZSwgc291cmNlLCB0ZXN0X25hbWUsIGRlbGF5PU5vbmUsIGZhaWx1cmVzPU5v
bmUsIGVycm9ycz1Ob25lKToKKyAgICBkZWYgaGFuZGxlKHNlbGYsIG1lc3NhZ2VfbmFtZSwgc291
cmNlLCB0ZXN0X25hbWU9Tm9uZSwgZGVsYXk9Tm9uZSwgZmFpbHVyZXM9Tm9uZSwgZXJyb3JzPU5v
bmUpOgorICAgICAgICBpZiBtZXNzYWdlX25hbWUgPT0gJ2RpZF9zcGF3bl93b3JrZXInOgorICAg
ICAgICAgICAgcmV0dXJuCisKICAgICAgICAgaWYgbWVzc2FnZV9uYW1lID09ICdzdGFydGVkX3Rl
c3QnOgogICAgICAgICAgICAgc2VsZi5wcmludGVyLnByaW50X3N0YXJ0ZWRfdGVzdChzb3VyY2Us
IHRlc3RfbmFtZSkKICAgICAgICAgICAgIHJldHVybgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>