<?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>142893</bug_id>
          
          <creation_ts>2015-03-19 20:03:40 -0700</creation_ts>
          <short_desc>[WK2] We should allow stale content when restoring a killed / crashed WebProcess</short_desc>
          <delta_ts>2015-03-30 10:00:48 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>142910</dependson>
    
    <dependson>142911</dependson>
          <blocked>142916</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1078727</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-19 20:03:40 -0700</bug_when>
    <thetext>We should allow stale content when restoring a killed / crashed WebProcess (similarly to a history navigation). This is actually what was intended as we call WebPage::goToBackForwardItem() in this case, which uses FrameLoadType::IndexedBackForward load type. However, this value is then ignored in FrameLoader::loadDifferentDocumentItem() because m_stateMachine.committedFirstRealDocumentLoad() return false in this case. This means we end up doing fresh loads from the network in this case.

We just need to take care of the fact that we should still load fresh content when restoring the session state (&lt;rdar://problem/8131355&gt;) as this is why FrameLoader::loadDifferentDocumentItem() was ignoring the IndexedBackForward load type in the first place.

Radar: &lt;rdar://problem/19633737&gt; / &lt;rdar://problem/19869257&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078736</commentid>
    <comment_count>1</comment_count>
      <attachid>249080</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-19 21:06:59 -0700</bug_when>
    <thetext>Created attachment 249080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078744</commentid>
    <comment_count>2</comment_count>
      <attachid>249080</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-03-19 21:59:57 -0700</bug_when>
    <thetext>Comment on attachment 249080
Patch

No way to test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078755</commentid>
    <comment_count>3</comment_count>
      <attachid>249080</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-19 22:46:16 -0700</bug_when>
    <thetext>Comment on attachment 249080
Patch

Clearing flags on attachment: 249080

Committed r181782: &lt;http://trac.webkit.org/changeset/181782&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078756</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-19 22:46:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078825</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-03-20 03:57:22 -0700</bug_when>
    <thetext>This caused a TestWebKitAPI test (WebKit2.RestoreSessionStateContainingFormData) to ASSERT:

&lt;https://build.webkit.org/builders/Apple%20Yosemite%20Debug%20WK2%20%28Tests%29/builds/2922&gt;

ASSERTION FAILED: isBackForwardLoadType(m_loadType)
/Volumes/Data/slave/yosemite-debug/build/Source/WebCore/loader/FrameLoader.cpp(3257) : void WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad()
1   0x10f1e5270 WTFCrash
2   0x11112db3c WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad()
3   0x110e18db3 WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource*)
4   0x110a59172 WebCore::CachedResource::checkNotify()
5   0x110a59321 WebCore::CachedResource::error(WebCore::CachedResource::Status)
6   0x112612479 WebCore::SubresourceLoader::didFail(WebCore::ResourceError const&amp;)
7   0x1122e9b45 WebCore::ResourceLoader::didFail(WebCore::ResourceHandle*, WebCore::ResourceError const&amp;)
8   0x1128c1ad3 -[WebCoreResourceHandleAsDelegate connection:didFailWithError:]
9   0x7fff9178f20d __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke
10  0x7fff9178f1b1 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]
11  0x7fff9178f356 -[NSURLConnectionInternal _withConnectionAndDelegate:]
12  0x7fff9177599b _NSURLConnectionDidFail(_CFURLConnection*, __CFError*, void const*)
13  0x7fff9172b51c invocation function for block in URLConnectionClient_Classic::_delegate_didFail(__CFError*, void () block_pointer)
14  0x7fff91729283 invocation function for block in URLConnectionClient_Classic::_withDelegateAsync(char const*, void (_CFURLConnection*, CFURLConnectionClientCurrent_VMax const*) block_pointer)
15  0x7fff9164b33c RunloopBlockContext::_invoke_block(void const*, void*)
16  0x7fff85fc6274 CFArrayApplyFunction
17  0x7fff9164b1fd RunloopBlockContext::perform()
18  0x7fff9164b09e MultiplexerSource::perform()
19  0x7fff9164aec0 MultiplexerSource::_perform(void*)
20  0x7fff85ffa681 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
21  0x7fff85fec80d __CFRunLoopDoSources0
22  0x7fff85febe3f __CFRunLoopRun
23  0x7fff85feb858 CFRunLoopRunSpecific
24  0x7fff88f1aaef RunCurrentEventLoopInMode
25  0x7fff88f1a86a ReceiveNextEventCommon
26  0x7fff88f1a6ab _BlockUntilNextEventMatchingListInModeWithFilter
27  0x7fff91aa6f81 _DPSNextEvent
28  0x7fff91aa6730 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
29  0x7fff91a9a593 -[NSApplication run]
30  0x7fff91a85a14 NSApplicationMain
31  0x7fff8ca27ef2 _xpc_objc_main
TIMEOUT WebKit2.RestoreSessionStateContainingFormData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078857</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-20 08:06:17 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 142910</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078860</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-20 08:34:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; This caused a TestWebKitAPI test
&gt; (WebKit2.RestoreSessionStateContainingFormData) to ASSERT:
&gt; 
&gt; &lt;https://build.webkit.org/builders/
&gt; Apple%20Yosemite%20Debug%20WK2%20%28Tests%29/builds/2922&gt;
&gt; 
&gt; ASSERTION FAILED: isBackForwardLoadType(m_loadType)
&gt; /Volumes/Data/slave/yosemite-debug/build/Source/WebCore/loader/FrameLoader.
&gt; cpp(3257) : void
&gt; WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad()
&gt; 1   0x10f1e5270 WTFCrash
&gt; 2   0x11112db3c
&gt; WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad()
&gt; 3   0x110e18db3
&gt; WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource*)
&gt; 4   0x110a59172 WebCore::CachedResource::checkNotify()
&gt; 5   0x110a59321
&gt; WebCore::CachedResource::error(WebCore::CachedResource::Status)
&gt; 6   0x112612479 WebCore::SubresourceLoader::didFail(WebCore::ResourceError
&gt; const&amp;)
&gt; 7   0x1122e9b45 WebCore::ResourceLoader::didFail(WebCore::ResourceHandle*,
&gt; WebCore::ResourceError const&amp;)
&gt; 8   0x1128c1ad3 -[WebCoreResourceHandleAsDelegate
&gt; connection:didFailWithError:]
&gt; 9   0x7fff9178f20d __65-[NSURLConnectionInternal
&gt; _withConnectionAndDelegate:onlyActive:]_block_invoke
&gt; 10  0x7fff9178f1b1 -[NSURLConnectionInternal
&gt; _withConnectionAndDelegate:onlyActive:]
&gt; 11  0x7fff9178f356 -[NSURLConnectionInternal _withConnectionAndDelegate:]
&gt; 12  0x7fff9177599b _NSURLConnectionDidFail(_CFURLConnection*, __CFError*,
&gt; void const*)
&gt; 13  0x7fff9172b51c invocation function for block in
&gt; URLConnectionClient_Classic::_delegate_didFail(__CFError*, void ()
&gt; block_pointer)
&gt; 14  0x7fff91729283 invocation function for block in
&gt; URLConnectionClient_Classic::_withDelegateAsync(char const*, void
&gt; (_CFURLConnection*, CFURLConnectionClientCurrent_VMax const*) block_pointer)
&gt; 15  0x7fff9164b33c RunloopBlockContext::_invoke_block(void const*, void*)
&gt; 16  0x7fff85fc6274 CFArrayApplyFunction
&gt; 17  0x7fff9164b1fd RunloopBlockContext::perform()
&gt; 18  0x7fff9164b09e MultiplexerSource::perform()
&gt; 19  0x7fff9164aec0 MultiplexerSource::_perform(void*)
&gt; 20  0x7fff85ffa681 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
&gt; 21  0x7fff85fec80d __CFRunLoopDoSources0
&gt; 22  0x7fff85febe3f __CFRunLoopRun
&gt; 23  0x7fff85feb858 CFRunLoopRunSpecific
&gt; 24  0x7fff88f1aaef RunCurrentEventLoopInMode
&gt; 25  0x7fff88f1a86a ReceiveNextEventCommon
&gt; 26  0x7fff88f1a6ab _BlockUntilNextEventMatchingListInModeWithFilter
&gt; 27  0x7fff91aa6f81 _DPSNextEvent
&gt; 28  0x7fff91aa6730 -[NSApplication
&gt; nextEventMatchingMask:untilDate:inMode:dequeue:]
&gt; 29  0x7fff91a9a593 -[NSApplication run]
&gt; 30  0x7fff91a85a14 NSApplicationMain
&gt; 31  0x7fff8ca27ef2 _xpc_objc_main
&gt; TIMEOUT WebKit2.RestoreSessionStateContainingFormData

Ok, looking now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249080</attachid>
            <date>2015-03-19 21:06:59 -0700</date>
            <delta_ts>2015-03-19 22:46:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142893-20150319210626.patch</filename>
            <type>text/plain</type>
            <size>14533</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzljZTc4MzBkMmUwZDg5
ZjM5MjgyMGEyNjE5YjQyMmZjYTIwMzc1NC4uNTNiMWY1ZTVmMDAxYjA0NjEzZTM5YTgxMjEzZjJi
ODJlYjgwMjI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTAzLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gV2Ugc2hvdWxkIGFs
bG93IHN0YWxlIGNvbnRlbnQgd2hlbiByZXN0b3JpbmcgYSBraWxsZWQgLyBjcmFzaGVkIFdlYlBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
Mjg5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk2MzM3Mzc+CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8xOTg2OTI1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBbHdheXMgdXNlIFJldHVybkNhY2hlRGF0YUVsc2VMb2FkIGNhY2hlIHBvbGlj
eSBmb3IgaGlzdG9yeSBuYXZpZ2F0aW9ucy4KKyAgICAgICAgUHJldmlvdXNseSwgd2Ugd291bGQg
dXNlIHRoZSBkZWZhdWx0IHByb3RvY29sIGNhY2hlIHBvbGljeSBmb3IgaGlzdG9yeQorICAgICAg
ICBuYXZpZ2F0aW9ucyBpZiBtX3N0YXRlTWFjaGluZS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVu
dExvYWQoKSByZXR1cm5lZAorICAgICAgICBmYWxzZSBzbyB0aGF0IHdlIGRvIG5vdCBkaXNwbGF5
IHN0YWxlIGNvbnRlbnQgd2hlbiByZXN0b3JpbmcgdGhlIHNlc3Npb24KKyAgICAgICAgc3RhdGUg
b2YgU2FmYXJpIHN0YXR1cCAocmRhcjovL3Byb2JsZW0vODEzMTM1NSkuIFRoaXMgaXMgbm93IGhh
bmRsZWQKKyAgICAgICAgYmVmb3JlIHJlYWNoaW5nIHRoaXMgbWV0aG9kIGJ5IG5vIGxvbmdlciB1
c2luZyAiSW5kZXhlZEJhY2tGb3J3YXJkIgorICAgICAgICBGcmFtZUxvYWRUeXBlIHdoZW4gcmVz
dG9yaW5nIHNlc3Npb24gdGFicywgYW5kIHVzaW5nICJTdGFuZGFyZCIgbG9hZAorICAgICAgICB0
eXBlIGluc3RlYWQuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0pOgorCiAy
MDE1LTAzLTE5ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjEwOTU5Myk6IENsaWNraW5nIGFmdGVyIGxhc3QgaW5saW5lIGVsZW1lbnQg
Y291bGQgY2F1c2UgYSBjcmFzaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YTk2OGQ5NjEyMDdhMzE5NDAyMDYy
NjAzZGIxMTAwZGQ3YzI0ZjVhLi45MjIzNDhhYjEzYTJjNWMwNGMzN2ZmNzRlY2IzOTdjOGNmZTVl
MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTUtMDMtMTkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBXZSBzaG91bGQgYWxsb3cgc3Rh
bGUgY29udGVudCB3aGVuIHJlc3RvcmluZyBhIGtpbGxlZCAvIGNyYXNoZWQgV2ViUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyODkzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTYzMzczNz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE5ODY5MjU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFsbG93IHN0YWxlIGNvbnRlbnQgd2hlbiByZXN0b3JpbmcgYSBraWxsZWQgLyBjcmFzaGVk
IFdlYlByb2Nlc3MKKyAgICAgICAgKHNpbWlsYXJseSB0byBhIGhpc3RvcnkgbmF2aWdhdGlvbiku
IFRoaXMgaXMgYWN0dWFsbHkgd2hhdCB3YXMgaW50ZW5kZWQKKyAgICAgICAgYXMgd2UgY2FsbCBX
ZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKCkgaW4gdGhpcyBjYXNlLCB3aGljaCB1c2VzCisg
ICAgICAgIEluZGV4ZWRCYWNrRm9yd2FyZCBsb2FkIHR5cGUuIEhvd2V2ZXIsIHRoaXMgdmFsdWUg
d2FzIHRoZW4gaWdub3JlZCBpbgorICAgICAgICBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERv
Y3VtZW50SXRlbSgpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZ2V0cyByaWQgb2YgdGhlIHNwZWNp
YWwgY2FzaW5nIGluCisgICAgICAgIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJ
dGVtKCkgYW5kIG1ha2VzIGl0IGNsZWFyIGF0IGNhbGwKKyAgICAgICAgc2l0ZXMgd2hlbiBjYWxs
aW5nIGdvVG9CYWNrRm9yd2FyZEl0ZW0oKSBpZiB3ZSBzaG91bGQgYWxsb3cgc3RhbGUKKyAgICAg
ICAgY29udGVudCBvciBub3QuIElmIGdvVG9CYWNrRm9yd2FyZEl0ZW0oKSBpcyBjYWxsZWQgd2l0
aCB0aGUKKyAgICAgICAgYWxsb3dTdGFsZUNvbnRlbnQgZmxhZyBvZmYsIHdlJ2xsIGtlZXAgdXNp
bmcgdGhlIEluZGV4ZWRCYWNrRm9yd2FyZAorICAgICAgICBmcmFtZSBsb2FkIHR5cGUuIEhvd2V2
ZXIsIGlmIHRoZSBmbGFnIGlzIG9uLCB3ZSdsbCB1c2UgdGhlIFN0YW5kYXJkCisgICAgICAgIGZy
YW1lIGxvYWQgdHlwZSBhbmQgZG8gYSBmcmVzaCBsb2FkLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVhdHRh
Y2hUb1dlYlByb2Nlc3NGb3JSZWxvYWQpOgorICAgICAgICBTZXQgYWxsb3dTdGFsZUNvbnRlbnQg
ZmxhZyB0byB0cnVlIGFzIHdlIHdhbnQgdG8gYWxsb3cgc3RhbGUgY29udGVudAorICAgICAgICB3
aGVuIHJlbG9hZGluZyBhIFdlYlByb2Nlc3MgYWZ0ZXIgaXQgY3Jhc2hlZCBvciB3YXMga2lsbGVk
IChiZWhhdmlvcgorICAgICAgICBjaGFuZ2UpLgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbSk6CisgICAgICAgIEFkZCBhbGxvd1N0
YWxlQ29udGVudCBwYXJhbWV0ZXIgc28gdGhhdCBjYWxsIHNpdGVzIGNhbiBkZWNpZGUgd2hpY2gK
KyAgICAgICAgcG9saWN5IHRvIHVzZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmdvRm9yd2FyZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29CYWNrKToKKyAg
ICAgICAgU2V0IGFsbG93U3RhbGVDb250ZW50IGZsYWcgdG8gdHJ1ZSBhcyB0aGlzIGlzIG91ciBw
b2xpY3kgZm9yIGhpc3RvcnkKKyAgICAgICAgbmF2aWdhdGlvbnMuCisKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAgICAgQWRkIGFsbG93
U3RhbGVDb250ZW50IHBhcmFtZXRlciBzbyB0aGF0IHRoZSBjYWxsIHNpdGUgY2FuIGxldCB1cyBr
bm93CisgICAgICAgIHdoYXQgdG8gZG8uIFRoaXMgaXMgdXNlZnVsIGFzIHRoaXMgaXMgY2FsbGVk
IG5vdCBvbmx5IGZvciBpbmRleGVkCisgICAgICAgIGJhY2sgLyBmb3J3YXJkIG5hdmlnYXRpb25z
IChhbGxvd2luZyBzdGFsZSBjb250ZW50KSBidXQgYWxzbyBmb3IKKyAgICAgICAgcmVzdG9yaW5n
IHNlc3Npb24gc3RhdGUgKGZvcmJpZGRpbmcgc3RhdGUgY29udGVudDoKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgxMzEzNTU+KS4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
c3RvcmVGcm9tU2Vzc2lvblN0YXRlKToKKyAgICAgICAgQ2FsbCBnb1RvQmFja0ZvcndhcmRJdGVt
KCkgd2l0aCBhbGxvd1N0YWxlQ29udGVudCBmbGFnIHNldCB0byBmYWxzZQorICAgICAgICBhcyB1
c2VycyBleHBlY3QgZnJlc2ggY29udGVudHMgaW4gdGhpcyBjYXNlLiBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQKKyAgICAgICAgd2hlbjoKKyAgICAgICAgLSBUYWJzIGFyZSByZXN0b3JlZCBvbiBTYWZh
cmkgLyBNb2JpbGVTYWZhcmkgc3RhcnR1cAorICAgICAgICAtIFRhYnMgYXJlIHJlc3RvcmVkIHZp
YSAiSGlzdG9yeSA+IFJlb3BlbiBBbGwgd2luZG93cyBmcm9tIGxhc3Qgc2Vzc2lvbiIKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvVG9CYWNrRm9y
d2FyZEl0ZW0pOgorICAgICAgICBBZGQgYWxsb3dTdGFsZUNvbnRlbnQgcGFyYW1ldGVyIGFuZCB1
c2UgIlN0YW5kYXJkIiBmcmFtZSBsb2FkIHR5cGUKKyAgICAgICAgaW5zdGVhZCBvZiAiSW5kZXhl
ZEJhY2tGb3J3YXJkIiBpZiBpdCBpcyBmYWxzZS4gVGhpcyBpcyBuZWVkZWQgYXMKKyAgICAgICAg
IkluZGV4ZWRCYWNrRm9yd2FyZCIgZnJhbWUgbG9hZCB0eXBlIGFsbG93cyB1c2luZyBzdGFsZSBj
b250ZW50LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRk
IGFsbG93U3RhbGVDb250ZW50IGZsYWcgdG8gR29Ub0JhY2tGb3J3YXJkSXRlbSBtZXNzYWdlLgor
CiAyMDE1LTAzLTE5ICBKZXNzaWUgQmVybGluICA8amJlcmxpbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIDMyLWJpdCBidWlsZCBmaXggYWZ0ZXIgcjE4MTc3MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IGFlOTI3ZGE4NDQ3NDNlNjcwMzczMjBjMzU1YjZlNmE2NDljMGUw
NWMuLjhjMzQ0NTk2ZjViMzU0NjMyODBkNzczMTVhNDhhYjFkMzk3YjMwYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzIxNiwxMCArMzIxNiw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZy
YW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6QmFjazoKICAgICAg
ICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpGb3J3YXJkOgogICAgICAgICBjYXNlIEZyYW1lTG9hZFR5
cGU6OkluZGV4ZWRCYWNrRm9yd2FyZDoKLSAgICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCBsb2Fk
IHdpdGhpbiBhIGZyYW1lIGlzIGEgbmF2aWdhdGlvbiB3aXRoaW4gYSBiYWNrL2ZvcndhcmQgbGlz
dCB0aGF0IHdhcyBhdHRhY2hlZCAKLSAgICAgICAgICAgIC8vIHdpdGhvdXQgYW55IG9mIHRoZSBp
dGVtcyBiZWluZyBsb2FkZWQgdGhlbiB3ZSBzaG91bGQgdXNlIHRoZSBkZWZhdWx0IGNhY2hpbmcg
cG9saWN5ICg8cmRhcjovL3Byb2JsZW0vODEzMTM1NT4pLgotICAgICAgICAgICAgaWYgKG1fc3Rh
dGVNYWNoaW5lLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQotICAgICAgICAgICAg
ICAgIHJlcXVlc3Quc2V0Q2FjaGVQb2xpY3koUmV0dXJuQ2FjaGVEYXRhRWxzZUxvYWQpOworICAg
ICAgICAgICAgcmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZXR1cm5DYWNoZURhdGFFbHNlTG9hZCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpTdGFuZGFy
ZDoKICAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9y
d2FyZExpc3Q6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGM1YjhmNzE4ZWYwYmU5ZDk2NjY1NDE0ZTMzZDExNWZhZTBlMGNmMmQuLmVhZWRmYTQ0ZGQ0NmU4
YzE1NmZmNTIxMmM0N2E1NzZjMGNmNGI4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC02NTUsMTMgKzY1NSwxNCBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0
aW9uPiBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzRm9yUmVsb2FkKCkKIAogICAg
IGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVSZWxvYWROYXZpZ2F0
aW9uKCk7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNr
Rm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIG1fYmFja0ZvcndhcmRMaXN0
LT5jdXJyZW50SXRlbSgpLT5pdGVtSUQoKSksIG1fcGFnZUlEKTsKKyAgICAvLyBXZSBhbGxvdyBz
dGFsZSBjb250ZW50IHdoZW4gcmVsb2FkaW5nIGEgV2ViUHJvY2VzcyB0aGF0J3MgYmVlbiBraWxs
ZWQgb3IgY3Jhc2hlZC4KKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Okdv
VG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIG1fYmFja0Zvcndh
cmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtSUQoKSwgdHJ1ZSAvKiBhbGxvd1N0YWxlICovKSwg
bV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgp
OwogCiAgICAgcmV0dXJuIFdURjo6bW92ZShuYXZpZ2F0aW9uKTsKIH0KIAotUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0pCitSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQ
YWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0
SXRlbSogaXRlbSwgQWxsb3dTdGFsZUNvbnRlbnQgYWxsb3dTdGFsZUNvbnRlbnQpCiB7CiAgICAg
aWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNjc3LDcgKzY3OCw3
IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVhdHRhY2hUb1dlYlBy
b2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyCiAKICAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25h
dmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7CiAKLSAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdh
dGlvbi0+bmF2aWdhdGlvbklEKCksIGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQpOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZp
Z2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgaXRlbS0+aXRlbUlEKCksIGFsbG93U3RhbGVDb250ZW50
ID09IEFsbG93U3RhbGVDb250ZW50OjpZZXMpLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5y
ZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiAKICAgICByZXR1cm4gV1RGOjptb3ZlKG5h
dmlnYXRpb24pOwpAQCAtMTAyNSw3ICsxMDI2LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4g
V2ViUGFnZVByb3h5Ojpnb0ZvcndhcmQoKQogICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5n
QVBJUmVxdWVzdFVSTCh0cmFuc2FjdGlvbiwgZm9yd2FyZEl0ZW0tPnVybCgpKTsKIAogICAgIGlm
ICghaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRl
bShmb3J3YXJkSXRlbSk7CisgICAgICAgIHJldHVybiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJ
dGVtKGZvcndhcmRJdGVtLCBBbGxvd1N0YWxlQ29udGVudDo6WWVzKTsKIAogICAgIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+
Y3VycmVudEl0ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoKmZvcndhcmRJdGVtKSkKQEAgLTEw
NDgsNyArMTA0OSw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29C
YWNrKCkKICAgICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwodHJhbnNh
Y3Rpb24sIGJhY2tJdGVtLT51cmwoKSk7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAg
cmV0dXJuIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oYmFja0l0ZW0pOworICAgICAgICBy
ZXR1cm4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShiYWNrSXRlbSwgQWxsb3dTdGFsZUNv
bnRlbnQ6Olllcyk7CiAKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwog
ICAgIGlmICghbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1Jc0luU2FtZURv
Y3VtZW50KCpiYWNrSXRlbSkpCkBAIC0xMDYwLDEwICsxMDYxLDEwIEBAIFJlZlB0cjxBUEk6Ok5h
dmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29CYWNrKCkKICAgICByZXR1cm4gbmF2aWdhdGlvbjsK
IH0KIAotUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb1RvQmFja0Zvcndh
cmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0pCitSZWZQdHI8QVBJOjpOYXZpZ2F0
aW9uPiBXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0
SXRlbSogaXRlbSwgQWxsb3dTdGFsZUNvbnRlbnQgYWxsb3dTdGFsZUNvbnRlbnQpCiB7CiAgICAg
aWYgKCFpc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJ
dGVtKGl0ZW0pOworICAgICAgICByZXR1cm4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShp
dGVtLCBhbGxvd1N0YWxlQ29udGVudCk7CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdl
TG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7CiAKQEAgLTEwNzMsNyArMTA3NCw3IEBAIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtCiAgICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0o
KS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoKml0ZW0pKQogICAgICAgICBuYXZpZ2F0aW9uID0gbV9u
YXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbigpOwogCi0gICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmln
YXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsIGl0ZW0tPml0ZW1JRCgpKSwg
bV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0Jh
Y2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAw
LCBpdGVtLT5pdGVtSUQoKSwgYWxsb3dTdGFsZUNvbnRlbnQgPT0gQWxsb3dTdGFsZUNvbnRlbnQ6
OlllcyksIG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+
c3RhcnQoKTsKIAogICAgIHJldHVybiBuYXZpZ2F0aW9uOwpAQCAtMjA5NCw4ICsyMDk1LDEwIEBA
IFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVzdG9yZUZyb21TZXNzaW9u
U3RhdGUoU2Vzc2lvblN0YXRlIHNlc3NpCiAKICAgICAgICAgaWYgKGhhc0JhY2tGb3J3YXJkTGlz
dCkgewogICAgICAgICAgICAgLy8gRklYTUU6IERvIHdlIGhhdmUgdG8gbnVsbCBjaGVjayB0aGUg
YmFjayBmb3J3YXJkIGxpc3QgaXRlbSBoZXJlPwotICAgICAgICAgICAgaWYgKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIGl0ZW0gPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZ29Ub0JhY2tGb3J3YXJkSXRlbShpdGVtKTsKKyAgICAgICAg
ICAgIGlmIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtID0gbV9iYWNrRm9yd2FyZExpc3Qt
PmN1cnJlbnRJdGVtKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBmb3JiaWQgc3RhbGUgY29u
dGVudCB3aGVuIHJlc3RvcmluZyB0aGUgc2Vzc2lvbiBzdGF0ZSBhbmQgZG8gYSBmcmVzaCBsb2Fk
IChyZGFyOi8vcHJvYmxlbS84MTMxMzU1KS4KKyAgICAgICAgICAgICAgICByZXR1cm4gZ29Ub0Jh
Y2tGb3J3YXJkSXRlbShpdGVtLCBBbGxvd1N0YWxlQ29udGVudDo6Tm8pOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggMzhkNzJlNTlmMGZiMzVmZDg4NDMzNjBlMGM1NDUxZTA0NDA4ZjNhMS4uZjVjN2Rl
Mjg3MDExNDRjNGU3MGY5OTVmODg5M2JhMDcyMDc2OTRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzU4LDcgKzM1OCw4IEBAIHB1YmxpYzoKICAgICBSZWZQ
dHI8QVBJOjpOYXZpZ2F0aW9uPiBnb0ZvcndhcmQoKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0
aW9uPiBnb0JhY2soKTsKIAotICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGdvVG9CYWNrRm9y
d2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOworICAgIGVudW0gY2xhc3MgQWxsb3dT
dGFsZUNvbnRlbnQgeyBObywgWWVzIH07CisgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gZ29U
b0JhY2tGb3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiwgQWxsb3dTdGFsZUNvbnRl
bnQgPSBBbGxvd1N0YWxlQ29udGVudDo6WWVzKTsKICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQ
b3NpdGlvbigpOwogICAgIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZlB0cjxXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtPj4gcmVtb3ZlZCk7CiAgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWlu
dDY0X3QgaXRlbUlELCBjb25zdCBVc2VyRGF0YSYpOwpAQCAtMTE2Miw3ICsxMTYzLDcgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICBSZWZQdHI8QVBJ
OjpOYXZpZ2F0aW9uPiByZWF0dGFjaFRvV2ViUHJvY2Vzc0ZvclJlbG9hZCgpOwotICAgIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSopOworICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IHJlYXR0YWNoVG9X
ZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSosIEFsbG93U3RhbGVDb250
ZW50KTsKIAogICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qg
bm90aWZpY2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKTsKICAgICB2b2lkIHNo
b3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBj
b25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxh
bmcsIGNvbnN0IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDEwODczZGI0YmY0M2Y5MDJmMTY3Y2ViMDZlNjQ4NDcyYzM4ZGQ1
ZWYuLmI4YmJlYmI0OGZiYTlmNmQ1ODAxMWExNGFmMTQzNzliYmQzZGU4MTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTExNjEsNyArMTE2
MSw3IEBAIHZvaWQgV2ViUGFnZTo6Z29CYWNrKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0
X3QgYmFja0ZvcndhcmRJdGVtSUQpCiAgICAgbV9wYWdlLT5nb1RvSXRlbSgqaXRlbSwgRnJhbWVM
b2FkVHlwZTo6QmFjayk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQordm9pZCBX
ZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0
X3QgYmFja0ZvcndhcmRJdGVtSUQsIGJvb2wgYWxsb3dTdGFsZUNvbnRlbnQpCiB7CiAgICAgU2Vu
ZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXIodGhpcyk7CiAKQEAgLTExNzQsNyArMTE3
NCw3IEBAIHZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlCiAgICAgaWYgKCFpdGVtLT5pc0luUGFnZUNh
Y2hlKCkpCiAgICAgICAgIG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsKIAot
ICAgIG1fcGFnZS0+Z29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9y
d2FyZCk7CisgICAgbV9wYWdlLT5nb1RvSXRlbSgqaXRlbSwgYWxsb3dTdGFsZUNvbnRlbnQgPyBG
cmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQgOiBGcmFtZUxvYWRUeXBlOjpTdGFuZGFy
ZCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6dHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGU2NGU2YzE0NDIz
OWE4ZTMxNjUzMWY5M2E4ODk3MjJlNjAxZGZmMGYuLmRmNDg0MzExMzcxYzkyYTQxNTkyMGQ0NGVh
NTE4Nzg1YTg1MGJiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtOTI2LDcgKzkyNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWxvYWQodWlu
dDY0X3QgbmF2aWdhdGlvbklELCBib29sIHJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYpOwogICAgIHZvaWQgZ29Gb3J3YXJkKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgdWludDY0X3QpOwogICAgIHZvaWQgZ29CYWNrKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
dWludDY0X3QpOwotICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3Qg
bmF2aWdhdGlvbklELCB1aW50NjRfdCwgYm9vbCBhbGxvd1N0YWxlQ29udGVudCk7CiAgICAgdm9p
ZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIHNldEluaXRpYWxGb2N1cyhi
b29sIGZvcndhcmQsIGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIGNvbnN0IFdlYktleWJvYXJk
RXZlbnQmKTsKICAgICB2b2lkIHNldFdpbmRvd1Jlc2l6ZXJTaXplKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggN2JmOTlmY2M1MDJiM2E3YzM2OTE2OGRjZDlmNDU0MThi
MTNiY2FiOC4uYjNhNTNiNGY4OWJkNDkzZmZhNjg3YzlkM2ZiMDBmNjEwOGIyMWI3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KQEAgLTExOSw3ICsxMTksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2Vp
dmVyIHsKIAogICAgIEdvQmFjayh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tG
b3J3YXJkSXRlbUlEKQogICAgIEdvRm9yd2FyZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2
NF90IGJhY2tGb3J3YXJkSXRlbUlEKQotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3Qg
bmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKKyAgICBHb1RvQmFja0Zv
cndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVt
SUQsIGJvb2wgYWxsb3dTdGFsZUNvbnRlbnQpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFN0cmluZyB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>