<?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>196548</bug_id>
          
          <creation_ts>2019-04-03 11:37:21 -0700</creation_ts>
          <short_desc>[ Mac Debug ] TestWebKitAPI.ProcessSwap.ReuseSuspendedProcessForRegularNavigationRetainBundlePage is a flaky crash</short_desc>
          <delta_ts>2019-04-13 21:22:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.14</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="Shawn Roberts">sroberts</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1523816</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-04-03 11:37:21 -0700</bug_when>
    <thetext>The following API test is a flaky crash on Mojave Debug

TestWebKitAPI.ProcessSwap.ReuseSuspendedProcessForRegularNavigationRetainBundlePage

Probable cause:

Flaky failures have been observed in on Mojave Debug queues for its entire available history https://build.webkit.org/builders/Apple%20Mojave%20Debug%20WK2%20%28Tests%29?numbuilds=200

Test was added in https://trac.webkit.org/changeset/241306/webkit 

Local testing with current revision and r241306 yield the same crash logs. Took about 15 tries to get it to crash locally.

Reproduced with:

run-api-tests TestWebKitAPI.ProcessSwap.ReuseSuspendedProcessForRegularNavigationRetainBundlePage --debug

Will attach full crash log to radar.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000001020a1d00 WTFCrash + 16
1   com.apple.WebKit              	0x0000000107235bcb WTFCrashWithInfo(int, char const*, char const*, int) + 27
2   com.apple.WebKit              	0x0000000107972cc7 WebKit::FrameLoadState::didFailProvisionalLoad() + 103
3   com.apple.WebKit              	0x0000000107aa9199 WebKit::WebFrameProxy::didFailProvisionalLoad() + 25
4   com.apple.WebKit              	0x0000000107998aa9 WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WTF::String const&amp;, WebCore::ResourceError const&amp;, WebKit::UserData const&amp;) + 393
5   com.apple.WebKit              	0x00000001079aef12 void IPC::callMemberFunctionImpl&lt;WebKit::ProvisionalPageProxy, void (WebKit::ProvisionalPageProxy::*)(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WTF::String const&amp;, WebCore::ResourceError const&amp;, WebKit::UserData const&amp;), std::__1::tuple&lt;unsigned long long, WebCore::SecurityOriginData, unsigned long long, WTF::String, WebCore::ResourceError, WebKit::UserData&gt;, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul&gt;(WebKit::ProvisionalPageProxy*, void (WebKit::ProvisionalPageProxy::*)(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WTF::String const&amp;, WebCore::ResourceError const&amp;, WebKit::UserData const&amp;), std::__1::tuple&lt;unsigned long long, WebCore::SecurityOriginData, unsigned long long, WTF::String, WebCore::ResourceError, WebKit::UserData&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul&gt;) + 434</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523822</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-03 11:55:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/49567254&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523957</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-03 14:50:40 -0700</bug_when>
    <thetext>ASSERTION FAILED: m_state == State::Provisional</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523961</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-03 15:01:39 -0700</bug_when>
    <thetext>m_state is State::Finished.  I&apos;m also hitting the ASSERT_NOT_REACHED() under if (fromItem-&gt;url() != pageLoadState().url()).  I bet we need to do something like https://trac.webkit.org/changeset/243767/webkit but for didFailProvisionalLoadForFrame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523996</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-03 15:37:03 -0700</bug_when>
    <thetext>That didn&apos;t fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524001</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-03 15:48:06 -0700</bug_when>
    <thetext>FrameLoadState::didFinishLoad is being called before FrameLoadState::didFailProvisionalLoad...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524356</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-04 12:21:30 -0700</bug_when>
    <thetext>It looks like didStartProvisionalLoad is not being called before didFailProvisionalLoadForFrame on a frame that has already completed a load.  It&apos;s hard to debug though because even adding logs makes it not reproduce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526880</commentid>
    <comment_count>7</comment_count>
      <attachid>367341</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-12 12:52:33 -0700</bug_when>
    <thetext>Created attachment 367341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526911</commentid>
    <comment_count>8</comment_count>
      <attachid>367341</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-12 14:36:44 -0700</bug_when>
    <thetext>Comment on attachment 367341
Patch

I have a follow-up plan to see if we can avoid having to ignore leftover IPC explicitly. This will likely require some significant refactoring though so I think we should land this first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527050</commentid>
    <comment_count>9</comment_count>
      <attachid>367341</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-04-13 08:26:50 -0700</bug_when>
    <thetext>Comment on attachment 367341
Patch

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

&gt; Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:217
&gt; +    // If the previous provisional load used an existing process, we may receive leftover IPC for a previous navigation, which we need to ignore.
&gt; +    if (!m_mainFrame || m_mainFrame-&gt;frameID() != frameID)
&gt; +        return;

See below. Could have an overload that takes just a frame ID and not a navigation ID.

&gt; Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:226
&gt; +    // If the previous provisional load used an existing process, we may receive leftover IPC for a previous navigation, which we need to ignore.
&gt; +    if (navigationID != m_navigationID || !m_mainFrame || m_mainFrame-&gt;frameID() != frameID)
&gt;          return;

With this idiom repeated so many times, I suggest adding a named member function that takes navigationID and frameID as arguments. A bonus is that the function’s name can help document and so we won’t have such repetitive comments either.

&gt; Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:347
&gt; +    if (!isMainFrame || (m_mainFrame &amp;&amp; m_mainFrame-&gt;frameID() != frameID) || navigationID != m_navigationID) {

I think we can even refactor this one to use the new helper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527051</commentid>
    <comment_count>10</comment_count>
      <attachid>367341</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-04-13 08:27:25 -0700</bug_when>
    <thetext>Comment on attachment 367341
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:226
&gt;&gt;          return;
&gt; 
&gt; With this idiom repeated so many times, I suggest adding a named member function that takes navigationID and frameID as arguments. A bonus is that the function’s name can help document and so we won’t have such repetitive comments either.

Seems fine to land without my suggested refinement, but I think it’s better for the long term.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527079</commentid>
    <comment_count>11</comment_count>
      <attachid>367398</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-13 18:22:30 -0700</bug_when>
    <thetext>Created attachment 367398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527080</commentid>
    <comment_count>12</comment_count>
      <attachid>367399</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-13 18:55:47 -0700</bug_when>
    <thetext>Created attachment 367399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527083</commentid>
    <comment_count>13</comment_count>
      <attachid>367399</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-13 21:22:39 -0700</bug_when>
    <thetext>Comment on attachment 367399
Patch

Clearing flags on attachment: 367399

Committed r244243: &lt;https://trac.webkit.org/changeset/244243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1527084</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-13 21:22:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367341</attachid>
            <date>2019-04-12 12:52:33 -0700</date>
            <delta_ts>2019-04-13 18:22:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196548-20190412125233.patch</filename>
            <type>text/plain</type>
            <size>11087</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzNTEzOGNlNzA3NzEzYmYw
NWY3ZTg2Mjk3YjgyZGQ4N2ZhOWUxZTYuLjM1ZWJiYjdmZjgzODVmOWQ3MTU4MDcwODY2N2QwMmJm
MTk1MjY0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDQtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbIE1hYyBEZWJ1ZyBdIFRlc3RXZWJL
aXRBUEkuUHJvY2Vzc1N3YXAuUmV1c2VTdXNwZW5kZWRQcm9jZXNzRm9yUmVndWxhck5hdmlnYXRp
b25SZXRhaW5CdW5kbGVQYWdlIGlzIGEgZmxha3kgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjU0OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDk1NjcyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXBkYXRlIFByb3Zpc2lvbmFsUGFnZVByb3h5IG1ldGhvZHMgdG8gbW9yZSBjb25zaXN0
ZW50bHkgaWdub3JlIHVuZXhwZWN0ZWQgSVBDIGZyb20gdGhlIHByb2Nlc3MuIFByZXZpb3VzbHks
CisgICAgICAgIHNvbWUgb2YgdGhlIG1ldGhvZHMgd2VyZSBkb2luZyB0aGlzLCBidXQgc29tZSBv
dGhlciBsaWtlIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSgpIHdlcmVuJ3QgYW5kIHRo
aXMKKyAgICAgICAgd2FzIGxlYWRpbmcgdG8gdGhpcyBmbGFreSBjcmFzaC4gVGhlIGlzc3VlIGlz
IHRoYXQgaWYgd2UgZG8gdGhlIGxvYWQgaW4gYW4gZXhpc3RpbmcgcHJvY2VzcyB0aGF0IHdhcyBy
ZWNlbnRseQorICAgICAgICBkb2luZywgdGhlcmUgbWF5IGJlIGxlZnRvdmVyIElQQyBmb3IgdGhl
IHNhbWUgcGFnZUlEIGFuZCB0aGlzIElQQyBnZXRzIHJlY2VpdmVkIGJ5IHRoZSBQcm92aXNpb25h
bFBhZ2VQcm94eQorICAgICAgICBldmVuIHRob3VnaCBpdCBpcyBmcm9tIGEgcHJldmlvdXMgbmF2
aWdhdGlvbi4gRm9yIHRoaXMgcmVhc29uLCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJveHkgc2hvdWxk
IGlnbm9yZSBhbGwKKyAgICAgICAgaW5jb21pbmcgSVBDIHRoYXQgaXMgbm90IGZvciBpdHMgYXNz
b2NpYXRlZCBuYXZpZ2F0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVX
aXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMp
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jKToKKwogMjAxOS0wNC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgU2ltIERlYnVnXSBBU1NFUlRJT04gRkFJTEVEOiBt
X2Rvd25sb2Fkcy5pc0VtcHR5KCkgTGF5b3V0IFRlc3QgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9uZXR3b3JrLXByb2Nlc3MtY3Jhc2gtZXJyb3IuaHRtbCBpcyBhIGZsYWt5IGNyYXNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAK
aW5kZXggYjJiZGE3OGFjNDMyNmZjMTVjNzhlNjU2MjQ5OGRkOTAwYzVjMTZmNi4uNWExNmQyZWFh
MzAzNjY1NmU0ZmFmY2UwNzRkNGRhYmRhNDU0ZTMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMjEyLDEzICsyMTIsMTcgQEAg
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpCiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKIHsKKyAgICAvLyBJZiB0aGUgcHJldmlv
dXMgcHJvdmlzaW9uYWwgbG9hZCB1c2VkIGFuIGV4aXN0aW5nIHByb2Nlc3MsIHdlIG1heSByZWNl
aXZlIGxlZnRvdmVyIElQQyBmb3IgYSBwcmV2aW91cyBuYXZpZ2F0aW9uLCB3aGljaCB3ZSBuZWVk
IHRvIGlnbm9yZS4KKyAgICBpZiAoIW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlE
KCkgIT0gZnJhbWVJRCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9wYWdlLmRpZFBlcmZvcm1D
bGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkxTdHJpbmcs
IGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkws
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJv
dmlzaW9uYWwgbG9hZCB1c2VkIHRoZSBzYW1lIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIElQQyBm
b3IgdGhpcyBwcmV2aW91cyBwcm92aXNpb25hbCdzIG1haW4gZnJhbWUgdGhhdCB3ZSBuZWVkIHRv
IGlnbm9yZS4KLSAgICBpZiAoIW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkg
IT0gZnJhbWVJRCkKKyAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwgbG9hZCB1c2Vk
IGFuIGV4aXN0aW5nIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIGxlZnRvdmVyIElQQyBmb3IgYSBw
cmV2aW91cyBuYXZpZ2F0aW9uLCB3aGljaCB3ZSBuZWVkIHRvIGlnbm9yZS4KKyAgICBpZiAobmF2
aWdhdGlvbklEICE9IG1fbmF2aWdhdGlvbklEIHx8ICFtX21haW5GcmFtZSB8fCBtX21haW5GcmFt
ZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2
aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCksIGZyYW1lSUQsIG5hdmlnYXRp
b25JRCk7CkBAIC0yMzgsNyArMjQyLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWluCiAKIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92
aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKKyAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwg
bG9hZCB1c2VkIGFuIGV4aXN0aW5nIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIGxlZnRvdmVyIElQ
QyBmb3IgYSBwcmV2aW91cyBuYXZpZ2F0aW9uLCB3aGljaCB3ZSBuZWVkIHRvIGlnbm9yZS4KKyAg
ICBpZiAobmF2aWdhdGlvbklEICE9IG1fbmF2aWdhdGlvbklEIHx8ICFtX21haW5GcmFtZSB8fCBt
X21haW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCisgICAgICAgIHJldHVybjsKKwogICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKSwgZnJh
bWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBBU1NFUlQoIW1fcHJvdmlzaW9uYWxMb2FkVVJMLmlz
TnVsbCgpKTsKICAgICBtX3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKIAogICAgIC8vIE1ha2Ug
c3VyZSB0aGUgUGFnZSdzIG1haW4gZnJhbWUncyBleHBlY3RlZFVSTCBnZXRzIGNsZWFyZWQgc2lu
Y2Ugd2UgdXBkYXRlZCBpdCBpbiBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZC4KQEAgLTI1MCw4ICsy
NTksOCBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29ucwogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29u
dGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50
LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJl
Q29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIC8vIElmIHRoZSBwcmV2
aW91cyBwcm92aXNpb25hbCBsb2FkIHVzZWQgdGhlIHNhbWUgcHJvY2Vzcywgd2UgbWF5IHJlY2Vp
dmUgSVBDIGZvciB0aGlzIHByZXZpb3VzIHByb3Zpc2lvbmFsJ3MgbWFpbiBmcmFtZSB0aGF0IHdl
IG5lZWQgdG8gaWdub3JlLgotICAgIGlmICghbV9tYWluRnJhbWUgfHwgbV9tYWluRnJhbWUtPmZy
YW1lSUQoKSAhPSBmcmFtZUlEKQorICAgIC8vIElmIHRoZSBwcmV2aW91cyBwcm92aXNpb25hbCBs
b2FkIHVzZWQgYW4gZXhpc3RpbmcgcHJvY2Vzcywgd2UgbWF5IHJlY2VpdmUgbGVmdG92ZXIgSVBD
IGZvciBhIHByZXZpb3VzIG5hdmlnYXRpb24sIHdoaWNoIHdlIG5lZWQgdG8gaWdub3JlLgorICAg
IGlmIChuYXZpZ2F0aW9uSUQgIT0gbV9uYXZpZ2F0aW9uSUQgfHwgIW1fbWFpbkZyYW1lIHx8IG1f
bWFpbkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDb21taXRMb2FkRm9y
RnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLCBmcmFtZUlELCBuYXZpZ2F0aW9u
SUQpOwpAQCAtMjY0LDExICsyNzMsMTkgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlk
Q29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKIAogdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29u
c3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCiB7Cisg
ICAgLy8gSWYgdGhlIHByZXZpb3VzIHByb3Zpc2lvbmFsIGxvYWQgdXNlZCBhbiBleGlzdGluZyBw
cm9jZXNzLCB3ZSBtYXkgcmVjZWl2ZSBsZWZ0b3ZlciBJUEMgZm9yIGEgcHJldmlvdXMgbmF2aWdh
dGlvbiwgd2hpY2ggd2UgbmVlZCB0byBpZ25vcmUuCisgICAgaWYgKCFtX21haW5GcmFtZSB8fCBt
X21haW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCisgICAgICAgIHJldHVybjsKKwogICAg
IG1fcGFnZS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBzdG9yZSwgZnJhbWVJRCk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7CisgICAgLy8gSWYgdGhlIHByZXZpb3VzIHBy
b3Zpc2lvbmFsIGxvYWQgdXNlZCBhbiBleGlzdGluZyBwcm9jZXNzLCB3ZSBtYXkgcmVjZWl2ZSBs
ZWZ0b3ZlciBJUEMgZm9yIGEgcHJldmlvdXMgbmF2aWdhdGlvbiwgd2hpY2ggd2UgbmVlZCB0byBp
Z25vcmUuCisgICAgaWYgKG5hdmlnYXRpb25JRCAhPSBtX25hdmlnYXRpb25JRCB8fCAhbV9tYWlu
RnJhbWUgfHwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKQorICAgICAgICByZXR1
cm47CisKICAgICBtX3BhZ2UuZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZCht
X3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSk7
CiB9CiAKQEAgLTI3Niw4ICsyOTMsMTAgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQKICAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5h
dGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVl
c3QsCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5l
cklEKQogewotICAgIEFTU0VSVChtX21haW5GcmFtZSk7Ci0gICAgQVNTRVJUKG1fbWFpbkZyYW1l
LT5mcmFtZUlEKCkgPT0gZnJhbWVJRCk7CisgICAgLy8gSWYgdGhlIHByZXZpb3VzIHByb3Zpc2lv
bmFsIGxvYWQgdXNlZCBhbiBleGlzdGluZyBwcm9jZXNzLCB3ZSBtYXkgcmVjZWl2ZSBsZWZ0b3Zl
ciBJUEMgZm9yIGEgcHJldmlvdXMgbmF2aWdhdGlvbiwgd2hpY2ggd2UgbmVlZCB0byBpZ25vcmUu
CisgICAgaWYgKG5hdmlnYXRpb25JRCAhPSBtX25hdmlnYXRpb25JRCB8fCAhbV9tYWluRnJhbWUg
fHwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKQorICAgICAgICByZXR1cm47CisK
ICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSks
CiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmln
aW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZN
b3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CkBAIC0yODUs
MTYgKzMwNCwyOCBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRAogdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CisgICAgLy8gSWYgdGhlIHByZXZpb3VzIHByb3Zpc2lv
bmFsIGxvYWQgdXNlZCBhbiBleGlzdGluZyBwcm9jZXNzLCB3ZSBtYXkgcmVjZWl2ZSBsZWZ0b3Zl
ciBJUEMgZm9yIGEgcHJldmlvdXMgbmF2aWdhdGlvbiwgd2hpY2ggd2UgbmVlZCB0byBpZ25vcmUu
CisgICAgaWYgKG5hdmlnYXRpb25JRCAhPSBtX25hdmlnYXRpb25JRCB8fCAhbV9tYWluRnJhbWUg
fHwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKQorICAgICAgICByZXR1cm47CisK
ICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlv
bklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0
ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCiB7
CisgICAgLy8gSWYgdGhlIHByZXZpb3VzIHByb3Zpc2lvbmFsIGxvYWQgdXNlZCBhbiBleGlzdGlu
ZyBwcm9jZXNzLCB3ZSBtYXkgcmVjZWl2ZSBsZWZ0b3ZlciBJUEMgZm9yIGEgcHJldmlvdXMgbmF2
aWdhdGlvbiwgd2hpY2ggd2UgbmVlZCB0byBpZ25vcmUuCisgICAgaWYgKCFtX21haW5GcmFtZSB8
fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCisgICAgICAgIHJldHVybjsKKwog
ICAgIG1fcGFnZS5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9
CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogeworICAgIC8vIElmIHRoZSBwcmV2aW91cyBwcm92aXNpb25hbCBsb2Fk
IHVzZWQgYW4gZXhpc3RpbmcgcHJvY2Vzcywgd2UgbWF5IHJlY2VpdmUgbGVmdG92ZXIgSVBDIGZv
ciBhIHByZXZpb3VzIG5hdmlnYXRpb24sIHdoaWNoIHdlIG5lZWQgdG8gaWdub3JlLgorICAgIGlm
IChuYXZpZ2F0aW9uSUQgIT0gbV9uYXZpZ2F0aW9uSUQgfHwgIW1fbWFpbkZyYW1lIHx8IG1fbWFp
bkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9w
YWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShy
ZXF1ZXN0KSwgdXNlckRhdGEpOwogfQogCkBAIC0zMTMsMTAgKzM0NCw3IEBAIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2
NF90IGZyYW1lSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXll
ZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgQVNTRVJUKGlzTWFpbkZyYW1lKTsKLSAgICBBU1NFUlQo
IW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgPT0gZnJhbWVJRCk7Ci0KLSAg
ICBpZiAoIWlzTWFpbkZyYW1lIHx8IChtX21haW5GcmFtZSAmJiBtX21haW5GcmFtZS0+ZnJhbWVJ
RCgpICE9IGZyYW1lSUQpKSB7CisgICAgaWYgKCFpc01haW5GcmFtZSB8fCAobV9tYWluRnJhbWUg
JiYgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKSB8fCBuYXZpZ2F0aW9uSUQgIT0g
bV9uYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgcmVwbHkoaWRlbnRpZmllciwgV2ViQ29yZTo6UG9s
aWN5QWN0aW9uOjpJZ25vcmUsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51bGxv
cHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367398</attachid>
            <date>2019-04-13 18:22:30 -0700</date>
            <delta_ts>2019-04-13 18:55:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196548-20190413182229.patch</filename>
            <type>text/plain</type>
            <size>10423</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDczMTc0ZmYwZDVjYjllYzkz
NWM1NDgzNGM4NTUxMTM3Mjg4ZjBmZTguLjA4NmY5YzQxZjMyZTUzOWM1MmMwMDU5MDEyNDEwYWI5
Y2ZlNTgyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDQtMTMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbIE1hYyBEZWJ1ZyBdIFRlc3RXZWJL
aXRBUEkuUHJvY2Vzc1N3YXAuUmV1c2VTdXNwZW5kZWRQcm9jZXNzRm9yUmVndWxhck5hdmlnYXRp
b25SZXRhaW5CdW5kbGVQYWdlIGlzIGEgZmxha3kgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjU0OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDk1NjcyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgVXBkYXRlIFByb3Zpc2lvbmFsUGFnZVByb3h5IG1ldGhvZHMgdG8gbW9yZSBjb25zaXN0ZW50
bHkgaWdub3JlIHVuZXhwZWN0ZWQgSVBDIGZyb20gdGhlIHByb2Nlc3MuIFByZXZpb3VzbHksCisg
ICAgICAgIHNvbWUgb2YgdGhlIG1ldGhvZHMgd2VyZSBkb2luZyB0aGlzLCBidXQgc29tZSBvdGhl
ciBsaWtlIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSgpIHdlcmVuJ3QgYW5kIHRoaXMK
KyAgICAgICAgd2FzIGxlYWRpbmcgdG8gdGhpcyBmbGFreSBjcmFzaC4gVGhlIGlzc3VlIGlzIHRo
YXQgaWYgd2UgZG8gdGhlIGxvYWQgaW4gYW4gZXhpc3RpbmcgcHJvY2VzcyB0aGF0IHdhcyByZWNl
bnRseQorICAgICAgICBkb2luZywgdGhlcmUgbWF5IGJlIGxlZnRvdmVyIElQQyBmb3IgdGhlIHNh
bWUgcGFnZUlEIGFuZCB0aGlzIElQQyBnZXRzIHJlY2VpdmVkIGJ5IHRoZSBQcm92aXNpb25hbFBh
Z2VQcm94eQorICAgICAgICBldmVuIHRob3VnaCBpdCBpcyBmcm9tIGEgcHJldmlvdXMgbmF2aWdh
dGlvbi4gRm9yIHRoaXMgcmVhc29uLCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJveHkgc2hvdWxkIGln
bm9yZSBhbGwKKyAgICAgICAgaW5jb21pbmcgSVBDIHRoYXQgaXMgbm90IGZvciBpdHMgYXNzb2Np
YXRlZCBuYXZpZ2F0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRo
TmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgor
ICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9y
bVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKToKKwogMjAxOS0wNC0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB0cnkgdG8gZml4IHRoZSBpbnRl
cm5hbCBidWlsZCBhZnRlciByMjQ0MjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYjJiZGE3OGFjNDMyNmZjMTVjNzhlNjU2MjQ5
OGRkOTAwYzVjMTZmNi4uZjBhM2MzYmIwZTQ4ODAzODJhYmI4NzljMTM1NDYyMzgxMGRjNzVjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cApAQCAtMTgzLDYgKzE4MywxNSBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFj
a0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQgogICAgIG1fcHJv
Y2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiB9CiAKK2lubGluZSBib29sIFBy
b3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQoreworICAgIC8vIElmIHRoZSBwcmV2
aW91cyBwcm92aXNpb25hbCBsb2FkIHVzZWQgYW4gZXhpc3RpbmcgcHJvY2Vzcywgd2UgbWF5IHJl
Y2VpdmUgbGVmdG92ZXIgSVBDIGZvciBhIHByZXZpb3VzIG5hdmlnYXRpb24sIHdoaWNoIHdlIG5l
ZWQgdG8gaWdub3JlLgorICAgIGlmICghbV9tYWluRnJhbWUgfHwgbV9tYWluRnJhbWUtPmZyYW1l
SUQoKSAhPSBmcmFtZUlEKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gIW5h
dmlnYXRpb25JRCB8fCAqbmF2aWdhdGlvbklEID09IG1fbmF2aWdhdGlvbklEOworfQorCiB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENy
ZWF0ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQs
IG1fcGFnZS5wYWdlSUQoKSwgZnJhbWVJRCk7CkBAIC0yMTIsMTMgKzIyMSwxNSBAQCB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
IAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQogeworICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFt
ZUlEKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9wYWdlLmRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwg
bG9hZCB1c2VkIHRoZSBzYW1lIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIElQQyBmb3IgdGhpcyBw
cmV2aW91cyBwcm92aXNpb25hbCdzIG1haW4gZnJhbWUgdGhhdCB3ZSBuZWVkIHRvIGlnbm9yZS4K
LSAgICBpZiAoIW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJ
RCkKKyAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcs
ICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5w
YWdlSUQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKQEAgLTIzOCw3ICsyNDksMTEgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW4KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogeworICAgIGlmICgh
dmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQorICAgICAgICByZXR1cm47CisK
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCks
IGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgQVNTRVJUKCFtX3Byb3Zpc2lvbmFsTG9hZFVS
TC5pc051bGwoKSk7CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAKICAgICAvLyBN
YWtlIHN1cmUgdGhlIFBhZ2UncyBtYWluIGZyYW1lJ3MgZXhwZWN0ZWRVUkwgZ2V0cyBjbGVhcmVk
IHNpbmNlIHdlIHVwZGF0ZWQgaXQgaW4gZGlkU3RhcnRQcm92aXNpb25hbExvYWQuCkBAIC0yNTAs
OCArMjY1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnMKIAogdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3Rv
bUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1
bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNl
Y3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICAvLyBJZiB0aGUg
cHJldmlvdXMgcHJvdmlzaW9uYWwgbG9hZCB1c2VkIHRoZSBzYW1lIHByb2Nlc3MsIHdlIG1heSBy
ZWNlaXZlIElQQyBmb3IgdGhpcyBwcmV2aW91cyBwcm92aXNpb25hbCdzIG1haW4gZnJhbWUgdGhh
dCB3ZSBuZWVkIHRvIGlnbm9yZS4KLSAgICBpZiAoIW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1l
LT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKKyAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwg
bmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2
NCwgbV9wYWdlLnBhZ2VJRCgpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQpOwpAQCAtMjY0LDExICsy
NzgsMTcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRh
dGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCiB7CisgICAgaWYgKCF2YWxpZGF0ZUlu
cHV0KGZyYW1lSUQpKQorICAgICAgICByZXR1cm47CisKICAgICBtX3BhZ2UuZGlkTmF2aWdhdGVX
aXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc3RvcmUsIGZyYW1l
SUQpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJM
JiYgdXJsKQogeworICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQp
KQorICAgICAgICByZXR1cm47CisKICAgICBtX3BhZ2UuZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQs
IFdURk1vdmUodXJsKSk7CiB9CiAKQEAgLTI3Niw4ICsyOTYsOSBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3Qg
ZnJhbWVJRAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIHVp
bnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCiB7Ci0gICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKLSAgICBBU1NF
UlQobV9tYWluRnJhbWUtPmZyYW1lSUQoKSA9PSBmcmFtZUlEKTsKKyAgICBpZiAoIXZhbGlkYXRl
SW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9w
YWdlLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlm
aWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAg
ICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1
ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRp
cmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQpAQCAtMjg1LDE2ICszMDYs
MjUgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogeworICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0
aW9uSUQpKQorICAgICAgICByZXR1cm47CisKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9y
aWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hv
d01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQog
CiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxT
dHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCiB7CisgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1l
SUQpKQorICAgICAgICByZXR1cm47CisKICAgICBtX3BhZ2UuZGlkUGVyZm9ybVNlcnZlclJlZGly
ZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRp
b25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKKyAgICBpZiAoIXZhbGlk
YXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
bV9wYWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92
ZShyZXF1ZXN0KSwgdXNlckRhdGEpOwogfQogCkBAIC0zMTMsMTAgKzM0Myw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVp
bnQ2NF90IGZyYW1lSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgQVNTRVJUKGlzTWFpbkZyYW1lKTsKLSAgICBBU1NF
UlQoIW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgPT0gZnJhbWVJRCk7Ci0K
LSAgICBpZiAoIWlzTWFpbkZyYW1lIHx8IChtX21haW5GcmFtZSAmJiBtX21haW5GcmFtZS0+ZnJh
bWVJRCgpICE9IGZyYW1lSUQpKSB7CisgICAgaWYgKCFpc01haW5GcmFtZSB8fCAobV9tYWluRnJh
bWUgJiYgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKSB8fCBuYXZpZ2F0aW9uSUQg
IT0gbV9uYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgcmVwbHkoaWRlbnRpZmllciwgV2ViQ29yZTo6
UG9saWN5QWN0aW9uOjpJZ25vcmUsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51
bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggYjFiYmM1YThkY2JjZmQ4YWM0NDQ0Mjlk
ZWRhNWQ3NGVjZDNlNmVkNS4uMzBkZTRiN2YyODMyNzFkOWM3ZmQ1ZDIzYjlhYjcwYzBmODFiODIw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
CkBAIC0xMTgsNiArMTE4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBpbml0aWFs
aXplV2ViUGFnZSgpOworICAgIGJvb2wgdmFsaWRhdGVJbnB1dCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCk7CiAKICAgICBXZWJQYWdlUHJv
eHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367399</attachid>
            <date>2019-04-13 18:55:47 -0700</date>
            <delta_ts>2019-04-13 21:22:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196548-20190413185546.patch</filename>
            <type>text/plain</type>
            <size>10438</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDczMTc0ZmYwZDVjYjllYzkz
NWM1NDgzNGM4NTUxMTM3Mjg4ZjBmZTguLjA4NmY5YzQxZjMyZTUzOWM1MmMwMDU5MDEyNDEwYWI5
Y2ZlNTgyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDQtMTMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbIE1hYyBEZWJ1ZyBdIFRlc3RXZWJL
aXRBUEkuUHJvY2Vzc1N3YXAuUmV1c2VTdXNwZW5kZWRQcm9jZXNzRm9yUmVndWxhck5hdmlnYXRp
b25SZXRhaW5CdW5kbGVQYWdlIGlzIGEgZmxha3kgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjU0OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDk1NjcyNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgVXBkYXRlIFByb3Zpc2lvbmFsUGFnZVByb3h5IG1ldGhvZHMgdG8gbW9yZSBjb25zaXN0ZW50
bHkgaWdub3JlIHVuZXhwZWN0ZWQgSVBDIGZyb20gdGhlIHByb2Nlc3MuIFByZXZpb3VzbHksCisg
ICAgICAgIHNvbWUgb2YgdGhlIG1ldGhvZHMgd2VyZSBkb2luZyB0aGlzLCBidXQgc29tZSBvdGhl
ciBsaWtlIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSgpIHdlcmVuJ3QgYW5kIHRoaXMK
KyAgICAgICAgd2FzIGxlYWRpbmcgdG8gdGhpcyBmbGFreSBjcmFzaC4gVGhlIGlzc3VlIGlzIHRo
YXQgaWYgd2UgZG8gdGhlIGxvYWQgaW4gYW4gZXhpc3RpbmcgcHJvY2VzcyB0aGF0IHdhcyByZWNl
bnRseQorICAgICAgICBkb2luZywgdGhlcmUgbWF5IGJlIGxlZnRvdmVyIElQQyBmb3IgdGhlIHNh
bWUgcGFnZUlEIGFuZCB0aGlzIElQQyBnZXRzIHJlY2VpdmVkIGJ5IHRoZSBQcm92aXNpb25hbFBh
Z2VQcm94eQorICAgICAgICBldmVuIHRob3VnaCBpdCBpcyBmcm9tIGEgcHJldmlvdXMgbmF2aWdh
dGlvbi4gRm9yIHRoaXMgcmVhc29uLCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJveHkgc2hvdWxkIGln
bm9yZSBhbGwKKyAgICAgICAgaW5jb21pbmcgSVBDIHRoYXQgaXMgbm90IGZvciBpdHMgYXNzb2Np
YXRlZCBuYXZpZ2F0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRo
TmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgor
ICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9y
bVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKToKKwogMjAxOS0wNC0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB0cnkgdG8gZml4IHRoZSBpbnRl
cm5hbCBidWlsZCBhZnRlciByMjQ0MjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYjJiZGE3OGFjNDMyNmZjMTVjNzhlNjU2MjQ5
OGRkOTAwYzVjMTZmNi4uZjBhM2MzYmIwZTQ4ODAzODJhYmI4NzljMTM1NDYyMzgxMGRjNzVjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cApAQCAtMTgzLDYgKzE4MywxNSBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFj
a0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQgogICAgIG1fcHJv
Y2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiB9CiAKK2lubGluZSBib29sIFBy
b3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQoreworICAgIC8vIElmIHRoZSBwcmV2
aW91cyBwcm92aXNpb25hbCBsb2FkIHVzZWQgYW4gZXhpc3RpbmcgcHJvY2Vzcywgd2UgbWF5IHJl
Y2VpdmUgbGVmdG92ZXIgSVBDIGZvciBhIHByZXZpb3VzIG5hdmlnYXRpb24sIHdoaWNoIHdlIG5l
ZWQgdG8gaWdub3JlLgorICAgIGlmICghbV9tYWluRnJhbWUgfHwgbV9tYWluRnJhbWUtPmZyYW1l
SUQoKSAhPSBmcmFtZUlEKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gIW5h
dmlnYXRpb25JRCB8fCAqbmF2aWdhdGlvbklEID09IG1fbmF2aWdhdGlvbklEOworfQorCiB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENy
ZWF0ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQs
IG1fcGFnZS5wYWdlSUQoKSwgZnJhbWVJRCk7CkBAIC0yMTIsMTMgKzIyMSwxNSBAQCB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
IAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQogeworICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFt
ZUlEKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9wYWdlLmRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwg
bG9hZCB1c2VkIHRoZSBzYW1lIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIElQQyBmb3IgdGhpcyBw
cmV2aW91cyBwcm92aXNpb25hbCdzIG1haW4gZnJhbWUgdGhhdCB3ZSBuZWVkIHRvIGlnbm9yZS4K
LSAgICBpZiAoIW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJ
RCkKKyAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcs
ICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5w
YWdlSUQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKQEAgLTIzOCw3ICsyNDksMTEgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW4KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogeworICAgIGlmICgh
dmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQorICAgICAgICByZXR1cm47CisK
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCks
IGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgQVNTRVJUKCFtX3Byb3Zpc2lvbmFsTG9hZFVS
TC5pc051bGwoKSk7CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAKICAgICAvLyBN
YWtlIHN1cmUgdGhlIFBhZ2UncyBtYWluIGZyYW1lJ3MgZXhwZWN0ZWRVUkwgZ2V0cyBjbGVhcmVk
IHNpbmNlIHdlIHVwZGF0ZWQgaXQgaW4gZGlkU3RhcnRQcm92aXNpb25hbExvYWQuCkBAIC0yNTAs
OCArMjY1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnMKIAogdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3Rv
bUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1
bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNl
Y3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICAvLyBJZiB0aGUg
cHJldmlvdXMgcHJvdmlzaW9uYWwgbG9hZCB1c2VkIHRoZSBzYW1lIHByb2Nlc3MsIHdlIG1heSBy
ZWNlaXZlIElQQyBmb3IgdGhpcyBwcmV2aW91cyBwcm92aXNpb25hbCdzIG1haW4gZnJhbWUgdGhh
dCB3ZSBuZWVkIHRvIGlnbm9yZS4KLSAgICBpZiAoIW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1l
LT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKKyAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwg
bmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2
NCwgbV9wYWdlLnBhZ2VJRCgpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQpOwpAQCAtMjY0LDExICsy
NzgsMTcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRh
dGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCiB7CisgICAgaWYgKCF2YWxpZGF0ZUlu
cHV0KGZyYW1lSUQpKQorICAgICAgICByZXR1cm47CisKICAgICBtX3BhZ2UuZGlkTmF2aWdhdGVX
aXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc3RvcmUsIGZyYW1l
SUQpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJM
JiYgdXJsKQogeworICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQp
KQorICAgICAgICByZXR1cm47CisKICAgICBtX3BhZ2UuZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQs
IFdURk1vdmUodXJsKSk7CiB9CiAKQEAgLTI3Niw4ICsyOTYsOSBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3Qg
ZnJhbWVJRAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIHVp
bnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCiB7Ci0gICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKLSAgICBBU1NF
UlQobV9tYWluRnJhbWUtPmZyYW1lSUQoKSA9PSBmcmFtZUlEKTsKKyAgICBpZiAoIXZhbGlkYXRl
SW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9w
YWdlLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlm
aWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAg
ICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1
ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRp
cmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQpAQCAtMjg1LDE2ICszMDYs
MjUgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogeworICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0
aW9uSUQpKQorICAgICAgICByZXR1cm47CisKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9y
aWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hv
d01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQog
CiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxT
dHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCiB7CisgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1l
SUQpKQorICAgICAgICByZXR1cm47CisKICAgICBtX3BhZ2UuZGlkUGVyZm9ybVNlcnZlclJlZGly
ZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRp
b25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKKyAgICBpZiAoIXZhbGlk
YXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
bV9wYWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92
ZShyZXF1ZXN0KSwgdXNlckRhdGEpOwogfQogCkBAIC0zMTMsMTAgKzM0Myw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVp
bnQ2NF90IGZyYW1lSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgQVNTRVJUKGlzTWFpbkZyYW1lKTsKLSAgICBBU1NF
UlQoIW1fbWFpbkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgPT0gZnJhbWVJRCk7Ci0K
LSAgICBpZiAoIWlzTWFpbkZyYW1lIHx8IChtX21haW5GcmFtZSAmJiBtX21haW5GcmFtZS0+ZnJh
bWVJRCgpICE9IGZyYW1lSUQpKSB7CisgICAgaWYgKCFpc01haW5GcmFtZSB8fCAobV9tYWluRnJh
bWUgJiYgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKSB8fCBuYXZpZ2F0aW9uSUQg
IT0gbV9uYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgcmVwbHkoaWRlbnRpZmllciwgV2ViQ29yZTo6
UG9saWN5QWN0aW9uOjpJZ25vcmUsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51
bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggYjFiYmM1YThkY2JjZmQ4YWM0NDQ0Mjlk
ZWRhNWQ3NGVjZDNlNmVkNS4uNGVmMmI3NmQ1ODdlOTNjZDA4ZTdjNWE0NWM0ODgwZmZlODUyM2Uz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
CkBAIC0xMTgsNiArMTE4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBpbml0aWFs
aXplV2ViUGFnZSgpOworICAgIGJvb2wgdmFsaWRhdGVJbnB1dCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7CiAK
ICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBtX3By
b2Nlc3M7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>