<?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>155117</bug_id>
          
          <creation_ts>2016-03-07 09:31:11 -0800</creation_ts>
          <short_desc>Set AVURLAssetUsesNoPersistentCacheKey on AVAsset to match caching policy.</short_desc>
          <delta_ts>2016-03-10 20:50:01 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</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="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>jer.noble</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1171616</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-07 09:31:11 -0800</bug_when>
    <thetext>Set AVURLAssetUsesNoPersistentCacheKey on AVAsset to match caching policy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171617</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-07 09:32:16 -0800</bug_when>
    <thetext>rdar://problem/6802240</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171628</commentid>
    <comment_count>2</comment_count>
      <attachid>273189</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-07 09:48:31 -0800</bug_when>
    <thetext>Created attachment 273189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171637</commentid>
    <comment_count>3</comment_count>
      <attachid>273189</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-07 10:13:56 -0800</bug_when>
    <thetext>Comment on attachment 273189
Patch

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

What about WK1?

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests because no new funcitonality was added.

functionality*

&gt; Source/WebCore/html/HTMLMediaElement.h:598
&gt; +    bool mediaPlayerUsePersistentCache() override;

Uses* PersistentCache?

&gt; Source/WebCore/page/ChromeClient.h:473
&gt; +    virtual bool isDataStorePersistent() { return true; }

This will probably cause confusion because on its face it sounds like a generic data store, not one specific to media. Can we make it media-specific?

&gt; Source/WebKit2/Shared/WebPageCreationParameters.cpp:58
&gt; +    encoder &lt;&lt; isDataStorePersistent;

ditto.

&gt; Source/WebKit2/Shared/WebPageCreationParameters.cpp:138
&gt; +    if (!decoder.decode(parameters.isDataStorePersistent))

ditto.

&gt; Source/WebKit2/Shared/WebPageCreationParameters.h:92
&gt; +    bool isDataStorePersistent;

ditto.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:5170
&gt; +    parameters.isDataStorePersistent = m_websiteDataStore-&gt;isPersistent();

ditto.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:1150
&gt; +bool WebChromeClient::isDataStorePersistent()

ditto.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:1152
&gt; +    return m_page-&gt;isDataStorePersistent();

ditto.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h:338
&gt; +    bool isDataStorePersistent() override;

ditto.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:368
&gt; +    , m_isDataStorePersistent(parameters.isDataStorePersistent)

ditto.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:932
&gt; +    bool isDataStorePersistent() { return m_isDataStorePersistent; }

ditto.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:1447
&gt; +    bool m_isDataStorePersistent;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171712</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-07 13:11:04 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 273189 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=273189&amp;action=review
&gt; 
&gt; What about WK1?

For WebKit1, caches are disabled by setting [[NSURLCache sharedURLCache] setDiskCapacity:0];

I&apos;ll add a WK1 implementation that checks this value.

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests because no new funcitonality was added.
&gt; 
&gt; functionality*

Done.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.h:598
&gt; &gt; +    bool mediaPlayerUsePersistentCache() override;
&gt; 
&gt; Uses* PersistentCache?

Sure.

&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:473
&gt; &gt; +    virtual bool isDataStorePersistent() { return true; }
&gt; 
&gt; This will probably cause confusion because on its face it sounds like a
&gt; generic data store, not one specific to media. Can we make it media-specific?

mediaUsesPersistentCache, match the MediaPlayer version.

&gt; 
&gt; &gt; Source/WebKit2/Shared/WebPageCreationParameters.cpp:58
&gt; &gt; +    encoder &lt;&lt; isDataStorePersistent;
&gt; 
&gt; ditto.
ditto....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171722</commentid>
    <comment_count>5</comment_count>
      <attachid>273206</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-07 13:32:05 -0800</bug_when>
    <thetext>Created attachment 273206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171758</commentid>
    <comment_count>6</comment_count>
      <attachid>273206</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-03-07 14:36:47 -0800</bug_when>
    <thetext>Comment on attachment 273206
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        This will prevent persistent media caches when webkit is using in memory caching.

in-memory

&gt; Source/WebCore/page/ChromeClient.h:473
&gt; +    virtual bool mediaUsesPersistentCache() { return true; }

Can this be a const method?

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:238
&gt; +    virtual bool mediaPlayerUsesPersistentCache() { return true; }

Can this be const?

&gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:1060
&gt; +bool WebChromeClient::mediaUsesPersistentCache()
&gt; +{
&gt; +    return [[NSURLCache sharedURLCache] diskCapacity] &gt; 0;
&gt; +}

Why make this about media at all? It seems like what you expose to WebCore is &quot;disk cache enabled&quot;.

Also, we have our own disk cache in the network process, so I&apos;m not sure the sharedURLCache capacity is at all relevant. Talk to Antti.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171769</commentid>
    <comment_count>7</comment_count>
      <attachid>273206</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-07 14:51:56 -0800</bug_when>
    <thetext>Comment on attachment 273206
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        This will prevent persistent media caches when webkit is using in memory caching.
&gt; 
&gt; in-memory

Done.

&gt;&gt; Source/WebCore/page/ChromeClient.h:473
&gt;&gt; +    virtual bool mediaUsesPersistentCache() { return true; }
&gt; 
&gt; Can this be a const method?

Probably. I&apos;ll change if possible.

&gt;&gt; Source/WebCore/platform/graphics/MediaPlayer.h:238
&gt;&gt; +    virtual bool mediaPlayerUsesPersistentCache() { return true; }
&gt; 
&gt; Can this be const?

Probably. I&apos;ll change if possible.

&gt;&gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:1060
&gt;&gt; +}
&gt; 
&gt; Why make this about media at all? It seems like what you expose to WebCore is &quot;disk cache enabled&quot;.
&gt; 
&gt; Also, we have our own disk cache in the network process, so I&apos;m not sure the sharedURLCache capacity is at all relevant. Talk to Antti.

My previous patch was not media specific. I received feedback that I should make it media specific.

This is the WK1 implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173331</commentid>
    <comment_count>8</comment_count>
      <attachid>273620</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-10 14:08:05 -0800</bug_when>
    <thetext>Created attachment 273620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173334</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-10 14:15:25 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 273206 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=273206&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        This will prevent persistent media caches when webkit is using in memory caching.
&gt; 
&gt; in-memory

Done.

&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:473
&gt; &gt; +    virtual bool mediaUsesPersistentCache() { return true; }
&gt; 
&gt; Can this be a const method?

Yes. Done.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:238
&gt; &gt; +    virtual bool mediaPlayerUsesPersistentCache() { return true; }
&gt; 
&gt; Can this be const?

Yes. Done.

&gt; 
&gt; &gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:1060
&gt; &gt; +bool WebChromeClient::mediaUsesPersistentCache()
&gt; &gt; +{
&gt; &gt; +    return [[NSURLCache sharedURLCache] diskCapacity] &gt; 0;
&gt; &gt; +}
&gt; 
&gt; Why make this about media at all? It seems like what you expose to WebCore
&gt; is &quot;disk cache enabled&quot;.

This is about configuring MediaPlayer i.e. AVFoundation to use a persistent cache or not. I don&apos;t want this to be used more generally for other caches. So, I&apos;ve renamed these to &quot;mediaShouldUsePersistentCache&quot; to make it more explicit that you ask this to find out if media should use a cache. It is not telling you if media uses a cache.

WebKit 1 has no cache model for no disk cache. So, this implementation is not a requirement. It is nice to have, since there is a develop menu option to disable cache, which sets -diskCapacity to 0.

&gt; 
&gt; Also, we have our own disk cache in the network process, so I&apos;m not sure the
&gt; sharedURLCache capacity is at all relevant. Talk to Antti.

Not relevant. This implementation is for WK1. The WK2 implementation gets is values from the persistentDataStore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173492</commentid>
    <comment_count>10</comment_count>
      <attachid>273620</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-03-10 17:34:48 -0800</bug_when>
    <thetext>Comment on attachment 273620
Patch

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

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

Radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173493</commentid>
    <comment_count>11</comment_count>
      <attachid>273660</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-03-10 17:40:05 -0800</bug_when>
    <thetext>Created attachment 273660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173566</commentid>
    <comment_count>12</comment_count>
      <attachid>273660</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-03-10 20:49:57 -0800</bug_when>
    <thetext>Comment on attachment 273660
Patch

Clearing flags on attachment: 273660

Committed r197990: &lt;http://trac.webkit.org/changeset/197990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173567</commentid>
    <comment_count>13</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-03-10 20:50:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273189</attachid>
            <date>2016-03-07 09:48:31 -0800</date>
            <delta_ts>2016-03-07 13:32:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155117-20160307094817.patch</filename>
            <type>text/plain</type>
            <size>12964</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ1YmQ5ODU1YzZjMGVi
NWIyNDA2ZTIyNjRlM2I4YzI1MjEwOWJlYy4uOWRmMzZlZmQ4YmYzOGQxZThhOGE3MzFmMzFjNGE4
NTEzODZjYTdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAzLTA3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgQVZVUkxBc3NldFVz
ZXNOb1BlcnNpc3RlbnRDYWNoZUtleSBvbiBBVkFzc2V0IHRvIG1hdGNoIGNhY2hpbmcgcG9saWN5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGZ1bmNpdG9uYWxpdHkgd2FzIGFkZGVkLgorCisgICAgICAg
IFRoaXMgd2lsbCBwcmV2ZW50IHBlcnNpc3RlbnQgbWVkaWEgY2FjaGVzIHdoZW4gd2Via2l0IGlz
IHVzaW5nIGluIG1lbW9yeSBjYWNoaW5nLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
VXNlUGVyc2lzdGVudENhY2hlKTogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50Lmg6IERlY2xhcmUgbWVkaWFQbGF5ZXJVc2VQZXJzaXN0ZW50Q2FjaGUoKS4KKyAgICAgICAg
KiBwYWdlL0Nocm9tZUNsaWVudC5oOiBEZWNsYXJlIGlzRGF0YVN0b3JlUGVyc2lzdGVudCgpLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJVc2VQZXJzaXN0ZW50Q2FjaGUpOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6IFNl
dCBwcm9wZXJ0eSBvbiBBVkFzc2V0T3B0aW9ucy4KKwogMjAxNi0wMy0wNiAgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbXByb3ZlIGNvZGVn
ZW4gb2YgQ29tcGFyZSBhbmQgVGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDljM2E3ZmY4NTI1N2I0ZTY3NGE4
ZjA0ZTY2NDlmYTMwZjliM2M2NDguLmIwYTA5NzQ4NDVhODRmNDQ2YTY1YThhN2M2MGQzOWY0NjI1
ZTUyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNi0wMy0wNyAgSmVyZW15IEpv
bmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IEFWVVJMQXNzZXRVc2VzTm9Q
ZXJzaXN0ZW50Q2FjaGVLZXkgb24gQVZBc3NldCB0byBtYXRjaCBjYWNoaW5nIHBvbGljeS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTExNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgQVZBc3Nl
dCBBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5IG1hdGNoICFtX3dlYnNpdGVEYXRh
U3RvcmUtPmlzUGVyc2lzdGVudCgpCisgICAgICAgIFRoaXMgd2lsbCBwcmV2ZW50IHBlcnNpc3Rl
bnQgbWVkaWEgY2FjaGVzIHdoZW4gd2Via2l0IGlzIHVzaW5nIGluIG1lbW9yeSBjYWNoaW5nLgor
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOiBBZGQgaXNE
YXRhU3RvcmVQZXJzaXN0ZW50CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMpOiBVc2UgaXNEYXRhU3RvcmVQZXJz
aXN0ZW50LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojppc0RhdGFTdG9yZVBl
cnNpc3RlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9pc0RhdGFTdG9yZVBlcnNpc3RlbnQpOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjppc0RhdGFTdG9yZVBlcnNpc3RlbnQpOiBBZGRlZC4KKwogMjAxNi0wMy0wNiAgQW5k
cmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHBhZ2UgY2Fj
aGUgY2FwYWNpdHkgZnJvbSAzIHRvIDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAppbmRleCA1OWU2ODVhMzJkZjgwNjkzY2Q0MWY4NmFlNGQ0MjU1OTZjZTJkZTVjLi42
YTVjMjc3NjA5MDAyNDM1MTE2NTU5ZWNjOWQ3ZGJmNzA1ZWUzNzk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTYxNDEsNiArNjE0MSwxNCBAQCBSZWZQdHI8
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckNyZWF0ZVJlc291cmNlTAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhUmVzb3VyY2VM
b2FkZXIoZG9jdW1lbnQoKSwgZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2lu
QXR0cikpKTsKIH0KIAorYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclVzZVBlcnNp
c3RlbnRDYWNoZSgpCit7CisgICAgaWYgKCFkb2N1bWVudCgpLnBhZ2UoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5pc0RhdGFTdG9yZVBlcnNpc3RlbnQoKTsKK30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllclNob3VsZFdhaXRGb3JSZXNwb25zZVRvQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKIHsKICAgICBGcmFt
ZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCmluZGV4IDNkY2RiMjVmYTdiNGUzODRlMGYyYmNlNzQwMDg1OTUwMWVlMDYzN2Eu
LmYxZjU2NDFlYTczN2RiNDlhODQ0NWQ5N2U0MDlmMTU1MjI2M2Y1ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01OTUsNiArNTk1LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1lZGlhUGxheWVySXNMb29waW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQ2FjaGVk
UmVzb3VyY2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBvdmVycmlk
ZTsKICAgICBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNy
ZWF0ZVJlc291cmNlTG9hZGVyKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBtZWRpYVBsYXllclVzZVBl
cnNpc3RlbnRDYWNoZSgpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQogICAgIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogbWVkaWFQbGF5ZXJHcmFwaGlj
c0RldmljZUFkYXB0ZXIoY29uc3QgTWVkaWFQbGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGQ4M2NjYjQ3MzA4NjEwMjFkZWJjYmFmYTQ5OTM4
YWZlZTRmNTQ3OWEuLmM3MjRlMTUyZjU4YjZmZThlZmJlN2Y1MGUxZDJmMGNlZjA1ZDFhNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDcwLDYgKzQ3MCw4IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygpIHsg
fQogCisgICAgdmlydHVhbCBib29sIGlzRGF0YVN0b3JlUGVyc2lzdGVudCgpIHsgcmV0dXJuIHRy
dWU7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4
IGRiZDRmOGFhNzNiZTk0NGM0M2ZiZTc1MWFiNmZjNGMwZjg3NzE2OTcuLjE5NDQyYzcxYWJmNTQ4
NTdlYzYwNzhjZGQ0ODk4NmM3ZmUwNjk4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjM1LDYgKzIzNSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIENhY2hlZFJlc291cmNlTG9hZGVyKiBtZWRpYVBsYXllckNhY2hlZFJlc291cmNl
TG9hZGVyKCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgUmVmUHRyPFBsYXRmb3JtTWVkaWFS
ZXNvdXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpIHsgcmV0dXJu
IG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRv
bWljU3RyaW5nJiwgQXRvbWljU3RyaW5nKiA9IDApIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyVXNlUGVyc2lzdGVudENhY2hlKCkgeyByZXR1cm4g
dHJ1ZTsgfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllckRpZEFkZEF1ZGlvVHJhY2soUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4pIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTMwODc4MDFmOGJkZWZkZDVjYzM5NjI5OTcy
MjJjNTY4MTFhMDY4Ni4uMWU4Yjc1NzcwYjI2YjBiMTI1Y2RkMGM1NWYxY2QzYTY2YjNiNTQxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMjksNiArMjI5LDcgQEAgU09GVF9MSU5LX1BP
SU5URVIoQVZGb3VuZGF0aW9uLCBBVlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0VGV4dFN0eWxpbmdS
ZXNvbHV0aW9uU28KICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogU09GVF9MSU5LX1BPSU5URVIo
QVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0SFRUUENvb2tpZXNLZXksIE5TU3RyaW5nKikKIFNPRlRf
TElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldE91dE9mQmFuZEFsdGVybmF0ZVRy
YWNrc0tleSwgTlNTdHJpbmcqKQorU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVS
TEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5LCBOU1N0cmluZyopCiBTT0ZUX0xJTktfUE9J
TlRFUihBVkZvdW5kYXRpb24sIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tEaXNwbGF5TmFtZUtl
eSwgTlNTdHJpbmcqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk91dE9mQmFu
ZEFsdGVybmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tleSwgTlNTdHJpbmcqKQogU09GVF9M
SU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrSXNEZWZh
dWx0S2V5LCBOU1N0cmluZyopCkBAIC0yNDEsNiArMjQyLDcgQEAgU09GVF9MSU5LX1BPSU5URVIo
QVZGb3VuZGF0aW9uLCBBVk1lZGlhQ2hhcmFjdGVyaXN0aWNJc0F1eGlsaWFyeUNvbnRlbnQsIE5T
U3RyaW4KIAogI2RlZmluZSBBVlVSTEFzc2V0SFRUUENvb2tpZXNLZXkgZ2V0QVZVUkxBc3NldEhU
VFBDb29raWVzS2V5KCkKICNkZWZpbmUgQVZVUkxBc3NldE91dE9mQmFuZEFsdGVybmF0ZVRyYWNr
c0tleSBnZXRBVlVSTEFzc2V0T3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tzS2V5KCkKKyNkZWZpbmUg
QVZVUkxBc3NldFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtleSBnZXRBVlVSTEFzc2V0VXNlc05vUGVy
c2lzdGVudENhY2hlS2V5KCkKICNkZWZpbmUgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0Rpc3Bs
YXlOYW1lS2V5IGdldEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tEaXNwbGF5TmFtZUtleSgpCiAj
ZGVmaW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tFeHRlbmRlZExhbmd1YWdlVGFnS2V5IGdl
dEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tFeHRlbmRlZExhbmd1YWdlVGFnS2V5KCkKICNkZWZp
bmUgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0lzRGVmYXVsdEtleSBnZXRBVk91dE9mQmFuZEFs
dGVybmF0ZVRyYWNrSXNEZWZhdWx0S2V5KCkKQEAgLTg3Miw2ICs4NzQsOCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3Qg
U3RyaW5nJiB1cmwpCiAgICAgfQogI2VuZGlmCiAKKyAgICBbb3B0aW9ucyBzZXRPYmplY3Q6W05T
TnVtYmVyIG51bWJlcldpdGhCb29sOiFwbGF5ZXIoKS0+Y2xpZW50KCkubWVkaWFQbGF5ZXJVc2VQ
ZXJzaXN0ZW50Q2FjaGUoKV0gZm9yS2V5OkFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVL
ZXldOworCiAgICAgTlNVUkwgKmNvY29hVVJMID0gY2Fub25pY2FsVVJMKHVybCk7CiAgICAgbV9h
dkFzc2V0ID0gYWRvcHROUyhbYWxsb2NBVlVSTEFzc2V0SW5zdGFuY2UoKSBpbml0V2l0aFVSTDpj
b2NvYVVSTCBvcHRpb25zOm9wdGlvbnMuZ2V0KCldKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDFjMDkxZTVkMDRm
MWY2ZGZmNzNjOTViMjdjMDA0YTcwZWU2NWU4ZjQuLmNkZTJmOTQzNzZiMTViZjIxNjEzNjVjNzE0
NGNkOTQ2NDdmMGVhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTU1LDYgKzU1LDcgQEAgdm9pZCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgZW5jb2RlciA8PCB1c2VyQ29udGVudENvbnRyb2xsZXJJRDsKICAgICBlbmNvZGVy
IDw8IHZpc2l0ZWRMaW5rVGFibGVJRDsKICAgICBlbmNvZGVyIDw8IHdlYnNpdGVEYXRhU3RvcmVJ
RDsKKyAgICBlbmNvZGVyIDw8IGlzRGF0YVN0b3JlUGVyc2lzdGVudDsKICAgICBlbmNvZGVyIDw8
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKICAgICBlbmNvZGVyIDw8IGNhblJ1bk1v
ZGFsOwogICAgIGVuY29kZXIgPDwgZGV2aWNlU2NhbGVGYWN0b3I7CkBAIC0xMzQsNiArMTM1LDgg
QEAgYm9vbCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFdlYlBhZ2VDcmUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0b3JlSUQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzRGF0
YVN0b3JlUGVyc2lzdGVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5j
YW5SdW5Nb2RhbCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaAppbmRleCAzNzdjMzM2OTQ3YzNlYzFjOWNmNzIyY2U5M2MzYjM2N2ExMGM3
NGYyLi41ZGJkN2U5M2U1YmJkZjdmMDIyMDNlYTZkZDdkM2E3NzQ1NmM3YzUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTg5
LDYgKzg5LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIHVpbnQ2
NF90IHVzZXJDb250ZW50Q29udHJvbGxlcklEOwogICAgIHVpbnQ2NF90IHZpc2l0ZWRMaW5rVGFi
bGVJRDsKICAgICB1aW50NjRfdCB3ZWJzaXRlRGF0YVN0b3JlSUQ7CisgICAgYm9vbCBpc0RhdGFT
dG9yZVBlcnNpc3RlbnQ7CiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7
CiAgICAgYm9vbCBjYW5SdW5Nb2RhbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCA2MjQ0MTJiMTMwYTQ4YmU3YzUxNjEzYWMwYzg2MDlmNTVjNzU3OWU5
Li5iZjM3N2I2ODQxOTNlYjkzMzdkODc3YjMwNjg1YmU3ZTI0NjFhMDMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTE2Nyw2ICs1MTY3LDcgQEAgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygp
CiAgICAgcGFyYW1ldGVycy51c2VyQ29udGVudENvbnRyb2xsZXJJRCA9IG1fdXNlckNvbnRlbnRD
b250cm9sbGVyLT5pZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy52aXNpdGVkTGlua1RhYmxl
SUQgPSBtX3Zpc2l0ZWRMaW5rU3RvcmUtPmlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLndl
YnNpdGVEYXRhU3RvcmVJRCA9IG1fd2Vic2l0ZURhdGFTdG9yZS0+aWRlbnRpZmllcigpOworICAg
IHBhcmFtZXRlcnMuaXNEYXRhU3RvcmVQZXJzaXN0ZW50ID0gbV93ZWJzaXRlRGF0YVN0b3JlLT5p
c1BlcnNpc3RlbnQoKTsKICAgICBwYXJhbWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCA9IG1fdWlDbGllbnQtPmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogICAg
IHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwgPSBtX2NhblJ1bk1vZGFsOwogICAgIHBhcmFtZXRlcnMu
ZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IDQzMGU3NDRhMzg4NjQ2Y2JkMmVhMTcyZThhODQwMmFkNTVjZmQ2NTguLmMz
MzM2YWRjMzNjYjY2YTYyOTE2MDA1M2M5ZWVjZDJmNzQzMmZhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKQEAgLTExNDYsNSArMTE0NiwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlk
SW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKQogewogICAgIG1fcGFnZS0+ZmluZENvbnRy
b2xsZXIoKS5kaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygpOwogfQorICAgIAorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OmlzRGF0YVN0b3JlUGVyc2lzdGVudCgpCit7CisgICAgcmV0dXJu
IG1fcGFnZS0+aXNEYXRhU3RvcmVQZXJzaXN0ZW50KCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMDA1MzNhMWE4ZDYzNmVjNGYzZDFiMmQ3YTcw
YTI5NDM5YjdhYjlhMy4uMzNlYjUwYWZmMmEyOTI2ZTIxNjNlNWJjZTA2NWFkMTc3NjQwMWJiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zMzUsNiArMzM1LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgdm9pZCBkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygpIG92ZXJyaWRl
OworICAgIGJvb2wgaXNEYXRhU3RvcmVQZXJzaXN0ZW50KCkgb3ZlcnJpZGU7CiAKICAgICBTdHJp
bmcgbV9jYWNoZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRyPFdlYkZyYW1lPiBtX2NhY2hl
ZEZyYW1lU2V0TGFyZ2VzdEZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCmluZGV4IDI0OWNkMzVkZGNmNGNhODc1YTQwZmFlNGY2NjVjZGZkZWZh
NDJhNzYuLmI4NmE0YmEwNjM5YzkxZTc3OGE3Y2ZmNjYxOTM0NDFjZjIxYTAyMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM2NSw2ICsz
NjUsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNlbmRpZgogICAgICwgbV9tYWluRnJhbWVQ
cm9ncmVzc0NvbXBsZXRlZChmYWxzZSkKICAgICAsIG1fc2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VN
b3ZlRXZlbnRzKHRydWUpCisgICAgLCBtX2lzRGF0YVN0b3JlUGVyc2lzdGVudChwYXJhbWV0ZXJz
LmlzRGF0YVN0b3JlUGVyc2lzdGVudCkKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4ZWVmODJlNDc1
YzczZjEwMTBiYTdkYjFjMDNmYTQxNjBhYjgwYzI5Li5mYTJiMzIzZDRhNzI1NGNjNGRhNTUzNjg3
ZmYyYTFmMDRkYjQ4YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKQEAgLTkyOSw2ICs5MjksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlc3Rv
cmVTY3JvbGxQb3NpdGlvbigpOwogCisgICAgYm9vbCBpc0RhdGFTdG9yZVBlcnNpc3RlbnQoKSB7
IHJldHVybiBtX2lzRGF0YVN0b3JlUGVyc2lzdGVudDsgfQorCiAgICAgYm9vbCBpc0NvbnRyb2xs
ZWRCeUF1dG9tYXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldENvbnRyb2xsZWRCeUF1dG9tYXRp
b24oYm9vbCk7CiAKQEAgLTE0NDIsNiArMTQ0NCw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFZJ
REVPKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVBsYXllclJl
cXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjaz4gbV9pbnN0YWxsTWVkaWFQbHVnaW5z
Q2FsbGJhY2s7CiAjZW5kaWYKKyAgICBib29sIG1faXNEYXRhU3RvcmVQZXJzaXN0ZW50OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273206</attachid>
            <date>2016-03-07 13:32:05 -0800</date>
            <delta_ts>2016-03-10 14:08:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155117-20160307133152.patch</filename>
            <type>text/plain</type>
            <size>15066</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ1YmQ5ODU1YzZjMGVi
NWIyNDA2ZTIyNjRlM2I4YzI1MjEwOWJlYy4uY2ViZGI2YTBmYWY5NjQ1NTJhMzY3YjlhNTM4NWMy
NTU3YThjNzIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAzLTA3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgQVZVUkxBc3NldFVz
ZXNOb1BlcnNpc3RlbnRDYWNoZUtleSBvbiBBVkFzc2V0IHRvIG1hdGNoIGNhY2hpbmcgcG9saWN5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGZ1bmN0aW9uYWxpdHkgd2FzIGFkZGVkLgorCisgICAgICAg
IFRoaXMgd2lsbCBwcmV2ZW50IHBlcnNpc3RlbnQgbWVkaWEgY2FjaGVzIHdoZW4gd2Via2l0IGlz
IHVzaW5nIGluIG1lbW9yeSBjYWNoaW5nLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
VXNlc1BlcnNpc3RlbnRDYWNoZSk6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5oOiBEZWNsYXJlIG1lZGlhUGxheWVyVXNlc1BlcnNpc3RlbnRDYWNoZSgpLgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IERlY2xhcmUgbWVkaWFVc2VzUGVyc2lzdGVudENhY2hl
KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXllclVzZXNQZXJzaXN0ZW50Q2Fj
aGUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVS
TCk6IFNldCBwcm9wZXJ0eSBvbiBBVkFzc2V0T3B0aW9ucy4KKwogMjAxNi0wMy0wNiAgQmVuamFt
aW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbXByb3Zl
IGNvZGVnZW4gb2YgQ29tcGFyZSBhbmQgVGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDFmOWVlN2E3
MjNiYWNkYWQ0Yzc4ZjhhYTQ3MmRjYTRhNTFlNmMxZTUuLmU3MDUwODJmN2RlZjYwMjk3ZDFlYjhi
MGE3ODg4MzUzNmE1M2Q2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Ni0wMy0wNyAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0
IEFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXkgb24gQVZBc3NldCB0byBtYXRjaCBj
YWNoaW5nIHBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NTExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBtZWRpYVVzZXNQZXJzaXN0ZW50Q2FjaGUgdG8gZGlzYWJsZSBtZWRp
YSBjYWNoaW5nIHdoZW4gTlNVUkxDYWNoZSBpcyBkaXNhYmxlZC4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bWVkaWFVc2VzUGVy
c2lzdGVudENhY2hlKTogQWRkZWQuCisKIDIwMTYtMDMtMDYgIEFuZHJlYXMgS2xpbmcgIDxha2xp
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBwYWdlIGNhY2hlIGNhcGFjaXR5IGZyb20g
MyB0byAyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDljM2E3ZmY4NTI1N2I0ZTY3NGE4ZjA0ZTY2NDlmYTMwZjli
M2M2NDguLmEwNzgxNGJkMGY0ZjJhZjJhZmI4Y2FiMTgxNzNlYjMxN2Y3ZjQ1OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNi0wMy0wNyAgSmVyZW15IEpvbmVzICA8amVyZW15akBh
cHBsZS5jb20+CisKKyAgICAgICAgU2V0IEFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVL
ZXkgb24gQVZBc3NldCB0byBtYXRjaCBjYWNoaW5nIHBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTExNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgQVZBc3NldCBBVlVSTEFzc2V0VXNl
c05vUGVyc2lzdGVudENhY2hlS2V5IG1hdGNoICFtX3dlYnNpdGVEYXRhU3RvcmUtPmlzUGVyc2lz
dGVudCgpCisgICAgICAgIFRoaXMgd2lsbCBwcmV2ZW50IHBlcnNpc3RlbnQgbWVkaWEgY2FjaGVz
IHdoZW4gd2Via2l0IGlzIHVzaW5nIGluIG1lbW9yeSBjYWNoaW5nLgorCisgICAgICAgICogU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOiBBZGQgbWVkaWFVc2VzUGVyc2lzdGVu
dENhY2hlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKTogQWRkIG1lZGlhVXNlc1BlcnNpc3RlbnRDYWNoZS4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bWVkaWFVc2VzUGVyc2lzdGVudENh
Y2hlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Om1fbWVkaWFVc2VzUGVyc2lzdGVudENhY2hlKTogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bWVkaWFVc2VzUGVyc2lzdGVudENhY2hlKTogQWRkZWQuCisKIDIwMTYtMDMtMDYgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBwYWdlIGNh
Y2hlIGNhcGFjaXR5IGZyb20gMyB0byAyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggNTllNjg1YTMyZGY4MDY5M2NkNDFmODZhZTRkNDI1NTk2Y2UyZGU1Yy4u
NGRmNDQ3NmQ3ZWMyMjY0YjljYjIxZGE2ZDc0ZWU2YTYwODZjYTBlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC02MTQxLDYgKzYxNDEsMTQgQEAgUmVmUHRy
PFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJDcmVhdGVSZXNvdXJjZUwKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVJlc291cmNl
TG9hZGVyKGRvY3VtZW50KCksIGZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdp
bkF0dHIpKSk7CiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJVc2VzUGVy
c2lzdGVudENhY2hlKCkKK3sKKyAgICBpZiAoIWRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLm1lZGlhVXNlc1BlcnNpc3RlbnRDYWNoZSgpOworfQorCiBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyU2hvdWxkV2FpdEZvclJlc3BvbnNlVG9BdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQogewogICAg
IEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKaW5kZXggM2RjZGIyNWZhN2I0ZTM4NGUwZjJiY2U3NDAwODU5NTAxZWUw
NjM3YS4uMWNkM2Q4YzVlNjVjYjgyNmJjODcxMTAwNDgzMjkxYWJmZGEwODI2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU5NSw2ICs1OTUsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0xvb3BpbmcoKSBjb25zdCBvdmVycmlkZTsKICAgICBD
YWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIG92
ZXJyaWRlOwogICAgIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxh
eWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSBvdmVycmlkZTsKKyAgICBib29sIG1lZGlhUGxheWVy
VXNlc1BlcnNpc3RlbnRDYWNoZSgpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQogICAgIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogbWVkaWFQbGF5ZXJH
cmFwaGljc0RldmljZUFkYXB0ZXIoY29uc3QgTWVkaWFQbGF5ZXIqKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGQ4M2NjYjQ3MzA4NjEwMjFkZWJjYmFm
YTQ5OTM4YWZlZTRmNTQ3OWEuLjIxNTZlOWQxMzJhMTk4ODlkNTdiYjY4ZTQ1YmE4NjU4YzJjY2Q2
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDcwLDYgKzQ3MCw4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0
cygpIHsgfQogCisgICAgdmlydHVhbCBib29sIG1lZGlhVXNlc1BlcnNpc3RlbnRDYWNoZSgpIHsg
cmV0dXJuIHRydWU7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgp
IHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCmluZGV4IGRiZDRmOGFhNzNiZTk0NGM0M2ZiZTc1MWFiNmZjNGMwZjg3NzE2OTcuLmYwOTk3
OTBhNjFjYmRkOGU0OTZkYWI0ZjFiMTE2ZmVkNzE1NzNmZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjM1LDYgKzIzNSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNlTG9hZGVyKiBtZWRpYVBsYXllckNhY2hl
ZFJlc291cmNlTG9hZGVyKCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgUmVmUHRyPFBsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigp
IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgZG9lc0hhdmVBdHRyaWJ1dGUo
Y29uc3QgQXRvbWljU3RyaW5nJiwgQXRvbWljU3RyaW5nKiA9IDApIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyVXNlc1BlcnNpc3RlbnRDYWNoZSgp
IHsgcmV0dXJuIHRydWU7IH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKFBhc3NSZWZQdHI8QXVkaW9UcmFja1By
aXZhdGU+KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDkzMDg3ODAxZjhiZGVmZGQ1
Y2MzOTYyOTk3MjIyYzU2ODExYTA2ODYuLjViZGRjZTEyMjRhYmIxNjM5YjM2OWQ3YmQ4ZTZkYzkz
ZjE0YmIxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMjI5LDYgKzIyOSw3IEBAIFNP
RlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJJdGVtTGVnaWJsZU91dHB1dFRl
eHRTdHlsaW5nUmVzb2x1dGlvblNvCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKIFNPRlRfTElO
S19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEhUVFBDb29raWVzS2V5LCBOU1N0cmlu
ZyopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRPdXRPZkJhbmRB
bHRlcm5hdGVUcmFja3NLZXksIE5TU3RyaW5nKikKK1NPRlRfTElOS19QT0lOVEVSKEFWRm91bmRh
dGlvbiwgQVZVUkxBc3NldFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtleSwgTlNTdHJpbmcqKQogU09G
VF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlz
cGxheU5hbWVLZXksIE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwg
QVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0V4dGVuZGVkTGFuZ3VhZ2VUYWdLZXksIE5TU3RyaW5n
KikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZPdXRPZkJhbmRBbHRlcm5hdGVU
cmFja0lzRGVmYXVsdEtleSwgTlNTdHJpbmcqKQpAQCAtMjQxLDYgKzI0Miw3IEBAIFNPRlRfTElO
S19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZNZWRpYUNoYXJhY3RlcmlzdGljSXNBdXhpbGlhcnlD
b250ZW50LCBOU1N0cmluCiAKICNkZWZpbmUgQVZVUkxBc3NldEhUVFBDb29raWVzS2V5IGdldEFW
VVJMQXNzZXRIVFRQQ29va2llc0tleSgpCiAjZGVmaW5lIEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRl
cm5hdGVUcmFja3NLZXkgZ2V0QVZVUkxBc3NldE91dE9mQmFuZEFsdGVybmF0ZVRyYWNrc0tleSgp
CisjZGVmaW5lIEFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXkgZ2V0QVZVUkxBc3Nl
dFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtleSgpCiAjZGVmaW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRl
VHJhY2tEaXNwbGF5TmFtZUtleSBnZXRBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5h
bWVLZXkoKQogI2RlZmluZSBBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFn
ZVRhZ0tleSBnZXRBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tl
eSgpCiAjZGVmaW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tJc0RlZmF1bHRLZXkgZ2V0QVZP
dXRPZkJhbmRBbHRlcm5hdGVUcmFja0lzRGVmYXVsdEtleSgpCkBAIC04NzIsNiArODc0LDggQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9y
VVJMKGNvbnN0IFN0cmluZyYgdXJsKQogICAgIH0KICNlbmRpZgogCisgICAgW29wdGlvbnMgc2V0
T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoQm9vbDohcGxheWVyKCktPmNsaWVudCgpLm1lZGlh
UGxheWVyVXNlc1BlcnNpc3RlbnRDYWNoZSgpXSBmb3JLZXk6QVZVUkxBc3NldFVzZXNOb1BlcnNp
c3RlbnRDYWNoZUtleV07CisKICAgICBOU1VSTCAqY29jb2FVUkwgPSBjYW5vbmljYWxVUkwodXJs
KTsKICAgICBtX2F2QXNzZXQgPSBhZG9wdE5TKFthbGxvY0FWVVJMQXNzZXRJbnN0YW5jZSgpIGlu
aXRXaXRoVVJMOmNvY29hVVJMIG9wdGlvbnM6b3B0aW9ucy5nZXQoKV0pOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDhl
MjBmZTM3NjU4NGIyMWE5Zjg1MjM2YzM0Mzc5OWM0NTFmYTJjMTMuLjg3ZTZiYjZkMGI0MWEwNTc5
ZjA3OTc5MmU1ZmU3YjczYjdlMzY4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMTgsNiArMjE4LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0
ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3Rh
dGUpIG92ZXJyaWRlOwogI2VuZGlmCisgICAgCisgICAgYm9vbCBtZWRpYVVzZXNQZXJzaXN0ZW50
Q2FjaGUoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBXZWJWaWV3ICptX3dlYlZpZXc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KaW5kZXggYTIyYjk0ZWViNzg2MjkwYTBjMjBlNGVlNzcxN2VjNzcxMmQ5MGIxMi4uYjY4YzVh
ZmUyZjMyNTdkM2E3ZTM2YzIyYmE3NTFjYmM1OWE1ZTI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMTA1MywzICsx
MDUzLDggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiBuYW1lLAogfQogCiAjZW5kaWYKKworYm9vbCBXZWJD
aHJvbWVDbGllbnQ6Om1lZGlhVXNlc1BlcnNpc3RlbnRDYWNoZSgpCit7CisgICAgcmV0dXJuIFtb
TlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0gZGlza0NhcGFjaXR5XSA+IDA7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5k
ZXggMWMwOTFlNWQwNGYxZjZkZmY3M2M5NWIyN2MwMDRhNzBlZTY1ZThmNC4uZDBmZDQ4NmFhZjJi
Mjk0Yzg3MDZmM2Q5YjczNmQwMTJlNmU0YzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTUsNiArNTUsNyBAQCB2
b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVzZXJDb250ZW50Q29udHJvbGxlcklE
OwogICAgIGVuY29kZXIgPDwgdmlzaXRlZExpbmtUYWJsZUlEOwogICAgIGVuY29kZXIgPDwgd2Vi
c2l0ZURhdGFTdG9yZUlEOworICAgIGVuY29kZXIgPDwgbWVkaWFVc2VzUGVyc2lzdGVudENhY2hl
OwogICAgIGVuY29kZXIgPDwgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOwogICAgIGVu
Y29kZXIgPDwgY2FuUnVuTW9kYWw7CiAgICAgZW5jb2RlciA8PCBkZXZpY2VTY2FsZUZhY3RvcjsK
QEAgLTEzNCw2ICsxMzUsOCBAQCBib29sIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnZUNyZQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLndlYnNpdGVEYXRh
U3RvcmVJRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMubWVkaWFVc2VzUGVyc2lzdGVudENhY2hlKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDM3N2MzMzY5NDdjM2VjMWM5
Y2Y3MjJjZTkzYzNiMzY3YTEwYzc0ZjIuLjNmZDM4ODYwYWFiYzNlOGUxZWYyYjY3ZTg3OWYwZTY2
ZjRmNmQzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaApAQCAtODksNiArODksNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyB7CiAgICAgdWludDY0X3QgdXNlckNvbnRlbnRDb250cm9sbGVySUQ7CiAgICAgdWlu
dDY0X3QgdmlzaXRlZExpbmtUYWJsZUlEOwogICAgIHVpbnQ2NF90IHdlYnNpdGVEYXRhU3RvcmVJ
RDsKKyAgICBib29sIG1lZGlhVXNlc1BlcnNpc3RlbnRDYWNoZTsKICAgICBib29sIGNhblJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbDsKICAgICBib29sIGNhblJ1bk1vZGFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDYyNDQxMmIxMzBhNDhiZTdj
NTE2MTNhYzBjODYwOWY1NWM3NTc5ZTkuLmZiYmQxODBhNWE2NTZmNDMwNThhODY5MWQ5MjkwNzU2
MjE2NzU0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC01MTY3LDYgKzUxNjcsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94
eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKCkKICAgICBwYXJhbWV0ZXJzLnVzZXJDb250ZW50Q29udHJv
bGxlcklEID0gbV91c2VyQ29udGVudENvbnRyb2xsZXItPmlkZW50aWZpZXIoKTsKICAgICBwYXJh
bWV0ZXJzLnZpc2l0ZWRMaW5rVGFibGVJRCA9IG1fdmlzaXRlZExpbmtTdG9yZS0+aWRlbnRpZmll
cigpOwogICAgIHBhcmFtZXRlcnMud2Vic2l0ZURhdGFTdG9yZUlEID0gbV93ZWJzaXRlRGF0YVN0
b3JlLT5pZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy5tZWRpYVVzZXNQZXJzaXN0ZW50Q2Fj
aGUgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPmlzUGVyc2lzdGVudCgpOwogICAgIHBhcmFtZXRlcnMu
Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsID0gbV91aUNsaWVudC0+Y2FuUnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKCk7CiAgICAgcGFyYW1ldGVycy5jYW5SdW5Nb2RhbCA9IG1fY2Fu
UnVuTW9kYWw7CiAgICAgcGFyYW1ldGVycy5kZXZpY2VTY2FsZUZhY3RvciA9IGRldmljZVNjYWxl
RmFjdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDMwZTc0NGEzODg2NDZjYmQy
ZWExNzJlOGE4NDAyYWQ1NWNmZDY1OC4uMDEzOTUzNGUzNjExMWE2ZTFlMmI2ZDQzZTM5NDZlYzhk
YmZhZjZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTE0Niw1ICsxMTQ2LDEwIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygp
CiB7CiAgICAgbV9wYWdlLT5maW5kQ29udHJvbGxlcigpLmRpZEludmFsaWRhdGVEb2N1bWVudE1h
cmtlclJlY3RzKCk7CiB9CisgICAgCitib29sIFdlYkNocm9tZUNsaWVudDo6bWVkaWFVc2VzUGVy
c2lzdGVudENhY2hlKCkKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5tZWRpYVVzZXNQZXJzaXN0ZW50
Q2FjaGUoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApp
bmRleCAwMDUzM2ExYThkNjM2ZWM0ZjNkMWIyZDdhNzBhMjk0MzliN2FiOWEzLi5kODQwYjI3YjMx
NmI3YjEyOTJhOGIzYjNlZjIzMWNjNDg1NjJkNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTMzNSw2ICszMzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGRpZEludmFsaWRh
dGVEb2N1bWVudE1hcmtlclJlY3RzKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBtZWRpYVVzZXNQZXJz
aXN0ZW50Q2FjaGUoKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAg
ICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
MjQ5Y2QzNWRkY2Y0Y2E4NzVhNDBmYWU0ZjY2NWNkZmRlZmE0MmE3Ni4uYjAzNjJiMzE5MmQwYzBk
M2QxZjliMDA5ODRiODhhYzA0ZTg1MTdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzY1LDYgKzM2NSw3IEBAIFdlYlBhZ2U6OldlYlBh
Z2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQogI2VuZGlmCiAgICAgLCBtX21haW5GcmFtZVByb2dyZXNzQ29tcGxldGVkKGZhbHNl
KQogICAgICwgbV9zaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHModHJ1ZSkKKyAgICAs
IG1fbWVkaWFVc2VzUGVyc2lzdGVudENhY2hlKHBhcmFtZXRlcnMubWVkaWFVc2VzUGVyc2lzdGVu
dENhY2hlKQogewogICAgIEFTU0VSVChtX3BhZ2VJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDhlZWY4MmU0NzVjNzNmMTAxMGJhN2RiMWMw
M2ZhNDE2MGFiODBjMjkuLjE5NGUzNDRhNjM1ZTQ1NzFjMjk2YmVkZmYwMzg0ODczYTNiYjk1OWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTI5
LDYgKzkyOSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCk7CiAKKyAgICBib29sIG1lZGlhVXNlc1BlcnNpc3RlbnRDYWNoZSgpIHsgcmV0dXJuIG1fbWVk
aWFVc2VzUGVyc2lzdGVudENhY2hlOyB9CisKICAgICBib29sIGlzQ29udHJvbGxlZEJ5QXV0b21h
dGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihib29sKTsK
IApAQCAtMTQ0Miw2ICsxNDQ0LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVklERU8pICYmIFVT
RShHU1RSRUFNRVIpCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyUmVxdWVzdEluc3Rh
bGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrPiBtX2luc3RhbGxNZWRpYVBsdWdpbnNDYWxsYmFjazsK
ICNlbmRpZgorICAgIGJvb2wgbV9tZWRpYVVzZXNQZXJzaXN0ZW50Q2FjaGU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273620</attachid>
            <date>2016-03-10 14:08:05 -0800</date>
            <delta_ts>2016-03-10 17:40:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155117-20160310140753.patch</filename>
            <type>text/plain</type>
            <size>15220</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmNGNlMTcwZjdmOTFi
YzMyYzI0YTIyZTA1MzA4YWNhNzMyYTI2OC4uYzE1YzVmMzYzZDU5ZWQ0YTZhZDE3NzdlNjU0NWJm
ZjY1YTIzNTg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAzLTA3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgQVZVUkxBc3NldFVz
ZXNOb1BlcnNpc3RlbnRDYWNoZUtleSBvbiBBVkFzc2V0IHRvIG1hdGNoIGNhY2hpbmcgcG9saWN5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGZ1bmN0aW9uYWxpdHkgd2FzIGFkZGVkLgorCisgICAgICAg
IFRoaXMgd2lsbCBwcmV2ZW50IHBlcnNpc3RlbnQgbWVkaWEgY2FjaGVzIHdoZW4gd2Via2l0IGlz
IHVzaW5nIGluIG1lbW9yeSBjYWNoaW5nLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
U2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKTogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50Lmg6IERlY2xhcmUgbWVkaWFQbGF5ZXJTaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUo
KS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOiBEZWNsYXJlIG1lZGlhUGxheWVyU2hv
dWxkVXNlUGVyc2lzdGVudENhY2hlKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBs
YXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKTogU2V0IHByb3BlcnR5IG9uIEFWQXNzZXRPcHRp
b25zLgorCiAyMDE2LTAzLTEwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTk3OTIzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDBmNjYyOWM1ZmVjZDIzODNhZGExOGZhYTE3ZWFmYmMzNzE0NzFkYzQuLjJiNDEw
YmUxZDU1NTRmMWFhMTIyNDRjOTU1ODFlOTI5NTI5ZmQ4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxNi0wMy0wNyAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5j
b20+CisKKyAgICAgICAgU2V0IEFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXkgb24g
QVZBc3NldCB0byBtYXRjaCBjYWNoaW5nIHBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtZWRpYVNob3VsZFVzZVBlcnNpc3Rl
bnRDYWNoZSB0byBkaXNhYmxlIG1lZGlhIGNhY2hpbmcgd2hlbiBOU1VSTENhY2hlIGlzIGRpc2Fi
bGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjptZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSk6IEFkZGVkLgorCiAyMDE2
LTAyLTIyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJs
ZSBBVkZvdW5kYXRpb25OU1VSTFNlc3Npb25FbmFibGVkIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCAwZTI2NjZjMmY0ZDNkMmU3ZDVhMzU5NGZjMzJjYzM4OWNiMzEzY2E4Li5kZjY4YmE4YTgzYjBk
MzIwY2EwOWQzOTY3Nzk3NTgwZDE0OTc2YjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTYtMDMtMDcgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAg
IFNldCBBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5IG9uIEFWQXNzZXQgdG8gbWF0
Y2ggY2FjaGluZyBwb2xpY3kuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTUxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIEFWQXNzZXQgQVZVUkxBc3NldFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtl
eSBtYXRjaCAhbV93ZWJzaXRlRGF0YVN0b3JlLT5pc1BlcnNpc3RlbnQoKQorICAgICAgICBUaGlz
IHdpbGwgcHJldmVudCBwZXJzaXN0ZW50IG1lZGlhIGNhY2hlcyB3aGVuIHdlYmtpdCBpcyB1c2lu
ZyBpbi1tZW1vcnkgY2FjaGluZy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDogQWRkIG1lZGlhU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25Q
YXJhbWV0ZXJzKTogQWRkIG1lZGlhU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjptZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSk6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjptX21lZGlhVXNlc1BlcnNpc3RlbnRDYWNoZSk6IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1lZGlhU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKTogQWRkZWQuCisKIDIwMTYtMDMtMTAgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxOTc5MjMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAppbmRleCA1MTdjZjZlMWY3YzFiNTNiM2FlODkyNTg1MDU1YWYwZTI4MjNiZTA1Li43
MDZhZGZjMzQ3ODE1MjJjNzdmNmI2MmUyMDgzZWY5NTI5ZjY3ZGNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTYxNDIsNiArNjE0MiwxNCBAQCBSZWZQdHI8
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckNyZWF0ZVJlc291cmNlTAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhUmVzb3VyY2VM
b2FkZXIoZG9jdW1lbnQoKSwgZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2lu
QXR0cikpKTsKIH0KIAorYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNob3VsZFVz
ZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0Cit7CisgICAgaWYgKCFkb2N1bWVudCgpLnBhZ2UoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGRvY3VtZW50KCkucGFnZSgpLT5j
aHJvbWUoKS5jbGllbnQoKS5tZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpOworfQorCiBi
b29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2hvdWxkV2FpdEZvclJlc3BvbnNlVG9B
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hh
bGxlbmdlKQogewogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggOWEwOWJhMmY1OGM5YjZhMTg4Zjhj
MjZjMTkzN2FjY2M0NjhhZjYzOS4uN2MwYmRjMDMzMDNlY2VmMzhiYjU2NjM0ODI1MTEwZTEwY2Qw
ZDQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU5Niw2ICs1
OTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0xvb3BpbmcoKSBjb25zdCBv
dmVycmlkZTsKICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNv
dXJjZUxvYWRlcigpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSBvdmVycmlkZTsKKyAgICBi
b29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgR3JhcGhpY3NE
ZXZpY2VBZGFwdGVyKiBtZWRpYVBsYXllckdyYXBoaWNzRGV2aWNlQWRhcHRlcihjb25zdCBNZWRp
YVBsYXllciopIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggZDgzY2NiNDczMDg2MTAyMWRlYmNiYWZhNDk5MzhhZmVlNGY1NDc5YS4uYmM1ZDk0YzIxOWY3
Y2QzZDRjM2E3NzQ3ZDViOGM3ODhlMmUxM2RkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC00NzAsNiArNDcwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZElu
dmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgbWVk
aWFTaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBkYmQ0ZjhhYTcz
YmU5NDRjNDNmYmU3NTFhYjZmYzRjMGY4NzcxNjk3Li41ZWE1NTg3MTEwNTkzN2VlZTQwNjNlNzI1
OTJhMWFlNTU3MTU0NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmgKQEAgLTIzNSw2ICsyMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBD
YWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIHsg
cmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2Fk
ZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBib29sIGRvZXNIYXZlQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYs
IEF0b21pY1N0cmluZyogPSAwKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBtZWRpYVBsYXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDkzMDg3ODAxZjhiZGVmZGQ1Y2MzOTYyOTk3
MjIyYzU2ODExYTA2ODYuLjE1NDM3ZGRkOGVkNmYzZDBhMmJkYmU1NWU4ZjMxZGZhN2M0NmNkZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMjI5LDYgKzIyOSw3IEBAIFNPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJJdGVtTGVnaWJsZU91dHB1dFRleHRTdHlsaW5n
UmVzb2x1dGlvblNvCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKIFNPRlRfTElOS19QT0lOVEVS
KEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEhUVFBDb29raWVzS2V5LCBOU1N0cmluZyopCiBTT0ZU
X0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRlcm5hdGVU
cmFja3NLZXksIE5TU3RyaW5nKikKK1NPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZV
UkxBc3NldFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtleSwgTlNTdHJpbmcqKQogU09GVF9MSU5LX1BP
SU5URVIoQVZGb3VuZGF0aW9uLCBBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5hbWVL
ZXksIE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZPdXRPZkJh
bmRBbHRlcm5hdGVUcmFja0V4dGVuZGVkTGFuZ3VhZ2VUYWdLZXksIE5TU3RyaW5nKikKIFNPRlRf
TElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0lzRGVm
YXVsdEtleSwgTlNTdHJpbmcqKQpAQCAtMjQxLDYgKzI0Miw3IEBAIFNPRlRfTElOS19QT0lOVEVS
KEFWRm91bmRhdGlvbiwgQVZNZWRpYUNoYXJhY3RlcmlzdGljSXNBdXhpbGlhcnlDb250ZW50LCBO
U1N0cmluCiAKICNkZWZpbmUgQVZVUkxBc3NldEhUVFBDb29raWVzS2V5IGdldEFWVVJMQXNzZXRI
VFRQQ29va2llc0tleSgpCiAjZGVmaW5lIEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRlcm5hdGVUcmFj
a3NLZXkgZ2V0QVZVUkxBc3NldE91dE9mQmFuZEFsdGVybmF0ZVRyYWNrc0tleSgpCisjZGVmaW5l
IEFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXkgZ2V0QVZVUkxBc3NldFVzZXNOb1Bl
cnNpc3RlbnRDYWNoZUtleSgpCiAjZGVmaW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tEaXNw
bGF5TmFtZUtleSBnZXRBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5hbWVLZXkoKQog
I2RlZmluZSBBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tleSBn
ZXRBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tleSgpCiAjZGVm
aW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tJc0RlZmF1bHRLZXkgZ2V0QVZPdXRPZkJhbmRB
bHRlcm5hdGVUcmFja0lzRGVmYXVsdEtleSgpCkBAIC04NzIsNiArODc0LDggQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0
IFN0cmluZyYgdXJsKQogICAgIH0KICNlbmRpZgogCisgICAgW29wdGlvbnMgc2V0T2JqZWN0OltO
U051bWJlciBudW1iZXJXaXRoQm9vbDohcGxheWVyKCktPmNsaWVudCgpLm1lZGlhUGxheWVyU2hv
dWxkVXNlUGVyc2lzdGVudENhY2hlKCldIGZvcktleTpBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVu
dENhY2hlS2V5XTsKKwogICAgIE5TVVJMICpjb2NvYVVSTCA9IGNhbm9uaWNhbFVSTCh1cmwpOwog
ICAgIG1fYXZBc3NldCA9IGFkb3B0TlMoW2FsbG9jQVZVUkxBc3NldEluc3RhbmNlKCkgaW5pdFdp
dGhVUkw6Y29jb2FVUkwgb3B0aW9uczpvcHRpb25zLmdldCgpXSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOGUyMGZl
Mzc2NTg0YjIxYTlmODUyMzZjMzQzNzk5YzQ1MWZhMmMxMy4uMzgxZTkxNzUwNjExOTA3YjAxMTlk
YWE3MTk0YjY4ZjFhYjJlZjZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIxOCw2ICsyMTgsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNv
bnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSkg
b3ZlcnJpZGU7CiAjZW5kaWYKKyAgICAKKyAgICBib29sIG1lZGlhU2hvdWxkVXNlUGVyc2lzdGVu
dENhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyAqbV93ZWJW
aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCmluZGV4IGEyMmI5NGVlYjc4NjI5MGEwYzIwZTRlZTc3MTdlYzc3MTJkOTBiMTIu
LmY5ODFhYzU2NDEwNjVhNjc3YzgzNjZiMmQ3YzhlOTY5NmI2ZTVhMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTEw
NTMsMyArMTA1Myw4IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRNb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYgbmFtZSwKIH0KIAogI2VuZGlmCisKK2Jv
b2wgV2ViQ2hyb21lQ2xpZW50OjptZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFtbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0gZGlza0NhcGFjaXR5
XSA+IDA7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKaW5kZXggMWMwOTFlNWQwNGYxZjZkZmY3M2M5NWIyN2MwMDRhNzBlZTY1
ZThmNC4uODI3NTY0MjFmZWFlYTQ1OTA4NzEwN2VlYmE3OTY2ZWVjZTdlY2ZlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtNTUsNiArNTUsNyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVzZXJD
b250ZW50Q29udHJvbGxlcklEOwogICAgIGVuY29kZXIgPDwgdmlzaXRlZExpbmtUYWJsZUlEOwog
ICAgIGVuY29kZXIgPDwgd2Vic2l0ZURhdGFTdG9yZUlEOworICAgIGVuY29kZXIgPDwgbWVkaWFT
aG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7CiAgICAgZW5jb2RlciA8PCBjYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWw7CiAgICAgZW5jb2RlciA8PCBjYW5SdW5Nb2RhbDsKICAgICBlbmNvZGVy
IDw8IGRldmljZVNjYWxlRmFjdG9yOwpAQCAtMTM0LDYgKzEzNSw4IEBAIGJvb2wgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBX
ZWJQYWdlQ3JlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMud2Vic2l0ZURhdGFTdG9yZUlEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYVNob3VsZFVzZVBlcnNpc3Rl
bnRDYWNoZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYW5SdW5Nb2Rh
bCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuaAppbmRleCAzNzdjMzM2OTQ3YzNlYzFjOWNmNzIyY2U5M2MzYjM2N2ExMGM3NGYyLi5hNTQ3
ZWNkYjA4ZjNhOTY5ZDgyMDA2ZmNhZGQ4ZGIxMGViMWY0NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTg5LDYgKzg5LDcg
QEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIHVpbnQ2NF90IHVzZXJD
b250ZW50Q29udHJvbGxlcklEOwogICAgIHVpbnQ2NF90IHZpc2l0ZWRMaW5rVGFibGVJRDsKICAg
ICB1aW50NjRfdCB3ZWJzaXRlRGF0YVN0b3JlSUQ7CisgICAgYm9vbCBtZWRpYVNob3VsZFVzZVBl
cnNpc3RlbnRDYWNoZTsKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsK
ICAgICBib29sIGNhblJ1bk1vZGFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDQyZWZiODczZDdkYWYxNTcyOTFmNzkzMWE3NWYzYmFkN2UyZTgwODcu
LjIyMWFhZWIzNzg0MGJkNDI5ODVhZjJmNWMzNmIzOWMwZWNhMGI0NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01MTY4LDYgKzUxNjgsNyBAQCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKCkK
ICAgICBwYXJhbWV0ZXJzLnVzZXJDb250ZW50Q29udHJvbGxlcklEID0gbV91c2VyQ29udGVudENv
bnRyb2xsZXItPmlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5rVGFibGVJ
RCA9IG1fdmlzaXRlZExpbmtTdG9yZS0+aWRlbnRpZmllcigpOwogICAgIHBhcmFtZXRlcnMud2Vi
c2l0ZURhdGFTdG9yZUlEID0gbV93ZWJzaXRlRGF0YVN0b3JlLT5pZGVudGlmaWVyKCk7CisgICAg
cGFyYW1ldGVycy5tZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSA9IG1fd2Vic2l0ZURhdGFT
dG9yZS0+aXNQZXJzaXN0ZW50KCk7CiAgICAgcGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwgPSBtX3VpQ2xpZW50LT5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwo
KTsKICAgICBwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsID0gbV9jYW5SdW5Nb2RhbDsKICAgICBwYXJh
bWV0ZXJzLmRldmljZVNjYWxlRmFjdG9yID0gZGV2aWNlU2NhbGVGYWN0b3IoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAppbmRleCA0MzBlNzQ0YTM4ODY0NmNiZDJlYTE3MmU4YTg0MDJhZDU1Y2Zk
NjU4Li5kMjJlN2U3MDUxYjczY2ZlZGQzZTM5MTU0NmE5ZmI3NTRiZmU4YzljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC0xMTQ2LDUgKzExNDYsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkKIHsKICAgICBtX3BhZ2UtPmZp
bmRDb250cm9sbGVyKCkuZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKTsKIH0KKyAg
ICAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjptZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+bWVkaWFTaG91bGRVc2VQZXJzaXN0ZW50Q2Fj
aGUoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCAwMDUzM2ExYThkNjM2ZWM0ZjNkMWIyZDdhNzBhMjk0MzliN2FiOWEzLi45MmY1MmVmZDkyOGNm
YmMwZTE2MDZiZDlhMWYwZjQ1ODk1OGFiZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTMz
NSw2ICszMzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGRpZEludmFsaWRhdGVE
b2N1bWVudE1hcmtlclJlY3RzKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBtZWRpYVNob3VsZFVzZVBl
cnNpc3RlbnRDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9v
bFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdl
c3RGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCA4ZjUyNjhjMDJjZTczYWRkZjMxNGY4NTExMmMzYjU0NzViZDRhODUxLi4zNWM5MDJi
ZWMxMzBkMGE4ZjJjMDMxYTRjNTJiYWVlOTBkZWY0YTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNjUsNiArMzY1LDcgQEAgV2ViUGFn
ZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCiAjZW5kaWYKICAgICAsIG1fbWFpbkZyYW1lUHJvZ3Jlc3NDb21wbGV0
ZWQoZmFsc2UpCiAgICAgLCBtX3Nob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cyh0cnVl
KQorICAgICwgbV9tZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZShwYXJhbWV0ZXJzLm1lZGlh
U2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKQogewogICAgIEFTU0VSVChtX3BhZ2VJRCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDlmN2UyZjlj
Nzg1NDI3YzkzOTU4MGZjNDhiODJkMTQ1YmZhNGVmYzIuLjk5MjI4YzA0ZWYxZjlmNmVjYjMwMWZk
MTc0NDdjZGUzZjA5MDQ2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtOTI5LDYgKzkyOSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVz
dG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAKKyAgICBib29sIG1lZGlhU2hvdWxkVXNlUGVyc2lzdGVu
dENhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsg
fQorCiAgICAgYm9vbCBpc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24oKSBjb25zdDsKICAgICB2b2lk
IHNldENvbnRyb2xsZWRCeUF1dG9tYXRpb24oYm9vbCk7CiAKQEAgLTE0NTAsNiArMTQ1Miw4IEBA
IHByaXZhdGU6CiAjaWYgVVNFKE9TX1NUQVRFKQogICAgIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgbV9sb2FkQ29tbWl0VGltZTsKICNlbmRpZgorCisgICAgYm9vbCBtX21l
ZGlhU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273660</attachid>
            <date>2016-03-10 17:40:05 -0800</date>
            <delta_ts>2016-03-10 20:49:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155117-20160310173953.patch</filename>
            <type>text/plain</type>
            <size>15310</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmNGNlMTcwZjdmOTFi
YzMyYzI0YTIyZTA1MzA4YWNhNzMyYTI2OC4uNjA4ZjRiYzYyNWU2N2IyNTYzMzMxNjdlMmIzNTdm
YjRjYjAyYzlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAzLTA3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTZXQgQVZVUkxBc3NldFVz
ZXNOb1BlcnNpc3RlbnRDYWNoZUtleSBvbiBBVkFzc2V0IHRvIG1hdGNoIGNhY2hpbmcgcG9saWN5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTE3
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzY4MDIyNDAKKworICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGZ1bmN0
aW9uYWxpdHkgd2FzIGFkZGVkLgorCisgICAgICAgIFRoaXMgd2lsbCBwcmV2ZW50IHBlcnNpc3Rl
bnQgbWVkaWEgY2FjaGVzIHdoZW4gd2Via2l0IGlzIHVzaW5nIGluIG1lbW9yeSBjYWNoaW5nLgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKTog
QWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6IERlY2xhcmUgbWVkaWFQ
bGF5ZXJTaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNs
aWVudC5oOiBEZWNsYXJlIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNo
ZSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJM
KTogU2V0IHByb3BlcnR5IG9uIEFWQXNzZXRPcHRpb25zLgorCiAyMDE2LTAzLTEwICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTk3OTIzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDBmNjYyOWM1ZmVjZDIzODNh
ZGExOGZhYTE3ZWFmYmMzNzE0NzFkYzQuLjM2YTliYWQyZWJjZDcwYjU1MmU2NDhhNjJhNWRmMzNh
NTczYTc1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wMy0wNyAg
SmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgU2V0IEFWVVJMQXNz
ZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXkgb24gQVZBc3NldCB0byBtYXRjaCBjYWNoaW5nIHBv
bGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NTExNworICAgICAgICByZGFyOi8vcHJvYmxlbS82ODAyMjQwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEltcGxlbWVudCBtZWRpYVNob3VsZFVzZVBlcnNp
c3RlbnRDYWNoZSB0byBkaXNhYmxlIG1lZGlhIGNhY2hpbmcgd2hlbiBOU1VSTENhY2hlIGlzIGRp
c2FibGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2Vi
Q2hyb21lQ2xpZW50OjptZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSk6IEFkZGVkLgorCiAy
MDE2LTAyLTIyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEVu
YWJsZSBBVkZvdW5kYXRpb25OU1VSTFNlc3Npb25FbmFibGVkIGJ5IGRlZmF1bHQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAwZTI2NjZjMmY0ZDNkMmU3ZDVhMzU5NGZjMzJjYzM4OWNiMzEzY2E4Li42NmM4N2Q0MzUx
MWZhNmRhYjU2NjA1ZjRiZGRiYmY1NTJmMDRjYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTYtMDMtMDcgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAg
ICAgIFNldCBBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5IG9uIEFWQXNzZXQgdG8g
bWF0Y2ggY2FjaGluZyBwb2xpY3kuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTUxMTcKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNjgwMjI0MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBNYWtlIEFWQXNzZXQg
QVZVUkxBc3NldFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtleSBtYXRjaCAhbV93ZWJzaXRlRGF0YVN0
b3JlLT5pc1BlcnNpc3RlbnQoKQorICAgICAgICBUaGlzIHdpbGwgcHJldmVudCBwZXJzaXN0ZW50
IG1lZGlhIGNhY2hlcyB3aGVuIHdlYmtpdCBpcyB1c2luZyBpbi1tZW1vcnkgY2FjaGluZy4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDogQWRkIG1lZGlh
U2hvdWxkVXNlUGVyc2lzdGVudENhY2hlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKTogQWRkIG1lZGlhU2hv
dWxkVXNlUGVyc2lzdGVudENhY2hlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjptZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX21lZGlhVXNlc1Bl
cnNpc3RlbnRDYWNoZSk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhU2hvdWxkVXNlUGVyc2lzdGVu
dENhY2hlKTogQWRkZWQuCisKIDIwMTYtMDMtMTAgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxOTc5MjMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1MTdjZjZlMWY3
YzFiNTNiM2FlODkyNTg1MDU1YWYwZTI4MjNiZTA1Li43MDZhZGZjMzQ3ODE1MjJjNzdmNmI2MmUy
MDgzZWY5NTI5ZjY3ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTYxNDIsNiArNjE0MiwxNCBAQCBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyPiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTAogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE1lZGlhUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnQoKSwgZmFzdEdl
dEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cikpKTsKIH0KIAorYm9vbCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0
Cit7CisgICAgaWYgKCFkb2N1bWVudCgpLnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5tZWRpYVNo
b3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpOworfQorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyU2hvdWxkV2FpdEZvclJlc3BvbnNlVG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZShj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQogewogICAgIEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggOWEwOWJhMmY1OGM5YjZhMTg4ZjhjMjZjMTkzN2FjY2M0NjhhZjYzOS4uN2Mw
YmRjMDMzMDNlY2VmMzhiYjU2NjM0ODI1MTEwZTEwY2QwZDQ0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU5Niw2ICs1OTYsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbWVkaWFQbGF5ZXJJc0xvb3BpbmcoKSBjb25zdCBvdmVycmlkZTsKICAgICBDYWNoZWRSZXNv
dXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIG92ZXJyaWRlOwog
ICAgIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRl
UmVzb3VyY2VMb2FkZXIoKSBvdmVycmlkZTsKKyAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkVXNl
UGVyc2lzdGVudENhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShXSU4pICYm
IFVTRShBVkZPVU5EQVRJT04pCiAgICAgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBtZWRpYVBsYXll
ckdyYXBoaWNzRGV2aWNlQWRhcHRlcihjb25zdCBNZWRpYVBsYXllciopIGNvbnN0IG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZDgzY2NiNDczMDg2MTAyMWRlYmNi
YWZhNDk5MzhhZmVlNGY1NDc5YS4uYmM1ZDk0YzIxOWY3Y2QzZDRjM2E3NzQ3ZDViOGM3ODhlMmUx
M2RkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00NzAsNiArNDcwLDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJl
Y3RzKCkgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgbWVkaWFTaG91bGRVc2VQZXJzaXN0ZW50Q2Fj
aGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5D
aHJvbWVDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAppbmRleCBkYmQ0ZjhhYTczYmU5NDRjNDNmYmU3NTFhYjZmYzRjMGY4
NzcxNjk3Li41ZWE1NTg3MTEwNTkzN2VlZTQwNjNlNzI1OTJhMWFlNTU3MTU0NWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTIzNSw2
ICsyMzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUxvYWRlciogbWVk
aWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFs
IFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVz
b3VyY2VMb2FkZXIoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGRvZXNI
YXZlQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYsIEF0b21pY1N0cmluZyogPSAwKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclNob3VsZFVz
ZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNr
KFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CmluZGV4IDkzMDg3ODAxZjhiZGVmZGQ1Y2MzOTYyOTk3MjIyYzU2ODExYTA2ODYuLjE1NDM3ZGRk
OGVkNmYzZDBhMmJkYmU1NWU4ZjMxZGZhN2M0NmNkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQpAQCAtMjI5LDYgKzIyOSw3IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZQ
bGF5ZXJJdGVtTGVnaWJsZU91dHB1dFRleHRTdHlsaW5nUmVzb2x1dGlvblNvCiAjaWYgRU5BQkxF
KEFWRl9DQVBUSU9OUykKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3Nl
dEhUVFBDb29raWVzS2V5LCBOU1N0cmluZyopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRlcm5hdGVUcmFja3NLZXksIE5TU3RyaW5nKikKK1NP
RlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldFVzZXNOb1BlcnNpc3RlbnRD
YWNoZUtleSwgTlNTdHJpbmcqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk91
dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5hbWVLZXksIE5TU3RyaW5nKikKIFNPRlRfTElO
S19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0V4dGVuZGVk
TGFuZ3VhZ2VUYWdLZXksIE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlv
biwgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0lzRGVmYXVsdEtleSwgTlNTdHJpbmcqKQpAQCAt
MjQxLDYgKzI0Miw3IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZNZWRpYUNo
YXJhY3RlcmlzdGljSXNBdXhpbGlhcnlDb250ZW50LCBOU1N0cmluCiAKICNkZWZpbmUgQVZVUkxB
c3NldEhUVFBDb29raWVzS2V5IGdldEFWVVJMQXNzZXRIVFRQQ29va2llc0tleSgpCiAjZGVmaW5l
IEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRlcm5hdGVUcmFja3NLZXkgZ2V0QVZVUkxBc3NldE91dE9m
QmFuZEFsdGVybmF0ZVRyYWNrc0tleSgpCisjZGVmaW5lIEFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0
ZW50Q2FjaGVLZXkgZ2V0QVZVUkxBc3NldFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtleSgpCiAjZGVm
aW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tEaXNwbGF5TmFtZUtleSBnZXRBVk91dE9mQmFu
ZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5hbWVLZXkoKQogI2RlZmluZSBBVk91dE9mQmFuZEFsdGVy
bmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tleSBnZXRBVk91dE9mQmFuZEFsdGVybmF0ZVRy
YWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tleSgpCiAjZGVmaW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRl
VHJhY2tJc0RlZmF1bHRLZXkgZ2V0QVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0lzRGVmYXVsdEtl
eSgpCkBAIC04NzIsNiArODc0LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKQogICAgIH0KICNl
bmRpZgogCisgICAgW29wdGlvbnMgc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoQm9vbDoh
cGxheWVyKCktPmNsaWVudCgpLm1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCld
IGZvcktleTpBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5XTsKKwogICAgIE5TVVJM
ICpjb2NvYVVSTCA9IGNhbm9uaWNhbFVSTCh1cmwpOwogICAgIG1fYXZBc3NldCA9IGFkb3B0TlMo
W2FsbG9jQVZVUkxBc3NldEluc3RhbmNlKCkgaW5pdFdpdGhVUkw6Y29jb2FVUkwgb3B0aW9uczpv
cHRpb25zLmdldCgpXSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOGUyMGZlMzc2NTg0YjIxYTlmODUyMzZjMzQzNzk5
YzQ1MWZhMmMxMy4uMzgxZTkxNzUwNjExOTA3YjAxMTlkYWE3MTk0YjY4ZjFhYjJlZjZlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTIxOCw2ICsyMTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNb2Nr
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1l
ZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKyAgICAK
KyAgICBib29sIG1lZGlhU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGEyMmI5NGVl
Yjc4NjI5MGEwYzIwZTRlZTc3MTdlYzc3MTJkOTBiMTIuLmY5ODFhYzU2NDEwNjVhNjc3YzgzNjZi
MmQ3YzhlOTY5NmI2ZTVhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTEwNTMsMyArMTA1Myw4IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0
IFN0cmluZyYgbmFtZSwKIH0KIAogI2VuZGlmCisKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjptZWRp
YVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFtbTlNVUkxD
YWNoZSBzaGFyZWRVUkxDYWNoZV0gZGlza0NhcGFjaXR5XSA+IDA7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMWMw
OTFlNWQwNGYxZjZkZmY3M2M5NWIyN2MwMDRhNzBlZTY1ZThmNC4uODI3NTY0MjFmZWFlYTQ1OTA4
NzEwN2VlYmE3OTY2ZWVjZTdlY2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTUsNiArNTUsNyBAQCB2b2lkIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVzZXJDb250ZW50Q29udHJvbGxlcklEOwogICAg
IGVuY29kZXIgPDwgdmlzaXRlZExpbmtUYWJsZUlEOwogICAgIGVuY29kZXIgPDwgd2Vic2l0ZURh
dGFTdG9yZUlEOworICAgIGVuY29kZXIgPDwgbWVkaWFTaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7
CiAgICAgZW5jb2RlciA8PCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CiAgICAgZW5j
b2RlciA8PCBjYW5SdW5Nb2RhbDsKICAgICBlbmNvZGVyIDw8IGRldmljZVNjYWxlRmFjdG9yOwpA
QCAtMTM0LDYgKzEzNSw4IEBAIGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQYWdlQ3JlCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMud2Vic2l0ZURhdGFT
dG9yZUlEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy5tZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzNzdjMzM2OTQ3YzNl
YzFjOWNmNzIyY2U5M2MzYjM2N2ExMGM3NGYyLi5hNTQ3ZWNkYjA4ZjNhOTY5ZDgyMDA2ZmNhZGQ4
ZGIxMGViMWY0NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTg5LDYgKzg5LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIHVpbnQ2NF90IHVzZXJDb250ZW50Q29udHJvbGxlcklEOwogICAg
IHVpbnQ2NF90IHZpc2l0ZWRMaW5rVGFibGVJRDsKICAgICB1aW50NjRfdCB3ZWJzaXRlRGF0YVN0
b3JlSUQ7CisgICAgYm9vbCBtZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsKICAgICBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKICAgICBib29sIGNhblJ1bk1vZGFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDQyZWZiODcz
ZDdkYWYxNTcyOTFmNzkzMWE3NWYzYmFkN2UyZTgwODcuLjIyMWFhZWIzNzg0MGJkNDI5ODVhZjJm
NWMzNmIzOWMwZWNhMGI0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC01MTY4LDYgKzUxNjgsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdl
YlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKCkKICAgICBwYXJhbWV0ZXJzLnVzZXJDb250
ZW50Q29udHJvbGxlcklEID0gbV91c2VyQ29udGVudENvbnRyb2xsZXItPmlkZW50aWZpZXIoKTsK
ICAgICBwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5rVGFibGVJRCA9IG1fdmlzaXRlZExpbmtTdG9yZS0+
aWRlbnRpZmllcigpOwogICAgIHBhcmFtZXRlcnMud2Vic2l0ZURhdGFTdG9yZUlEID0gbV93ZWJz
aXRlRGF0YVN0b3JlLT5pZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy5tZWRpYVNob3VsZFVz
ZVBlcnNpc3RlbnRDYWNoZSA9IG1fd2Vic2l0ZURhdGFTdG9yZS0+aXNQZXJzaXN0ZW50KCk7CiAg
ICAgcGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwgPSBtX3VpQ2xpZW50
LT5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKICAgICBwYXJhbWV0ZXJzLmNhblJ1
bk1vZGFsID0gbV9jYW5SdW5Nb2RhbDsKICAgICBwYXJhbWV0ZXJzLmRldmljZVNjYWxlRmFjdG9y
ID0gZGV2aWNlU2NhbGVGYWN0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0MzBl
NzQ0YTM4ODY0NmNiZDJlYTE3MmU4YTg0MDJhZDU1Y2ZkNjU4Li5kMjJlN2U3MDUxYjczY2ZlZGQz
ZTM5MTU0NmE5ZmI3NTRiZmU4YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMTQ2
LDUgKzExNDYsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEludmFsaWRhdGVEb2N1bWVu
dE1hcmtlclJlY3RzKCkKIHsKICAgICBtX3BhZ2UtPmZpbmRDb250cm9sbGVyKCkuZGlkSW52YWxp
ZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKTsKIH0KKyAgICAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjptZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cGFnZS0+bWVkaWFTaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKTsKK30KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAwMDUzM2ExYThkNjM2ZWM0ZjNkMWIy
ZDdhNzBhMjk0MzliN2FiOWEzLi45MmY1MmVmZDkyOGNmYmMwZTE2MDZiZDlhMWYwZjQ1ODk1OGFi
ZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTMzNSw2ICszMzUsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICB2b2lkIGRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkgb3Zl
cnJpZGU7CisgICAgYm9vbCBtZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0
cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4ZjUyNjhjMDJjZTczYWRk
ZjMxNGY4NTExMmMzYjU0NzViZDRhODUxLi4zNWM5MDJiZWMxMzBkMGE4ZjJjMDMxYTRjNTJiYWVl
OTBkZWY0YTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0zNjUsNiArMzY1LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjZW5kaWYK
ICAgICAsIG1fbWFpbkZyYW1lUHJvZ3Jlc3NDb21wbGV0ZWQoZmFsc2UpCiAgICAgLCBtX3Nob3Vs
ZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cyh0cnVlKQorICAgICwgbV9tZWRpYVNob3VsZFVz
ZVBlcnNpc3RlbnRDYWNoZShwYXJhbWV0ZXJzLm1lZGlhU2hvdWxkVXNlUGVyc2lzdGVudENhY2hl
KQogewogICAgIEFTU0VSVChtX3BhZ2VJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDlmN2UyZjljNzg1NDI3YzkzOTU4MGZjNDhiODJkMTQ1
YmZhNGVmYzIuLjk5MjI4YzA0ZWYxZjlmNmVjYjMwMWZkMTc0NDdjZGUzZjA5MDQ2MmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTI5LDYgKzky
OSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAK
KyAgICBib29sIG1lZGlhU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYVNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsgfQorCiAgICAgYm9vbCBpc0NvbnRyb2xs
ZWRCeUF1dG9tYXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldENvbnRyb2xsZWRCeUF1dG9tYXRp
b24oYm9vbCk7CiAKQEAgLTE0NTAsNiArMTQ1Miw4IEBAIHByaXZhdGU6CiAjaWYgVVNFKE9TX1NU
QVRFKQogICAgIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbV9sb2FkQ29t
bWl0VGltZTsKICNlbmRpZgorCisgICAgYm9vbCBtX21lZGlhU2hvdWxkVXNlUGVyc2lzdGVudENh
Y2hlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>