<?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>219830</bug_id>
          
          <creation_ts>2020-12-12 19:03:24 -0800</creation_ts>
          <short_desc>Move some of the work from JSLock to VMEntryScope</short_desc>
          <delta_ts>2020-12-14 11:49:16 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1714291</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-12 19:03:24 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714292</commentid>
    <comment_count>1</comment_count>
      <attachid>416111</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-12 19:11:24 -0800</bug_when>
    <thetext>Created attachment 416111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714301</commentid>
    <comment_count>2</comment_count>
      <attachid>416111</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-12-12 21:58:41 -0800</bug_when>
    <thetext>Comment on attachment 416111
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        - lastStackTop: used by the interpreter and JIT, so VMEntry is guaranteed to execute

I think this is incorrect.  VM::m_lastStackTop is only needed to sanitize the stack, and we can call sanitizeStackForVM() when allocating objects.  I think you can allocate cells via the API without entering the VM, and you don&apos;t need to enter the VM to do so.  For example, via the ObjC API&apos;s [JSWrapperMap jsWrapperForObject:inContext:].  For this reason, this should be set for the current thread on JSLock acquisition.

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        - stackPointerAtVMEntry: This sets the stack limits, which are used by the interpreter and JIT. As the name suggests, itâs only used after VM entry.

Non-ascii character in &quot;it&apos;s&quot;

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +        call is adding the current thread to the heap as this requires acquiring two locks. We canât  move this to VMEntryScope

non-ascii char in &quot;can&apos;t&quot;

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        since itâs possible to use the API and GC without ever entering the VM, which would result in the current thread&apos;s stack

non-ascii char in &quot;it&apos;s&quot;

&gt; Source/JavaScriptCore/ChangeLog:21
&gt; +        not being scanned. Instead, we just remember the last thread that acquired the lock and skip the call if weâre seeing the

non-ascii char in &quot;we&apos;re&quot;

&gt; Source/JavaScriptCore/ChangeLog:33
&gt; +        UPCOMING_API:       Baseline   Change

Can you add a small blurb about what the &quot;UPCOMING API&quot; is?

&gt; Source/WTF/ChangeLog:9
&gt; +        Add a unique ID to threads. This uid is used in JSLock to avoid unnecessary work when the
&gt; +        same thread that last acquired the lock is reacquiring it.

While I personally also always wanted to do this, why can&apos;t we just use &amp;Thread as the id (which is how we&apos;re doing this elsewhere in the code)?

That said, I do like that the ID is monotonically increasing though, which is a very nice property to have.  Addresses of Threads can be reused as old threads die.

&gt; Source/JavaScriptCore/runtime/JSLock.cpp:-138
&gt; -    m_vm-&gt;setLastStackTop(thread.savedLastStackTop());
&gt; -    ASSERT(thread.stack().contains(m_vm-&gt;lastStackTop()));

I think this need to stay here as explained above in the ChangeLog.

&gt; Source/JavaScriptCore/runtime/JSLock.cpp:144
&gt; +        if (m_vm-&gt;heap.machineThreads().addCurrentThread()) {

Hmmm, this is not caused by your patch, but what happens if a thread dies before the VM does?  I don&apos;t see any code to remove the thread from the ThreadGroup.  So far, the SamplingProfiler appears to be the only client of this machineThreads().  Can you file a bug to track that we should remove the thread from the ThreadGroup if a thread dies?

&gt; Source/JavaScriptCore/runtime/VMEntryScope.cpp:82
&gt; +        Thread&amp; thread = Thread::current();
&gt; +        vm.setLastStackTop(thread.savedLastStackTop());
&gt; +        ASSERT(thread.stack().contains(vm.lastStackTop()));
&gt; +
&gt; +        RELEASE_ASSERT(!vm.stackPointerAtVMEntry());
&gt; +        void* p = currentStackPointer();
&gt; +        vm.setStackPointerAtVMEntry(p);
&gt; +
&gt; +#if ENABLE(WEBASSEMBLY)
&gt; +        if (Wasm::isSupported())
&gt; +            Wasm::startTrackingCurrentThread();
&gt; +#endif
&gt; +
&gt; +#if HAVE(MACH_EXCEPTIONS)
&gt; +        registerThreadForMachExceptionHandling(Thread::current());
&gt; +#endif
&gt; +
&gt; +        vm.firePrimitiveGigacageEnabledIfNecessary();

In the current code, all of these would have already been executed on JSLock acquisition before the above VMEntryScope code is executed.  That would argue for putting this higher up.  I suggest putting them right after `vm.entryScope = this;`.

Also, you already have the current thread.  You don&apos;t have to call Thread::current() again for registerThreadForMachExceptionHandling().

&gt; Source/WTF/wtf/Threading.h:334
&gt;      PlatformThreadHandle m_handle;

Can you put the m_uid here after m_handle instead?  There&apos;s currently 4 bytes of unused padding here but not above after m_mutex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714332</commentid>
    <comment_count>3</comment_count>
      <attachid>416111</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-13 10:22:50 -0800</bug_when>
    <thetext>Comment on attachment 416111
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        - lastStackTop: used by the interpreter and JIT, so VMEntry is guaranteed to execute
&gt; 
&gt; I think this is incorrect.  VM::m_lastStackTop is only needed to sanitize the stack, and we can call sanitizeStackForVM() when allocating objects.  I think you can allocate cells via the API without entering the VM, and you don&apos;t need to enter the VM to do so.  For example, via the ObjC API&apos;s [JSWrapperMap jsWrapperForObject:inContext:].  For this reason, this should be set for the current thread on JSLock acquisition.

Thanks, I missed that we called sanitizeStackForVM when allocating. I&apos;ll move it back.

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +        - stackPointerAtVMEntry: This sets the stack limits, which are used by the interpreter and JIT. As the name suggests, itâs only used after VM entry.
&gt; 
&gt; Non-ascii character in &quot;it&apos;s&quot;

Oops, I wrote it in Notes then copied it over here and didn&apos;t notice it.

&gt;&gt; Source/JavaScriptCore/ChangeLog:33
&gt;&gt; +        UPCOMING_API:       Baseline   Change
&gt; 
&gt; Can you add a small blurb about what the &quot;UPCOMING API&quot; is?

I described it in the patch that introduced the benchmark. Since this is just an improvement, I don&apos;t think this is the right place for it.

&gt;&gt; Source/WTF/ChangeLog:9
&gt;&gt; +        same thread that last acquired the lock is reacquiring it.
&gt; 
&gt; While I personally also always wanted to do this, why can&apos;t we just use &amp;Thread as the id (which is how we&apos;re doing this elsewhere in the code)?
&gt; 
&gt; That said, I do like that the ID is monotonically increasing though, which is a very nice property to have.  Addresses of Threads can be reused as old threads die.

I was mostly just thinking about the case you mentioned where the address is reused. With AutomaticThreads or dispatch_queues it doesn&apos;t seem too unlikely that an address might be reused. Given that this is so simple to implement, I didn&apos;t think there was any downside to it.

&gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:144
&gt;&gt; +        if (m_vm-&gt;heap.machineThreads().addCurrentThread()) {
&gt; 
&gt; Hmmm, this is not caused by your patch, but what happens if a thread dies before the VM does?  I don&apos;t see any code to remove the thread from the ThreadGroup.  So far, the SamplingProfiler appears to be the only client of this machineThreads().  Can you file a bug to track that we should remove the thread from the ThreadGroup if a thread dies?

The thread removes itself from all ThreadGroups in Thread::didExit.

&gt;&gt; Source/JavaScriptCore/runtime/VMEntryScope.cpp:82
&gt;&gt; +        vm.firePrimitiveGigacageEnabledIfNecessary();
&gt; 
&gt; In the current code, all of these would have already been executed on JSLock acquisition before the above VMEntryScope code is executed.  That would argue for putting this higher up.  I suggest putting them right after `vm.entryScope = this;`.
&gt; 
&gt; Also, you already have the current thread.  You don&apos;t have to call Thread::current() again for registerThreadForMachExceptionHandling().

Good call, will update both things.

&gt;&gt; Source/WTF/wtf/Threading.h:334
&gt;&gt;      PlatformThreadHandle m_handle;
&gt; 
&gt; Can you put the m_uid here after m_handle instead?  There&apos;s currently 4 bytes of unused padding here but not above after m_mutex.

will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714334</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-12-13 11:12:01 -0800</bug_when>
    <thetext>(In reply to Tadeu Zagallo from comment #3)
&gt; &gt;&gt; Source/JavaScriptCore/runtime/JSLock.cpp:144
&gt; &gt;&gt; +        if (m_vm-&gt;heap.machineThreads().addCurrentThread()) {
&gt; &gt; 
&gt; &gt; Hmmm, this is not caused by your patch, but what happens if a thread dies before the VM does?  I don&apos;t see any code to remove the thread from the ThreadGroup.  So far, the SamplingProfiler appears to be the only client of this machineThreads().  Can you file a bug to track that we should remove the thread from the ThreadGroup if a thread dies?
&gt; 
&gt; The thread removes itself from all ThreadGroups in Thread::didExit.

Ah, yes.  I missed that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714359</commentid>
    <comment_count>5</comment_count>
      <attachid>416129</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-13 17:22:55 -0800</bug_when>
    <thetext>Created attachment 416129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714479</commentid>
    <comment_count>6</comment_count>
      <attachid>416129</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-12-14 10:18:34 -0800</bug_when>
    <thetext>Comment on attachment 416129
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSLock.h:148
&gt; +    uint32_t m_lastOwnerThread { 0 };

nit: Not the most important thing but can you swap the position of this with m_shouldReleaseHeapAccess below.  That should pack the fields better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714488</commentid>
    <comment_count>7</comment_count>
      <attachid>416129</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-12-14 10:42:15 -0800</bug_when>
    <thetext>Comment on attachment 416129
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:40
&gt; +        Score:             36.2211   43.3368

nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714496</commentid>
    <comment_count>8</comment_count>
      <attachid>416173</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-14 10:59:57 -0800</bug_when>
    <thetext>Created attachment 416173
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714524</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-14 11:48:03 -0800</bug_when>
    <thetext>Committed r270794: &lt;https://trac.webkit.org/changeset/270794&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416173.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714526</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-14 11:49:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/72307478&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416111</attachid>
            <date>2020-12-12 19:11:24 -0800</date>
            <delta_ts>2020-12-13 17:22:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219830-20201212191124.patch</filename>
            <type>text/plain</type>
            <size>11209</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTlhYWYzOTlmY2M1NjJmYWYxMzFmMjc2ODRjODUwMjgyMzBkMDJiLi5mOTFjOWNiMWNlMTBmYTcw
MmRiYzY4ZDlmOGJhMGJjNjA3ZTg5MjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMC0xMi0xMiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBNb3ZlIHNvbWUgb2YgdGhlIHdvcmsgZnJvbSBKU0xvY2sgdG8gVk1FbnRy
eVNjb3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTk4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBtb3ZlIHNldmVyYWwgdGhpbmdzIGZyb20gSlNMb2NrIHRvIFZNRW50cnlTY29wZSB0aGF0IGNv
dWxkIG9ubHkgYmUgb2JzZXJ2ZWQgYWZ0ZXIgd2UgZW50ZXJlZCB0aGUgVk06CisgICAgICAgIC0g
bGFzdFN0YWNrVG9wOiB1c2VkIGJ5IHRoZSBpbnRlcnByZXRlciBhbmQgSklULCBzbyBWTUVudHJ5
IGlzIGd1YXJhbnRlZWQgdG8gZXhlY3V0ZQorICAgICAgICAtIHN0YWNrUG9pbnRlckF0Vk1FbnRy
eTogVGhpcyBzZXRzIHRoZSBzdGFjayBsaW1pdHMsIHdoaWNoIGFyZSB1c2VkIGJ5IHRoZSBpbnRl
cnByZXRlciBhbmQgSklULiBBcyB0aGUgbmFtZSBzdWdnZXN0cywgaXTigJlzIG9ubHkgdXNlZCBh
ZnRlciBWTSBlbnRyeS4KKyAgICAgICAgLSBXYXNtVGhyZWFkczogb25seSB1c2VkIHdoZW4gdGll
cmluZyB1cCB3YXNtLCBzbyBWTUVudHJ5U2NvcGUgd291bGQgaGF2ZSBleGVjdXRlZAorICAgICAg
ICAtIHJlZ2lzdGVyVGhyZWFkRm9yTWFjaEV4Y2VwdGlvbkhhbmRsaW5nOiBUaGUgbWFjaCBleGNl
cHRpb24gaGFuZGxlcnMgYXJlIHVzZWQgZm9yOgorICAgICAgICAgICAgLSBzaWdpbGwgY3Jhc2gg
YW5hbHl6ZXI6IG9ubHkgcmVsZXZhbnQgYWZ0ZXIgd2UgZW50ZXIgdGhlIHZtCisgICAgICAgICAg
ICAtIHdhc20gZmF1bHQgc2lnbmFsIGhhbmRsZXI6IHNhbWUsIHdlIG11c3QgYmUgZXhlY3V0aW5n
IHdhc20gYW5kIHRoZXJlZm9yZSBWTUVudHJ5U2NvcGUgd2lsbCBoYXZlIGV4ZWN1dGVkLgorICAg
ICAgICAgICAgLSBWTVRyYXBzOiBvbmx5IGhhbmRsZXMgZmF1bHRzIGluIEpJVCBjb2RlCisgICAg
ICAgIC0gZmlyZVByaW1pdGl2ZUdpZ2FjYWdlRW5hYmxlZElmTmVjZXNzYXJ5OiBPbmx5IHdhdGNo
IGJ5IHRoZSBKSVRzCisKKyAgICAgICAgVGhpcyBnaXZlcyBpcyBhIH4xMCUgaW1wcm92ZW1lbnQg
b24gQVBJQmVuY2ggKHNjb3JlIGNoYW5nZSBmcm9tIH4zNi4zIHRvIH4zOS45KSwgYnV0IGFzIGl0
IHR1cm5zIG91dCB0aGUgbW9zdCBleHBlbnNpdmUKKyAgICAgICAgY2FsbCBpcyBhZGRpbmcgdGhl
IGN1cnJlbnQgdGhyZWFkIHRvIHRoZSBoZWFwIGFzIHRoaXMgcmVxdWlyZXMgYWNxdWlyaW5nIHR3
byBsb2Nrcy4gV2UgY2Fu4oCZdCAgbW92ZSB0aGlzIHRvIFZNRW50cnlTY29wZQorICAgICAgICBz
aW5jZSBpdOKAmXMgcG9zc2libGUgdG8gdXNlIHRoZSBBUEkgYW5kIEdDIHdpdGhvdXQgZXZlciBl
bnRlcmluZyB0aGUgVk0sIHdoaWNoIHdvdWxkIHJlc3VsdCBpbiB0aGUgY3VycmVudCB0aHJlYWQn
cyBzdGFjaworICAgICAgICBub3QgYmVpbmcgc2Nhbm5lZC4gSW5zdGVhZCwgd2UganVzdCByZW1l
bWJlciB0aGUgbGFzdCB0aHJlYWQgdGhhdCBhY3F1aXJlZCB0aGUgbG9jayBhbmQgc2tpcCB0aGUg
Y2FsbCBpZiB3ZeKAmXJlIHNlZWluZyB0aGUKKyAgICAgICAgc2FtZSB0aHJlYWQgYWdhaW4uIFRo
aXMgZ3JlYXRseSBhbW9ydGl6ZXMgdGhlIGNvc3QgYW5kIGdpdmVzIHVzIGFub3RoZXIgfjEwJToK
KworICAgICAgICBDVVJSRU5UX0FQSTogICAgICAgIEJhc2VsaW5lICAgQ2hhbmdlCisgICAgICAg
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgUmljaGFy
ZHNNb3N0bHlDOiAgICAgIDYybXMgICAgICAzMm1zCisgICAgICAgIFJpY2hhcmRzTW9zdGx5T2Jq
QzogIDMwM21zICAgICAyNjRtcworICAgICAgICBSaWNoYXJkc01vc3RseVN3aWZ0OiAyOTZtcyAg
ICAgMjYxbXMKKyAgICAgICAgUmljaGFyZHNTb21lQzogICAgICAgIDc2bXMgICAgICA0OW1zCisg
ICAgICAgIFJpY2hhcmRzU29tZU9iakM6ICAgIDE1Nm1zICAgICAxNTBtcworICAgICAgICBSaWNo
YXJkc1NvbWVTd2lmdDogICAyMDBtcyAgICAgMTk3bXMKKworICAgICAgICBVUENPTUlOR19BUEk6
ICAgICAgIEJhc2VsaW5lICAgQ2hhbmdlCisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgUmljaGFyZHNNb3N0bHlDOiAgICAgIDE5bXMgICAg
ICAxOW1zCisgICAgICAgIFJpY2hhcmRzTW9zdGx5T2JqQzogIDI4Mm1zICAgICAyNjBtcworICAg
ICAgICBSaWNoYXJkc01vc3RseVN3aWZ0OiAyODJtcyAgICAgMjY0bXMKKyAgICAgICAgUmljaGFy
ZHNTb21lQzogICAgICAgIDc5bXMgICAgICA0Nm1zCisgICAgICAgIFJpY2hhcmRzU29tZU9iakM6
ICAgIDE1Nm1zICAgICAxNDltcworICAgICAgICBSaWNoYXJkc1NvbWVTd2lmdDogICAxOTVtcyAg
ICAgMTk1bXMKKyAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgICAgICBTY29yZTogICAgICAgICAgICAgMzYuMjIxMSAgIDQzLjMzNjgKKworICAgICAg
ICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpkaWRBY3F1aXJl
TG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKToKKyAgICAgICAg
KiBydW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcDoK
KyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgorICAgICAgICAoSlND
OjpWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUpOgorCiAyMDIwLTEyLTExICBUYWRldSBaYWdh
bGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNzA2NjUp
OiB0ZXN0YXBpIGZhaWxpbmcgb24gSlNDIGJvdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZjNhNzQ5YjJjODcyYTk4ODFmZjMz
MGYwZmMyOGM4MWIwMjYxZDI4OC4uMzE5ODk1YjkzMTgxZTZiYWVkZDdlMTJmMjdlMzU3MzJmMDRj
OGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0xMi0xMiAgVGFkZXUgWmFnYWxsbyAgPHR6
YWdhbGxvQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHNvbWUgb2YgdGhlIHdvcmsgZnJvbSBK
U0xvY2sgdG8gVk1FbnRyeVNjb3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTk4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSB1bmlxdWUgSUQgdG8gdGhyZWFkcy4gVGhpcyB1aWQgaXMgdXNl
ZCBpbiBKU0xvY2sgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgd29yayB3aGVuIHRoZQorICAgICAgICBz
YW1lIHRocmVhZCB0aGF0IGxhc3QgYWNxdWlyZWQgdGhlIGxvY2sgaXMgcmVhY3F1aXJpbmcgaXQu
CisKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5n
Lmg6CisgICAgICAgIChXVEY6OlRocmVhZDo6dWlkIGNvbnN0KToKKyAgICAgICAgKFdURjo6VGhy
ZWFkOjpUaHJlYWQpOgorCiAyMDIwLTEyLTExICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRkIEV4cGVyaW1lbnRhbCBWb3JiaXMgc3Vw
cG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKaW5kZXggYWEzM2Iw
OWZjYmU5NWNlZjZlYjkzMzg1YTI5MjQzYTJjYWI3NWZkZS4uNjcyM2YyNGFiMGE1YjQ1ZTYwM2I5
YTRlMmU4MjNmMGUxYzJhYTlhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xv
Y2suY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNp
bmNsdWRlICJNYWNoaW5lU3RhY2tNYXJrZXIuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Byb2ZpbGVy
LmgiCi0jaW5jbHVkZSAiV2FzbUNhcGFiaWxpdGllcy5oIgotI2luY2x1ZGUgIldhc21NYWNoaW5l
VGhyZWFkcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGFja1BvaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvU2lnbmFscy5oPgpAQCAtMTM0LDkg
KzEzMiw2IEBAIHZvaWQgSlNMb2NrOjpkaWRBY3F1aXJlTG9jaygpCiAgICAgbV9lbnRyeUF0b21T
dHJpbmdUYWJsZSA9IHRocmVhZC5zZXRDdXJyZW50QXRvbVN0cmluZ1RhYmxlKG1fdm0tPmF0b21T
dHJpbmdUYWJsZSgpKTsKICAgICBBU1NFUlQobV9lbnRyeUF0b21TdHJpbmdUYWJsZSk7CiAKLSAg
ICBtX3ZtLT5zZXRMYXN0U3RhY2tUb3AodGhyZWFkLnNhdmVkTGFzdFN0YWNrVG9wKCkpOwotICAg
IEFTU0VSVCh0aHJlYWQuc3RhY2soKS5jb250YWlucyhtX3ZtLT5sYXN0U3RhY2tUb3AoKSkpOwot
CiAgICAgaWYgKG1fdm0tPmhlYXAuaGFzQWNjZXNzKCkpCiAgICAgICAgIG1fc2hvdWxkUmVsZWFz
ZUhlYXBBY2Nlc3MgPSBmYWxzZTsKICAgICBlbHNlIHsKQEAgLTE0NCwzMiArMTM5LDIzIEBAIHZv
aWQgSlNMb2NrOjpkaWRBY3F1aXJlTG9jaygpCiAgICAgICAgIG1fc2hvdWxkUmVsZWFzZUhlYXBB
Y2Nlc3MgPSB0cnVlOwogICAgIH0KIAotICAgIFJFTEVBU0VfQVNTRVJUKCFtX3ZtLT5zdGFja1Bv
aW50ZXJBdFZNRW50cnkoKSk7Ci0gICAgdm9pZCogcCA9IGN1cnJlbnRTdGFja1BvaW50ZXIoKTsK
LSAgICBtX3ZtLT5zZXRTdGFja1BvaW50ZXJBdFZNRW50cnkocCk7Ci0KLSAgICBpZiAobV92bS0+
aGVhcC5tYWNoaW5lVGhyZWFkcygpLmFkZEN1cnJlbnRUaHJlYWQoKSkgewotICAgICAgICBpZiAo
aXNLZXJuVENTTUF2YWlsYWJsZSgpKQotICAgICAgICAgICAgZW5hYmxlS2VyblRDU00oKTsKKyAg
ICBpZiAodGhyZWFkLnVpZCgpICE9IG1fbGFzdE93bmVyVGhyZWFkKSB7CisgICAgICAgIG1fbGFz
dE93bmVyVGhyZWFkID0gdGhyZWFkLnVpZCgpOworICAgICAgICBpZiAobV92bS0+aGVhcC5tYWNo
aW5lVGhyZWFkcygpLmFkZEN1cnJlbnRUaHJlYWQoKSkgeworICAgICAgICAgICAgaWYgKGlzS2Vy
blRDU01BdmFpbGFibGUoKSkKKyAgICAgICAgICAgICAgICBlbmFibGVLZXJuVENTTSgpOworICAg
ICAgICB9CiAgICAgfQogCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIGlmIChXYXNtOjpp
c1N1cHBvcnRlZCgpKQotICAgICAgICBXYXNtOjpzdGFydFRyYWNraW5nQ3VycmVudFRocmVhZCgp
OwotI2VuZGlmCi0KLSNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKLSAgICByZWdpc3RlclRocmVh
ZEZvck1hY2hFeGNlcHRpb25IYW5kbGluZyhUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0jZW5kaWYKLQog
ICAgIC8vIE5vdGU6IGV2ZXJ5dGhpbmcgYmVsb3cgbXVzdCBjb21lIGFmdGVyIGFkZEN1cnJlbnRU
aHJlYWQoKS4KICAgICBtX3ZtLT50cmFwcygpLm5vdGlmeUdyYWJBbGxMb2NrcygpOwotICAgIAot
ICAgIG1fdm0tPmZpcmVQcmltaXRpdmVHaWdhY2FnZUVuYWJsZWRJZk5lY2Vzc2FyeSgpOwogCiAj
aWYgRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQotICAgIGlmIChTYW1wbGluZ1Byb2ZpbGVyKiBz
YW1wbGluZ1Byb2ZpbGVyID0gbV92bS0+c2FtcGxpbmdQcm9maWxlcigpKQotICAgICAgICBzYW1w
bGluZ1Byb2ZpbGVyLT5ub3RpY2VKU0xvY2tBY3F1aXNpdGlvbigpOworICAgIHsKKyAgICAgICAg
U2FtcGxpbmdQcm9maWxlciogc2FtcGxpbmdQcm9maWxlciA9IG1fdm0tPnNhbXBsaW5nUHJvZmls
ZXIoKTsKKyAgICAgICAgaWYgKFVOTElLRUxZKHNhbXBsaW5nUHJvZmlsZXIpKQorICAgICAgICAg
ICAgc2FtcGxpbmdQcm9maWxlci0+bm90aWNlSlNMb2NrQWNxdWlzaXRpb24oKTsKKyAgICB9CiAj
ZW5kaWYKIH0KIApAQCAtMjA2LDcgKzE5Miw2IEBAIHZvaWQgSlNMb2NrOjp3aWxsUmVsZWFzZUxv
Y2soKQogICAgICAgICAgICAgdm0tPmNsZWFyTGFzdEV4Y2VwdGlvbigpOwogCiAgICAgICAgIHZt
LT5oZWFwLnJlbGVhc2VEZWxheWVkUmVsZWFzZWRPYmplY3RzKCk7Ci0gICAgICAgIHZtLT5zZXRT
dGFja1BvaW50ZXJBdFZNRW50cnkobnVsbHB0cik7CiAgICAgICAgIAogICAgICAgICBpZiAobV9z
aG91bGRSZWxlYXNlSGVhcEFjY2VzcykKICAgICAgICAgICAgIHZtLT5oZWFwLnJlbGVhc2VBY2Nl
c3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKaW5kZXggZWZiNGQ3ZWUx
MWUyNTZlNDliMjdkZTNkZDhkMmJhOTQzZjRkNTg2NC4uZmQ4MDE3M2E5MGMyYzdjY2I5ZTYxMTQ3
MjYxMjI3YjM3MDhlODVmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgK
QEAgLTE0NSw2ICsxNDUsNyBAQCBwcml2YXRlOgogICAgIC8vIGRpZmZlcmVudCB0aHJlYWQsIGFu
ZCBhbiBvcHRpb25hbCBpcyB2dWxuZXJhYmxlIHRvIHJhY2VzLgogICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MDQyI2M2CiAgICAgYm9vbCBtX2hh
c093bmVyVGhyZWFkIHsgZmFsc2UgfTsKKyAgICB1aW50MzJfdCBtX2xhc3RPd25lclRocmVhZCB7
IDAgfTsKICAgICBSZWZQdHI8VGhyZWFkPiBtX293bmVyVGhyZWFkOwogICAgIGludHB0cl90IG1f
bG9ja0NvdW50OwogICAgIHVuc2lnbmVkIG1fbG9ja0Ryb3BEZXB0aDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCmluZGV4IDZmYWU1NDk0NDVhMmYz
MjY5ZDAyZWM1ZDdkYTFmZjdjM2FkZGM5YmYuLmFmZjMxM2YyMWEzZDE4ZjZlOTRhN2NlNGM0Mjhk
MjNjYThhYTY1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
RW50cnlTY29wZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRy
eVNjb3BlLmNwcApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNs
dWRlICJTYW1wbGluZ1Byb2ZpbGVyLmgiCiAjaW5jbHVkZSAiVk0uaCIKKyNpbmNsdWRlICJXYXNt
Q2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAiV2FzbU1hY2hpbmVUaHJlYWRzLmgiCiAjaW5jbHVk
ZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgogCkBAIC01MSwx
MSArNTMsMzMgQEAgVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgdm0ud2F0Y2hkb2coKS0+ZW50ZXJlZFZN
KCk7CiAKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCi0gICAgICAgIGlmIChTYW1wbGlu
Z1Byb2ZpbGVyKiBzYW1wbGluZ1Byb2ZpbGVyID0gdm0uc2FtcGxpbmdQcm9maWxlcigpKQotICAg
ICAgICAgICAgc2FtcGxpbmdQcm9maWxlci0+bm90aWNlVk1FbnRyeSgpOworICAgICAgICB7Cisg
ICAgICAgICAgICBTYW1wbGluZ1Byb2ZpbGVyKiBzYW1wbGluZ1Byb2ZpbGVyID0gdm0uc2FtcGxp
bmdQcm9maWxlcigpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKHNhbXBsaW5nUHJvZmlsZXIp
KQorICAgICAgICAgICAgICAgIHNhbXBsaW5nUHJvZmlsZXItPm5vdGljZVZNRW50cnkoKTsKKyAg
ICAgICAgfQogI2VuZGlmCi0gICAgICAgIGlmIChPcHRpb25zOjp1c2VUcmFjZVBvaW50cygpKQor
ICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlVHJhY2VQb2ludHMoKSkpCiAgICAgICAg
ICAgICB0cmFjZVBvaW50KFZNRW50cnlTY29wZVN0YXJ0KTsKKworICAgICAgICBUaHJlYWQmIHRo
cmVhZCA9IFRocmVhZDo6Y3VycmVudCgpOworICAgICAgICB2bS5zZXRMYXN0U3RhY2tUb3AodGhy
ZWFkLnNhdmVkTGFzdFN0YWNrVG9wKCkpOworICAgICAgICBBU1NFUlQodGhyZWFkLnN0YWNrKCku
Y29udGFpbnModm0ubGFzdFN0YWNrVG9wKCkpKTsKKworICAgICAgICBSRUxFQVNFX0FTU0VSVCgh
dm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5KCkpOworICAgICAgICB2b2lkKiBwID0gY3VycmVudFN0
YWNrUG9pbnRlcigpOworICAgICAgICB2bS5zZXRTdGFja1BvaW50ZXJBdFZNRW50cnkocCk7CisK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgICAgIGlmIChXYXNtOjppc1N1cHBvcnRlZCgp
KQorICAgICAgICAgICAgV2FzbTo6c3RhcnRUcmFja2luZ0N1cnJlbnRUaHJlYWQoKTsKKyNlbmRp
ZgorCisjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCisgICAgICAgIHJlZ2lzdGVyVGhyZWFkRm9y
TWFjaEV4Y2VwdGlvbkhhbmRsaW5nKFRocmVhZDo6Y3VycmVudCgpKTsKKyNlbmRpZgorCisgICAg
ICAgIHZtLmZpcmVQcmltaXRpdmVHaWdhY2FnZUVuYWJsZWRJZk5lY2Vzc2FyeSgpOwogICAgIH0K
IAogICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOwpAQCAtODUsNiArMTA5LDggQEAgVk1FbnRy
eVNjb3BlOjp+Vk1FbnRyeVNjb3BlKCkKICAgICAgICAgbGlzdGVuZXIoKTsKIAogICAgIG1fdm0u
Y2xlYXJTY3JhdGNoQnVmZmVycygpOworCisgICAgbV92bS5zZXRTdGFja1BvaW50ZXJBdFZNRW50
cnkobnVsbHB0cik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKaW5k
ZXggNWQ3ZDZkM2IzZGQ2MDc1Y2JlMzlhNjIzZTAzZTI3YTVlYzE3Nzg0Zi4uYzAwYWIyMmFlYzE4
YmVkMTlkMTU1OGU4ZjI5ZDkxMWFiNjc4ODNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC02NCw2
ICs2NCw4IEBAIHN0YXRpYyBPcHRpb25hbDxzaXplX3Q+IHN0YWNrU2l6ZShUaHJlYWRUeXBlIHRo
cmVhZFR5cGUpCiAjZW5kaWYKIH0KIAorc3RkOjphdG9taWM8dWludDMyX3Q+IFRocmVhZDo6c191
aWQgeyAwIH07CisKIHN0cnVjdCBUaHJlYWQ6Ok5ld1RocmVhZENvbnRleHQgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8TmV3VGhyZWFkQ29udGV4dD4gewogcHVibGljOgogICAgIE5ld1Ro
cmVhZENvbnRleHQoY29uc3QgY2hhciogbmFtZSwgRnVuY3Rpb248dm9pZCgpPiYmIGVudHJ5UG9p
bnQsIFJlZjxUaHJlYWQ+JiYgdGhyZWFkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCA3NmYwMjhjZmE3MDM3
ZTljM2E5YjcxMzYzMWVmNzM2ZGM3MzQyODQ1Li5iNDRiNjU1Yjc4YzViNzgzOThlYTBmZDA2MjU5
YjhhMjQ0NTQxY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaApAQCAtOTIsNiArOTIsNyBAQCBlbnVtIGNsYXNz
IFRocmVhZFR5cGUgOiB1aW50OF90IHsKIH07CiAKIGNsYXNzIFRocmVhZCA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxUaHJlYWQ+IHsKKyAgICBzdGF0aWMgc3RkOjphdG9taWM8dWludDMy
X3Q+IHNfdWlkOwogcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBUaHJlYWRHcm91cDsKICAgICBm
cmllbmQgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZSgpOwpAQCAtMTExLDYgKzEx
Miw4IEBAIHB1YmxpYzoKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBudW1iZXJP
ZlRocmVhZEdyb3VwcygpOwogCisgICAgdWludDMyX3QgdWlkKCkgY29uc3QgeyByZXR1cm4gbV91
aWQ7IH0KKwogI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gUmV0dXJucyBUaHJlYWRJZGVudGlmaWVy
IGRpcmVjdGx5LiBJdCBpcyB1c2VmdWwgaWYgdGhlIHVzZXIgb25seSBjYXJlcyBhYm91dCBpZGVu
dGl0eQogICAgIC8vIG9mIHRocmVhZHMuIEF0IHRoYXQgdGltZSwgdXNlcnMgc2hvdWxkIGtub3cg
dGhhdCBob2xkaW5nIHRoaXMgVGhyZWFkSWRlbnRpZmllciBkb2VzIG5vdCBlbnN1cmUKQEAgLTMy
NSw2ICszMjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gTG9jayAmIFBhcmtpbmdMb3QgcmVseSBv
biBUaHJlYWRTcGVjaWZpYy4gQnV0IFRocmVhZCBvYmplY3QgY2FuIGJlIGRlc3Ryb3llZCBldmVu
IGFmdGVyIFRocmVhZFNwZWNpZmljIHRoaW5ncyBhcmUgZGVzdHJveWVkLgogICAgIC8vIFVzZSBX
b3JkTG9jayBzaW5jZSBXb3JkTG9jayBkb2VzIG5vdCBkZXBlbmQgb24gVGhyZWFkU3BlY2lmaWMg
YW5kIHRoaXMgIlRocmVhZCIuCiAgICAgV29yZExvY2sgbV9tdXRleDsKKyAgICB1aW50MzJfdCBt
X3VpZDsKICAgICBTdGFja0JvdW5kcyBtX3N0YWNrIHsgU3RhY2tCb3VuZHM6OmVtcHR5Qm91bmRz
KCkgfTsKICAgICBIYXNoTWFwPFRocmVhZEdyb3VwKiwgc3RkOjp3ZWFrX3B0cjxUaHJlYWRHcm91
cD4+IG1fdGhyZWFkR3JvdXBNYXA7CiAgICAgUGxhdGZvcm1UaHJlYWRIYW5kbGUgbV9oYW5kbGU7
CkBAIC0zNjIsNiArMzY2LDcgQEAgaW5saW5lIFRocmVhZDo6VGhyZWFkKCkKICAgICAsIG1faXNE
ZXN0cm95ZWRPbmNlKGZhbHNlKQogICAgICwgbV9pc0NvbXBpbGF0aW9uVGhyZWFkKGZhbHNlKQog
ICAgICwgbV9nY1RocmVhZFR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdDVGhyZWFkVHlwZTo6
Tm9uZSkpCisgICAgLCBtX3VpZCgrK3NfdWlkKQogewogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416129</attachid>
            <date>2020-12-13 17:22:55 -0800</date>
            <delta_ts>2020-12-14 10:59:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219830-20201213172254.patch</filename>
            <type>text/plain</type>
            <size>9839</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTlhYWYzOTlmY2M1NjJmYWYxMzFmMjc2ODRjODUwMjgyMzBkMDJiLi5lZTc1MjlmZTkyZTg0NWUw
Y2VkZTljNzI5Y2Q0MDhhNTc3YzM3NTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMC0xMi0xMiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBNb3ZlIHNvbWUgb2YgdGhlIHdvcmsgZnJvbSBKU0xvY2sgdG8gVk1FbnRy
eVNjb3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTk4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBtb3ZlIHNldmVyYWwgdGhpbmdzIGZyb20gSlNMb2NrIHRvIFZNRW50cnlTY29wZSB0aGF0IGNv
dWxkIG9ubHkgYmUgb2JzZXJ2ZWQgYWZ0ZXIgd2UgZW50ZXJlZCB0aGUgVk06CisgICAgICAgIC0g
V2FzbVRocmVhZHM6IG9ubHkgdXNlZCB3aGVuIHRpZXJpbmcgdXAgd2FzbSwgc28gVk1FbnRyeVNj
b3BlIHdvdWxkIGhhdmUgZXhlY3V0ZWQKKyAgICAgICAgLSByZWdpc3RlclRocmVhZEZvck1hY2hF
eGNlcHRpb25IYW5kbGluZzogVGhlIG1hY2ggZXhjZXB0aW9uIGhhbmRsZXJzIGFyZSB1c2VkIGZv
cjoKKyAgICAgICAgICAgIC0gc2lnaWxsIGNyYXNoIGFuYWx5emVyOiBvbmx5IHJlbGV2YW50IGFm
dGVyIHdlIGVudGVyIHRoZSB2bQorICAgICAgICAgICAgLSB3YXNtIGZhdWx0IHNpZ25hbCBoYW5k
bGVyOiBzYW1lLCB3ZSBtdXN0IGJlIGV4ZWN1dGluZyB3YXNtIGFuZCB0aGVyZWZvcmUgVk1FbnRy
eVNjb3BlIHdpbGwgaGF2ZSBleGVjdXRlZC4KKyAgICAgICAgICAgIC0gVk1UcmFwczogb25seSBo
YW5kbGVzIGZhdWx0cyBpbiBKSVQgY29kZQorICAgICAgICAtIGZpcmVQcmltaXRpdmVHaWdhY2Fn
ZUVuYWJsZWRJZk5lY2Vzc2FyeTogT25seSB3YXRjaGVkIGJ5IHRoZSBKSVRzCisKKyAgICAgICAg
VGhpcyBnaXZlcyBpcyBhIH4xMCUgaW1wcm92ZW1lbnQgb24gQVBJQmVuY2ggKHNjb3JlIGNoYW5n
ZSBmcm9tIH4zNi4zIHRvIH4zOS45KSwgYnV0IGFzIGl0IHR1cm5zIG91dCB0aGUgbW9zdCBleHBl
bnNpdmUKKyAgICAgICAgY2FsbCBpcyBhZGRpbmcgdGhlIGN1cnJlbnQgdGhyZWFkIHRvIHRoZSBo
ZWFwIGFzIHRoaXMgcmVxdWlyZXMgYWNxdWlyaW5nIHR3byBsb2Nrcy4gV2UgY2FuJ3QgIG1vdmUg
dGhpcyB0byBWTUVudHJ5U2NvcGUKKyAgICAgICAgc2luY2UgaXQncyBwb3NzaWJsZSB0byB1c2Ug
dGhlIEFQSSBhbmQgR0Mgd2l0aG91dCBldmVyIGVudGVyaW5nIHRoZSBWTSwgd2hpY2ggd291bGQg
cmVzdWx0IGluIHRoZSBjdXJyZW50IHRocmVhZCdzIHN0YWNrCisgICAgICAgIG5vdCBiZWluZyBz
Y2FubmVkLiBJbnN0ZWFkLCB3ZSBqdXN0IHJlbWVtYmVyIHRoZSBsYXN0IHRocmVhZCB0aGF0IGFj
cXVpcmVkIHRoZSBsb2NrIGFuZCBza2lwIHRoZSBjYWxsIGlmIHdlJ3JlIHNlZWluZyB0aGUKKyAg
ICAgICAgc2FtZSB0aHJlYWQgYWdhaW4uIFRoaXMgZ3JlYXRseSBhbW9ydGl6ZXMgdGhlIGNvc3Qg
YW5kIGdpdmVzIHVzIGFub3RoZXIgfjEwJToKKworICAgICAgICBDVVJSRU5UX0FQSTogICAgICAg
IEJhc2VsaW5lICAgQ2hhbmdlCisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAgUmljaGFyZHNNb3N0bHlDOiAgICAgIDYybXMgICAgICAzMm1z
CisgICAgICAgIFJpY2hhcmRzTW9zdGx5T2JqQzogIDMwM21zICAgICAyNjRtcworICAgICAgICBS
aWNoYXJkc01vc3RseVN3aWZ0OiAyOTZtcyAgICAgMjYxbXMKKyAgICAgICAgUmljaGFyZHNTb21l
QzogICAgICAgIDc2bXMgICAgICA0OW1zCisgICAgICAgIFJpY2hhcmRzU29tZU9iakM6ICAgIDE1
Nm1zICAgICAxNTBtcworICAgICAgICBSaWNoYXJkc1NvbWVTd2lmdDogICAyMDBtcyAgICAgMTk3
bXMKKworICAgICAgICBVUENPTUlOR19BUEk6ICAgICAgIEJhc2VsaW5lICAgQ2hhbmdlCisgICAg
ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgUmlj
aGFyZHNNb3N0bHlDOiAgICAgIDE5bXMgICAgICAxOW1zCisgICAgICAgIFJpY2hhcmRzTW9zdGx5
T2JqQzogIDI4Mm1zICAgICAyNjBtcworICAgICAgICBSaWNoYXJkc01vc3RseVN3aWZ0OiAyODJt
cyAgICAgMjY0bXMKKyAgICAgICAgUmljaGFyZHNTb21lQzogICAgICAgIDc5bXMgICAgICA0Nm1z
CisgICAgICAgIFJpY2hhcmRzU29tZU9iakM6ICAgIDE1Nm1zICAgICAxNDltcworICAgICAgICBS
aWNoYXJkc1NvbWVTd2lmdDogICAxOTVtcyAgICAgMTk1bXMKKyAgICAgICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBTY29yZTogICAgICAgICAgICAg
MzYuMjIxMSAgIDQzLjMzNjgKKworICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNMb2NrOjpkaWRBY3F1aXJlTG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6
d2lsbFJlbGVhc2VMb2NrKToKKyAgICAgICAgKiBydW50aW1lL0pTTG9jay5oOgorICAgICAgICAq
IHJ1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpW
TUVudHJ5U2NvcGUpOgorICAgICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUp
OgorCiAyMDIwLTEyLTExICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04gKHIyNzA2NjUpOiB0ZXN0YXBpIGZhaWxpbmcgb24gSlNDIGJvdHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZjNhNzQ5YjJjODcyYTk4ODFmZjMzMGYwZmMyOGM4MWIwMjYxZDI4OC4uMzE5ODk1Yjkz
MTgxZTZiYWVkZDdlMTJmMjdlMzU3MzJmMDRjOGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAy
MC0xMi0xMiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KKworICAgICAgICBN
b3ZlIHNvbWUgb2YgdGhlIHdvcmsgZnJvbSBKU0xvY2sgdG8gVk1FbnRyeVNjb3BlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk4MzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB1bmlxdWUgSUQg
dG8gdGhyZWFkcy4gVGhpcyB1aWQgaXMgdXNlZCBpbiBKU0xvY2sgdG8gYXZvaWQgdW5uZWNlc3Nh
cnkgd29yayB3aGVuIHRoZQorICAgICAgICBzYW1lIHRocmVhZCB0aGF0IGxhc3QgYWNxdWlyZWQg
dGhlIGxvY2sgaXMgcmVhY3F1aXJpbmcgaXQuCisKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmNw
cDoKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6CisgICAgICAgIChXVEY6OlRocmVhZDo6dWlk
IGNvbnN0KToKKyAgICAgICAgKFdURjo6VGhyZWFkOjpUaHJlYWQpOgorCiAyMDIwLTEyLTExICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0g
QWRkIEV4cGVyaW1lbnRhbCBWb3JiaXMgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTG9jay5jcHAKaW5kZXggYWEzM2IwOWZjYmU5NWNlZjZlYjkzMzg1YTI5MjQzYTJjYWI3
NWZkZS4uY2U2NmY1OTVmOTMwNWU1ZWJlNTE0MjAyMWI3Y2M1ZTc5ZDY1MGQxNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJNYWNoaW5lU3RhY2tNYXJrZXIuaCIK
ICNpbmNsdWRlICJTYW1wbGluZ1Byb2ZpbGVyLmgiCi0jaW5jbHVkZSAiV2FzbUNhcGFiaWxpdGll
cy5oIgotI2luY2x1ZGUgIldhc21NYWNoaW5lVGhyZWFkcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGFj
a1BvaW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Ro
cmVhZHMvU2lnbmFscy5oPgpAQCAtMTQ4LDI4ICsxNDYsMjMgQEAgdm9pZCBKU0xvY2s6OmRpZEFj
cXVpcmVMb2NrKCkKICAgICB2b2lkKiBwID0gY3VycmVudFN0YWNrUG9pbnRlcigpOwogICAgIG1f
dm0tPnNldFN0YWNrUG9pbnRlckF0Vk1FbnRyeShwKTsKIAotICAgIGlmIChtX3ZtLT5oZWFwLm1h
Y2hpbmVUaHJlYWRzKCkuYWRkQ3VycmVudFRocmVhZCgpKSB7Ci0gICAgICAgIGlmIChpc0tlcm5U
Q1NNQXZhaWxhYmxlKCkpCi0gICAgICAgICAgICBlbmFibGVLZXJuVENTTSgpOworICAgIGlmICh0
aHJlYWQudWlkKCkgIT0gbV9sYXN0T3duZXJUaHJlYWQpIHsKKyAgICAgICAgbV9sYXN0T3duZXJU
aHJlYWQgPSB0aHJlYWQudWlkKCk7CisgICAgICAgIGlmIChtX3ZtLT5oZWFwLm1hY2hpbmVUaHJl
YWRzKCkuYWRkQ3VycmVudFRocmVhZCgpKSB7CisgICAgICAgICAgICBpZiAoaXNLZXJuVENTTUF2
YWlsYWJsZSgpKQorICAgICAgICAgICAgICAgIGVuYWJsZUtlcm5UQ1NNKCk7CisgICAgICAgIH0K
ICAgICB9CiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgaWYgKFdhc206OmlzU3VwcG9y
dGVkKCkpCi0gICAgICAgIFdhc206OnN0YXJ0VHJhY2tpbmdDdXJyZW50VGhyZWFkKCk7Ci0jZW5k
aWYKLQotI2lmIEhBVkUoTUFDSF9FWENFUFRJT05TKQotICAgIHJlZ2lzdGVyVGhyZWFkRm9yTWFj
aEV4Y2VwdGlvbkhhbmRsaW5nKFRocmVhZDo6Y3VycmVudCgpKTsKLSNlbmRpZgotCiAgICAgLy8g
Tm90ZTogZXZlcnl0aGluZyBiZWxvdyBtdXN0IGNvbWUgYWZ0ZXIgYWRkQ3VycmVudFRocmVhZCgp
LgogICAgIG1fdm0tPnRyYXBzKCkubm90aWZ5R3JhYkFsbExvY2tzKCk7Ci0gICAgCi0gICAgbV92
bS0+ZmlyZVByaW1pdGl2ZUdpZ2FjYWdlRW5hYmxlZElmTmVjZXNzYXJ5KCk7CiAKICNpZiBFTkFC
TEUoU0FNUExJTkdfUFJPRklMRVIpCi0gICAgaWYgKFNhbXBsaW5nUHJvZmlsZXIqIHNhbXBsaW5n
UHJvZmlsZXIgPSBtX3ZtLT5zYW1wbGluZ1Byb2ZpbGVyKCkpCi0gICAgICAgIHNhbXBsaW5nUHJv
ZmlsZXItPm5vdGljZUpTTG9ja0FjcXVpc2l0aW9uKCk7CisgICAgeworICAgICAgICBTYW1wbGlu
Z1Byb2ZpbGVyKiBzYW1wbGluZ1Byb2ZpbGVyID0gbV92bS0+c2FtcGxpbmdQcm9maWxlcigpOwor
ICAgICAgICBpZiAoVU5MSUtFTFkoc2FtcGxpbmdQcm9maWxlcikpCisgICAgICAgICAgICBzYW1w
bGluZ1Byb2ZpbGVyLT5ub3RpY2VKU0xvY2tBY3F1aXNpdGlvbigpOworICAgIH0KICNlbmRpZgog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCmluZGV4IGVmYjRkN2VlMTFl
MjU2ZTQ5YjI3ZGUzZGQ4ZDJiYTk0M2Y0ZDU4NjQuLmZkODAxNzNhOTBjMmM3Y2NiOWU2MTE0NzI2
MTIyN2IzNzA4ZTg1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCkBA
IC0xNDUsNiArMTQ1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBkaWZmZXJlbnQgdGhyZWFkLCBhbmQg
YW4gb3B0aW9uYWwgaXMgdnVsbmVyYWJsZSB0byByYWNlcy4KICAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTA0MiNjNgogICAgIGJvb2wgbV9oYXNP
d25lclRocmVhZCB7IGZhbHNlIH07CisgICAgdWludDMyX3QgbV9sYXN0T3duZXJUaHJlYWQgeyAw
IH07CiAgICAgUmVmUHRyPFRocmVhZD4gbV9vd25lclRocmVhZDsKICAgICBpbnRwdHJfdCBtX2xv
Y2tDb3VudDsKICAgICB1bnNpZ25lZCBtX2xvY2tEcm9wRGVwdGg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAppbmRleCA2ZmFlNTQ5NDQ1YTJmMzI2
OWQwMmVjNWQ3ZGExZmY3YzNhZGRjOWJmLi40OTcyOTgzOGEzNmQ1MGQxODc2NmFmMTVkODNmODI5
Y2IwN2MzNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVu
dHJ5U2NvcGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlT
Y29wZS5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVk
ZSAiU2FtcGxpbmdQcm9maWxlci5oIgogI2luY2x1ZGUgIlZNLmgiCisjaW5jbHVkZSAiV2FzbUNh
cGFiaWxpdGllcy5oIgorI2luY2x1ZGUgIldhc21NYWNoaW5lVGhyZWFkcy5oIgogI2luY2x1ZGUg
IldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KIApAQCAtNDEsNiAr
NDMsMTcgQEAgVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogICAgIGlmICghdm0uZW50cnlTY29wZSkgewogICAgICAgICB2bS5l
bnRyeVNjb3BlID0gdGhpczsKIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICAgICAgaWYg
KFdhc206OmlzU3VwcG9ydGVkKCkpCisgICAgICAgICAgICBXYXNtOjpzdGFydFRyYWNraW5nQ3Vy
cmVudFRocmVhZCgpOworI2VuZGlmCisKKyNpZiBIQVZFKE1BQ0hfRVhDRVBUSU9OUykKKyAgICAg
ICAgcmVnaXN0ZXJUaHJlYWRGb3JNYWNoRXhjZXB0aW9uSGFuZGxpbmcoVGhyZWFkOjpjdXJyZW50
KCkpOworI2VuZGlmCisKKyAgICAgICAgdm0uZmlyZVByaW1pdGl2ZUdpZ2FjYWdlRW5hYmxlZElm
TmVjZXNzYXJ5KCk7CisKICAgICAgICAgLy8gUmVzZXQgdGhlIGRhdGUgY2FjaGUgYmV0d2VlbiBK
UyBpbnZvY2F0aW9ucyB0byBmb3JjZSB0aGUgVk0gdG8KICAgICAgICAgLy8gb2JzZXJ2ZSB0aW1l
IHpvbmUgY2hhbmdlcy4KICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjbGVhciBpdCBvbmx5
IHdoZW4gd2Uga25vdyB0aGUgdGltZXpvbmUgaGFzIGJlZW4gY2hhbmdlZC4KQEAgLTUxLDEwICs2
NCwxMyBAQCBWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICB2bS53YXRjaGRvZygpLT5lbnRlcmVkVk0oKTsK
IAogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKLSAgICAgICAgaWYgKFNhbXBsaW5nUHJv
ZmlsZXIqIHNhbXBsaW5nUHJvZmlsZXIgPSB2bS5zYW1wbGluZ1Byb2ZpbGVyKCkpCi0gICAgICAg
ICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5ub3RpY2VWTUVudHJ5KCk7CisgICAgICAgIHsKKyAgICAg
ICAgICAgIFNhbXBsaW5nUHJvZmlsZXIqIHNhbXBsaW5nUHJvZmlsZXIgPSB2bS5zYW1wbGluZ1By
b2ZpbGVyKCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoc2FtcGxpbmdQcm9maWxlcikpCisg
ICAgICAgICAgICAgICAgc2FtcGxpbmdQcm9maWxlci0+bm90aWNlVk1FbnRyeSgpOworICAgICAg
ICB9CiAjZW5kaWYKLSAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVRyYWNlUG9pbnRzKCkpCisgICAg
ICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VUcmFjZVBvaW50cygpKSkKICAgICAgICAgICAg
IHRyYWNlUG9pbnQoVk1FbnRyeVNjb3BlU3RhcnQpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAK
aW5kZXggNWQ3ZDZkM2IzZGQ2MDc1Y2JlMzlhNjIzZTAzZTI3YTVlYzE3Nzg0Zi4uYzAwYWIyMmFl
YzE4YmVkMTlkMTU1OGU4ZjI5ZDkxMWFiNjc4ODNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC02
NCw2ICs2NCw4IEBAIHN0YXRpYyBPcHRpb25hbDxzaXplX3Q+IHN0YWNrU2l6ZShUaHJlYWRUeXBl
IHRocmVhZFR5cGUpCiAjZW5kaWYKIH0KIAorc3RkOjphdG9taWM8dWludDMyX3Q+IFRocmVhZDo6
c191aWQgeyAwIH07CisKIHN0cnVjdCBUaHJlYWQ6Ok5ld1RocmVhZENvbnRleHQgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV3VGhyZWFkQ29udGV4dD4gewogcHVibGljOgogICAgIE5l
d1RocmVhZENvbnRleHQoY29uc3QgY2hhciogbmFtZSwgRnVuY3Rpb248dm9pZCgpPiYmIGVudHJ5
UG9pbnQsIFJlZjxUaHJlYWQ+JiYgdGhyZWFkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCA3NmYwMjhjZmE3
MDM3ZTljM2E5YjcxMzYzMWVmNzM2ZGM3MzQyODQ1Li4yN2I1MjU5NTQ2MjJiMDc4OWFhMWQ2NzMz
NjQwZmI3ODUyNTFkMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaApAQCAtOTIsNiArOTIsNyBAQCBlbnVtIGNs
YXNzIFRocmVhZFR5cGUgOiB1aW50OF90IHsKIH07CiAKIGNsYXNzIFRocmVhZCA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWQ+IHsKKyAgICBzdGF0aWMgc3RkOjphdG9taWM8dWlu
dDMyX3Q+IHNfdWlkOwogcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBUaHJlYWRHcm91cDsKICAg
ICBmcmllbmQgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZSgpOwpAQCAtMTExLDYg
KzExMiw4IEBAIHB1YmxpYzoKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBudW1i
ZXJPZlRocmVhZEdyb3VwcygpOwogCisgICAgdWludDMyX3QgdWlkKCkgY29uc3QgeyByZXR1cm4g
bV91aWQ7IH0KKwogI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gUmV0dXJucyBUaHJlYWRJZGVudGlm
aWVyIGRpcmVjdGx5LiBJdCBpcyB1c2VmdWwgaWYgdGhlIHVzZXIgb25seSBjYXJlcyBhYm91dCBp
ZGVudGl0eQogICAgIC8vIG9mIHRocmVhZHMuIEF0IHRoYXQgdGltZSwgdXNlcnMgc2hvdWxkIGtu
b3cgdGhhdCBob2xkaW5nIHRoaXMgVGhyZWFkSWRlbnRpZmllciBkb2VzIG5vdCBlbnN1cmUKQEAg
LTMyOCw2ICszMzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgU3RhY2tCb3VuZHMgbV9zdGFjayB7IFN0
YWNrQm91bmRzOjplbXB0eUJvdW5kcygpIH07CiAgICAgSGFzaE1hcDxUaHJlYWRHcm91cCosIHN0
ZDo6d2Vha19wdHI8VGhyZWFkR3JvdXA+PiBtX3RocmVhZEdyb3VwTWFwOwogICAgIFBsYXRmb3Jt
VGhyZWFkSGFuZGxlIG1faGFuZGxlOworICAgIHVpbnQzMl90IG1fdWlkOwogI2lmIE9TKFdJTkRP
V1MpCiAgICAgVGhyZWFkSWRlbnRpZmllciBtX2lkIHsgMCB9OwogI2VsaWYgT1MoREFSV0lOKQpA
QCAtMzYyLDYgKzM2Niw3IEBAIGlubGluZSBUaHJlYWQ6OlRocmVhZCgpCiAgICAgLCBtX2lzRGVz
dHJveWVkT25jZShmYWxzZSkKICAgICAsIG1faXNDb21waWxhdGlvblRocmVhZChmYWxzZSkKICAg
ICAsIG1fZ2NUaHJlYWRUeXBlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihHQ1RocmVhZFR5cGU6Ok5v
bmUpKQorICAgICwgbV91aWQoKytzX3VpZCkKIHsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416173</attachid>
            <date>2020-12-14 10:59:57 -0800</date>
            <delta_ts>2020-12-14 11:48:04 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219830-20201214105956.patch</filename>
            <type>text/plain</type>
            <size>9969</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTlhYWYzOTlmY2M1NjJmYWYxMzFmMjc2ODRjODUwMjgyMzBkMDJiLi4yMzdkYjg2MWZjMTVhOGMx
YmM1MjZkZGU2ZTI0MjRmMjM1MmY3NjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMC0xMi0xMiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBNb3ZlIHNvbWUgb2YgdGhlIHdvcmsgZnJvbSBKU0xvY2sgdG8gVk1FbnRy
eVNjb3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTk4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBXZSBtb3Zl
IHNldmVyYWwgdGhpbmdzIGZyb20gSlNMb2NrIHRvIFZNRW50cnlTY29wZSB0aGF0IGNvdWxkIG9u
bHkgYmUgb2JzZXJ2ZWQgYWZ0ZXIgd2UgZW50ZXJlZCB0aGUgVk06CisgICAgICAgIC0gV2FzbVRo
cmVhZHM6IG9ubHkgdXNlZCB3aGVuIHRpZXJpbmcgdXAgd2FzbSwgc28gVk1FbnRyeVNjb3BlIHdv
dWxkIGhhdmUgZXhlY3V0ZWQKKyAgICAgICAgLSByZWdpc3RlclRocmVhZEZvck1hY2hFeGNlcHRp
b25IYW5kbGluZzogVGhlIG1hY2ggZXhjZXB0aW9uIGhhbmRsZXJzIGFyZSB1c2VkIGZvcjoKKyAg
ICAgICAgICAgIC0gc2lnaWxsIGNyYXNoIGFuYWx5emVyOiBvbmx5IHJlbGV2YW50IGFmdGVyIHdl
IGVudGVyIHRoZSB2bQorICAgICAgICAgICAgLSB3YXNtIGZhdWx0IHNpZ25hbCBoYW5kbGVyOiBz
YW1lLCB3ZSBtdXN0IGJlIGV4ZWN1dGluZyB3YXNtIGFuZCB0aGVyZWZvcmUgVk1FbnRyeVNjb3Bl
IHdpbGwgaGF2ZSBleGVjdXRlZC4KKyAgICAgICAgICAgIC0gVk1UcmFwczogb25seSBoYW5kbGVz
IGZhdWx0cyBpbiBKSVQgY29kZQorICAgICAgICAtIGZpcmVQcmltaXRpdmVHaWdhY2FnZUVuYWJs
ZWRJZk5lY2Vzc2FyeTogT25seSB3YXRjaGVkIGJ5IHRoZSBKSVRzCisKKyAgICAgICAgVGhpcyBn
aXZlcyBpcyBhIH4xMCUgaW1wcm92ZW1lbnQgb24gQVBJQmVuY2ggKHNjb3JlIGNoYW5nZSBmcm9t
IH4zNi4zIHRvIH4zOS45KSwgYnV0IGFzIGl0IHR1cm5zIG91dCB0aGUgbW9zdCBleHBlbnNpdmUK
KyAgICAgICAgY2FsbCBpcyBhZGRpbmcgdGhlIGN1cnJlbnQgdGhyZWFkIHRvIHRoZSBoZWFwIGFz
IHRoaXMgcmVxdWlyZXMgYWNxdWlyaW5nIHR3byBsb2Nrcy4gV2UgY2FuJ3QgIG1vdmUgdGhpcyB0
byBWTUVudHJ5U2NvcGUKKyAgICAgICAgc2luY2UgaXQncyBwb3NzaWJsZSB0byB1c2UgdGhlIEFQ
SSBhbmQgR0Mgd2l0aG91dCBldmVyIGVudGVyaW5nIHRoZSBWTSwgd2hpY2ggd291bGQgcmVzdWx0
IGluIHRoZSBjdXJyZW50IHRocmVhZCdzIHN0YWNrCisgICAgICAgIG5vdCBiZWluZyBzY2FubmVk
LiBJbnN0ZWFkLCB3ZSBqdXN0IHJlbWVtYmVyIHRoZSBsYXN0IHRocmVhZCB0aGF0IGFjcXVpcmVk
IHRoZSBsb2NrIGFuZCBza2lwIHRoZSBjYWxsIGlmIHdlJ3JlIHNlZWluZyB0aGUKKyAgICAgICAg
c2FtZSB0aHJlYWQgYWdhaW4uIFRoaXMgZ3JlYXRseSBhbW9ydGl6ZXMgdGhlIGNvc3QgYW5kIGdp
dmVzIHVzIGFub3RoZXIgfjEwJToKKworICAgICAgICBDVVJSRU5UX0FQSTogICAgICAgIEJhc2Vs
aW5lICAgQ2hhbmdlCisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAgUmljaGFyZHNNb3N0bHlDOiAgICAgIDYybXMgICAgICAzMm1zCisgICAg
ICAgIFJpY2hhcmRzTW9zdGx5T2JqQzogIDMwM21zICAgICAyNjRtcworICAgICAgICBSaWNoYXJk
c01vc3RseVN3aWZ0OiAyOTZtcyAgICAgMjYxbXMKKyAgICAgICAgUmljaGFyZHNTb21lQzogICAg
ICAgIDc2bXMgICAgICA0OW1zCisgICAgICAgIFJpY2hhcmRzU29tZU9iakM6ICAgIDE1Nm1zICAg
ICAxNTBtcworICAgICAgICBSaWNoYXJkc1NvbWVTd2lmdDogICAyMDBtcyAgICAgMTk3bXMKKwor
ICAgICAgICBVUENPTUlOR19BUEk6ICAgICAgIEJhc2VsaW5lICAgQ2hhbmdlCisgICAgICAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgUmljaGFyZHNN
b3N0bHlDOiAgICAgIDE5bXMgICAgICAxOW1zCisgICAgICAgIFJpY2hhcmRzTW9zdGx5T2JqQzog
IDI4Mm1zICAgICAyNjBtcworICAgICAgICBSaWNoYXJkc01vc3RseVN3aWZ0OiAyODJtcyAgICAg
MjY0bXMKKyAgICAgICAgUmljaGFyZHNTb21lQzogICAgICAgIDc5bXMgICAgICA0Nm1zCisgICAg
ICAgIFJpY2hhcmRzU29tZU9iakM6ICAgIDE1Nm1zICAgICAxNDltcworICAgICAgICBSaWNoYXJk
c1NvbWVTd2lmdDogICAxOTVtcyAgICAgMTk1bXMKKyAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBTY29yZTogICAgICAgICAgICAgMzYuMjIx
MSAgIDQzLjMzNjgKKworICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNMb2NrOjpkaWRBY3F1aXJlTG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6d2lsbFJl
bGVhc2VMb2NrKToKKyAgICAgICAgKiBydW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRp
bWUvVk1FbnRyeVNjb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5
U2NvcGUpOgorICAgICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUpOgorCiAy
MDIwLTEyLTExICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKHIyNzA2NjUpOiB0ZXN0YXBpIGZhaWxpbmcgb24gSlNDIGJvdHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
ZjNhNzQ5YjJjODcyYTk4ODFmZjMzMGYwZmMyOGM4MWIwMjYxZDI4OC4uOTVkMDg0NmFkMDg3ODYy
NjhkYzE4YmU5ZWU0NTFiMzg4YjI0ZWNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0xMi0x
MiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHNv
bWUgb2YgdGhlIHdvcmsgZnJvbSBKU0xvY2sgdG8gVk1FbnRyeVNjb3BlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk4MzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBBZGQgYSB1bmlxdWUgSUQgdG8gdGhyZWFkcy4g
VGhpcyB1aWQgaXMgdXNlZCBpbiBKU0xvY2sgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgd29yayB3aGVu
IHRoZQorICAgICAgICBzYW1lIHRocmVhZCB0aGF0IGxhc3QgYWNxdWlyZWQgdGhlIGxvY2sgaXMg
cmVhY3F1aXJpbmcgaXQuCisKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmNwcDoKKyAgICAgICAg
KiB3dGYvVGhyZWFkaW5nLmg6CisgICAgICAgIChXVEY6OlRocmVhZDo6dWlkIGNvbnN0KToKKyAg
ICAgICAgKFdURjo6VGhyZWFkOjpUaHJlYWQpOgorCiAyMDIwLTEyLTExICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRkIEV4cGVyaW1l
bnRhbCBWb3JiaXMgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5j
cHAKaW5kZXggYWEzM2IwOWZjYmU5NWNlZjZlYjkzMzg1YTI5MjQzYTJjYWI3NWZkZS4uY2U2NmY1
OTVmOTMwNWU1ZWJlNTE0MjAyMWI3Y2M1ZTc5ZDY1MGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIKICNpbmNsdWRlICJNYWNoaW5lU3RhY2tNYXJrZXIuaCIKICNpbmNsdWRlICJT
YW1wbGluZ1Byb2ZpbGVyLmgiCi0jaW5jbHVkZSAiV2FzbUNhcGFiaWxpdGllcy5oIgotI2luY2x1
ZGUgIldhc21NYWNoaW5lVGhyZWFkcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGFja1BvaW50ZXIuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvU2lnbmFs
cy5oPgpAQCAtMTQ4LDI4ICsxNDYsMjMgQEAgdm9pZCBKU0xvY2s6OmRpZEFjcXVpcmVMb2NrKCkK
ICAgICB2b2lkKiBwID0gY3VycmVudFN0YWNrUG9pbnRlcigpOwogICAgIG1fdm0tPnNldFN0YWNr
UG9pbnRlckF0Vk1FbnRyeShwKTsKIAotICAgIGlmIChtX3ZtLT5oZWFwLm1hY2hpbmVUaHJlYWRz
KCkuYWRkQ3VycmVudFRocmVhZCgpKSB7Ci0gICAgICAgIGlmIChpc0tlcm5UQ1NNQXZhaWxhYmxl
KCkpCi0gICAgICAgICAgICBlbmFibGVLZXJuVENTTSgpOworICAgIGlmICh0aHJlYWQudWlkKCkg
IT0gbV9sYXN0T3duZXJUaHJlYWQpIHsKKyAgICAgICAgbV9sYXN0T3duZXJUaHJlYWQgPSB0aHJl
YWQudWlkKCk7CisgICAgICAgIGlmIChtX3ZtLT5oZWFwLm1hY2hpbmVUaHJlYWRzKCkuYWRkQ3Vy
cmVudFRocmVhZCgpKSB7CisgICAgICAgICAgICBpZiAoaXNLZXJuVENTTUF2YWlsYWJsZSgpKQor
ICAgICAgICAgICAgICAgIGVuYWJsZUtlcm5UQ1NNKCk7CisgICAgICAgIH0KICAgICB9CiAKLSNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgaWYgKFdhc206OmlzU3VwcG9ydGVkKCkpCi0gICAg
ICAgIFdhc206OnN0YXJ0VHJhY2tpbmdDdXJyZW50VGhyZWFkKCk7Ci0jZW5kaWYKLQotI2lmIEhB
VkUoTUFDSF9FWENFUFRJT05TKQotICAgIHJlZ2lzdGVyVGhyZWFkRm9yTWFjaEV4Y2VwdGlvbkhh
bmRsaW5nKFRocmVhZDo6Y3VycmVudCgpKTsKLSNlbmRpZgotCiAgICAgLy8gTm90ZTogZXZlcnl0
aGluZyBiZWxvdyBtdXN0IGNvbWUgYWZ0ZXIgYWRkQ3VycmVudFRocmVhZCgpLgogICAgIG1fdm0t
PnRyYXBzKCkubm90aWZ5R3JhYkFsbExvY2tzKCk7Ci0gICAgCi0gICAgbV92bS0+ZmlyZVByaW1p
dGl2ZUdpZ2FjYWdlRW5hYmxlZElmTmVjZXNzYXJ5KCk7CiAKICNpZiBFTkFCTEUoU0FNUExJTkdf
UFJPRklMRVIpCi0gICAgaWYgKFNhbXBsaW5nUHJvZmlsZXIqIHNhbXBsaW5nUHJvZmlsZXIgPSBt
X3ZtLT5zYW1wbGluZ1Byb2ZpbGVyKCkpCi0gICAgICAgIHNhbXBsaW5nUHJvZmlsZXItPm5vdGlj
ZUpTTG9ja0FjcXVpc2l0aW9uKCk7CisgICAgeworICAgICAgICBTYW1wbGluZ1Byb2ZpbGVyKiBz
YW1wbGluZ1Byb2ZpbGVyID0gbV92bS0+c2FtcGxpbmdQcm9maWxlcigpOworICAgICAgICBpZiAo
VU5MSUtFTFkoc2FtcGxpbmdQcm9maWxlcikpCisgICAgICAgICAgICBzYW1wbGluZ1Byb2ZpbGVy
LT5ub3RpY2VKU0xvY2tBY3F1aXNpdGlvbigpOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCmluZGV4IGVmYjRkN2VlMTFlMjU2ZTQ5YjI3ZGUz
ZGQ4ZDJiYTk0M2Y0ZDU4NjQuLjJlMDJiYTNkNjQwNWVlNzJkZDRhZGUwYmE2N2NiOTU4ZjFhNjQ2
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCkBAIC0xNDUsMTAgKzE0
NSwxMSBAQCBwcml2YXRlOgogICAgIC8vIGRpZmZlcmVudCB0aHJlYWQsIGFuZCBhbiBvcHRpb25h
bCBpcyB2dWxuZXJhYmxlIHRvIHJhY2VzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MDQyI2M2CiAgICAgYm9vbCBtX2hhc093bmVyVGhyZWFk
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkUmVsZWFzZUhlYXBBY2Nlc3M7CiAgICAgUmVm
UHRyPFRocmVhZD4gbV9vd25lclRocmVhZDsKICAgICBpbnRwdHJfdCBtX2xvY2tDb3VudDsKICAg
ICB1bnNpZ25lZCBtX2xvY2tEcm9wRGVwdGg7Ci0gICAgYm9vbCBtX3Nob3VsZFJlbGVhc2VIZWFw
QWNjZXNzOworICAgIHVpbnQzMl90IG1fbGFzdE93bmVyVGhyZWFkIHsgMCB9OwogICAgIFZNKiBt
X3ZtOwogICAgIEF0b21TdHJpbmdUYWJsZSogbV9lbnRyeUF0b21TdHJpbmdUYWJsZTsgCiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKaW5kZXgg
NmZhZTU0OTQ0NWEyZjMyNjlkMDJlYzVkN2RhMWZmN2MzYWRkYzliZi4uNDk3Mjk4MzhhMzZkNTBk
MTg3NjZhZjE1ZDgzZjgyOWNiMDdjMzcyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiT3B0
aW9ucy5oIgogI2luY2x1ZGUgIlNhbXBsaW5nUHJvZmlsZXIuaCIKICNpbmNsdWRlICJWTS5oIgor
I2luY2x1ZGUgIldhc21DYXBhYmlsaXRpZXMuaCIKKyNpbmNsdWRlICJXYXNtTWFjaGluZVRocmVh
ZHMuaCIKICNpbmNsdWRlICJXYXRjaGRvZy5oIgogI2luY2x1ZGUgPHd0Zi9TeXN0ZW1UcmFjaW5n
Lmg+CiAKQEAgLTQxLDYgKzQzLDE3IEBAIFZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3BlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBpZiAoIXZtLmVudHJ5U2NvcGUp
IHsKICAgICAgICAgdm0uZW50cnlTY29wZSA9IHRoaXM7CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCisgICAgICAgIGlmIChXYXNtOjppc1N1cHBvcnRlZCgpKQorICAgICAgICAgICAgV2FzbTo6
c3RhcnRUcmFja2luZ0N1cnJlbnRUaHJlYWQoKTsKKyNlbmRpZgorCisjaWYgSEFWRShNQUNIX0VY
Q0VQVElPTlMpCisgICAgICAgIHJlZ2lzdGVyVGhyZWFkRm9yTWFjaEV4Y2VwdGlvbkhhbmRsaW5n
KFRocmVhZDo6Y3VycmVudCgpKTsKKyNlbmRpZgorCisgICAgICAgIHZtLmZpcmVQcmltaXRpdmVH
aWdhY2FnZUVuYWJsZWRJZk5lY2Vzc2FyeSgpOworCiAgICAgICAgIC8vIFJlc2V0IHRoZSBkYXRl
IGNhY2hlIGJldHdlZW4gSlMgaW52b2NhdGlvbnMgdG8gZm9yY2UgdGhlIFZNIHRvCiAgICAgICAg
IC8vIG9ic2VydmUgdGltZSB6b25lIGNoYW5nZXMuCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgY2xlYXIgaXQgb25seSB3aGVuIHdlIGtub3cgdGhlIHRpbWV6b25lIGhhcyBiZWVuIGNoYW5n
ZWQuCkBAIC01MSwxMCArNjQsMTMgQEAgVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgdm0ud2F0Y2hkb2co
KS0+ZW50ZXJlZFZNKCk7CiAKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCi0gICAgICAg
IGlmIChTYW1wbGluZ1Byb2ZpbGVyKiBzYW1wbGluZ1Byb2ZpbGVyID0gdm0uc2FtcGxpbmdQcm9m
aWxlcigpKQotICAgICAgICAgICAgc2FtcGxpbmdQcm9maWxlci0+bm90aWNlVk1FbnRyeSgpOwor
ICAgICAgICB7CisgICAgICAgICAgICBTYW1wbGluZ1Byb2ZpbGVyKiBzYW1wbGluZ1Byb2ZpbGVy
ID0gdm0uc2FtcGxpbmdQcm9maWxlcigpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKHNhbXBs
aW5nUHJvZmlsZXIpKQorICAgICAgICAgICAgICAgIHNhbXBsaW5nUHJvZmlsZXItPm5vdGljZVZN
RW50cnkoKTsKKyAgICAgICAgfQogI2VuZGlmCi0gICAgICAgIGlmIChPcHRpb25zOjp1c2VUcmFj
ZVBvaW50cygpKQorICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlVHJhY2VQb2ludHMo
KSkpCiAgICAgICAgICAgICB0cmFjZVBvaW50KFZNRW50cnlTY29wZVN0YXJ0KTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmcuY3BwCmluZGV4IDVkN2Q2ZDNiM2RkNjA3NWNiZTM5YTYyM2UwM2UyN2E1ZWMx
Nzc4NGYuLmMwMGFiMjJhZWMxOGJlZDE5ZDE1NThlOGYyOWQ5MTFhYjY3ODgzZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nLmNwcApAQCAtNjQsNiArNjQsOCBAQCBzdGF0aWMgT3B0aW9uYWw8c2l6ZV90PiBzdGFj
a1NpemUoVGhyZWFkVHlwZSB0aHJlYWRUeXBlKQogI2VuZGlmCiB9CiAKK3N0ZDo6YXRvbWljPHVp
bnQzMl90PiBUaHJlYWQ6OnNfdWlkIHsgMCB9OworCiBzdHJ1Y3QgVGhyZWFkOjpOZXdUaHJlYWRD
b250ZXh0IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE5ld1RocmVhZENvbnRleHQ+IHsK
IHB1YmxpYzoKICAgICBOZXdUaHJlYWRDb250ZXh0KGNvbnN0IGNoYXIqIG5hbWUsIEZ1bmN0aW9u
PHZvaWQoKT4mJiBlbnRyeVBvaW50LCBSZWY8VGhyZWFkPiYmIHRocmVhZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgK
aW5kZXggNzZmMDI4Y2ZhNzAzN2U5YzNhOWI3MTM2MzFlZjczNmRjNzM0Mjg0NS4uMjdiNTI1OTU0
NjIyYjA3ODlhYTFkNjczMzY0MGZiNzg1MjUxZDJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKQEAgLTkyLDYg
KzkyLDcgQEAgZW51bSBjbGFzcyBUaHJlYWRUeXBlIDogdWludDhfdCB7CiB9OwogCiBjbGFzcyBU
aHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkPiB7CisgICAgc3RhdGlj
IHN0ZDo6YXRvbWljPHVpbnQzMl90PiBzX3VpZDsKIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3Mg
VGhyZWFkR3JvdXA7CiAgICAgZnJpZW5kIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGluaXRpYWxp
emUoKTsKQEAgLTExMSw2ICsxMTIsOCBAQCBwdWJsaWM6CiAKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRHcm91cHMoKTsKIAorICAgIHVpbnQzMl90IHVpZCgp
IGNvbnN0IHsgcmV0dXJuIG1fdWlkOyB9CisKICNpZiBPUyhXSU5ET1dTKQogICAgIC8vIFJldHVy
bnMgVGhyZWFkSWRlbnRpZmllciBkaXJlY3RseS4gSXQgaXMgdXNlZnVsIGlmIHRoZSB1c2VyIG9u
bHkgY2FyZXMgYWJvdXQgaWRlbnRpdHkKICAgICAvLyBvZiB0aHJlYWRzLiBBdCB0aGF0IHRpbWUs
IHVzZXJzIHNob3VsZCBrbm93IHRoYXQgaG9sZGluZyB0aGlzIFRocmVhZElkZW50aWZpZXIgZG9l
cyBub3QgZW5zdXJlCkBAIC0zMjgsNiArMzMxLDcgQEAgcHJvdGVjdGVkOgogICAgIFN0YWNrQm91
bmRzIG1fc3RhY2sgeyBTdGFja0JvdW5kczo6ZW1wdHlCb3VuZHMoKSB9OwogICAgIEhhc2hNYXA8
VGhyZWFkR3JvdXAqLCBzdGQ6OndlYWtfcHRyPFRocmVhZEdyb3VwPj4gbV90aHJlYWRHcm91cE1h
cDsKICAgICBQbGF0Zm9ybVRocmVhZEhhbmRsZSBtX2hhbmRsZTsKKyAgICB1aW50MzJfdCBtX3Vp
ZDsKICNpZiBPUyhXSU5ET1dTKQogICAgIFRocmVhZElkZW50aWZpZXIgbV9pZCB7IDAgfTsKICNl
bGlmIE9TKERBUldJTikKQEAgLTM2Miw2ICszNjYsNyBAQCBpbmxpbmUgVGhyZWFkOjpUaHJlYWQo
KQogICAgICwgbV9pc0Rlc3Ryb3llZE9uY2UoZmFsc2UpCiAgICAgLCBtX2lzQ29tcGlsYXRpb25U
aHJlYWQoZmFsc2UpCiAgICAgLCBtX2djVGhyZWFkVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
R0NUaHJlYWRUeXBlOjpOb25lKSkKKyAgICAsIG1fdWlkKCsrc191aWQpCiB7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>