<?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>184385</bug_id>
          
          <creation_ts>2018-04-07 09:27:24 -0700</creation_ts>
          <short_desc>Have WorkerScriptLoader::loadAsynchronously() take a FetchOptions</short_desc>
          <delta_ts>2018-04-07 23:44:18 -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>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>184386</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>mkwst</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1412600</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-07 09:27:24 -0700</bug_when>
    <thetext>Have WorkerScriptLoader::loadAsynchronously() take a ThreadableLoaderOptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412603</commentid>
    <comment_count>1</comment_count>
      <attachid>337425</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-07 09:30:08 -0700</bug_when>
    <thetext>Created attachment 337425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412609</commentid>
    <comment_count>2</comment_count>
      <attachid>337425</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-07 10:13:22 -0700</bug_when>
    <thetext>Comment on attachment 337425
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        to support blocking scripts with a non-JavaScript MIME type in a subsequent commit.

I do not really like to expose ThreadableLoaderOptions outside WorkerScriptLoader, this is an implementation detail and we might want to go away from it.
I do not really like to expose ResourceLoaderOptions either. Again implementation detail, in particular sendLoadCallbacks which is meaningless to WorkerScriptLoader clients.

Ideally we would just pass a FetchOptions and try to compute the other parameters inside WorkerScriptLoader using the ScriptExecutionContext.
Would it be possible to pass FetchOptions + an enum stating whether this is for a service worker job?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412627</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-07 11:18:52 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 337425 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=337425&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        to support blocking scripts with a non-JavaScript MIME type in a subsequent commit.
&gt; 
&gt; I do not really like to expose ThreadableLoaderOptions outside
&gt; WorkerScriptLoader, this is an implementation detail and we might want to go
&gt; away from it.

I do not see the need to guard against such implementation details because WorkerScriptLoader is a facade that provides a convenient API for interacting with a ThreadableLoader. The facade nature of WorkerScriptLoader is analogous to CachedResourceLoader, which adds caching and invalidation logic around ResourceLoader. And ResourceLoaderOptions can be used by both ResourceLoader and CachedResourceLoader. (And this makes sense because CachedResourceLoader is a facade for interacting with ResourceLoader). That is, CachedResourceLoader and WorkerScriptLoader exist as conveniences. A caller does not need to make use of either one and can work with ThreadableLoader and ResourceLoader directly. Although it is preferred and more time efficient for a caller to make use of WorkerScriptLoader or CachedResourceLoader instead of re-implementing equivalent behavior plus or minus the quirk(s) the caller needs for the load.

&gt; I do not really like to expose ResourceLoaderOptions either. Again
&gt; implementation detail, in particular sendLoadCallbacks which is meaningless
&gt; to WorkerScriptLoader clients.
&gt; 

sendLoadCallbacks represents a coupling of the ResourceLoader and FrameLoader code. We should fix this up such that fields on ThreadableLoaderOptions/ResourceLoaderOptions are applicable to loading and not side effects of loading (as exemplified by sendLoadCallbacks). Fixing these issues would avoid exposing &quot;meaningless&quot; options. I do not see the need to fix this up before fixing this bug.

&gt; Ideally we would just pass a FetchOptions and try to compute the other
&gt; parameters inside WorkerScriptLoader using the ScriptExecutionContext.

Keying off of the type of ScriptExecutionContext is not sufficient for asynchronous loading using WorkerScriptLoader because both a Web Worker and Service Worker perform such loads with respect to the Document (i.e. ScriptExecutionContext::isDocument() evaluates true). This is consistent with our current approach of defining a virtual function on ThreadableLoaderClient, isServiceWorkerClient, and querying it at &lt;&lt;https://trac.webkit.org/browser/trunk/Source/WebCore/workers/WorkerScriptLoader.cpp?rev=230346#L99&gt; to differentiate between an asynchronous load initiated as part of creating a Web Worker from an asynchronous load on behalf of the Service Worker machinery.

&gt; Would it be possible to pass FetchOptions + an enum stating whether this is
&gt; for a service worker job?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412630</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-07 11:30:38 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Would it be possible to pass FetchOptions + an enum stating whether this is
&gt; for a service worker job?

I didn&apos;t mean to ignore this question. This seems like bad programming practice as it is comparable to type checking: the enum represents the type information of the caller. It is better to pass information to an algorithm that encapsulates the behavior change than it is to perform type checking in the algorithm itself to change its behavior. Unlike the former, the latter imposes a coupling on the types. ThreadableLoaderOptions and ResourceLoaderOptions encapsulate the various behavioral changes for a load for the most part and I do not see a need to guard exposing ThreadableLoaderOptions. See the paragraph of my reply in comment 3 for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412638</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-07 14:16:08 -0700</bug_when>
    <thetext>Specs are defined in terms of fetch request, not in terms of ThreadableLoader or ResourceLoader.
Ideally we would write loading client code in terms of fetch request fields only.
We are not yet there but we should keep that in mind and try to not expose additional fields.

Exposing ServiceWorkerMode is fine, FetchOptions as well.
Exposing ContentSecurityPolicyEnforcement might not be great but I guess it is there for some time so I am fine keeping it the way it is.

Your pending patch is related to FetchOptions::destination so exposing FetchOptions should be ok, right?

I am ok exposing FetchOptions + ServiceWorkerMode or FetchOptions + ServiceWorkerMode + ContentSecurityPolicyEnforcement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412661</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-07 20:39:10 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Your pending patch is related to FetchOptions::destination so exposing
&gt; FetchOptions should be ok, right?
&gt; 

For now, FetchOptions should be sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412662</commentid>
    <comment_count>7</comment_count>
      <attachid>337440</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-07 20:40:07 -0700</bug_when>
    <thetext>Created attachment 337440
Patch

Updated patch to pass a FetchOptions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412667</commentid>
    <comment_count>8</comment_count>
      <attachid>337440</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-07 21:04:42 -0700</bug_when>
    <thetext>Comment on attachment 337440
Patch

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

&gt; Source/WebCore/loader/ThreadableLoader.h:66
&gt; +        ThreadableLoaderOptions(const FetchOptions&amp;);

We could use explicit here.
In theory we should probably take a FetchOptions&amp;&amp; in case we set integrity in the future for instance.

&gt; Source/WebCore/workers/WorkerScriptLoader.cpp:96
&gt; +    // service worker mode as an argument.

I don&apos;t really understand this comment.
The service worker spec states to set the service worker mode to none in case of a service worker job.
And a service worker job could be executed from a worker/service worker context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412680</commentid>
    <comment_count>9</comment_count>
      <attachid>337440</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-07 23:32:29 -0700</bug_when>
    <thetext>Comment on attachment 337440
Patch

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

&gt;&gt; Source/WebCore/loader/ThreadableLoader.h:66
&gt;&gt; +        ThreadableLoaderOptions(const FetchOptions&amp;);
&gt; 
&gt; We could use explicit here.
&gt; In theory we should probably take a FetchOptions&amp;&amp; in case we set integrity in the future for instance.

Will fix before landing.

&gt;&gt; Source/WebCore/workers/WorkerScriptLoader.cpp:96
&gt;&gt; +    // service worker mode as an argument.
&gt; 
&gt; I don&apos;t really understand this comment.
&gt; The service worker spec states to set the service worker mode to none in case of a service worker job.
&gt; And a service worker job could be executed from a worker/service worker context.

The point of the comment is to explain why we cannot use scriptExecutionContext.isServiceWorkerGlobalScope() to determine the value of serviceWorkersMode as we do in WorkerScriptLoader::loadSynchronously(). From debugging WorkerScriptLoader::loadAsynchronously() can be called from the service worker job machinery with a document script execution context.

I&apos;ll change the comment to read:

A service worker job can be executed from a worker context or document context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412683</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-07 23:43:29 -0700</bug_when>
    <thetext>Committed r230374: &lt;https://trac.webkit.org/changeset/230374&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412684</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-07 23:44:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/39264322&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337425</attachid>
            <date>2018-04-07 09:30:08 -0700</date>
            <delta_ts>2018-04-07 20:40:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184385-20180407093008.patch</filename>
            <type>text/plain</type>
            <size>9797</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA4NjAzYjg0MzY5NmJl
ZWIyZTRmMDZjZjlhYmZiZTVlN2I1NDZmNi4uOGFiYTZjODFmNzYzMmUzMWU0ODVmYTdlMDQ5OTA3
ZjBiOWZhZGE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA0LTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBIYXZlIFdvcmtlclNjcmlw
dExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KCkgdGFrZSBhIFRocmVhZGFibGVMb2FkZXJPcHRp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQz
ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJy
ZW50bHkgd2UgcGFzcyB2YXJpb3VzIGxvYWRlciBvcHRpb25zIHRvIFdvcmtlclNjcmlwdExvYWRl
cjo6bG9hZEFzeW5jaHJvbm91c2x5KCkKKyAgICAgICAgc28gdGhhdCBpdCBjYW4gYnVpbGQgdXAg
YSBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBzdHJ1Y3R1cmUgdG8gcGFzcyB0byB0aGUgbG9hZGVy
LgorICAgICAgICBFYWNoIHRpbWUgd2Ugd2FudCB0byBzZXQgYW5vdGhlciBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyBvcHRpb24gd2UgbmVlZCB0byBhZGQgYQorICAgICAgICBuZXcgcGFyYW1ldGVy
LiBJbnN0ZWFkIHdlIHNob3VsZCBoYXZlIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJv
bm91c2x5KCkgdGFrZQorICAgICAgICBhIFRocmVhZGFibGVMb2FkZXJPcHRpb25zLiBUaGlzIHdp
bGwgbWFrZSBpdCBzdHJhaWdodGZvcndhcmQgZm9yIGEgY2FsbGVyIHRvIHNldAorICAgICAgICBu
ZXcgbG9hZGVyIG9wdGlvbnMgYXMgbmVlZGVkLiBJbiBwYXJ0aWN1bGFyLCB0aGlzIHdpbGwgbWFr
ZSBpdCBzdHJhaWdodGZvcndhcmQgdG8KKyAgICAgICAgc3VwcG9ydCBzZXR0aW5nIHRoZSByZXF1
ZXN0J3MgZGVzdGluYXRpb24gZmxhZyAoaS5lLiBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6ZGVz
dGluYXRpb24pCisgICAgICAgIHRvIHN1cHBvcnQgYmxvY2tpbmcgc2NyaXB0cyB3aXRoIGEgbm9u
LUphdmFTY3JpcHQgTUlNRSB0eXBlIGluIGEgc3Vic2VxdWVudCBjb21taXQuCisKKyAgICAgICAg
Tm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VkLiBTbywgbm8gbmV3IHRlc3RzLgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOiBJ
bnN0YW50aWF0ZSBhbmQgcGFzcyBhIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIHRvIHRoZSBsb2Fk
ZXIuCisgICAgICAgIEJ5IGRlZmF1bHQsIFRocmVhZGFibGVMb2FkZXJPcHRpb25zOjpzZXJ2aWNl
V29ya2Vyc01vZGUgaXMgc2V0IHRvIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsCisgICAgICAgIGFu
ZCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgaXMgc2V0IHRvIHN0ZDo6bnVsbG9wdC4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNj
cmlwdExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6Omxv
YWRBc3luY2hyb25vdXNseSk6IE1vZGlmaWVkIHRvIHRha2UgYSBUaHJlYWRhYmxlTG9hZGVyT3B0
aW9ucworICAgICAgICBhbmQgcGFzcyBpdCB0aHJvdWdoIHRvIHRoZSBsb2FkZXIuCisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9h
ZGVyQ2xpZW50Ojppc1NlcnZpY2VXb3JrZXJDbGllbnQgY29uc3QpOiBEZWxldGVkLiBUaGlzIGZ1
bmN0aW9uCisgICAgICAgIGlzIG5vIGxvbmdlciBuZWVkZWQgYmVjYXVzZSB0aGUgU2VydmljZSBX
b3JrZXIgY2xpZW50IG5vdyBpbnN0YW50aWF0ZXMgYSBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucy4K
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KTogSW5z
dGFudGlhdGUgYW5kIHBhc3MgYSBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucworICAgICAgICB0byB0
aGUgbG9hZGVyLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmg6
CisKIDIwMTgtMDQtMDYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCB0ZXN0IGZpeCBhZnRlciByMjMwMzIzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5jcHAKaW5kZXggNDlkODMyMDY4YmM4ODczOGE3MGNkMTU1NjczMGRjZGYwZGU2MDlhZi4u
NzM1M2NhMzljNTk2M2Y1ZmI1MzY0ODllY2M0ZmYxZWQxMGIzMmJmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmNwcApAQCAtMTAyLDcgKzEwMiwxNiBAQCBFeGNlcHRpb25PcjxSZWY8V29ya2Vy
Pj4gV29ya2VyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpS
dQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBzY3JpcHRVUkwucmVsZWFzZVJldHVy
blZhbHVlKCkgfTsKICAgICByZXF1ZXN0LnNldEluaXRpYXRvcklkZW50aWZpZXIod29ya2VyLT5t
X2lkZW50aWZpZXIpOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25v
dXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVP
cmlnaW4sIEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQsIEZldGNoT3B0aW9uczo6UmVkaXJl
Y3Q6OkZvbGxvdywgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIHdvcmtlcik7CisK
KyAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMuY3JlZGVu
dGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOworICAgIG9wdGlv
bnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBvcHRpb25zLmNh
Y2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKKyAgICBvcHRpb25zLnJlZGlyZWN0
ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OworICAgIG9wdGlvbnMuc2VuZExvYWRD
YWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOworICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9s
aWN5RW5mb3JjZW1lbnQgPSBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDsKKworICAg
IHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZN
b3ZlKHJlcXVlc3QpLCBvcHRpb25zLCB3b3JrZXIpOwogICAgIHJldHVybiBXVEZNb3ZlKHdvcmtl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNw
cAppbmRleCAwMGU4MmM4MTM1ODIzMTkwNzFkYWRlNDIzZjAxOTIzYmVkYzFjMGExLi44OTQ2ZTA0
MzAzM2UzMDI1NzI1NWJhYjk2ZmNiMzk3MmE5YWU1MDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgV29y
a2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpCiAgICAgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseSh3b3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZSgqcmVxdWVzdCksICp0aGlz
LCBvcHRpb25zKTsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25v
dXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNv
dXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwgRmV0
Y2hPcHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSwgRmV0Y2hPcHRpb25zOjpSZWRpcmVjdCByZWRp
cmVjdFBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgY29udGVudFNlY3Vy
aXR5UG9saWN5RW5mb3JjZW1lbnQsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQor
dm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3Jp
cHRSZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgbV9jbGllbnQgPSAmY2xpZW50Owog
ICAgIG1fdXJsID0gc2NyaXB0UmVxdWVzdC51cmwoKTsKQEAgLTg2LDIwICs4Niw4IEBAIHZvaWQg
V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgc2NyaXB0RXhlY3V0CiAKICAgICAvLyBPbmx5IHVzZWQgZm9yIGxvYWRpbmcgd29ya2Vy
IHNjcmlwdHMgaW4gY2xhc3NpYyBtb2RlLgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGFu
IG9wdGlvbiB0byBzZXQgY3JlZGVudGlhbCBtb2RlLgotICAgIEFTU0VSVChtb2RlID09IEZldGNo
T3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbik7CisgICAgQVNTRVJUKG9wdGlvbnMubW9kZSA9PSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4pOwogCi0gICAgVGhyZWFkYWJsZUxvYWRlck9w
dGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFsczo6U2FtZU9yaWdpbjsKLSAgICBvcHRpb25zLm1vZGUgPSBtb2RlOwotICAgIG9w
dGlvbnMuY2FjaGUgPSBjYWNoZVBvbGljeTsKLSAgICBvcHRpb25zLnJlZGlyZWN0ID0gcmVkaXJl
Y3RQb2xpY3k7Ci0gICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja3M7
Ci0gICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OwotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAg
ICBvcHRpb25zLnNlcnZpY2VXb3JrZXJzTW9kZSA9IG1fY2xpZW50LT5pc1NlcnZpY2VXb3JrZXJD
bGllbnQoKSA/IFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSA6IFNlcnZpY2VXb3JrZXJzTW9kZTo6
QWxsOwotICAgIGlmIChhdXRvKiBhY3RpdmVTZXJ2aWNlV29ya2VyID0gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5hY3RpdmVTZXJ2aWNlV29ya2VyKCkpCi0gICAgICAgIG9wdGlvbnMuc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBhY3RpdmVTZXJ2aWNlV29ya2VyLT5yZWdpc3Ry
YXRpb25JZGVudGlmaWVyKCk7Ci0jZW5kaWYKICAgICAvLyBEdXJpbmcgY3JlYXRlLCBjYWxsYmFj
a3MgbWF5IGhhcHBlbiB3aGljaCByZW1vdmUgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2Jq
ZWN0LgogICAgIFJlZjxXb3JrZXJTY3JpcHRMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwog
ICAgIG1fdGhyZWFkYWJsZUxvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCAqdGhpcywgV1RGTW92ZSgqcmVxdWVzdCksIG9wdGlvbnMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggYTAwZmM1N2Jk
MjM0OTFkOGI4OWZhODMzMGIwNTcxYTE3YjZjYzM2MS4uMWI5ZjdkOWQ2ODUzMDA3ODZmZTg2ODg0
MGU3NWE3NmFmZjQ1NjFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIGxv
YWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRj
aE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9uczo6Q2FjaGUsIENvbnRlbnRTZWN1cml0eVBvbGlj
eUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZpZXIpOwotICAgIHZv
aWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJl
cXVlc3QmJiwgRmV0Y2hPcHRpb25zOjpNb2RlLCBGZXRjaE9wdGlvbnM6OkNhY2hlLCBGZXRjaE9w
dGlvbnM6OlJlZGlyZWN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50Jik7CisgICAgdm9pZCBsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyYsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYpOwogCiAgICAgdm9pZCBub3Rp
ZnlFcnJvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNj
cmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRM
b2FkZXJDbGllbnQuaAppbmRleCA3MjI5MDliYTMzZmMwYzlkMzFjYWE1NzFlZjYyMjQ3NTc3YjIw
N2MzLi4yNzRjZTQ4ZTFkNmYzZmIwNjk0ZDIyNTZkMTZmMzVlYWEzNTk3NjVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgKQEAgLTM0
LDcgKzM0LDYgQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
RmluaXNoZWQoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzU2VydmljZVdvcmtlckNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Xb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKaW5kZXggNzYwNjk4NTgyMzA4
MDExMGVjY2RkNGFlODVkNTdmMTIzNWYxYzg4Mi4uMjlkNTMyNTczYzVhZmI4YTA5YmMzZDA0NjU0
NzRkMzNiZWM5NGQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VySm9iLmNwcApAQCAtOTgsNyArOTgsMTggQEAgdm9pZCBTZXJ2aWNlV29y
a2VySm9iOjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIEYKICAgICByZXF1ZXN0LnNldEluaXRpYXRvcklkZW50aWZpZXIoInNlcnZpY2VXb3Jr
ZXJTY3JpcHRMb2FkOiIpOwogICAgIHJlcXVlc3QuYWRkSFRUUEhlYWRlckZpZWxkKEFTQ0lJTGl0
ZXJhbCgiU2VydmljZS1Xb3JrZXIiKSwgQVNDSUlMaXRlcmFsKCJzY3JpcHQiKSk7CiAKLSAgICBt
X3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVz
dCksIEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbiwgY2FjaGVQb2xpY3ksIEZldGNoT3B0
aW9uczo6UmVkaXJlY3Q6OkVycm9yLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6
RG9Ob3RFbmZvcmNlLCAqdGhpcyk7CisgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9u
czsKKyAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6
U2FtZU9yaWdpbjsKKyAgICBvcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVP
cmlnaW47CisgICAgb3B0aW9ucy5jYWNoZSA9IGNhY2hlUG9saWN5OworICAgIG9wdGlvbnMucmVk
aXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjsKKyAgICBvcHRpb25zLnNlbmRM
b2FkQ2FsbGJhY2tzID0gU2VuZENhbGxiYWNrczsKKyAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50ID0gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRv
Tm90RW5mb3JjZTsKKyAgICBvcHRpb25zLnNlcnZpY2VXb3JrZXJzTW9kZSA9IFNlcnZpY2VXb3Jr
ZXJzTW9kZTo6Tm9uZTsKKyAgICBpZiAoYXV0byogYWN0aXZlU2VydmljZVdvcmtlciA9IGNvbnRl
eHQuYWN0aXZlU2VydmljZVdvcmtlcigpKQorICAgICAgICBvcHRpb25zLnNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyID0gYWN0aXZlU2VydmljZVdvcmtlci0+cmVnaXN0cmF0aW9u
SWRlbnRpZmllcigpOworCisgICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShj
b250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCAqdGhpcyk7CiB9CiAKIHZvaWQgU2Vy
dmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKaW5kZXggZWU1ZGFhZmUxYTU2YzEyZGEwMGQyMTQz
ZjYyMjNlMTc3NTg2OWE0NS4uMGFiZDIxOTQzZTFmODAzNjliMTk2NzI2ZmU1Y2IwZGIxYWI2YjVk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYi5oCkBAIC03OCw4ICs3OCw2IEBAIHByaXZhdGU6CiAgICAgLy8gV29ya2VyU2NyaXB0TG9h
ZGVyQ2xpZW50CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CiAgICAgdm9pZCBub3RpZnlG
aW5pc2hlZCgpIGZpbmFsOwotICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyQ2xpZW50KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotCiAKICAgICBSZWY8U2VydmljZVdvcmtlckpvYkNsaWVu
dD4gbV9jbGllbnQ7CiAgICAgU2VydmljZVdvcmtlckpvYkRhdGEgbV9qb2JEYXRhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337440</attachid>
            <date>2018-04-07 20:40:07 -0700</date>
            <delta_ts>2018-04-07 21:04:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184385-20180407204006.patch</filename>
            <type>text/plain</type>
            <size>11245</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA4NjAzYjg0MzY5NmJl
ZWIyZTRmMDZjZjlhYmZiZTVlN2I1NDZmNi4uMGNkMTc3ZTQ4M2JhMDNhZDYwZDEwMDIzZWUzY2Jh
MzE4ZmQ1NDg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTA0LTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBIYXZlIFdvcmtlclNjcmlw
dExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KCkgdGFrZSBhIEZldGNoT3B0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Mzg1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IHdlIHBh
c3MgdmFyaW91cyBGZXRjaE9wdGlvbnMgdG8gV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNo
cm9ub3VzbHkoKQorICAgICAgICBzbyB0aGF0IGl0IGNhbiBidWlsZCB1cCBhIFRocmVhZGFibGVM
b2FkZXJPcHRpb25zIHN0cnVjdHVyZSB0byBwYXNzIHRvIHRoZSBsb2FkZXIuCisgICAgICAgIEVh
Y2ggdGltZSB3ZSB3YW50IHRvIHNldCBhbm90aGVyIEZldGNoT3B0aW9ucyBvcHRpb24gd2UgbmVl
ZCB0byBhZGQgYSBuZXcgcGFyYW1ldGVyLgorICAgICAgICBJbnN0ZWFkIHdlIHNob3VsZCBoYXZl
IFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KCkgdGFrZSBhIEZldGNoT3B0
aW9ucy4KKyAgICAgICAgVGhpcyB3aWxsIG1ha2UgaXQgc3RyYWlnaHRmb3J3YXJkIGZvciBhIGNh
bGxlciB0byBzZXQgbmV3IGxvYWRlciBvcHRpb25zIGFzIG5lZWRlZC4KKyAgICAgICAgSW4gcGFy
dGljdWxhciwgdGhpcyB3aWxsIG1ha2UgaXQgc3RyYWlnaHRmb3J3YXJkIHRvIHN1cHBvcnQgc2V0
dGluZyB0aGUgcmVxdWVzdCdzCisgICAgICAgIGRlc3RpbmF0aW9uIGZsYWcgKGkuZS4gRmV0Y2hP
cHRpb25zOjpkZXN0aW5hdGlvbikgdG8gc3VwcG9ydCBibG9ja2luZyBzY3JpcHRzIHdpdGgKKyAg
ICAgICAgYSBub24tSmF2YVNjcmlwdCBNSU1FIHR5cGUgaW4gYSBzdWJzZXF1ZW50IGNvbW1pdC4K
KworICAgICAgICBObyBmdW5jdGlvbmFsaXR5IGNoYW5nZWQuIFNvLCBubyBuZXcgdGVzdHMuCisK
KyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyk6IEFkZGVkIGhlbHBlciBjb25zdHJ1Y3RvciB0aGF0
IHRha2VzIGEgRmV0Y2hPcHRpb25zLgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVy
Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyOjpjcmVhdGUpOiBJbnN0YW50aWF0ZSBhbmQgcGFzcyBhIEZldGNoT3B0aW9ucyB0byB0aGUg
bG9hZGVyIGZvciB0aGUgbW9kZSwKKyAgICAgICAgY2FjaGUgcG9saWN5LCBhbmQgcmVkaXJlY3Qg
cG9saWN5LgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KTogTW9k
aWZpZWQgdG8gdGFrZSBhIEZldGNoT3B0aW9ucyBhbmQKKyAgICAgICAgaW5zdGFudGlhdGUgYSBU
aHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBmcm9tIGl0LgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXJDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlckNsaWVudDo6aXNTZXJ2
aWNlV29ya2VyQ2xpZW50IGNvbnN0KTogRGVsZXRlZC4gVGhpcyBmdW5jdGlvbgorICAgICAgICBp
cyBubyBsb25nZXIgbmVlZGVkIGJlY2F1c2UgdGhlIFNlcnZpY2UgV29ya2VyIGNsaWVudCBub3cg
cGFzc2VzIHRoZSBzZXJ2aWNlIHdvcmtlciBtb2RlCisgICAgICAgIGRpcmVjdGx5IHRvIHRoZSBs
b2FkZXIuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4
dCk6IEluc3RhbnRpYXRlIGFuZCBwYXNzIGEgRmV0Y2hPcHRpb25zCisgICAgICAgIHRvIHRoZSBs
b2FkZXIuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaDoKKwog
MjAxOC0wNC0wNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkIHRlc3QgZml4IGFmdGVyIHIyMzAzMjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9UaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBhZWQ3YjE0YWU0MDA1YTFmNTRiZjgwMjM4ZDky
NTY1NjJlODc3NGI3Li40OWRjNGEzYTRiMGQ5ODg3YTAyMDc5NTIyYmVmMjNmOGQwN2I5ODJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCkBAIC00OSw2ICs0
OSwxMSBAQCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6VGhyZWFkYWJsZUxvYWRlck9wdGlvbnMo
KQogCiBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6flRocmVhZGFibGVMb2FkZXJPcHRpb25zKCkg
PSBkZWZhdWx0OwogCitUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6VGhyZWFkYWJsZUxvYWRlck9w
dGlvbnMoY29uc3QgRmV0Y2hPcHRpb25zJiBiYXNlT3B0aW9ucykKKyAgICA6IFJlc291cmNlTG9h
ZGVyT3B0aW9ucyB7IGJhc2VPcHRpb25zIH0KK3sKK30KKwogVGhyZWFkYWJsZUxvYWRlck9wdGlv
bnM6OlRocmVhZGFibGVMb2FkZXJPcHRpb25zKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYg
YmFzZU9wdGlvbnMsIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3ksIENvbnRlbnRTZWN1
cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBT
dHJpbmcmJiBpbml0aWF0b3IsIFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5IGZpbHRlcmluZ1BvbGlj
eSkKICAgICA6IFJlc291cmNlTG9hZGVyT3B0aW9ucyhiYXNlT3B0aW9ucykKICAgICAsIHByZWZs
aWdodFBvbGljeShwcmVmbGlnaHRQb2xpY3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFi
bGVMb2FkZXIuaAppbmRleCAzMGIyMWNmYjliZWNmNzgyOTBkZTU2MjQwMTcwNjI3YTVhZWU5YzEz
Li4zYTIwZTFlM2VkNWI5MjI5OGVhZDhmY2VmMTFhMWViNWQwMjNkMWFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKQEAgLTYzLDYgKzYzLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgc3RydWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zIDogUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zIHsKICAgICAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMoKTsKKyAg
ICAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMoY29uc3QgRmV0Y2hPcHRpb25zJik7CiAgICAg
ICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYs
IFByZWZsaWdodFBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFN0cmlu
ZyYmIGluaXRpYXRvciwgUmVzcG9uc2VGaWx0ZXJpbmdQb2xpY3kpOwogICAgICAgICB+VGhyZWFk
YWJsZUxvYWRlck9wdGlvbnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDQ5
ZDgzMjA2OGJjODg3MzhhNzBjZDE1NTY3MzBkY2RmMGRlNjA5YWYuLjQyMmViOTk4ZDIxZGYzZjEx
NWIxMWU1ZTlkZmFlMDZjMjdhNmFlNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAg
LTEwMiw3ICsxMDIsMTIgQEAgRXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IFdvcmtlcjo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6UnUKIAogICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0IHsgc2NyaXB0VVJMLnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH07CiAgICAg
cmVxdWVzdC5zZXRJbml0aWF0b3JJZGVudGlmaWVyKHdvcmtlci0+bV9pZGVudGlmaWVyKTsKLSAg
ICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RG
TW92ZShyZXF1ZXN0KSwgRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luLCBGZXRjaE9wdGlv
bnM6OkNhY2hlOjpEZWZhdWx0LCBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3csIGNvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCB3b3JrZXIpOworCisgICAgRmV0Y2hPcHRpb25z
IG9wdGlvbnM7CisgICAgb3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3Jp
Z2luOworICAgIG9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0Owor
ICAgIG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7Cisg
ICAgd29ya2VyLT5tX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdU
Rk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKICAgICByZXR1cm4gV1RGTW92ZSh3
b3JrZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNj
cmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRl
ci5jcHAKaW5kZXggMDBlODJjODEzNTgyMzE5MDcxZGFkZTQyM2YwMTkyM2JlZGMxYzBhMS4uOTA4
ZTI0ZTg4NWY1MmZmNDU4YzUzZDNhMTI5NmU4ZjlkNDZlZWI3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lk
IFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aQogICAgIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkod29ya2VyR2xvYmFsU2NvcGUsIFdURk1vdmUoKnJlcXVlc3QpLCAq
dGhpcywgb3B0aW9ucyk7CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNo
cm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
UmVzb3VyY2VSZXF1ZXN0JiYgc2NyaXB0UmVxdWVzdCwgRmV0Y2hPcHRpb25zOjpNb2RlIG1vZGUs
IEZldGNoT3B0aW9uczo6Q2FjaGUgY2FjaGVQb2xpY3ksIEZldGNoT3B0aW9uczo6UmVkaXJlY3Qg
cmVkaXJlY3RQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVu
dCkKK3ZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0JiYg
c2NyaXB0UmVxdWVzdCwgY29uc3QgRmV0Y2hPcHRpb25zJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRl
ckNsaWVudCYgY2xpZW50KQogewogICAgIG1fY2xpZW50ID0gJmNsaWVudDsKICAgICBtX3VybCA9
IHNjcmlwdFJlcXVlc3QudXJsKCk7CkBAIC04NiwyMCArODYsMjAgQEAgdm9pZCBXb3JrZXJTY3Jp
cHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3Jp
cHRFeGVjdXQKIAogICAgIC8vIE9ubHkgdXNlZCBmb3IgbG9hZGluZyB3b3JrZXIgc2NyaXB0cyBp
biBjbGFzc2ljIG1vZGUuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhZGQgYW4gb3B0aW9uIHRv
IHNldCBjcmVkZW50aWFsIG1vZGUuCi0gICAgQVNTRVJUKG1vZGUgPT0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpTYW1lT3JpZ2luKTsKKyAgICBBU1NFUlQoZmV0Y2hPcHRpb25zLm1vZGUgPT0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luKTsKIAotICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25z
IG9wdGlvbnM7CisgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9ucyB7IGZldGNoT3B0
aW9ucyB9OwogICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzOjpTYW1lT3JpZ2luOwotICAgIG9wdGlvbnMubW9kZSA9IG1vZGU7Ci0gICAgb3B0aW9ucy5j
YWNoZSA9IGNhY2hlUG9saWN5OwotICAgIG9wdGlvbnMucmVkaXJlY3QgPSByZWRpcmVjdFBvbGlj
eTsKICAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gU2VuZENhbGxiYWNrczsKICAgICBv
cHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gY29udGVudFNlY3VyaXR5
UG9saWN5RW5mb3JjZW1lbnQ7CisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhbHdheXMgY2FsbGVk
IGZyb20gYSBkb2N1bWVudCBjb250ZXh0LiBTbywgd2UgbXVzdCBleHBsaWNpdGx5IHRha2UgdGhl
CisgICAgLy8gc2VydmljZSB3b3JrZXIgbW9kZSBhcyBhbiBhcmd1bWVudC4KKyAgICBvcHRpb25z
LnNlcnZpY2VXb3JrZXJzTW9kZSA9IHNlcnZpY2VXb3JrZXJNb2RlOwogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLSAgICBvcHRpb25zLnNlcnZpY2VXb3JrZXJzTW9kZSA9IG1fY2xpZW50LT5p
c1NlcnZpY2VXb3JrZXJDbGllbnQoKSA/IFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSA6IFNlcnZp
Y2VXb3JrZXJzTW9kZTo6QWxsOwogICAgIGlmIChhdXRvKiBhY3RpdmVTZXJ2aWNlV29ya2VyID0g
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC5hY3RpdmVTZXJ2aWNlV29ya2VyKCkpCiAgICAgICAgIG9w
dGlvbnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBhY3RpdmVTZXJ2aWNl
V29ya2VyLT5yZWdpc3RyYXRpb25JZGVudGlmaWVyKCk7CiAjZW5kaWYKKwogICAgIC8vIER1cmlu
ZyBjcmVhdGUsIGNhbGxiYWNrcyBtYXkgaGFwcGVuIHdoaWNoIHJlbW92ZSB0aGUgbGFzdCByZWZl
cmVuY2UgdG8gdGhpcyBvYmplY3QuCiAgICAgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gcHJvdGVj
dGVkVGhpcygqdGhpcyk7CiAgICAgbV90aHJlYWRhYmxlTG9hZGVyID0gVGhyZWFkYWJsZUxvYWRl
cjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzLCBXVEZNb3ZlKCpyZXF1ZXN0
KSwgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNj
cmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIu
aAppbmRleCBhMDBmYzU3YmQyMzQ5MWQ4Yjg5ZmE4MzMwYjA1NzFhMTdiNmNjMzYxLi5mMmUwZTc5
N2Y2YTBmOWVjMTRkMzcyOWE0MTA5ZmE3YTE3NGNmNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHZvaWQgbG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFVSTCYsIEZldGNoT3B0aW9uczo6TW9kZSwgRmV0Y2hPcHRpb25zOjpDYWNoZSwgQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9ySWRl
bnRpZmllcik7Ci0gICAgdm9pZCBsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9u
czo6Q2FjaGUsIEZldGNoT3B0aW9uczo6UmVkaXJlY3QsIENvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50LCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmKTsKKyAgICB2b2lkIGxvYWRBc3lu
Y2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNv
bnN0IEZldGNoT3B0aW9ucyYsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2
aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYpOwogCiAgICAgdm9pZCBu
b3RpZnlFcnJvcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3Jp
cHRMb2FkZXJDbGllbnQuaAppbmRleCA3MjI5MDliYTMzZmMwYzlkMzFjYWE1NzFlZjYyMjQ3NTc3
YjIwN2MzLi4yNzRjZTQ4ZTFkNmYzZmIwNjk0ZDIyNTZkMTZmMzVlYWEzNTk3NjVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgKQEAg
LTM0LDcgKzM0LDYgQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5RmluaXNoZWQoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzU2VydmljZVdvcmtlckNsaWVu
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5X
b3JrZXJTY3JpcHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKaW5kZXggNzYwNjk4NTgy
MzA4MDExMGVjY2RkNGFlODVkNTdmMTIzNWYxYzg4Mi4uMDZkMTEwZjdiNDVmYjRjZTc5ZWQ0YmVj
MTYzNGYxMzUwMTc1MDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcApAQCAtOTgsNyArOTgsMTEgQEAgdm9pZCBTZXJ2aWNl
V29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIEYKICAgICByZXF1ZXN0LnNldEluaXRpYXRvcklkZW50aWZpZXIoInNlcnZpY2VX
b3JrZXJTY3JpcHRMb2FkOiIpOwogICAgIHJlcXVlc3QuYWRkSFRUUEhlYWRlckZpZWxkKEFTQ0lJ
TGl0ZXJhbCgiU2VydmljZS1Xb3JrZXIiKSwgQVNDSUlMaXRlcmFsKCJzY3JpcHQiKSk7CiAKLSAg
ICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVx
dWVzdCksIEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbiwgY2FjaGVQb2xpY3ksIEZldGNo
T3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVu
dDo6RG9Ob3RFbmZvcmNlLCAqdGhpcyk7CisgICAgRmV0Y2hPcHRpb25zIG9wdGlvbnM7CisgICAg
b3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luOworICAgIG9wdGlv
bnMuY2FjaGUgPSBjYWNoZVBvbGljeTsKKyAgICBvcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRp
b25zOjpSZWRpcmVjdDo6RXJyb3I7CisgICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25v
dXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlLCBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUs
ICp0aGlzKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
dW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaAppbmRleCBl
ZTVkYWFmZTFhNTZjMTJkYTAwZDIxNDNmNjIyM2UxNzc1ODY5YTQ1Li4wYWJkMjE5NDNlMWY4MDM2
OWIxOTY3MjZmZTVjYjBkYjFhYjZiNWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKQEAgLTc4LDggKzc4LDYgQEAgcHJpdmF0ZToK
ICAgICAvLyBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBm
aW5hbDsKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7Ci0gICAgYm9vbCBpc1NlcnZp
Y2VXb3JrZXJDbGllbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0KIAogICAgIFJl
ZjxTZXJ2aWNlV29ya2VySm9iQ2xpZW50PiBtX2NsaWVudDsKICAgICBTZXJ2aWNlV29ya2VySm9i
RGF0YSBtX2pvYkRhdGE7Cg==
</data>
<flag name="review"
          id="355849"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>