<?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>220521</bug_id>
          
          <creation_ts>2021-01-11 11:58:47 -0800</creation_ts>
          <short_desc>Add experimental feature to use network loader</short_desc>
          <delta_ts>2021-01-26 17:47:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1718761</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-11 11:58:47 -0800</bug_when>
    <thetext>Add experimental feature to use network loader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718767</commentid>
    <comment_count>1</comment_count>
      <attachid>417397</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-11 12:01:24 -0800</bug_when>
    <thetext>Created attachment 417397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718768</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-11 12:01:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/69394713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718809</commentid>
    <comment_count>3</comment_count>
      <attachid>417397</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-11 13:51:12 -0800</bug_when>
    <thetext>Comment on attachment 417397
Patch

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

&gt; Source/WTF/ChangeLog:9
&gt; +        * Scripts/Preferences/WebPreferencesExperimental.yaml:

I know we have done this in the past, but thinking about it, I&apos;m not sure it makes sense to use the preferences infrastructure for network process functionality, unless we are passing that preference on every request from a web process.

With our current setup, it seems like it would make more sense as API for the data store.

&gt; Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:594
&gt; +NetworkLoaderEnabled:

This name seems way to generic. How about something like ExperimentalCFNetworkLibNetworkLoaderEnabled (same idea for the HAVE and the human readable names/descriptions).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721057</commentid>
    <comment_count>4</comment_count>
      <attachid>417397</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-20 17:53:22 -0800</bug_when>
    <thetext>Comment on attachment 417397
Patch

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

&gt;&gt; Source/WTF/ChangeLog:9
&gt;&gt; +        * Scripts/Preferences/WebPreferencesExperimental.yaml:
&gt; 
&gt; I know we have done this in the past, but thinking about it, I&apos;m not sure it makes sense to use the preferences infrastructure for network process functionality, unless we are passing that preference on every request from a web process.
&gt; 
&gt; With our current setup, it seems like it would make more sense as API for the data store.

I disagree.  We want it to be in the experimental features list in the UI, and this is how to do it.
I manually pass the value into the NetworkProcess through NetworkSessionCreationParameters.  Are you saying that it is also sent to the web process through generated code?  If so, and if that becomes a problem, I think we should add something to the yaml to tell it not to do that, kind of like webcoreBinding: none

&gt;&gt; Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:594
&gt;&gt; +NetworkLoaderEnabled:
&gt; 
&gt; This name seems way to generic. How about something like ExperimentalCFNetworkLibNetworkLoaderEnabled (same idea for the HAVE and the human readable names/descriptions).

Ok.  I wasn&apos;t sure we wanted to be that explicit, but now there&apos;s no reason not to be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721062</commentid>
    <comment_count>5</comment_count>
      <attachid>418009</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-20 18:08:12 -0800</bug_when>
    <thetext>Created attachment 418009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721250</commentid>
    <comment_count>6</comment_count>
      <attachid>418009</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-01-21 11:19:49 -0800</bug_when>
    <thetext>Comment on attachment 418009
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h:101
&gt; +    bool useNetworkLoader { false };

I think I would call this &quot;useLibNetworkLoader&quot; (to match the experimental feature name) or &quot;useNWLoader&quot; (to match the CFNetwork name). &quot;Network&quot; is a bit generic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721256</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-01-21 11:25:35 -0800</bug_when>
    <thetext>&gt; &gt; I know we have done this in the past, but thinking about it, I&apos;m not sure it makes sense to use the preferences infrastructure for network process functionality, unless we are passing that preference on every request from a web process.
&gt; &gt; 
&gt; &gt; With our current setup, it seems like it would make more sense as API for the data store.
&gt; 
&gt; I disagree.  We want it to be in the experimental features list in the UI,
&gt; and this is how to do it.
&gt; I manually pass the value into the NetworkProcess through
&gt; NetworkSessionCreationParameters.

I think I see two points being made here:

(1) It&apos;s nice to use the WebKit prefs infrastructure because that&apos;s how experimental features work;

(2) It&apos;s odd to program this pref in a way that can change within the lifetime of a give website data store (for example, between not launching and launching the first network process, and after a network process crash).

Maybe we can synthesize these points by having the website data store read and store the experimental feature pref in its constructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721259</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-01-21 11:33:14 -0800</bug_when>
    <thetext>Thinking a little more, does the &quot;API for the data store&quot; suggestion mean:

(A) Public API on WKWebsiteDataStore? -- (seems super problematic, so probably not?)

(B) Private SPI on WKWebsiteDataStore? -- (less problematic, but still not obvious how to make this work with experimental features infrastructure)

(C) Part of the interface to WebKit::WebsiteDataStore::WebsiteDataStore(), passed in through WebKit::WebsiteDataStoreConfiguration? -- (seems reasonable to me)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721260</commentid>
    <comment_count>9</comment_count>
      <attachid>418009</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-01-21 11:34:40 -0800</bug_when>
    <thetext>Comment on attachment 418009
Patch

I&apos;ll say r+ since this patch follows the existing convention, but let&apos;s keep talking about whether we can improve on that convention.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721280</commentid>
    <comment_count>10</comment_count>
      <attachid>418069</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-21 12:29:46 -0800</bug_when>
    <thetext>Created attachment 418069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721354</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-21 14:55:26 -0800</bug_when>
    <thetext>Committed r271714: &lt;https://trac.webkit.org/changeset/271714&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418069.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721893</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-23 18:19:17 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 417397 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417397&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/ChangeLog:9
&gt; &gt;&gt; +        * Scripts/Preferences/WebPreferencesExperimental.yaml:
&gt; &gt; 
&gt; &gt; I know we have done this in the past, but thinking about it, I&apos;m not sure it makes sense to use the preferences infrastructure for network process functionality, unless we are passing that preference on every request from a web process.
&gt; &gt; 
&gt; &gt; With our current setup, it seems like it would make more sense as API for the data store.
&gt; 
&gt; I disagree.  We want it to be in the experimental features list in the UI,
&gt; and this is how to do it.

I think you misunderstand what the experimental preferences infrastructure is. I understand you want something in the UI in Safari, and that seems fine, but doing it through the existing experimental features infrastructure is incorrect as they are part of the WebPreferences class which is not global. The expectation of the SPI is that for any WebPreferences object you have you can get and set the experimental features state, and this change breaks that invariant. 

Specially, it&apos;s the code in WebsiteDataStoreCocoa.mm that is bad here. It is possible to use preferences (and therefore the experimental features infrastructure) if ensure that the preferences state being set is used, probably by passing it for each request, but it could also be done in other ways.

I have put quite a bit of effort in trying to clean up the preferences lately, so I would appreciate if you would fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722206</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-01-25 12:40:35 -0800</bug_when>
    <thetext>Sam, can you clarify your suggestion by answering the question in comment 8?

But also: Why is it a goal to make all experimental features gettable and settable at any time on a per-WebView basis? Does this even work? Like, if you turn on WebGL 2.0 or WebGPU and then turn it off in a live webpage.... what is the expectation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722223</commentid>
    <comment_count>14</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-25 13:07:41 -0800</bug_when>
    <thetext>We need to have a way for experimental features to affect things in the network process.  I&apos;m open to suggestions and willing to improve things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722720</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-26 14:15:59 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #13)
&gt; Sam, can you clarify your suggestion by answering the question in comment 8?

(In reply to Geoffrey Garen from comment #8)
&gt; Thinking a little more, does the &quot;API for the data store&quot; suggestion mean:
&gt; 
&gt; (A) Public API on WKWebsiteDataStore? -- (seems super problematic, so
&gt; probably not?)
&gt; 
&gt; (B) Private SPI on WKWebsiteDataStore? -- (less problematic, but still not
&gt; obvious how to make this work with experimental features infrastructure)
&gt; 
&gt; (C) Part of the interface to WebKit::WebsiteDataStore::WebsiteDataStore(),
&gt; passed in through WebKit::WebsiteDataStoreConfiguration? -- (seems
&gt; reasonable to me)

My suggestion was B. You would make this work by changing the Safari code that creates the experimental features menu to also create a menu item for this.

&gt; 
&gt; But also: Why is it a goal to make all experimental features gettable and
&gt; settable at any time on a per-WebView basis? 

It&apos;s not actually per-WKWebView, and I am not sure it is a goal per-say, it is just how the API was designed. Experimental Features are gotten and set on a WKPreferences, which is not a global object. &quot;Experimental Features&quot; are just fancy web preferences. If someone wants to create a new thing that is global, that could probably be done, that&apos;s just not what the &quot;experimental features&quot; feature is. 

Does this even work? Like, if
&gt; you turn on WebGL 2.0 or WebGPU and then turn it off in a live webpage....
&gt; what is the expectation?

This is a slightly different question. The answer depends on the preference. Most cause future attempts to use the feature not work (if you disable it after a page load), some, do other things like force a style recalc so they can be applied right away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722721</commentid>
    <comment_count>16</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-26 14:19:53 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #14)
&gt; We need to have a way for experimental features to affect things in the
&gt; network process.  I&apos;m open to suggestions and willing to improve things.

If you would like the existing &quot;experimental features&quot; mechanism to affect functionality in the Network Process, the way to do that would have the preferences flow to the network process on a per-page basis, meaning the network process may have to have to operate in both modes at the same time, depending on which page is requesting action from the network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722726</commentid>
    <comment_count>17</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-26 14:22:52 -0800</bug_when>
    <thetext>Right now reading experimental feature status seems to be implemented using NSUserDefaults which is UIProcess-global.  Are there plans to change that?

Since that is the case, I have no problem adding something to the yaml like exposed: [ NetworkProcess ] then having it only exposed in the network process.  Would you oppose something like that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722731</commentid>
    <comment_count>18</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-26 14:36:16 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #17)
&gt; Right now reading experimental feature status seems to be implemented using
&gt; NSUserDefaults which is UIProcess-global.  Are there plans to change that?

That is not how experimental features work, that is just a hack someone added to make it seemed like it worked for Safari&apos;s use case and happens to work due to the fact that safari syncs uses preferences synced to NSUserDefaults.

To see the actual implementation of experimental features, you can look in WebPreferences, tracing the calls from the SPI:

+ (NSArray&lt;_WKExperimentalFeature *&gt; *)_experimentalFeatures WK_API_AVAILABLE(macos(10.12), ios(10.0));
- (BOOL)_isEnabledForFeature:(_WKExperimentalFeature *)feature WK_API_AVAILABLE(macos(10.12), ios(10.0));
- (void)_setEnabled:(BOOL)value forFeature:(_WKExperimentalFeature *)feature WK_API_AVAILABLE(macos(10.12), ios(10.0));
- (BOOL)_isEnabledForExperimentalFeature:(_WKExperimentalFeature *)feature WK_API_AVAILABLE(macos(10.12), ios(10.0));
- (void)_setEnabled:(BOOL)value forExperimentalFeature:(_WKExperimentalFeature *)feature WK_API_AVAILABLE(macos(10.12), ios(10.0));


&gt; Since that is the case, I have no problem adding something to the yaml like
&gt; exposed: [ NetworkProcess ] then having it only exposed in the network
&gt; process.  Would you oppose something like that?

I would oppose that for the reason stated above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722733</commentid>
    <comment_count>19</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-26 14:40:32 -0800</bug_when>
    <thetext>What about &quot;exposed: [ WebsiteDataStore ]&quot; in the yaml?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722734</commentid>
    <comment_count>20</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-26 14:54:20 -0800</bug_when>
    <thetext>I guess instead of putting it in WebPreferencesExperimental.yaml it could go in WebsiteDataStoreExperimental.yaml

The reason I would prefer not to make SPI on WKWebsiteDataStore is that there are already two experimental features in the network process and I am aware of more on the way.  I think it would be cleaner to have a set of experimental features for the network process using similarly generated code.  I get that it should be separate from WebPreferencesExperimental.  Do you still dislike this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722796</commentid>
    <comment_count>21</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-26 17:47:41 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #20)
&gt; I guess instead of putting it in WebPreferencesExperimental.yaml it could go
&gt; in WebsiteDataStoreExperimental.yaml
&gt; 
&gt; The reason I would prefer not to make SPI on WKWebsiteDataStore is that
&gt; there are already two experimental features in the network process and I am
&gt; aware of more on the way.  I think it would be cleaner to have a set of
&gt; experimental features for the network process using similarly generated
&gt; code.  I get that it should be separate from WebPreferencesExperimental.  Do
&gt; you still dislike this?

Again, and if I haven&apos;t made this clear, my apologies, I don&apos;t have any issue with this being done though the experimental features infrastructure as long as it is actually done via the experimental features infrastructure, which means making per-WebPreferences, not global as it currently is. This would likely mean piping the state preferences state with requests, but could also be implemented by other means. 

I also do not have any issue with having a new type of generated feature flags that are not based on WebPreferences.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417397</attachid>
            <date>2021-01-11 12:01:24 -0800</date>
            <delta_ts>2021-01-20 18:08:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220521-20210111120123.patch</filename>
            <type>text/plain</type>
            <size>10258</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzEzNzApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAxLTExICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBmZWF0
dXJlIHRvIHVzZSBuZXR3b3JrIGxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNTIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTM5NDcx
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjEtMDEtMTEgIEtpbW1vIEtpbm51bmVuICA8
a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQ6OklQQzo6RW5jb2RlciBuZWVk
cyBkZWZpbml0aW9ucyBvZiBhbGwgY3VzdG9tIGVudW0gdmFsdWVzIGF0IHRoZSBFbmNvZGVyIGRl
ZmluaXRpb24gdGltZQpJbmRleDogU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwJKHJldmlzaW9u
IDI3MTM3MCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC01OTEsNiArNTkxLDE3IEBAIE1v
ZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1
bHQ6IGZhbHNlCiAKK05ldHdvcmtMb2FkZXJFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFu
UmVhZGFibGVOYW1lOiAiTmV0d29yayBMb2FkZXIiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlv
bjogIkVuYWJsZSBOZXR3b3JrIExvYWRlciIKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgY29u
ZGl0aW9uOiBIQVZFKE5FVFdPUktfTE9BREVSKQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRl
ZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBPdmVyc2Ny
b2xsQmVoYXZpb3JFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAi
Q1NTIE92ZXJzY3JvbGwgQmVoYXZpb3IiCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhh
dmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAkocmV2aXNp
b24gMjcxMzcwKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTczMSw2ICs3MzEsMTMgQEAKICNkZWZpbmUgSEFWRV9SVU5OSU5HQk9BUkRfV0VCS0lU
X1BSSU9SSVRZX1NVUFBPUlQgMQogI2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkgXAorICAgIHx8ICgoUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDE1MDAwMCkgXAorICAgIHx8IChQTEFURk9STShXQVRDSE9TKSAmJiBf
X1dBVENIX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDgwMDAwKSBcCisgICAgfHwgKFBMQVRG
T1JNKEFQUExFVFYpICYmIF9fVFZfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKQor
I2RlZmluZSBIQVZFX05FVFdPUktfTE9BREVSIDEKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFD
Q0FUQUxZU1QpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMAog
I2RlZmluZSBIQVZFX0NBVEFMWVNUX1VTRVJfSU5URVJGQUNFX0lESU9NX0FORF9TQ0FMRV9GQUNU
T1IgMQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTM3MCkKKysr
IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0wMS0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgZmVhdHVyZSB0byB1c2UgbmV0d29yayBs
b2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MDUyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjkzOTQ3MTM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SS5oOgorCiAyMDIxLTAxLTA4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3MTMzMS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lvbiAyNzEz
NzApCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAkod29y
a2luZyBjb3B5KQpAQCAtMjM5LDYgKzIzOSw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IE5TVVJMU2Vzc2lvbkMKICNpZiBIQVZFKEhTVFNfU1RPUkFHRSkKIEBwcm9wZXJ0eSAobnVsbGFi
bGUsIHJldGFpbikgX05TSFNUU1N0b3JhZ2UgKl9oc3RzU3RvcmFnZTsKICNlbmRpZgorI2lmIEhB
VkUoTkVUV09SS19MT0FERVIpCitAcHJvcGVydHkgQk9PTCBfdXNlc05XTG9hZGVyOworI2VuZGlm
CiBAZW5kCiAKIEBpbnRlcmZhY2UgTlNVUkxTZXNzaW9uVGFzayAoKQpJbmRleDogU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MTM3MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDEtMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIGZlYXR1cmUgdG8g
dXNlIG5ldHdvcmsgbG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA1MjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5Mzk0NzEzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hbnVhbGx5IHZl
cmlmaWVkIHRoYXQgdGhlIHNldHRpbmcgaXMgY29ycmVjdGx5IGFwcGVhcmluZyBpbiBTYWZhcmkg
YW5kIGJlaW5nIGdpdmVuIHRvIENGTmV0d29yay4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2Nv
YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3Rv
cmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6ZXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpodHRwM0VuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjp1c2VOZXR3b3JrTG9hZGVyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjEtMDEtMTEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlByb2Nlc3NQb29sOjpl
c3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3Mgc2hvdWxkIG1h
a2Ugc3VyZSB0byByZW1vdmUgdGhlIHNlbGVjdGVkIHByb2Nlc3MgZnJvbSB0aGUgY2FjaGUKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNzEzNzApCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsNyBAQCB2b2lkIE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplCiAgICAgZW5jb2RlciA8PCByZXF1aXJlc1NlY3Vy
ZUhUVFBTUHJveHlDb25uZWN0aW9uOwogICAgIGVuY29kZXIgPDwgcHJldmVudHNTeXN0ZW1IVFRQ
UHJveHlBdXRoZW50aWNhdGlvbjsKICAgICBlbmNvZGVyIDw8IGFwcEhhc1JlcXVlc3RlZENyb3Nz
V2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbjsKKyAgICBlbmNvZGVyIDw8IHVzZU5ldHdvcmtMb2Fk
ZXI7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKIH0K
IApAQCAtMjc2LDYgKzI3NywxMSBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVyCiAgICAgaWYgKCFhcHBIYXNSZXF1ZXN0ZWRDcm9zc1dlYnNpdGVUcmFja2luZ1Blcm1p
c3Npb24pCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBPcHRpb25hbDxib29s
PiB1c2VOZXR3b3JrTG9hZGVyOworICAgIGRlY29kZXIgPj4gdXNlTmV0d29ya0xvYWRlcjsKKyAg
ICBpZiAoIXVzZU5ldHdvcmtMb2FkZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
ICAgICBPcHRpb25hbDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycz4gcmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiAgICAgZGVjb2RlciA+PiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGFyYW1ldGVyczsKICAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzKQpAQCAtMzI2LDYgKzMzMiw3IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXIKICAgICAgICAgLCBXVEZNb3ZlKCpyZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25u
ZWN0aW9uKQogICAgICAgICAsIFdURk1vdmUoKnByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVu
dGljYXRpb24pCiAgICAgICAgICwgV1RGTW92ZSgqYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRl
VHJhY2tpbmdQZXJtaXNzaW9uKQorICAgICAgICAsIFdURk1vdmUoKnVzZU5ldHdvcmtMb2FkZXIp
CiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpCiAg
ICAgfX07CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAy
NzEzNzApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDcgQEAgc3RydWN0
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIAogICAgIGJvb2wgcmVxdWlyZXNTZWN1
cmVIVFRQU1Byb3h5Q29ubmVjdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBwcmV2ZW50c1N5c3Rl
bUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIGFwcEhhc1JlcXVl
c3RlZENyb3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbiB7IGZhbHNlIH07CisgICAgYm9vbCB1
c2VOZXR3b3JrTG9hZGVyIHsgZmFsc2UgfTsKIAogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
YXJhbWV0ZXJzIHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0JKHJldmlzaW9uIDI3MTM3MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTIzNCw2ICsxMjM0LDEwIEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29j
b2EKICAgICB9CiAjZW5kaWYKIAorI2lmIEhBVkUoTkVUV09SS19MT0FERVIpCisgICAgY29uZmln
dXJhdGlvbi5fdXNlc05XTG9hZGVyID0gcGFyYW1ldGVycy51c2VOZXR3b3JrTG9hZGVyOworI2Vu
ZGlmCisKICNpZiBIQVZFKEFQUF9TU08pIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIGNv
bmZpZ3VyYXRpb24uX3ByZXZlbnRzQXBwU1NPID0gdHJ1ZTsKICNlbmRpZgpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAJKHJldmlzaW9uIDI3MTM3MCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjE4LDYg
KzIyMTgsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAgICAg
cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTsKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hcHBIYXNSZXF1
ZXN0ZWRDcm9zc1dlYnNpdGVUcmFja2luZ1Blcm1pc3Npb24gPSBoYXNSZXF1ZXN0ZWRDcm9zc1dl
YnNpdGVUcmFja2luZ1Blcm1pc3Npb24oKTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy51c2VOZXR3b3JrTG9hZGVyID0gdXNlTmV0d29ya0xvYWRlcigpOwogI2VuZGlm
CiAgICAgCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lv
biAyNzEzNzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2OCw2ICsyNjgsOCBAQCBwdWJsaWM6CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NYUENFbmRwb2lu
dFRvV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJv
Y2Vzc1hQQ0VuZHBvaW50VG9BbGxXZWJQcm9jZXNzZXMoKTsKKyAgICAKKyAgICBzdGF0aWMgYm9v
bCB1c2VOZXR3b3JrTG9hZGVyKCk7CiAjZW5kaWYKIAogI2lmIFVTRShDVVJMKQpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQkocmV2aXNpb24gMjcxMzcwKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsMTUgKzE5NywzMSBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29yCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1l
KGNvb2tpZUZpbGUpLCBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxl
KTsKIH0KIAotYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpodHRwM0VuYWJsZWQoKQorI2lmIEhBVkUo
Q0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpIHx8IEhBVkUoTkVUV09SS19MT0FERVIpCitz
dGF0aWMgYm9vbCBleHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZChjb25zdCBTdHJpbmcmIGtleSkK
IHsKLSNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQogI2lmIFBMQVRGT1JN
KE1BQykKICAgICBOU1N0cmluZyAqZm9ybWF0ID0gQCJFeHBlcmltZW50YWwlQCI7CiAjZWxzZQog
ICAgIE5TU3RyaW5nICpmb3JtYXQgPSBAIldlYktpdEV4cGVyaW1lbnRhbCVAIjsKICNlbmRpZgot
ICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9y
S2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OmZvcm1hdCwgKE5TU3RyaW5nICopV2ViUHJl
ZmVyZW5jZXNLZXk6Omh0dHAzRW5hYmxlZEtleSgpXV07CisgICAgcmV0dXJuIFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6Zm9ybWF0LCBzdGF0aWNfY2FzdDxOU1N0cmluZyAqPihrZXkpXV07Cit9CisjZW5k
aWYKKworYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpodHRwM0VuYWJsZWQoKQoreworI2lmIEhBVkUo
Q0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCisgICAgcmV0dXJuIGV4cGVyaW1lbnRhbEZl
YXR1cmVFbmFibGVkKFdlYlByZWZlcmVuY2VzS2V5OjpodHRwM0VuYWJsZWRLZXkoKSk7CisjZWxz
ZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitib29sIFdlYnNpdGVEYXRhU3RvcmU6
OnVzZU5ldHdvcmtMb2FkZXIoKQoreworI2lmIEhBVkUoTkVUV09SS19MT0FERVIpCisgICAgcmV0
dXJuIGV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkKFdlYlByZWZlcmVuY2VzS2V5OjpuZXR3b3Jr
TG9hZGVyRW5hYmxlZEtleSgpKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418009</attachid>
            <date>2021-01-20 18:08:12 -0800</date>
            <delta_ts>2021-01-21 12:29:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220521-20210120180811.patch</filename>
            <type>text/plain</type>
            <size>11245</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM5MDc3ZDExOGM4OTZhNTA1MDc0NTFk
YzI4MmZkNjQ0MWZmYTZkZGQuLmYxYzMwYmI5YjIyOTE2MmZmZmIxNTBjM2M2MGFjMGZiNzkwNzRl
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDEtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIGZlYXR1
cmUgdG8gdXNlIG5ldHdvcmsgbG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjA1MjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5Mzk0NzEz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0wMS0xNyAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBKU0MgQVBJIGNvbmZpZ3VyaW5nIEdDIHNp
Z25hbHMgaW4gTGludXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGU1MzczODdlOGZkMjI4OTVhY2Q3
MDU4YTg2NzI0NjRlMmU2YzI0NzguLjliZjNiNTRlNmJiNzFhZWEzMGY3MWMxZDUzN2MyYWU0OTNm
YjQ3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAxLTIwICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRk
IGV4cGVyaW1lbnRhbCBmZWF0dXJlIHRvIHVzZSBuZXR3b3JrIGxvYWRlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNTIxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82OTM5NDcxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6CisKIDIwMjEtMDEtMTQg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhjZXB0
aW9ucyB0aHJvd24gd2hlbiBpbnZva2luZyBhIDxzZWxlY3Q+IG9uIGFuIGlQaG9uZS1pZGlvbSBh
cHAgcnVubmluZyBvbiBtYWNPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0NThjYzg1NDc3MTIzODQyNzUyZmJmOGEx
OGU0YmQxMjdlZDMwY2M3Li41YWVlZDc4MmE4YWVhODkzNmMwZmExNTVlOTM5ODQyNDNlYWEwNjE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAxLTIwICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBm
ZWF0dXJlIHRvIHVzZSBuZXR3b3JrIGxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNTIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTM5
NDcxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YW51YWxseSB2ZXJpZmllZCB0aGF0IHRoZSBzZXR0aW5nIGlzIGNvcnJlY3RseSBhcHBlYXJpbmcg
aW4gU2FmYXJpIGFuZCBiZWluZyBnaXZlbiB0byBDRk5ldHdvcmsuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9u
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtT
ZXNzaW9uQ29jb2EpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJz
aXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmV4cGVyaW1lbnRhbEZlYXR1
cmVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6aHR0cDNFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6dXNlTmV0d29ya0xvYWRl
cik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAyMDIxLTAx
LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgZHJvcCByZW1haW5pbmcgbWFpbi10aHJlYWQgYXNzZXJ0aW9uIGluIFNoYXJlYWJsZUJpdG1h
cCB0aGF0IEkgbWlzc2VkIGluIHIyNzE1MzMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmlu
ZGV4IGM3MzkxYWMxZTllNTMzODQxMTIwZDBkZmM1YWU5ZWE4ZTQyZTQwZjAuLmM4MDJlNGMyYjRj
Mzg4OTM4NWQyMzg2ZTA0ZjlmZjE0OWM2ZWY4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCkBAIC0xMDIsNiArMTAyLDE3IEBAIEJsYW5rQW5jaG9yVGFyZ2V0SW1wbGllc05vT3BlbmVy
RW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitDRk5ldHdvcmtM
aWJOZXR3b3JrTG9hZGVyRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFt
ZTogIkNGTmV0d29yayBOZXR3b3JrLmZyYW1ld29yayBMb2FkZXIiCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIkVuYWJsZSBOZXR3b3JrLmZyYW1ld29yaydzIExvYWRlciBpbiBDRk5ldHdv
cmsiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogSEFWRShORVRXT1JLX0xP
QURFUikKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0
OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogQ1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0Vu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1MgQ3VzdG9tIFBy
b3BlcnRpZXMgYW5kIFZhbHVlcyBBUEkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGNmZGFmZDZm
MmM4OGVhYjY5MzAzMmE1NWYwYzc3ZTY3NjlhZTJlOTIuLjA3YzE3NmViNmU3MGQwNzJhNmQ1NmVj
YjY1MzNiNDQ1NjViZmU1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC03MzEsNiArNzMxLDEz
IEBACiAjZGVmaW5lIEhBVkVfUlVOTklOR0JPQVJEX1dFQktJVF9QUklPUklUWV9TVVBQT1JUIDEK
ICNlbmRpZgogCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMjAwMDApIFwKKyAgICB8fCAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAw
MDApIFwKKyAgICB8fCAoUExBVEZPUk0oV0FUQ0hPUykgJiYgX19XQVRDSF9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSA4MDAwMCkgXAorICAgIHx8IChQTEFURk9STShBUFBMRVRWKSAmJiBfX1RW
X09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMCkKKyNkZWZpbmUgSEFWRV9ORVRXT1JL
X0xPQURFUiAxCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDAKICNkZWZpbmUgSEFWRV9DQVRBTFlT
VF9VU0VSX0lOVEVSRkFDRV9JRElPTV9BTkRfU0NBTEVfRkFDVE9SIDEKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAppbmRleCBiNGEzMGMyYzQ2
NTAzYjYwNGJiM2YxZjcyZGU5MjE2MzVkNGIyMDI0Li42YzBmYTQ5MzllYTk4M2UzMzBhOGZiMDgz
ZGEyZWFlNDk2ZDg0OTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaApAQCAtMjM5LDYgKzIzOSw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IE5TVVJMU2Vzc2lvbkNvbXBhbmlvblByb3h5UHJlZmVyZW5jZSkgewogI2lmIEhBVkUoSFNUU19T
VE9SQUdFKQogQHByb3BlcnR5IChudWxsYWJsZSwgcmV0YWluKSBfTlNIU1RTU3RvcmFnZSAqX2hz
dHNTdG9yYWdlOwogI2VuZGlmCisjaWYgSEFWRShORVRXT1JLX0xPQURFUikKK0Bwcm9wZXJ0eSBC
T09MIF91c2VzTldMb2FkZXI7CisjZW5kaWYKIEBlbmQKIAogQGludGVyZmFjZSBOU1VSTFNlc3Np
b25UYXNrICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGM3NjA1NGNl
ODhmMjQ0YWYzZDU1ZmFkZmQzMzY2MTVlZDg0MDVkZjcuLjU0ZWQ0NTI1MTAzN2QxNGNiOGY3YWY4
ZDY0YThiZWI0ZDY5NDZmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC04NCw2ICs4NCw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCByZXF1aXJl
c1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uOwogICAgIGVuY29kZXIgPDwgcHJldmVudHNTeXN0
ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbjsKICAgICBlbmNvZGVyIDw8IGFwcEhhc1JlcXVlc3Rl
ZENyb3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbjsKKyAgICBlbmNvZGVyIDw8IHVzZU5ldHdv
cmtMb2FkZXI7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
czsKIH0KIApAQCAtMjc2LDYgKzI3NywxMSBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAg
IGlmICghYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uKQogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAgT3B0aW9uYWw8Ym9vbD4gdXNlTmV0d29y
a0xvYWRlcjsKKyAgICBkZWNvZGVyID4+IHVzZU5ldHdvcmtMb2FkZXI7CisgICAgaWYgKCF1c2VO
ZXR3b3JrTG9hZGVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgT3B0aW9u
YWw8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM+IHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnM7CiAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKQEAgLTMy
Niw2ICszMzIsNyBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4g
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgICAgICAsIFdURk1vdmUo
KnJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24pCiAgICAgICAgICwgV1RGTW92ZSgq
cHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbikKICAgICAgICAgLCBXVEZNb3Zl
KCphcHBIYXNSZXF1ZXN0ZWRDcm9zc1dlYnNpdGVUcmFja2luZ1Blcm1pc3Npb24pCisgICAgICAg
ICwgV1RGTW92ZSgqdXNlTmV0d29ya0xvYWRlcikKICAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAgICB9fTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnMuaAppbmRleCA3MGQ1Y2ZkNjZhMzlkNjllYzYwNzc1NDc5ZmZhODcxY2QxZWI1ODc5
Li4wNjEzMDU2NWY0NzZlODQxZmI2ZjIyZTVkZGRhZTkzNDFmODllYmQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5oCkBAIC05OCw2ICs5OCw3IEBAIHN0cnVjdCBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCByZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlD
b25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIHByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0
aGVudGljYXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJz
aXRlVHJhY2tpbmdQZXJtaXNzaW9uIHsgZmFsc2UgfTsKKyAgICBib29sIHVzZU5ldHdvcmtMb2Fk
ZXIgeyBmYWxzZSB9OwogCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4
IGU0ZDhlOTM3YTlmY2E2MjE1N2ZkODBlM2ZmZjU1ODhkNmQ1MWI1NGEuLmNlNzUwYTA0OGUzZDkx
YjQ5ZWY3OTNhZTgzNGYyYzQ3NTMzMTQ3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTEyMzQs
NiArMTIzNCwxMCBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawogICAgIH0KICNlbmRpZgogCisj
aWYgSEFWRShORVRXT1JLX0xPQURFUikKKyAgICBjb25maWd1cmF0aW9uLl91c2VzTldMb2FkZXIg
PSBwYXJhbWV0ZXJzLnVzZU5ldHdvcmtMb2FkZXI7CisjZW5kaWYKKwogI2lmIEhBVkUoQVBQX1NT
TykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgY29uZmlndXJhdGlvbi5fcHJldmVudHNB
cHBTU08gPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
aW5kZXggMzgzOGQxOWVjMjJiYjk0Mjg5ZThlZjJiMDY0Y2ViZTQ3MGRhOWFmZi4uMDVkZGIwNDRl
ZmU1ODNiYTJiMGI5M2U1MGRhZDlhYzg0YTc3NzIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRh
U3RvcmVDb2NvYS5tbQpAQCAtMTk3LDE1ICsxOTcsMzEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJhbWV0ZXJzKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
JgogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJl
Y3RvcnkoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShjb29raWVGaWxlKSwgcGFyYW1ldGVycy5j
b29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiB9CiAKLWJvb2wgV2Vic2l0ZURhdGFT
dG9yZTo6aHR0cDNFbmFibGVkKCkKKyNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJW
SUNFKSB8fCBIQVZFKE5FVFdPUktfTE9BREVSKQorc3RhdGljIGJvb2wgZXhwZXJpbWVudGFsRmVh
dHVyZUVuYWJsZWQoY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0jaWYgSEFWRShDRk5FVFdPUktfQUxU
RVJOQVRJVkVfU0VSVklDRSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgTlNTdHJpbmcgKmZvcm1h
dCA9IEAiRXhwZXJpbWVudGFsJUAiOwogI2Vsc2UKICAgICBOU1N0cmluZyAqZm9ybWF0ID0gQCJX
ZWJLaXRFeHBlcmltZW50YWwlQCI7CiAjZW5kaWYKLSAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpmb3JtYXQsIChOU1N0cmluZyAqKVdlYlByZWZlcmVuY2VzS2V5OjpodHRwM0VuYWJsZWRL
ZXkoKV1dOworICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRz
XSBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OmZvcm1hdCwgc3RhdGljX2Nh
c3Q8TlNTdHJpbmcgKj4oa2V5KV1dOworfQorI2VuZGlmCisKK2Jvb2wgV2Vic2l0ZURhdGFTdG9y
ZTo6aHR0cDNFbmFibGVkKCkKK3sKKyNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJW
SUNFKQorICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZChXZWJQcmVmZXJlbmNl
c0tleTo6aHR0cDNFbmFibGVkS2V5KCkpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKK30KKworYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjp1c2VOZXR3b3JrTG9hZGVyKCkKK3sKKyNp
ZiBIQVZFKE5FVFdPUktfTE9BREVSKQorICAgIHJldHVybiBleHBlcmltZW50YWxGZWF0dXJlRW5h
YmxlZChXZWJQcmVmZXJlbmNlc0tleTo6Y0ZOZXR3b3JrTGliTmV0d29ya0xvYWRlckVuYWJsZWRL
ZXkoKSk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApp
bmRleCAwZTQ0MzkyNDRmZjgxYWI1NWQ2YWUxYTQyOWRhMzM5ZDg2ZDZkNjcyLi4xOTdjY2FiNDk2
NWY2MTlhYmVlZTk0Mjc1NDM3NWE0YzdhZmQyMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjIx
OCw2ICsyMjE4LDcgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9y
ZTo6cGFyYW1ldGVycygpCiAgICAgcGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhwYXJhbWV0
ZXJzKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5hcHBIYXNSZXF1ZXN0ZWRDcm9zc1dlYnNpdGVUcmFja2luZ1Blcm1pc3Npb24g
PSBoYXNSZXF1ZXN0ZWRDcm9zc1dlYnNpdGVUcmFja2luZ1Blcm1pc3Npb24oKTsKKyAgICBwYXJh
bWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy51c2VOZXR3b3JrTG9hZGVyID0gdXNlTmV0
d29ya0xvYWRlcigpOwogI2VuZGlmCiAgICAgCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKaW5kZXggZDViNGUzZDMyMTE1MjAxYjZhMDk5NDNmOTY1OTdiMDViNmJkZmY5ZC4uNzdj
MjE0NzFmZGM2YzRiODQ5MzljYjUyMTQzNjdhZGMyNjY1YmU4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAt
MjY4LDYgKzI2OCw4IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNl
bmROZXR3b3JrUHJvY2Vzc1hQQ0VuZHBvaW50VG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYp
OwogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzWFBDRW5kcG9pbnRUb0FsbFdlYlByb2Nlc3Nl
cygpOworICAgIAorICAgIHN0YXRpYyBib29sIHVzZU5ldHdvcmtMb2FkZXIoKTsKICNlbmRpZgog
CiAjaWYgVVNFKENVUkwpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418069</attachid>
            <date>2021-01-21 12:29:46 -0800</date>
            <delta_ts>2021-01-21 14:55:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220521-20210121122945.patch</filename>
            <type>text/plain</type>
            <size>10284</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzE0MTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAxLTIxICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBmZWF0
dXJlIHRvIHVzZSBuZXR3b3JrIGxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNTIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTM5NDcx
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjEtMDEtMTEgIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQ6OklQQzo6RW5jb2RlciBuZWVkcyBk
ZWZpbml0aW9ucyBvZiBhbGwgY3VzdG9tIGVudW0gdmFsdWVzIGF0IHRoZSBFbmNvZGVyIGRlZmlu
aXRpb24gdGltZQpJbmRleDogU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwJKHJldmlzaW9uIDI3
MTQxMCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiArMTAyLDE3IEBAIEJsYW5r
QW5jaG9yVGFyZ2V0SW1wbGllc05vT3BlbmVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAg
ZGVmYXVsdDogdHJ1ZQogCitDRk5ldHdvcmtOZXR3b3JrTG9hZGVyRW5hYmxlZDoKKyAgdHlwZTog
Ym9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBuZXR3b3JrIGxvYWRlciIK
KyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGV4cGVyaW1lbnRhbCBuZXR3b3Jr
IGxvYWRlciIKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgY29uZGl0aW9uOiBIQVZFKE5FVFdP
UktfTE9BREVSKQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBX
ZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFs
dWVzRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBDdXN0
b20gUHJvcGVydGllcyBhbmQgVmFsdWVzIEFQSSIKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtSGF2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCShy
ZXZpc2lvbiAyNzE0MTApCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzMxLDYgKzczMSwxMyBAQAogI2RlZmluZSBIQVZFX1JVTk5JTkdCT0FSRF9X
RUJLSVRfUFJJT1JJVFlfU1VQUE9SVCAxCiAjZW5kaWYKIAorI2lmIChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSBcCisgICAgfHwgKChQ
TEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKFdBVENIT1Mp
ICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gODAwMDApIFwKKyAgICB8fCAo
UExBVEZPUk0oQVBQTEVUVikgJiYgX19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAw
MDApCisjZGVmaW5lIEhBVkVfTkVUV09SS19MT0FERVIgMQorI2VuZGlmCisKICNpZiBQTEFURk9S
TShNQUNDQVRBTFlTVCkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQw
MDAwCiAjZGVmaW5lIEhBVkVfQ0FUQUxZU1RfVVNFUl9JTlRFUkZBQ0VfSURJT01fQU5EX1NDQUxF
X0ZBQ1RPUiAxCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjcxNDEw
KQorKysgU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDIxLTAxLTIxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBmZWF0dXJlIHRvIHVzZSBuZXR3
b3JrIGxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwNTIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTM5NDcxMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmg6CisKIDIwMjEtMDEtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBTdXBwb3J0IGtleSByb3RhdGlvbiB3aXRoIEhMUy1iYWNrZWQgZW5j
cnlwdGVkIG1lZGlhIHN0cmVhbXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nm
L0NGTmV0d29ya1NQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lvbiAyNzE0MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDYgKzIz
OSw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVVJMU2Vzc2lvbkMKICNpZiBIQVZF
KEhTVFNfU1RPUkFHRSkKIEBwcm9wZXJ0eSAobnVsbGFibGUsIHJldGFpbikgX05TSFNUU1N0b3Jh
Z2UgKl9oc3RzU3RvcmFnZTsKICNlbmRpZgorI2lmIEhBVkUoTkVUV09SS19MT0FERVIpCitAcHJv
cGVydHkgQk9PTCBfdXNlc05XTG9hZGVyOworI2VuZGlmCiBAZW5kCiAKIEBpbnRlcmZhY2UgTlNV
UkxTZXNzaW9uVGFzayAoKQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MTQ3MykKKysrIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEt
MDEtMjEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBBZGQgZXhwZXJpbWVudGFsIGZlYXR1cmUgdG8gdXNlIG5ldHdvcmsgbG9hZGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA1MjEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY5Mzk0NzEzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
IEdhcmVuLgorCisgICAgICAgIE1hbnVhbGx5IHZlcmlmaWVkIHRoYXQgdGhlIHNldHRpbmcgaXMg
Y29ycmVjdGx5IGFwcGVhcmluZyBpbiBTYWZhcmkgYW5kIGJlaW5nIGdpdmVuIHRvIENGTmV0d29y
ay4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6ZXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpodHRwM0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjp1c2VOZXR3b3JrTG9hZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmg6CisKIDIwMjEtMDEtMTMgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUENNOiBPdXRwdXQgbG9ncyBieSBkZWZhdWx0LCBpbmNsdWRpbmcgdG8g
V2ViIEluc3BlY3RvcgpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJl
dmlzaW9uIDI3MTQxMCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw3
IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmUKICAgICBlbmNvZGVy
IDw8IHJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb247CiAgICAgZW5jb2RlciA8PCBw
cmV2ZW50c1N5c3RlbUhUVFBQcm94eUF1dGhlbnRpY2F0aW9uOwogICAgIGVuY29kZXIgPDwgYXBw
SGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uOworICAgIGVuY29kZXIg
PDwgdXNlTmV0d29ya0xvYWRlcjsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzOwogfQogCkBAIC0yNzYsNiArMjc3LDExIEBAIE9wdGlvbmFsPE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXIKICAgICBpZiAoIWFwcEhhc1JlcXVlc3RlZENyb3NzV2Vi
c2l0ZVRyYWNraW5nUGVybWlzc2lvbikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAor
ICAgIE9wdGlvbmFsPGJvb2w+IHVzZU5ldHdvcmtMb2FkZXI7CisgICAgZGVjb2RlciA+PiB1c2VO
ZXR3b3JrTG9hZGVyOworICAgIGlmICghdXNlTmV0d29ya0xvYWRlcikKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKwogICAgIE9wdGlvbmFsPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJh
bWV0ZXJzPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKICAgICBkZWNvZGVyID4+
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogICAgIGlmICghcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnMpCkBAIC0zMjYsNiArMzMyLDcgQEAgT3B0aW9uYWw8TmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcgogICAgICAgICAsIFdURk1vdmUoKnJlcXVpcmVzU2Vj
dXJlSFRUUFNQcm94eUNvbm5lY3Rpb24pCiAgICAgICAgICwgV1RGTW92ZSgqcHJldmVudHNTeXN0
ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbikKICAgICAgICAgLCBXVEZNb3ZlKCphcHBIYXNSZXF1
ZXN0ZWRDcm9zc1dlYnNpdGVUcmFja2luZ1Blcm1pc3Npb24pCisgICAgICAgICwgV1RGTW92ZSgq
dXNlTmV0d29ya0xvYWRlcikKICAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVycykKICAgICB9fTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgJKHJldmlzaW9uIDI3MTQxMCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtOTgs
NiArOTgsNyBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgCiAgICAg
Ym9vbCByZXF1aXJlc1NlY3VyZUhUVFBTUHJveHlDb25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBi
b29sIHByZXZlbnRzU3lzdGVtSFRUUFByb3h5QXV0aGVudGljYXRpb24geyBmYWxzZSB9OwogICAg
IGJvb2wgYXBwSGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uIHsgZmFs
c2UgfTsKKyAgICBib29sIHVzZU5ldHdvcmtMb2FkZXIgeyBmYWxzZSB9OwogCiAgICAgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnM7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkocmV2aXNpb24gMjcxNDEwKQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjM0LDYgKzEyMzQsMTAgQEAgTmV0d29ya1Nlc3Npb25Db2NvYTo6
TmV0d29ya1Nlc3Npb25Db2NvYQogICAgIH0KICNlbmRpZgogCisjaWYgSEFWRShORVRXT1JLX0xP
QURFUikKKyAgICBjb25maWd1cmF0aW9uLl91c2VzTldMb2FkZXIgPSBwYXJhbWV0ZXJzLnVzZU5l
dHdvcmtMb2FkZXI7CisjZW5kaWYKKwogI2lmIEhBVkUoQVBQX1NTTykgfHwgUExBVEZPUk0oTUFD
Q0FUQUxZU1QpCiAgICAgY29uZmlndXJhdGlvbi5fcHJldmVudHNBcHBTU08gPSB0cnVlOwogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAkocmV2aXNpb24gMjcxNDEwKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIyMTgsNiArMjIxOCw3IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdl
YnNpdGVEYXRhU3QKICAgICBwbGF0Zm9ybVNldE5ldHdvcmtQYXJhbWV0ZXJzKHBhcmFtZXRlcnMp
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLmFwcEhhc1JlcXVlc3RlZENyb3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbiA9IGhh
c1JlcXVlc3RlZENyb3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbigpOworICAgIHBhcmFtZXRl
cnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnVzZU5ldHdvcmtMb2FkZXIgPSB1c2VOZXR3b3Jr
TG9hZGVyKCk7CiAjZW5kaWYKICAgICAKICAgICByZXR1cm4gcGFyYW1ldGVyczsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgJKHJldmlzaW9uIDI3MTQxMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjY4LDYgKzI2
OCw4IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNlbmROZXR3b3Jr
UHJvY2Vzc1hQQ0VuZHBvaW50VG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYpOwogICAgIHZv
aWQgc2VuZE5ldHdvcmtQcm9jZXNzWFBDRW5kcG9pbnRUb0FsbFdlYlByb2Nlc3NlcygpOworICAg
IAorICAgIHN0YXRpYyBib29sIHVzZU5ldHdvcmtMb2FkZXIoKTsKICNlbmRpZgogCiAjaWYgVVNF
KENVUkwpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9X
ZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCShyZXZpc2lv
biAyNzE0MTApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9X
ZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5NywxNSArMTk3LDMx
IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3IKICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KEZpbGVTeXN0
ZW06OmRpcmVjdG9yeU5hbWUoY29va2llRmlsZSksIHBhcmFtZXRlcnMuY29va2llU3RvcmFnZVBh
dGhFeHRlbnNpb25IYW5kbGUpOwogfQogCi1ib29sIFdlYnNpdGVEYXRhU3RvcmU6Omh0dHAzRW5h
YmxlZCgpCisjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkgfHwgSEFWRShO
RVRXT1JLX0xPQURFUikKK3N0YXRpYyBib29sIGV4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkKGNv
bnN0IFN0cmluZyYga2V5KQogewotI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJ
Q0UpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TU3RyaW5nICpmb3JtYXQgPSBAIkV4cGVyaW1l
bnRhbCVAIjsKICNlbHNlCiAgICAgTlNTdHJpbmcgKmZvcm1hdCA9IEAiV2ViS2l0RXhwZXJpbWVu
dGFsJUAiOwogI2VuZGlmCi0gICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6Zm9ybWF0LCAo
TlNTdHJpbmcgKilXZWJQcmVmZXJlbmNlc0tleTo6aHR0cDNFbmFibGVkS2V5KCldXTsKKyAgICBy
ZXR1cm4gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpmb3JtYXQsIHN0YXRpY19jYXN0PE5TU3RyaW5nICo+
KGtleSldXTsKK30KKyNlbmRpZgorCitib29sIFdlYnNpdGVEYXRhU3RvcmU6Omh0dHAzRW5hYmxl
ZCgpCit7CisjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKKyAgICByZXR1
cm4gZXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQoV2ViUHJlZmVyZW5jZXNLZXk6Omh0dHAzRW5h
YmxlZEtleSgpKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK2Jvb2wg
V2Vic2l0ZURhdGFTdG9yZTo6dXNlTmV0d29ya0xvYWRlcigpCit7CisjaWYgSEFWRShORVRXT1JL
X0xPQURFUikKKyAgICByZXR1cm4gZXhwZXJpbWVudGFsRmVhdHVyZUVuYWJsZWQoV2ViUHJlZmVy
ZW5jZXNLZXk6OmNGTmV0d29ya05ldHdvcmtMb2FkZXJFbmFibGVkS2V5KCkpOwogI2Vsc2UKICAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>