<?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>236478</bug_id>
          
          <creation_ts>2022-02-10 17:49:24 -0800</creation_ts>
          <short_desc>Implement Reveal methods</short_desc>
          <delta_ts>2022-02-11 17:48:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1840075</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-10 17:49:24 -0800</bug_when>
    <thetext>Implement Reveal methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840088</commentid>
    <comment_count>1</comment_count>
      <attachid>451629</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-10 19:11:20 -0800</bug_when>
    <thetext>Created attachment 451629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840131</commentid>
    <comment_count>2</comment_count>
      <attachid>451634</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-10 19:52:58 -0800</bug_when>
    <thetext>Created attachment 451634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840150</commentid>
    <comment_count>3</comment_count>
      <attachid>451636</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-10 20:09:58 -0800</bug_when>
    <thetext>Created attachment 451636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840397</commentid>
    <comment_count>4</comment_count>
      <attachid>451636</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-11 09:29:55 -0800</bug_when>
    <thetext>Comment on attachment 451636
Patch

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

&gt; Source/WebKit/Shared/Cocoa/RevealItem.h:27
&gt; +#ifndef RevealItem_h
&gt; +#define RevealItem_h

Nit - `#pragma once` in new code.

&gt; Source/WebKit/Shared/Cocoa/RevealItem.h:44
&gt; +    RetainPtr&lt;RVItem&gt; m_item;

This should be a private member.

&gt; Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:38
&gt; +#import &lt;wtf/Span.h&gt;

Is this needed now that we&apos;re including `Span.h` in ArgumentCoders.h?

&gt; Source/WebKit/UIProcess/WebPageProxy.h:880
&gt; +    void requestRVItemInCurrentSelectedRange(CompletionHandler&lt;void(const WebKit::RevealItem&amp;)&gt;&amp;&amp;);

Nit - you can omit the WebKit:: here.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:7382
&gt; +- (void)requestRVItemInSelectedRangeWithCompletionHandler:(void(^)(RVItem * item))completionHandler

Nit - extra space before &quot;item&quot;

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:7384
&gt; +    _page-&gt;requestRVItemInCurrentSelectedRange([revealItemSelectionHandler = makeBlockPtr(completionHandler)](const WebKit::RevealItem&amp; item) {

Nit - you can omit the WebKit:: here too.

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2342
&gt; +        NSRange selectionRange = NSMakeRange(0, 0);

Nit - it seems like you can remove this line (and just do `auto selectionRange = NSMakeRange(characterCount(*makeSimpleRange(fullCharacterRange-&gt;start, selectionStart)), characterCount(*makeSimpleRange(selectionStart, selectionEnd)));` below)

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2354
&gt; +                selectionRange = NSMakeRange(characterCount(*makeSimpleRange(fullCharacterRange-&gt;start, selectionStart)),
&gt; +                characterCount(*makeSimpleRange(selectionStart, selectionEnd)));

This looks a bit confusing (I thought it was two separate lines at first). Perhaps something like this instead?

```
auto selectionRange = NSMakeRange(
    characterCount(*makeSimpleRange(fullCharacterRange-&gt;start, selectionStart)),
    characterCount(*makeSimpleRange(selectionStart, selectionEnd))
);
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840605</commentid>
    <comment_count>5</comment_count>
      <attachid>451755</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-11 15:53:13 -0800</bug_when>
    <thetext>Created attachment 451755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840624</commentid>
    <comment_count>6</comment_count>
      <attachid>451760</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-11 17:10:03 -0800</bug_when>
    <thetext>Created attachment 451760
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840637</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-11 17:47:46 -0800</bug_when>
    <thetext>Committed r289685 (247171@main): &lt;https://commits.webkit.org/247171@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451760.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840638</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-11 17:48:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/88844376&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451629</attachid>
            <date>2022-02-10 19:11:20 -0800</date>
            <delta_ts>2022-02-10 19:52:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236478-20220210191120.patch</filename>
            <type>text/plain</type>
            <size>21685</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjYmY3YTY1MWE2MjlkYmQ0
MDQzODMzYWE4OTkzMGNlODIzNDkxNGIuLjcwMTFmMGYzYTkwMWZkNmMwY2NhMjNjYjFkZGQ4MGY1
ODk1OWQyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMTAgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUmV2
ZWFsIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlc3BvbmQgdG8gcHJvdG9jb2wgbWV0aG9kcyB0aGF0IHJlcXVlc3QgUlZJdGVtcyBmb3Ig
c2VsZWN0aW9uLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oOgorICAgICAgICAqIFNoYXJlZC9D
b2NvYS9SZXZlYWxJdGVtLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0RhdGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKFdlYktpdDo6UmV2ZWFsSXRlbTo6aXRlbSBjb25z
dCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1JldmVhbEl0ZW0ubW06IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKFdlYktp
dDo6UmV2ZWFsSXRlbTo6UmV2ZWFsSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJldmVhbEl0ZW06
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJldmVhbEl0ZW06OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbToKKyAgICAgICAg
KiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlv
bi5oOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlcXVlc3RSVkl0ZW1JblNlbGVj
dGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSk6
CisKIDIwMjItMDItMDggIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWJBdXRobl0gVXNlIEF1dGhlbnRpY2F0aW9uU2VydmljZXNBZ2VudCBmb3IgV2ViQXV0aG4g
Y2FsbHMgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmgK
aW5kZXggNTMzZTgwOTcwNTQwNTViODFhNmM1ZWExMDk4MWM1YjRkNDAyODc0YS4uNTcxYmJkMjI2
MjkzMWNjZjM0NTMzZjIwMTNkOGYxZTFkYjJiYjA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRlY29k
ZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
KyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIG5hbWVzcGFjZSBEZXRh
aWwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5j
ZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oCmluZGV4IDcz
Njc5NTI2ZDQ2M2MxMTU2ZjY3OGE3ODkxYzk0NmYyODA3ZmI3YmEuLjMzNDE3MWRhMGJlNGMwNzBi
ZWFmNWQ3YzBiZGViYWJhZWYyMzI1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0RhdGFSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9E
YXRhUmVmZXJlbmNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQXJyYXlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgogCiBuYW1lc3BhY2Ug
SVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRl
bS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRlbS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA5NzMyMTIyZTQ2MmQ3NGE3YWY1Zjk3MzJmZjEzMzZmYmZhYTJkODkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmV2ZWFsSXRlbV9oCisjZGVmaW5lIFJldmVhbEl0
ZW1faAorCisjaWYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCAiQXJndW1lbnRDb2RlcnMuaCIK
KworI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFJWSXRlbTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJldmVhbEl0ZW0geworcHVibGljOgorICAgIFJldmVh
bEl0ZW0oKSA9IGRlZmF1bHQ7CisgICAgUmV2ZWFsSXRlbShSZXRhaW5QdHI8UlZJdGVtPiYmKTsK
KyAgICAKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBtX2l0ZW07CisKKyAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXZlYWxJdGVt
PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CisgICAgCisgICAgUlZJdGVtICppdGVtKCkgY29uc3Qg
eyByZXR1cm4gbV9pdGVtLmdldCgpOyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCisKKyNlbmRpZiAvLyBSZXZlYWxJdGVtX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1JldmVhbEl0ZW0ubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9SZXZlYWxJdGVtLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2MzE3NDUyMjlkNjZmMWZmMzE0ZWFj
ODQ4ZDUxYTUzNDUwODRiYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9SZXZlYWxJdGVtLm1tCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJldmVhbEl0ZW0uaCIKKworI2ltcG9ydCAiQXJndW1l
bnRDb2RlcnNDb2NvYS5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1w
b3J0IDxwYWwvY29jb2EvUmV2ZWFsU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
KyNpZiBFTkFCTEUoUkVWRUFMKQorCitSZXZlYWxJdGVtOjpSZXZlYWxJdGVtKFJldGFpblB0cjxS
Vkl0ZW0+JiYgaXRlbSkKKyAgICA6IG1faXRlbSB7IFdURk1vdmUoaXRlbSkgfQoreworfQorCit2
b2lkIFJldmVhbEl0ZW06OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBtX2l0ZW07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UmV2ZWFsSXRlbT4gUmV2
ZWFsSXRlbTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TQXJyYXk+PiBhbGxvd2VkQ2xhc3NlczsKKyAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcs
IFtdIHsKKyAgICAgICAgYXV0byBhbGxvd2VkID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0V2l0aENhcGFjaXR5OjFdKTsKKyAgICAgICAgaWYgKGF1dG8gcnZJdGVtQ2xhc3Mg
PSBQQUw6OmdldFJWSXRlbUNsYXNzKCkpCisgICAgICAgICAgICBbYWxsb3dlZCBhZGRPYmplY3Q6
cnZJdGVtQ2xhc3NdOworICAgICAgICBhbGxvd2VkQ2xhc3Nlcy5nZXQoKSA9IGFkb3B0TlMoW2Fs
bG93ZWQgY29weV0pOworICAgIH0pOworICAgIAorICAgIGF1dG8gaXRlbSA9IElQQzo6ZGVjb2Rl
PFJWSXRlbT4oZGVjb2RlciwgYWxsb3dlZENsYXNzZXMuZ2V0KCkuZ2V0KCkpOworICAgIGlmICgh
aXRlbSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBSZXZlYWxJ
dGVtIHsgV1RGTW92ZSgqaXRlbSkgfTsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KaW5kZXggZWNjOWI5
ODhjYzM5ZWU4OTIzMDc3OWRkNTNjMmVhMGMxMDg2ZmQ5OS4uZDQ5YzcwOWUwNTk4OWY0Nzk3Yjhl
MTMxMWEzZmE2YmRhNDE4NTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbQpAQCAtMjgsMTEgKzI4LDE0IEBACiAKICNpZiBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQogCisjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29h
LmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW1wb3J0ICJEZWNvZGVyLmgiCiAjaW1w
b3J0ICJFbmNvZGVyLmgiCisjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBv
cnQgPHN0cmluZy5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPHd0Zi9T
cGFuLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNv
bGxlY3Rpb24uaAppbmRleCA5MzRhZjVhNjRhODNiMWRiZTMzODE1MTlmNjczMTYzMDI2M2VmZDE4
Li43NTIxZGNlMzhlZGY0ZTExYzgyMDU0YThiZmZkM2I3ZTRiNTY2MmUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmVDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1RpbWVyLmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9y
dCA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW1wb3J0IDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMWY4ZDE3ZTY1NTE0Yzcy
NTkyMjkwY2YyZWQ5MzIzOWFmYjkwZDI2NC4uOTNmMDMxNzdjZWE0OTk5ZGIzN2Y2OTVlNWYxMDY0
NjlmMjBmOTA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTc0LDYgKzE3NCw3IEBAIFNo
YXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQogU2hhcmVkL0NvY29hL0luc2Vy
dFRleHRPcHRpb25zLmNwcAogU2hhcmVkL0NvY29hL0xvYWRQYXJhbWV0ZXJzQ29jb2EubW0KIFNo
YXJlZC9Db2NvYS9QREZLaXRTb2Z0TGluay5tbQorU2hhcmVkL0NvY29hL1JldmVhbEl0ZW0ubW0K
IFNoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KIFNoYXJlZC9Db2NvYS9TYW5k
Ym94SW5pdGlhbGlhdGlvblBhcmFtZXRlcnNDb2NvYS5tbQogU2hhcmVkL0NvY29hL1NhbmRib3hV
dGlsaXRpZXMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTQ0
N2M3MGMwODQwNjE0OTBjMWI0OTVlZmIxODdmMTY1YTFlY2NiMi4uZmRmYjY3ZGJhODMxZmI2MTlm
YTg0NmE2NDUwYjZlM2IxMzZmNzQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTM1Niw2ICszNTYsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQ
ZXJmb3JtYW5jZURhdGE7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIGNsYXNz
IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5OworY2xhc3MgUmV2ZWFsSXRlbTsKIGNsYXNzIFNlY0tleVByb3h5
U3RvcmU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOwogY2xhc3Mg
VXNlckRhdGE7CkBAIC04NzUsNiArODc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdEF1
dG9jb3JyZWN0aW9uQ29udGV4dCgpOwogICAgIHZvaWQgaGFuZGxlQXV0b2NvcnJlY3Rpb25Db250
ZXh0KGNvbnN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYpOwogICAgIHZvaWQgcmVxdWVzdERp
Y3RhdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKT4mJik7CisgICAgdm9pZCByZXF1ZXN0UlZJdGVtSW5D
dXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6
UmV2ZWFsSXRlbSYpPiYmKTsKICAgICB2b2lkIHJlcGxhY2VEaWN0YXRlZFRleHQoY29uc3QgU3Ry
aW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpOwogICAgIHZvaWQgcmVwbGFjZVNl
bGVjdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7
CiAgICAgdm9pZCBkaWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMjZiYzk1NDdmMjhj
ZGU1ZjAwZTYzOGY0Mzc3NDRmNThkMzI5MGE1ZC4uNGU3ZWY5MmM4Mjg2MDEyMjc1NTE3MDJmM2Rl
NjkwMTZmOGIwNjBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0
ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXll
clRyZWVWaWV3cy5oIgogI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5o
IgorI2ltcG9ydCAiUmV2ZWFsSXRlbS5oIgogI2ltcG9ydCAiU21hcnRNYWduaWZpY2F0aW9uQ29u
dHJvbGxlci5oIgogI2ltcG9ydCAiVGV4dENoZWNrZXIuaCIKICNpbXBvcnQgIlRleHRJbnB1dFNQ
SS5oIgpAQCAtNzM3Nyw2ICs3Mzc4LDEzIEBAIC0gKEJPT0wpc3VwcG9ydHNUZXh0U2VsZWN0aW9u
V2l0aENoYXJhY3RlckdyYW51bGFyaXR5CiAgICAgcmV0dXJuIFlFUzsKIH0KIAorLSAodm9pZCly
ZXF1ZXN0UlZJdGVtSW5TZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KFJWSXRlbSAqIGl0ZW0pKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3BhZ2UtPnJlcXVlc3RS
Vkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKFtyZXZlYWxJdGVtU2VsZWN0aW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRl
bSYgaXRlbSkgeworICAgICAgICByZXZlYWxJdGVtU2VsZWN0aW9uSGFuZGxlcihpdGVtLml0ZW0o
KSk7CisgICAgfSk7Cit9CisKIC0gKEJPT0wpaGFzSGlkZGVuQ29udGVudEVkaXRhYmxlCiB7CiAg
ICAgcmV0dXJuIF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMuY29udGFpbnNBbnko
eyBXZWJLaXQ6OkVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCwgV2ViS2l0
OjpGb2N1c2VkRWxlbWVudElzVG9vU21hbGwgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBlMmQ2YjQ5ODgxMTdkMmE3MzJmN2VlMWZh
MDgzZmVkNmM0YWNmYzYyLi5kMjdkNmQzN2JjZGQ1MTkyZGRiYjA2OWM0YTJlYTliNDVhODE3ZmUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
QEAgLTQ4LDYgKzQ4LDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKICNp
bXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKKyNpbXBvcnQgIlJldmVh
bEl0ZW0uaCIKICNpbXBvcnQgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW1wb3J0ICJUYXBIYW5k
bGluZ1Jlc3VsdC5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKQEAgLTUyNSw2ICs1MjYsMTQgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgU3RyaW5nJiwKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2U6OlJlcXVlc3REaWN0YXRpb25Db250ZXh0KCksIFdURk1vdmUoY2FsbGJhY2tGdW5j
dGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNl
bGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0
ZW0mKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrRnVuY3Rpb24oUmV2ZWFsSXRlbSgpKTsKKworICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6UmVxdWVzdFJWSXRlbUluQ3Vy
cmVudFNlbGVjdGVkUmFuZ2UoKSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Cit9CisKIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KCkKIHsKICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZUF1dG9jb3JyZWN0aW9uQ29u
dGV4dFJlcXVlc3QoKSwgbV93ZWJQYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjBkM2U5ODIwNWQ1ZGQzOTg0ZTU4N2NkMzAx
MGU5ODMwZDIzODc1MC4uZDI4YTkzODQ1MWMzNGJkYTE4NWFhYzE0YWMzMmYwM2YyYThmMTU4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC04NjMsNiArODYzLDcgQEAKIAkJNDFGQUJEMkExRjRERTAwMTAwNkE2Qzk3IC8qIENhY2hlU3Rv
cmFnZUVuZ2luZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUZBQkQyODFGNERERkRDMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2Fj
aGUuaCAqLzsgfTsKIAkJNDFGQUY1RjUxRTNDMDY0OTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVG
NDFFM0MwNjQxMDAxQUU2NzggLyogV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDFGQUY1Rjgx
RTNDMTAyMTAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2NzggLyog
TGliV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKKwkJNDQyRTdCRUIyN0I0NTg2OTAwQzY5QUMxIC8q
IFJldmVhbEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0MkU3QkVBMjdCNDU4MTMwMEM2OUFDMSAvKiBSZXZlYWxJdGVtLmggKi87IH07CiAJCTQ0
NTk5ODQyMjI4MzNFODcwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTk5ODQxMjI4
MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLzsgfTsKIAkJ
NDQ3NkVGMDkyNUJGQzhCNzAwNEEwNTg3IC8qIF9XS0FwcEhpZ2hsaWdodERlbGVnYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDc2RUYwODI1QkZD
OEI3MDA0QTA1ODcgLyogX1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NDgyNzM0NzI0NTI4RjYwMDBBOTU0
OTMgLyogQ29jb2FJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDQ4MjczNDYyNDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCAqLzsgfTsK
QEAgLTQyMTEsNiArNDIxMiw4IEBACiAJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZGRDJE
QjI3NUE1NjBDMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxRkZEMkRDMjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0MkU3QkU4MjdCNDU3MkIwMEM2
OUFDMSAvKiBSZXZlYWxJdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmV2ZWFsSXRlbS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQyRTdCRUEyN0I0NTgxMzAwQzY5QUMx
IC8qIFJldmVhbEl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmV2ZWFsSXRlbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVt
b3J5Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVk
TWVtb3J5Q29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU5OTg0MTIy
ODMzRTYwMDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NDc2RUYwODI1QkZDOEI3MDA0QTA1ODcgLyogX1dLQXBwSGlnaGxpZ2h0RGVs
ZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXBwSGlnaGxpZ2h0
RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwNzEsNiArOTA3NCw4
IEBACiAJCQkJMkQ0NDBCODMyNUVGMjM1RTAwQTk4RDg3IC8qIFBERktpdFNvZnRMaW5rLmggKi8s
CiAJCQkJMkQ0NDBCODIyNUVGMjM1RTAwQTk4RDg3IC8qIFBERktpdFNvZnRMaW5rLm1tICovLAog
CQkJCUY0QkUwRDc2MjdBQUUxQ0IwMDVGMDMyMyAvKiBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllci5oICovLAorCQkJCTQ0MkU3QkVBMjdCNDU4MTMwMEM2OUFDMSAvKiBSZXZlYWxJdGVt
LmggKi8sCisJCQkJNDQyRTdCRTgyN0I0NTcyQjAwQzY5QUMxIC8qIFJldmVhbEl0ZW0ubW0gKi8s
CiAJCQkJN0FCNEVBM0YyMjc3N0M0NjAwODVCQkFBIC8qIFNhbmRib3hFeHRlbnNpb25Db2NvYS5t
bSAqLywKIAkJCQk3QUI0RUE0MTIyNzc3RkM3MDA4NUJCQUEgLyogU2FuZGJveEluaXRpYWxpYXRp
b25QYXJhbWV0ZXJzQ29jb2EubW0gKi8sCiAJCQkJRTE5QkRBODgxOTM2ODZBNDAwQjk3RjU3IC8q
IFNhbmRib3hVdGlsaXRpZXMuaCAqLywKQEAgLTEzMzY1LDYgKzEzMzcwLDcgQEAKIAkJCQk2QkU5
NjlDRDFFNTRFMDU0MDA4Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTZCRTk2OUNCMUU1NEQ0Q0YwMDhCNzQ4MyAvKiBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTMw
MDY2RTExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDQyRTdCRUIyN0I0NTg2OTAwQzY5QUMxIC8qIFJldmVhbEl0ZW0uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMDQ4MkNFMURERDMyNEYwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0NkYzOEU4QzI0MTZFNjczMDA1OTM3NUEgLyogUnVubmluZ0JvYXJk
U2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBFOTdENzREMjAwRTkwMDQwMEJGNjY0
MyAvKiBTYWZlQnJvd3NpbmdTUEkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDdlYzZmNGFlMzYzZmJhODExMWFhM2Q1N2I4
OTAzMTJmODdkYmFlOTEuLjExMTEyM2U3Y2E1ZjIxNDk4MGM5ODkwYmNlZTNiYTcyZmE2YzdjNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc5Nyw2
ICs3OTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9p
bnRBbmRCb3VuZGFyeShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OlRleHRHcmFu
dWxhcml0eSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAogICAgIHZvaWQgcmVxdWVzdERpY3RhdGlvbkNvbnRl
eHQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKT4mJik7CisgICAgdm9pZCByZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0
ZWRSYW5nZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYp
PiYmKTsKICAgICB2b2lkIHJlcGxhY2VEaWN0YXRlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0
LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpOwogICAgIHZvaWQgcmVwbGFjZVNlbGVjdGVkVGV4dChj
b25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7CiAgICAgdm9pZCBy
ZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKGNvbnN0IFN0cmluZyYgdGV4dEZvckF1dG9jb3JyZWN0
aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkF1dG9jb3JyZWN0aW9uRGF0YSk+JiYgcmVw
bHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggMTE5MTgzN2MzNTFlYTI3OTVkZjliMWE1YmYyYTQ2NDM2NThlMGQ0
ZS4uNDZjOGZmZWUxMzhiZDc0MTZmNDk5MjJhOGQ0ZGM1NTNkYTdkYzFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBA
IC04MSw2ICs4MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwg
Ym9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBlbnVtOmJvb2wgV2ViS2l0OjpS
ZXNwZWN0U2VsZWN0aW9uQW5jaG9yIHJlc3BlY3RTZWxlY3Rpb25BbmNob3IpIC0+IChib29sIGVu
ZElzTW92aW5nKSBBc3luYwogICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludEFuZEJv
dW5kYXJ5KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVs
ZW1lbnQpIC0+IChib29sIGVuZElzTW92aW5nKSBBc3luYwogICAgIFJlcXVlc3REaWN0YXRpb25D
b250ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3RlZFRleHQsIFN0cmluZyB0ZXh0QmVmb3JlLCBTdHJp
bmcgdGV4dEFmdGVyKSBBc3luYworICAgIFJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJh
bmdlKCkgLT4gKFdlYktpdDo6UmV2ZWFsSXRlbSBpdGVtKSBBc3luYwogICAgIFJlcGxhY2VEaWN0
YXRlZFRleHQoU3RyaW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0KQogICAgIFJlcGxhY2VTZWxl
Y3RlZFRleHQoU3RyaW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0KQogICAgIFJlcXVlc3RBdXRv
Y29ycmVjdGlvbkRhdGEoU3RyaW5nIHRleHRGb3JBdXRvY29ycmVjdGlvbikgLT4gKHN0cnVjdCBX
ZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uRGF0YSBkYXRhKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBkZGEwZjIw
YTFmMjI3YWM1MDdjOWU4NmRkZTcyYjZmZTVmOTMwMDc3Li44ZWRjMGZkYjUyNTgzN2M1N2E5NzZj
MWYzZGQ1ZTZmZGExOWM3ZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAiUHJp
bnRJbmZvLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIgogI2ltcG9y
dCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNpbXBvcnQgIlJldmVhbEl0ZW0uaCIK
ICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1hcFV0
aWxpdGllcy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyQ29weS5oIgpAQCAtMTQ3LDYgKzE0OCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1Zpc2libGVVbml0cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgorI2lt
cG9ydCA8cGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgogI2ltcG9ydCA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2ltcG9ydCA8d3Rm
L1Njb3BlLmg+CkBAIC0yMzI5LDYgKzIzMzEsMzUgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0RGlj
dGF0aW9uQ29udGV4dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnMK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihzZWxlY3RlZFRleHQsIGNvbnRleHRCZWZvcmUsIGNvbnRl
eHRBZnRlcik7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVj
dGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0m
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBSZWYgZnJhbWUgPSBDaGVja2VkUmVmKG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBhdXRv
IHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKKyAgICBSZXRhaW5Q
dHI8UlZJdGVtPiBpdGVtOworICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IGZ1bGxDaGFyYWN0ZXJSYW5nZTsKKyAgICAgICAg
TlNSYW5nZSBzZWxlY3Rpb25SYW5nZSA9IE5TTWFrZVJhbmdlKDAsIDApOworICAgICAgICBpZiAo
c2VsZWN0aW9uLmlzUmFuZ2UoKSkgeworICAgICAgICAgICAgYXV0byBzZWxlY3Rpb25TdGFydCA9
IHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKKyAgICAgICAgICAgIGF1dG8gc2VsZWN0aW9uRW5k
ID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsKKworICAgICAgICAgICAgLy8gQXMgY29udGV4dCwg
d2UgYXJlIGdvaW5nIHRvIHVzZSB0aGUgc3Vycm91bmRpbmcgcGFyYWdyYXBocyBvZiB0ZXh0Lgor
ICAgICAgICAgICAgZnVsbENoYXJhY3RlclJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKHN0YXJ0T2ZQ
YXJhZ3JhcGgoc2VsZWN0aW9uU3RhcnQpLCBlbmRPZlBhcmFncmFwaChzZWxlY3Rpb25FbmQpKTsK
KyAgICAgICAgICAgIGlmICghZnVsbENoYXJhY3RlclJhbmdlKQorICAgICAgICAgICAgICAgIGZ1
bGxDaGFyYWN0ZXJSYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0
aW9uRW5kKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZ1bGxDaGFyYWN0ZXJSYW5n
ZSkgeworICAgICAgICAgICAgICAgIHNlbGVjdGlvblJhbmdlID0gTlNNYWtlUmFuZ2UoY2hhcmFj
dGVyQ291bnQoKm1ha2VTaW1wbGVSYW5nZShmdWxsQ2hhcmFjdGVyUmFuZ2UtPnN0YXJ0LCBzZWxl
Y3Rpb25TdGFydCkpLAorICAgICAgICAgICAgICAgIGNoYXJhY3RlckNvdW50KCptYWtlU2ltcGxl
UmFuZ2Uoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCkpKTsKKyAgICAgICAgICAgICAgICBT
dHJpbmcgaXRlbVN0cmluZyA9IHBsYWluVGV4dCgqZnVsbENoYXJhY3RlclJhbmdlKTsKKyAgICAg
ICAgICAgICAgICBpdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1JWSXRlbUluc3RhbmNlKCkgaW5p
dFdpdGhUZXh0Oml0ZW1TdHJpbmcgc2VsZWN0ZWRSYW5nZTpzZWxlY3Rpb25SYW5nZV0pOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNvbXBsZXRpb25IYW5kbGVy
KFJldmVhbEl0ZW0oV1RGTW92ZShpdGVtKSkpOworfQorCiB2b2lkIFdlYlBhZ2U6OnJlcGxhY2VT
ZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQp
CiB7CiAgICAgUmVmIGZyYW1lID0gQ2hlY2tlZFJlZihtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigp
KS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451634</attachid>
            <date>2022-02-10 19:52:58 -0800</date>
            <delta_ts>2022-02-10 20:13:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236478-20220210195257.patch</filename>
            <type>text/plain</type>
            <size>21817</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjYmY3YTY1MWE2MjlkYmQ0
MDQzODMzYWE4OTkzMGNlODIzNDkxNGIuLjcwMTFmMGYzYTkwMWZkNmMwY2NhMjNjYjFkZGQ4MGY1
ODk1OWQyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMTAgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUmV2
ZWFsIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlc3BvbmQgdG8gcHJvdG9jb2wgbWV0aG9kcyB0aGF0IHJlcXVlc3QgUlZJdGVtcyBmb3Ig
c2VsZWN0aW9uLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oOgorICAgICAgICAqIFNoYXJlZC9D
b2NvYS9SZXZlYWxJdGVtLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0RhdGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKFdlYktpdDo6UmV2ZWFsSXRlbTo6aXRlbSBjb25z
dCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1JldmVhbEl0ZW0ubW06IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKFdlYktp
dDo6UmV2ZWFsSXRlbTo6UmV2ZWFsSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJldmVhbEl0ZW06
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJldmVhbEl0ZW06OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbToKKyAgICAgICAg
KiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlv
bi5oOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlcXVlc3RSVkl0ZW1JblNlbGVj
dGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSk6
CisKIDIwMjItMDItMDggIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWJBdXRobl0gVXNlIEF1dGhlbnRpY2F0aW9uU2VydmljZXNBZ2VudCBmb3IgV2ViQXV0aG4g
Y2FsbHMgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmgK
aW5kZXggNTMzZTgwOTcwNTQwNTViODFhNmM1ZWExMDk4MWM1YjRkNDAyODc0YS4uNTcxYmJkMjI2
MjkzMWNjZjM0NTMzZjIwMTNkOGYxZTFkYjJiYjA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRlY29k
ZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
KyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIG5hbWVzcGFjZSBEZXRh
aWwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5j
ZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oCmluZGV4IDcz
Njc5NTI2ZDQ2M2MxMTU2ZjY3OGE3ODkxYzk0NmYyODA3ZmI3YmEuLjMzNDE3MWRhMGJlNGMwNzBi
ZWFmNWQ3YzBiZGViYWJhZWYyMzI1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0RhdGFSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9E
YXRhUmVmZXJlbmNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQXJyYXlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgogCiBuYW1lc3BhY2Ug
SVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRl
bS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRlbS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUyNWM3YjNjODllYzA1YTFjOGVjM2I3NzYwMWJjNmY4MDA4MmQ3OGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmV2ZWFsSXRlbV9oCisjZGVmaW5lIFJldmVhbEl0
ZW1faAorCisjaWYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCAiQXJndW1lbnRDb2RlcnMuaCIK
KworI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFJWSXRlbTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJldmVhbEl0ZW0geworcHVibGljOgorICAgIFJldmVh
bEl0ZW0oKSA9IGRlZmF1bHQ7CisgICAgUmV2ZWFsSXRlbShSZXRhaW5QdHI8UlZJdGVtPiYmKTsK
KyAgICAKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBtX2l0ZW07CisKKyAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXZlYWxJdGVt
PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CisgICAgCisgICAgUlZJdGVtICppdGVtKCkgY29uc3Qg
eyByZXR1cm4gbV9pdGVtLmdldCgpOyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVW
RUFMKQorCisjZW5kaWYgLy8gUmV2ZWFsSXRlbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
UmV2ZWFsSXRlbS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjMxNzQ1MjI5ZDY2ZjFmZjMxNGVhYzg0OGQ1MWE1
MzQ1MDg0YmFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
UmV2ZWFsSXRlbS5tbQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJSZXZlYWxJdGVtLmgiCisKKyNpbXBvcnQgIkFyZ3VtZW50Q29kZXJz
Q29jb2EuaCIKKyNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2ltcG9ydCA8cGFs
L2NvY29hL1JldmVhbFNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgRU5B
QkxFKFJFVkVBTCkKKworUmV2ZWFsSXRlbTo6UmV2ZWFsSXRlbShSZXRhaW5QdHI8UlZJdGVtPiYm
IGl0ZW0pCisgICAgOiBtX2l0ZW0geyBXVEZNb3ZlKGl0ZW0pIH0KK3sKK30KKwordm9pZCBSZXZl
YWxJdGVtOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbV9pdGVtOworfQorCitzdGQ6Om9wdGlvbmFsPFJldmVhbEl0ZW0+IFJldmVhbEl0ZW06
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFJldGFpblB0cjxOU0FycmF5Pj4gYWxsb3dlZENsYXNzZXM7CisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Cisg
ICAgICAgIGF1dG8gYWxsb3dlZCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dFdpdGhDYXBhY2l0eToxXSk7CisgICAgICAgIGlmIChhdXRvIHJ2SXRlbUNsYXNzID0gUEFMOjpn
ZXRSVkl0ZW1DbGFzcygpKQorICAgICAgICAgICAgW2FsbG93ZWQgYWRkT2JqZWN0OnJ2SXRlbUNs
YXNzXTsKKyAgICAgICAgYWxsb3dlZENsYXNzZXMuZ2V0KCkgPSBhZG9wdE5TKFthbGxvd2VkIGNv
cHldKTsKKyAgICB9KTsKKyAgICAKKyAgICBhdXRvIGl0ZW0gPSBJUEM6OmRlY29kZTxSVkl0ZW0+
KGRlY29kZXIsIGFsbG93ZWRDbGFzc2VzLmdldCgpLmdldCgpKTsKKyAgICBpZiAoIWl0ZW0pCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gUmV2ZWFsSXRlbSB7IFdU
Rk1vdmUoKml0ZW0pIH07Cit9CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCmluZGV4IGVjYzliOTg4Y2MzOWVl
ODkyMzA3NzlkZDUzYzJlYTBjMTA4NmZkOTkuLmQ0OWM3MDllMDU5ODlmNDc5N2I4ZTEzMTFhM2Zh
NmJkYTQxODU5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRi
b3hFeHRlbnNpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5k
Ym94RXh0ZW5zaW9uQ29jb2EubW0KQEAgLTI4LDExICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKIAorI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgogI2lt
cG9ydCAiRGF0YVJlZmVyZW5jZS5oIgogI2ltcG9ydCAiRGVjb2Rlci5oIgogI2ltcG9ydCAiRW5j
b2Rlci5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0IDxzdHJp
bmcuaD4KICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CisjaW1wb3J0IDx3dGYvU3Bhbi5oPgog
I2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9u
LmgKaW5kZXggOTM0YWY1YTY0YTgzYjFkYmUzMzgxNTE5ZjY3MzE2MzAyNjNlZmQxOC4uNzUyMWRj
ZTM4ZWRmNGUxMWM4MjA1NGE4YmZmZDNiN2U0YjU2NjJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9UaW1lci5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9O
b25jb3B5YWJsZS5oPgorI2ltcG9ydCA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDFmOGQxN2U2NTUxNGM3MjU5MjI5MGNm
MmVkOTMyMzlhZmI5MGQyNjQuLjkzZjAzMTc3Y2VhNDk5OWRiMzdmNjk1ZTVmMTA2NDY5ZjIwZjkw
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE3NCw2ICsxNzQsNyBAQCBTaGFyZWQvQ29j
b2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0KIFNoYXJlZC9Db2NvYS9JbnNlcnRUZXh0T3B0
aW9ucy5jcHAKIFNoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tCiBTaGFyZWQvQ29j
b2EvUERGS2l0U29mdExpbmsubW0KK1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLm1tCiBTaGFyZWQv
Q29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCiBTaGFyZWQvQ29jb2EvU2FuZGJveEluaXRp
YWxpYXRpb25QYXJhbWV0ZXJzQ29jb2EubW0KIFNoYXJlZC9Db2NvYS9TYW5kYm94VXRpbGl0aWVz
Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGE0NDdjNzBjMDg0
MDYxNDkwYzFiNDk1ZWZiMTg3ZjE2NWExZWNjYjIuLjU4MDkwNWJhZmRlNDM4Mjk4NDRjNzMxNjJk
MmNhMDczZWFlODcyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0zNTYsNiArMzU2LDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFu
Y2VEYXRhOwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTsKK2NsYXNzIFJldmVhbEl0ZW07CiBjbGFzcyBTZWNLZXlQcm94eVN0b3JlOwog
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjsKIGNsYXNzIFVzZXJEYXRh
OwpAQCAtODc1LDYgKzg3Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RBdXRvY29ycmVj
dGlvbkNvbnRleHQoKTsKICAgICB2b2lkIGhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChjb25z
dCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQmKTsKICAgICB2b2lkIHJlcXVlc3REaWN0YXRpb25D
b250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik+JiYpOworI2lmIEVOQUJMRShSRVZFQUwpCisgICAgdm9pZCByZXF1
ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmKTsKKyNlbmRpZgogICAgIHZvaWQgcmVwbGFjZURp
Y3RhdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7
CiAgICAgdm9pZCByZXBsYWNlU2VsZWN0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29u
c3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2b2lkIGRpZFJlY2VpdmVQb3NpdGlvbkluZm9ybWF0
aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQppbmRleCAyNmJjOTU0N2YyOGNkZTVmMDBlNjM4ZjQzNzc0NGY1OGQzMjkwYTVkLi4wMjRlMjhi
NzhlZmNhZDRjMTdkMzlkYjQ1ZTJhMjI5MGI3Y2FiZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIK
ICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVZpZXdzLmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmgiCisjaW1wb3J0ICJSZXZlYWxJdGVtLmgiCiAjaW1wb3J0ICJT
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgog
I2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCkBAIC03Mzc3LDYgKzczNzgsMTUgQEAgLSAoQk9PTClz
dXBwb3J0c1RleHRTZWxlY3Rpb25XaXRoQ2hhcmFjdGVyR3JhbnVsYXJpdHkKICAgICByZXR1cm4g
WUVTOwogfQogCisjaWYgRU5BQkxFKFJFVkVBTCkKKy0gKHZvaWQpcmVxdWVzdFJWSXRlbUluU2Vs
ZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShSVkl0ZW0gKiBpdGVtKSlj
b21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5yZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2Vs
ZWN0ZWRSYW5nZShbcmV2ZWFsSXRlbVNlbGVjdGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpXShjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mIGl0ZW0pIHsKKyAgICAg
ICAgcmV2ZWFsSXRlbVNlbGVjdGlvbkhhbmRsZXIoaXRlbS5pdGVtKCkpOworICAgIH0pOworfQor
I2VuZGlmCisKIC0gKEJPT0wpaGFzSGlkZGVuQ29udGVudEVkaXRhYmxlCiB7CiAgICAgcmV0dXJu
IF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMuY29udGFpbnNBbnkoeyBXZWJLaXQ6
OkVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCwgV2ViS2l0OjpGb2N1c2Vk
RWxlbWVudElzVG9vU21hbGwgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCBlMmQ2YjQ5ODgxMTdkMmE3MzJmN2VlMWZhMDgzZmVkNmM0
YWNmYzYyLi5iMmZjZDRmYzE1NDQ5MjViNTIxZWY5MjczOWU3Njc0NDcyMWFkZjIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTQ4LDYg
KzQ4LDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdl
cy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKICNpbXBvcnQgIlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKKyNpbXBvcnQgIlJldmVhbEl0ZW0uaCIK
ICNpbXBvcnQgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW1wb3J0ICJUYXBIYW5kbGluZ1Jlc3Vs
dC5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKQEAgLTUyNSw2ICs1MjYsMTYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgU3RyaW5nJiwKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6
OlJlcXVlc3REaWN0YXRpb25Db250ZXh0KCksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwog
fQogCisjaWYgRU5BQkxFKFJFVkVBTCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0UlZJdGVt
SW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktp
dDo6UmV2ZWFsSXRlbSYpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFoYXNSdW5u
aW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm4gY2FsbGJhY2tGdW5jdGlvbihSZXZlYWxJdGVt
KCkpOworCisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0
UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSgpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
KTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEF1dG9jb3JyZWN0aW9u
Q29udGV4dCgpCiB7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5k
bGVBdXRvY29ycmVjdGlvbkNvbnRleHRSZXF1ZXN0KCksIG1fd2ViUGFnZUlEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYwZDNlOTgy
MDVkNWRkMzk4NGU1ODdjZDMwMTBlOTgzMGQyMzg3NTAuLmQyOGE5Mzg0NTFjMzRiZGExODVhYWMx
NGFjMzJmMDNmMmE4ZjE1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtODYzLDYgKzg2Myw3IEBACiAJCTQxRkFCRDJBMUY0REUwMDEw
MDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3IC8qIENh
Y2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggKi87IH07CiAJCTQxRkFGNUY1MUUzQzA2NDkwMDFBRTY3
OCAvKiBXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFGQUY1RjQxRTNDMDY0MTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVyLmgg
Ki87IH07CiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjYx
RTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07CisJCTQ0MkU3QkVC
MjdCNDU4NjkwMEM2OUFDMSAvKiBSZXZlYWxJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDJFN0JFQTI3QjQ1ODEzMDBDNjlBQzEgLyogUmV2ZWFs
SXRlbS5oICovOyB9OwogCQk0NDU5OTg0MjIyODMzRTg3MDBFNjEzNzMgLyogU3ludGhldGljRWRp
dGluZ0NvbW1hbmRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NDU5OTg0MTIyODMzRTYwMDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlLmggKi87IH07CiAJCTQ0NzZFRjA5MjVCRkM4QjcwMDRBMDU4NyAvKiBfV0tBcHBIaWdo
bGlnaHREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDQ3NkVGMDgyNUJGQzhCNzAwNEEwNTg3IC8qIF9XS0FwcEhpZ2hsaWdodERlbGVnYXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDQ4
MjczNDcyNDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0ODI3MzQ2MjQ1MjhGNjAwMEE5NTQ5MyAvKiBD
b2NvYUltYWdlLmggKi87IH07CkBAIC00MjExLDYgKzQyMTIsOCBAQAogCQk0MUZGRDJEQTI3NUE1
NjBCMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDFGRkQyREIyNzVBNTYwQzAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZGRDJEQzI3NUE2QTk0MDA1MDFCQkYgLyog
U2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NDJFN0JFODI3QjQ1NzJCMDBDNjlBQzEgLyogUmV2ZWFsSXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJldmVhbEl0ZW0ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0MkU3
QkVBMjdCNDU4MTMwMEM2OUFDMSAvKiBSZXZlYWxJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJldmVh
bEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAw
OTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ3NkVGMDgyNUJGQzhCNzAwNEEwNTg3IC8q
IF9XS0FwcEhpZ2hsaWdodERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS0FwcEhpZ2hsaWdodERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC05MDcxLDYgKzkwNzQsOCBAQAogCQkJCTJENDQwQjgzMjVFRjIzNUUwMEE5OEQ4NyAvKiBQ
REZLaXRTb2Z0TGluay5oICovLAogCQkJCTJENDQwQjgyMjVFRjIzNUUwMEE5OEQ4NyAvKiBQREZL
aXRTb2Z0TGluay5tbSAqLywKIAkJCQlGNEJFMEQ3NjI3QUFFMUNCMDA1RjAzMjMgLyogUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIuaCAqLywKKwkJCQk0NDJFN0JFQTI3QjQ1ODEzMDBD
NjlBQzEgLyogUmV2ZWFsSXRlbS5oICovLAorCQkJCTQ0MkU3QkU4MjdCNDU3MkIwMEM2OUFDMSAv
KiBSZXZlYWxJdGVtLm1tICovLAogCQkJCTdBQjRFQTNGMjI3NzdDNDYwMDg1QkJBQSAvKiBTYW5k
Ym94RXh0ZW5zaW9uQ29jb2EubW0gKi8sCiAJCQkJN0FCNEVBNDEyMjc3N0ZDNzAwODVCQkFBIC8q
IFNhbmRib3hJbml0aWFsaWF0aW9uUGFyYW1ldGVyc0NvY29hLm1tICovLAogCQkJCUUxOUJEQTg4
MTkzNjg2QTQwMEI5N0Y1NyAvKiBTYW5kYm94VXRpbGl0aWVzLmggKi8sCkBAIC0xMzM2NSw2ICsx
MzM3MCw3IEBACiAJCQkJNkJFOTY5Q0QxRTU0RTA1NDAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NDbGFzc2lmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QkU5NjlDQjFFNTRENENG
MDA4Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXJDb2NvYS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUEzMDA2NkUxMTEwRjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNz
VGltZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MkU3QkVCMjdCNDU4NjkwMEM2OUFDMSAvKiBS
ZXZlYWxJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTA0ODJDRTFEREQzMjRGMDBGMDA2RDAg
LyogUlRDTmV0d29yay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZGMzhFOEMyNDE2RTY3MzAwNTkz
NzVBIC8qIFJ1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRTk3
RDc0RDIwMEU5MDA0MDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3ZWM2ZjRh
ZTM2M2ZiYTgxMTFhYTNkNTdiODkwMzEyZjg3ZGJhZTkxLi5hM2NhOGRiODA4NDFlYTA1YjFjOGJh
YzQzYjgxZDlkNDBjZDNkYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC03OTcsNiArNzk3LDkgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uV2l0aEV4dGVudFBvaW50QW5kQm91bmRhcnkoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2Vk
RWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIHJl
cXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik+JiYpOworI2lmIEVOQUJMRShSRVZFQUwp
CisgICAgdm9pZCByZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmKTsKKyNlbmRpZgogICAg
IHZvaWQgcmVwbGFjZURpY3RhdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0
cmluZyYgbmV3VGV4dCk7CiAgICAgdm9pZCByZXBsYWNlU2VsZWN0ZWRUZXh0KGNvbnN0IFN0cmlu
ZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2b2lkIHJlcXVlc3RBdXRv
Y29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0b2NvcnJlY3Rpb25EYXRhKT4mJiByZXBseSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCAxMTkxODM3YzM1MWVhMjc5NWRmOWIxYTViZjJhNDY0MzY1OGUwZDRlLi5jNDY4MjI0
YWI2ZTVlZGQ0ZjI0NjEzOTIzODYyZjE1ZmU4ZjQ2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTgxLDYgKzgx
LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVXBkYXRlU2Vs
ZWN0aW9uV2l0aEV4dGVudFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBib29sIGlzSW50
ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGVudW06Ym9vbCBXZWJLaXQ6OlJlc3BlY3RTZWxl
Y3Rpb25BbmNob3IgcmVzcGVjdFNlbGVjdGlvbkFuY2hvcikgLT4gKGJvb2wgZW5kSXNNb3Zpbmcp
IEFzeW5jCiAgICAgVXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50QW5kQm91bmRhcnkoV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4g
KGJvb2wgZW5kSXNNb3ZpbmcpIEFzeW5jCiAgICAgUmVxdWVzdERpY3RhdGlvbkNvbnRleHQoKSAt
PiAoU3RyaW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIHRleHRCZWZvcmUsIFN0cmluZyB0ZXh0QWZ0
ZXIpIEFzeW5jCisjaWYgRU5BQkxFKFJFVkVBTCkKKyAgICBSZXF1ZXN0UlZJdGVtSW5DdXJyZW50
U2VsZWN0ZWRSYW5nZSgpIC0+IChXZWJLaXQ6OlJldmVhbEl0ZW0gaXRlbSkgQXN5bmMKKyNlbmRp
ZgogICAgIFJlcGxhY2VEaWN0YXRlZFRleHQoU3RyaW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0
KQogICAgIFJlcGxhY2VTZWxlY3RlZFRleHQoU3RyaW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0
KQogICAgIFJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoU3RyaW5nIHRleHRGb3JBdXRvY29ycmVj
dGlvbikgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uRGF0YSBkYXRhKSBBc3lu
YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQppbmRleCBkZGEwZjIwYTFmMjI3YWM1MDdjOWU4NmRkZTcyYjZmZTVmOTMwMDc3Li44ZWRj
MGZkYjUyNTgzN2M1N2E5NzZjMWYzZGQ1ZTZmZGExOWM3ZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDEsNiArNDEs
NyBAQAogI2ltcG9ydCAiUHJpbnRJbmZvLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5oIgogI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNpbXBv
cnQgIlJldmVhbEl0ZW0uaCIKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQg
IlNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyQ29weS5o
IgpAQCAtMTQ3LDYgKzE0OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNh
dG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Zpc2libGVVbml0cy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJFdmVudC5oPgorI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmg+CiAjaW1w
b3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5oPgogI2ltcG9ydCA8d3RmL1Njb3BlLmg+CkBAIC0yMzI5LDYgKzIzMzEsMzUgQEAgdm9pZCBX
ZWJQYWdlOjpyZXF1ZXN0RGljdGF0aW9uQ29udGV4dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFN0cmluZyYsIGNvbnMKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZWxlY3RlZFRleHQsIGNv
bnRleHRCZWZvcmUsIGNvbnRleHRBZnRlcik7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFJW
SXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBX
ZWJLaXQ6OlJldmVhbEl0ZW0mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBSZWYgZnJh
bWUgPSBDaGVja2VkUmVmKG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkpLT5mb2N1c2VkT3JNYWlu
RnJhbWUoKTsKKyAgICBhdXRvIHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rp
b24oKTsKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBpdGVtOworICAgIGlmICghc2VsZWN0aW9uLmlz
Tm9uZSgpKSB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IGZ1bGxDaGFyYWN0
ZXJSYW5nZTsKKyAgICAgICAgTlNSYW5nZSBzZWxlY3Rpb25SYW5nZSA9IE5TTWFrZVJhbmdlKDAs
IDApOworICAgICAgICBpZiAoc2VsZWN0aW9uLmlzUmFuZ2UoKSkgeworICAgICAgICAgICAgYXV0
byBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKKyAgICAgICAgICAg
IGF1dG8gc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsKKworICAgICAgICAg
ICAgLy8gQXMgY29udGV4dCwgd2UgYXJlIGdvaW5nIHRvIHVzZSB0aGUgc3Vycm91bmRpbmcgcGFy
YWdyYXBocyBvZiB0ZXh0LgorICAgICAgICAgICAgZnVsbENoYXJhY3RlclJhbmdlID0gbWFrZVNp
bXBsZVJhbmdlKHN0YXJ0T2ZQYXJhZ3JhcGgoc2VsZWN0aW9uU3RhcnQpLCBlbmRPZlBhcmFncmFw
aChzZWxlY3Rpb25FbmQpKTsKKyAgICAgICAgICAgIGlmICghZnVsbENoYXJhY3RlclJhbmdlKQor
ICAgICAgICAgICAgICAgIGZ1bGxDaGFyYWN0ZXJSYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShzZWxl
Y3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYg
KGZ1bGxDaGFyYWN0ZXJSYW5nZSkgeworICAgICAgICAgICAgICAgIHNlbGVjdGlvblJhbmdlID0g
TlNNYWtlUmFuZ2UoY2hhcmFjdGVyQ291bnQoKm1ha2VTaW1wbGVSYW5nZShmdWxsQ2hhcmFjdGVy
UmFuZ2UtPnN0YXJ0LCBzZWxlY3Rpb25TdGFydCkpLAorICAgICAgICAgICAgICAgIGNoYXJhY3Rl
ckNvdW50KCptYWtlU2ltcGxlUmFuZ2Uoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCkpKTsK
KyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbVN0cmluZyA9IHBsYWluVGV4dCgqZnVsbENoYXJh
Y3RlclJhbmdlKTsKKyAgICAgICAgICAgICAgICBpdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1JW
SXRlbUluc3RhbmNlKCkgaW5pdFdpdGhUZXh0Oml0ZW1TdHJpbmcgc2VsZWN0ZWRSYW5nZTpzZWxl
Y3Rpb25SYW5nZV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAg
IGNvbXBsZXRpb25IYW5kbGVyKFJldmVhbEl0ZW0oV1RGTW92ZShpdGVtKSkpOworfQorCiB2b2lk
IFdlYlBhZ2U6OnJlcGxhY2VTZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25z
dCBTdHJpbmcmIG5ld1RleHQpCiB7CiAgICAgUmVmIGZyYW1lID0gQ2hlY2tlZFJlZihtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Cg==
</data>
<flag name="commit-queue"
          id="478422"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451636</attachid>
            <date>2022-02-10 20:09:58 -0800</date>
            <delta_ts>2022-02-11 17:10:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236478-20220210200957.patch</filename>
            <type>text/plain</type>
            <size>21845</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjYmY3YTY1MWE2MjlkYmQ0
MDQzODMzYWE4OTkzMGNlODIzNDkxNGIuLjcwMTFmMGYzYTkwMWZkNmMwY2NhMjNjYjFkZGQ4MGY1
ODk1OWQyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMTAgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUmV2
ZWFsIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlc3BvbmQgdG8gcHJvdG9jb2wgbWV0aG9kcyB0aGF0IHJlcXVlc3QgUlZJdGVtcyBmb3Ig
c2VsZWN0aW9uLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oOgorICAgICAgICAqIFNoYXJlZC9D
b2NvYS9SZXZlYWxJdGVtLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0RhdGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKFdlYktpdDo6UmV2ZWFsSXRlbTo6aXRlbSBjb25z
dCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1JldmVhbEl0ZW0ubW06IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaC4KKyAgICAgICAgKFdlYktp
dDo6UmV2ZWFsSXRlbTo6UmV2ZWFsSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlJldmVhbEl0ZW06
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJldmVhbEl0ZW06OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbToKKyAgICAgICAg
KiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlv
bi5oOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlcXVlc3RSVkl0ZW1JblNlbGVj
dGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSk6
CisKIDIwMjItMDItMDggIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWJBdXRobl0gVXNlIEF1dGhlbnRpY2F0aW9uU2VydmljZXNBZ2VudCBmb3IgV2ViQXV0aG4g
Y2FsbHMgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmgK
aW5kZXggNTMzZTgwOTcwNTQwNTViODFhNmM1ZWExMDk4MWM1YjRkNDAyODc0YS4uNTcxYmJkMjI2
MjkzMWNjZjM0NTMzZjIwMTNkOGYxZTFkYjJiYjA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRlY29k
ZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
KyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIG5hbWVzcGFjZSBEZXRh
aWwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5j
ZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oCmluZGV4IDcz
Njc5NTI2ZDQ2M2MxMTU2ZjY3OGE3ODkxYzk0NmYyODA3ZmI3YmEuLjMzNDE3MWRhMGJlNGMwNzBi
ZWFmNWQ3YzBiZGViYWJhZWYyMzI1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0RhdGFSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9E
YXRhUmVmZXJlbmNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQXJyYXlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgogCiBuYW1lc3BhY2Ug
SVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRl
bS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRlbS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUyNWM3YjNjODllYzA1YTFjOGVjM2I3NzYwMWJjNmY4MDA4MmQ3OGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmV2ZWFsSXRlbV9oCisjZGVmaW5lIFJldmVhbEl0
ZW1faAorCisjaWYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCAiQXJndW1lbnRDb2RlcnMuaCIK
KworI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFJWSXRlbTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJldmVhbEl0ZW0geworcHVibGljOgorICAgIFJldmVh
bEl0ZW0oKSA9IGRlZmF1bHQ7CisgICAgUmV2ZWFsSXRlbShSZXRhaW5QdHI8UlZJdGVtPiYmKTsK
KyAgICAKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBtX2l0ZW07CisKKyAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXZlYWxJdGVt
PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CisgICAgCisgICAgUlZJdGVtICppdGVtKCkgY29uc3Qg
eyByZXR1cm4gbV9pdGVtLmdldCgpOyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUkVW
RUFMKQorCisjZW5kaWYgLy8gUmV2ZWFsSXRlbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
UmV2ZWFsSXRlbS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjMxNzQ1MjI5ZDY2ZjFmZjMxNGVhYzg0OGQ1MWE1
MzQ1MDg0YmFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
UmV2ZWFsSXRlbS5tbQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJSZXZlYWxJdGVtLmgiCisKKyNpbXBvcnQgIkFyZ3VtZW50Q29kZXJz
Q29jb2EuaCIKKyNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2ltcG9ydCA8cGFs
L2NvY29hL1JldmVhbFNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgRU5B
QkxFKFJFVkVBTCkKKworUmV2ZWFsSXRlbTo6UmV2ZWFsSXRlbShSZXRhaW5QdHI8UlZJdGVtPiYm
IGl0ZW0pCisgICAgOiBtX2l0ZW0geyBXVEZNb3ZlKGl0ZW0pIH0KK3sKK30KKwordm9pZCBSZXZl
YWxJdGVtOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbV9pdGVtOworfQorCitzdGQ6Om9wdGlvbmFsPFJldmVhbEl0ZW0+IFJldmVhbEl0ZW06
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFJldGFpblB0cjxOU0FycmF5Pj4gYWxsb3dlZENsYXNzZXM7CisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Cisg
ICAgICAgIGF1dG8gYWxsb3dlZCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dFdpdGhDYXBhY2l0eToxXSk7CisgICAgICAgIGlmIChhdXRvIHJ2SXRlbUNsYXNzID0gUEFMOjpn
ZXRSVkl0ZW1DbGFzcygpKQorICAgICAgICAgICAgW2FsbG93ZWQgYWRkT2JqZWN0OnJ2SXRlbUNs
YXNzXTsKKyAgICAgICAgYWxsb3dlZENsYXNzZXMuZ2V0KCkgPSBhZG9wdE5TKFthbGxvd2VkIGNv
cHldKTsKKyAgICB9KTsKKyAgICAKKyAgICBhdXRvIGl0ZW0gPSBJUEM6OmRlY29kZTxSVkl0ZW0+
KGRlY29kZXIsIGFsbG93ZWRDbGFzc2VzLmdldCgpLmdldCgpKTsKKyAgICBpZiAoIWl0ZW0pCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gUmV2ZWFsSXRlbSB7IFdU
Rk1vdmUoKml0ZW0pIH07Cit9CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCmluZGV4IGVjYzliOTg4Y2MzOWVl
ODkyMzA3NzlkZDUzYzJlYTBjMTA4NmZkOTkuLmQ0OWM3MDllMDU5ODlmNDc5N2I4ZTEzMTFhM2Zh
NmJkYTQxODU5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRi
b3hFeHRlbnNpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5k
Ym94RXh0ZW5zaW9uQ29jb2EubW0KQEAgLTI4LDExICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKIAorI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgogI2lt
cG9ydCAiRGF0YVJlZmVyZW5jZS5oIgogI2ltcG9ydCAiRGVjb2Rlci5oIgogI2ltcG9ydCAiRW5j
b2Rlci5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0IDxzdHJp
bmcuaD4KICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CisjaW1wb3J0IDx3dGYvU3Bhbi5oPgog
I2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9u
LmgKaW5kZXggOTM0YWY1YTY0YTgzYjFkYmUzMzgxNTE5ZjY3MzE2MzAyNjNlZmQxOC4uNzUyMWRj
ZTM4ZWRmNGUxMWM4MjA1NGE4YmZmZDNiN2U0YjU2NjJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9UaW1lci5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9O
b25jb3B5YWJsZS5oPgorI2ltcG9ydCA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDFmOGQxN2U2NTUxNGM3MjU5MjI5MGNm
MmVkOTMyMzlhZmI5MGQyNjQuLjkzZjAzMTc3Y2VhNDk5OWRiMzdmNjk1ZTVmMTA2NDY5ZjIwZjkw
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE3NCw2ICsxNzQsNyBAQCBTaGFyZWQvQ29j
b2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0KIFNoYXJlZC9Db2NvYS9JbnNlcnRUZXh0T3B0
aW9ucy5jcHAKIFNoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tCiBTaGFyZWQvQ29j
b2EvUERGS2l0U29mdExpbmsubW0KK1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLm1tCiBTaGFyZWQv
Q29jb2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tCiBTaGFyZWQvQ29jb2EvU2FuZGJveEluaXRp
YWxpYXRpb25QYXJhbWV0ZXJzQ29jb2EubW0KIFNoYXJlZC9Db2NvYS9TYW5kYm94VXRpbGl0aWVz
Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGE0NDdjNzBjMDg0
MDYxNDkwYzFiNDk1ZWZiMTg3ZjE2NWExZWNjYjIuLjU4MDkwNWJhZmRlNDM4Mjk4NDRjNzMxNjJk
MmNhMDczZWFlODcyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0zNTYsNiArMzU2LDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFu
Y2VEYXRhOwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTsKK2NsYXNzIFJldmVhbEl0ZW07CiBjbGFzcyBTZWNLZXlQcm94eVN0b3JlOwog
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjsKIGNsYXNzIFVzZXJEYXRh
OwpAQCAtODc1LDYgKzg3Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RBdXRvY29ycmVj
dGlvbkNvbnRleHQoKTsKICAgICB2b2lkIGhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChjb25z
dCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQmKTsKICAgICB2b2lkIHJlcXVlc3REaWN0YXRpb25D
b250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik+JiYpOworI2lmIEVOQUJMRShSRVZFQUwpCisgICAgdm9pZCByZXF1
ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmKTsKKyNlbmRpZgogICAgIHZvaWQgcmVwbGFjZURp
Y3RhdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7
CiAgICAgdm9pZCByZXBsYWNlU2VsZWN0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29u
c3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2b2lkIGRpZFJlY2VpdmVQb3NpdGlvbkluZm9ybWF0
aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQppbmRleCAyNmJjOTU0N2YyOGNkZTVmMDBlNjM4ZjQzNzc0NGY1OGQzMjkwYTVkLi4wMjRlMjhi
NzhlZmNhZDRjMTdkMzlkYjQ1ZTJhMjI5MGI3Y2FiZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIK
ICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVZpZXdzLmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmgiCisjaW1wb3J0ICJSZXZlYWxJdGVtLmgiCiAjaW1wb3J0ICJT
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgog
I2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCkBAIC03Mzc3LDYgKzczNzgsMTUgQEAgLSAoQk9PTClz
dXBwb3J0c1RleHRTZWxlY3Rpb25XaXRoQ2hhcmFjdGVyR3JhbnVsYXJpdHkKICAgICByZXR1cm4g
WUVTOwogfQogCisjaWYgRU5BQkxFKFJFVkVBTCkKKy0gKHZvaWQpcmVxdWVzdFJWSXRlbUluU2Vs
ZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShSVkl0ZW0gKiBpdGVtKSlj
b21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5yZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2Vs
ZWN0ZWRSYW5nZShbcmV2ZWFsSXRlbVNlbGVjdGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpXShjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mIGl0ZW0pIHsKKyAgICAg
ICAgcmV2ZWFsSXRlbVNlbGVjdGlvbkhhbmRsZXIoaXRlbS5pdGVtKCkpOworICAgIH0pOworfQor
I2VuZGlmCisKIC0gKEJPT0wpaGFzSGlkZGVuQ29udGVudEVkaXRhYmxlCiB7CiAgICAgcmV0dXJu
IF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMuY29udGFpbnNBbnkoeyBXZWJLaXQ6
OkVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCwgV2ViS2l0OjpGb2N1c2Vk
RWxlbWVudElzVG9vU21hbGwgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCBlMmQ2YjQ5ODgxMTdkMmE3MzJmN2VlMWZhMDgzZmVkNmM0
YWNmYzYyLi5iMmZjZDRmYzE1NDQ5MjViNTIxZWY5MjczOWU3Njc0NDcyMWFkZjIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTQ4LDYg
KzQ4LDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdl
cy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKICNpbXBvcnQgIlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKKyNpbXBvcnQgIlJldmVhbEl0ZW0uaCIK
ICNpbXBvcnQgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW1wb3J0ICJUYXBIYW5kbGluZ1Jlc3Vs
dC5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKQEAgLTUyNSw2ICs1MjYsMTYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgU3RyaW5nJiwKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6
OlJlcXVlc3REaWN0YXRpb25Db250ZXh0KCksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwog
fQogCisjaWYgRU5BQkxFKFJFVkVBTCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0UlZJdGVt
SW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktp
dDo6UmV2ZWFsSXRlbSYpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFoYXNSdW5u
aW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm4gY2FsbGJhY2tGdW5jdGlvbihSZXZlYWxJdGVt
KCkpOworCisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0
UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSgpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
KTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEF1dG9jb3JyZWN0aW9u
Q29udGV4dCgpCiB7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5k
bGVBdXRvY29ycmVjdGlvbkNvbnRleHRSZXF1ZXN0KCksIG1fd2ViUGFnZUlEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYwZDNlOTgy
MDVkNWRkMzk4NGU1ODdjZDMwMTBlOTgzMGQyMzg3NTAuLmQyOGE5Mzg0NTFjMzRiZGExODVhYWMx
NGFjMzJmMDNmMmE4ZjE1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtODYzLDYgKzg2Myw3IEBACiAJCTQxRkFCRDJBMUY0REUwMDEw
MDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3IC8qIENh
Y2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggKi87IH07CiAJCTQxRkFGNUY1MUUzQzA2NDkwMDFBRTY3
OCAvKiBXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFGQUY1RjQxRTNDMDY0MTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVyLmgg
Ki87IH07CiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjYx
RTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07CisJCTQ0MkU3QkVC
MjdCNDU4NjkwMEM2OUFDMSAvKiBSZXZlYWxJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDJFN0JFQTI3QjQ1ODEzMDBDNjlBQzEgLyogUmV2ZWFs
SXRlbS5oICovOyB9OwogCQk0NDU5OTg0MjIyODMzRTg3MDBFNjEzNzMgLyogU3ludGhldGljRWRp
dGluZ0NvbW1hbmRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NDU5OTg0MTIyODMzRTYwMDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlLmggKi87IH07CiAJCTQ0NzZFRjA5MjVCRkM4QjcwMDRBMDU4NyAvKiBfV0tBcHBIaWdo
bGlnaHREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDQ3NkVGMDgyNUJGQzhCNzAwNEEwNTg3IC8qIF9XS0FwcEhpZ2hsaWdodERlbGVnYXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDQ4
MjczNDcyNDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0ODI3MzQ2MjQ1MjhGNjAwMEE5NTQ5MyAvKiBD
b2NvYUltYWdlLmggKi87IH07CkBAIC00MjExLDYgKzQyMTIsOCBAQAogCQk0MUZGRDJEQTI3NUE1
NjBCMDA1MDFCQkYgLyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDFGRkQyREIyNzVBNTYwQzAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3du
bG9hZFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZGRDJEQzI3NUE2QTk0MDA1MDFCQkYgLyog
U2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NDJFN0JFODI3QjQ1NzJCMDBDNjlBQzEgLyogUmV2ZWFsSXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJldmVhbEl0ZW0ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0MkU3
QkVBMjdCNDU4MTMwMEM2OUFDMSAvKiBSZXZlYWxJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJldmVh
bEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAw
OTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ3NkVGMDgyNUJGQzhCNzAwNEEwNTg3IC8q
IF9XS0FwcEhpZ2hsaWdodERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS0FwcEhpZ2hsaWdodERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC05MDcxLDYgKzkwNzQsOCBAQAogCQkJCTJENDQwQjgzMjVFRjIzNUUwMEE5OEQ4NyAvKiBQ
REZLaXRTb2Z0TGluay5oICovLAogCQkJCTJENDQwQjgyMjVFRjIzNUUwMEE5OEQ4NyAvKiBQREZL
aXRTb2Z0TGluay5tbSAqLywKIAkJCQlGNEJFMEQ3NjI3QUFFMUNCMDA1RjAzMjMgLyogUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIuaCAqLywKKwkJCQk0NDJFN0JFQTI3QjQ1ODEzMDBD
NjlBQzEgLyogUmV2ZWFsSXRlbS5oICovLAorCQkJCTQ0MkU3QkU4MjdCNDU3MkIwMEM2OUFDMSAv
KiBSZXZlYWxJdGVtLm1tICovLAogCQkJCTdBQjRFQTNGMjI3NzdDNDYwMDg1QkJBQSAvKiBTYW5k
Ym94RXh0ZW5zaW9uQ29jb2EubW0gKi8sCiAJCQkJN0FCNEVBNDEyMjc3N0ZDNzAwODVCQkFBIC8q
IFNhbmRib3hJbml0aWFsaWF0aW9uUGFyYW1ldGVyc0NvY29hLm1tICovLAogCQkJCUUxOUJEQTg4
MTkzNjg2QTQwMEI5N0Y1NyAvKiBTYW5kYm94VXRpbGl0aWVzLmggKi8sCkBAIC0xMzM2NSw2ICsx
MzM3MCw3IEBACiAJCQkJNkJFOTY5Q0QxRTU0RTA1NDAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NDbGFzc2lmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QkU5NjlDQjFFNTRENENG
MDA4Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXJDb2NvYS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUEzMDA2NkUxMTEwRjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNz
VGltZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MkU3QkVCMjdCNDU4NjkwMEM2OUFDMSAvKiBS
ZXZlYWxJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTA0ODJDRTFEREQzMjRGMDBGMDA2RDAg
LyogUlRDTmV0d29yay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZGMzhFOEMyNDE2RTY3MzAwNTkz
NzVBIC8qIFJ1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRTk3
RDc0RDIwMEU5MDA0MDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3ZWM2ZjRh
ZTM2M2ZiYTgxMTFhYTNkNTdiODkwMzEyZjg3ZGJhZTkxLi5hM2NhOGRiODA4NDFlYTA1YjFjOGJh
YzQzYjgxZDlkNDBjZDNkYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC03OTcsNiArNzk3LDkgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uV2l0aEV4dGVudFBvaW50QW5kQm91bmRhcnkoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2Vk
RWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIHJl
cXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik+JiYpOworI2lmIEVOQUJMRShSRVZFQUwp
CisgICAgdm9pZCByZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmKTsKKyNlbmRpZgogICAg
IHZvaWQgcmVwbGFjZURpY3RhdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0
cmluZyYgbmV3VGV4dCk7CiAgICAgdm9pZCByZXBsYWNlU2VsZWN0ZWRUZXh0KGNvbnN0IFN0cmlu
ZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2b2lkIHJlcXVlc3RBdXRv
Y29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0b2NvcnJlY3Rpb25EYXRhKT4mJiByZXBseSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCAxMTkxODM3YzM1MWVhMjc5NWRmOWIxYTViZjJhNDY0MzY1OGUwZDRlLi5jNDY4MjI0
YWI2ZTVlZGQ0ZjI0NjEzOTIzODYyZjE1ZmU4ZjQ2MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTgxLDYgKzgx
LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVXBkYXRlU2Vs
ZWN0aW9uV2l0aEV4dGVudFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBib29sIGlzSW50
ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGVudW06Ym9vbCBXZWJLaXQ6OlJlc3BlY3RTZWxl
Y3Rpb25BbmNob3IgcmVzcGVjdFNlbGVjdGlvbkFuY2hvcikgLT4gKGJvb2wgZW5kSXNNb3Zpbmcp
IEFzeW5jCiAgICAgVXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50QW5kQm91bmRhcnkoV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4g
KGJvb2wgZW5kSXNNb3ZpbmcpIEFzeW5jCiAgICAgUmVxdWVzdERpY3RhdGlvbkNvbnRleHQoKSAt
PiAoU3RyaW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIHRleHRCZWZvcmUsIFN0cmluZyB0ZXh0QWZ0
ZXIpIEFzeW5jCisjaWYgRU5BQkxFKFJFVkVBTCkKKyAgICBSZXF1ZXN0UlZJdGVtSW5DdXJyZW50
U2VsZWN0ZWRSYW5nZSgpIC0+IChXZWJLaXQ6OlJldmVhbEl0ZW0gaXRlbSkgQXN5bmMKKyNlbmRp
ZgogICAgIFJlcGxhY2VEaWN0YXRlZFRleHQoU3RyaW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0
KQogICAgIFJlcGxhY2VTZWxlY3RlZFRleHQoU3RyaW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0
KQogICAgIFJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoU3RyaW5nIHRleHRGb3JBdXRvY29ycmVj
dGlvbikgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uRGF0YSBkYXRhKSBBc3lu
YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQppbmRleCBkZGEwZjIwYTFmMjI3YWM1MDdjOWU4NmRkZTcyYjZmZTVmOTMwMDc3Li5iNDM2
ZWZhYmRiOTI1NjlkOWZmODc0ZGViZDEwYTJlZWQ3NTBhZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDEsNiArNDEs
NyBAQAogI2ltcG9ydCAiUHJpbnRJbmZvLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5oIgogI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNpbXBv
cnQgIlJldmVhbEl0ZW0uaCIKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQg
IlNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyQ29weS5o
IgpAQCAtMTQ3LDYgKzE0OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNh
dG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Zpc2libGVVbml0cy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJFdmVudC5oPgorI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmg+CiAjaW1w
b3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5oPgogI2ltcG9ydCA8d3RmL1Njb3BlLmg+CkBAIC0yMzI5LDYgKzIzMzEsMzcgQEAgdm9pZCBX
ZWJQYWdlOjpyZXF1ZXN0RGljdGF0aW9uQ29udGV4dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFN0cmluZyYsIGNvbnMKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZWxlY3RlZFRleHQsIGNv
bnRleHRCZWZvcmUsIGNvbnRleHRBZnRlcik7CiB9CiAKKyNpZiBFTkFCTEUoUkVWRUFMKQordm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIFJlZiBmcmFtZSA9IENoZWNrZWRSZWYobV9wYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKSktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIGF1dG8gc2VsZWN0aW9uID0gZnJhbWUt
PnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOworICAgIFJldGFpblB0cjxSVkl0ZW0+IGl0ZW07Cisg
ICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTaW1w
bGVSYW5nZT4gZnVsbENoYXJhY3RlclJhbmdlOworICAgICAgICBOU1JhbmdlIHNlbGVjdGlvblJh
bmdlID0gTlNNYWtlUmFuZ2UoMCwgMCk7CisgICAgICAgIGlmIChzZWxlY3Rpb24uaXNSYW5nZSgp
KSB7CisgICAgICAgICAgICBhdXRvIHNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uLnZpc2libGVT
dGFydCgpOworICAgICAgICAgICAgYXV0byBzZWxlY3Rpb25FbmQgPSBzZWxlY3Rpb24udmlzaWJs
ZUVuZCgpOworCisgICAgICAgICAgICAvLyBBcyBjb250ZXh0LCB3ZSBhcmUgZ29pbmcgdG8gdXNl
IHRoZSBzdXJyb3VuZGluZyBwYXJhZ3JhcGhzIG9mIHRleHQuCisgICAgICAgICAgICBmdWxsQ2hh
cmFjdGVyUmFuZ2UgPSBtYWtlU2ltcGxlUmFuZ2Uoc3RhcnRPZlBhcmFncmFwaChzZWxlY3Rpb25T
dGFydCksIGVuZE9mUGFyYWdyYXBoKHNlbGVjdGlvbkVuZCkpOworICAgICAgICAgICAgaWYgKCFm
dWxsQ2hhcmFjdGVyUmFuZ2UpCisgICAgICAgICAgICAgICAgZnVsbENoYXJhY3RlclJhbmdlID0g
bWFrZVNpbXBsZVJhbmdlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBpZiAoZnVsbENoYXJhY3RlclJhbmdlKSB7CisgICAgICAgICAgICAg
ICAgc2VsZWN0aW9uUmFuZ2UgPSBOU01ha2VSYW5nZShjaGFyYWN0ZXJDb3VudCgqbWFrZVNpbXBs
ZVJhbmdlKGZ1bGxDaGFyYWN0ZXJSYW5nZS0+c3RhcnQsIHNlbGVjdGlvblN0YXJ0KSksCisgICAg
ICAgICAgICAgICAgY2hhcmFjdGVyQ291bnQoKm1ha2VTaW1wbGVSYW5nZShzZWxlY3Rpb25TdGFy
dCwgc2VsZWN0aW9uRW5kKSkpOworICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtU3RyaW5nID0g
cGxhaW5UZXh0KCpmdWxsQ2hhcmFjdGVyUmFuZ2UpOworICAgICAgICAgICAgICAgIGl0ZW0gPSBh
ZG9wdE5TKFtQQUw6OmFsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFRleHQ6aXRlbVN0cmlu
ZyBzZWxlY3RlZFJhbmdlOnNlbGVjdGlvblJhbmdlXSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgY29tcGxldGlvbkhhbmRsZXIoUmV2ZWFsSXRlbShXVEZNb3Zl
KGl0ZW0pKSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpyZXBsYWNlU2VsZWN0ZWRUZXh0
KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KQogewogICAgIFJl
ZiBmcmFtZSA9IENoZWNrZWRSZWYobV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKSktPmZvY3VzZWRP
ck1haW5GcmFtZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451755</attachid>
            <date>2022-02-11 15:53:13 -0800</date>
            <delta_ts>2022-02-11 17:10:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236478-20220211155312.patch</filename>
            <type>text/plain</type>
            <size>22201</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFhNzRhNDdjMTk2MzM1ZGVh
NTFmZjBmNWY5ZmI0ZmE4OThmMGEzYzguLjllODFlNDUyYWFiMzNiM2Q4MDk5NmNjZDVlMWE3ZThi
MTFjMGEzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDItMTEgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUmV2
ZWFsIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlc3BvbmQgdG8gcHJvdG9jb2wgbWV0aG9kcyB0aGF0IHJlcXVlc3QgUlZJdGVtcyBmb3Ig
c2VsZWN0aW9uLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oOgorICAgICAgICAqIFNoYXJlZC9D
b2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW06CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaDoKKyAgICAgICAgKiBT
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5t
bToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyByZXF1ZXN0UlZJdGVtSW5TZWxlY3Rl
ZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVl
c3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UpOgor
CiAyMDIyLTAyLTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgQXBwbGUgVFYgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaAppbmRleCA1MzNlODA5NzA1NDA1NWI4MWE2YzVl
YTEwOTgxYzViNGQ0MDI4NzRhLi41NzFiYmQyMjYyOTMxY2NmMzQ1MzNmMjAxM2Q4ZjFlMWRiMmJi
MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rlci5oCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIK
ICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9TcGFuLmg+CiAKIG5h
bWVzcGFjZSBJUEMgewogbmFtZXNwYWNlIERldGFpbCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9EYXRhUmVmZXJlbmNlLmgKaW5kZXggNzM2Nzk1MjZkNDYzYzExNTZmNjc4YTc4OTFjOTQ2
ZjI4MDdmYjdiYS4uMzM0MTcxZGEwYmU0YzA3MGJlYWY1ZDdjMGJkZWJhYmFlZjIzMjU1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBcnJheVJlZmVyZW5jZS5oIgorI2luY2x1
ZGUgPHd0Zi9TcGFuLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9SZXZlYWxJdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRlMTZhNjAyOTgyNjg2YjJhODYxZGI5ZjY2
M2ZlMTE5Nzc5YmY0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1JldmVhbEl0ZW0uaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoUkVWRUFMKQorCisjaW1wb3J0ICJBcmd1bWVudENvZGVycy5oIgor
CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgUlZJdGVtOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmV2ZWFsSXRlbSB7CisgICAgCitwdWJsaWM6CisgICAg
UmV2ZWFsSXRlbSgpID0gZGVmYXVsdDsKKyAgICBSZXZlYWxJdGVtKFJldGFpblB0cjxSVkl0ZW0+
JiYpOworICAgIAorICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFJldmVhbEl0ZW0+IGRlY29kZShJUEM6OkRlY29kZXImKTsKKyAg
ICAKKyAgICBSVkl0ZW0gKml0ZW0oKSBjb25zdCB7IHJldHVybiBtX2l0ZW0uZ2V0KCk7IH0KK3By
aXZhdGU6CisgICAgUmV0YWluUHRyPFJWSXRlbT4gbV9pdGVtOworfTsKKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKFJFVkVBTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L1JldmVhbEl0ZW0ubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ2MzE3NDUyMjlkNjZmMWZmMzE0ZWFjODQ4ZDUxYTUzNDUwODRiYWUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9SZXZlYWxJdGVtLm1t
CkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlJldmVhbEl0ZW0uaCIKKworI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgorI2lt
cG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1wb3J0IDxwYWwvY29jb2EvUmV2ZWFs
U29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoUkVWRUFMKQor
CitSZXZlYWxJdGVtOjpSZXZlYWxJdGVtKFJldGFpblB0cjxSVkl0ZW0+JiYgaXRlbSkKKyAgICA6
IG1faXRlbSB7IFdURk1vdmUoaXRlbSkgfQoreworfQorCit2b2lkIFJldmVhbEl0ZW06OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2l0ZW07
Cit9CisKK3N0ZDo6b3B0aW9uYWw8UmV2ZWFsSXRlbT4gUmV2ZWFsSXRlbTo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRy
PE5TQXJyYXk+PiBhbGxvd2VkQ2xhc3NlczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgYXV0byBh
bGxvd2VkID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OjFdKTsKKyAgICAgICAgaWYgKGF1dG8gcnZJdGVtQ2xhc3MgPSBQQUw6OmdldFJWSXRlbUNsYXNz
KCkpCisgICAgICAgICAgICBbYWxsb3dlZCBhZGRPYmplY3Q6cnZJdGVtQ2xhc3NdOworICAgICAg
ICBhbGxvd2VkQ2xhc3Nlcy5nZXQoKSA9IGFkb3B0TlMoW2FsbG93ZWQgY29weV0pOworICAgIH0p
OworICAgIAorICAgIGF1dG8gaXRlbSA9IElQQzo6ZGVjb2RlPFJWSXRlbT4oZGVjb2RlciwgYWxs
b3dlZENsYXNzZXMuZ2V0KCkuZ2V0KCkpOworICAgIGlmICghaXRlbSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBSZXZlYWxJdGVtIHsgV1RGTW92ZSgqaXRlbSkg
fTsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9T
YW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KaW5kZXggZWNjOWI5ODhjYzM5ZWU4OTIzMDc3OWRkNTNj
MmVhMGMxMDg2ZmQ5OS4uNWJhOTJiYjgyMzlmMjgwOWIwMTg0YzRkZjczMDk5OWM0MzBmNGQ0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2FuZGJveEV4dGVuc2lvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25D
b2NvYS5tbQpAQCAtMjgsOSArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lP
TlMpCiAKKyNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ29jb2EuaCIKICNpbXBvcnQgIkRhdGFSZWZl
cmVuY2UuaCIKICNpbXBvcnQgIkRlY29kZXIuaCIKICNpbXBvcnQgIkVuY29kZXIuaCIKKyNpbXBv
cnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2ltcG9ydCA8c3RyaW5nLmg+CiAjaW1wb3J0
IDx3dGYvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oCmluZGV4IDU3
ZjllNWEyMjQzMzdmYmUzNmRlYWE0NmQ1MDc3NTVhY2ExYTJjOTQuLjA1YjI5MzMwZDdlYjEzMGFk
ZmU4N2ZjNzY3ZjQzMTU3ODg4YWY1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmVDb2xsZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGlt
ZXIuaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbXBvcnQgPHd0Zi9PcHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgSW1hZ2VCdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVj
dGlvbi5tbQppbmRleCA4OTJjYTE0OTg5ZmMyYjUwODMwMTNmNmNiYTgwNTBhMzcwODM5NzI0Li4w
MDY5ZjdmMjIzMTliYTU0OWU0NWNiZGE3YTRlNmVlZTIwMWQ2YjllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVD
b2xsZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KQEAgLTI3LDggKzI3LDEwIEBACiAj
aW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCIKIAogI2ltcG9ydCAi
UGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCisjaW1wb3J0ICJQbGF0Zm9ybUltYWdlQnVmZmVyU2hh
cmVhYmxlQmFja2VuZC5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCIKICNp
bXBvcnQgIlJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQ29uY3Jl
dGVJbWFnZUJ1ZmZlci5oPgogCiBjb25zdCBTZWNvbmRzIHZvbGF0aWxlQmFja2luZ1N0b3JlQWdl
VGhyZXNob2xkID0gMV9zOwogY29uc3QgU2Vjb25kcyB2b2xhdGlsZVNlY29uZGFyeUJhY2tpbmdT
dG9yZUFnZVRocmVzaG9sZCA9IDIwMF9tczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBmMTRk
NzM2Y2Q0ZmVmYWMwZWEwMmViYzY0NDhlMjIwNDU4YWJmYzg0Li5kMjY3ODAxZWE0ZGI5OTg3OGRh
MTdlODA5MTNiMDk1YmNiMWIyMzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xNzQsNiAr
MTc0LDcgQEAgU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCiBTaGFyZWQv
Q29jb2EvSW5zZXJ0VGV4dE9wdGlvbnMuY3BwCiBTaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnND
b2NvYS5tbQogU2hhcmVkL0NvY29hL1BERktpdFNvZnRMaW5rLm1tCitTaGFyZWQvQ29jb2EvUmV2
ZWFsSXRlbS5tbQogU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbQogU2hhcmVk
L0NvY29hL1NhbmRib3hJbml0aWFsaWF0aW9uUGFyYW1ldGVyc0NvY29hLm1tCiBTaGFyZWQvQ29j
b2EvU2FuZGJveFV0aWxpdGllcy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA2NDQwMTA1NzQ1MDEzYmQ3ZDM3ZTY4OWY0NGJmOWQyYzBjMzg1MzU2Li41YmNhODI2
NWI2NzJiNDFiZDE5NGU2NmY3MTVjZWI0MzAyNWY0ZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMzU2LDYgKzM1Niw3IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJl
ZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOwogY2xhc3MgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTsKIGNsYXNzIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CitjbGFzcyBSZXZlYWxJdGVtOwogY2xhc3Mg
U2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFn
ZXI7CiBjbGFzcyBVc2VyRGF0YTsKQEAgLTg3Niw2ICs4NzcsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KCk7CiAgICAgdm9pZCBoYW5kbGVBdXRvY29y
cmVjdGlvbkNvbnRleHQoY29uc3QgV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0Jik7CiAgICAgdm9p
ZCByZXF1ZXN0RGljdGF0aW9uQ29udGV4dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpPiYmKTsKKyNpZiBFTkFCTEUoUkVW
RUFMKQorICAgIHZvaWQgcmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXZlYWxJdGVtJik+JiYpOworI2VuZGlmCiAgICAgdm9p
ZCByZXBsYWNlRGljdGF0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5n
JiBuZXdUZXh0KTsKICAgICB2b2lkIHJlcGxhY2VTZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBv
bGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVBvc2l0
aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IDA5YzQ5MWVkY2Y0MzNiMmJmYjA3MDdlOGJiY2FkN2E3NmVjZGQz
MTUuLjZhYTg4OTYyZjk3MDgzMzNkYmUwZTAwNTY4NDE5ODE3OWVmN2IxOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVmlld3MuaCIKICNpbXBvcnQgIlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKKyNpbXBvcnQgIlJldmVhbEl0ZW0uaCIK
ICNpbXBvcnQgIlNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlRleHRD
aGVja2VyLmgiCiAjaW1wb3J0ICJUZXh0SW5wdXRTUEkuaCIKQEAgLTc1NzksNiArNzU4MCwxNSBA
QCBzdGF0aWMgYm9vbCBjYW5Vc2VRdWlja2JvYXJkQ29udHJvbGxlckZvcihVSVRleHRDb250ZW50
VHlwZSB0eXBlKQogICAgIHJldHVybiBZRVM7CiB9CiAKKyNpZiBFTkFCTEUoUkVWRUFMKQorLSAo
dm9pZClyZXF1ZXN0UlZJdGVtSW5TZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2
b2lkKF4pKFJWSXRlbSAqaXRlbSkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+cmVx
dWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoW3JldmVhbEl0ZW1TZWxlY3Rpb25IYW5k
bGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oY29uc3QgV2ViS2l0OjpSZXZl
YWxJdGVtJiBpdGVtKSB7CisgICAgICAgIHJldmVhbEl0ZW1TZWxlY3Rpb25IYW5kbGVyKGl0ZW0u
aXRlbSgpKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiAtIChCT09MKWhhc0hpZGRlbkNvbnRlbnRF
ZGl0YWJsZQogewogICAgIHJldHVybiBfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25z
LmNvbnRhaW5zQW55KHsgV2ViS2l0OjpFZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNs
aXBwZWQsIFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJc1Rvb1NtYWxsIH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggZTJkNmI0OTg4MTE3
ZDJhNzMyZjdlZTFmYTA4M2ZlZDZjNGFjZmM2Mi4uYjJmY2Q0ZmMxNTQ0OTI1YjUyMWVmOTI3Mzll
NzY3NDQ3MjFhZGYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCkBAIC00OCw2ICs0OCw3IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgiCisj
aW1wb3J0ICJSZXZlYWxJdGVtLmgiCiAjaW1wb3J0ICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2lt
cG9ydCAiVGFwSGFuZGxpbmdSZXN1bHQuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCkBAIC01MjUs
NiArNTI2LDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RGljdGF0aW9uQ29udGV4dChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsCiAgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0RGljdGF0aW9uQ29udGV4dCgpLCBXVEZNb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pKTsKIH0KIAorI2lmIEVOQUJMRShSRVZFQUwpCit2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mKT4mJiBjYWxsYmFja0Z1bmN0aW9u
KQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrRnVuY3Rpb24oUmV2ZWFsSXRlbSgpKTsKKworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZTo6UmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoKSwgV1RG
TW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQoKQogewogICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6SGFuZGxlQXV0b2NvcnJlY3Rpb25Db250ZXh0UmVxdWVzdCgpLCBt
X3dlYlBhZ2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5NTdhYTA2ZjhmYmU2ODM2NjJkNDQ5ZWRiMWFjYTUzZmI4NTY3MDRlLi4x
NmE2ZDY1YzQ3OTc2ZTY2MGU1OGE2MWYwNDE4YWRiMmVhNTA2Zjg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg2NSw2ICs4NjUsNyBA
QAogCQk0MUZBQkQyQTFGNERFMDAxMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFCRDI4
MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oICovOyB9OwogCQk0
MUZBRjVGNTFFM0MwNjQ5MDAxQUU2NzggLyogV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY0MUUzQzA2NDEwMDFBRTY3
OCAvKiBXZWJSVENSZXNvbHZlci5oICovOyB9OwogCQk0MUZBRjVGODFFM0MxMDIxMDAxQUU2Nzgg
LyogTGliV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRkFGNUY2MUUzQzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZl
ci5oICovOyB9OworCQk0NDJFN0JFQjI3QjQ1ODY5MDBDNjlBQzEgLyogUmV2ZWFsSXRlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyRTdCRUEyN0I0
NTgxMzAwQzY5QUMxIC8qIFJldmVhbEl0ZW0uaCAqLzsgfTsKIAkJNDQ1OTk4NDIyMjgzM0U4NzAw
RTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8q
IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oICovOyB9OwogCQk0NDc2RUYwOTI1QkZDOEI3
MDA0QTA1ODcgLyogX1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NzZFRjA4MjVCRkM4QjcwMDRBMDU4NyAvKiBf
V0tBcHBIaWdobGlnaHREZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQ0ODI3MzQ3MjQ1MjhGNjAwMEE5NTQ5MyAvKiBDb2NvYUltYWdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDgyNzM0
NjI0NTI4RjYwMDBBOTU0OTMgLyogQ29jb2FJbWFnZS5oICovOyB9OwpAQCAtNDIyOCw2ICs0MjI5
LDggQEAKIAkJNDFGRkQyREEyNzVBNTYwQjAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkZEMkRCMjc1QTU2MEMwMDUwMUJC
RiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGRkQy
REMyNzVBNkE5NDAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQyRTdCRTgyN0I0NTcyQjAwQzY5QUMxIC8qIFJldmVhbEl0
ZW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXZlYWxJdGVtLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0NDJFN0JFQTI3QjQ1ODEzMDBDNjlBQzEgLyogUmV2ZWFsSXRlbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZXZlYWxJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAv
KiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NzZF
RjA4MjVCRkM4QjcwMDRBMDU4NyAvKiBfV0tBcHBIaWdobGlnaHREZWxlZ2F0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tBcHBIaWdobGlnaHREZWxlZ2F0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTEyMCw2ICs5MTIzLDggQEAKIAkJCQkyRDQ0MEI4
MzI1RUYyMzVFMDBBOThEODcgLyogUERGS2l0U29mdExpbmsuaCAqLywKIAkJCQkyRDQ0MEI4MjI1
RUYyMzVFMDBBOThEODcgLyogUERGS2l0U29mdExpbmsubW0gKi8sCiAJCQkJRjRCRTBENzYyN0FB
RTFDQjAwNUYwMzIzIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi8sCisJ
CQkJNDQyRTdCRUEyN0I0NTgxMzAwQzY5QUMxIC8qIFJldmVhbEl0ZW0uaCAqLywKKwkJCQk0NDJF
N0JFODI3QjQ1NzJCMDBDNjlBQzEgLyogUmV2ZWFsSXRlbS5tbSAqLywKIAkJCQk3QUI0RUEzRjIy
Nzc3QzQ2MDA4NUJCQUEgLyogU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tICovLAogCQkJCTdBQjRF
QTQxMjI3NzdGQzcwMDg1QkJBQSAvKiBTYW5kYm94SW5pdGlhbGlhdGlvblBhcmFtZXRlcnNDb2Nv
YS5tbSAqLywKIAkJCQlFMTlCREE4ODE5MzY4NkE0MDBCOTdGNTcgLyogU2FuZGJveFV0aWxpdGll
cy5oICovLApAQCAtMTM0NDUsNiArMTM0NTAsNyBAQAogCQkJCTZCRTk2OUNEMUU1NEUwNTQwMDhC
NzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkJFOTY5Q0IxRTU0RDRDRjAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3ND
bGFzc2lmaWVyQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMzAwNjZFMTExMEY0RjcwMDMx
OTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NDJFN0JF
QjI3QjQ1ODY5MDBDNjlBQzEgLyogUmV2ZWFsSXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEw
NDgyQ0UxREREMzI0RjAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ2RjM4RThDMjQxNkU2NzMwMDU5Mzc1QSAvKiBSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEU5N0Q3NEQyMDBFOTAwNDAwQkY2NjQzIC8qIFNhZmVCcm93c2lu
Z1NQSS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggZGZhNzE3OWJjMzVlNjEzMGE4MjhhOTlkZDc2MWRkYmY1ZmNjOWMxYS4u
NzkxNTgzM2Y4OGZkNWZjMjc2MTM4ZTQxNmJlY2FhM2ZhZTFjN2ExYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzk3LDYgKzc5Nyw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludEFuZEJvdW5kYXJ5KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBib29sIGlz
SW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogCiAgICAgdm9pZCByZXF1ZXN0RGljdGF0aW9uQ29udGV4dChDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpPiYm
KTsKKyNpZiBFTkFCTEUoUkVWRUFMKQorICAgIHZvaWQgcmVxdWVzdFJWSXRlbUluQ3VycmVudFNl
bGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0
ZW0mKT4mJik7CisjZW5kaWYKICAgICB2b2lkIHJlcGxhY2VEaWN0YXRlZFRleHQoY29uc3QgU3Ry
aW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpOwogICAgIHZvaWQgcmVwbGFjZVNl
bGVjdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7
CiAgICAgdm9pZCByZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKGNvbnN0IFN0cmluZyYgdGV4dEZv
ckF1dG9jb3JyZWN0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkF1dG9jb3JyZWN0aW9u
RGF0YSk+JiYgcmVwbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNTgxNzIzNTBiMzE2YzlmY2RmZDk1ZDNiOTcw
NzYxZDk0ZDY3MDMzZC4uYjdhODM3MjE3ZTIxMzVhYzAyMDc0ZDllNjUyNTIwYzhiMzJhMjAxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC04MSw2ICs4MSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludChXZWJDb3JlOjpJbnRQ
b2ludCBwb2ludCwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBlbnVtOmJv
b2wgV2ViS2l0OjpSZXNwZWN0U2VsZWN0aW9uQW5jaG9yIHJlc3BlY3RTZWxlY3Rpb25BbmNob3Ip
IC0+IChib29sIGVuZElzTW92aW5nKSBBc3luYwogICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhFeHRl
bnRQb2ludEFuZEJvdW5kYXJ5KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdX
aXRoRm9jdXNlZEVsZW1lbnQpIC0+IChib29sIGVuZElzTW92aW5nKSBBc3luYwogICAgIFJlcXVl
c3REaWN0YXRpb25Db250ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3RlZFRleHQsIFN0cmluZyB0ZXh0
QmVmb3JlLCBTdHJpbmcgdGV4dEFmdGVyKSBBc3luYworI2lmIEVOQUJMRShSRVZFQUwpCisgICAg
UmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoKSAtPiAoV2ViS2l0OjpSZXZlYWxJ
dGVtIGl0ZW0pIEFzeW5jCisjZW5kaWYKICAgICBSZXBsYWNlRGljdGF0ZWRUZXh0KFN0cmluZyBv
bGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKICAgICBSZXBsYWNlU2VsZWN0ZWRUZXh0KFN0cmluZyBv
bGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKICAgICBSZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKFN0
cmluZyB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJBdXRvY29y
cmVjdGlvbkRhdGEgZGF0YSkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMmExMWRjYTAyZTgyYzA3YzBhZjQwMTk5
M2U2MTBkMzVlZGRhNTU5YS4uNDAxMTZmNTZkNWQ2YjRhZmU4MDIzN2Q4YmU5NThhMzYyMGNkYzBm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIlByaW50SW5mby5oIgogI2ltcG9y
dCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCIKICNpbXBvcnQgIlJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgiCisjaW1wb3J0ICJSZXZlYWxJdGVtLmgiCiAjaW1wb3J0ICJTYW5kYm94
VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJTaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuaCIKICNpbXBv
cnQgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKQEAgLTE0Nyw2ICsxNDgsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlVW5p
dHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9S
ZXZlYWxTb2Z0TGluay5oPgogI2ltcG9ydCA8d3RmL01hdGhFeHRyYXMuaD4KICNpbXBvcnQgPHd0
Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbXBvcnQgPHd0Zi9TY29wZS5oPgpAQCAtMjM0
Miw2ICsyMzQ0LDM1IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBjb25zCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoc2VsZWN0ZWRUZXh0LCBjb250ZXh0QmVmb3JlLCBjb250ZXh0QWZ0ZXIpOwogfQogCisj
aWYgRU5BQkxFKFJFVkVBTCkKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNl
bGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0
ZW0mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBSZWYgZnJhbWUgPSBDaGVja2VkUmVm
KG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBh
dXRvIHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKKyAgICBSZXRh
aW5QdHI8UlZJdGVtPiBpdGVtOworICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IGZ1bGxDaGFyYWN0ZXJSYW5nZTsKKyAgICAg
ICAgaWYgKHNlbGVjdGlvbi5pc1JhbmdlKCkpIHsKKyAgICAgICAgICAgIGF1dG8gc2VsZWN0aW9u
U3RhcnQgPSBzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCk7CisgICAgICAgICAgICBhdXRvIHNlbGVj
dGlvbkVuZCA9IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7CisKKyAgICAgICAgICAgIC8vIEFzIGNv
bnRleHQsIHdlIGFyZSBnb2luZyB0byB1c2UgdGhlIHN1cnJvdW5kaW5nIHBhcmFncmFwaHMgb2Yg
dGV4dC4KKyAgICAgICAgICAgIGZ1bGxDaGFyYWN0ZXJSYW5nZSA9IG1ha2VTaW1wbGVSYW5nZShz
dGFydE9mUGFyYWdyYXBoKHNlbGVjdGlvblN0YXJ0KSwgZW5kT2ZQYXJhZ3JhcGgoc2VsZWN0aW9u
RW5kKSk7CisgICAgICAgICAgICBpZiAoIWZ1bGxDaGFyYWN0ZXJSYW5nZSkKKyAgICAgICAgICAg
ICAgICBmdWxsQ2hhcmFjdGVyUmFuZ2UgPSBtYWtlU2ltcGxlUmFuZ2Uoc2VsZWN0aW9uU3RhcnQs
IHNlbGVjdGlvbkVuZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChmdWxsQ2hhcmFj
dGVyUmFuZ2UpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdGlvblJhbmdlID0gTlNNYWtl
UmFuZ2UoY2hhcmFjdGVyQ291bnQoKm1ha2VTaW1wbGVSYW5nZShmdWxsQ2hhcmFjdGVyUmFuZ2Ut
PnN0YXJ0LCBzZWxlY3Rpb25TdGFydCkpLCBjaGFyYWN0ZXJDb3VudCgqbWFrZVNpbXBsZVJhbmdl
KHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpKSk7CisgICAgICAgICAgICAgICAgU3RyaW5n
IGl0ZW1TdHJpbmcgPSBwbGFpblRleHQoKmZ1bGxDaGFyYWN0ZXJSYW5nZSk7CisgICAgICAgICAg
ICAgICAgaXRlbSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRo
VGV4dDppdGVtU3RyaW5nIHNlbGVjdGVkUmFuZ2U6c2VsZWN0aW9uUmFuZ2VdKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjb21wbGV0aW9uSGFuZGxlcihSZXZl
YWxJdGVtKFdURk1vdmUoaXRlbSkpKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OnJlcGxh
Y2VTZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1Rl
eHQpCiB7CiAgICAgUmVmIGZyYW1lID0gQ2hlY2tlZFJlZihtX3BhZ2UtPmZvY3VzQ29udHJvbGxl
cigpKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451760</attachid>
            <date>2022-02-11 17:10:03 -0800</date>
            <delta_ts>2022-02-11 17:47:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236478-20220211171001.patch</filename>
            <type>text/plain</type>
            <size>22199</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFhNzRhNDdjMTk2MzM1ZGVh
NTFmZjBmNWY5ZmI0ZmE4OThmMGEzYzguLmQ5YjJjYjFiY2RiYWYzNzQ5MDk4NmFlYmM2NDM2ZmY3
NDFiY2FhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDItMTEgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgUmV2
ZWFsIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAg
ICBSZXNwb25kIHRvIHByb3RvY29sIG1ldGhvZHMgdGhhdCByZXF1ZXN0IFJWSXRlbXMgZm9yIHNl
bGVjdGlvbi4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmg6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29j
b2EvU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmg6CisgICAgICAgICogU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW06
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcmVxdWVzdFJWSXRlbUluU2VsZWN0ZWRS
YW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0
UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKToKKwog
MjAyMi0wMi0xMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCBmaXggdGhlIEFwcGxlIFRWIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmgKaW5kZXggNTMzZTgwOTcwNTQwNTViODFhNmM1ZWEx
MDk4MWM1YjRkNDAyODc0YS4uNTcxYmJkMjI2MjkzMWNjZjM0NTMzZjIwMTNkOGYxZTFkYjJiYjA4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgogCiBuYW1l
c3BhY2UgSVBDIHsKIG5hbWVzcGFjZSBEZXRhaWwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvRGF0YVJlZmVyZW5jZS5oCmluZGV4IDczNjc5NTI2ZDQ2M2MxMTU2ZjY3OGE3ODkxYzk0NmYy
ODA3ZmI3YmEuLjMzNDE3MWRhMGJlNGMwNzBiZWFmNWQ3YzBiZGViYWJhZWYyMzI1NWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJyYXlSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
IDx3dGYvU3Bhbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRlbS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvUmV2ZWFsSXRlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZTE2YTYwMjk4MjY4NmIyYTg2MWRiOWY2NjNm
ZTExOTc3OWJmNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9SZXZlYWxJdGVtLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCAiQXJndW1lbnRDb2RlcnMuaCIKKwor
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFJWSXRlbTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFJldmVhbEl0ZW0geworICAgIAorcHVibGljOgorICAgIFJl
dmVhbEl0ZW0oKSA9IGRlZmF1bHQ7CisgICAgUmV2ZWFsSXRlbShSZXRhaW5QdHI8UlZJdGVtPiYm
KTsKKyAgICAKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxSZXZlYWxJdGVtPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CisgICAg
CisgICAgUlZJdGVtICppdGVtKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtLmdldCgpOyB9Citwcml2
YXRlOgorICAgIFJldGFpblB0cjxSVkl0ZW0+IG1faXRlbTsKK307CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShSRVZFQUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9S
ZXZlYWxJdGVtLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRlbS5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNjMxNzQ1MjI5ZDY2ZjFmZjMxNGVhYzg0OGQ1MWE1MzQ1MDg0YmFlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUmV2ZWFsSXRlbS5tbQpA
QCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJSZXZlYWxJdGVtLmgiCisKKyNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ29jb2EuaCIKKyNpbXBv
cnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNv
ZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgRU5BQkxFKFJFVkVBTCkKKwor
UmV2ZWFsSXRlbTo6UmV2ZWFsSXRlbShSZXRhaW5QdHI8UlZJdGVtPiYmIGl0ZW0pCisgICAgOiBt
X2l0ZW0geyBXVEZNb3ZlKGl0ZW0pIH0KK3sKK30KKwordm9pZCBSZXZlYWxJdGVtOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9pdGVtOwor
fQorCitzdGQ6Om9wdGlvbmFsPFJldmVhbEl0ZW0+IFJldmVhbEl0ZW06OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxO
U0FycmF5Pj4gYWxsb3dlZENsYXNzZXM7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VG
bGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIGF1dG8gYWxs
b3dlZCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTox
XSk7CisgICAgICAgIGlmIChhdXRvIHJ2SXRlbUNsYXNzID0gUEFMOjpnZXRSVkl0ZW1DbGFzcygp
KQorICAgICAgICAgICAgW2FsbG93ZWQgYWRkT2JqZWN0OnJ2SXRlbUNsYXNzXTsKKyAgICAgICAg
YWxsb3dlZENsYXNzZXMuZ2V0KCkgPSBhZG9wdE5TKFthbGxvd2VkIGNvcHldKTsKKyAgICB9KTsK
KyAgICAKKyAgICBhdXRvIGl0ZW0gPSBJUEM6OmRlY29kZTxSVkl0ZW0+KGRlY29kZXIsIGFsbG93
ZWRDbGFzc2VzLmdldCgpLmdldCgpKTsKKyAgICBpZiAoIWl0ZW0pCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gUmV2ZWFsSXRlbSB7IFdURk1vdmUoKml0ZW0pIH07
Cit9CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
U2FuZGJveEV4dGVuc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2Fu
ZGJveEV4dGVuc2lvbkNvY29hLm1tCmluZGV4IGVjYzliOTg4Y2MzOWVlODkyMzA3NzlkZDUzYzJl
YTBjMTA4NmZkOTkuLjViYTkyYmI4MjM5ZjI4MDliMDE4NGM0ZGY3MzA5OTljNDMwZjRkNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29j
b2EubW0KQEAgLTI4LDkgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05T
KQogCisjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJl
bmNlLmgiCiAjaW1wb3J0ICJEZWNvZGVyLmgiCiAjaW1wb3J0ICJFbmNvZGVyLmgiCisjaW1wb3J0
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgPHN0cmluZy5oPgogI2ltcG9ydCA8
d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaAppbmRleCA1N2Y5
ZTVhMjI0MzM3ZmJlMzZkZWFhNDZkNTA3NzU1YWNhMWEyYzk0Li4wNWIyOTMzMGQ3ZWIxMzBhZGZl
ODdmYzc2N2Y0MzE1Nzg4OGFmNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlQ29sbGVjdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RpbWVy
Lmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW1wb3J0IDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEltYWdlQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rp
b24ubW0KaW5kZXggODkyY2ExNDk4OWZjMmI1MDgzMDEzZjZjYmE4MDUwYTM3MDgzOTcyNC4uMDA2
OWY3ZjIyMzE5YmE1NDllNDVjYmRhN2E0ZTZlZWUyMDFkNmI5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29s
bGVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCkBAIC0yNyw4ICsyNywxMCBAQAogI2lt
cG9ydCAiUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgiCiAKICNpbXBvcnQgIlBs
YXRmb3JtQ0FMYXllclJlbW90ZS5oIgorI2ltcG9ydCAiUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJhY2tlbmQuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCiAjaW1w
b3J0ICJSZW1vdGVMYXllclRyZWVDb250ZXh0LmgiCisjaW1wb3J0IDxXZWJDb3JlL0NvbmNyZXRl
SW1hZ2VCdWZmZXIuaD4KIAogY29uc3QgU2Vjb25kcyB2b2xhdGlsZUJhY2tpbmdTdG9yZUFnZVRo
cmVzaG9sZCA9IDFfczsKIGNvbnN0IFNlY29uZHMgdm9sYXRpbGVTZWNvbmRhcnlCYWNraW5nU3Rv
cmVBZ2VUaHJlc2hvbGQgPSAyMDBfbXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZjE0ZDcz
NmNkNGZlZmFjMGVhMDJlYmM2NDQ4ZTIyMDQ1OGFiZmM4NC4uZDI2NzgwMWVhNGRiOTk4NzhkYTE3
ZTgwOTEzYjA5NWJjYjFiMjM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMTc0LDYgKzE3
NCw3IEBAIFNoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQogU2hhcmVkL0Nv
Y29hL0luc2VydFRleHRPcHRpb25zLmNwcAogU2hhcmVkL0NvY29hL0xvYWRQYXJhbWV0ZXJzQ29j
b2EubW0KIFNoYXJlZC9Db2NvYS9QREZLaXRTb2Z0TGluay5tbQorU2hhcmVkL0NvY29hL1JldmVh
bEl0ZW0ubW0KIFNoYXJlZC9Db2NvYS9TYW5kYm94RXh0ZW5zaW9uQ29jb2EubW0KIFNoYXJlZC9D
b2NvYS9TYW5kYm94SW5pdGlhbGlhdGlvblBhcmFtZXRlcnNDb2NvYS5tbQogU2hhcmVkL0NvY29h
L1NhbmRib3hVdGlsaXRpZXMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggNjQ0MDEwNTc0NTAxM2JkN2QzN2U2ODlmNDRiZjlkMmMwYzM4NTM1Ni4uNWJjYTgyNjVi
NjcyYjQxYmQxOTRlNjZmNzE1Y2ViNDMwMjVmNGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTM1Niw2ICszNTYsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVT
Y3JvbGxpbmdQZXJmb3JtYW5jZURhdGE7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjsKIGNsYXNzIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OworY2xhc3MgUmV2ZWFsSXRlbTsKIGNsYXNzIFNl
Y0tleVByb3h5U3RvcmU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2Vy
OwogY2xhc3MgVXNlckRhdGE7CkBAIC04NzYsNiArODc3LDkgQEAgcHVibGljOgogICAgIHZvaWQg
cmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCgpOwogICAgIHZvaWQgaGFuZGxlQXV0b2NvcnJl
Y3Rpb25Db250ZXh0KGNvbnN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYpOwogICAgIHZvaWQg
cmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKT4mJik7CisjaWYgRU5BQkxFKFJFVkVB
TCkKKyAgICB2b2lkIHJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgUmV2ZWFsSXRlbSYpPiYmKTsKKyNlbmRpZgogICAgIHZvaWQg
cmVwbGFjZURpY3RhdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYg
bmV3VGV4dCk7CiAgICAgdm9pZCByZXBsYWNlU2VsZWN0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xk
VGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2b2lkIGRpZFJlY2VpdmVQb3NpdGlv
bkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCAwOWM0OTFlZGNmNDMzYjJiZmIwNzA3ZThiYmNhZDdhNzZlY2RkMzE1
Li42YWE4ODk2MmY5NzA4MzMzZGJlMGUwMDU2ODQxOTgxNzllZjdiMThmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVZpZXdzLmgiCiAjaW1wb3J0ICJSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgiCisjaW1wb3J0ICJSZXZlYWxJdGVtLmgiCiAj
aW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJUZXh0Q2hl
Y2tlci5oIgogI2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCkBAIC03NTc5LDYgKzc1ODAsMTUgQEAg
c3RhdGljIGJvb2wgY2FuVXNlUXVpY2tib2FyZENvbnRyb2xsZXJGb3IoVUlUZXh0Q29udGVudFR5
cGUgdHlwZSkKICAgICByZXR1cm4gWUVTOwogfQogCisjaWYgRU5BQkxFKFJFVkVBTCkKKy0gKHZv
aWQpcmVxdWVzdFJWSXRlbUluU2VsZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKShSVkl0ZW0gKml0ZW0pKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3BhZ2UtPnJlcXVl
c3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKFtyZXZlYWxJdGVtU2VsZWN0aW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGNvbnN0IFdlYktpdDo6UmV2ZWFs
SXRlbSYgaXRlbSkgeworICAgICAgICByZXZlYWxJdGVtU2VsZWN0aW9uSGFuZGxlcihpdGVtLml0
ZW0oKSk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogLSAoQk9PTCloYXNIaWRkZW5Db250ZW50RWRp
dGFibGUKIHsKICAgICByZXR1cm4gX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucy5j
b250YWluc0FueSh7IFdlYktpdDo6RWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlw
cGVkLCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFsbCB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGUyZDZiNDk4ODExN2Qy
YTczMmY3ZWUxZmEwODNmZWQ2YzRhY2ZjNjIuLmIyZmNkNGZjMTU0NDkyNWI1MjFlZjkyNzM5ZTc2
NzQ0NzIxYWRmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQpAQCAtNDgsNiArNDgsNyBAQAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5oIgogI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgorI2lt
cG9ydCAiUmV2ZWFsSXRlbS5oIgogI2ltcG9ydCAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKICNpbXBv
cnQgIlRhcEhhbmRsaW5nUmVzdWx0LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgpAQCAtNTI1LDYg
KzUyNiwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLAogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUGFnZTo6UmVxdWVzdERpY3RhdGlvbkNvbnRleHQoKSwgV1RGTW92ZShj
YWxsYmFja0Z1bmN0aW9uKSk7CiB9CiAKKyNpZiBFTkFCTEUoUkVWRUFMKQordm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgV2ViS2l0OjpSZXZlYWxJdGVtJik+JiYgY2FsbGJhY2tGdW5jdGlvbikK
K3sKKyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBjYWxsYmFj
a0Z1bmN0aW9uKFJldmVhbEl0ZW0oKSk7CisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKCksIFdURk1v
dmUoY2FsbGJhY2tGdW5jdGlvbikpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KCkKIHsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dFJlcXVlc3QoKSwgbV93
ZWJQYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggOTU3YWEwNmY4ZmJlNjgzNjYyZDQ0OWVkYjFhY2E1M2ZiODU2NzA0ZS4uMTZh
NmQ2NWM0Nzk3NmU2NjBlNThhNjFmMDQxOGFkYjJlYTUwNmY4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NjUsNiArODY1LDcgQEAK
IAkJNDFGQUJEMkExRjRERTAwMTAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBQkQyODFG
NERERkRDMDA2QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCAqLzsgfTsKIAkJNDFG
QUY1RjUxRTNDMDY0OTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNDFFM0MwNjQxMDAxQUU2Nzgg
LyogV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDFGQUY1RjgxRTNDMTAyMTAwMUFFNjc4IC8q
IExpYldlYlJUQ1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIu
aCAqLzsgfTsKKwkJNDQyRTdCRUIyN0I0NTg2OTAwQzY5QUMxIC8qIFJldmVhbEl0ZW0uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MkU3QkVBMjdCNDU4
MTMwMEM2OUFDMSAvKiBSZXZlYWxJdGVtLmggKi87IH07CiAJCTQ0NTk5ODQyMjI4MzNFODcwMEU2
MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAvKiBT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLzsgfTsKIAkJNDQ3NkVGMDkyNUJGQzhCNzAw
NEEwNTg3IC8qIF9XS0FwcEhpZ2hsaWdodERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDc2RUYwODI1QkZDOEI3MDA0QTA1ODcgLyogX1dL
QXBwSGlnaGxpZ2h0RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0NDgyNzM0NzI0NTI4RjYwMDBBOTU0OTMgLyogQ29jb2FJbWFnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ4MjczNDYy
NDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCAqLzsgfTsKQEAgLTQyMjgsNiArNDIyOSw4
IEBACiAJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFCQkYg
LyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29y
a2VyRG93bmxvYWRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkZEMkRD
Mjc1QTZBOTQwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ0MkU3QkU4MjdCNDU3MkIwMEM2OUFDMSAvKiBSZXZlYWxJdGVt
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmV2ZWFsSXRlbS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDQyRTdCRUEyN0I0NTgxMzAwQzY5QUMxIC8qIFJldmVhbEl0ZW0uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmV2ZWFsSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDU5OTg0MTIyODMzRTYwMDBFNjEzNzMgLyog
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDc2RUYw
ODI1QkZDOEI3MDA0QTA1ODcgLyogX1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxMjAsNiArOTEyMyw4IEBACiAJCQkJMkQ0NDBCODMy
NUVGMjM1RTAwQTk4RDg3IC8qIFBERktpdFNvZnRMaW5rLmggKi8sCiAJCQkJMkQ0NDBCODIyNUVG
MjM1RTAwQTk4RDg3IC8qIFBERktpdFNvZnRMaW5rLm1tICovLAogCQkJCUY0QkUwRDc2MjdBQUUx
Q0IwMDVGMDMyMyAvKiBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oICovLAorCQkJ
CTQ0MkU3QkVBMjdCNDU4MTMwMEM2OUFDMSAvKiBSZXZlYWxJdGVtLmggKi8sCisJCQkJNDQyRTdC
RTgyN0I0NTcyQjAwQzY5QUMxIC8qIFJldmVhbEl0ZW0ubW0gKi8sCiAJCQkJN0FCNEVBM0YyMjc3
N0M0NjAwODVCQkFBIC8qIFNhbmRib3hFeHRlbnNpb25Db2NvYS5tbSAqLywKIAkJCQk3QUI0RUE0
MTIyNzc3RkM3MDA4NUJCQUEgLyogU2FuZGJveEluaXRpYWxpYXRpb25QYXJhbWV0ZXJzQ29jb2Eu
bW0gKi8sCiAJCQkJRTE5QkRBODgxOTM2ODZBNDAwQjk3RjU3IC8qIFNhbmRib3hVdGlsaXRpZXMu
aCAqLywKQEAgLTEzNDQ1LDYgKzEzNDUwLDcgQEAKIAkJCQk2QkU5NjlDRDFFNTRFMDU0MDA4Qjc0
ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZCRTk2OUNCMUU1NEQ0Q0YwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xh
c3NpZmllckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTMwMDY2RTExMTBGNEY3MDAzMTkz
N0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQyRTdCRUIy
N0I0NTg2OTAwQzY5QUMxIC8qIFJldmVhbEl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDQ4
MkNFMURERDMyNEYwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NkYzOEU4QzI0MTZFNjczMDA1OTM3NUEgLyogUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBFOTdENzREMjAwRTkwMDQwMEJGNjY0MyAvKiBTYWZlQnJvd3NpbmdT
UEkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IGRmYTcxNzliYzM1ZTYxMzBhODI4YTk5ZGQ3NjFkZGJmNWZjYzljMWEuLjc5
MTU4MzNmODhmZDVmYzI3NjEzOGU0MTZiZWNhYTNmYWUxYzdhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc5Nyw2ICs3OTcsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9pbnRBbmRCb3VuZGFyeShjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwgYm9vbCBpc0lu
dGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKIAogICAgIHZvaWQgcmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKT4mJik7
CisjaWYgRU5BQkxFKFJFVkVBTCkKKyAgICB2b2lkIHJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxl
Y3RlZFJhbmdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViS2l0OjpSZXZlYWxJdGVt
Jik+JiYpOworI2VuZGlmCiAgICAgdm9pZCByZXBsYWNlRGljdGF0ZWRUZXh0KGNvbnN0IFN0cmlu
ZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2b2lkIHJlcGxhY2VTZWxl
Y3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpOwog
ICAgIHZvaWQgcmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShjb25zdCBTdHJpbmcmIHRleHRGb3JB
dXRvY29ycmVjdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJBdXRvY29ycmVjdGlvbkRh
dGEpPiYmIHJlcGx5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDU4MTcyMzUwYjMxNmM5ZmNkZmQ5NWQzYjk3MDc2
MWQ5NGQ2NzAzM2QuLmI3YTgzNzIxN2UyMTM1YWMwMjA3NGQ5ZTY1MjUyMGM4YjMyYTIwMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgpAQCAtODEsNiArODEsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBVcGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9pbnQoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCwgZW51bTpib29s
IFdlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvciByZXNwZWN0U2VsZWN0aW9uQW5jaG9yKSAt
PiAoYm9vbCBlbmRJc01vdmluZykgQXN5bmMKICAgICBVcGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50
UG9pbnRBbmRCb3VuZGFyeShXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdl
YkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0
aEZvY3VzZWRFbGVtZW50KSAtPiAoYm9vbCBlbmRJc01vdmluZykgQXN5bmMKICAgICBSZXF1ZXN0
RGljdGF0aW9uQ29udGV4dCgpIC0+IChTdHJpbmcgc2VsZWN0ZWRUZXh0LCBTdHJpbmcgdGV4dEJl
Zm9yZSwgU3RyaW5nIHRleHRBZnRlcikgQXN5bmMKKyNpZiBFTkFCTEUoUkVWRUFMKQorICAgIFJl
cXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKCkgLT4gKFdlYktpdDo6UmV2ZWFsSXRl
bSBpdGVtKSBBc3luYworI2VuZGlmCiAgICAgUmVwbGFjZURpY3RhdGVkVGV4dChTdHJpbmcgb2xk
VGV4dCwgU3RyaW5nIG5ld1RleHQpCiAgICAgUmVwbGFjZVNlbGVjdGVkVGV4dChTdHJpbmcgb2xk
VGV4dCwgU3RyaW5nIG5ld1RleHQpCiAgICAgUmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShTdHJp
bmcgdGV4dEZvckF1dG9jb3JyZWN0aW9uKSAtPiAoc3RydWN0IFdlYktpdDo6V2ViQXV0b2NvcnJl
Y3Rpb25EYXRhIGRhdGEpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDJhMTFkY2EwMmU4MmMwN2MwYWY0MDE5OTNl
NjEwZDM1ZWRkYTU1OWEuLjQwMTE2ZjU2ZDVkNmI0YWZlODAyMzdkOGJlOTU4YTM2MjBjZGMwZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJQcmludEluZm8uaCIKICNpbXBvcnQg
IlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5oIgorI2ltcG9ydCAiUmV2ZWFsSXRlbS5oIgogI2ltcG9ydCAiU2FuZGJveFV0
aWxpdGllcy5oIgogI2ltcG9ydCAiU2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJTaGFyZWRCdWZmZXJDb3B5LmgiCkBAIC0xNDcsNiArMTQ4LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVVuaXRz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CisjaW1wb3J0IDxwYWwvY29jb2EvUmV2
ZWFsU29mdExpbmsuaD4KICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYvU2NvcGUuaD4KQEAgLTIzNDIs
NiArMjM0NCwzNSBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJiwgY29ucwogICAgIGNvbXBsZXRpb25IYW5k
bGVyKHNlbGVjdGVkVGV4dCwgY29udGV4dEJlZm9yZSwgY29udGV4dEFmdGVyKTsKIH0KIAorI2lm
IEVOQUJMRShSRVZFQUwpCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxl
Y3RlZFJhbmdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViS2l0OjpSZXZlYWxJdGVt
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgUmVmIGZyYW1lID0gQ2hlY2tlZFJlZiht
X3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgYXV0
byBzZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CisgICAgUmV0YWlu
UHRyPFJWSXRlbT4gaXRlbTsKKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiBmdWxsQ2hhcmFjdGVyUmFuZ2U7CisgICAgICAg
IGlmIChzZWxlY3Rpb24uaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBhdXRvIHNlbGVjdGlvblN0
YXJ0ID0gc2VsZWN0aW9uLnZpc2libGVTdGFydCgpOworICAgICAgICAgICAgYXV0byBzZWxlY3Rp
b25FbmQgPSBzZWxlY3Rpb24udmlzaWJsZUVuZCgpOworCisgICAgICAgICAgICAvLyBBcyBjb250
ZXh0LCB3ZSBhcmUgZ29pbmcgdG8gdXNlIHRoZSBzdXJyb3VuZGluZyBwYXJhZ3JhcGhzIG9mIHRl
eHQuCisgICAgICAgICAgICBmdWxsQ2hhcmFjdGVyUmFuZ2UgPSBtYWtlU2ltcGxlUmFuZ2Uoc3Rh
cnRPZlBhcmFncmFwaChzZWxlY3Rpb25TdGFydCksIGVuZE9mUGFyYWdyYXBoKHNlbGVjdGlvbkVu
ZCkpOworICAgICAgICAgICAgaWYgKCFmdWxsQ2hhcmFjdGVyUmFuZ2UpCisgICAgICAgICAgICAg
ICAgZnVsbENoYXJhY3RlclJhbmdlID0gbWFrZVNpbXBsZVJhbmdlKHNlbGVjdGlvblN0YXJ0LCBz
ZWxlY3Rpb25FbmQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZnVsbENoYXJhY3Rl
clJhbmdlKSB7CisgICAgICAgICAgICAgICAgYXV0byBzZWxlY3Rpb25SYW5nZSA9IE5TTWFrZVJh
bmdlKGNoYXJhY3RlckNvdW50KCptYWtlU2ltcGxlUmFuZ2UoZnVsbENoYXJhY3RlclJhbmdlLT5z
dGFydCwgc2VsZWN0aW9uU3RhcnQpKSwgY2hhcmFjdGVyQ291bnQoKm1ha2VTaW1wbGVSYW5nZShz
ZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKSkpOworICAgICAgICAgICAgICAgIFN0cmluZyBp
dGVtU3RyaW5nID0gcGxhaW5UZXh0KCpmdWxsQ2hhcmFjdGVyUmFuZ2UpOworICAgICAgICAgICAg
ICAgIGl0ZW0gPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFRl
eHQ6aXRlbVN0cmluZyBzZWxlY3RlZFJhbmdlOnNlbGVjdGlvblJhbmdlXSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgY29tcGxldGlvbkhhbmRsZXIoUmV2ZWFs
SXRlbShXVEZNb3ZlKGl0ZW0pKSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpyZXBsYWNl
U2VsZWN0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0
KQogewogICAgIFJlZiBmcmFtZSA9IENoZWNrZWRSZWYobV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KSktPmZvY3VzZWRPck1haW5GcmFtZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>