<?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>183025</bug_id>
          
          <creation_ts>2018-02-21 16:55:20 -0800</creation_ts>
          <short_desc>Add release asserts for service worker fetch and postMessage events</short_desc>
          <delta_ts>2018-02-28 17:53:58 -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>Service Workers</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=183047</see_also>
          <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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1401330</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-21 16:55:20 -0800</bug_when>
    <thetext>In case a page and sw with different origins can start communicating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401333</commentid>
    <comment_count>1</comment_count>
      <attachid>334426</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-21 17:02:58 -0800</bug_when>
    <thetext>Created attachment 334426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401334</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-21 17:05:49 -0800</bug_when>
    <thetext>For fetch, we need to take into account blob and data URLs frames making loads and being intercepted by the parent frame service worker.
We also need to take into account non HTTP registered service workers.

For postMessage, I used the same approach but I wonder if there are cases where we would release assert and should not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401343</commentid>
    <comment_count>3</comment_count>
      <attachid>334426</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-21 17:50:47 -0800</bug_when>
    <thetext>Comment on attachment 334426
Patch

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

&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:188
&gt; +    RELEASE_ASSERT(url.isEmpty() || !url.protocolIsInHTTPFamily() || !serviceWorkerURL.protocolIsInHTTPFamily() || protocolHostAndPortAreEqual(url, serviceWorkerURL));

I can probably remove url.isEmpty()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401359</commentid>
    <comment_count>4</comment_count>
      <attachid>334426</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-21 20:04:44 -0800</bug_when>
    <thetext>Comment on attachment 334426
Patch

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

Same origin checks should be written in terms of SecurityOrigin. It knows how to apply them correctly.

&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:124
&gt; +            RELEASE_ASSERT(!sourceClient-&gt;url().protocolIsInHTTPFamily() || !serviceWorkerGlobalScope.url().protocolIsInHTTPFamily() || protocolHostAndPortAreEqual(serviceWorkerGlobalScope.url(), sourceClient-&gt;url()));
&gt; +

This does not seem correct. Can we write this in terms of SecurityOrigin?

&gt;&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:188
&gt;&gt; +    String origin = request.httpOrigin();
&gt;&gt; +    URL url { URL(), origin.isEmpty() ? referrer : origin };
&gt;&gt; +    URL serviceWorkerURL = serviceWorkerThreadProxy-&gt;scriptURL();
&gt;&gt; +    RELEASE_ASSERT(url.isEmpty() || !url.protocolIsInHTTPFamily() || !serviceWorkerURL.protocolIsInHTTPFamily() || protocolHostAndPortAreEqual(url, serviceWorkerURL));
&gt; 
&gt; I can probably remove url.isEmpty()

How did you come to the decision to make use of the HTTP Origin header or fall back to referrer? Can we write this in terms of SecurityOrigin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401365</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-21 20:42:01 -0800</bug_when>
    <thetext>&gt; Same origin checks should be written in terms of SecurityOrigin. It knows
&gt; how to apply them correctly.

We do not try to enforce same origin checks.
We try enforcing service worker partitioning and controlling checks.
For instance, a data URL iframe will be controlled by the service worker controlling the parent of the iframe.

We could add a SecurityOrigin method for that purpose but this seems unnecessary to me.
Note that these checks are in case something really bad happens.

&gt; &gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:124
&gt; &gt; +            RELEASE_ASSERT(!sourceClient-&gt;url().protocolIsInHTTPFamily() || !serviceWorkerGlobalScope.url().protocolIsInHTTPFamily() || protocolHostAndPortAreEqual(serviceWorkerGlobalScope.url(), sourceClient-&gt;url()));
&gt; &gt; +
&gt; 
&gt; This does not seem correct. Can we write this in terms of SecurityOrigin?

I don&apos;t see why this is incorrect.
It is true that if we had more information, we could make tighter checks.
But we try to limit the number of changes here.

We could replace protocolHostAndPortAreEqual(...) by something like serviceWorkerGlobalScope.topOrigin().canRequest(...).
This does not look like an improvement to me though since what we are really trying to check is protocol/host/port equality.

&gt; &gt;&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:188
&gt; &gt;&gt; +    String origin = request.httpOrigin();
&gt; &gt;&gt; +    URL url { URL(), origin.isEmpty() ? referrer : origin };
&gt; &gt;&gt; +    URL serviceWorkerURL = serviceWorkerThreadProxy-&gt;scriptURL();
&gt; &gt;&gt; +    RELEASE_ASSERT(url.isEmpty() || !url.protocolIsInHTTPFamily() || !serviceWorkerURL.protocolIsInHTTPFamily() || protocolHostAndPortAreEqual(url, serviceWorkerURL));
&gt; &gt; 
&gt; &gt; I can probably remove url.isEmpty()
&gt; 
&gt; How did you come to the decision to make use of the HTTP Origin header or
&gt; fall back to referrer? Can we write this in terms of SecurityOrigin.

We do not have any notion of the origin of the frame triggering the load at that point.
We could pipe it through IPC but this is a best effort patch and we try to limit the number of changes.
Hence why using Origin/Referrer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401366</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-21 21:01:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/37765052&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401384</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-22 00:42:29 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; &gt; Same origin checks should be written in terms of SecurityOrigin. It knows
&gt; &gt; how to apply them correctly.
&gt; 
&gt; We do not try to enforce same origin checks.
&gt; We try enforcing service worker partitioning and controlling checks.
&gt; For instance, a data URL iframe will be controlled by the service worker
&gt; controlling the parent of the iframe.
&gt; 
&gt; We could add a SecurityOrigin method for that purpose but this seems
&gt; unnecessary to me.
&gt; Note that these checks are in case something really bad happens.
&gt; 
&gt; &gt; &gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:124
&gt; &gt; &gt; +            RELEASE_ASSERT(!sourceClient-&gt;url().protocolIsInHTTPFamily() || !serviceWorkerGlobalScope.url().protocolIsInHTTPFamily() || protocolHostAndPortAreEqual(serviceWorkerGlobalScope.url(), sourceClient-&gt;url()));
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; This does not seem correct. Can we write this in terms of SecurityOrigin?
&gt; 
&gt; I don&apos;t see why this is incorrect.
&gt; It is true that if we had more information, we could make tighter checks.
&gt; But we try to limit the number of changes here.

OK.

&gt; 
&gt; We could replace protocolHostAndPortAreEqual(...) by something like
&gt; serviceWorkerGlobalScope.topOrigin().canRequest(...).
&gt; This does not look like an improvement to me though since what we are really
&gt; trying to check is protocol/host/port equality.
&gt; 
&gt; &gt; &gt;&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:188
&gt; &gt; &gt;&gt; +    String origin = request.httpOrigin();
&gt; &gt; &gt;&gt; +    URL url { URL(), origin.isEmpty() ? referrer : origin };
&gt; &gt; &gt;&gt; +    URL serviceWorkerURL = serviceWorkerThreadProxy-&gt;scriptURL();
&gt; &gt; &gt;&gt; +    RELEASE_ASSERT(url.isEmpty() || !url.protocolIsInHTTPFamily() || !serviceWorkerURL.protocolIsInHTTPFamily() || protocolHostAndPortAreEqual(url, serviceWorkerURL));
&gt; &gt; &gt; 
&gt; &gt; &gt; I can probably remove url.isEmpty()
&gt; &gt; 
&gt; &gt; How did you come to the decision to make use of the HTTP Origin header or
&gt; &gt; fall back to referrer? Can we write this in terms of SecurityOrigin.
&gt; 
&gt; We do not have any notion of the origin of the frame triggering the load at
&gt; that point.
&gt; We could pipe it through IPC but this is a best effort patch and we try to
&gt; limit the number of changes.
&gt; Hence why using Origin/Referrer.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401385</commentid>
    <comment_count>8</comment_count>
      <attachid>334426</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-22 00:44:53 -0800</bug_when>
    <thetext>Comment on attachment 334426
Patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +

Please add radar before landing.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No change of behavior.

This is OK as-is. Typically we put such a remark after the description.

&gt; Source/WebKit/ChangeLog:5
&gt; +

Please add radar before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401414</commentid>
    <comment_count>9</comment_count>
      <attachid>334450</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-22 07:18:14 -0800</bug_when>
    <thetext>Created attachment 334450
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401430</commentid>
    <comment_count>10</comment_count>
      <attachid>334450</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-22 08:56:00 -0800</bug_when>
    <thetext>Comment on attachment 334450
Patch for landing

Clearing flags on attachment: 334450

Committed r228919: &lt;https://trac.webkit.org/changeset/228919&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401431</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-22 08:56:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401475</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-22 11:08:18 -0800</bug_when>
    <thetext>We need to distinguish navigation from subresource loads as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401593</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-22 16:34:58 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401594</commentid>
    <comment_count>14</comment_count>
      <attachid>334483</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-22 16:34:59 -0800</bug_when>
    <thetext>Created attachment 334483
early exit alternative</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402799</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-28 17:53:58 -0800</bug_when>
    <thetext>Resolved as fixed.
If we san crashes in trunk Safari, we can always reopen.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334426</attachid>
            <date>2018-02-21 17:02:58 -0800</date>
            <delta_ts>2018-02-22 07:18:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183025-20180221170257.patch</filename>
            <type>text/plain</type>
            <size>6067</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzZDM3NzQ4ZmUyZmZi
MWUyNjg4MDk0MmZjNTZlYjkwMDJhYWUzOC4uYjJiMDI1MjMzZGVlYWJlYjZjY2JlOTFiMDZhMDVl
MmNkMWQ2NmEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTAyLTIxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcmVsZWFzZSBhc3Nl
cnRzIGZvciBzZXJ2aWNlIHdvcmtlciBmZXRjaCBhbmQgcG9zdE1lc3NhZ2UgZXZlbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2Ugb2Yg
YmVoYXZpb3IuCisgICAgICAgIEFkZCByZWxlYXNlIGFzc2VydGlvbiBzbyB0aGF0IGEgc2Vydmlj
ZSB3b3JrZXIgd2lsbCBvbmx5IGRpc3BhdGNoIGEgbWVzc2FnZSBldmVudAorICAgICAgICBmb3Ig
Y2xpZW50cyBhbmQgc2VydmljZSB3b3JrZXJzIHdpdGggdGhlIHNhbWUgb3JpZ2luLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
cik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5Lmg6CisKIDIwMTgtMDItMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1ha2UgU3Vic3RpdHV0ZVJlc291cmNlIHRha2UgYSBSZXNvdXJjZVJlc3Bv
bnNlIHItdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZGFlMGRhZWJiYjQ5Y2YyMTgxNDg5YWEyNDY3MThlMjUx
OWZiNmZhMC4uY2UxMDFhZGFiMTQ5MjFlYWY0OGIxYzYyMWE4NGU0OTliMzI0NGFkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wMi0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbGVhc2UgYXNzZXJ0cyBmb3Igc2VydmljZSB3b3Jr
ZXIgZmV0Y2ggYW5kIHBvc3RNZXNzYWdlIGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0byBwcm90ZWN0IGludGVyY2Vw
dGlvbiBvZiBhIGZldGNoIGxvYWQgYnkgYSBzZXJ2aWNlIHdvcmtlciB3aXRoCisgICAgICAgIGEg
ZGlmZmVyZW50IG9yaWdpbiBmcm9tIHRoZSBwYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2gpOgorCiAyMDE4LTAy
LTIwICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEtleWJvYXJk
IGZvY3VzIG5vdCBmb2xsb3dpbmcgVm9pY2VPdmVyIGN1cnNvciBpbnRvIHdlYiBjb250ZW50IG9y
IHdpdGhpbiB3ZWIgY29udGVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKaW5kZXggZDkyYWFmYjIzYTlmNjhiMGZhOTZj
NjY3MjYwYjI3YWMxNDg4MjEzMi4uYjA0NmYzZWNlNzVlM2ExMzMzNzlmMmQ5NjdhMmViMDNhOGIz
ODlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlcXVlc3RCYXNlLmgKQEAgLTExMyw3ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRFeGlzdGluZ0hUVFBSZWZlcnJlclRvT3JpZ2luU3RyaW5nKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckhUVFBSZWZlcnJlcigpOwogCi0gICAgU3RyaW5n
IGh0dHBPcmlnaW4oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaHR0cE9yaWdp
bigpIGNvbnN0OwogICAgIGJvb2wgaGFzSFRUUE9yaWdpbigpIGNvbnN0OwogICAgIHZvaWQgc2V0
SFRUUE9yaWdpbihjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFy
SFRUUE9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCA5Yjc4ODg5YjMy
OTYyZTQzYTI5OTE1YzhhZWY1OTVjYzU0MGFhZjA3Li42NTQzYTFmODAxYWY2MTIwZjUzNzhjZjY2
N2U0NjQ1YTUwNjcyMTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMTE5LDEw
ICsxMTksMTYgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlcihNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG0KICAgICAgICAgRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudFNvdXJjZSBzb3VyY2U7CiAgICAgICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihzb3VyY2VEYXRhKSkgewogICAgICAgICAgICAg
UmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+IHNvdXJjZUNsaWVudCA9IFNlcnZpY2VXb3JrZXJD
bGllbnQ6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShXVEY6
OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4oc291cmNlRGF0YSkpKTsKKworICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIXNvdXJjZUNsaWVudC0+dXJsKCkucHJvdG9jb2xJc0luSFRUUEZh
bWlseSgpIHx8ICFzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudXJsKCkucHJvdG9jb2xJc0luSFRU
UEZhbWlseSgpIHx8IHByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUudXJsKCksIHNvdXJjZUNsaWVudC0+dXJsKCkpKTsKKwogICAgICAgICAgICAgc291
cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShzb3VyY2VDbGllbnQtPnVybCgpKTsK
ICAgICAgICAgICAgIHNvdXJjZSA9IFdURk1vdmUoc291cmNlQ2xpZW50KTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBzb3VyY2VXb3JrZXIgPSBT
ZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZShzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIFdURk1v
dmUoV1RGOjpnZXQ8U2VydmljZVdvcmtlckRhdGE+KHNvdXJjZURhdGEpKSk7CisKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKCFzb3VyY2VXb3JrZXItPnNjcmlwdFVSTCgpLnByb3RvY29sSXNJ
bkhUVFBGYW1pbHkoKSB8fCAhc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnVybCgpLnByb3RvY29s
SXNJbkhUVFBGYW1pbHkoKSB8fCBwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwoc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLnVybCgpLCBzb3VyY2VXb3JrZXItPnNjcmlwdFVSTCgpKSk7CisKICAg
ICAgICAgICAgIHNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc291cmNlV29y
a2VyLT5zY3JpcHRVUkwoKSk7CiAgICAgICAgICAgICBzb3VyY2UgPSBXVEZNb3ZlKHNvdXJjZVdv
cmtlcik7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKaW5kZXgg
NmRlZmJiZGZhYTgyMDQyZDRlNGYyMTdlMmExZWIyMWU3MzBjYWE4MS4uNmVkY2MwMzM3YjdhMmQx
NGRkMzIwNDNjOWY5NzBjZDE0ZTIzNjc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmgKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rk
Ojp1bmlxdWVfcHRyPEZldGNoTG9hZGVyPiBjcmVhdGVCbG9iTG9hZGVyKEZldGNoTG9hZGVyQ2xp
ZW50JiwgY29uc3QgVVJMJik7CiAKKyAgICBjb25zdCBVUkwmIHNjcmlwdFVSTCgpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jdW1lbnQtPnVybCgpOyB9CisKICAgICAvLyBQdWJsaWMgb25seSBmb3IgdGVz
dGluZyBwdXJwb3Nlcy4KICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCB2b2lkIG5vdGlm
eU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25saW5lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCmluZGV4IDNhMjE3ZDU3Yzk1M2E0YWM2ZDEyOTU5N2NjYjVjM2U2Yzhh
ODljZTkuLjM2MDc5ZGRjNWJkZGNlMjg4NGQ2MTJhOTg3YmQwODQ5NDUwYWY1NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTE4Miw2ICsxODIsMTEgQEAgdm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIFN0cmluZyBv
cmlnaW4gPSByZXF1ZXN0Lmh0dHBPcmlnaW4oKTsKKyAgICBVUkwgdXJsIHsgVVJMKCksIG9yaWdp
bi5pc0VtcHR5KCkgPyByZWZlcnJlciA6IG9yaWdpbiB9OworICAgIFVSTCBzZXJ2aWNlV29ya2Vy
VVJMID0gc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5zY3JpcHRVUkwoKTsKKyAgICBSRUxFQVNF
X0FTU0VSVCh1cmwuaXNFbXB0eSgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8
ICFzZXJ2aWNlV29ya2VyVVJMLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCBwcm90b2NvbEhv
c3RBbmRQb3J0QXJlRXF1YWwodXJsLCBzZXJ2aWNlV29ya2VyVVJMKSk7CisKICAgICBhdXRvIGNs
aWVudCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rp
b25Ub1N0b3JhZ2VQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0
aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGNsaWVudElkOwogICAgIGlmIChv
cHRpb25zLmNsaWVudElkZW50aWZpZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334450</attachid>
            <date>2018-02-22 07:18:14 -0800</date>
            <delta_ts>2018-02-22 16:35:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-183025-20180222071756.patch</filename>
            <type>text/plain</type>
            <size>6112</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzZDM3NzQ4ZmUyZmZi
MWUyNjg4MDk0MmZjNTZlYjkwMDJhYWUzOC4uZjhlNWU4YzBiMzdhZDNhN2IxOWZjZjNhMjgyMGIw
NjRiNDBjYWNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTAyLTIxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcmVsZWFzZSBhc3Nl
cnRzIGZvciBzZXJ2aWNlIHdvcmtlciBmZXRjaCBhbmQgcG9zdE1lc3NhZ2UgZXZlbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMjUKKyAgICAg
ICAgcmRhcjovL3Byb2JsZW0vMzc3NjUwNTIKKworICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwg
QmF0ZXMuCisKKyAgICAgICAgQWRkIHJlbGVhc2UgYXNzZXJ0aW9uIHNvIHRoYXQgYSBzZXJ2aWNl
IHdvcmtlciB3aWxsIG9ubHkgZGlzcGF0Y2ggYSBtZXNzYWdlIGV2ZW50CisgICAgICAgIGZvciBj
bGllbnRzIGFuZCBzZXJ2aWNlIHdvcmtlcnMgd2l0aCB0aGUgc2FtZSBvcmlnaW4uCisgICAgICAg
IE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRo
cmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oOgorCiAyMDE4LTAyLTIxICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFN1YnN0aXR1
dGVSZXNvdXJjZSB0YWtlIGEgUmVzb3VyY2VSZXNwb25zZSByLXZhbHVlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRh
ZTBkYWViYmI0OWNmMjE4MTQ4OWFhMjQ2NzE4ZTI1MTlmYjZmYTAuLjBiZThhYmNiNmM2NDhjMjA5
MTYzMDVhYzY4MGMwOGRkNmMyNzI5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgt
MDItMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBy
ZWxlYXNlIGFzc2VydHMgZm9yIHNlcnZpY2Ugd29ya2VyIGZldGNoIGFuZCBwb3N0TWVzc2FnZSBl
dmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MzAyNQorICAgICAgICByZGFyOi8vcHJvYmxlbS8zNzc2NTA1MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhbmllbCBCYXRlcy4KKworICAgICAgICBBZGQgYXNzZXJ0aW9uIHRvIHByb3RlY3QgaW50
ZXJjZXB0aW9uIG9mIGEgZmV0Y2ggbG9hZCBieSBhIHNlcnZpY2Ugd29ya2VyIHdpdGgKKyAgICAg
ICAgYSBkaWZmZXJlbnQgb3JpZ2luIGZyb20gdGhlIHBhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisKIDIw
MTgtMDItMjAgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogS2V5
Ym9hcmQgZm9jdXMgbm90IGZvbGxvd2luZyBWb2ljZU92ZXIgY3Vyc29yIGludG8gd2ViIGNvbnRl
bnQgb3Igd2l0aGluIHdlYiBjb250ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAppbmRleCBkOTJhYWZiMjNhOWY2OGIw
ZmE5NmM2NjcyNjBiMjdhYzE0ODgyMTMyLi5iMDQ2ZjNlY2U3NWUzYTEzMzM3OWYyZDk2N2EyZWIw
M2E4YjM4OWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtMTEzLDcgKzExMyw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEV4aXN0aW5nSFRUUFJlZmVycmVyVG9PcmlnaW5TdHJpbmco
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFySFRUUFJlZmVycmVyKCk7CiAKLSAgICBT
dHJpbmcgaHR0cE9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBodHRw
T3JpZ2luKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNIVFRQT3JpZ2luKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRIVFRQT3JpZ2luKGNvbnN0IFN0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Y2xlYXJIVFRQT3JpZ2luKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDliNzg4
ODliMzI5NjJlNDNhMjk5MTVjOGFlZjU5NWNjNTQwYWFmMDcuLjY1NDNhMWY4MDFhZjYxMjBmNTM3
OGNmNjY3ZTQ2NDVhNTA2NzIxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0x
MTksMTAgKzExOSwxNiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbQogICAgICAgICBFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50U291cmNlIHNvdXJjZTsKICAgICAgICAgaWYgKFdURjo6aG9sZHNfYWx0
ZXJuYXRpdmU8U2VydmljZVdvcmtlckNsaWVudERhdGE+KHNvdXJjZURhdGEpKSB7CiAgICAgICAg
ICAgICBSZWZQdHI8U2VydmljZVdvcmtlckNsaWVudD4gc291cmNlQ2xpZW50ID0gU2VydmljZVdv
cmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3Zl
KFdURjo6Z2V0PFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihzb3VyY2VEYXRhKSkpOworCisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVCghc291cmNlQ2xpZW50LT51cmwoKS5wcm90b2NvbElzSW5I
VFRQRmFtaWx5KCkgfHwgIXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS51cmwoKS5wcm90b2NvbElz
SW5IVFRQRmFtaWx5KCkgfHwgcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS51cmwoKSwgc291cmNlQ2xpZW50LT51cmwoKSkpOworCiAgICAgICAgICAg
ICBzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNvdXJjZUNsaWVudC0+dXJs
KCkpOwogICAgICAgICAgICAgc291cmNlID0gV1RGTW92ZShzb3VyY2VDbGllbnQpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IHNvdXJjZVdvcmtl
ciA9IFNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwg
V1RGTW92ZShXVEY6OmdldDxTZXJ2aWNlV29ya2VyRGF0YT4oc291cmNlRGF0YSkpKTsKKworICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIXNvdXJjZVdvcmtlci0+c2NyaXB0VVJMKCkucHJvdG9j
b2xJc0luSFRUUEZhbWlseSgpIHx8ICFzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudXJsKCkucHJv
dG9jb2xJc0luSFRUUEZhbWlseSgpIHx8IHByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUudXJsKCksIHNvdXJjZVdvcmtlci0+c2NyaXB0VVJMKCkpKTsK
KwogICAgICAgICAgICAgc291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShzb3Vy
Y2VXb3JrZXItPnNjcmlwdFVSTCgpKTsKICAgICAgICAgICAgIHNvdXJjZSA9IFdURk1vdmUoc291
cmNlV29ya2VyKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApp
bmRleCA2ZGVmYmJkZmFhODIwNDJkNGU0ZjIxN2UyYTFlYjIxZTczMGNhYTgxLi42ZWRjYzAzMzdi
N2EyZDE0ZGQzMjA0M2M5Zjk3MGNkMTRlMjM2NzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGQ6OnVuaXF1ZV9wdHI8RmV0Y2hMb2FkZXI+IGNyZWF0ZUJsb2JMb2FkZXIoRmV0Y2hMb2Fk
ZXJDbGllbnQmLCBjb25zdCBVUkwmKTsKIAorICAgIGNvbnN0IFVSTCYgc2NyaXB0VVJMKCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudC0+dXJsKCk7IH0KKwogICAgIC8vIFB1YmxpYyBvbmx5IGZv
ciB0ZXN0aW5nIHB1cnBvc2VzLgogICAgIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHZvaWQg
bm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggM2EyMTdkNTdjOTUzYTRhYzZkMTI5NTk3Y2NiNWMz
ZTZjOGE4OWNlOS4uYTU3MGY3NDYxZWYxZWU3MDk4MzllZGFkZGZhMTY4ZTVkNTdmZjI3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMTgyLDYgKzE4MiwxMSBAQCB2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydgogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgU3Ry
aW5nIG9yaWdpbiA9IHJlcXVlc3QuaHR0cE9yaWdpbigpOworICAgIFVSTCB1cmwgeyBVUkwoKSwg
b3JpZ2luLmlzRW1wdHkoKSA/IHJlZmVycmVyIDogb3JpZ2luIH07CisgICAgVVJMIHNlcnZpY2VX
b3JrZXJVUkwgPSBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnNjcmlwdFVSTCgpOworICAgIFJF
TEVBU0VfQVNTRVJUKCF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8ICFzZXJ2aWNlV29y
a2VyVVJMLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCBwcm90b2NvbEhvc3RBbmRQb3J0QXJl
RXF1YWwodXJsLCBzZXJ2aWNlV29ya2VyVVJMKSk7CisKICAgICBhdXRvIGNsaWVudCA9IFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQ
cm9jZXNzLmNvcHlSZWYoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGNsaWVudElkOwogICAgIGlmIChvcHRpb25zLmNsaWVu
dElkZW50aWZpZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334483</attachid>
            <date>2018-02-22 16:34:59 -0800</date>
            <delta_ts>2018-02-22 16:34:59 -0800</delta_ts>
            <desc>early exit alternative</desc>
            <filename>bug-183025-20180222163459.patch</filename>
            <type>text/plain</type>
            <size>6562</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFkY2ZhYThlOTk3M2U0
YjczZmUyMWI3ZDkyYjQ3MjhhNzg4Nzk3Ny4uYjBjNWU2YTQ1OTdmZmZjYTU0OTkyMGY3ODFiMGJk
NDc2Mzg1NTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAyLTIyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcmVsZWFzZSBhc3Nl
cnRzIGZvciBzZXJ2aWNlIHdvcmtlciBmZXRjaCBhbmQgcG9zdE1lc3NhZ2UgZXZlbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMjUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM3NzY1MDUyPgorCisgICAgICAgIERpc2N1c3NlZCBpbnRlcm5h
bGx5LgorCisgICAgICAgIE1vdmluZyBmcm9tIHJlbGVhc2UgYXNzZXJ0IHRvIGVhcmx5IGV4aXQg
d2l0aCByZWxlYXNlIGxvZ2dpbmcuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAxOC0wMi0y
MiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVzc2FnZVBv
cnQgaXMgbm90IGFsd2F5cyBkZXN0cm95ZWQgaW4gdGhlIHJpZ2h0IHRocmVhZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA3OWEwMjUyZGFmM2ZkNDBmMGM3YjAzNGQ3MGY0ZGUxMzc3YmNiNDAzLi41M2UwNmEwMWQ5NDdh
YTcxMzdhOTI0ODU0ZTg5YzdiZDIzZDM1ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE4LTAyLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgcmVsZWFzZSBhc3NlcnRzIGZvciBzZXJ2aWNlIHdvcmtlciBmZXRjaCBhbmQgcG9zdE1lc3Nh
Z2UgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODMwMjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3NzY1MDUyPgorCisgICAgICAgIERp
c2N1c3NlZCBpbnRlcm5hbGx5LgorCisgICAgICAgIE1vdmluZyBmcm9tIHJlbGVhc2UgYXNzZXJ0
IHRvIGVhcmx5IGV4aXQgd2l0aCByZWxlYXNlIGxvZ2dpbmcuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisKIDIw
MTgtMDItMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENh
Y2hlczo6aW5pdGlhbGl6ZSBzaG91bGQgY2FsbCBhbGwgcGVuZGluZyBpbml0aWFsaXphdGlvbiBj
YWxsYmFja3MgaW4gY2FzZSBvZiBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRl
eCA2NTQzYTFmODAxYWY2MTIwZjUzNzhjZjY2N2U0NjQ1YTUwNjcyMTczLi40NmY0ZmE5OTQyOTE3
NTA0Mjg5NmNlODc2MjQyODM3NTlhZDY2ZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCisjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2guaCIK
QEAgLTEyMCwxNCArMTIxLDIwIEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtCiAgICAgICAgIGlm
IChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihzb3VyY2VE
YXRhKSkgewogICAgICAgICAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+IHNvdXJjZUNs
aWVudCA9IFNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSwgV1RGTW92ZShXVEY6OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4oc291cmNl
RGF0YSkpKTsKIAotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIXNvdXJjZUNsaWVudC0+dXJs
KCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8ICFzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUu
dXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8IHByb3RvY29sSG9zdEFuZFBvcnRBcmVF
cXVhbChzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudXJsKCksIHNvdXJjZUNsaWVudC0+dXJsKCkp
KTsKKyAgICAgICAgICAgIGlmIChzb3VyY2VDbGllbnQtPnVybCgpLnByb3RvY29sSXNJbkhUVFBG
YW1pbHkoKSAmJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudXJsKCkucHJvdG9jb2xJc0luSFRU
UEZhbWlseSgpICYmICFwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwoc2VydmljZVdvcmtlckds
b2JhbFNjb3BlLnVybCgpLCBzb3VyY2VDbGllbnQtPnVybCgpKSkgeworICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lGKCFjb250ZXh0LnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCksIFNlcnZp
Y2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ciAtIFJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBpbnZhbGlkIHNlcnZpY2Ugd29ya2VyIGNsaWVudCAt
IGNvbnRleHQgaXMgJXBcbiIsICZjb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUoc291cmNlQ2xpZW50LT51cmwoKSk7CiAgICAgICAgICAgICBzb3VyY2UgPSBXVEZN
b3ZlKHNvdXJjZUNsaWVudCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBSZWZQdHI8
U2VydmljZVdvcmtlcj4gc291cmNlV29ya2VyID0gU2VydmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUo
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKFdURjo6Z2V0PFNlcnZpY2VXb3JrZXJE
YXRhPihzb3VyY2VEYXRhKSkpOwogCi0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghc291cmNl
V29ya2VyLT5zY3JpcHRVUkwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgIXNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgcHJvdG9j
b2xIb3N0QW5kUG9ydEFyZUVxdWFsKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS51cmwoKSwgc291
cmNlV29ya2VyLT5zY3JpcHRVUkwoKSkpOworICAgICAgICAgICAgaWYgKHNvdXJjZVdvcmtlci0+
c2NyaXB0VVJMKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmIHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgJiYgIXByb3RvY29sSG9zdEFu
ZFBvcnRBcmVFcXVhbChzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudXJsKCksIHNvdXJjZVdvcmtl
ci0+c2NyaXB0VVJMKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYoIWNvbnRl
eHQuc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSwgU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyIC0gUmVjZWl2ZWQgbWVzc2FnZSBm
cm9tIGludmFsaWQgc2VydmljZSB3b3JrZXIgLSBjb250ZXh0IGlzICVwXG4iLCAmY29udGV4dCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBz
b3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNvdXJjZVdvcmtlci0+c2NyaXB0
VVJMKCkpOwogICAgICAgICAgICAgc291cmNlID0gV1RGTW92ZShzb3VyY2VXb3JrZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCA2ZWRjYzAzMzdiN2EyZDE0ZGQzMjA0
M2M5Zjk3MGNkMTRlMjM2NzcyLi4wNTI4ZjY1MzAyZjE5MmIzMGNkNzA3ZjE4MDRmNzgwMjMxYjE0
ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtNjYsNiArNjYsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjp1bmlxdWVfcHRyPEZldGNoTG9hZGVy
PiBjcmVhdGVCbG9iTG9hZGVyKEZldGNoTG9hZGVyQ2xpZW50JiwgY29uc3QgVVJMJik7CiAKICAg
ICBjb25zdCBVUkwmIHNjcmlwdFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQtPnVybCgp
OyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KIAogICAgIC8vIFB1YmxpYyBvbmx5IGZvciB0ZXN0aW5nIHB1cnBvc2VzLgogICAg
IFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdl
KGJvb2wgaXNPbmxpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4
IDlhNjk4ODNiYmIxYjNlYWUyNjkyOWMwNGNhZmQwODU5Y2Y3ZjJjNzguLjZhOWVjZDE1NTFjYmU1
NjZhMjA0ZmJhMDBhZGZkNDM1NGI5NDhjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAKQEAgLTE5OSw3ICsxOTksMTEgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnYKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJFTEVBU0VfQVNTRVJUKGlzVmFsaWRGZXRjaChy
ZXF1ZXN0LCBvcHRpb25zLCBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnNjcmlwdFVSTCgpLCBy
ZWZlcnJlcikpOworICAgIGlmICghaXNWYWxpZEZldGNoKHJlcXVlc3QsIG9wdGlvbnMsIHNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eS0+c2NyaXB0VVJMKCksIHJlZmVycmVyKSkgeworICAgICAgICBS
RUxFQVNFX0xPR19JRighc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5zZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6c3RhcnRGZXRjaCAtIFNlcnZpY2UgV29ya2VyIHJlY2VpdmVkIGFuIGludmFsaWQgZmV0
Y2giLCB0aGlzKTsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoKHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIGF1dG8gY2xpZW50ID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6
Y3JlYXRlKG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MuY29weVJlZigpLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmll
cik7CiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gY2xp
ZW50SWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>