<?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>217239</bug_id>
          
          <creation_ts>2020-10-02 11:11:29 -0700</creation_ts>
          <short_desc>Unify linkedOnOrAfter duplicate code and use SPI/WebCoreTestSupport instead of NSUserDefaults</short_desc>
          <delta_ts>2020-10-05 07:59:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>68089</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694161</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-02 11:11:29 -0700</bug_when>
    <thetext>Unify linkedOnOrAfter duplicate code and use SPI/WebCoreTestSupport instead of NSUserDefaults</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694163</commentid>
    <comment_count>1</comment_count>
      <attachid>410345</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-02 11:16:52 -0700</bug_when>
    <thetext>Created attachment 410345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694164</commentid>
    <comment_count>2</comment_count>
      <attachid>410346</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-02 11:20:39 -0700</bug_when>
    <thetext>Created attachment 410346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694193</commentid>
    <comment_count>3</comment_count>
      <attachid>410354</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-02 12:25:01 -0700</bug_when>
    <thetext>Created attachment 410354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694457</commentid>
    <comment_count>4</comment_count>
      <attachid>410354</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-03 14:38:39 -0700</bug_when>
    <thetext>Comment on attachment 410354
Patch

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

Great idea to unify and clean this up.

review- because this doesn’t yet have the correct code to do the right thing inside the web process.

&gt; Source/WebCore/platform/cocoa/VersionChecks.mm:58
&gt; +    return sdkVersionAsInteger &amp;&amp; dyld_get_program_sdk_version() &gt;= sdkVersionAsInteger;

I think this needs to call applicationSDKVersion() from RuntimeApplicationChecksCocoa.h instead of dyld_get_program_sdk_version(), otherwise it will give the wrong answer when run inside the web process.

&gt; Source/WebCore/testing/js/WebCoreTestSupport.cpp:150
&gt; +    WebCore::setLinkedOnOrAfterEverythingForTesting();

How about this instead?

    setApplicationSDKVersion(std::numeric_limits&lt;uint32_t&gt;::max());

Then we don’t need to add WebCore::setLinkedOnOrAfterEverythingForTesting. Doing something similar for the SDK version that is passed cross-process could reduce the change in modern WebKit. We’d change the WebProcessPool code that sets uiProcessSDKVersion to also call applicationSDKVersion() instead of dyld_get_program_sdk_version().

&gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1045
&gt; +    WebCoreTestSupport::setLinkedOnOrAfterEverythingForTesting();

I think we should move this out of this function into DumpRenderTreeMain.

&gt; Tools/TestWebKitAPI/Configurations/TestWTF.xcconfig:30
&gt; +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BUILDING_TEST_WTF=1

No need for the &quot;=1&quot; here.

&gt; Tools/TestWebKitAPI/ios/mainIOS.mm:44
&gt; +#ifndef BUILDING_TEST_WTF
&gt; +    [WKProcessPool _setLinkedOnOrAfterEverythingForTesting];
&gt; +#endif

Can we put this after the NSUserDefaults call?

&gt; Tools/WebKitTestRunner/mac/main.mm:50
&gt; +    [WKProcessPool _setLinkedOnOrAfterEverythingForTesting];

We should move this out of this function into main.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694476</commentid>
    <comment_count>5</comment_count>
      <attachid>410446</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-03 16:55:41 -0700</bug_when>
    <thetext>Created attachment 410446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694478</commentid>
    <comment_count>6</comment_count>
      <attachid>410447</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-03 17:06:58 -0700</bug_when>
    <thetext>Created attachment 410447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694567</commentid>
    <comment_count>7</comment_count>
      <attachid>410447</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-04 13:14:00 -0700</bug_when>
    <thetext>Comment on attachment 410447
Patch

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

&gt; Tools/TestWebKitAPI/mac/mainMac.mm:55
&gt; +#ifndef BUILDING_TEST_WTF
&gt; +    [WKProcessPool _setLinkedOnOrAfterEverythingForTesting];
&gt; +#endif

This doesn’t really belong, here, between the dictionary used for NSUserDefaults, and the method call for NSUserDefaults. I&apos;d move it down a little bit, until after the NSUserDefaults code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694680</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-05 07:58:21 -0700</bug_when>
    <thetext>Done
http://trac.webkit.org/r267966</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694681</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-05 07:59:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/69954414&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410345</attachid>
            <date>2020-10-02 11:16:52 -0700</date>
            <delta_ts>2020-10-02 11:20:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217239-20201002111651.patch</filename>
            <type>text/plain</type>
            <size>92531</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBlNDY5MjMxNmM1Yzdi
ODAxMWVmNTE2YzI0MTM1NjgwY2I2MzViNi4uNjE2MDhlN2YyZGFjMGE3ODI3ZjIxNmExODc2ZWFl
NGQ5YzM1MmMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEwLTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkg
bGlua2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2RlIGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3Vw
cG9ydCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZSBtYWtlIG5ldyBTYWZhcmkgc2hpcHBlZCBvbiBvbGQg
T1NlcyBoYXZlIHRoZSBuZXcgYmVoYXZpb3Igd2l0aCByZWdhcmRzIHRvIGxpbmtlZE9uT3JBZnRl
ciwKKyAgICAgICAgYW5kIHdpdGggRHVtcFJlbmRlclRyZWUsIFdlYktpdFRlc3RSdW5uZXIsIGFu
ZCBUZXN0V2ViS2l0QVBJIHdlIHRlc3QgdGhlIG5ldyBiZWhhdmlvci4KKyAgICAgICAgV2UgaGFk
IGR1cGxpY2F0ZSBpbXBsZW1lbnRhdGlvbnMgaW4gV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kgdGhh
dCBJIG1vdmUgdG8gV2ViQ29yZSB0byBzaGFyZQorICAgICAgICBhbmQgdG8gYmUgdXNlZCBieSBX
ZWJDb3JlIGluIGNhc2VzIGxpa2UgYnVnIDY4MDg5LgorICAgICAgICBJIGFsc28gdXNlIFNQSSBv
biBXS1Byb2Nlc3NQb29sIGFuZCBXZWJLaXRUZXN0U3VwcG9ydCB0byBzZXQgdGhpcyB2YWx1ZSBm
b3IgRHVtcFJlbmRlclRyZWUsCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIsIGFuZCBUZXN0V2Vi
S2l0QVBJLiAgSXQgdG9vayBhIG5ldyBwcmVwcm9jZXNzb3IgZGVmaW5pdGlvbiB0byBnZXQgVGVz
dFdURiB0bworICAgICAgICBsaW5rIHN1Y2Nlc3NmdWxseSBzaW5jZSBpdCBkb2Vzbid0IGxpbmsg
d2l0aCBXZWJLaXQuZnJhbWV3b3JrLCBidXQgaXQgYWxzbyBkb2Vzbid0IGhhdmUgYW55CisgICAg
ICAgIGxpbmtlZE9uT3JBZnRlciBjaGVja3MsIHNvIHRoaXMgaXMgbm8gcHJvYmxlbS4KKworICAg
ICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3Mu
aC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1tOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbS4KKyAgICAg
ICAgKFdlYkNvcmU6OnNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRlcik6CisgICAgICAgICogdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRM
aW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAgICAgICogdGVzdGluZy9q
cy9XZWJDb3JlVGVzdFN1cHBvcnQuaDoKKwogMjAyMC0xMC0wMSAgUGVuZyBMaXUgIDxwZW5nLmxp
dTZAYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBmcm9t
IGxpYndlYnJ0YyBoZWFkZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3OTg2YjE2ZDBhYzA4ZDUxNmYwNDYzYjhk
MGMyMDRmZTYzMGIxMDkuLmY1NjY4OTM4Y2FjMmJkZDQ4ZTQ0NzUzYjY1ZTkzODc4NGQ3ZGM2YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjAtMTAtMDIgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVbmlmeSBsaW5rZWRPbk9yQWZ0
ZXIgZHVwbGljYXRlIGNvZGUgYW5kIHVzZSBTUEkvV2ViQ29yZVRlc3RTdXBwb3J0IGluc3RlYWQg
b2YgTlNVc2VyRGVmYXVsdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW06CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29j
b2EpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckR1cGxpY2F0ZUNv
bXBsZXRpb25IYW5kbGVyQ2FsbCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJC
cm93c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0OjpkZXRlcm1pbmVJVFBTdGF0ZSk6Cisg
ICAgICAgICogU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFBhc3NpdmVU
b3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VS
ZWxvYWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToK
KyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0Zv
clRlc3RpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgIChzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOgorICAg
ICAgICAoc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3NldHVwUGFnZUNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyByZWxvYWRd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKGRlZmF1bHRTaG91bGREZWNpZGVQb2xpY3lC
ZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgaW5pdF0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9jb21wdXRlZE9ic2N1cmVkSW5zZXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L21hYy9XS1dlYlZpZXdNYWMubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX2RyYWdEZXN0
aW5hdGlvbkFjdGlvbkZvckRyYWdnaW5nSW5mbzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgaW5z
cGVjdG9yV0tXZWJWaWV3UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21l
ZE1haW5GcmFtZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4
dGVuc2lvbkhhbmRsZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc01haW5UaHJlYWRPckNoZWNrRGlz
YWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6
Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvdWxkVXNlQ29udGV4
dE1lbnVzXSk6CisgICAgICAgIChhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbToKKyAgICAgICAgKC1b
V0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250ZW50SW5zZXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVza3RvcENsYXNzQnJv
d3NpbmdSZWNvbW1lbmRlZCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mp
OgorCiAyMDIwLTEwLTAxICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFByZXZlbnQgbWVkaWEgY2FwdHVyZSB1bmxlc3MgdGhlIGFwcGxpY2F0aW9uIGhh
cyBjb3JyZWN0IGRhdGEgZm9yIHN5c3RlbSBwZXJtaXNzaW9uIHByb21wdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCmluZGV4IGIxNTFjYmNmZDk2MTczMjc4ZWZiZGQxYzEwMWU4OTMwYmI4ZjY1
OWMuLmE2Yzk0ZDVlYmJkOTM4ZDQ4ZmZhMjNjMjM5OGVkZDhhOTViNDVlNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0xMC0wMiAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IGxpbmtl
ZE9uT3JBZnRlciBkdXBsaWNhdGUgY29kZSBhbmQgdXNlIFNQSS9XZWJDb3JlVGVzdFN1cHBvcnQg
aW5zdGVhZCBvZiBOU1VzZXJEZWZhdWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSURlbGVnYXRl
Lm1tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlEZWxlZ2F0ZSB3ZWJWaWV3OmRyYWdEZXN0aW5h
dGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86XSk6CisgICAgICAgICogTWlzYy9XZWJJY29u
RGF0YWJhc2UubW06CisgICAgICAgICgrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJh
c2VdKToKKyAgICAgICAgKiBNaXNjL1dlYktpdFZlcnNpb25DaGVja3MuaDoKKyAgICAgICAgKiBN
aXNjL1dlYktpdFZlcnNpb25DaGVja3MubW06CisgICAgICAgIChXZWJLaXRMaW5rVGltZVZlcnNp
b24pOgorICAgICAgICAobGlua2VkT25PckFmdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVm
YXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAo
V2ViS2l0OjpkZWZhdWx0U2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyk6CisKIDIwMjAtMTAt
MDEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBkdXBs
aWNhdGUgZGVmaW5pdGlvbnMgb2YgQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTSW5kaXZp
ZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRl
eCA0NWYzMDIyOWRkYzAwNTk5NTYzN2I0OWM0MjZjODNkNzZlNzJkODM1Li4wNTg1MjNiNzdjNDY4
MzMzMzUwN2UzZWQ1NjQzNjNhYWM2Mjc3ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAg
LTI1MSw2ICsyNTEsNyBAQCBwbGF0Zm9ybS9jb2NvYS9TeXN0ZW1WZXJzaW9uLm1tCiBwbGF0Zm9y
bS9jb2NvYS9UZWxlcGhvbmVOdW1iZXJEZXRlY3RvckNvY29hLmNwcAogcGxhdGZvcm0vY29jb2Ev
VGhlbWVDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvVXNlckFnZW50Q29jb2EubW0KK3BsYXRmb3Jt
L2NvY29hL1ZlcnNpb25DaGVja3MubW0KIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50Lm1tCiBwbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5j
cHAKIHBsYXRmb3JtL2NvY29hL1dlYkNvcmVBZGRpdGlvbnMubW0gQG5vLXVuaWZ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM1
MmRiM2MyMTBjZWFjZTUyOTkxODY4ZWNiMGNiNzM2MzVjZmVkMC4uNTBhNWI5NjliMTFiYzM4NzJj
N2RlY2EwYWNjNWUzMTQwNzgxN2Y3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDc5Niw2ICs0Nzk2LDcgQEAKIAkJREVDQTgw
NkMxRjlGRUQ2QTAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyOTkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREVDQTdGREExRjlGRTlBMjAwRTNCNjYx
IC8qIFVuaWZpZWRTb3VyY2UyOTkuY3BwICovOyB9OwogCQlERUNBODA2RDFGOUZFRDZBMDBFM0I2
NjEgLyogVW5pZmllZFNvdXJjZTMwMC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBERUNBN0ZCQjFGOUZFOTgzMDBFM0I2NjEgLyogVW5pZmllZFNvdXJj
ZTMwMC5jcHAgKi87IH07CiAJCURGMTlFMkFDMjQ3NzJCQzEwMDdCREFDQiAvKiBTaG91bGRSZWxh
eFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREYxOUUyQUEyNDc3MjlBNjAwN0JEQUNCIC8qIFNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJREY0RTM4RTAyNTI3OTU5NTAwMkE3NDgxIC8qIFZlcnNpb25D
aGVja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERG
NEUzOERFMjUyNzk1OTQwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREY5NUIxNEEyNEZEQUZEMzAwQjFG
NEQ3IC8qIFRleHRDb2RlY0NKSy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREY5NUIxNDgyNEZEQUZEMzAwQjFGNEQ3IC8qIFRleHRDb2RlY0NKSy5oICov
OyB9OwogCQlERjlBRkQ3MjEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREY5QUZENzAxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaCAqLzsgfTsKIAkJREY5QUZENzMxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjlBRkQ3MTEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSAqLzsgfTsKQEAgLTE1NDM1LDYgKzE1NDM2
LDggQEAKIAkJREVDQTdGRjQxRjlGRTlCOTAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyNTUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTI1NS5j
cHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS91bmlmaWVkLXNvdXJjZXMvVW5pZmll
ZFNvdXJjZTI1NS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlE
RUNBN0ZGNTFGOUZFOUJBMDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTI1Ni5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMjU2LmNwcDsgcGF0aCA9
ICJEZXJpdmVkU291cmNlcy9XZWJDb3JlL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMjU2
LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCURGMTlFMkFBMjQ3
NzI5QTYwMDdCREFDQiAvKiBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjRFMzhEQzI1Mjc5
NTkzMDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFZlcnNpb25DaGVja3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCURGNEUzOERFMjUyNzk1OTQwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZlcnNpb25DaGVja3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJREY3RTlBMjk0QzdBQUNFMEFEODlCM0REIC8qIE1hdGhNTE9wZXJh
dG9yRGljdGlvbmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxP
cGVyYXRvckRpY3Rpb25hcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY5NUIx
NDYyNEZEQUZEMjAwQjFGNEQ3IC8qIFRleHRDb2RlY0NKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlERjk1QjE0ODI0RkRBRkQzMDBCMUY0RDcgLyogVGV4dENvZGVjQ0pLLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDb2RlY0NKSy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTc1NDIsNiArMTc1NDUsOCBAQAogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk2RkU3RERERDIwRUM2RThCMDA4QjVCNEUgLyogdGV4
dCAqLywKKwkJCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFr
ZXIuY3BwICovLAorCQkJCTZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50
QnJlYWtlci5oICovLAogCQkJCTZGN0NBM0M5MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmggKi8sCiAJCQkJNkYzNUVGQUYyMTg3Q0JENTAwNDRFMEY0
IC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwICovLApAQCAtMTc1NTQsOCAr
MTc1NTksNiBAQAogCQkJCTZGMENENjk0MjI5RUQzMjcwMEM1OTk0RSAvKiBJbmxpbmVMaW5lLmgg
Ki8sCiAJCQkJNkY2OUE3OTkyNEQ2RkFCODAwRTZCODVEIC8qIElubGluZUxpbmVCb3guY3BwICov
LAogCQkJCTZGQjI0MDAzMjNERkYxMjcwMDc5NjQ1OCAvKiBJbmxpbmVMaW5lQm94LmggKi8sCi0J
CQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAq
LywKLQkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIu
aCAqLywKIAkJCQk2RjI1QjIwMDIyMEE4NUFCMDAwMDAxMUIgLyogSW5saW5lTGluZUJ1aWxkZXIu
Y3BwICovLAogCQkJCTZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRl
ci5oICovLAogCQkJCTZGOTE0MjBGMjUxNTIxMzcwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0
cnkuaCAqLywKQEAgLTI0MDY0LDYgKzI0MDY3LDggQEAKIAkJCQkzMTBENzE5NDFCMzM1QzlEMDA5
QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQwMDlDN0I3MyAv
KiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQwNiAvKiBVc2Vy
QWdlbnRDb2NvYS5tbSAqLywKKwkJCQlERjRFMzhERTI1Mjc5NTk0MDAyQTc0ODEgLyogVmVyc2lv
bkNoZWNrcy5oICovLAorCQkJCURGNEUzOERDMjUyNzk1OTMwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hl
Y2tzLm1tICovLAogCQkJCTUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci5oICovLAogCQkJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovLAogCQkJCTUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAv
KiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovLApAQCAtMzE3NzIsNiArMzE3
NzcsNyBAQAogCQkJCUNEMDYzRjgzMUUyM0ZBODkwMDgxMkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFNTBBMTU1QTA1MDAwQTQyMzQgLyogSW5saW5l
Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA1OTI2NDFFMjdBM0FEMDBENTdDOTggLyogSW5s
aW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkZFMTk4MTcyMTc4Mzk3QzAw
NDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTdD
QjUyRTE4MkEzRUZDMDA3OUE2NDcgLyogSW5saW5lRWxlbWVudEJveC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThDRkY1RTMwQTE1NUEwNTAwMEE0MjM0IC8qIElubGluZUZsb3dCb3guaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc4MCw3ICszMTc4Niw2IEBACiAJCQkJQkNF
Nzg5MTYxMTIwRDYwODAwNjBFQ0U1IC8qIElubGluZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RjBDRDY5NTIyOUVEMzI3MDBDNTk5NEUgLyogSW5saW5lTGluZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkZCMjQwMDUyM0RGRjEyODAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCBpbiBI
ZWFkZXJzICovLAotCQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVDb250ZW50
QnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8q
IElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjkxNDIxMTI1MTUyMTM4
MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkMz
Rjk0NzI1MTY3NTY3MDBBNDlCRUEgLyogSW5saW5lTGluZVJ1bi5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNDM0MSw2ICszNDM0Niw3IEBACiAJCQkJMTVDNzcwOEQxMDBEM0M2QjAwNUJBMjY3IC8qIFZh
bGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEFGMTJCMDI2RjcwMEMxQTM1
OSAvKiBWZWN0b3JNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjFBMEMzODIyOUE0ODE4MDBE
MzdBREIgLyogVmVsb2NpdHlEYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlERjRFMzhFMDI1Mjc5
NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3
MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzgg
LyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVyc2lvbkNoZWNrcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVyc2lvbkNoZWNrcy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNj
NjBmYmMyMTI4ZjIzN2Y3MmU5MmIyY2RkY2FmZWNmYjhmYjQ2ZTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLmgKQEAgLTAsMCAr
MSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9z
cGkvZGFyd2luL2R5bGRTUEkuaD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvVmVyc2lvbkNoZWNrc0FkZGl0aW9ucy5oPgorI2Vsc2UKKyNk
ZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9XSVRIX0lPU19BUFBTX09OX01BQ09TIDAKKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgU0RLVmVyc2lvbiA6IHVp
bnQzMl90IHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIEZpcnN0V2l0aE5ldHdvcmtD
YWNoZSA9IERZTERfSU9TX1ZFUlNJT05fOV8wLAorICAgIEZpcnN0V2l0aE1lZGlhVHlwZXNSZXF1
aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCisgICAg
Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBE
WUxEX0lPU19WRVJTSU9OXzExXzAsCisgICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhh
dmlvciA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwKKyAgICBGaXJzdFRoYXREaXNhbGxvd3NTZXR0
aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8zLAorICAg
IEZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50ID0gRFlM
RF9JT1NfVkVSU0lPTl8xMV8zLAorICAgIEZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0
c0FyZU5vdE9ic2N1cmluZ0luc2V0cyA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKKyAgICBGaXJz
dFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFs
bHkgPSBEWUxEX0lPU19WRVJTSU9OXzEyXzAsCisgICAgRmlyc3RXaXRoTWFpblRocmVhZFJlbGVh
c2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKKyAgICBG
aXJzdFdpdGhvdXRVbmNvbmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERf
SU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFdpdGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0
YWxsYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEyXzIsCisgICAgRmlyc3RXaXRoUHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEyXzIsCisgICAgRmly
c3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAs
CisgICAgRmlyc3RXaXRoRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJID0g
RFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAgIEZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVM
b2FkaW5nUXVpY2tMb29rUHJldmlldyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJz
dFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVz
ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAgIEZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5
TW9kZUJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFRoYXRIYXNV
SUNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmly
c3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcyA9IERZTERfSU9T
X1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFRoYXRTdXBwb3J0c092ZXJmbG93SGlkZGVuT25NYWlu
RnJhbWUgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RXaGVyZVNpdGVTcGVjaWZp
Y1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzIsCisgICAg
Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQs
CisgICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9O
XzE0XzAsCisgICAgRmlyc3RUaGF0U2VuZHNOYXRpdmVNb3VzZUV2ZW50cyA9IERZTERfSU9TX1ZF
UlNJT05fMTNfNCwKKyAgICBGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3Nl
cnRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCisgICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0
YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKKyAgICBGaXJz
dFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MgPSBEWUxEX0lPU19WRVJTSU9OX0ZJUlNUX1dJVEhf
SU9TX0FQUFNfT05fTUFDT1MsCisjZWxpZiBQTEFURk9STShNQUMpCisgICAgRmlyc3RXaXRoTmV0
d29ya0NhY2hlID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMSwKKyAgICBGaXJzdFdpdGhFeGNl
cHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTMsCisgICAgRmlyc3RXaXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZh
dWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKKyAgICBGaXJzdFdpdGhFeHBpcmVkT25s
eVJlbG9hZEJlaGF2aW9yID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKKyAgICBGaXJzdFdp
dGhXZWJJY29uRGF0YWJhc2VXYXJuaW5nID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKKyAg
ICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5ID0gRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMF8xNCwKKyAgICBGaXJzdFdpdGhvdXRVbmNvbmRpdGlvbmFsVW5p
dmVyc2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCisgICAg
Rmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzE1LAorICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0Rp
ZmZlcmVudERhdGFTdG9yZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1LAorICAgIEZpcnN0
V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xNV8xLAorICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80LAorICAgIEZpcnN0V2l0aFNlc3Npb25DbGVhbnVw
QnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNiwKKyAgICBGaXJzdFdpdGhJbml0
aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24gPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEw
XzE2LAorICAgIEZpcnN0V2l0aFdLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1cm5pbmdOaWwgPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAorI2VuZGlmCit9OworCitlbnVtIGNsYXNzIEFzc3Vt
ZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciA6IGJvb2wgeyBObywgWWVzIH07CitXRUJDT1JF
X0VYUE9SVCBib29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uLCBBc3N1bWVTYWZhcmlJc0Fs
d2F5c0xpbmtlZE9uQWZ0ZXIgPSBBc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXI6Olll
cyk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nKCk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1ZlcnNpb25DaGVja3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9u
Q2hlY2tzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4YzIxZGU1MTk3MTQzMDc0ZDJiMTQwODg2ZTY1NjM4YmY5
N2UxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9W
ZXJzaW9uQ2hlY2tzLm1tCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgorCisjaW1wb3J0IDxXZWJD
b3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgorI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4K
KyNpbXBvcnQgPG11dGV4PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBib29sIGxp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nIHsgZmFsc2UgfTsKKwordm9pZCBzZXRM
aW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpCit7CisgICAgQVNTRVJUKCFsaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk7CisgICAgbGlua2VkT25PckFmdGVyRXZl
cnl0aGluZ0ZvclRlc3RpbmcgPSB0cnVlOworfQorCitib29sIGxpbmtlZE9uT3JBZnRlcihTREtW
ZXJzaW9uIHNka1ZlcnNpb24sIEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciBhc3N1
bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBib29sIGlzU2FmYXJpID0gV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxl
U2FmYXJpKCk7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgYm9vbCBpc1NhZmFyaSA9IFdlYkNv
cmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpOworI2VuZGlmCisKKyAgICBpZiAoVU5MSUtF
TFkobGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGlmIChpc1NhZmFyaSAmJiBhc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9u
QWZ0ZXIgPT0gQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyOjpZZXMpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgYXV0byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOworICAgIHJldHVybiBzZGtWZXJzaW9uQXNJbnRlZ2Vy
ICYmIGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKSA+PSBzZGtWZXJzaW9uQXNJbnRlZ2Vy
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5jcHAKaW5kZXggZDdkMTYzMGM5M2JlZGRmN2E4ZDU3YmU4ZmVlNDUxMDk2MDNiNjU5My4u
ZjhhZDc2YWE2ZjlhMTBlOTg0YTg5NDZjYmYwNGE4N2Y2Nzg5MDNlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtNDgsNiArNDgs
NyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiVVRJUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmVUZXN0
U3VwcG9ydCB7CkBAIC0xNDMsNiArMTQ0LDEzIEBAIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGUoYm9vbCBhbGxvd0FueVNTTENlcnRpZmljYXRlKQogICAgIEludGVybmFsU2V0dGluZ3M6
OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93QW55U1NMQ2VydGlmaWNhdGUpOwogfQog
Cit2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCkKK3sKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5n
Rm9yVGVzdGluZygpOworI2VuZGlmCit9CisKIHZvaWQgaW5zdGFsbE1vY2tHYW1lcGFkUHJvdmlk
ZXIoKQogewogI2lmIEVOQUJMRShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmgKaW5kZXggOGU0MWEwNmZkNTFiNmM0ZGY2MDA2ZWIwNmU4
NGYwMDIwMjRjNzViNy4uOTg5ZmQ2NzI2YjMyYjVjOGQ0ODVlY2E3YjFmYzk0ZmM5ODE5ZTJlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oCkBA
IC01NCw2ICs1NCw3IEBAIHZvaWQgc2V0TG9nQ2hhbm5lbFRvQWNjdW11bGF0ZShjb25zdCBXVEY6
OlN0cmluZyYgbmFtZSkgVEVTVF9TVVBQT1JUX0VYUE9SVDsKIHZvaWQgY2xlYXJBbGxMb2dDaGFu
bmVsc1RvQWNjdW11bGF0ZSgpIFRFU1RfU1VQUE9SVF9FWFBPUlQ7CiB2b2lkIGluaXRpYWxpemVM
b2dDaGFubmVsc0lmTmVjZXNzYXJ5KCkgVEVTVF9TVVBQT1JUX0VYUE9SVDsKIHZvaWQgc2V0QWxs
b3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCkgVEVTVF9TVVBQT1JUX0VYUE9SVDsKK3ZvaWQgc2V0
TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcoKSBURVNUX1NVUFBPUlRfRVhQT1JU
OwogCiB2b2lkIGluc3RhbGxNb2NrR2FtZXBhZFByb3ZpZGVyKCkgVEVTVF9TVVBQT1JUX0VYUE9S
VDsKIHZvaWQgY29ubmVjdE1vY2tHYW1lcGFkKHVuc2lnbmVkIGluZGV4KSBURVNUX1NVUFBPUlRf
RVhQT1JUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA0OWZhODgwYTg5
NjUxMDg0YTU4Mzk5MWQ3YTEwZmVlNzBiNTUyMWYwLi4yMjBjNDhkMGMzZjYxMmYyYmJhMGJhMGU2
NDM5ZTg5MTJmMTRhOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
NTMsNiArNTMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8IHVp
UHJvY2Vzc1NES1ZlcnNpb247CisgICAgZW5jb2RlciA8PCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRo
aW5nRm9yVGVzdGluZzsKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBuZXR3b3JrQVRTQ29udGV4
dC5nZXQoKSk7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKQEAgLTEwNSw2ICsxMDYsOCBAQCBib29s
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzU0RLVmVyc2lvbikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5saW5rZWRPbk9yQWZ0ZXJFdmVy
eXRoaW5nRm9yVGVzdGluZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIUlQQzo6
ZGVjb2RlKGRlY29kZXIsIHJlc3VsdC5uZXR3b3JrQVRTQ29udGV4dCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDc4Mjlh
MmRjMWMyYjJhOGVmYzJkYTkyZWEyYWY0ZDRmODM2MjE3NGMuLmRkYzllODA2MWJjMjllYzMyNzBh
ODE0MWRjNTg0ODdmMTJjODE5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTY2LDYgKzY2LDcgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTdHJpbmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmll
cjsKICAgICB1aW50MzJfdCB1aVByb2Nlc3NTREtWZXJzaW9uIHsgMCB9OworICAgIGJvb2wgbGlu
a2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIFJldGFpblB0
cjxDRkRhdGFSZWY+IG5ldHdvcmtBVFNDb250ZXh0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9pb3MvTG9jYWxTdG9yYWdlRGF0
YWJhc2VUcmFja2VySU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9y
YWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW0KaW5kZXggMTBjMTc4ODY4
NGVhODQ3MWU3ZDZhYWMwZjZkNTUxZTVmYWUwNDY0Ny4uYTc4OTU5YmFiZmFiN2E1ZmUxNzQ3MWYx
ZDk3OTgxYmM3MDdmNzNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXJJT1MubW0KQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKKyNpbXBvcnQgPFdlYkNvcmUv
VmVyc2lvbkNoZWNrcy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1t
CmluZGV4IDgyZDQ0MjBhY2ZiYjdlZDIyMTM5MzEwYjIyYjE3YzJkYjIwY2JmMzYuLjY0OTcwNGZk
YWJhNjM2ZWYyNmRjZDNkZmNmNmVlMWIwYjA5NDFkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAg
LTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBv
cnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGwuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgog
I2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0
ci5oPgogI2ltcG9ydCA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgpAQCAtNzQsNiArNzUsOCBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0Nv
Y29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQwogewogICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwog
ICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNp
b24pOworICAgIGlmIChwYXJhbWV0ZXJzLmxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0
aW5nKQorICAgICAgICBXZWJDb3JlOjpzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVz
dGluZygpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0Nv
bXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tCmluZGV4IDE2ZTViYmQ1MWU1MjQyZTVi
YWVhMGNkZTRjMTlmYWNiZTBmYTA1M2UuLmU0NWNhMjFmMjI0OGQ4NGFlMDk0MTgxYzFhYmMyNTdj
ZmFiOWUwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbQpAQCAtMjYsMTAgKzI2LDEwIEBACiAjaW1w
b3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIK
IAorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxtdXRleD4KICNp
bXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgotI2ltcG9ydCAiVmVy
c2lvbkNoZWNrcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjUsNyArNjUsNyBAQCBz
dGF0aWMgYm9vbCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5k
bGVyQ2FsbCgpCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkVGhyb3dFeGNlcHRpb247CiAgICAgc3Rh
dGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10gewot
ICAgICAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbiA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9u
OjpGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyk7
CisgICAgICAgIHNob3VsZFRocm93RXhjZXB0aW9uID0gbGlua2VkT25PckFmdGVyKFdlYkNvcmU6
OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFu
ZGxlckNhbGxzKTsKICAgICB9KTsKICAgICByZXR1cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3Nl
ckNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2Vy
Q2hlY2tzLm1tCmluZGV4IGM0YzYzYzE5NjBkNDQ1YzI4ZDk0ZWZjNjI3NDIyYmVjYjJmZjY2ODcu
LjdhZWFhMzk5OTlhZTljOTRjZWEyMmEyMzY2MzRhZjZhNzM1Y2UwZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBA
IC0yNyw5ICsyNyw5IEBACiAjaW1wb3J0ICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgogCiAj
aW1wb3J0ICJUQ0NTUEkuaCIKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgPFdl
YkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBv
cnQgPHd0Zi9IYXNoTWFwLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3Rm
L1NvZnRMaW5raW5nLmg+CkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBkZXRlcm1pbmVJVFBTdGF0
ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGdfY3VycmVudElUUFN0YXRlID0gSVRQU3RhdGU6
OkluaXRpYWxpemluZzsKLSAgICBib29sIGFwcFdhc0xpbmtlZE9uT3JBZnRlciA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCwgQXNz
dW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyOjpZZXMpOworICAgIGJvb2wgYXBwV2FzTGlu
a2VkT25PckFmdGVyID0gbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0
V2l0aFNlc3Npb25DbGVhbnVwQnlEZWZhdWx0KTsKIAogICAgIGdfaXRwUXVldWUgPSBkaXNwYXRj
aF9xdWV1ZV9jcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuaXRwQ2hlY2tRdWV1ZSIsIE5VTEwpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6
ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVD
b2NvYS5tbQppbmRleCAxNGQyNzlmNTdmZDM0YzAwNDBjZmY4ZDY2N2Y1NjE2YzVkYzBiNTZmLi44
MzFiODQwZTkwNWZiODVkZDNjMjFmNDBkMWExYTQ3OTBjYzVhYzhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KQEAgLTI2
LDggKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViS2l0MkluaXRpYWxp
emUuaCIKIAotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tz
Lmg+CiAjaW1wb3J0IDxtdXRleD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0
IDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEluaXRpYWxpemVXZWJL
aXQyKCkKICAgICAvLyBNYWtlIHN1cmUgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgaXMgcnVuIG9u
bHkgb25jZSBhbmQgb24gdGhlIG1haW4gdGhyZWFkIHNpbmNlIHRoaW5ncyBsaWtlIGluaXRpYWxp
emVNYWluVGhyZWFkKCkKICAgICAvLyBhcmUgb25seSBzYWZlIHRvIGNhbGwgb24gdGhlIG1haW4g
dGhyZWFkLgogICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsKLSAgICAgICAgaWYgKFtOU1Ro
cmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdp
dGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24pKQorICAgICAgICBpZiAoW05T
VGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNp
b246OkZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbikpCiAgICAg
ICAgICAgICBydW5Jbml0aWFsaXphdGlvbkNvZGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgZGlzcGF0Y2hfc3luY19mKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIG51bGxwdHIsIHJ1
bkluaXRpYWxpemF0aW9uQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcAppbmRleCA0NjRlOTc3ZDFmMzlhMjE0NDZhMDkx
ZWYxNDI3ZWNmZTg0YzdlYzg0Li5hZDUyZmI1YzgzZGIyZGY5NmQ5YjViMjIyZTRiNzg5OTk3Y2Q3
MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAi
VmVyc2lvbkNoZWNrcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2lu
Y2x1ZGUgPHBhbC9zcGkvY29jb2EvRmVhdHVyZUZsYWdzU1BJLmg+CiAjaW5jbHVkZSA8d3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjZW5kaWYKQEAgLTQwLDcgKzQw
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3Rl
bmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxp
bmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNz
aXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bh
c3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKaW5kZXggYzdhNTlhMDRkY2JkMTkzZmQ1YTJhMDAzMjJkODU1ZTg1NTFlMjkwMS4u
YTQ2ZGI1MjE2NDNkMDBjNjlhYjM4YjE3NmUyNzVmMzA0NmQ4YzFmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTkwLDYgKzkwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVu
Y29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8IHVpUHJv
Y2Vzc1NES1ZlcnNpb247CisgICAgZW5jb2RlciA8PCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5n
Rm9yVGVzdGluZzsKICNlbmRpZgogICAgIGVuY29kZXIgPDwgcHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMzAyLDYgKzMwMyw4IEBAIGJvb2wgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2Vi
UHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbikpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubGlua2VkT25PckFmdGVyRXZl
cnl0aGluZ0ZvclRlc3RpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMucHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDBkM2EyOTY3NzE1MzdmYzMxZTEyZjUw
MTE5ODYzNjNkYWMxMDkxZDkuLmI3N2MwODk3OWIzOWQ4ZTE3YmEzNDgwNWIzYTlkMzNiM2JmNmFm
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTEzNCw2ICsxMzQsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU3RyaW5nIHVpUHJvY2Vzc0J1
bmRsZUlkZW50aWZpZXI7CiAgICAgdWludDMyX3QgdWlQcm9jZXNzU0RLVmVyc2lvbiB7IDAgfTsK
KyAgICBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nIHsgZmFsc2UgfTsK
ICNlbmRpZgogCiAgICAgUHJvY2Vzc0lEIHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAppbmRleCBiYmQzMDU5NTI5YWZjYzk2Y2QzNDY2OTQ3YTZjYmFi
OWQ1NDY3MDUxLi42OGM0NGI0OTM1NmQ1MzI5YTg2NWVhODI2ZjI3YjZlM2EwMzA2YmVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zODUsNyArMzg1LDYgQEAgVUlQcm9jZXNzL0NvY29hL1VJ
UmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5tbQogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkubW0KLVVJUHJvY2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLm1tCiBVSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUGFnZVByb3h5Q29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlD
b2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggODEz
NGI4ZmI3MTE5OGQ2MTMwNDM3MTViMThiNDEyMTIyNDIxNGE2ZC4uZmNiYTg0NDI5ZGQ4NjkzYWNl
NWJkOTUwMTA3M2Y4OGFjMTAxYzVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCkBAIC05NSw3ICs5NSw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQotI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25D
aGVja3MuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTI3OCw3ICsyNzgsNyBAQCB2
b2lkIFdLUGFnZVJlbG9hZChXS1BhZ2VSZWYgcGFnZVJlZikKIHsKICAgICBPcHRpb25TZXQ8V2Vi
Q29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRpb25zOwogI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBp
cmVkT25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyKFdlYkNvcmU6
OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQogICAgICAg
ICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4cGlyZWRPbmx5KTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tCmluZGV4IDFmNTZmYmZiNjc5NTE2NDhkZjBiNGJiZGNiZjJhNTk5ZGMwMGJk
YTYuLjhlOTgzN2IxODA4YTZhN2RiZDg4NWNiMjJkNjVlMTIxODY2M2RmM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC01
MTgsNiArNTE4LDExIEBAIHN0YXRpYyBOU0RpY3Rpb25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGlj
dGlvbmFyeShjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTCiAjZW5kaWYKIH0KIAorKyAo
dm9pZClfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcKK3sKKyAgICBXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGlu
ZygpOworfQorCiAtIChCT09MKV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkCiB7
CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+Y29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJs
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggM2I5MzE0MDRhOGUyZTQzMmQ1MWM1NDk2NWUyZGVm
NWY4ZWNkYzEwZC4uMjE5NDFiMmQ0NjA3MGRhMWNhOTVmYjkwNmY4ODMyZjVhZjA0ZDhhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmgKQEAgLTExMiw2ICsxMTIsNyBAQAogCiAvLyBUZXN0IG9ubHkuIFNob3Vs
ZCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVk
LgogKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKysgKHZvaWQpX3NldExpbmtlZE9uT3JBZnRlckV2
ZXJ5dGhpbmdGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilz
ZXJ2ZXJVUkwgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3Ll9w
cmVjb25uZWN0VG9TZXJ2ZXIiLCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMs
IFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KaW5kZXggMGQ2MTc3MDUyMmNhMjQwOTNkYTMwZWM1ZGM5MmJmODg2NDgyYzJm
My4uZTJkMmYzZWVmNTdhNmJhOGVjMGIzMzU1ZjAwN2JiZTg0NWFlNmRkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC01Miw3ICs1Miw2
IEBACiAjaW1wb3J0ICJSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiU2FmZUJyb3dz
aW5nV2FybmluZy5oIgogI2ltcG9ydCAiVUlEZWxlZ2F0ZS5oIgotI2ltcG9ydCAiVmVyc2lvbkNo
ZWNrcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0
ICJWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50
ZXJuYWwuaCIKQEAgLTEyNyw2ICsxMjYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Xcml0aW5nTW9kZS5oPgpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBib29s
IHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2soKQogCiBzdGF0aWMgYm9v
bCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogewotICAgIHN0
YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChX
ZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lv
bjo6Rmlyc3RUaGF0RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyk7Cisg
ICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxz
ID0gKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0NhcmRpb2dyYW0oKSB8fCBXZWJDb3JlOjpJ
T1NBcHBsaWNhdGlvbjo6aXNOaWtlKCkpICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RUaGF0RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
cyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
czsKIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2Vy
R2VzdHVyZVRvTG9hZFZpZGVvKCkKIAogc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJM
U2NoZW1lcygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1l
cyA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0
c0Jhc2VVUkxTY2hlbWVzKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxT
Y2hlbWVzID0gbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJl
c3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJM
U2NoZW1lczsKIH0KIApAQCAtMzEwLDcgKzMxMCw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5
Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYs
CiAgICAgICAgIFdLUHJvY2Vzc1Bvb2wgKnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVs
YXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHByb2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHBy
b2Nlc3NQb29sICYmIHByb2Nlc3NQb29sICE9IHJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAg
ICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24g
Zm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmlldyAlQCBoYXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25m
aWd1cmF0aW9uIHNwZWNpZmllcyBhIGRpZmZlcmVudCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVk
V2ViVmlldywgcmVsYXRlZFdlYlZpZXdQcm9jZXNzUG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNz
UG9vbF07Ci0gICAgICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5r
ZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVs
YXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzLCBXZWJLaXQ6OkFzc3VtZVNhZmFy
aUlzQWx3YXlzTGlua2VkT25BZnRlcjo6Tm8pKQorICAgICAgICBpZiAoW3JlbGF0ZWRXZWJWaWV3
LT5fY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAhPSBbX2NvbmZpZ3VyYXRpb24gd2Vi
c2l0ZURhdGFTdG9yZV0gJiYgbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZp
cnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9y
ZXMsIFdlYkNvcmU6OkFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6Tm8pKQogICAg
ICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZv
cm1hdDpAIlJlbGF0ZWQgd2ViIHZpZXcgJUAgaGFzIGRhdGEgc3RvcmUgJUAgYnV0IGNvbmZpZ3Vy
YXRpb24gc3BlY2lmaWVzIGEgZGlmZmVyZW50IGRhdGEgc3RvcmUgJUAiLCByZWxhdGVkV2ViVmll
dywgW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSwgW19j
b25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdXTsKIAogICAgICAgICBbX2NvbmZpZ3VyYXRp
b24gc2V0UHJvY2Vzc1Bvb2w6cmVsYXRlZFdlYlZpZXdQcm9jZXNzUG9vbF07CkBAIC00NzgsNyAr
NDc4LDcgQEAgc3RhdGljIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRD
YWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
cHJlZmVyZW5jZXMoKS0+c2V0QWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKHNo
b3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcygpKTsKICAgICBwYWdlQ29u
ZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9h
ZGluZ1F1aWNrTG9va1ByZXZpZXcoISFbX2NvbmZpZ3VyYXRpb24gX3Nob3VsZERlY2lkZVBvbGlj
eUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3XSk7CiAjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKLSAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNl
T3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpT
REtWZXJzaW9uOjpGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25B
UEkpKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNlT3Jp
ZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZChsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaXRoRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJ
KSk7CiAjZW5kaWYKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24tPnByZWZlcmVuY2VzKCktPnNldFN5c3RlbVByZXZpZXdFbmFibGVkKCEhW19jb25maWd1cmF0
aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pOwpAQCAtNTI2LDcgKzUyNiw3IEBAIHN0YXRpYyB2
b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmlj
YXRpb25DZW50ZXJSZWYsCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNl
dFNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZyghIVtfY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10uX3NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVz
dGluZyk7CiAjZW5kaWYKIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVy
c2lvbjo6Rmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQpKQor
ICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVT
aXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KSkKICAgICAgICAgcGFnZUNvbmZp
Z3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGZhbHNl
KTsKIH0KIApAQCAtNzgwLDcgKzc4MCw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRB
dmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAtIChX
S05hdmlnYXRpb24gKilyZWxvYWQKIHsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0
aW9uPiByZWxvYWRPcHRpb25zOwotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtW
ZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlu
a2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVs
b2FkQmVoYXZpb3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRP
cHRpb246OkV4cGlyZWRPbmx5KTsKIAogICAgIHJldHVybiB3cmFwcGVyKF9wYWdlLT5yZWxvYWQo
cmVsb2FkT3B0aW9ucykpOwpAQCAtMTAyNCw3ICsxMDI0LDcgQEAgc3RhdGljIFJldGFpblB0cjxO
U0Vycm9yPiBuc0Vycm9yRnJvbUV4Y2VwdGlvbkRldGFpbHMoY29uc3QgV2ViQ29yZTo6RXhjZXB0
aW9uRGUKICAgICAgICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0
aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlu
a2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoU25hcHNob3RBZnRlclNj
cmVlblVwZGF0ZXMpKSB7CisgICAgaWYgKChzbmFwc2hvdENvbmZpZ3VyYXRpb24gJiYgIXNuYXBz
aG90Q29uZmlndXJhdGlvbi5hZnRlclNjcmVlblVwZGF0ZXMpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIo
V2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMp
KSB7CiAgICAgICAgIGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggOTM2ZDJhNjMzNmI5MDk2ZjA2MzIwYTgwOWUyODg0
ZTk4MWQyNzRhMC4uMmVlY2UxNjM2YzBmNTBmMGU4MTk1ODQ5NGZlMjYxNTA5NDc5OTcyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTI4LDcgKzI4LDYgQEAKIAogI2ltcG9ydCAiQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgotI2ltcG9y
dCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiV0tQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAi
V0tQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKQEAgLTQ1LDYgKzQ0LDcg
QEAKICNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1VSTFBhcnNlci5oPgogI2ltcG9ydCA8d3RmL1dlYWtP
YmpDUHRyLmg+CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIF9XS0RyYWdMaWZ0RGVsYXkgdG9E
cmFnTGlmdERlbGF5KE5TVUludGVnZXIgdmFsdWUpCiBzdGF0aWMgYm9vbCBkZWZhdWx0U2hvdWxk
RGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogewogI2lmIFVTRShR
VUlDS19MT09LKQotICAgIHN0YXRpYyBib29sIHNob3VsZERlY2lkZSA9IGxpbmtlZE9uT3JBZnRl
cihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5n
UXVpY2tMb29rUHJldmlldyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2Vk
T25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZv
cmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CiAgICAgcmV0dXJuIHNob3VsZERlY2lkZTsKICNl
bHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyBib29sIGRl
ZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiAK
ICAgICBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5ID0gTk87CiAjaWYgIVBMQVRGT1JNKFdB
VENIT1MpCi0gICAgaWYgKFdlYktpdDo6bGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lv
bjo6Rmlyc3RXaXRoTWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCisg
ICAgaWYgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJz
dFdpdGhNZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKICAgICAgICAg
X21lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBXS0F1ZGlvdmlzdWFs
TWVkaWFUeXBlQXVkaW87CiAgICAgZWxzZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA3Mzc0
Y2JlOTMwNjY3MjU2Mjc0NjQ4YzQ0MDQ3YTdkN2ViOTZhNGIwLi5jMmRiNGEwNGQzNzhmMjRmZGQ1
ZTYzMGYxNWIyOTNiZjZiZTAxY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTMwLDcgKzMwLDYgQEAK
ICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgogI2lt
cG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiU2hvdWxkR3Jh
bmRmYXRoZXJTdGF0aXN0aWNzLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0
ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKICNp
bXBvcnQgIldLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgpAQCAtNDUsNiArNDQsNyBA
QAogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJD
b3JlL0NyZWRlbnRpYWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL0Jsb2Nr
UHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4K
QEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewot
ICAgIGlmIChXZWJLaXQ6OmxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0
V2l0aFdLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1cm5pbmdOaWwpKQorICAgIGlmIChXZWJDb3Jl
OjpsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRl
RGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCkpCiAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpO
U0dlbmVyaWNFeGNlcHRpb24gZm9ybWF0OkAiQ2FsbGluZyBbV0tXZWJzaXRlRGF0YVN0b3JlIGlu
aXRdIGlzIG5vdCBzdXBwb3J0ZWQuIl07CiAgICAgCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBp
bml0XSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9T
Lm1tCmluZGV4IGU1MDY3NmUzNDZjNzYwM2FmM2FiYTJkNjg4ZGNlZjgyYjBmNDU4MzIuLjFhZTdh
ZTA5ZmYyNGFkY2M4NzE1ODdiOTEwY2QzYTY2MjUxMmY4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0zMyw3ICszMyw2IEBACiAj
aW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1v
dGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEuaCIKICNpbXBvcnQgIlJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNp
bXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiVmlld0dlc3R1
cmVDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0JhY2tGb3J3YXJkTGlzdEl0ZW1JbnRlcm5hbC5o
IgpAQCAtNTQsNiArNTMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9y
Q29jb2EuaD4KQEAgLTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMgV2ViQ29yZTo6Q29sb3Igc2Nyb2xs
Vmlld0JhY2tncm91bmRDb2xvcihXS1dlYlZpZXcgKndlYlZpZXcpCiAKIC0gKFVJRWRnZUluc2V0
cylfY29tcHV0ZWRPYnNjdXJlZEluc2V0CiB7Ci0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2Vi
S2l0OjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlU2Nyb2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RP
YnNjdXJpbmdJbnNldHMpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5n
SW5zZXRzKSkgewogICAgICAgICAvLyBGb3IgYmluYXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQg
cGFydHkgYXBwcywgdHJlYXQgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5n
IGluc2V0cyB3aGVuIHRoZSBhcHAgaXMgY29tcGlsZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdl
YktpdCB2ZXJzaW9uIHdpdGhvdXQgdGhlIGZpeCBpbiByMjI5NjQxLgogICAgICAgICByZXR1cm4g
W3NlbGYgX2NvbXB1dGVkQ29udGVudEluc2V0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXggZmIyN2E2YTQ0NzY0MWYyYmZhZTY0OGMx
NjNhYTQyMzlhMjQzN2Q0Yi4uNDc3NWUwZTM2N2E5ODI4MGE4NjQ0ODZjZmM0MTY3MWRiZTZkYzk1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMu
bW0KQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFwcEtp
dFNQSS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiV0tDb250ZW50Vmll
d01hYy5oIgogI2ltcG9ydCAiV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJXS1Nj
cm9sbFZpZXdNYWMuaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbXBvcnQgIldlYlZpZXdJbXBsLmgi
CiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2lt
cG9ydCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVyU1BJLmg+CiAKIF9XS092ZXJsYXlTY3JvbGxi
YXJTdHlsZSB0b0FQSVNjcm9sbGJhclN0eWxlKE9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92
ZXJsYXlTdHlsZT4gY29yZVNjcm9sbGJhclN0eWxlKQpAQCAtMTE1Niw3ICsxMTU2LDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgaWYgKFt1aURlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
TWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93ZWJW
aWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpkcmFnZ2lu
Z0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpG
aXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRl
RGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFj
dGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XS0Ry
YWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WZXJzaW9uQ2hlY2tzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5MjY1OGMx
ZTJkM2RlNjU3MzkwZjU2ZTVlMzEzYzM3MTA4ZjhjZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVy
c2lvbkNoZWNrcy5oCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4K
LQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMv
VmVyc2lvbkNoZWNrc0FkZGl0aW9ucy5oPgotI2Vsc2UKLSNkZWZpbmUgRFlMRF9JT1NfVkVSU0lP
Tl9GSVJTVF9XSVRIX0lPU19BUFBTX09OX01BQ09TIDAKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotZW51bSBjbGFzcyBTREtWZXJzaW9uIDogdWludDMyX3QgewotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgRmlyc3RXaXRoTmV0d29ya0NhY2hlID0gRFlMRF9JT1NfVkVSU0lP
Tl85XzAsCi0gICAgRmlyc3RXaXRoTWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5
YmFjayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9y
RHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwK
LSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0gRFlMRF9JT1NfVkVSU0lP
Tl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmls
ZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bh
c3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0g
ICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRz
ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2hlcmVVSVNjcm9sbFZpZXdEb2Vz
Tm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSA9IERZTERfSU9TX1ZFUlNJT05f
MTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVBy
b3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9u
YWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAg
IEZpcnN0V2l0aExhenlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbiA9IERZTERfSU9TX1ZF
UlNJT05fMTJfMiwKLSAgICBGaXJzdFdpdGhQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlv
biA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKLSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2Ny
ZWVuVXBkYXRlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdpdGhEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25BUEkgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAs
Ci0gICAgRmlyc3RUaGF0RGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3
ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxh
dGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaXRoTW9kZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0ID0gRFlMRF9J
T1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlv
biA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdoZXJlV0tDb250ZW50Vmlld0Rv
ZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZp
cnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSA9IERZTERfSU9TX1ZFUlNJ
T05fMTNfMCwKLSAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVm
YXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMiwKLSAgICBGaXJzdFRoYXRSZXN0cmljdHNCYXNl
VVJMU2NoZW1lcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9u
Q2xlYW51cEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFRoYXRT
ZW5kc05hdGl2ZU1vdXNlRXZlbnRzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0
V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJ
T05fMTRfMCwKLSAgICBGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmls
ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0VmVyc2lvbldpdGhpT1NBcHBzT25N
YWNPUyA9IERZTERfSU9TX1ZFUlNJT05fRklSU1RfV0lUSF9JT1NfQVBQU19PTl9NQUNPUywKLSNl
bGlmIFBMQVRGT1JNKE1BQykKLSAgICBGaXJzdFdpdGhOZXR3b3JrQ2FjaGUgPSBEWUxEX01BQ09T
WF9WRVJTSU9OXzEwXzExLAotICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21w
bGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKLSAgICBGaXJz
dFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNz
ZXJ0aW9uSW5XZWJQYWdlUHJveHkgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZp
cnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9N
QUNPU1hfVkVSU0lPTl8xMF8xNSwKLSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBk
YXRlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9u
c0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NY
X1ZFUlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJs
ZWRCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1XzEsCi0gICAgRmlyc3RUaGF0
UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1XzQsCi0g
ICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzE2LAotICAgIEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlv
biA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0
YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0jZW5k
aWYKLX07Ci0KLWVudW0gY2xhc3MgQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyIDog
Ym9vbCB7IE5vLCBZZXMgfTsKLWJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24sIEFzc3Vt
ZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciA9IEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2Vk
T25BZnRlcjo6WWVzKTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmVyc2lvbkNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zl
cnNpb25DaGVja3MubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkZDY1MzcwYzhl
NGRkNDQ0MGJlZDhiZjdhNjI5OGVlYzZlZjQwOTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lv
bkNoZWNrcy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgotCi0jaW1w
b3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgotI2ltcG9ydCA8bWFjaC1v
L2R5bGQuaD4KLSNpbXBvcnQgPG11dGV4PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RhdGlj
IE5TU3RyaW5nICogY29uc3QgV2ViS2l0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0tleSA9IEAi
V2ViS2l0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZyI7Ci0KLWJvb2wgbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb24gc2RrVmVyc2lvbiwgQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVy
IGFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcikKLXsKLSAgICBzdGF0aWMgYm9vbCBs
aW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nID0gZmFsc2U7Ci0gICAgc3RhdGljIGJvb2wgaXNTYWZh
cmkgPSBmYWxzZTsKLSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKLSAgICBzdGQ6OmNh
bGxfb25jZShvbmNlLCBbXSB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgaWYg
KFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpKQotICAgICAgICAgICAg
aXNTYWZhcmkgPSB0cnVlOwotI2VsaWYgUExBVEZPUk0oTUFDKQotICAgICAgICBpZiAoV2ViQ29y
ZTo6TWFjQXBwbGljYXRpb246OmlzU2FmYXJpKCkpCi0gICAgICAgICAgICBpc1NhZmFyaSA9IHRy
dWU7Ci0jZW5kaWYKLQotICAgICAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJE
ZWZhdWx0c10gYm9vbEZvcktleTpXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nS2V5XSkK
LSAgICAgICAgICAgIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcgPSB0cnVlOwotICAgIH0pOwot
Ci0gICAgaWYgKFVOTElLRUxZKGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1NhZmFyaSAmJiBhc3N1bWVTYWZhcmlJc0Fsd2F5c0xp
bmtlZE9uQWZ0ZXIgPT0gQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyOjpZZXMpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYXV0byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0gc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOwotICAgIHJldHVybiBzZGtWZXJzaW9uQXNJ
bnRlZ2VyICYmIGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKSA+PSBzZGtWZXJzaW9uQXNJ
bnRlZ2VyOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA4NDcyYWU5MjAyMmViZWQwZjRhZDdlMTI0OTQ2
YzgwZTAxNWY2MTJkLi42OGY3M2RjYjMzYTU2N2UyYjdlOGRjOGEzMjBhYjdjYzA0MjIyMWY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW0KQEAgLTM5LDcgKzM5LDYgQEAKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIK
LSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1w
b3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKQEAgLTYwLDYgKzU5LDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAj
aW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9N
ZWRpYVRvb2xib3hTb2Z0TGluay5oPgpAQCAtMzE4LDYgKzMxOCwxNCBAQCBzdGF0aWMgYm9vbCBy
ZXF1aXJlc0NvbnRhaW5lck1hbmFnZXJBY2Nlc3MoKQogI2VuZGlmCiB9CiAKK3N0YXRpYyBib29s
IGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nIHsgZmFsc2UgfTsKKwordm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcoKQor
eworICAgIEFTU0VSVCghbGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcpOworICAg
IGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nID0gdHJ1ZTsKK30KKwogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCiB7CiAgICAgcGFyYW1ldGVycy5tZWRpYU1JTUVUeXBlcyA9IHByb2Nlc3MubWVkaWFNSU1F
VHlwZXMoKTsKQEAgLTM0OCw2ICszNTYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAg
ICAgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gYXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uID0gZHls
ZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOworICAgIHBhcmFtZXRlcnMubGlua2VkT25PckFm
dGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcgPSBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVz
dGluZzsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKCFtX3Jlc29sdmVkUGF0
aHMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCkBAIC00OTEsNiArNTAwLDcgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmEKIHsKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRs
ZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0
ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7
CisgICAgcGFyYW1ldGVycy5saW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyA9IGxp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nOwogCiAgICAgTlNVc2VyRGVmYXVsdHMg
KmRlZmF1bHRzID0gW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3Rv
clZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21h
Yy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCmluZGV4IDMzYjU4ZjJhZjMzNmNmYWYxYWNl
NGFlODM4ZWJkMjFiZDdkYzhhZjcuLjFlYWE5NDNmMjdhMjdkNjdjNjExZmY2ZDZmYmJmMzYxNjJi
ZjcxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMv
V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTI5LDcgKzI5
LDYgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFQSU5hdmlnYXRpb24uaCIKLSNp
bXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvLmgiCiAjaW1wb3J0
ICJXS0luc3BlY3RvcldLV2ViVmlldy5oIgogI2ltcG9ydCAiV0tOYXZpZ2F0aW9uQWN0aW9uLmgi
CkBAIC00Myw2ICs0Miw3IEBACiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2ltcG9y
dCAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRy
Lmg+CiAKIEBpbnRlcmZhY2UgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAoKSA8V0tVSURlbGVn
YXRlLCBXS05hdmlnYXRpb25EZWxlZ2F0ZSwgV0tJbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZT4K
QEAgLTI1Miw3ICsyNTIsNyBAQAogICAgICAgICByZXR1cm47CiAKICAgICBPcHRpb25TZXQ8V2Vi
Q29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRpb25zOwotICAgIGlmIChXZWJLaXQ6Omxpbmtl
ZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2Fk
QmVoYXZpb3IpKQorICAgIGlmIChXZWJDb3JlOjpsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCiAgICAgICAgIHJl
bG9hZE9wdGlvbnMuYWRkKFdlYkNvcmU6OlJlbG9hZE9wdGlvbjo6RXhwaXJlZE9ubHkpOwogCiAg
ICAgX2luc3BlY3RlZFBhZ2UtPnJlbG9hZChyZWxvYWRPcHRpb25zKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA4ZWRkYjE1ZjhmMzQy
MzlkMjUwNDk5YThjNGFmODc1ZjA1ZGYzZjc5Li4xMjVmNWYxYmNkYzBlMDNiYzU5YjU0YzkzN2M0
M2RmOTcyM2FmMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5o
IgotI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAtNDIsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
U2Nyb2xsaW5nU3RhdGVQb3NpdGlvbmVkTm9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xs
aW5nU3RhdGVUcmVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yNjYsNyArMjY2LDcg
QEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYXNTY3JvbGxhYmxlT3Ja
b29tZWRNYWluRnJhbWUoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVu
dGJyaXRlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhh
dFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkpCisgICAgaWYgKFdlYkNvcmU6OklP
U0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYkNvcmU6
OlNES1ZlcnNpb246OkZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDc2MjFmODc0YzAxM2EyNDg1ZWY2ZTBhYzM3OTU2ZGY4OGZl
OWM5ZWEuLmU2MGNhNjlkYmQ5YmMzNzRmZjhjNTFkNGY3NWVmZjM1ZTVjZGRjZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjA2LDEzICsyMDYsMTMgQEAK
ICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAi
UmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLmgiCiAjaW5jbHVkZSAiVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgotI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIK
ICNpbmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXR0
cmlidXRlZFN0cmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0
SW5kaWNhdG9yV2luZG93Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAj
aW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvY29jb2EvRW50aXRs
ZW1lbnRzLmg+CiAjZW5kaWYKQEAgLTEyNDgsNyArMTI0OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzCiAgICAgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKCFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0VW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRi
b3hFeHRlbnNpb24pKQorICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNp
b246OkZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkK
ICAgICAgICAgd2lsbEFjcXVpcmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24ocHJv
Y2Vzcyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCmluZGV4IDE3NzhlMjMyYjZlZTkxYTk2YTczYzM0MWY1ZTdjZDE2ZDIzZGEzNmUuLmMzY2I4
OTc2ZDhkYTI1YTQ5ZWY5YWUyZDVjMTg5ZjhkYWU4MWEwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTEyNiwxMSArMTI2LDExIEBACiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICNpbmNsdWRlICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgotI2lu
Y2x1ZGUgIlZlcnNpb25DaGVja3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dhbWVDb250cm9sbGVy
R2FtZXBhZFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ISURHYW1lcGFkUHJvdmlkZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL011bHRpR2FtZXBhZFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Qb3dlclNvdXJjZU5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9u
Q2hlY2tzLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwMjksNyArMTAyOSw3
IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VD
bGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAKICAgICBib29sIGVuYWJsZVByb2Nlc3NTd2Fw
T25Dcm9zc1NpdGVOYXZpZ2F0aW9uID0gcGFnZS0+cHJlZmVyZW5jZXMoKS5wcm9jZXNzU3dhcE9u
Q3Jvc3NTaXRlTmF2aWdhdGlvbkVuYWJsZWQoKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNGaXJlZm94KCkgJiYgIWxpbmtlZE9u
T3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aFByb2Nlc3NTd2FwT25Dcm9zc1Np
dGVOYXZpZ2F0aW9uKSkKKyAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmlyZWZv
eCgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoUHJv
Y2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24pKQogICAgICAgICBlbmFibGVQcm9jZXNzU3dh
cE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IGZhbHNlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDUxNWI5ODM5OGRjYzUwNmUxOTM3OTE5YzIz
ZTUyZTYxZWU5NjJlMGMuLjE5YmUwY2JhNjI1OGY3M2MyYjlmNzlhYWQ0MTM1ZjRkNDY2YTJjMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzg4LDYgKzM4
OCw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgdXBkYXRlUHJv
Y2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRMaW5rZWRPbk9yQWZ0
ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOwogCiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZW5z
dXJlQnVuZGxlUGFyYW1ldGVycygpOwogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmJ1bmRsZVBh
cmFtZXRlcnMoKSB7IHJldHVybiBtX2J1bmRsZVBhcmFtZXRlcnMuZ2V0KCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVlMmM3MDhmMjJmOTdi
ZWFmMzcwOTM1MmNiNjllM2Q0YzI4ZTFkOWIuLjA3Njg5OGQwYTUyYzJkMTY5YWMyMTUzMmM1ZTRh
ZDgyOTI3YTUzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtNzYsNyArNzYsNyBAQAogI2luY2x1ZGUgIk9iakNPYmplY3RHcmFwaC5oIgogI2lu
Y2x1ZGUgIlBERlBsdWdpbi5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaCIKLSNpbmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9WZXJz
aW9uQ2hlY2tzLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwMCw5ICsxMDAs
OSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9y
Q2hlY2tEaXNhYmxlZCgpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4g
TElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAg
IHJldHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIoV2Vi
Q29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25Jbldl
YlBhZ2VQcm94eSk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIExJS0VMWShSdW5M
b29wOjppc01haW4oKSkgfHwgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhN
YWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKKyAgICByZXR1cm4gTElL
RUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1Zl
cnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkp
OwogI2Vsc2UKICAgICByZXR1cm4gUnVuTG9vcDo6aXNNYWluKCk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggNjA1YTM3OTFhYzc3
MDIzMzIwNTFmY2UzZDczZWQ3NDZiNmY3YWM5MC4uZjk2YjMwMjNiZmU4ZTRjZDUzMTAyNzNmMDRl
MWI4YWVjNjE2YmNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KQEAgLTM5LDcgKzM5LDYgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCIK
ICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0
ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tCcm93
c2luZ0NvbnRleHRHcm91cFByaXZhdGUuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9ySGlnaGxpZ2h0
Vmlldy5oIgpAQCAtNjMsNiArNjIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9RdWlya3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1ZlbG9jaXR5RGF0YS5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAj
aW1wb3J0IDxvYmpjL21lc3NhZ2UuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNBY2Nlc3Np
YmlsaXR5U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KQEAg
LTE5MCw3ICsxOTAsNyBAQCBzdGF0aWMgTlNBcnJheSAqa2V5Q29tbWFuZHNQbGFjZWhvbGRlckhh
Y2tGb3JFdmVybm90ZShpZCBzZWxmLCBTRUwgX2NtZCkKICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9m
aXhlZENsaXBwaW5nVmlldy5nZXQoKV07CiAgICAgW19maXhlZENsaXBwaW5nVmlldyBhZGRTdWJ2
aWV3Ol9yb290Q29udGVudFZpZXcuZ2V0KCldOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIo
V2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxs
YXRpb24pKQorICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZp
cnN0V2l0aExhenlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbikpCiAgICAgICAgIFtzZWxm
IHNldFVwSW50ZXJhY3Rpb25dOwogICAgIFtzZWxmIHNldFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQ6
WUVTXTsKIApAQCAtMjEyLDcgKzIxMiw3IEBAIHN0YXRpYyBOU0FycmF5ICprZXlDb21tYW5kc1Bs
YWNlaG9sZGVySGFja0ZvckV2ZXJub3RlKGlkIHNlbGYsIFNFTCBfY21kKQogICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX3NjcmVlbkNhcHR1cmVkRGlkQ2hhbmdlOikgbmFtZTpVSVNjcmVlbkNhcHR1cmVk
RGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpbVUlTY3JlZW4gbWFpblNjcmVlbl1dOwogCiAj
aWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzRXZlcm5vdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVy
c2lvbjo6Rmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykp
CisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3RlKCkgJiYgIWxpbmtl
ZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlV0tDb250ZW50Vmlld0Rv
ZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzKSkKICAgICAgICAgY2xhc3NfYWRkTWV0aG9kKHNlbGYu
Y2xhc3MsIEBzZWxlY3RvcihrZXlDb21tYW5kcyksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPigma2V5
Q29tbWFuZHNQbGFjZWhvbGRlckhhY2tGb3JFdmVybm90ZSksIG1ldGhvZF9nZXRUeXBlRW5jb2Rp
bmcoY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qoc2VsZi5jbGFzcywgQHNlbGVjdG9yKGtleUNvbW1h
bmRzKSkpKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA2NDBhNWE0Y2U1MWY2NTgyMWM4
MjU1MDhkNmVhZWJlOGY4MDgxODgzLi42OWFiNmJkYzU5NDE1YjA1N2Q4YzdhOWM5N2JhZmI2Nzlj
MDVlOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQ0LDcgKzQ0LDYgQEAKICNpbXBvcnQgIlRleHRJ
bnB1dFNQSS5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJ
ZGlvbS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVl
dEFzc2lzdGFudC5oIgogI2ltcG9ydCAiV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaCIKQEAgLTExNyw2
ICsxMTYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1RvdWNoQWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Zpc2li
bGVTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgpAQCAtNzA5OCw3ICs3MDk4LDcgQEAgc3RhdGljIEJP
T0wgYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0Y2hPcmlnaW4oVUlQYXN0ZWJvYXJkICpwYXN0
ZWJvYXJkLCBjb25zdAogLSAoQk9PTClfc2hvdWxkVXNlQ29udGV4dE1lbnVzCiB7CiAjaWYgSEFW
RShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNPTlRFWFRNRU5VKQotICAgIHJldHVybiBsaW5rZWRP
bk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb24pOworICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lv
bjo6Rmlyc3RUaGF0SGFzVUlDb250ZXh0TWVudUludGVyYWN0aW9uKTsKICNlbmRpZgogICAgIHJl
dHVybiBOTzsKIH0KQEAgLTg1NjcsNyArODU2Nyw3IEBAIHN0YXRpYyBCT09MIGFwcGxpY2F0aW9u
SXNLbm93blRvSWdub3JlTW91c2VFdmVudHMoY29uc3QgY2hhciogJndhcm5pbmdWZXJzaW9uKQog
ICAgICAgICByZXR1cm4gWUVTOwogICAgIH0KIAotICAgIGlmICghV2ViS2l0OjpsaW5rZWRPbk9y
QWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1Mp
KSB7CisgICAgaWYgKCFXZWJDb3JlOjpsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lv
bjo6Rmlyc3RWZXJzaW9uV2l0aGlPU0FwcHNPbk1hY09TKSkgewogICAgICAgICBpZiAoV2ViQ29y
ZTo6SU9TQXBwbGljYXRpb246OmlzRklGQUNvbXBhbmlvbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82
NzA5MzQ4Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc05vZ2dp
bigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDgzMDMzNT4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc09LQ3VwaWQoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjU2OTg0OTY+
CkBAIC04NTc5LDcgKzg1NzksNyBAQCBzdGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0ln
bm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmICghV2ViS2l0OjpsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJz
aW9uOjpGaXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkgeworICAgIGlmICghV2ViQ29y
ZTo6bGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFNlbmRzTmF0
aXZlTW91c2VFdmVudHMpKSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6
aXNQb2NrZXRDaXR5KCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzYyMjczMDc3PgogICAgICAgICAgICAg
fHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRXNzZW50aWFsU2tlbGV0b24oKSAvLyA8cmRh
cjovL3Byb2JsZW0vNjI2OTQ1MTk+CiAgICAgICAgICAgICB8fCBXZWJDb3JlOjpJT1NBcHBsaWNh
dGlvbjo6aXNFU1BORmFudGFzeVNwb3J0cygpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDY3MTU0Mz4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCmluZGV4IGE4NmE0
YmVmOTcwYzZiNmZlNTJjNzU2ZTFmODA5NWY3ODJmYTQ4NGEuLmMwZWZmZmJkZjlkMDA2MWYxNzY3
ZTNjMWY4YzMyZmI3ZTA5OThiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS1Njcm9sbFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
U2Nyb2xsVmlldy5tbQpAQCAtMjksOSArMjksOSBAQAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1w
b3J0ICJXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJ
T1MuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCkBA
IC0zNzksNyArMzc5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHZhbHVlc0FyZVdpdGhpbk9uZVBp
eGVsKENHRmxvYXQgYSwgQ0dGbG9hdCBiKQogICAgIC8vIHRvIGluY2x1ZGUga2V5Ym9hcmQgaW5z
ZXRzIGluIHRoZSBzeXN0ZW1Db250ZW50SW5zZXQuIFdlIGFsd2F5cyB3YW50CiAgICAgLy8ga2V5
Ym9hcmQgaW5zZXRzIGFwcGxpZWQsIGV2ZW4gd2hlbiB3ZWIgY29udGVudCBoYXMgY2hvc2VuIHRv
IGRpc2FibGUgYXV0b21hdGljCiAgICAgLy8gc2FmZSBhcmVhIGluc2V0IGFkanVzdG1lbnQuCi0g
ICAgaWYgKGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVVSVNj
cm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSkgJiYgc2Vs
Zi5jb250ZW50SW5zZXRBZGp1c3RtZW50QmVoYXZpb3IgPT0gVUlTY3JvbGxWaWV3Q29udGVudElu
c2V0QWRqdXN0bWVudE5ldmVyKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaGVyZVVJU2Nyb2xsVmlld0RvZXNOb3RBcHBseUtleWJvYXJkSW5zZXRz
VW5jb25kaXRpb25hbGx5KSAmJiBzZWxmLmNvbnRlbnRJbnNldEFkanVzdG1lbnRCZWhhdmlvciA9
PSBVSVNjcm9sbFZpZXdDb250ZW50SW5zZXRBZGp1c3RtZW50TmV2ZXIpCiAgICAgICAgIHN5c3Rl
bUNvbnRlbnRJbnNldC5ib3R0b20gKz0gX2tleWJvYXJkQm90dG9tSW5zZXRBZGp1c3RtZW50Owog
CiAgICAgcmV0dXJuIHN5c3RlbUNvbnRlbnRJbnNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGYzN2E3NmY4OTczYjhiNDhlMDQ3YWJm
YWVlNzhkMmU0YTg2ZjQxMjUuLjRjNDNjNWI4YzI5YmNmMTQxNTViZTA4ZGFjNDY3MDI5MzkzZDAz
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQpAQCAtNTIsNyArNTIsNiBAQAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIlVzZXJE
YXRhLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKLSNpbXBvcnQgIlZlcnNpb25D
aGVja3MuaCIKICNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9y
dCAiVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKQEAgLTcwLDYgKzY5LDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNp
b25DaGVja3MuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIApAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgc3Rh
dGljIGJvb2wgZGVza3RvcENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXUKICAgICAgICAgLy8gV2hpbGUgZGVza3RvcC1jbGFzcyBicm93
c2luZyBpcyBzdXBwb3J0ZWQgb24gYWxsIGlQYWQgbW9kZWxzLCBpdCBpcyBub3QgcmVjb21tZW5k
ZWQgZm9yIGlQYWQgbWluaS4KICAgICAgICAgYXV0byBzY3JlZW5DbGFzcyA9IE1HR2V0U0ludDMy
QW5zd2VyKGtNR1FNYWluU2NyZWVuQ2xhc3MsIE1HU2NyZWVuQ2xhc3NQYWQyKTsKICAgICAgICAg
c2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBzY3JlZW5DbGFzcyAhPSBNR1Nj
cmVlbkNsYXNzUGFkMyAmJiBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkNCAmJiBkZXNr
dG9wQ2xhc3NCcm93c2luZ1N1cHBvcnRlZCgpOwotICAgICAgICBpZiAoaWdub3JlU2FmZWd1YXJk
cyA9PSBJZ25vcmVBcHBDb21wYXRpYmlsaXR5U2FmZWd1YXJkczo6Tm8gJiYgIWxpbmtlZE9uT3JB
ZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5
RGVmYXVsdCkpIHsKKyAgICAgICAgaWYgKGlnbm9yZVNhZmVndWFyZHMgPT0gSWdub3JlQXBwQ29t
cGF0aWJpbGl0eVNhZmVndWFyZHM6Ok5vICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaXRoTW9kZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0KSkgewogICAg
ICAgICAgICAgLy8gT3B0IG91dCBhcHBzIHRoYXQgaGF2ZW4ndCB5ZXQgYnVpbHQgYWdhaW5zdCB0
aGUgaU9TIDEzIFNESyB0byBsaW1pdCBhbnkgaW5jb21wYXRpYmlsaXRpZXMgYXMgYSByZXN1bHQg
b2YgZW5hYmxpbmcgZGVza3RvcC1jbGFzcyBicm93c2luZyBieSBkZWZhdWx0IGluCiAgICAgICAg
ICAgICAvLyBXS1dlYlZpZXcgb24gYXBwcm9wcmlhdGVseS1zaXplZCBpUGFkIG1vZGVscy4KICAg
ICAgICAgICAgIHNob3VsZFJlY29tbWVuZERlc2t0b3BDbGFzc0Jyb3dzaW5nID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1
M2I2NGY3NWVkZDQzY2U5NWY3NjQxMzQ3ZDhhNTc4YTA2YjY0M2FlLi4wNDhkZjZhNzg3YjI1YzQy
MmRlYmRjOTg5ZDIwNmIyODc5ODdiZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MjEsNyArMTgyMSw2IEBACiAJCUU0OUQ0MEQ3
MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIxNzAwNjZC
N0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CiAJCUU0RDU0RDA0MjFGMUQ3
MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBDMUY5MzIx
RjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
Uy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVl
Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRF
NTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsgfTsKLQkJ
RTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTg2NDhFMUIxNjczRkIwMEM4MkY0
MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAv
KiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAwQkUzQzMy
IC8qIFdLRm9ybUNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNr
ZXIuaCAqLzsgfTsKIAkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hv
b3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1
Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9OwpAQCAt
NTMyMyw4ICs1MzIyLDYgQEAKIAkJRTQ5RDQwRDgxQUQzRkIyMTAwNjZCN0I5IC8qIE5ldHdvcmtD
YWNoZUJsb2JTdG9yYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTRFNTdGNjgyMUE4M0IwMzAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXllclRyZWVOb2Rl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2QTIxQTgzQjExMDAzNDVG
M0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVMYXllclRyZWVOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZlcnNpb25DaGVja3MuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTRFODY0OEYxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWZXJzaW9uQ2hlY2tzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcg
LyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJD
RjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zv
cm1Db2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBwYXRo
ID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC02MzMwLDggKzYzMjcsNiBAQAogCQkJCTQ2MzIzNjg1MjMxNDgzM0YwMEE0OEZBNyAv
KiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8sCiAJCQkJMDcwMjU5QkUyNTIyODQxQzAwMTUz
NDA1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tICovLAogCQkJ
CTQxMUE5QTlBMjUxREU5M0UwMDgwN0Q3RSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5Lm1tICovLAotCQkJCUU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tz
LmggKi8sCi0JCQkJRTRFODY0OEYxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MubW0g
Ki8sCiAJCQkJNTJENUExQUExQzU3NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oICovLAogCQkJCTUyRDVBMUFCMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTJENUExQUMxQzU3NDk0RTAw
REUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAqLywKQEAgLTExMTYyLDcg
KzExMTU3LDYgQEAKIAkJCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBM0NDMThE
MTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzRFNzVGRTFERjIyMTE5MDBEMzE4RUMgLyogVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0RTg2NDkzMUIxNjc1MDcwMEM4MkY0
MCAvKiBWZXJzaW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFCMDFDNTc0OTVB
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRDEyNUM1RTE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRDFCNUQ1RTE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1
cmVDb250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggYzdlYTY4NDA5ODhl
ODJiNWVlZGU4NmNhNjgyODE2ZjMxM2NkMGNkNi4uYWE3OWU0NTI4YWU2MTc2ZDBkYWE3NjBjMWY1
Yzc0MTJjN2VkYmJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02OCw2ICs2OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NX
Q29udGV4dE1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNo
ZWNrcy5oPgogI2ltcG9ydCA8YWxnb3JpdGhtPgogI2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2gu
aD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgpAQCAtMjIyLDYgKzIyMyw4IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBwYXJhCiAKICAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICAgICBzZXRBcHBs
aWNhdGlvblNES1ZlcnNpb24ocGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uKTsKKyAgICBp
ZiAocGFyYW1ldGVycy5saW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZykKKyAgICAg
ICAgV2ViQ29yZTo6c2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcoKTsKIAog
ICAgIG1fdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllciA9IHBhcmFtZXRlcnMudWlQcm9jZXNzQnVu
ZGxlSWRlbnRpZmllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVm
YXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0KaW5kZXggNTUy
MDFhNjVkNzE0ZTdkYTAxZGI5MjY3MzcxMDI3MWRiOWM1Zjc1Yy4uZGNiN2M5MzFjOTY3NzZmZDA4
ZjQ5NmFmYmM5ZjFmNGQyMGVlMjEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSURlbGVnYXRlLm1t
CkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbXBvcnQg
IldlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5oIgotI2ltcG9ydCAiV2ViS2l0VmVyc2lvbkNo
ZWNrcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMTYsMTEgKzIxNiwxMCBAQCBzdGF0aWMgV2ViRGVm
YXVsdFVJRGVsZWdhdGUgKnNoYXJlZERlbGVnYXRlID0gbmlsOwogewogfQogCi0KICNpZiAhUExB
VEZPUk0oSU9TX0ZBTUlMWSkKIC0gKE5TVUludGVnZXIpd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzooaWQgPE5TRHJhZ2dp
bmdJbmZvPilkcmFnZ2luZ0luZm8KIHsKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQorICAgIGlm
ICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05h
dmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHJldHVybiBXZWJEcmFnRGVzdGlu
YXRpb25BY3Rpb25Bbnk7CiAKICAgICByZXR1cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55
ICYgfldlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCmluZGV4IDRjMWRjYjI0M2VkM2Y0YTFiMzFi
OTk4YWRmZDcyZGNmZmFkNTRiZDAuLjhmNDliZGJkN2Y4NDczYTQyZmZmMWM0MzMzMjMxMjQzMDgy
ZTc2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViSWNvbkRh
dGFiYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViSWNvbkRhdGFi
YXNlLm1tCkBAIC0zMCwxMCArMzAsMTAgQEAKIAogI2ltcG9ydCAiV2ViSWNvbkRhdGFiYXNlLmgi
CiAKLSNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRD
b3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNo
ZWNrcy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KQEAgLTEwNiw3ICsxMDYsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBzdGF0aWMgV2ViSWNvbkRh
dGFiYXNlICpkYXRhYmFzZTsKICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2U7CiAgICAg
ZGlzcGF0Y2hfb25jZSgmb25jZSwgXiB7Ci0gICAgICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RL
VmVyc2lvbjo6Rmlyc3RXaXRoV2ViSWNvbkRhdGFiYXNlV2FybmluZykpCisgICAgICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoV2ViSWNvbkRhdGFi
YXNlV2FybmluZykpCiAgICAgICAgICAgICBOU0xvZyhAIitbV2ViSWNvbkRhdGFiYXNlIHNoYXJl
ZEljb25EYXRhYmFzZV0gaXMgbm90IEFQSSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBXZWJJY29u
RGF0YWJhc2Ugbm8gbG9uZ2VyIGhhbmRsZXMgaWNvbiBsb2FkaW5nIGFuZCBpdCB3aWxsIGJlIHJl
bW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iKTsKIAogICAgICAgICBkYXRhYmFzZSA9IFtbV2Vi
SWNvbkRhdGFiYXNlIGFsbG9jXSBpbml0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvV2ViS2l0VmVyc2lvbkNoZWNrcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLmgKaW5kZXggN2FkYTdlOTE4YmEzZTdjZjY1ZGI5
N2U3MzI5NTZjOTI2MjU5N2UwZi4uMjY3MDM1OWFhY2UxNjEyNzY5OGI5Y2JiYTZmMjU5MTYyN2E3
ZWFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJz
aW9uQ2hlY2tzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJz
aW9uQ2hlY2tzLmgKQEAgLTcyLDE5ICs3Miw2IEBACiAjZGVmaW5lIFdFQktJVF9GSVJTVF9WRVJT
SU9OX1dJVEhfQ09OVEVOVF9TRUNVUklUWV9QT0xJQ1lfU09VUkNFX1NUQVJfUFJPVE9DT0xfUkVT
VFJJQ1RJT04gMzU1NQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLWVudW0gY2xh
c3MgU0RLVmVyc2lvbiA6IHVpbnQzMl90IHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IEZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50ID0gRFlM
RF9JT1NfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
ID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotI2Vsc2UKLSAgICBGaXJzdFdpdGhEcm9wVG9OYXZp
Z2F0ZURpc2FsbG93ZWRCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAg
IEZpcnN0V2l0aFdlYkljb25EYXRhYmFzZVdhcm5pbmcgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEw
XzEzLAotICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xNV80LAotI2VuZGlmCi19OwotCi1ib29sIGxpbmtlZE9uT3JBZnRlcihTREtW
ZXJzaW9uKTsKLQogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMiIHsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tz
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLm1t
CmluZGV4IDRlN2M4MWJiYWJkZTQ5NTcwZWM5Nzg3YjQxMGNmYjczMjEwMTMwNDguLmNhN2E2YjNh
ZDBkMjNkZDk3NGE4NTFmNTRhOWJhYjkxZjBjNGUzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0VmVyc2lvbkNoZWNrcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MubW0KQEAgLTY4LDE2ICs2OCwz
IEBAIHN0YXRpYyBpbnQgV2ViS2l0TGlua1RpbWVWZXJzaW9uKHZvaWQpCiAgICAgcmV0dXJuIE5T
VmVyc2lvbk9mTGlua1RpbWVMaWJyYXJ5KCJVSUtpdCIpOwogI2VuZGlmCiB9Ci0KLWJvb2wgbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb24gc2RrVmVyc2lvbikKLXsKLSAgICBzdGF0aWMgYm9vbCBs
aW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nOwotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNl
OwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgaWYgKFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJXZWJLaXRMaW5rZWRPbk9y
QWZ0ZXJFdmVyeXRoaW5nIl0pCi0gICAgICAgICAgICBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5n
ID0gdHJ1ZTsKLSAgICB9KTsKLSAgICBpZiAoVU5MSUtFTFkobGlua2VkT25PckFmdGVyRXZlcnl0
aGluZykpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFt
X3Nka192ZXJzaW9uKCkgPj0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOwotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c0RlZmF1bHRWYWx1ZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQppbmRleCBiNjU4MGU3YTYxM2MxMzlhNWI2ZjhkYTEw
MmM3Nzc0NjVkMzYzNWQ5Li42OGVhYzBhNzhjNjRjY2EyMjc0ZDk0YTkzZmM2ODliMjE4MGE3OTQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQpAQCAtMjUsOSArMjUsOSBAQAogCiAjaW1w
b3J0ICJXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaCIKIAotI2ltcG9ydCAiV2ViS2l0VmVy
c2lvbkNoZWNrcy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0J1bmRsZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVy
c2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvRmVhdHVyZUZsYWdzU1BJLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzQ29jb2EuaD4KQEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIGRlZmF1bHRJbmxp
bmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSgpCiAKIGJvb2wgZGVm
YXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHJl
dHVybiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3Np
dmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXIo
V2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3Rl
bmVyc09uRG9jdW1lbnQpOwogfQogCiBib29sIGRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9M
b2FkVmlkZW8oKQpAQCAtMTU3LDcgKzE1Nyw3IEBAIGJvb2wgZGVmYXVsdEF0dGFjaG1lbnRFbGVt
ZW50RW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMo
KQogewotICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMp
OworICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRP
bk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNj
aGVtZXMpOwogICAgIHJldHVybiBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMThmNjRm
NTMzMDY4YTIwYjY2OTA4ODM3YzE1NzRlYWE1YmM5NTQxMC4uNDNjNjUyMzIzYjUxNDA3MTM5ZDYy
ZjkyYzM4YTE4MzU0ODlkYjc0YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTEwLTAyICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkgbGlua2VkT25P
ckFmdGVyIGR1cGxpY2F0ZSBjb2RlIGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3VwcG9ydCBpbnN0
ZWFkIG9mIE5TVXNlckRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTcyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAg
ICAgICAgKHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9yVGVzdGluZyk6CisgICAgICAg
ICogTWluaUJyb3dzZXIvbWFjL21haW4ubToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIE1v
YmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4ubToKKyAgICAgICAgKG1haW4p
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZp
ZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tOgorICAgICAgICAobWFp
bik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvbWFpbk1hYy5tbToKKyAgICAgICAgKG1h
aW4pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW06CisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9tYWluLm1tOgorICAgICAg
ICAoc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKToKKwogMjAyMC0xMC0w
MSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtp
dHNjbXB5XSBTdXBwb3J0IGdpdC1zdm4gY29tbWl0dGVycwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDRkNjNmNDBjZmVkNzcyYTU2YzI1NGMwNTMxMDcz
MjVhMmQ5YWI2ZTMuLjkzNDgzODMwNjFhZTgzZjI2ZmYzODNkZWM3YWJmNGM4YTA1MTg4ZTggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEwMTgsNyAr
MTAxOCw2IEBAIHN0YXRpYyB2b2lkIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9yVGVz
dGluZygpCiAgICAgICAgIFdlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleTogQFlF
UywKICAgICAgICAgV2ViS2l0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja1ByZWZlcmVuY2VLZXk6
IEBZRVMsCiAgICAgICAgIFdlYktpdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5s
aW5lQXR0cmlidXRlS2V5OiBATk8sCi0gICAgICAgIEAiV2ViS2l0TGlua2VkT25PckFmdGVyRXZl
cnl0aGluZyI6IEBZRVMsCiAgICAgICAgIEAiVXNlV2ViS2l0V2ViSW5zcGVjdG9yIjogQFlFUywK
ICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgQCJOU1ByZWZlcnJlZFNwZWxsU2Vy
dmVyTGFuZ3VhZ2UiOiBAImVuX1VTIiwKQEAgLTEwNDMsNiArMTA0Miw4IEBAIHN0YXRpYyB2b2lk
IHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9yVGVzdGluZygpCiAgICAgICAgIEAiY29t
LmFwcGxlLnN3aXBlc2Nyb2xsZGlyZWN0aW9uIjogQDEsCiAgICAgfTsKIAorICAgIFdlYkNvcmVU
ZXN0U3VwcG9ydDo6c2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcoKTsKKwog
ICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldFZhbHVlc0Zvcktl
eXNXaXRoRGljdGlvbmFyeTpkaWN0XTsKIAogICAgIE5TRGljdGlvbmFyeSAqcHJvY2Vzc0luc3Rh
bmNlRGVmYXVsdHMgPSBAewpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL21haW4u
bSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9tYWluLm0KaW5kZXggYmEyY2ExMjQ4MmMwYWI4MDk5
OTgxMzFmNjkzYzg3NjAxOWM1OTVmMS4uOTk0OWFmZDcxNGQ2MTU1ZDJjNTA0ZDA1ODQ1ODgyZWYw
MGQzNjNiNCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL21haW4ubQorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvbWFpbi5tCkBAIC0yNCwxMCArMjQsMTEgQEAKICAqLwogCiAj
aW1wb3J0IDxDb2NvYS9Db2NvYS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmg+CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0gICAgW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpZRVMgZm9yS2V5OkAiV2Vi
S2l0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZyJdOworICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRM
aW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZ107CiAKICAgICByZXR1cm4gTlNBcHBs
aWNhdGlvbk1haW4oYXJnYywgIChjb25zdCBjaGFyICoqKSBhcmd2KTsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL01vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4ubSBiL1Rvb2xz
L01vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4ubQppbmRleCA1NWVmZDE1
NzJmYTdhZDQ5YjgyY2U2YzU4YTAwMjIyZTA3YTc2MWFjLi44YzQyNTBmNDA4NzFkNTQ0OGFmZjk3
ZDYxNjQzNWM3N2E0ZjkzZWVlIDEwMDY0NAotLS0gYS9Ub29scy9Nb2JpbGVNaW5pQnJvd3Nlci9N
b2JpbGVNaW5pQnJvd3Nlci9tYWluLm0KKysrIGIvVG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9i
aWxlTWluaUJyb3dzZXIvbWFpbi5tCkBAIC0yNCwxMCArMjQsMTEgQEAKICAqLwogCiAjaW1wb3J0
IDxNb2JpbGVNaW5pQnJvd3Nlci9Nb2JpbGVNaW5pQnJvd3Nlci5oPgorI2ltcG9ydCA8V2ViS2l0
L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICogYXJn
dltdKQogewotICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJv
b2w6WUVTIGZvcktleTpAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciXTsKKyAgICBb
V0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmddOwog
CiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CiAgICAgICAgIHJldHVybiBVSUFwcGxpY2F0aW9uTWFp
bihhcmdjLCBhcmd2LCBuaWwsIE5TU3RyaW5nRnJvbUNsYXNzKFtBcHBEZWxlZ2F0ZSBjbGFzc10p
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdU
Ri54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54
Y2NvbmZpZwppbmRleCA1NzQwMDM1ZWQ2YWYxNzlhNjc3MWEzMWY5M2YwMmNiYjExNGNmNjAyLi4w
N2Q5N2ZiZmY2MDU4NjBmZDBhODAxZjg1YTQ0ODczNGZhZWI5YWZhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnCkBAIC0yNyw2
ICsyNyw4IEBAIExJQlJBUllfU0VBUkNIX1BBVEhTID0gJChQUk9KRUNUX0RJUikvVGVzdHMvV1RG
L2RhcndpbiAkKGluaGVydGllZCk7CiAKIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVT
OwogCitHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gJChpbmhlcml0ZWQpIEJVSUxESU5H
X1RFU1RfV1RGPTEKKwogVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUyA9IC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWk43dGVzdGluZzRUZXN0MTZUZWFyRG93blRlc3RDYXNlRXYgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTjd0ZXN0aW5nNFRlc3QxM1NldFVwVGVzdENhc2VFdgog
CiBPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFH
UykgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdURi5h
ICQoT1RIRVJfTERGTEFHU19QTEFURk9STSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2lvcy9tYWluSU9TLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvbWFpbklPUy5tbQpp
bmRleCAwMWM3ZDI3MzYxNTY3MWJlMDA4ZjIxODhmY2QzYzdlMWZkMDBiNWY2Li43YTgwM2E3NWEx
YzgwNDRjZGFhYWUyMTBhNmVkM2M4NmZiM2Y0NzUyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2lvcy9tYWluSU9TLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL21haW5J
T1MubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVGVz
dHNDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
PgorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CiAgICAgTlNBdXRvcmVsZWFz
ZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKQEAgLTM2LDEw
ICszOCwxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqYXJndW1lbnREb21haW4gPSBbW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gdm9sYXRpbGVEb21haW5Gb3JOYW1lOk5TQXJndW1lbnREb21haW5dIG11dGFi
bGVDb3B5XTsKICAgICBpZiAoIWFyZ3VtZW50RG9tYWluKQogICAgICAgICBhcmd1bWVudERvbWFp
biA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07Ci0gICAgCi0gICAgTlNEaWN0
aW9uYXJ5ICpkaWN0ID0gQHsgQCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIjogQFlF
UyB9OwogCi0gICAgW2FyZ3VtZW50RG9tYWluIGFkZEVudHJpZXNGcm9tRGljdGlvbmFyeTpkaWN0
XTsKKyNpZm5kZWYgQlVJTERJTkdfVEVTVF9XVEYKKyAgICBbV0tQcm9jZXNzUG9vbCBfc2V0TGlu
a2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmddOworI2VuZGlmCisKICAgICBbW05TVXNl
ckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRWb2xhdGlsZURvbWFpbjphcmd1bWVu
dERvbWFpbiBmb3JOYW1lOk5TQXJndW1lbnREb21haW5dOwogCiAgICAgYm9vbCBwYXNzZWQgPSBU
ZXN0V2ViS2l0QVBJOjpUZXN0c0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1bihhcmdjLCBhcmd2
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL21haW5NYWMubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL21hYy9tYWluTWFjLm1tCmluZGV4IDYyNGZmODI0MjQ4Zjk1YTdjNWUz
ZWJhNzVmMjY2YWEwNjdjMjE5MjAuLjU1OWMzY2NjY2ZmODk5YzlmOTYyNmJhZDdlNDFjMGFkYjYy
MDc2MjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL21haW5NYWMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvbWFpbk1hYy5tbQpAQCAtMjYsNiArMjYsOCBAQAog
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJUZXN0c0NvbnRyb2xsZXIuaCIKIAorI2ltcG9y
dCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisKIGV4dGVybiAiQyIgdm9pZCBfQmVn
aW5FdmVudFJlY2VpcHRPblRocmVhZCh2b2lkKTsKIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KQpAQCAtNDIsMTQgKzQ0LDE1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKICAgICAvLyBDQVVUSU9OOiBEZWZhdWx0cyBzZXQgaGVyZSBhcmUgbm90IGF1dG9tYXRpY2Fs
bHkgcHJvcGFnYXRlZCB0byB0aGUKICAgICAvLyBXZWIgQ29udGVudCBwcm9jZXNzLiBUaG9zZSBs
aXN0ZWQgYmVsb3cgYXJlIHByb3BhZ2F0ZWQgbWFudWFsbHkuCiAgICAgTlNEaWN0aW9uYXJ5ICpk
aWN0ID0gQHsKLSAgICAgICAgQCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIjogQFlF
UywKLQogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHN3aXRjaCB0aGVzZSBkZWZhdWx0cyB0
byB1c2Ugb3ZlcmxheQogICAgICAgICAvLyBzY3JvbGxiYXJzLCBzaW5jZSB0aGV5IGFyZSB0aGUg
ZGVmYXVsdCBvbiB0aGUgcGxhdGZvcm0sCiAgICAgICAgIC8vIGJ1dCBhIHZhcmlldHkgb2YgdGVz
dHMgd2lsbCBuZWVkIGNoYW5nZXMuCiAgICAgICAgIEAiTlNPdmVybGF5U2Nyb2xsZXJzRW5hYmxl
ZCI6IEBOTywKICAgICAgICAgQCJBcHBsZVNob3dTY3JvbGxCYXJzIjogQCJBbHdheXMiLAogICAg
IH07CisjaWZuZGVmIEJVSUxESU5HX1RFU1RfV1RGCisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nXTsKKyNlbmRpZgogCiAgICAgW2FyZ3Vt
ZW50RG9tYWluIGFkZEVudHJpZXNGcm9tRGljdGlvbmFyeTpkaWN0XTsKICAgICBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRWb2xhdGlsZURvbWFpbjphcmd1bWVudERv
bWFpbiBmb3JOYW1lOk5TQXJndW1lbnREb21haW5dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL21h
aW5JT1MubW0KaW5kZXggMWE5MDZlZmRiYTAxMDcxZDFhMWM4NDQxMWI3OTMxYjZlOGFiYTE1Ny4u
ZjE2NmU0MGY4N2I4ODNmNmY5Y2U4MDEwMGViNzk1OWJlMjc5OGY1YSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9tYWluSU9TLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0ICJISURFdmVu
dEdlbmVyYXRvci5oIgogI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlVJS2l0
U1BJLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KIAogc3RhdGlj
IGludCBfYXJnYzsKIHN0YXRpYyBjb25zdCBjaGFyICoqX2FyZ3Y7CkBAIC02OCw5ICs2OSw3IEBA
IGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgX2FyZ2MgPSBhcmdj
OwogICAgIF9hcmd2ID0gYXJndjsKIAotICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBb
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOllFUyBmb3JLZXk6
QCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIl07Ci0gICAgfQorICAgIFtXS1Byb2Nl
c3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZ107CiAKICAgICBV
SUFwcGxpY2F0aW9uTWFpbihhcmdjLCAoY2hhcioqKWFyZ3YsIEAiV2ViS2l0VGVzdFJ1bm5lckFw
cCIsIEAiV2ViS2l0VGVzdFJ1bm5lckFwcCIpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFpbi5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvbWFjL21haW4ubW0KaW5kZXggMDg0MGZiZWM1ZTJmNTljNmUxMmNmNTZkY2IwOGM0ZjBiZDQ5
MGEyOS4uMWNmMWUwZTdmNTZmNzM4OTc1MTkyNzMyNzU0ZDU4MjYwMzkwYzRiOSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFpbi5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9tYWluLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgIlBsYXRm
b3JtV2ViVmlldy5oIgogI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgPFdlYktp
dC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogCiBzdGF0aWMgdm9pZCBzZXREZWZhdWx0c1RvQ29u
c2lzdGVudFZhbHVlc0ZvclRlc3RpbmcoKQogewpAQCAtNDEsMTIgKzQyLDEyIEBAIHN0YXRpYyB2
b2lkIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9yVGVzdGluZygpCiAgICAgICAgIEAi
QXBwbGVFbmFibGVTd2lwZU5hdmlnYXRlV2l0aFNjcm9sbHMiOiBAWUVTLAogICAgICAgICBAImNv
bS5hcHBsZS5zd2lwZXNjcm9sbGRpcmVjdGlvbiI6IEAxLAogICAgICAgICBAImNvbS5hcHBsZS50
cmFja3BhZC5mb3JjZUNsaWNrIjogQDEsCi0gICAgICAgIEAiV2ViS2l0TGlua2VkT25PckFmdGVy
RXZlcnl0aGluZyI6IEBZRVMsCiAgICAgICAgIEAiTlNTY3JvbGxBbmltYXRpb25FbmFibGVkIjog
QE5PLAogICAgICAgICBAIk5TT3ZlcmxheVNjcm9sbGVyc0VuYWJsZWQiOiBATk8sCiAgICAgICAg
IEAiQXBwbGVTaG93U2Nyb2xsQmFycyI6IEAiQWx3YXlzIiwKICAgICAgICAgQCJXZWJLaXQyVXNl
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEiOiBATk8sCiAgICAgfTsKKyAgICBbV0tQcm9jZXNz
UG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmddOwogCiAgICAgW1tO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0VmFsdWVzRm9yS2V5c1dpdGhE
aWN0aW9uYXJ5OmRpY3RdOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410346</attachid>
            <date>2020-10-02 11:20:39 -0700</date>
            <delta_ts>2020-10-02 12:24:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217239-20201002112038.patch</filename>
            <type>text/plain</type>
            <size>90565</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzliNjBmZTYxMDYyMzI1
ODgzYzYwZTcyM2FiNDVkMWFmMjllOTI0MC4uZTgzNGNiN2E0NjY1Mzg2YjBhZjdhNzNhYWJmMGFk
ODZmN2U5N2NjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEwLTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkg
bGlua2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2RlIGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3Vw
cG9ydCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZSBtYWtlIG5ldyBTYWZhcmkgc2hpcHBlZCBvbiBvbGQg
T1NlcyBoYXZlIHRoZSBuZXcgYmVoYXZpb3Igd2l0aCByZWdhcmRzIHRvIGxpbmtlZE9uT3JBZnRl
ciwKKyAgICAgICAgYW5kIHdpdGggRHVtcFJlbmRlclRyZWUsIFdlYktpdFRlc3RSdW5uZXIsIGFu
ZCBUZXN0V2ViS2l0QVBJIHdlIHRlc3QgdGhlIG5ldyBiZWhhdmlvci4KKyAgICAgICAgV2UgaGFk
IGR1cGxpY2F0ZSBpbXBsZW1lbnRhdGlvbnMgaW4gV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kgdGhh
dCBJIG1vdmUgdG8gV2ViQ29yZSB0byBzaGFyZQorICAgICAgICBhbmQgdG8gYmUgdXNlZCBieSBX
ZWJDb3JlIGluIGNhc2VzIGxpa2UgYnVnIDY4MDg5LgorICAgICAgICBJIGFsc28gdXNlIFNQSSBv
biBXS1Byb2Nlc3NQb29sIGFuZCBXZWJLaXRUZXN0U3VwcG9ydCB0byBzZXQgdGhpcyB2YWx1ZSBm
b3IgRHVtcFJlbmRlclRyZWUsCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIsIGFuZCBUZXN0V2Vi
S2l0QVBJLiAgSXQgdG9vayBhIG5ldyBwcmVwcm9jZXNzb3IgZGVmaW5pdGlvbiB0byBnZXQgVGVz
dFdURiB0bworICAgICAgICBsaW5rIHN1Y2Nlc3NmdWxseSBzaW5jZSBpdCBkb2Vzbid0IGxpbmsg
d2l0aCBXZWJLaXQuZnJhbWV3b3JrLCBidXQgaXQgYWxzbyBkb2Vzbid0IGhhdmUgYW55CisgICAg
ICAgIGxpbmtlZE9uT3JBZnRlciBjaGVja3MsIHNvIHRoaXMgaXMgbm8gcHJvYmxlbS4KKworICAg
ICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3Mu
aC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1tOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbS4KKyAgICAg
ICAgKFdlYkNvcmU6OnNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRlcik6CisgICAgICAgICogdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRM
aW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAgICAgICogdGVzdGluZy9q
cy9XZWJDb3JlVGVzdFN1cHBvcnQuaDoKKwogMjAyMC0wOS0zMCAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgbm9uLWFuaW1hdGVkIHN1cHBvcnQgZm9y
IHRoZSBDU1MgdHJhbnNsYXRlIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDllN2Q0ZjAyZjNkNGUyZjE3
NmZjNDYwMDc0YTI2MWU5MDA1ZmUwNTUuLjkwMDUyOTdhNWYwMzA2Y2RkYTgwMDlmZjk5MGQxYmNi
YzlmOGM4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjAtMTAtMDIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVbmlmeSBsaW5r
ZWRPbk9yQWZ0ZXIgZHVwbGljYXRlIGNvZGUgYW5kIHVzZSBTUEkvV2ViQ29yZVRlc3RTdXBwb3J0
IGluc3RlYWQgb2YgTlNVc2VyRGVmYXVsdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW06Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQ
cm9jZXNzQ29jb2EpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNh
bGxDaGVja2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckR1
cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL0Rl
ZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0OjpkZXRlcm1pbmVJVFBT
dGF0ZSk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAg
IChXS1BhZ2VSZWxvYWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbToKKyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZl
cnl0aGluZ0ZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW06CisgICAgICAgIChzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVS
THMpOgorICAgICAgICAoc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyByZWxvYWRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1
cmF0aW9uOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKGRlZmF1bHRTaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk6CisgICAgICAgICgtW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgaW5p
dF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9jb21wdXRlZE9ic2N1cmVkSW5zZXRdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfd2Vi
X2RyYWdEZXN0aW5hdGlvbkFjdGlvbkZvckRyYWdnaW5nSW5mbzpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIgaW5zcGVjdG9yV0tXZWJWaWV3UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFi
bGVPclpvb21lZE1haW5GcmFtZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXpl
U2FuZGJveEV4dGVuc2lvbkhhbmRsZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc01haW5UaHJlYWRP
ckNoZWNrRGlzYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJv
Y2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvdWxk
VXNlQ29udGV4dE1lbnVzXSk6CisgICAgICAgIChhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1v
dXNlRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbToKKyAg
ICAgICAgKC1bV0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250ZW50SW5zZXRdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVza3Rv
cENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorCiAyMDIwLTEwLTAyICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogYWRkIGFuIE9iakMgcHJvdG9jb2wgZm9y
IGV4dGVuc2lvbiBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZjA3YjA0
YTcwMjIwNWQwZmI1OGRmYTcwZjhkYTZjNDI3OTI4YjIyZS4uNmFiN2U4NGU1YmY0MjVkYWMwZDBi
ODQ0MWNiZjE2Y2UxM2Q5M2JkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTEwLTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkgbGlua2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2Rl
IGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3VwcG9ydCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlZmF1
bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkRlZmF1
bHRVSURlbGVnYXRlIHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5n
SW5mbzpdKToKKyAgICAgICAgKiBNaXNjL1dlYkljb25EYXRhYmFzZS5tbToKKyAgICAgICAgKCtb
V2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0pOgorICAgICAgICAqIE1pc2MvV2Vi
S2l0VmVyc2lvbkNoZWNrcy5oOgorICAgICAgICAqIE1pc2MvV2ViS2l0VmVyc2lvbkNoZWNrcy5t
bToKKyAgICAgICAgKFdlYktpdExpbmtUaW1lVmVyc2lvbik6CisgICAgICAgIChsaW5rZWRPbk9y
QWZ0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJz
QXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRTaG91bGRSZXN0
cmljdEJhc2VVUkxTY2hlbWVzKToKKwogMjAyMC0xMC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgQXVkaW9X
b3JrbGV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA0NWYzMDIyOWRkYzAwNTk5NTYzN2I0
OWM0MjZjODNkNzZlNzJkODM1Li4wNTg1MjNiNzdjNDY4MzMzMzUwN2UzZWQ1NjQzNjNhYWM2Mjc3
ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI1MSw2ICsyNTEsNyBAQCBwbGF0Zm9y
bS9jb2NvYS9TeXN0ZW1WZXJzaW9uLm1tCiBwbGF0Zm9ybS9jb2NvYS9UZWxlcGhvbmVOdW1iZXJE
ZXRlY3RvckNvY29hLmNwcAogcGxhdGZvcm0vY29jb2EvVGhlbWVDb2NvYS5tbQogcGxhdGZvcm0v
Y29jb2EvVXNlckFnZW50Q29jb2EubW0KK3BsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MubW0K
IHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCiBwbGF0
Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKIHBsYXRmb3JtL2NvY29hL1dlYkNv
cmVBZGRpdGlvbnMubW0gQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2EwMGY5ZTBhMjZiZjIxYThiY2M5ZmY1NTEw
MjJmNzQ3OTgxMjBkZC4uNjFiYzUzZGIwY2MwZjBiMGIxM2I4NTFkNzBhMmRjYzAxNjJhZGRiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDgwNCw2ICs0ODA0LDcgQEAKIAkJREVDQTgwNkMxRjlGRUQ2QTAwRTNCNjYxIC8qIFVu
aWZpZWRTb3VyY2UyOTkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREVDQTdGREExRjlGRTlBMjAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyOTkuY3Bw
ICovOyB9OwogCQlERUNBODA2RDFGOUZFRDZBMDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTMwMC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERUNBN0ZC
QjFGOUZFOTgzMDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTMwMC5jcHAgKi87IH07CiAJCURGMTlF
MkFDMjQ3NzJCQzEwMDdCREFDQiAvKiBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREYxOUUy
QUEyNDc3MjlBNjAwN0JEQUNCIC8qIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJREY0
RTM4RTAyNTI3OTU5NTAwMkE3NDgxIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGNEUzOERFMjUyNzk1OTQwMDJBNzQ4MSAv
KiBWZXJzaW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJREY5NUIxNEEyNEZEQUZEMzAwQjFGNEQ3IC8qIFRleHRDb2RlY0NKSy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY5NUIxNDgyNEZE
QUZEMzAwQjFGNEQ3IC8qIFRleHRDb2RlY0NKSy5oICovOyB9OwogCQlERjlBRkQ3MjEzRkMzMUQ4
MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY5QUZENzAxM0ZDMzFEODAw
MTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCAqLzsgfTsKIAkJ
REY5QUZENzMxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
RjlBRkQ3MTEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbSAqLzsgfTsKQEAgLTE1NDU2LDYgKzE1NDU3LDggQEAKIAkJREVDQTdGRjQxRjlGRTlC
OTAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyNTUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTI1NS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTI1NS5jcHAiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlERUNBN0ZGNTFGOUZFOUJBMDBFM0I2NjEg
LyogVW5pZmllZFNvdXJjZTI1Ni5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVbmlmaWVkU291cmNlMjU2LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMjU2LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCURGMTlFMkFBMjQ3NzI5QTYwMDdCREFDQiAvKiBTaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlERjRFMzhEQzI1Mjc5NTkzMDAyQTc0ODEgLyogVmVyc2lvbkNo
ZWNrcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZlcnNpb25D
aGVja3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURGNEUzOERFMjUyNzk1OTQw
MDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZlcnNpb25DaGVja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY3RTlB
Mjk0QzdBQUNFMEFEODlCM0REIC8qIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY5NUIxNDYyNEZEQUZEMjAwQjFGNEQ3IC8qIFRl
eHRDb2RlY0NKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0
Q29kZWNDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjk1QjE0ODI0RkRB
RkQzMDBCMUY0RDcgLyogVGV4dENvZGVjQ0pLLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHRDb2RlY0NKSy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQw
OTEsNiArMjQwOTQsOCBAQAogCQkJCTMxMEQ3MTk0MUIzMzVDOUQwMDlDN0I3MyAvKiBUaGVtZUNv
Y29hLmggKi8sCiAJCQkJMzEwRDcxOTMxQjMzNUM5RDAwOUM3QjczIC8qIFRoZW1lQ29jb2EubW0g
Ki8sCiAJCQkJQTNBRjlEODEyMDMyNTJFRTAwNkNBRDA2IC8qIFVzZXJBZ2VudENvY29hLm1tICov
LAorCQkJCURGNEUzOERFMjUyNzk1OTQwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggKi8sCisJ
CQkJREY0RTM4REMyNTI3OTU5MzAwMkE3NDgxIC8qIFZlcnNpb25DaGVja3MubW0gKi8sCiAJCQkJ
NTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggKi8sCiAJCQkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsLmggKi8sCiAJCQkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVl
bk1vZGVsVmlkZW9FbGVtZW50LmggKi8sCkBAIC0zNDM3OCw2ICszNDM4Myw3IEBACiAJCQkJMTVD
NzcwOEQxMDBEM0M2QjAwNUJBMjY3IC8qIFZhbGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMzE2MEFGMTJCMDI2RjcwMEMxQTM1OSAvKiBWZWN0b3JNYXRoLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjFBMEMzODIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlERjRFMzhFMDI1Mjc5NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2Fs
UG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJCMEQ0QzAxQzU3RkQ2NjAwNzdD
RTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmVyc2lvbkNoZWNrcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVy
c2lvbkNoZWNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNjBmYmMyMTI4ZjIzN2Y3MmU5MmIyY2RkY2FmZWNm
YjhmYjQ2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WZXJzaW9uQ2hlY2tzLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KKworI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvVmVyc2lvbkNo
ZWNrc0FkZGl0aW9ucy5oPgorI2Vsc2UKKyNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9X
SVRIX0lPU19BUFBTX09OX01BQ09TIDAKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2VudW0gY2xhc3MgU0RLVmVyc2lvbiA6IHVpbnQzMl90IHsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIEZpcnN0V2l0aE5ldHdvcmtDYWNoZSA9IERZTERfSU9TX1ZFUlNJT05fOV8wLAor
ICAgIEZpcnN0V2l0aE1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBE
WUxEX0lPU19WRVJTSU9OXzEwXzAsCisgICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0
ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzAsCisgICAgRmly
c3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvciA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwK
KyAgICBGaXJzdFRoYXREaXNhbGxvd3NTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0g
RFlMRF9JT1NfVkVSU0lPTl8xMV8zLAorICAgIEZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91
Y2hMaXN0ZW5lcnNPbkRvY3VtZW50ID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8zLAorICAgIEZpcnN0
V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cyA9IERZTERf
SU9TX1ZFUlNJT05fMTJfMCwKKyAgICBGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5
S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkgPSBEWUxEX0lPU19WRVJTSU9OXzEyXzAsCisg
ICAgRmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZ
TERfSU9TX1ZFUlNJT05fMTJfMCwKKyAgICBGaXJzdFdpdGhvdXRVbmNvbmRpdGlvbmFsVW5pdmVy
c2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFdp
dGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEy
XzIsCisgICAgRmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBEWUxE
X0lPU19WRVJTSU9OXzEyXzIsCisgICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0
ZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RXaXRoRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAgIEZp
cnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyA9IERZTERf
SU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZp
ZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAg
IEZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJ
T05fMTNfMCwKKyAgICBGaXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBEWUxE
X0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3Zl
cnJpZGVLZXlDb21tYW5kcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFRoYXRT
dXBwb3J0c092ZXJmbG93SGlkZGVuT25NYWluRnJhbWUgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAs
CisgICAgRmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQgPSBE
WUxEX0lPU19WRVJTSU9OXzEzXzIsCisgICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVt
ZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCisgICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBC
eURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCisgICAgRmlyc3RUaGF0U2VuZHNOYXRp
dmVNb3VzZUV2ZW50cyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKKyAgICBGaXJzdFdpdGhJbml0
aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAs
CisgICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERf
SU9TX1ZFUlNJT05fMTRfMCwKKyAgICBGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MgPSBE
WUxEX0lPU19WRVJTSU9OX0ZJUlNUX1dJVEhfSU9TX0FQUFNfT05fTUFDT1MsCisjZWxpZiBQTEFU
Rk9STShNQUMpCisgICAgRmlyc3RXaXRoTmV0d29ya0NhY2hlID0gRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xMSwKKyAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhh
bmRsZXJDYWxscyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCisgICAgRmlyc3RXaXRoRHJv
cFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8x
MywKKyAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMywKKyAgICBGaXJzdFdpdGhXZWJJY29uRGF0YWJhc2VXYXJuaW5nID0gRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKKyAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFz
c2VydGlvbkluV2ViUGFnZVByb3h5ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNCwKKyAgICBG
aXJzdFdpdGhvdXRVbmNvbmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTUsCisgICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVw
ZGF0ZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1LAorICAgIEZpcnN0V2l0aEV4Y2VwdGlv
bnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMgPSBEWUxEX01BQ09T
WF9WRVJTSU9OXzEwXzE1LAorICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFi
bGVkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV8xLAorICAgIEZpcnN0VGhh
dFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80LAor
ICAgIEZpcnN0V2l0aFNlc3Npb25DbGVhbnVwQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNiwKKyAgICBGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRp
b24gPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAorICAgIEZpcnN0V2l0aFdLV2Vic2l0ZURh
dGFTdG9yZUluaXRSZXR1cm5pbmdOaWwgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAorI2Vu
ZGlmCit9OworCitlbnVtIGNsYXNzIEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciA6
IGJvb2wgeyBObywgWWVzIH07CitXRUJDT1JFX0VYUE9SVCBib29sIGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uLCBBc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIgPSBBc3N1bWVTYWZh
cmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXI6Olllcyk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCk7CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4YzIxZGU1
MTk3MTQzMDc0ZDJiMTQwODg2ZTY1NjM4YmY5N2UxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1tCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmVyc2lv
bkNoZWNrcy5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
PgorI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KKyNpbXBvcnQgPG11dGV4PgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0YXRpYyBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0
aW5nIHsgZmFsc2UgfTsKKwordm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVz
dGluZygpCit7CisgICAgQVNTRVJUKCFsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGlu
Zyk7CisgICAgbGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcgPSB0cnVlOworfQor
Citib29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uIHNka1ZlcnNpb24sIEFzc3VtZVNhZmFy
aUlzQWx3YXlzTGlua2VkT25BZnRlciBhc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIp
Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIGlzU2FmYXJpID0gV2ViQ29y
ZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCk7CisjZWxpZiBQTEFURk9STShNQUMp
CisgICAgYm9vbCBpc1NhZmFyaSA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgp
OworI2VuZGlmCisKKyAgICBpZiAoVU5MSUtFTFkobGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0Zv
clRlc3RpbmcpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChpc1NhZmFyaSAmJiBh
c3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIgPT0gQXNzdW1lU2FmYXJpSXNBbHdheXNM
aW5rZWRPbkFmdGVyOjpZZXMpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgYXV0byBzZGtW
ZXJzaW9uQXNJbnRlZ2VyID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOworICAg
IHJldHVybiBzZGtWZXJzaW9uQXNJbnRlZ2VyICYmIGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNp
b24oKSA+PSBzZGtWZXJzaW9uQXNJbnRlZ2VyOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggZDdkMTYzMGM5M2JlZGRm
N2E4ZDU3YmU4ZmVlNDUxMDk2MDNiNjU5My4uZjhhZDc2YWE2ZjlhMTBlOTg0YTg5NDZjYmYwNGE4
N2Y2Nzg5MDNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRl
c3RTdXBwb3J0LmNwcApAQCAtNDgsNiArNDgsNyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAj
aW5jbHVkZSAiVVRJUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmVUZXN0U3VwcG9ydCB7CkBAIC0xNDMsNiArMTQ0LDEzIEBA
IHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBhbGxvd0FueVNTTENlcnRpZmlj
YXRlKQogICAgIEludGVybmFsU2V0dGluZ3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFs
bG93QW55U1NMQ2VydGlmaWNhdGUpOwogfQogCit2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmdGb3JUZXN0aW5nKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpz
ZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOworI2VuZGlmCit9CisKIHZv
aWQgaW5zdGFsbE1vY2tHYW1lcGFkUHJvdmlkZXIoKQogewogI2lmIEVOQUJMRShHQU1FUEFEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmgKaW5kZXgg
OGU0MWEwNmZkNTFiNmM0ZGY2MDA2ZWIwNmU4NGYwMDIwMjRjNzViNy4uOTg5ZmQ2NzI2YjMyYjVj
OGQ0ODVlY2E3YjFmYzk0ZmM5ODE5ZTJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQgc2V0TG9nQ2hh
bm5lbFRvQWNjdW11bGF0ZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkgVEVTVF9TVVBQT1JUX0VY
UE9SVDsKIHZvaWQgY2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpIFRFU1RfU1VQUE9S
VF9FWFBPUlQ7CiB2b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCkgVEVTVF9T
VVBQT1JUX0VYUE9SVDsKIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCkgVEVT
VF9TVVBQT1JUX0VYUE9SVDsKK3ZvaWQgc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRl
c3RpbmcoKSBURVNUX1NVUFBPUlRfRVhQT1JUOwogCiB2b2lkIGluc3RhbGxNb2NrR2FtZXBhZFBy
b3ZpZGVyKCkgVEVTVF9TVVBQT1JUX0VYUE9SVDsKIHZvaWQgY29ubmVjdE1vY2tHYW1lcGFkKHVu
c2lnbmVkIGluZGV4KSBURVNUX1NVUFBPUlRfRVhQT1JUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCA0OWZhODgwYTg5NjUxMDg0YTU4Mzk5MWQ3YTEwZmVlNzBiNTUyMWYw
Li4yMjBjNDhkMGMzZjYxMmYyYmJhMGJhMGU2NDM5ZTg5MTJmMTRhOWFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTMsNiArNTMsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRl
bnRpZmllcjsKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1NES1ZlcnNpb247CisgICAgZW5jb2Rl
ciA8PCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZzsKICAgICBJUEM6OmVuY29k
ZShlbmNvZGVyLCBuZXR3b3JrQVRTQ29udGV4dC5nZXQoKSk7CiAjZW5kaWYKICNpZiBVU0UoU09V
UCkKQEAgLTEwNSw2ICsxMDYsOCBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzU0RL
VmVyc2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5saW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdC5uZXR3b3Jr
QVRTQ29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDc4MjlhMmRjMWMyYjJhOGVmYzJkYTkyZWEyYWY0ZDRmODM2
MjE3NGMuLmRkYzllODA2MWJjMjllYzMyNzBhODE0MWRjNTg0ODdmMTJjODE5MWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTY2LDYgKzY2LDcgQEAgc3RydWN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTdHJp
bmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICAgICB1aW50MzJfdCB1aVByb2Nlc3NTREtW
ZXJzaW9uIHsgMCB9OworICAgIGJvb2wgbGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3Rp
bmcgeyBmYWxzZSB9OwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IG5ldHdvcmtBVFNDb250ZXh0
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2Vi
U3RvcmFnZS9pb3MvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VySU9TLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXJJT1MubW0KaW5kZXggMTBjMTc4ODY4NGVhODQ3MWU3ZDZhYWMwZjZkNTUxZTVmYWUwNDY0
Ny4uYTc4OTU5YmFiZmFiN2E1ZmUxNzQ3MWYxZDk3OTgxYmM3MDdmNzNiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW0KQEAgLTI4LDcg
KzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLSNpbXBvcnQgIlZlcnNpb25D
aGVja3MuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDgyZDQ0MjBhY2ZiYjdlZDIyMTM5MzEw
YjIyYjE3YzJkYjIwY2JmMzYuLjY0OTcwNGZkYWJhNjM2ZWYyNmRjZDNkZmNmNmVlMWIwYjA5NDFk
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRh
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0NhbGxiYWNrQWdn
cmVnYXRvci5oPgpAQCAtNzQsNiArNzUsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQwogewog
ICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVp
UHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwogICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihw
YXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24pOworICAgIGlmIChwYXJhbWV0ZXJzLmxpbmtl
ZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKQorICAgICAgICBXZWJDb3JlOjpzZXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tCmluZGV4IDE2ZTViYmQ1MWU1MjQyZTViYWVhMGNkZTRjMTlmYWNiZTBmYTA1M2UuLmU0NWNh
MjFmMjI0OGQ4NGFlMDk0MTgxYzFhYmMyNTdjZmFiOWUwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5t
bQpAQCAtMjYsMTAgKzI2LDEwIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkNvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKIAorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hl
Y2tzLmg+CiAjaW1wb3J0IDxtdXRleD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9y
dCA8d3RmL1JlZi5oPgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUaHJvd0V4Y2VwdGlv
bkZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbCgpCiAgICAgc3RhdGljIGJvb2wgc2hv
dWxkVGhyb3dFeGNlcHRpb247CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAg
c3RkOjpjYWxsX29uY2Uob25jZSwgW10gewotICAgICAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbiA9
IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGlj
YXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyk7CisgICAgICAgIHNob3VsZFRocm93RXhjZXB0aW9u
ID0gbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2VwdGlv
bnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzKTsKICAgICB9KTsKICAgICByZXR1
cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IGM0YzYzYzE5NjBkNDQ1
YzI4ZDk0ZWZjNjI3NDIyYmVjYjJmZjY2ODcuLjdhZWFhMzk5OTlhZTljOTRjZWEyMmEyMzY2MzRh
ZjZhNzM1Y2UwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1
bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0Rl
ZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC0yNyw5ICsyNyw5IEBACiAjaW1wb3J0ICJEZWZh
dWx0V2ViQnJvd3NlckNoZWNrcy5oIgogCiAjaW1wb3J0ICJUQ0NTUEkuaCIKLSNpbXBvcnQgIlZl
cnNpb25DaGVja3MuaCIKICNpbXBvcnQgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNp
bXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CkBAIC0xMjgsNyArMTI4
LDcgQEAgdm9pZCBkZXRlcm1pbmVJVFBTdGF0ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGdf
Y3VycmVudElUUFN0YXRlID0gSVRQU3RhdGU6OkluaXRpYWxpemluZzsKLSAgICBib29sIGFwcFdh
c0xpbmtlZE9uT3JBZnRlciA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhT
ZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCwgQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVy
OjpZZXMpOworICAgIGJvb2wgYXBwV2FzTGlua2VkT25PckFmdGVyID0gbGlua2VkT25PckFmdGVy
KFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aFNlc3Npb25DbGVhbnVwQnlEZWZhdWx0KTsK
IAogICAgIGdfaXRwUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoImNvbS5hcHBsZS5XZWJL
aXQuaXRwQ2hlY2tRdWV1ZSIsIE5VTEwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbQppbmRleCAxNGQyNzlmNTdmZDM0YzAw
NDBjZmY4ZDY2N2Y1NjE2YzVkYzBiNTZmLi44MzFiODQwZTkwNWZiODVkZDNjMjFmNDBkMWExYTQ3
OTBjYzVhYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktp
dDJJbml0aWFsaXplQ29jb2EubW0KQEAgLTI2LDggKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiV2ViS2l0MkluaXRpYWxpemUuaCIKIAotI2ltcG9ydCAiVmVyc2lvbkNoZWNr
cy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxtdXRleD4KICNpbXBvcnQg
PHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjEsNyAr
NjEsNyBAQCB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKICAgICAvLyBNYWtlIHN1cmUgdGhlIGlu
aXRpYWxpemF0aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25jZSBhbmQgb24gdGhlIG1haW4gdGhyZWFk
IHNpbmNlIHRoaW5ncyBsaWtlIGluaXRpYWxpemVNYWluVGhyZWFkKCkKICAgICAvLyBhcmUgb25s
eSBzYWZlIHRvIGNhbGwgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0ZDo6Y2FsbF9vbmNlKGZs
YWcsIFtdIHsKLSAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRB
c3NlcnRpb24pKQorICAgICAgICBpZiAoW05TVGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlua2Vk
T25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQy
TWFpblRocmVhZEFzc2VydGlvbikpCiAgICAgICAgICAgICBydW5Jbml0aWFsaXphdGlvbkNvZGUo
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZGlzcGF0Y2hfc3luY19mKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIG51bGxwdHIsIHJ1bkluaXRpYWxpemF0aW9uQ29kZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApp
bmRleCA0NjRlOTc3ZDFmMzlhMjE0NDZhMDkxZWYxNDI3ZWNmZTg0YzdlYzg0Li5hZDUyZmI1Yzgz
ZGIyZGY5NmQ5YjViMjIyZTRiNzg5OTk3Y2Q3MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvRmVhdHVyZUZs
YWdzU1BJLmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0Nv
Y29hLmg+CiAjZW5kaWYKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJv
b2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQogewot
ICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNp
b246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsK
KyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVy
c2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQp
OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYzdhNTlhMDRkY2JkMTkz
ZmQ1YTJhMDAzMjJkODU1ZTg1NTFlMjkwMS4uYTQ2ZGI1MjE2NDNkMDBjNjlhYjM4YjE3NmUyNzVm
MzA0NmQ4YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTkwLDYgKzkwLDcgQEAgdm9pZCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRp
ZmllcjsKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1NES1ZlcnNpb247CisgICAgZW5jb2RlciA8
PCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZzsKICNlbmRpZgogICAgIGVuY29k
ZXIgPDwgcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAt
MzAyLDYgKzMwMyw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVy
c2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMubGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmlu
ZGV4IDBkM2EyOTY3NzE1MzdmYzMxZTEyZjUwMTE5ODYzNjNkYWMxMDkxZDkuLmI3N2MwODk3OWIz
OWQ4ZTE3YmEzNDgwNWIzYTlkMzNiM2JmNmFmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEzNCw2ICsxMzQsNyBA
QCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgU3RyaW5nIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAgICAgdWludDMyX3Qg
dWlQcm9jZXNzU0RLVmVyc2lvbiB7IDAgfTsKKyAgICBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmdGb3JUZXN0aW5nIHsgZmFsc2UgfTsKICNlbmRpZgogCiAgICAgUHJvY2Vzc0lEIHByZXNl
bnRpbmdBcHBsaWNhdGlvblBJRCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBiYmQz
MDU5NTI5YWZjYzk2Y2QzNDY2OTQ3YTZjYmFiOWQ1NDY3MDUxLi42OGM0NGI0OTM1NmQ1MzI5YTg2
NWVhODI2ZjI3YjZlM2EwMzA2YmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zODUsNyAr
Mzg1LDYgQEAgVUlQcm9jZXNzL0NvY29hL1VJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5tbQogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkubW0KLVVJUHJvY2Vzcy9Db2Nv
YS9WZXJzaW9uQ2hlY2tzLm1tCiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KIFVJUHJvY2Vz
cy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggODEzNGI4ZmI3MTE5OGQ2MTMwNDM3MTViMThiNDEyMTIy
NDIxNGE2ZC4uZmNiYTg0NDI5ZGQ4NjkzYWNlNWJkOTUwMTA3M2Y4OGFjMTAxYzVlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC05NSw3ICs5NSw3IEBACiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNlbmRpZgogCiBuYW1lc3BhY2Ug
QVBJIHsKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIFdLUGFnZVJlbG9hZChXS1BhZ2VSZWYgcGFn
ZVJlZikKIHsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRp
b25zOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0
OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBp
ZiAobGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpS
ZWxvYWRPcHRpb246OkV4cGlyZWRPbmx5KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDFmNTZmYmZiNjc5
NTE2NDhkZjBiNGJiZGNiZjJhNTk5ZGMwMGJkYTYuLjhlOTgzN2IxODA4YTZhN2RiZDg4NWNiMjJk
NjVlMTIxODY2M2RmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC01MTgsNiArNTE4LDExIEBAIHN0YXRpYyBOU0RpY3Rp
b25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGljdGlvbmFyeShjb25zdCBIYXNoTWFwPFN0cmluZywg
SGFzaE1hcDxTCiAjZW5kaWYKIH0KIAorKyAodm9pZClfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0
aGluZ0ZvclRlc3RpbmcKK3sKKyAgICBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRMaW5rZWRP
bk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOworfQorCiAtIChCT09MKV9pc0Nvb2tpZVN0
b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+Y29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggM2I5
MzE0MDRhOGUyZTQzMmQ1MWM1NDk2NWUyZGVmNWY4ZWNkYzEwZC4uMjE5NDFiMmQ0NjA3MGRhMWNh
OTVmYjkwNmY4ODMyZjVhZjA0ZDhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTExMiw2ICsxMTIs
NyBAQAogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29u
dGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVkLgogKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxl
ckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKysg
KHZvaWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3By
ZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3Ll9wcmVjb25uZWN0VG9TZXJ2ZXIiLCBtYWNvcygxMC4x
My40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMGQ2MTc3MDUyMmNh
MjQwOTNkYTMwZWM1ZGM5MmJmODg2NDgyYzJmMy4uZTJkMmYzZWVmNTdhNmJhOGVjMGIzMzU1ZjAw
N2JiZTg0NWFlNmRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCkBAIC01Miw3ICs1Miw2IEBACiAjaW1wb3J0ICJSZXNvdXJjZUxvYWREZWxl
Z2F0ZS5oIgogI2ltcG9ydCAiU2FmZUJyb3dzaW5nV2FybmluZy5oIgogI2ltcG9ydCAiVUlEZWxl
Z2F0ZS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIKQEAgLTEyNyw2ICsxMjYsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5n
VXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUv
Vmlld3BvcnRBcmd1bWVudHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViVmlld1Zpc3VhbElkZW50
aWZpY2F0aW9uT3ZlcmxheS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Xcml0aW5nTW9kZS5oPgpAQCAt
MjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1l
ZGlhUGxheWJhY2soKQogCiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFk
ZXJGcm9tRmlsZVVSTHMoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0Fu
eVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJk
aW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2Vk
T25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGlzYWxsb3dzU2V0dGluZ0Fu
eVhIUkhlYWRlckZyb21GaWxlVVJMcyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dTZXR0
aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0gKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjpp
c0NhcmRpb2dyYW0oKSB8fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNOaWtlKCkpICYmICFs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGlzYWxsb3dzU2V0
dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0
dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMczsKIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHN0
YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKCkKIAogc3RhdGlj
IGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7Ci0gICAgc3RhdGljIGJvb2wg
c2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNE
S1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKKyAgICBzdGF0aWMg
Ym9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0gbGlua2VkT25PckFmdGVyKFdlYkNv
cmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKICAgICBy
ZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsKIH0KIApAQCAtMzEwLDcgKzMxMCw3
IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJh
Y2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAgICAgICAgIFdLUHJvY2Vzc1Bvb2wgKnJlbGF0
ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHBy
b2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHByb2Nlc3NQb29sICYmIHByb2Nlc3NQb29sICE9IHJl
bGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6
TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmlldyAlQCBo
YXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25maWd1cmF0aW9uIHNwZWNpZmllcyBhIGRpZmZlcmVu
dCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVkV2ViVmlldywgcmVsYXRlZFdlYlZpZXdQcm9jZXNz
UG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbF07Ci0gICAgICAgIGlmIChbcmVsYXRlZFdl
YlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlv
biB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9u
OjpGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRh
U3RvcmVzLCBXZWJLaXQ6OkFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6Tm8pKQor
ICAgICAgICBpZiAoW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0
b3JlXSAhPSBbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gJiYgbGlua2VkT25PckFm
dGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2Vi
Vmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMsIFdlYkNvcmU6OkFzc3VtZVNhZmFyaUlzQWx3
YXlzTGlua2VkT25BZnRlcjo6Tm8pKQogICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5T
SW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIlJlbGF0ZWQgd2ViIHZpZXcgJUAgaGFz
IGRhdGEgc3RvcmUgJUAgYnV0IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVzIGEgZGlmZmVyZW50IGRh
dGEgc3RvcmUgJUAiLCByZWxhdGVkV2ViVmlldywgW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJh
dGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSwgW19jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVd
XTsKIAogICAgICAgICBbX2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cmVsYXRlZFdlYlZp
ZXdQcm9jZXNzUG9vbF07CkBAIC00NzgsNyArNDc4LDcgQEAgc3RhdGljIHZvaWQgaGFyZHdhcmVL
ZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJl
ZiwKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0QWxsb3dTZXR0aW5n
QW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZy
b21GaWxlVVJMcygpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0
U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoISFbX2NvbmZp
Z3VyYXRpb24gX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3
XSk7CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBwYWdlQ29uZmlndXJhdGlv
bi0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxl
ZChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25BUEkpKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+
cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZChs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYKICNpZiBVU0UoU1lTVEVNX1BS
RVZJRVcpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFN5c3RlbVBy
ZXZpZXdFbmFibGVkKCEhW19jb25maWd1cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pOwpA
QCAtNTI2LDcgKzUyNiw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxp
dHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAgICAgcGFnZUNvbmZp
Z3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2Fi
bGVkRm9yVGVzdGluZyghIVtfY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uX3NlcnZpY2VXb3Jr
ZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZyk7CiAjZW5kaWYKIAotICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1
aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNv
cmU6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlE
ZWZhdWx0KSkKICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldE5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGZhbHNlKTsKIH0KIApAQCAtNzgwLDcgKzc4MCw3IEBAIHN0
YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZO
b3RpZmljYXRpb25DZW50ZXJSZWYsCiAtIChXS05hdmlnYXRpb24gKilyZWxvYWQKIHsKICAgICBP
cHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRpb25zOwotICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVkT25seVJl
bG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNp
b246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQogICAgICAgICByZWxvYWRP
cHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4cGlyZWRPbmx5KTsKIAogICAgIHJl
dHVybiB3cmFwcGVyKF9wYWdlLT5yZWxvYWQocmVsb2FkT3B0aW9ucykpOwpAQCAtMTAyNCw3ICsx
MDI0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBuc0Vycm9yRnJvbUV4Y2VwdGlvbkRl
dGFpbHMoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGUKICAgICAgICAgfV07CiAgICAgfTsKIAot
ICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24u
YWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lv
bjo6Rmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CisgICAgaWYgKChzbmFw
c2hvdENvbmZpZ3VyYXRpb24gJiYgIXNuYXBzaG90Q29uZmlndXJhdGlvbi5hZnRlclNjcmVlblVw
ZGF0ZXMpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRo
U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CiAgICAgICAgIGNhbGxTbmFwc2hvdFJlY3Qo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggOTM2
ZDJhNjMzNmI5MDk2ZjA2MzIwYTgwOWUyODg0ZTk4MWQyNzRhMC4uMmVlY2UxNjM2YzBmNTBmMGU4
MTk1ODQ5NGZlMjYxNTA5NDc5OTcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTI4LDcg
KzI4LDYgQEAKIAogI2ltcG9ydCAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIlVz
ZXJJbnRlcmZhY2VJZGlvbS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAi
V0tQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiV0tS
ZXRhaW5QdHIuaCIKQEAgLTQ1LDYgKzQ0LDcgQEAKICNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU3Rv
cmVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lv
bkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1VSTFBh
cnNlci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CkBAIC0xMDYsNyArMTA2LDcgQEAg
c3RhdGljIF9XS0RyYWdMaWZ0RGVsYXkgdG9EcmFnTGlmdERlbGF5KE5TVUludGVnZXIgdmFsdWUp
CiBzdGF0aWMgYm9vbCBkZWZhdWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNr
TG9va1ByZXZpZXcoKQogewogI2lmIFVTRShRVUlDS19MT09LKQotICAgIHN0YXRpYyBib29sIHNo
b3VsZERlY2lkZSA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhh
dERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CisgICAgc3RhdGlj
IGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246
OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CiAg
ICAgcmV0dXJuIHNob3VsZERlY2lkZTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjAw
LDcgKzIwMCw3IEBAIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVM
b2FkaW5nUXVpY2tMb29rUHJldmlldygpCiAKICAgICBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNh
bGx5ID0gTk87CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCi0gICAgaWYgKFdlYktpdDo6bGlua2Vk
T25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWVkaWFUeXBlc1JlcXVpcmlu
Z1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCisgICAgaWYgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRl
cihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhNZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFj
dGlvbkZvclBsYXliYWNrKSkKICAgICAgICAgX21lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9u
Rm9yUGxheWJhY2sgPSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlQXVkaW87CiAgICAgZWxzZQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQppbmRleCA3Mzc0Y2JlOTMwNjY3MjU2Mjc0NjQ4YzQ0MDQ3YTdkN2Vi
OTZhNGIwLi5jMmRiNGEwNGQzNzhmMjRmZGQ1ZTYzMGYxNWIyOTNiZjZiZTAxY2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUubW0KQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb25Db2NvYS5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlci5oIgogI2ltcG9ydCAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLmgiCi0jaW1wb3J0
ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgi
CiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKICNpbXBvcnQgIldLTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oIgpAQCAtNDUsNiArNDQsNyBAQAogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVnaXN0cmF0aW9uRGF0YWJhc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNo
ZWNrcy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CiAj
aW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgog
CiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotICAgIGlmIChXZWJLaXQ6OmxpbmtlZE9uT3JBZnRl
cihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aFdLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1
cm5pbmdOaWwpKQorICAgIGlmIChXZWJDb3JlOjpsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCkpCiAg
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0dlbmVyaWNFeGNlcHRpb24gZm9ybWF0OkAiQ2Fs
bGluZyBbV0tXZWJzaXRlRGF0YVN0b3JlIGluaXRdIGlzIG5vdCBzdXBwb3J0ZWQuIl07CiAgICAg
CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IGU1MDY3NmUzNDZjNzYwM2FmM2Fi
YTJkNjg4ZGNlZjgyYjBmNDU4MzIuLjFhZTdhZTA5ZmYyNGFkY2M4NzE1ODdiOTEwY2QzYTY2MjUx
MmY4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLm1tCkBAIC0zMyw3ICszMyw2IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5j
ZURhdGEuaCIKICNpbXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKLSNp
bXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oIgogI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1JbnRlcm5hbC5oIgpAQCAtNTQsNiArNTMsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxDdXJyZW50VHJhaXRD
b2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFy
dHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+
CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KQEAgLTU4MSw3ICs1ODEsNyBAQCBz
dGF0aWMgV2ViQ29yZTo6Q29sb3Igc2Nyb2xsVmlld0JhY2tncm91bmRDb2xvcihXS1dlYlZpZXcg
KndlYlZpZXcpCiAKIC0gKFVJRWRnZUluc2V0cylfY29tcHV0ZWRPYnNjdXJlZEluc2V0CiB7Ci0g
ICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlU2Ny
b2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMpKSB7CisgICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNjcm9sbFZpZXdD
b250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzKSkgewogICAgICAgICAvLyBGb3IgYmlu
YXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQgcGFydHkgYXBwcywgdHJlYXQgc2Nyb2xsIHZpZXcg
Y29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5nIGluc2V0cyB3aGVuIHRoZSBhcHAgaXMgY29tcGls
ZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdlYktpdCB2ZXJzaW9uIHdpdGhvdXQgdGhlIGZpeCBp
biByMjI5NjQxLgogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbXB1dGVkQ29udGVudEluc2V0XTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5k
ZXggZmIyN2E2YTQ0NzY0MWYyYmZhZTY0OGMxNjNhYTQyMzlhMjQzN2Q0Yi4uNDc3NWUwZTM2N2E5
ODI4MGE4NjQ0ODZjZmM0MTY3MWRiZTZkYzk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBQTEFU
Rk9STShNQUMpCiAKICNpbXBvcnQgIkFwcEtpdFNQSS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNr
cy5oIgogI2ltcG9ydCAiV0tDb250ZW50Vmlld01hYy5oIgogI2ltcG9ydCAiV0tTYWZlQnJvd3Np
bmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJXS1Njcm9sbFZpZXdNYWMuaCIKQEAgLTQxLDYgKzQwLDcg
QEAKICNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVy
U1BJLmg+CiAKIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZSB0b0FQSVNjcm9sbGJhclN0eWxlKE9w
dGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4gY29yZVNjcm9sbGJhclN0eWxl
KQpAQCAtMTE1Niw3ICsxMTU2LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAg
ICAgcmV0dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
TWFza0ZvckRyYWdnaW5nSW5mbzpkcmFnZ2luZ0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9y
QWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93
ZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNp
b246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAg
IHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdE
ZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ5MjY1OGMxZTJkM2RlNjU3MzkwZjU2ZTVlMzEzYzM3MTA4Zjhj
ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5oCisrKyAvZGV2L251bGwKQEAg
LTEsODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbXBvcnQg
PHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Ci0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvVmVyc2lvbkNoZWNrc0FkZGl0aW9ucy5oPgotI2Vs
c2UKLSNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9XSVRIX0lPU19BUFBTX09OX01BQ09T
IDAKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotZW51bSBjbGFzcyBTREtWZXJzaW9u
IDogdWludDMyX3QgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmlyc3RXaXRoTmV0
d29ya0NhY2hlID0gRFlMRF9JT1NfVkVSU0lPTl85XzAsCi0gICAgRmlyc3RXaXRoTWVkaWFUeXBl
c1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwK
LSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxs
cyA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwKLSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9h
ZEJlaGF2aW9yID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93
c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMs
Ci0gICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQg
PSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50
SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAg
IEZpcnN0V2hlcmVVSVNjcm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0
aW9uYWxseSA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFk
UmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAot
ICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0g
RFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aExhenlHZXN0dXJlUmVjb2duaXpl
ckluc3RhbGxhdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKLSAgICBGaXJzdFdpdGhQcm9j
ZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKLSAg
ICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfSU9TX1ZFUlNJT05f
MTNfMCwKLSAgICBGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25B
UEkgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RUaGF0RGVjaWRlc1BvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAg
IEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFT
dG9yZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoTW9kZXJuQ29tcGFi
aWxpdHlNb2RlQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhh
dEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAg
ICBGaXJzdFdoZXJlV0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5P
bk1haW5GcmFtZSA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdoZXJlU2l0ZVNw
ZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMiwK
LSAgICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfSU9TX1ZFUlNJT05f
MTNfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZF
UlNJT05fMTRfMCwKLSAgICBGaXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNlRXZlbnRzID0gRFlMRF9J
T1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVh
ZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdpdGhXS1dlYnNp
dGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAg
IEZpcnN0VmVyc2lvbldpdGhpT1NBcHBzT25NYWNPUyA9IERZTERfSU9TX1ZFUlNJT05fRklSU1Rf
V0lUSF9JT1NfQVBQU19PTl9NQUNPUywKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICBGaXJzdFdp
dGhOZXR3b3JrQ2FjaGUgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzExLAotICAgIEZpcnN0V2l0
aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNP
U1hfVkVSU0lPTl8xMF8xMywKLSAgICBGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRC
eURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aEV4cGly
ZWRPbmx5UmVsb2FkQmVoYXZpb3IgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZp
cnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJz
YWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKLSAgICBGaXJz
dFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBf
MTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVy
ZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaGVy
ZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzE1XzEsCi0gICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1XzQsCi0gICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURl
ZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAotICAgIEZpcnN0V2l0aEluaXRpYWxp
emVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYs
Ci0gICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0jZW5kaWYKLX07Ci0KLWVudW0gY2xhc3MgQXNzdW1lU2Fm
YXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyIDogYm9vbCB7IE5vLCBZZXMgfTsKLWJvb2wgbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb24sIEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciA9
IEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6WWVzKTsKLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3MubW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBkZDY1MzcwYzhlNGRkNDQ0MGJlZDhiZjdhNjI5OGVlYzZlZjQwOTIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbQorKysgL2Rldi9udWxsCkBAIC0x
LDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9y
dCAiVmVyc2lvbkNoZWNrcy5oIgotCi0jaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oPgotI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KLSNpbXBvcnQgPG11dGV4PgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0TGlua2Vk
T25PckFmdGVyRXZlcnl0aGluZ0tleSA9IEAiV2ViS2l0TGlua2VkT25PckFmdGVyRXZlcnl0aGlu
ZyI7Ci0KLWJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24gc2RrVmVyc2lvbiwgQXNzdW1l
U2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyIGFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25B
ZnRlcikKLXsKLSAgICBzdGF0aWMgYm9vbCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nID0gZmFs
c2U7Ci0gICAgc3RhdGljIGJvb2wgaXNTYWZhcmkgPSBmYWxzZTsKLSAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgb25jZTsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01v
YmlsZVNhZmFyaSgpKQotICAgICAgICAgICAgaXNTYWZhcmkgPSB0cnVlOwotI2VsaWYgUExBVEZP
Uk0oTUFDKQotICAgICAgICBpZiAoV2ViQ29yZTo6TWFjQXBwbGljYXRpb246OmlzU2FmYXJpKCkp
Ci0gICAgICAgICAgICBpc1NhZmFyaSA9IHRydWU7Ci0jZW5kaWYKLQotICAgICAgICBpZiAoW1tO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJLaXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nS2V5XSkKLSAgICAgICAgICAgIGxpbmtlZE9uT3JBZnRlckV2
ZXJ5dGhpbmcgPSB0cnVlOwotICAgIH0pOwotCi0gICAgaWYgKFVOTElLRUxZKGxpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmcpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1NhZmFy
aSAmJiBhc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIgPT0gQXNzdW1lU2FmYXJpSXNB
bHdheXNMaW5rZWRPbkFmdGVyOjpZZXMpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYXV0
byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24p
OwotICAgIHJldHVybiBzZGtWZXJzaW9uQXNJbnRlZ2VyICYmIGR5bGRfZ2V0X3Byb2dyYW1fc2Rr
X3ZlcnNpb24oKSA+PSBzZGtWZXJzaW9uQXNJbnRlZ2VyOwotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA4
NDcyYWU5MjAyMmViZWQwZjRhZDdlMTI0OTQ2YzgwZTAxNWY2MTJkLi42OGY3M2RjYjMzYTU2N2Uy
YjdlOGRjOGEzMjBhYjdjYzA0MjIyMWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTM5LDcgKzM5LDYgQEAKICNp
bXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1w
b3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNp
bXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJX
ZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCIKQEAgLTYwLDYgKzU5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9VVElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgpAQCAtMzE4
LDYgKzMxOCwxNCBAQCBzdGF0aWMgYm9vbCByZXF1aXJlc0NvbnRhaW5lck1hbmFnZXJBY2Nlc3Mo
KQogI2VuZGlmCiB9CiAKK3N0YXRpYyBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nIHsgZmFsc2UgfTsKKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0TGlua2VkT25PckFm
dGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcoKQoreworICAgIEFTU0VSVCghbGlua2VkT25PckFmdGVy
RXZlcnl0aGluZ0ZvclRlc3RpbmcpOworICAgIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nID0gdHJ1ZTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgcGFyYW1ldGVycy5tZWRpYU1J
TUVUeXBlcyA9IHByb2Nlc3MubWVkaWFNSU1FVHlwZXMoKTsKQEAgLTM0OCw2ICszNTYsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJ
ZGVudGlmaWVyID0gYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVy
cy51aVByb2Nlc3NTREtWZXJzaW9uID0gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOwor
ICAgIHBhcmFtZXRlcnMubGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcgPSBsaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZzsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgaWYgKCFtX3Jlc29sdmVkUGF0aHMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0Vt
cHR5KCkpCkBAIC00OTEsNiArNTAwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmEKIHsKICAg
ICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBkeWxk
X2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7CisgICAgcGFyYW1ldGVycy5saW5rZWRPbk9yQWZ0
ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyA9IGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0
aW5nOwogCiAgICAgTlNVc2VyRGVmYXVsdHMgKmRlZmF1bHRzID0gW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
CmluZGV4IDMzYjU4ZjJhZjMzNmNmYWYxYWNlNGFlODM4ZWJkMjFiZDdkYzhhZjcuLjFlYWE5NDNm
MjdhMjdkNjdjNjExZmY2ZDZmYmJmMzYxNjJiZjcxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNp
bXBvcnQgIkFQSU5hdmlnYXRpb24uaCIKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBv
cnQgIldLRnJhbWVJbmZvLmgiCiAjaW1wb3J0ICJXS0luc3BlY3RvcldLV2ViVmlldy5oIgogI2lt
cG9ydCAiV0tOYXZpZ2F0aW9uQWN0aW9uLmgiCkBAIC00Myw2ICs0Miw3IEBACiAjaW1wb3J0ICJX
ZWJJbnNwZWN0b3JQcm94eS5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCiAj
aW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5o
PgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKIEBpbnRlcmZhY2UgV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlciAoKSA8V0tVSURlbGVnYXRlLCBXS05hdmlnYXRpb25EZWxlZ2F0ZSwgV0tJ
bnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZT4KQEAgLTI1Miw3ICsyNTIsNyBAQAogICAgICAgICBy
ZXR1cm47CiAKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRp
b25zOwotICAgIGlmIChXZWJLaXQ6OmxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246
OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChXZWJDb3JlOjps
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlS
ZWxvYWRCZWhhdmlvcikpCiAgICAgICAgIHJlbG9hZE9wdGlvbnMuYWRkKFdlYkNvcmU6OlJlbG9h
ZE9wdGlvbjo6RXhwaXJlZE9ubHkpOwogCiAgICAgX2luc3BlY3RlZFBhZ2UtPnJlbG9hZChyZWxv
YWRPcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmNwcAppbmRleCA4ZWRkYjE1ZjhmMzQyMzlkMjUwNDk5YThjNGFmODc1ZjA1ZGYzZjc5Li4x
MjVmNWYxYmNkYzBlMDNiYzU5YjU0YzkzN2M0M2RmOTcyM2FmMGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0zMyw3ICszMyw2IEBA
CiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAtNDIsNiAr
NDEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nU3RhdGVQb3NpdGlvbmVkTm9kZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nU3RhdGVUcmVlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9WZXJzaW9uQ2hlY2tzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0yNjYsNyArMjY2LDcgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5OjpoYXNTY3JvbGxhYmxlT3Jab29tZWRNYWluRnJhbWUoKSBjb25zdAogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChXZWJD
b3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVudGJyaXRlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihX
ZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5G
cmFtZSkpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAm
JiAhbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFN1cHBvcnRz
T3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc2MjFmODc0
YzAxM2EyNDg1ZWY2ZTBhYzM3OTU2ZGY4OGZlOWM5ZWEuLmU2MGNhNjlkYmQ5YmMzNzRmZjhjNTFk
NGY3NWVmZjM1ZTVjZGRjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtMjA2LDEzICsyMDYsMTMgQEAKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9y
bWFuY2VEYXRhLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgot
I2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIKICNpbmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXR0cmlidXRlZFN0cmluZy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4K
ICNpbmNsdWRlIDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAjZW5kaWYKQEAgLTEyNDgsNyAr
MTI0OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzCiAgICAgfQogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0
VW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQorICAgIGlmICghbGlua2Vk
T25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxV
bml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkKICAgICAgICAgd2lsbEFjcXVpcmVVbml2ZXJzYWxG
aWxlUmVhZFNhbmRib3hFeHRlbnNpb24ocHJvY2Vzcyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDE3NzhlMjMyYjZlZTkxYTk2YTcz
YzM0MWY1ZTdjZDE2ZDIzZGEzNmUuLmMzY2I4OTc2ZDhkYTI1YTQ5ZWY5YWUyZDVjMTg5ZjhkYWU4
MWEwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTEyNiwxMSArMTI2LDExIEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJEZWZh
dWx0V2ViQnJvd3NlckNoZWNrcy5oIgotI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9ISURHYW1lcGFkUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL011bHRpR2Ft
ZXBhZFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qb3dlclNvdXJjZU5vdGlmaWVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKE1BQykKQEAgLTEwMjksNyArMTAyOSw3IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nl
c3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAK
ICAgICBib29sIGVuYWJsZVByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uID0gcGFnZS0+
cHJlZmVyZW5jZXMoKS5wcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbkVuYWJsZWQoKTsK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNGaXJlZm94KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZp
cnN0V2l0aFByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKSkKKyAgICBpZiAoV2ViQ29y
ZTo6SU9TQXBwbGljYXRpb246OmlzRmlyZWZveCgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29y
ZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24p
KQogICAgICAgICBlbmFibGVQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IGZhbHNl
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4
IDUxNWI5ODM5OGRjYzUwNmUxOTM3OTE5YzIzZTUyZTYxZWU5NjJlMGMuLjE5YmUwY2JhNjI1OGY3
M2MyYjlmNzlhYWQ0MTM1ZjRkNDY2YTJjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaApAQCAtMzg4LDYgKzM4OCw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIHZvaWQgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsKKyAgICBz
dGF0aWMgdm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOwogCiAg
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZW5zdXJlQnVuZGxlUGFyYW1ldGVycygpOwogICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkgKmJ1bmRsZVBhcmFtZXRlcnMoKSB7IHJldHVybiBtX2J1bmRsZVBh
cmFtZXRlcnMuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDVlMmM3MDhmMjJmOTdiZWFmMzcwOTM1MmNiNjllM2Q0YzI4ZTFkOWIuLjA3
Njg5OGQwYTUyYzJkMTY5YWMyMTUzMmM1ZTRhZDgyOTI3YTUzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNzYsNyArNzYsNyBAQAogI2luY2x1
ZGUgIk9iakNPYmplY3RHcmFwaC5oIgogI2luY2x1ZGUgIlBERlBsdWdpbi5oIgogI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKLSNpbmNsdWRlICJWZXJzaW9uQ2hlY2tz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKE1BQykKQEAgLTEwMCw5ICsxMDAsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpCiB7CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAh
bGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNz
ZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWlu
KCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWFp
blRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSk7CiAjZWxpZiBQTEFURk9STShN
QUMpCi0gICAgcmV0dXJuIExJS0VMWShSdW5Mb29wOjppc01haW4oKSkgfHwgIWxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2Vi
UGFnZVByb3h5KTsKKyAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlu
a2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxl
YXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOwogI2Vsc2UKICAgICByZXR1cm4gUnVuTG9vcDo6
aXNNYWluKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KaW5kZXggNjA1YTM3OTFhYzc3MDIzMzIwNTFmY2UzZDczZWQ3NDZiNmY3YWM5MC4u
Zjk2YjMwMjNiZmU4ZTRjZDUzMTAyNzNmMDRlMWI4YWVjNjE2YmNlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTM5LDcgKzM5LDYgQEAKICNp
bXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlNtYXJ0
TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0
ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRHcm91cFByaXZhdGUuaCIKICNp
bXBvcnQgIldLSW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5oIgpAQCAtNjMsNiArNjIsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9RdWlya3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZlbG9jaXR5RGF0YS5oPgorI2ltcG9ydCA8
V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxvYmpjL21lc3NhZ2UuaD4KICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KQEAgLTE5MCw3ICsxOTAsNyBAQCBzdGF0aWMgTlNBcnJh
eSAqa2V5Q29tbWFuZHNQbGFjZWhvbGRlckhhY2tGb3JFdmVybm90ZShpZCBzZWxmLCBTRUwgX2Nt
ZCkKICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9maXhlZENsaXBwaW5nVmlldy5nZXQoKV07CiAgICAg
W19maXhlZENsaXBwaW5nVmlldyBhZGRTdWJ2aWV3Ol9yb290Q29udGVudFZpZXcuZ2V0KCldOwog
Ci0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhM
YXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24pKQorICAgIGlmICghbGlua2VkT25PckFm
dGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aExhenlHZXN0dXJlUmVjb2duaXplcklu
c3RhbGxhdGlvbikpCiAgICAgICAgIFtzZWxmIHNldFVwSW50ZXJhY3Rpb25dOwogICAgIFtzZWxm
IHNldFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQ6WUVTXTsKIApAQCAtMjEyLDcgKzIxMiw3IEBAIHN0
YXRpYyBOU0FycmF5ICprZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJub3RlKGlkIHNl
bGYsIFNFTCBfY21kKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3NjcmVlbkNhcHR1cmVkRGlkQ2hh
bmdlOikgbmFtZTpVSVNjcmVlbkNhcHR1cmVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpb
VUlTY3JlZW4gbWFpblNjcmVlbl1dOwogCiAjaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9O
UykKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRXZlcm5vdGUoKSAmJiAhbGlu
a2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVdLQ29udGVudFZpZXdE
b2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0V2ZXJub3RlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9u
OjpGaXJzdFdoZXJlV0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzKSkKICAg
ICAgICAgY2xhc3NfYWRkTWV0aG9kKHNlbGYuY2xhc3MsIEBzZWxlY3RvcihrZXlDb21tYW5kcyks
IHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPigma2V5Q29tbWFuZHNQbGFjZWhvbGRlckhhY2tGb3JFdmVy
bm90ZSksIG1ldGhvZF9nZXRUeXBlRW5jb2RpbmcoY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qoc2Vs
Zi5jbGFzcywgQHNlbGVjdG9yKGtleUNvbW1hbmRzKSkpKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQppbmRleCA2NDBhNWE0Y2U1MWY2NTgyMWM4MjU1MDhkNmVhZWJlOGY4MDgxODgzLi42OWFiNmJk
YzU5NDE1YjA1N2Q4YzdhOWM5N2JhZmI2NzljMDVlOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQ0
LDcgKzQ0LDYgQEAKICNpbXBvcnQgIlRleHRJbnB1dFNQSS5oIgogI2ltcG9ydCAiVUlLaXRTUEku
aCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNr
cy5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIgogI2ltcG9ydCAiV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVt
ZW50SW5mb1ByaXZhdGUuaCIKQEAgLTExNyw2ICsxMTYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RvdWNoQWN0aW9uLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2ViRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgpAQCAt
NzA5OCw3ICs3MDk4LDcgQEAgc3RhdGljIEJPT0wgYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0
Y2hPcmlnaW4oVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBjb25zdAogLSAoQk9PTClfc2hvdWxk
VXNlQ29udGV4dE1lbnVzCiB7CiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNPTlRF
WFRNRU5VKQotICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpG
aXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24pOworICAgIHJldHVybiBsaW5rZWRP
bk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0SGFzVUlDb250ZXh0TWVudUlu
dGVyYWN0aW9uKTsKICNlbmRpZgogICAgIHJldHVybiBOTzsKIH0KQEAgLTg1NjcsNyArODU2Nyw3
IEBAIHN0YXRpYyBCT09MIGFwcGxpY2F0aW9uSXNLbm93blRvSWdub3JlTW91c2VFdmVudHMoY29u
c3QgY2hhciogJndhcm5pbmdWZXJzaW9uKQogICAgICAgICByZXR1cm4gWUVTOwogICAgIH0KIAot
ICAgIGlmICghV2ViS2l0OjpsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJz
dFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MpKSB7CisgICAgaWYgKCFXZWJDb3JlOjpsaW5rZWRP
bk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RWZXJzaW9uV2l0aGlPU0FwcHNPbk1h
Y09TKSkgewogICAgICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRklGQUNvbXBh
bmlvbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NzA5MzQ4Nz4KICAgICAgICAgICAgIHx8IFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc05vZ2dpbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDgzMDMz
NT4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc09LQ3VwaWQoKSAv
LyA8cmRhcjovL3Byb2JsZW0vNjU2OTg0OTY+CkBAIC04NTc5LDcgKzg1NzksNyBAQCBzdGF0aWMg
Qk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3
YXJuaW5nVmVyc2lvbikKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghV2ViS2l0OjpsaW5r
ZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNl
RXZlbnRzKSkgeworICAgIGlmICghV2ViQ29yZTo6bGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNE
S1ZlcnNpb246OkZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VFdmVudHMpKSB7CiAgICAgICAgIGlm
IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNQb2NrZXRDaXR5KCkgLy8gPHJkYXI6Ly9wcm9i
bGVtLzYyMjczMDc3PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246Omlz
RXNzZW50aWFsU2tlbGV0b24oKSAvLyA8cmRhcjovL3Byb2JsZW0vNjI2OTQ1MTk+CiAgICAgICAg
ICAgICB8fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFU1BORmFudGFzeVNwb3J0cygpIC8v
IDxyZGFyOi8vcHJvYmxlbS82NDY3MTU0Mz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tTY3JvbGxWaWV3Lm1tCmluZGV4IGE4NmE0YmVmOTcwYzZiNmZlNTJjNzU2ZTFmODA5NWY3ODJm
YTQ4NGEuLmMwZWZmZmJkZjlkMDA2MWYxNzY3ZTNjMWY4YzMyZmI3ZTA5OThiNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQpAQCAtMjksOSArMjksOSBA
QAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1w
b3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJT1MuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lv
bkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBv
cnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCkBAIC0zNzksNyArMzc5LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHZhbHVlc0FyZVdpdGhpbk9uZVBpeGVsKENHRmxvYXQgYSwgQ0dGbG9hdCBiKQogICAg
IC8vIHRvIGluY2x1ZGUga2V5Ym9hcmQgaW5zZXRzIGluIHRoZSBzeXN0ZW1Db250ZW50SW5zZXQu
IFdlIGFsd2F5cyB3YW50CiAgICAgLy8ga2V5Ym9hcmQgaW5zZXRzIGFwcGxpZWQsIGV2ZW4gd2hl
biB3ZWIgY29udGVudCBoYXMgY2hvc2VuIHRvIGRpc2FibGUgYXV0b21hdGljCiAgICAgLy8gc2Fm
ZSBhcmVhIGluc2V0IGFkanVzdG1lbnQuCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6
OlNES1ZlcnNpb246OkZpcnN0V2hlcmVVSVNjcm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZElu
c2V0c1VuY29uZGl0aW9uYWxseSkgJiYgc2VsZi5jb250ZW50SW5zZXRBZGp1c3RtZW50QmVoYXZp
b3IgPT0gVUlTY3JvbGxWaWV3Q29udGVudEluc2V0QWRqdXN0bWVudE5ldmVyKQorICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVVJU2Nyb2xsVmll
d0RvZXNOb3RBcHBseUtleWJvYXJkSW5zZXRzVW5jb25kaXRpb25hbGx5KSAmJiBzZWxmLmNvbnRl
bnRJbnNldEFkanVzdG1lbnRCZWhhdmlvciA9PSBVSVNjcm9sbFZpZXdDb250ZW50SW5zZXRBZGp1
c3RtZW50TmV2ZXIpCiAgICAgICAgIHN5c3RlbUNvbnRlbnRJbnNldC5ib3R0b20gKz0gX2tleWJv
YXJkQm90dG9tSW5zZXRBZGp1c3RtZW50OwogCiAgICAgcmV0dXJuIHN5c3RlbUNvbnRlbnRJbnNl
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmlu
ZGV4IGYzN2E3NmY4OTczYjhiNDhlMDQ3YWJmYWVlNzhkMmU0YTg2ZjQxMjUuLjRjNDNjNWI4YzI5
YmNmMTQxNTViZTA4ZGFjNDY3MDI5MzkzZDAzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNTIsNyArNTIsNiBAQAogI2ltcG9ydCAi
VUlLaXRTUEkuaCIKICNpbXBvcnQgIlVzZXJEYXRhLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJmYWNl
SWRpb20uaCIKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdl
cy5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKQEAg
LTcwLDYgKzY5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxl
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPHBhbC9zcGkv
aW9zL01vYmlsZUdlc3RhbHRTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4K
IApAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgc3RhdGljIGJvb2wgZGVza3RvcENsYXNzQnJvd3NpbmdS
ZWNvbW1lbmRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXUKICAgICAgICAg
Ly8gV2hpbGUgZGVza3RvcC1jbGFzcyBicm93c2luZyBpcyBzdXBwb3J0ZWQgb24gYWxsIGlQYWQg
bW9kZWxzLCBpdCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIGlQYWQgbWluaS4KICAgICAgICAgYXV0
byBzY3JlZW5DbGFzcyA9IE1HR2V0U0ludDMyQW5zd2VyKGtNR1FNYWluU2NyZWVuQ2xhc3MsIE1H
U2NyZWVuQ2xhc3NQYWQyKTsKICAgICAgICAgc2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJv
d3NpbmcgPSBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkMyAmJiBzY3JlZW5DbGFzcyAh
PSBNR1NjcmVlbkNsYXNzUGFkNCAmJiBkZXNrdG9wQ2xhc3NCcm93c2luZ1N1cHBvcnRlZCgpOwot
ICAgICAgICBpZiAoaWdub3JlU2FmZWd1YXJkcyA9PSBJZ25vcmVBcHBDb21wYXRpYmlsaXR5U2Fm
ZWd1YXJkczo6Tm8gJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0
V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCkpIHsKKyAgICAgICAgaWYgKGlnbm9y
ZVNhZmVndWFyZHMgPT0gSWdub3JlQXBwQ29tcGF0aWJpbGl0eVNhZmVndWFyZHM6Ok5vICYmICFs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTW9kZXJuQ29tcGFi
aWxpdHlNb2RlQnlEZWZhdWx0KSkgewogICAgICAgICAgICAgLy8gT3B0IG91dCBhcHBzIHRoYXQg
aGF2ZW4ndCB5ZXQgYnVpbHQgYWdhaW5zdCB0aGUgaU9TIDEzIFNESyB0byBsaW1pdCBhbnkgaW5j
b21wYXRpYmlsaXRpZXMgYXMgYSByZXN1bHQgb2YgZW5hYmxpbmcgZGVza3RvcC1jbGFzcyBicm93
c2luZyBieSBkZWZhdWx0IGluCiAgICAgICAgICAgICAvLyBXS1dlYlZpZXcgb24gYXBwcm9wcmlh
dGVseS1zaXplZCBpUGFkIG1vZGVscy4KICAgICAgICAgICAgIHNob3VsZFJlY29tbWVuZERlc2t0
b3BDbGFzc0Jyb3dzaW5nID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1M2I2NGY3NWVkZDQzY2U5NWY3NjQxMzQ3ZDhhNTc4
YTA2YjY0M2FlLi4wNDhkZjZhNzg3YjI1YzQyMmRlYmRjOTg5ZDIwNmIyODc5ODdiZDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4
MjEsNyArMTgyMSw2IEBACiAJCUU0OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2Fj
aGVCbG9iU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTQ5RDQwRDYxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdl
LmggKi87IH07CiAJCUU0RDU0RDA0MjFGMUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDBDMUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEy
MDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFNTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90
ZUxheWVyVHJlZU5vZGUuaCAqLzsgfTsKLQkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZl
cnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi87IH07CiAJ
CUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUw
MjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsK
IAkJRTU0OEVCRDEyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIxMDE1RjBF
MDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCAqLzsgfTsKIAkJRTU1Q0QxRjUyNENGNzQ3
RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRh
dGVUaW1lQ2hvb3Nlci5oICovOyB9OwpAQCAtNTMyMyw4ICs1MzIyLDYgQEAKIAkJRTQ5RDQwRDgx
QUQzRkIyMTAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRFNTdGNjgyMUE4M0IwMzAwMzQ1RjNDIC8q
IFJlbW90ZUxheWVyVHJlZU5vZGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBSZW1vdGVMYXllclRyZWVOb2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNEU1N0Y2QTIxQTgzQjExMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVMYXllclRyZWVOb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBW
ZXJzaW9uQ2hlY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZlcnNpb25D
aGVja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTRFODY0OEYxQjE2NzNGQjAw
QzgyRjQwIC8qIFZlcnNpb25DaGVja3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBWZXJzaW9uQ2hlY2tzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhF
QkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0Zvcm1Db2xvclBpY2tlci5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MzMwLDggKzYzMjcsNiBAQAogCQkJ
CTQ2MzIzNjg1MjMxNDgzM0YwMEE0OEZBNyAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8s
CiAJCQkJMDcwMjU5QkUyNTIyODQxQzAwMTUzNDA1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Lm1tICovLAogCQkJCTQxMUE5QTlBMjUxREU5M0UwMDgwN0Q3RSAvKiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lm1tICovLAotCQkJCUU0RTg2NDhFMUIxNjcz
RkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi8sCi0JCQkJRTRFODY0OEYxQjE2NzNGQjAw
QzgyRjQwIC8qIFZlcnNpb25DaGVja3MubW0gKi8sCiAJCQkJNTJENUExQUExQzU3NDk0RTAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovLAogCQkJCTUyRDVBMUFCMUM1
NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4g
Ki8sCiAJCQkJNTJENUExQUMxQzU3NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbSAqLywKQEAgLTExMTYyLDcgKzExMTU3LDYgQEAKIAkJCQk0QTNDQzE4QjE5QjA2
NDBGMDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzRFNzVGRTFERjIy
MTE5MDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCUU0RTg2NDkzMUIxNjc1MDcwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MkQ1QTFCMDFDNTc0OTVBMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDEyNUM1RTE4NTdFQTA1MDAzQkEzQ0Ig
LyogVmlld0dlc3R1cmVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDFCNUQ1RTE4
NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KaW5kZXggYzdlYTY4NDA5ODhlODJiNWVlZGU4NmNhNjgyODE2ZjMxM2NkMGNkNi4u
YWE3OWU0NTI4YWU2MTc2ZDBkYWE3NjBjMWY1Yzc0MTJjN2VkYmJiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02OCw2ICs2
OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8YWxnb3JpdGhtPgog
I2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgpA
QCAtMjIyLDYgKzIyMyw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAKICAgICBXZWJDb3Jl
OjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy51aVByb2Nlc3NCdW5k
bGVJZGVudGlmaWVyKTsKICAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24ocGFyYW1ldGVycy51
aVByb2Nlc3NTREtWZXJzaW9uKTsKKyAgICBpZiAocGFyYW1ldGVycy5saW5rZWRPbk9yQWZ0ZXJF
dmVyeXRoaW5nRm9yVGVzdGluZykKKyAgICAgICAgV2ViQ29yZTo6c2V0TGlua2VkT25PckFmdGVy
RXZlcnl0aGluZ0ZvclRlc3RpbmcoKTsKIAogICAgIG1fdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmll
ciA9IHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlEZWxl
Z2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVm
YXVsdFVJRGVsZWdhdGUubW0KaW5kZXggNTUyMDFhNjVkNzE0ZTdkYTAxZGI5MjY3MzcxMDI3MWRi
OWM1Zjc1Yy4uZGNiN2M5MzFjOTY3NzZmZDA4ZjQ5NmFmYmM5ZjFmNGQyMGVlMjEzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0
VUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdh
dGVzL1dlYkRlZmF1bHRVSURlbGVnYXRlLm1tCkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiAhUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICNpbXBvcnQgIldlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5o
IgotI2ltcG9ydCAiV2ViS2l0VmVyc2lvbkNoZWNrcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9WZXJz
aW9uQ2hlY2tzLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMTYs
MTEgKzIxNiwxMCBAQCBzdGF0aWMgV2ViRGVmYXVsdFVJRGVsZWdhdGUgKnNoYXJlZERlbGVnYXRl
ID0gbmlsOwogewogfQogCi0KICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIC0gKE5TVUludGVn
ZXIpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0Zv
ckRyYWdnaW5nSW5mbzooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KIHsKLSAgICBp
ZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURp
c2FsbG93ZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNE
S1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAg
ICAgICAgIHJldHVybiBXZWJEcmFnRGVzdGluYXRpb25BY3Rpb25Bbnk7CiAKICAgICByZXR1cm4g
V2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55ICYgfldlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkxv
YWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRh
YmFzZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1t
CmluZGV4IDRjMWRjYjI0M2VkM2Y0YTFiMzFiOTk4YWRmZDcyZGNmZmFkNTRiZDAuLjhmNDliZGJk
N2Y4NDczYTQyZmZmMWM0MzMzMjMxMjQzMDgyZTc2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tCkBAIC0zMCwxMCArMzAsMTAgQEAKIAog
I2ltcG9ydCAiV2ViSWNvbkRhdGFiYXNlLmgiCiAKLSNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVj
a3MuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4K
KyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1J1bkxv
b3AuaD4KQEAgLTEwNiw3ICsxMDYsNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9O
U19FTkQKICAgICBzdGF0aWMgV2ViSWNvbkRhdGFiYXNlICpkYXRhYmFzZTsKICAgICBzdGF0aWMg
ZGlzcGF0Y2hfb25jZV90IG9uY2U7CiAgICAgZGlzcGF0Y2hfb25jZSgmb25jZSwgXiB7Ci0gICAg
ICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoV2ViSWNvbkRhdGFi
YXNlV2FybmluZykpCisgICAgICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVy
c2lvbjo6Rmlyc3RXaXRoV2ViSWNvbkRhdGFiYXNlV2FybmluZykpCiAgICAgICAgICAgICBOU0xv
ZyhAIitbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gaXMgbm90IEFQSSBhbmQg
c2hvdWxkIG5vdCBiZSB1c2VkLiBXZWJJY29uRGF0YWJhc2Ugbm8gbG9uZ2VyIGhhbmRsZXMgaWNv
biBsb2FkaW5nIGFuZCBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iKTsK
IAogICAgICAgICBkYXRhYmFzZSA9IFtbV2ViSWNvbkRhdGFiYXNlIGFsbG9jXSBpbml0XTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0VmVyc2lvbkNoZWNr
cy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLmgK
aW5kZXggN2FkYTdlOTE4YmEzZTdjZjY1ZGI5N2U3MzI5NTZjOTI2MjU5N2UwZi4uMjY3MDM1OWFh
Y2UxNjEyNzY5OGI5Y2JiYTZmMjU5MTYyN2E3ZWFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLmgKQEAgLTcyLDE5ICs3Miw2IEBA
CiAjZGVmaW5lIFdFQktJVF9GSVJTVF9WRVJTSU9OX1dJVEhfQ09OVEVOVF9TRUNVUklUWV9QT0xJ
Q1lfU09VUkNFX1NUQVJfUFJPVE9DT0xfUkVTVFJJQ1RJT04gMzU1NQogI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAKLWVudW0gY2xhc3MgU0RLVmVyc2lvbiA6IHVpbnQzMl90IHsKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIEZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91
Y2hMaXN0ZW5lcnNPbkRvY3VtZW50ID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0
VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotI2Vs
c2UKLSAgICBGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aFdlYkljb25EYXRhYmFzZVdhcm5p
bmcgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jh
c2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80LAotI2VuZGlmCi19Owot
Ci1ib29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uKTsKLQogI2lmZGVmIF9fY3BsdXNwbHVz
CiBleHRlcm4gIkMiIHsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
TWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLm1tCmluZGV4IDRlN2M4MWJiYWJkZTQ5NTcwZWM5Nzg3
YjQxMGNmYjczMjEwMTMwNDguLmNhN2E2YjNhZDBkMjNkZDk3NGE4NTFmNTRhOWJhYjkxZjBjNGUz
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0VmVyc2lv
bkNoZWNrcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNp
b25DaGVja3MubW0KQEAgLTY4LDE2ICs2OCwzIEBAIHN0YXRpYyBpbnQgV2ViS2l0TGlua1RpbWVW
ZXJzaW9uKHZvaWQpCiAgICAgcmV0dXJuIE5TVmVyc2lvbk9mTGlua1RpbWVMaWJyYXJ5KCJVSUtp
dCIpOwogI2VuZGlmCiB9Ci0KLWJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24gc2RrVmVy
c2lvbikKLXsKLSAgICBzdGF0aWMgYm9vbCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nOwotICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtd
IHsKLSAgICAgICAgaWYgKFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJv
b2xGb3JLZXk6QCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIl0pCi0gICAgICAgICAg
ICBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nID0gdHJ1ZTsKLSAgICB9KTsKLSAgICBpZiAoVU5M
SUtFTFkobGlua2VkT25PckFmdGVyRXZlcnl0aGluZykpCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPj0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNka1ZlcnNpb24pOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQppbmRl
eCBiNjU4MGU3YTYxM2MxMzlhNWI2ZjhkYTEwMmM3Nzc0NjVkMzYzNWQ5Li42OGVhYzBhNzhjNjRj
Y2EyMjc0ZDk0YTkzZmM2ODliMjE4MGE3OTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5t
bQpAQCAtMjUsOSArMjUsOSBAQAogCiAjaW1wb3J0ICJXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaCIKIAotI2ltcG9ydCAiV2ViS2l0VmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCA8Rm91bmRh
dGlvbi9OU0J1bmRsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8bWFjaC1v
L2R5bGQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRmVhdHVyZUZsYWdzU1BJLmg+CiAjaW1w
b3J0IDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KQEAgLTEyOCw3
ICsxMjgsNyBAQCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lu
bGluZUF0dHJpYnV0ZSgpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVm
YXVsdE9uRG9jdW1lbnQoKQogewotICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lv
bjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOwor
ICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0
RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOwogfQogCiBib29sIGRl
ZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8oKQpAQCAtMTU3LDcgKzE1Nyw3IEBA
IGJvb2wgZGVmYXVsdEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFNo
b3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZFJl
c3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RU
aGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMpOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3Ry
aWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6
Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMpOwogICAgIHJldHVybiBzaG91bGRSZXN0
cmljdEJhc2VVUkxTY2hlbWVzOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZjdmMWY5ZDI3N2QxZWI4YTIwNWY5NDQwNzk1NzM4YzRkMzNk
OGU4MC4uNmViZjQxNzZlNmM5NThlMWM1YTIzYzhhMzYzYmU2NzNkNTFjOThmOCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBA
CisyMDIwLTEwLTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgVW5pZnkgbGlua2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2RlIGFuZCB1c2Ug
U1BJL1dlYkNvcmVUZXN0U3VwcG9ydCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHNldERlZmF1bHRzVG9Db25zaXN0ZW50
VmFsdWVzRm9yVGVzdGluZyk6CisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL21haW4ubToKKyAg
ICAgICAgKG1haW4pOgorICAgICAgICAqIE1vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93
c2VyL21haW4ubToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29u
ZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lv
cy9tYWluSU9TLm1tOgorICAgICAgICAobWFpbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9t
YWMvbWFpbk1hYy5tbToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvaW9zL21haW5JT1MubW06CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL21hYy9tYWluLm1tOgorICAgICAgICAoc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1
ZXNGb3JUZXN0aW5nKToKKwogMjAyMC0xMC0wMiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIG15IGluZm9ybWF0aW9uIGluIGNvbnRyaWJ1dG9y
cy5qc29uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXgg
YWIzNWFkOTcxNGYzY2U4ZmY3YjY2NDhiNTZmNzI2ZWUwMWE0NDY1YS4uN2VkNGU2YTIyODhlYzBj
YWE4ZTcwYjlmZGUyNDgyZmJjNDE4YzY4MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQpAQCAtMTAxOCw3ICsxMDE4LDYgQEAgc3RhdGljIHZvaWQgc2V0RGVm
YXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCkKICAgICAgICAgV2ViS2l0RnVsbFNj
cmVlbkVuYWJsZWRQcmVmZXJlbmNlS2V5OiBAWUVTLAogICAgICAgICBXZWJLaXRBbGxvd3NJbmxp
bmVNZWRpYVBsYXliYWNrUHJlZmVyZW5jZUtleTogQFlFUywKICAgICAgICAgV2ViS2l0SW5saW5l
TWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGVLZXk6IEBOTywKLSAgICAg
ICAgQCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIjogQFlFUywKICAgICAgICAgQCJV
c2VXZWJLaXRXZWJJbnNwZWN0b3IiOiBAWUVTLAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgICAgICBAIk5TUHJlZmVycmVkU3BlbGxTZXJ2ZXJMYW5ndWFnZSI6IEAiZW5fVVMiLApAQCAt
MTA0Myw2ICsxMDQyLDggQEAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1
ZXNGb3JUZXN0aW5nKCkKICAgICAgICAgQCJjb20uYXBwbGUuc3dpcGVzY3JvbGxkaXJlY3Rpb24i
OiBAMSwKICAgICB9OwogCisgICAgV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRMaW5rZWRPbk9yQWZ0
ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOworCiAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFy
ZFVzZXJEZWZhdWx0c10gc2V0VmFsdWVzRm9yS2V5c1dpdGhEaWN0aW9uYXJ5OmRpY3RdOwogCiAg
ICAgTlNEaWN0aW9uYXJ5ICpwcm9jZXNzSW5zdGFuY2VEZWZhdWx0cyA9IEB7CmRpZmYgLS1naXQg
YS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvbWFpbi5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL21h
aW4ubQppbmRleCBiYTJjYTEyNDgyYzBhYjgwOTk5ODEzMWY2OTNjODc2MDE5YzU5NWYxLi45OTQ5
YWZkNzE0ZDYxNTVkMmM1MDRkMDU4NDU4ODJlZjAwZDM2M2I0IDEwMDY0NAotLS0gYS9Ub29scy9N
aW5pQnJvd3Nlci9tYWMvbWFpbi5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9tYWluLm0K
QEAgLTI0LDEwICsyNCwxMSBAQAogICovCiAKICNpbXBvcnQgPENvY29hL0NvY29hLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KIAogaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIgKmFyZ3ZbXSkKIHsKLSAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1
bHRzXSBzZXRCb29sOllFUyBmb3JLZXk6QCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5n
Il07CisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nXTsKIAogICAgIHJldHVybiBOU0FwcGxpY2F0aW9uTWFpbihhcmdjLCAgKGNvbnN0IGNo
YXIgKiopIGFyZ3YpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9i
aWxlTWluaUJyb3dzZXIvbWFpbi5tIGIvVG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWlu
aUJyb3dzZXIvbWFpbi5tCmluZGV4IDU1ZWZkMTU3MmZhN2FkNDliODJjZTZjNThhMDAyMjJlMDdh
NzYxYWMuLjhjNDI1MGY0MDg3MWQ1NDQ4YWZmOTdkNjE2NDM1Yzc3YTRmOTNlZWUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL01vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4ubQorKysg
Yi9Ub29scy9Nb2JpbGVNaW5pQnJvd3Nlci9Nb2JpbGVNaW5pQnJvd3Nlci9tYWluLm0KQEAgLTI0
LDEwICsyNCwxMSBAQAogICovCiAKICNpbXBvcnQgPE1vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1p
bmlCcm93c2VyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KIAog
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiBhcmd2W10pCiB7Ci0gICAgW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpZRVMgZm9yS2V5OkAiV2ViS2l0TGlua2Vk
T25PckFmdGVyRXZlcnl0aGluZyJdOworICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9y
QWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZ107CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAg
ICAgICAgcmV0dXJuIFVJQXBwbGljYXRpb25NYWluKGFyZ2MsIGFyZ3YsIG5pbCwgTlNTdHJpbmdG
cm9tQ2xhc3MoW0FwcERlbGVnYXRlIGNsYXNzXSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnCmluZGV4IDU3NDAwMzVlZDZhZjE3
OWE2NzcxYTMxZjkzZjAyY2JiMTE0Y2Y2MDIuLjA3ZDk3ZmJmZjYwNTg2MGZkMGE4MDFmODVhNDQ4
NzM0ZmFlYjlhZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvVGVzdFdURi54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL1Rlc3RXVEYueGNjb25maWcKQEAgLTI3LDYgKzI3LDggQEAgTElCUkFSWV9TRUFSQ0hfUEFU
SFMgPSAkKFBST0pFQ1RfRElSKS9UZXN0cy9XVEYvZGFyd2luICQoaW5oZXJ0aWVkKTsKIAogR0ND
X0VOQUJMRV9PQkpDX0VYQ0VQVElPTlMgPSBZRVM7CiAKK0dDQ19QUkVQUk9DRVNTT1JfREVGSU5J
VElPTlMgPSAkKGluaGVyaXRlZCkgQlVJTERJTkdfVEVTVF9XVEY9MQorCiBVTkVYUE9SVEVEX1NZ
TUJPTF9MREZMQUdTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTjd0ZXN0aW5nNFRl
c3QxNlRlYXJEb3duVGVzdENhc2VFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pON3Rl
c3Rpbmc0VGVzdDEzU2V0VXBUZXN0Q2FzZUV2CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRl
ZCkgJChVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V1RGLmEgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL21haW5JT1MubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tCmluZGV4IDAxYzdkMjczNjE1NjcxYmUwMDhmMjE4
OGZjZDNjN2UxZmQwMGI1ZjYuLjdhODAzYTc1YTFjODA0NGNkYWFhZTIxMGE2ZWQzYzg2ZmIzZjQ3
NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL21haW5JT1MubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvbWFpbklPUy5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJUZXN0c0NvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCA8
V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisKIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKIHsKICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFz
ZVBvb2wgYWxsb2NdIGluaXRdOwpAQCAtMzYsMTAgKzM4LDExIEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiogYXJndikKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICphcmd1bWVudERvbWFpbiA9
IFtbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSB2b2xhdGlsZURvbWFpbkZv
ck5hbWU6TlNBcmd1bWVudERvbWFpbl0gbXV0YWJsZUNvcHldOwogICAgIGlmICghYXJndW1lbnRE
b21haW4pCiAgICAgICAgIGFyZ3VtZW50RG9tYWluID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFs
bG9jXSBpbml0XTsKLSAgICAKLSAgICBOU0RpY3Rpb25hcnkgKmRpY3QgPSBAeyBAIldlYktpdExp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciOiBAWUVTIH07CiAKLSAgICBbYXJndW1lbnREb21haW4g
YWRkRW50cmllc0Zyb21EaWN0aW9uYXJ5OmRpY3RdOworI2lmbmRlZiBCVUlMRElOR19URVNUX1dU
RgorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVz
dGluZ107CisjZW5kaWYKKwogICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIHNldFZvbGF0aWxlRG9tYWluOmFyZ3VtZW50RG9tYWluIGZvck5hbWU6TlNBcmd1bWVudERv
bWFpbl07CiAKICAgICBib29sIHBhc3NlZCA9IFRlc3RXZWJLaXRBUEk6OlRlc3RzQ29udHJvbGxl
cjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFyZ3YpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9tYWMvbWFpbk1hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL21haW5NYWMu
bW0KaW5kZXggNjI0ZmY4MjQyNDhmOTVhN2M1ZTNlYmE3NWYyNjZhYTA2N2MyMTkyMC4uNTU5YzNj
Y2NjZmY4OTljOWY5NjI2YmFkN2U0MWMwYWRiNjIwNzYyNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9tYWMvbWFpbk1hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9t
YWluTWFjLm1tCkBAIC0yNiw2ICsyNiw4IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQg
IlRlc3RzQ29udHJvbGxlci5oIgogCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaD4KKwogZXh0ZXJuICJDIiB2b2lkIF9CZWdpbkV2ZW50UmVjZWlwdE9uVGhyZWFkKHZvaWQp
OwogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCkBAIC00MiwxNCArNDQsMTUgQEAg
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIC8vIENBVVRJT046IERlZmF1bHRz
IHNldCBoZXJlIGFyZSBub3QgYXV0b21hdGljYWxseSBwcm9wYWdhdGVkIHRvIHRoZQogICAgIC8v
IFdlYiBDb250ZW50IHByb2Nlc3MuIFRob3NlIGxpc3RlZCBiZWxvdyBhcmUgcHJvcGFnYXRlZCBt
YW51YWxseS4KICAgICBOU0RpY3Rpb25hcnkgKmRpY3QgPSBAewotICAgICAgICBAIldlYktpdExp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciOiBAWUVTLAotCiAgICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgc3dpdGNoIHRoZXNlIGRlZmF1bHRzIHRvIHVzZSBvdmVybGF5CiAgICAgICAgIC8vIHNj
cm9sbGJhcnMsIHNpbmNlIHRoZXkgYXJlIHRoZSBkZWZhdWx0IG9uIHRoZSBwbGF0Zm9ybSwKICAg
ICAgICAgLy8gYnV0IGEgdmFyaWV0eSBvZiB0ZXN0cyB3aWxsIG5lZWQgY2hhbmdlcy4KICAgICAg
ICAgQCJOU092ZXJsYXlTY3JvbGxlcnNFbmFibGVkIjogQE5PLAogICAgICAgICBAIkFwcGxlU2hv
d1Njcm9sbEJhcnMiOiBAIkFsd2F5cyIsCiAgICAgfTsKKyNpZm5kZWYgQlVJTERJTkdfVEVTVF9X
VEYKKyAgICBbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRl
c3RpbmddOworI2VuZGlmCiAKICAgICBbYXJndW1lbnREb21haW4gYWRkRW50cmllc0Zyb21EaWN0
aW9uYXJ5OmRpY3RdOwogICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNd
IHNldFZvbGF0aWxlRG9tYWluOmFyZ3VtZW50RG9tYWluIGZvck5hbWU6TlNBcmd1bWVudERvbWFp
bl07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9tYWluSU9TLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbQppbmRleCAxYTkwNmVmZGJhMDEw
NzFkMWExYzg0NDExYjc5MzFiNmU4YWJhMTU3Li5mMTY2ZTQwZjg3Yjg4M2Y2ZjljZTgwMTAwZWI3
OTU5YmUyNzk4ZjVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9tYWlu
SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW0KQEAgLTI4
LDYgKzI4LDcgQEAKICNpbXBvcnQgIkhJREV2ZW50R2VuZXJhdG9yLmgiCiAjaW1wb3J0ICJUZXN0
Q29udHJvbGxlci5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oPgogCiBzdGF0aWMgaW50IF9hcmdjOwogc3RhdGljIGNvbnN0IGNo
YXIgKipfYXJndjsKQEAgLTY4LDkgKzY5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNo
YXIqIGFyZ3ZbXSkKICAgICBfYXJnYyA9IGFyZ2M7CiAgICAgX2FyZ3YgPSBhcmd2OwogCi0gICAg
QGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIHNldEJvb2w6WUVTIGZvcktleTpAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmciXTsKLSAgICB9CisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2
ZXJ5dGhpbmdGb3JUZXN0aW5nXTsKIAogICAgIFVJQXBwbGljYXRpb25NYWluKGFyZ2MsIChjaGFy
KiopYXJndiwgQCJXZWJLaXRUZXN0UnVubmVyQXBwIiwgQCJXZWJLaXRUZXN0UnVubmVyQXBwIik7
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9t
YWluLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFpbi5tbQppbmRleCAwODQwZmJl
YzVlMmY1OWM2ZTEyY2Y1NmRjYjA4YzRmMGJkNDkwYTI5Li4xY2YxZTBlN2Y1NmY3Mzg5NzUxOTI3
MzI3NTRkNTgyNjAzOTBjNGI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9tYWluLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL21haW4ubW0KQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW1wb3J0ICJUZXN0
Q29udHJvbGxlci5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAK
IHN0YXRpYyB2b2lkIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9yVGVzdGluZygpCiB7
CkBAIC00MSwxMiArNDIsMTIgQEAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRW
YWx1ZXNGb3JUZXN0aW5nKCkKICAgICAgICAgQCJBcHBsZUVuYWJsZVN3aXBlTmF2aWdhdGVXaXRo
U2Nyb2xscyI6IEBZRVMsCiAgICAgICAgIEAiY29tLmFwcGxlLnN3aXBlc2Nyb2xsZGlyZWN0aW9u
IjogQDEsCiAgICAgICAgIEAiY29tLmFwcGxlLnRyYWNrcGFkLmZvcmNlQ2xpY2siOiBAMSwKLSAg
ICAgICAgQCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIjogQFlFUywKICAgICAgICAg
QCJOU1Njcm9sbEFuaW1hdGlvbkVuYWJsZWQiOiBATk8sCiAgICAgICAgIEAiTlNPdmVybGF5U2Ny
b2xsZXJzRW5hYmxlZCI6IEBOTywKICAgICAgICAgQCJBcHBsZVNob3dTY3JvbGxCYXJzIjogQCJB
bHdheXMiLAogICAgICAgICBAIldlYktpdDJVc2VSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSI6
IEBOTywKICAgICB9OworICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVy
eXRoaW5nRm9yVGVzdGluZ107CiAKICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRl
ZmF1bHRzXSBzZXRWYWx1ZXNGb3JLZXlzV2l0aERpY3Rpb25hcnk6ZGljdF07CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410354</attachid>
            <date>2020-10-02 12:25:01 -0700</date>
            <delta_ts>2020-10-03 16:55:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217239-20201002122458.patch</filename>
            <type>text/plain</type>
            <size>90621</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzliNjBmZTYxMDYyMzI1
ODgzYzYwZTcyM2FiNDVkMWFmMjllOTI0MC4uZTgzNGNiN2E0NjY1Mzg2YjBhZjdhNzNhYWJmMGFk
ODZmN2U5N2NjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEwLTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkg
bGlua2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2RlIGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3Vw
cG9ydCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZSBtYWtlIG5ldyBTYWZhcmkgc2hpcHBlZCBvbiBvbGQg
T1NlcyBoYXZlIHRoZSBuZXcgYmVoYXZpb3Igd2l0aCByZWdhcmRzIHRvIGxpbmtlZE9uT3JBZnRl
ciwKKyAgICAgICAgYW5kIHdpdGggRHVtcFJlbmRlclRyZWUsIFdlYktpdFRlc3RSdW5uZXIsIGFu
ZCBUZXN0V2ViS2l0QVBJIHdlIHRlc3QgdGhlIG5ldyBiZWhhdmlvci4KKyAgICAgICAgV2UgaGFk
IGR1cGxpY2F0ZSBpbXBsZW1lbnRhdGlvbnMgaW4gV2ViS2l0IGFuZCBXZWJLaXRMZWdhY3kgdGhh
dCBJIG1vdmUgdG8gV2ViQ29yZSB0byBzaGFyZQorICAgICAgICBhbmQgdG8gYmUgdXNlZCBieSBX
ZWJDb3JlIGluIGNhc2VzIGxpa2UgYnVnIDY4MDg5LgorICAgICAgICBJIGFsc28gdXNlIFNQSSBv
biBXS1Byb2Nlc3NQb29sIGFuZCBXZWJLaXRUZXN0U3VwcG9ydCB0byBzZXQgdGhpcyB2YWx1ZSBm
b3IgRHVtcFJlbmRlclRyZWUsCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIsIGFuZCBUZXN0V2Vi
S2l0QVBJLiAgSXQgdG9vayBhIG5ldyBwcmVwcm9jZXNzb3IgZGVmaW5pdGlvbiB0byBnZXQgVGVz
dFdURiB0bworICAgICAgICBsaW5rIHN1Y2Nlc3NmdWxseSBzaW5jZSBpdCBkb2Vzbid0IGxpbmsg
d2l0aCBXZWJLaXQuZnJhbWV3b3JrLCBidXQgaXQgYWxzbyBkb2Vzbid0IGhhdmUgYW55CisgICAg
ICAgIGxpbmtlZE9uT3JBZnRlciBjaGVja3MsIHNvIHRoaXMgaXMgbm8gcHJvYmxlbS4KKworICAg
ICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3Mu
aC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1tOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbS4KKyAgICAg
ICAgKFdlYkNvcmU6OnNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRlcik6CisgICAgICAgICogdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRM
aW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAgICAgICogdGVzdGluZy9q
cy9XZWJDb3JlVGVzdFN1cHBvcnQuaDoKKwogMjAyMC0wOS0zMCAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgbm9uLWFuaW1hdGVkIHN1cHBvcnQgZm9y
IHRoZSBDU1MgdHJhbnNsYXRlIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDllN2Q0ZjAyZjNkNGUyZjE3
NmZjNDYwMDc0YTI2MWU5MDA1ZmUwNTUuLjkwMDUyOTdhNWYwMzA2Y2RkYTgwMDlmZjk5MGQxYmNi
YzlmOGM4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjAtMTAtMDIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVbmlmeSBsaW5r
ZWRPbk9yQWZ0ZXIgZHVwbGljYXRlIGNvZGUgYW5kIHVzZSBTUEkvV2ViQ29yZVRlc3RTdXBwb3J0
IGluc3RlYWQgb2YgTlNVc2VyRGVmYXVsdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW06Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQ
cm9jZXNzQ29jb2EpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNh
bGxDaGVja2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckR1
cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL0Rl
ZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0OjpkZXRlcm1pbmVJVFBT
dGF0ZSk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAg
IChXS1BhZ2VSZWxvYWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbToKKyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZl
cnl0aGluZ0ZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW06CisgICAgICAgIChzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVS
THMpOgorICAgICAgICAoc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyByZWxvYWRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1
cmF0aW9uOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKGRlZmF1bHRTaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk6CisgICAgICAgICgtW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgaW5p
dF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9jb21wdXRlZE9ic2N1cmVkSW5zZXRdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfd2Vi
X2RyYWdEZXN0aW5hdGlvbkFjdGlvbkZvckRyYWdnaW5nSW5mbzpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIgaW5zcGVjdG9yV0tXZWJWaWV3UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFi
bGVPclpvb21lZE1haW5GcmFtZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXpl
U2FuZGJveEV4dGVuc2lvbkhhbmRsZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0Ojppc01haW5UaHJlYWRP
ckNoZWNrRGlzYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJv
Y2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvdWxk
VXNlQ29udGV4dE1lbnVzXSk6CisgICAgICAgIChhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1v
dXNlRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbToKKyAg
ICAgICAgKC1bV0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250ZW50SW5zZXRdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVza3Rv
cENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorCiAyMDIwLTEwLTAyICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogYWRkIGFuIE9iakMgcHJvdG9jb2wgZm9y
IGV4dGVuc2lvbiBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZjA3YjA0
YTcwMjIwNWQwZmI1OGRmYTcwZjhkYTZjNDI3OTI4YjIyZS4uNmFiN2U4NGU1YmY0MjVkYWMwZDBi
ODQ0MWNiZjE2Y2UxM2Q5M2JkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTEwLTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkgbGlua2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2Rl
IGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3VwcG9ydCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlZmF1
bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkRlZmF1
bHRVSURlbGVnYXRlIHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5n
SW5mbzpdKToKKyAgICAgICAgKiBNaXNjL1dlYkljb25EYXRhYmFzZS5tbToKKyAgICAgICAgKCtb
V2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0pOgorICAgICAgICAqIE1pc2MvV2Vi
S2l0VmVyc2lvbkNoZWNrcy5oOgorICAgICAgICAqIE1pc2MvV2ViS2l0VmVyc2lvbkNoZWNrcy5t
bToKKyAgICAgICAgKFdlYktpdExpbmtUaW1lVmVyc2lvbik6CisgICAgICAgIChsaW5rZWRPbk9y
QWZ0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLm1tOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJz
QXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRTaG91bGRSZXN0
cmljdEJhc2VVUkxTY2hlbWVzKToKKwogMjAyMC0xMC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBiYXNpYyBpbmZyYXN0cnVjdHVyZSBmb3IgQXVkaW9X
b3JrbGV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA0NWYzMDIyOWRkYzAwNTk5NTYzN2I0
OWM0MjZjODNkNzZlNzJkODM1Li4wNTg1MjNiNzdjNDY4MzMzMzUwN2UzZWQ1NjQzNjNhYWM2Mjc3
ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI1MSw2ICsyNTEsNyBAQCBwbGF0Zm9y
bS9jb2NvYS9TeXN0ZW1WZXJzaW9uLm1tCiBwbGF0Zm9ybS9jb2NvYS9UZWxlcGhvbmVOdW1iZXJE
ZXRlY3RvckNvY29hLmNwcAogcGxhdGZvcm0vY29jb2EvVGhlbWVDb2NvYS5tbQogcGxhdGZvcm0v
Y29jb2EvVXNlckFnZW50Q29jb2EubW0KK3BsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MubW0K
IHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCiBwbGF0
Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKIHBsYXRmb3JtL2NvY29hL1dlYkNv
cmVBZGRpdGlvbnMubW0gQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2EwMGY5ZTBhMjZiZjIxYThiY2M5ZmY1NTEw
MjJmNzQ3OTgxMjBkZC4uNjFiYzUzZGIwY2MwZjBiMGIxM2I4NTFkNzBhMmRjYzAxNjJhZGRiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDgwNCw2ICs0ODA0LDcgQEAKIAkJREVDQTgwNkMxRjlGRUQ2QTAwRTNCNjYxIC8qIFVu
aWZpZWRTb3VyY2UyOTkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREVDQTdGREExRjlGRTlBMjAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyOTkuY3Bw
ICovOyB9OwogCQlERUNBODA2RDFGOUZFRDZBMDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTMwMC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERUNBN0ZC
QjFGOUZFOTgzMDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTMwMC5jcHAgKi87IH07CiAJCURGMTlF
MkFDMjQ3NzJCQzEwMDdCREFDQiAvKiBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2lu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREYxOUUy
QUEyNDc3MjlBNjAwN0JEQUNCIC8qIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJREY0
RTM4RTAyNTI3OTU5NTAwMkE3NDgxIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGNEUzOERFMjUyNzk1OTQwMDJBNzQ4MSAv
KiBWZXJzaW9uQ2hlY2tzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJREY5NUIxNEEyNEZEQUZEMzAwQjFGNEQ3IC8qIFRleHRDb2RlY0NKSy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY5NUIxNDgyNEZE
QUZEMzAwQjFGNEQ3IC8qIFRleHRDb2RlY0NKSy5oICovOyB9OwogCQlERjlBRkQ3MjEzRkMzMUQ4
MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY5QUZENzAxM0ZDMzFEODAw
MTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCAqLzsgfTsKIAkJ
REY5QUZENzMxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
RjlBRkQ3MTEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbSAqLzsgfTsKQEAgLTE1NDU2LDYgKzE1NDU3LDggQEAKIAkJREVDQTdGRjQxRjlGRTlC
OTAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyNTUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTI1NS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTI1NS5jcHAiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlERUNBN0ZGNTFGOUZFOUJBMDBFM0I2NjEg
LyogVW5pZmllZFNvdXJjZTI1Ni5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVbmlmaWVkU291cmNlMjU2LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMjU2LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCURGMTlFMkFBMjQ3NzI5QTYwMDdCREFDQiAvKiBTaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlERjRFMzhEQzI1Mjc5NTkzMDAyQTc0ODEgLyogVmVyc2lvbkNo
ZWNrcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZlcnNpb25D
aGVja3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURGNEUzOERFMjUyNzk1OTQw
MDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZlcnNpb25DaGVja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY3RTlB
Mjk0QzdBQUNFMEFEODlCM0REIC8qIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY5NUIxNDYyNEZEQUZEMjAwQjFGNEQ3IC8qIFRl
eHRDb2RlY0NKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0
Q29kZWNDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjk1QjE0ODI0RkRB
RkQzMDBCMUY0RDcgLyogVGV4dENvZGVjQ0pLLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHRDb2RlY0NKSy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQw
OTEsNiArMjQwOTQsOCBAQAogCQkJCTMxMEQ3MTk0MUIzMzVDOUQwMDlDN0I3MyAvKiBUaGVtZUNv
Y29hLmggKi8sCiAJCQkJMzEwRDcxOTMxQjMzNUM5RDAwOUM3QjczIC8qIFRoZW1lQ29jb2EubW0g
Ki8sCiAJCQkJQTNBRjlEODEyMDMyNTJFRTAwNkNBRDA2IC8qIFVzZXJBZ2VudENvY29hLm1tICov
LAorCQkJCURGNEUzOERFMjUyNzk1OTQwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggKi8sCisJ
CQkJREY0RTM4REMyNTI3OTU5MzAwMkE3NDgxIC8qIFZlcnNpb25DaGVja3MubW0gKi8sCiAJCQkJ
NTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggKi8sCiAJCQkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsLmggKi8sCiAJCQkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVl
bk1vZGVsVmlkZW9FbGVtZW50LmggKi8sCkBAIC0zNDM3OCw2ICszNDM4Myw3IEBACiAJCQkJMTVD
NzcwOEQxMDBEM0M2QjAwNUJBMjY3IC8qIFZhbGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMzE2MEFGMTJCMDI2RjcwMEMxQTM1OSAvKiBWZWN0b3JNYXRoLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjFBMEMzODIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlERjRFMzhFMDI1Mjc5NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2Fs
UG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJCMEQ0QzAxQzU3RkQ2NjAwNzdD
RTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmVyc2lvbkNoZWNrcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVy
c2lvbkNoZWNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNjBmYmMyMTI4ZjIzN2Y3MmU5MmIyY2RkY2FmZWNm
YjhmYjQ2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WZXJzaW9uQ2hlY2tzLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KKworI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvVmVyc2lvbkNo
ZWNrc0FkZGl0aW9ucy5oPgorI2Vsc2UKKyNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9X
SVRIX0lPU19BUFBTX09OX01BQ09TIDAKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2VudW0gY2xhc3MgU0RLVmVyc2lvbiA6IHVpbnQzMl90IHsKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIEZpcnN0V2l0aE5ldHdvcmtDYWNoZSA9IERZTERfSU9TX1ZFUlNJT05fOV8wLAor
ICAgIEZpcnN0V2l0aE1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBE
WUxEX0lPU19WRVJTSU9OXzEwXzAsCisgICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0
ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzAsCisgICAgRmly
c3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvciA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwK
KyAgICBGaXJzdFRoYXREaXNhbGxvd3NTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0g
RFlMRF9JT1NfVkVSU0lPTl8xMV8zLAorICAgIEZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91
Y2hMaXN0ZW5lcnNPbkRvY3VtZW50ID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8zLAorICAgIEZpcnN0
V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cyA9IERZTERf
SU9TX1ZFUlNJT05fMTJfMCwKKyAgICBGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5
S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkgPSBEWUxEX0lPU19WRVJTSU9OXzEyXzAsCisg
ICAgRmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZ
TERfSU9TX1ZFUlNJT05fMTJfMCwKKyAgICBGaXJzdFdpdGhvdXRVbmNvbmRpdGlvbmFsVW5pdmVy
c2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFdp
dGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEy
XzIsCisgICAgRmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBEWUxE
X0lPU19WRVJTSU9OXzEyXzIsCisgICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0
ZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RXaXRoRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAgIEZp
cnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyA9IERZTERf
SU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZp
ZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAg
IEZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJ
T05fMTNfMCwKKyAgICBGaXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBEWUxE
X0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3Zl
cnJpZGVLZXlDb21tYW5kcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFRoYXRT
dXBwb3J0c092ZXJmbG93SGlkZGVuT25NYWluRnJhbWUgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAs
CisgICAgRmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQgPSBE
WUxEX0lPU19WRVJTSU9OXzEzXzIsCisgICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVt
ZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCisgICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBC
eURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCisgICAgRmlyc3RUaGF0U2VuZHNOYXRp
dmVNb3VzZUV2ZW50cyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKKyAgICBGaXJzdFdpdGhJbml0
aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAs
CisgICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERf
SU9TX1ZFUlNJT05fMTRfMCwKKyAgICBGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MgPSBE
WUxEX0lPU19WRVJTSU9OX0ZJUlNUX1dJVEhfSU9TX0FQUFNfT05fTUFDT1MsCisjZWxpZiBQTEFU
Rk9STShNQUMpCisgICAgRmlyc3RXaXRoTmV0d29ya0NhY2hlID0gRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xMSwKKyAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhh
bmRsZXJDYWxscyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCisgICAgRmlyc3RXaXRoRHJv
cFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8x
MywKKyAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMywKKyAgICBGaXJzdFdpdGhXZWJJY29uRGF0YWJhc2VXYXJuaW5nID0gRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKKyAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFz
c2VydGlvbkluV2ViUGFnZVByb3h5ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNCwKKyAgICBG
aXJzdFdpdGhvdXRVbmNvbmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTUsCisgICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVw
ZGF0ZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1LAorICAgIEZpcnN0V2l0aEV4Y2VwdGlv
bnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMgPSBEWUxEX01BQ09T
WF9WRVJTSU9OXzEwXzE1LAorICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFi
bGVkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV8xLAorICAgIEZpcnN0VGhh
dFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80LAor
ICAgIEZpcnN0V2l0aFNlc3Npb25DbGVhbnVwQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNiwKKyAgICBGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRp
b24gPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAorICAgIEZpcnN0V2l0aFdLV2Vic2l0ZURh
dGFTdG9yZUluaXRSZXR1cm5pbmdOaWwgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAorI2Vu
ZGlmCit9OworCitlbnVtIGNsYXNzIEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciA6
IGJvb2wgeyBObywgWWVzIH07CitXRUJDT1JFX0VYUE9SVCBib29sIGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uLCBBc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIgPSBBc3N1bWVTYWZh
cmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXI6Olllcyk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCk7CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4YzIxZGU1
MTk3MTQzMDc0ZDJiMTQwODg2ZTY1NjM4YmY5N2UxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1tCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmVyc2lv
bkNoZWNrcy5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
PgorI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KKyNpbXBvcnQgPG11dGV4PgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0YXRpYyBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0
aW5nIHsgZmFsc2UgfTsKKwordm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVz
dGluZygpCit7CisgICAgQVNTRVJUKCFsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGlu
Zyk7CisgICAgbGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcgPSB0cnVlOworfQor
Citib29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uIHNka1ZlcnNpb24sIEFzc3VtZVNhZmFy
aUlzQWx3YXlzTGlua2VkT25BZnRlciBhc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIp
Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIGlzU2FmYXJpID0gV2ViQ29y
ZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCk7CisjZWxpZiBQTEFURk9STShNQUMp
CisgICAgYm9vbCBpc1NhZmFyaSA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgp
OworI2VuZGlmCisKKyAgICBpZiAoVU5MSUtFTFkobGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0Zv
clRlc3RpbmcpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChpc1NhZmFyaSAmJiBh
c3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIgPT0gQXNzdW1lU2FmYXJpSXNBbHdheXNM
aW5rZWRPbkFmdGVyOjpZZXMpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgYXV0byBzZGtW
ZXJzaW9uQXNJbnRlZ2VyID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOworICAg
IHJldHVybiBzZGtWZXJzaW9uQXNJbnRlZ2VyICYmIGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNp
b24oKSA+PSBzZGtWZXJzaW9uQXNJbnRlZ2VyOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggZDdkMTYzMGM5M2JlZGRm
N2E4ZDU3YmU4ZmVlNDUxMDk2MDNiNjU5My4uZjhhZDc2YWE2ZjlhMTBlOTg0YTg5NDZjYmYwNGE4
N2Y2Nzg5MDNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRl
c3RTdXBwb3J0LmNwcApAQCAtNDgsNiArNDgsNyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAj
aW5jbHVkZSAiVVRJUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmVUZXN0U3VwcG9ydCB7CkBAIC0xNDMsNiArMTQ0LDEzIEBA
IHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBhbGxvd0FueVNTTENlcnRpZmlj
YXRlKQogICAgIEludGVybmFsU2V0dGluZ3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFs
bG93QW55U1NMQ2VydGlmaWNhdGUpOwogfQogCit2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmdGb3JUZXN0aW5nKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpz
ZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOworI2VuZGlmCit9CisKIHZv
aWQgaW5zdGFsbE1vY2tHYW1lcGFkUHJvdmlkZXIoKQogewogI2lmIEVOQUJMRShHQU1FUEFEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmgKaW5kZXgg
OGU0MWEwNmZkNTFiNmM0ZGY2MDA2ZWIwNmU4NGYwMDIwMjRjNzViNy4uOTg5ZmQ2NzI2YjMyYjVj
OGQ0ODVlY2E3YjFmYzk0ZmM5ODE5ZTJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQgc2V0TG9nQ2hh
bm5lbFRvQWNjdW11bGF0ZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkgVEVTVF9TVVBQT1JUX0VY
UE9SVDsKIHZvaWQgY2xlYXJBbGxMb2dDaGFubmVsc1RvQWNjdW11bGF0ZSgpIFRFU1RfU1VQUE9S
VF9FWFBPUlQ7CiB2b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCkgVEVTVF9T
VVBQT1JUX0VYUE9SVDsKIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCkgVEVT
VF9TVVBQT1JUX0VYUE9SVDsKK3ZvaWQgc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRl
c3RpbmcoKSBURVNUX1NVUFBPUlRfRVhQT1JUOwogCiB2b2lkIGluc3RhbGxNb2NrR2FtZXBhZFBy
b3ZpZGVyKCkgVEVTVF9TVVBQT1JUX0VYUE9SVDsKIHZvaWQgY29ubmVjdE1vY2tHYW1lcGFkKHVu
c2lnbmVkIGluZGV4KSBURVNUX1NVUFBPUlRfRVhQT1JUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCA0OWZhODgwYTg5NjUxMDg0YTU4Mzk5MWQ3YTEwZmVlNzBiNTUyMWYw
Li4yMjBjNDhkMGMzZjYxMmYyYmJhMGJhMGU2NDM5ZTg5MTJmMTRhOWFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTMsNiArNTMsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRl
bnRpZmllcjsKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1NES1ZlcnNpb247CisgICAgZW5jb2Rl
ciA8PCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZzsKICAgICBJUEM6OmVuY29k
ZShlbmNvZGVyLCBuZXR3b3JrQVRTQ29udGV4dC5nZXQoKSk7CiAjZW5kaWYKICNpZiBVU0UoU09V
UCkKQEAgLTEwNSw2ICsxMDYsOCBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzU0RL
VmVyc2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5saW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdC5uZXR3b3Jr
QVRTQ29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDc4MjlhMmRjMWMyYjJhOGVmYzJkYTkyZWEyYWY0ZDRmODM2
MjE3NGMuLmRkYzllODA2MWJjMjllYzMyNzBhODE0MWRjNTg0ODdmMTJjODE5MWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTY2LDYgKzY2LDcgQEAgc3RydWN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTdHJp
bmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICAgICB1aW50MzJfdCB1aVByb2Nlc3NTREtW
ZXJzaW9uIHsgMCB9OworICAgIGJvb2wgbGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3Rp
bmcgeyBmYWxzZSB9OwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IG5ldHdvcmtBVFNDb250ZXh0
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2Vi
U3RvcmFnZS9pb3MvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VySU9TLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXJJT1MubW0KaW5kZXggMTBjMTc4ODY4NGVhODQ3MWU3ZDZhYWMwZjZkNTUxZTVmYWUwNDY0
Ny4uYTc4OTU5YmFiZmFiN2E1ZmUxNzQ3MWYxZDk3OTgxYmM3MDdmNzNiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW0KQEAgLTI4LDcg
KzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLSNpbXBvcnQgIlZlcnNpb25D
aGVja3MuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDgyZDQ0MjBhY2ZiYjdlZDIyMTM5MzEw
YjIyYjE3YzJkYjIwY2JmMzYuLjY0OTcwNGZkYWJhNjM2ZWYyNmRjZDNkZmNmNmVlMWIwYjA5NDFk
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRh
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0NhbGxiYWNrQWdn
cmVnYXRvci5oPgpAQCAtNzQsNiArNzUsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQwogewog
ICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVp
UHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwogICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihw
YXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24pOworICAgIGlmIChwYXJhbWV0ZXJzLmxpbmtl
ZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKQorICAgICAgICBXZWJDb3JlOjpzZXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tCmluZGV4IDE2ZTViYmQ1MWU1MjQyZTViYWVhMGNkZTRjMTlmYWNiZTBmYTA1M2UuLmU0NWNh
MjFmMjI0OGQ4NGFlMDk0MTgxYzFhYmMyNTdjZmFiOWUwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5t
bQpAQCAtMjYsMTAgKzI2LDEwIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkNvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKIAorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hl
Y2tzLmg+CiAjaW1wb3J0IDxtdXRleD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9y
dCA8d3RmL1JlZi5oPgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUaHJvd0V4Y2VwdGlv
bkZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbCgpCiAgICAgc3RhdGljIGJvb2wgc2hv
dWxkVGhyb3dFeGNlcHRpb247CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAg
c3RkOjpjYWxsX29uY2Uob25jZSwgW10gewotICAgICAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbiA9
IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGlj
YXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyk7CisgICAgICAgIHNob3VsZFRocm93RXhjZXB0aW9u
ID0gbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2VwdGlv
bnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzKTsKICAgICB9KTsKICAgICByZXR1
cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IGM0YzYzYzE5NjBkNDQ1
YzI4ZDk0ZWZjNjI3NDIyYmVjYjJmZjY2ODcuLjdhZWFhMzk5OTlhZTljOTRjZWEyMmEyMzY2MzRh
ZjZhNzM1Y2UwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1
bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0Rl
ZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC0yNyw5ICsyNyw5IEBACiAjaW1wb3J0ICJEZWZh
dWx0V2ViQnJvd3NlckNoZWNrcy5oIgogCiAjaW1wb3J0ICJUQ0NTUEkuaCIKLSNpbXBvcnQgIlZl
cnNpb25DaGVja3MuaCIKICNpbXBvcnQgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNp
bXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CkBAIC0xMjgsNyArMTI4
LDcgQEAgdm9pZCBkZXRlcm1pbmVJVFBTdGF0ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGdf
Y3VycmVudElUUFN0YXRlID0gSVRQU3RhdGU6OkluaXRpYWxpemluZzsKLSAgICBib29sIGFwcFdh
c0xpbmtlZE9uT3JBZnRlciA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhT
ZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCwgQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVy
OjpZZXMpOworICAgIGJvb2wgYXBwV2FzTGlua2VkT25PckFmdGVyID0gbGlua2VkT25PckFmdGVy
KFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aFNlc3Npb25DbGVhbnVwQnlEZWZhdWx0KTsK
IAogICAgIGdfaXRwUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoImNvbS5hcHBsZS5XZWJL
aXQuaXRwQ2hlY2tRdWV1ZSIsIE5VTEwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbQppbmRleCAxNGQyNzlmNTdmZDM0YzAw
NDBjZmY4ZDY2N2Y1NjE2YzVkYzBiNTZmLi44MzFiODQwZTkwNWZiODVkZDNjMjFmNDBkMWExYTQ3
OTBjYzVhYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktp
dDJJbml0aWFsaXplQ29jb2EubW0KQEAgLTI2LDggKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiV2ViS2l0MkluaXRpYWxpemUuaCIKIAotI2ltcG9ydCAiVmVyc2lvbkNoZWNr
cy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxtdXRleD4KICNpbXBvcnQg
PHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjEsNyAr
NjEsNyBAQCB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKICAgICAvLyBNYWtlIHN1cmUgdGhlIGlu
aXRpYWxpemF0aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25jZSBhbmQgb24gdGhlIG1haW4gdGhyZWFk
IHNpbmNlIHRoaW5ncyBsaWtlIGluaXRpYWxpemVNYWluVGhyZWFkKCkKICAgICAvLyBhcmUgb25s
eSBzYWZlIHRvIGNhbGwgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0ZDo6Y2FsbF9vbmNlKGZs
YWcsIFtdIHsKLSAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRB
c3NlcnRpb24pKQorICAgICAgICBpZiAoW05TVGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlua2Vk
T25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQy
TWFpblRocmVhZEFzc2VydGlvbikpCiAgICAgICAgICAgICBydW5Jbml0aWFsaXphdGlvbkNvZGUo
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZGlzcGF0Y2hfc3luY19mKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIG51bGxwdHIsIHJ1bkluaXRpYWxpemF0aW9uQ29kZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApp
bmRleCA0NjRlOTc3ZDFmMzlhMjE0NDZhMDkxZWYxNDI3ZWNmZTg0YzdlYzg0Li5hZDUyZmI1Yzgz
ZGIyZGY5NmQ5YjViMjIyZTRiNzg5OTk3Y2Q3MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvRmVhdHVyZUZs
YWdzU1BJLmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0Nv
Y29hLmg+CiAjZW5kaWYKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJv
b2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQogewot
ICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNp
b246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsK
KyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVy
c2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQp
OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYzdhNTlhMDRkY2JkMTkz
ZmQ1YTJhMDAzMjJkODU1ZTg1NTFlMjkwMS4uYTQ2ZGI1MjE2NDNkMDBjNjlhYjM4YjE3NmUyNzVm
MzA0NmQ4YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTkwLDYgKzkwLDcgQEAgdm9pZCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRp
ZmllcjsKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1NES1ZlcnNpb247CisgICAgZW5jb2RlciA8
PCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZzsKICNlbmRpZgogICAgIGVuY29k
ZXIgPDwgcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAt
MzAyLDYgKzMwMyw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVy
c2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMubGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmlu
ZGV4IDBkM2EyOTY3NzE1MzdmYzMxZTEyZjUwMTE5ODYzNjNkYWMxMDkxZDkuLmI3N2MwODk3OWIz
OWQ4ZTE3YmEzNDgwNWIzYTlkMzNiM2JmNmFmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEzNCw2ICsxMzQsNyBA
QCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgU3RyaW5nIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAgICAgdWludDMyX3Qg
dWlQcm9jZXNzU0RLVmVyc2lvbiB7IDAgfTsKKyAgICBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmdGb3JUZXN0aW5nIHsgZmFsc2UgfTsKICNlbmRpZgogCiAgICAgUHJvY2Vzc0lEIHByZXNl
bnRpbmdBcHBsaWNhdGlvblBJRCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBiYmQz
MDU5NTI5YWZjYzk2Y2QzNDY2OTQ3YTZjYmFiOWQ1NDY3MDUxLi42OGM0NGI0OTM1NmQ1MzI5YTg2
NWVhODI2ZjI3YjZlM2EwMzA2YmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zODUsNyAr
Mzg1LDYgQEAgVUlQcm9jZXNzL0NvY29hL1VJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5tbQogVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkubW0KLVVJUHJvY2Vzcy9Db2Nv
YS9WZXJzaW9uQ2hlY2tzLm1tCiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KIFVJUHJvY2Vz
cy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggODEzNGI4ZmI3MTE5OGQ2MTMwNDM3MTViMThiNDEyMTIy
NDIxNGE2ZC4uZmNiYTg0NDI5ZGQ4NjkzYWNlNWJkOTUwMTA3M2Y4OGFjMTAxYzVlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC05NSw3ICs5NSw3IEBACiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNlbmRpZgogCiBuYW1lc3BhY2Ug
QVBJIHsKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIFdLUGFnZVJlbG9hZChXS1BhZ2VSZWYgcGFn
ZVJlZikKIHsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRp
b25zOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0
OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBp
ZiAobGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpS
ZWxvYWRPcHRpb246OkV4cGlyZWRPbmx5KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDFmNTZmYmZiNjc5
NTE2NDhkZjBiNGJiZGNiZjJhNTk5ZGMwMGJkYTYuLjhlOTgzN2IxODA4YTZhN2RiZDg4NWNiMjJk
NjVlMTIxODY2M2RmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC01MTgsNiArNTE4LDExIEBAIHN0YXRpYyBOU0RpY3Rp
b25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGljdGlvbmFyeShjb25zdCBIYXNoTWFwPFN0cmluZywg
SGFzaE1hcDxTCiAjZW5kaWYKIH0KIAorKyAodm9pZClfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0
aGluZ0ZvclRlc3RpbmcKK3sKKyAgICBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRMaW5rZWRP
bk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZygpOworfQorCiAtIChCT09MKV9pc0Nvb2tpZVN0
b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+Y29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggM2I5
MzE0MDRhOGUyZTQzMmQ1MWM1NDk2NWUyZGVmNWY4ZWNkYzEwZC4uMjE5NDFiMmQ0NjA3MGRhMWNh
OTVmYjkwNmY4ODMyZjVhZjA0ZDhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTExMiw2ICsxMTIs
NyBAQAogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29u
dGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVkLgogKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxl
ckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKysg
KHZvaWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3By
ZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3Ll9wcmVjb25uZWN0VG9TZXJ2ZXIiLCBtYWNvcygxMC4x
My40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMGQ2MTc3MDUyMmNh
MjQwOTNkYTMwZWM1ZGM5MmJmODg2NDgyYzJmMy4uZTJkMmYzZWVmNTdhNmJhOGVjMGIzMzU1ZjAw
N2JiZTg0NWFlNmRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCkBAIC01Miw3ICs1Miw2IEBACiAjaW1wb3J0ICJSZXNvdXJjZUxvYWREZWxl
Z2F0ZS5oIgogI2ltcG9ydCAiU2FmZUJyb3dzaW5nV2FybmluZy5oIgogI2ltcG9ydCAiVUlEZWxl
Z2F0ZS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIKQEAgLTEyNyw2ICsxMjYsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5n
VXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUv
Vmlld3BvcnRBcmd1bWVudHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViVmlld1Zpc3VhbElkZW50
aWZpY2F0aW9uT3ZlcmxheS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Xcml0aW5nTW9kZS5oPgpAQCAt
MjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1l
ZGlhUGxheWJhY2soKQogCiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFk
ZXJGcm9tRmlsZVVSTHMoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0Fu
eVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJk
aW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2Vk
T25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGlzYWxsb3dzU2V0dGluZ0Fu
eVhIUkhlYWRlckZyb21GaWxlVVJMcyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dTZXR0
aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0gKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjpp
c0NhcmRpb2dyYW0oKSB8fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNOaWtlKCkpICYmICFs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGlzYWxsb3dzU2V0
dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0
dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMczsKIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHN0
YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKCkKIAogc3RhdGlj
IGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7Ci0gICAgc3RhdGljIGJvb2wg
c2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNE
S1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKKyAgICBzdGF0aWMg
Ym9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0gbGlua2VkT25PckFmdGVyKFdlYkNv
cmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKICAgICBy
ZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsKIH0KIApAQCAtMzEwLDcgKzMxMCw3
IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJh
Y2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAgICAgICAgIFdLUHJvY2Vzc1Bvb2wgKnJlbGF0
ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHBy
b2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHByb2Nlc3NQb29sICYmIHByb2Nlc3NQb29sICE9IHJl
bGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6
TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmlldyAlQCBo
YXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25maWd1cmF0aW9uIHNwZWNpZmllcyBhIGRpZmZlcmVu
dCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVkV2ViVmlldywgcmVsYXRlZFdlYlZpZXdQcm9jZXNz
UG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbF07Ci0gICAgICAgIGlmIChbcmVsYXRlZFdl
YlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlv
biB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9u
OjpGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRh
U3RvcmVzLCBXZWJLaXQ6OkFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6Tm8pKQor
ICAgICAgICBpZiAoW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0
b3JlXSAhPSBbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gJiYgbGlua2VkT25PckFm
dGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2Vi
Vmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMsIFdlYkNvcmU6OkFzc3VtZVNhZmFyaUlzQWx3
YXlzTGlua2VkT25BZnRlcjo6Tm8pKQogICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5T
SW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIlJlbGF0ZWQgd2ViIHZpZXcgJUAgaGFz
IGRhdGEgc3RvcmUgJUAgYnV0IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVzIGEgZGlmZmVyZW50IGRh
dGEgc3RvcmUgJUAiLCByZWxhdGVkV2ViVmlldywgW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJh
dGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSwgW19jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVd
XTsKIAogICAgICAgICBbX2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cmVsYXRlZFdlYlZp
ZXdQcm9jZXNzUG9vbF07CkBAIC00NzgsNyArNDc4LDcgQEAgc3RhdGljIHZvaWQgaGFyZHdhcmVL
ZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJl
ZiwKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0QWxsb3dTZXR0aW5n
QW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZy
b21GaWxlVVJMcygpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0
U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoISFbX2NvbmZp
Z3VyYXRpb24gX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3
XSk7CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBwYWdlQ29uZmlndXJhdGlv
bi0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxl
ZChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25BUEkpKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+
cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZChs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYKICNpZiBVU0UoU1lTVEVNX1BS
RVZJRVcpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFN5c3RlbVBy
ZXZpZXdFbmFibGVkKCEhW19jb25maWd1cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pOwpA
QCAtNTI2LDcgKzUyNiw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxp
dHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAgICAgcGFnZUNvbmZp
Z3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2Fi
bGVkRm9yVGVzdGluZyghIVtfY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uX3NlcnZpY2VXb3Jr
ZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZyk7CiAjZW5kaWYKIAotICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1
aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNv
cmU6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlE
ZWZhdWx0KSkKICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldE5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGZhbHNlKTsKIH0KIApAQCAtNzgwLDcgKzc4MCw3IEBAIHN0
YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZO
b3RpZmljYXRpb25DZW50ZXJSZWYsCiAtIChXS05hdmlnYXRpb24gKilyZWxvYWQKIHsKICAgICBP
cHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRpb25zOwotICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVkT25seVJl
bG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNp
b246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQogICAgICAgICByZWxvYWRP
cHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4cGlyZWRPbmx5KTsKIAogICAgIHJl
dHVybiB3cmFwcGVyKF9wYWdlLT5yZWxvYWQocmVsb2FkT3B0aW9ucykpOwpAQCAtMTAyNCw3ICsx
MDI0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBuc0Vycm9yRnJvbUV4Y2VwdGlvbkRl
dGFpbHMoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGUKICAgICAgICAgfV07CiAgICAgfTsKIAot
ICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24u
YWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lv
bjo6Rmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CisgICAgaWYgKChzbmFw
c2hvdENvbmZpZ3VyYXRpb24gJiYgIXNuYXBzaG90Q29uZmlndXJhdGlvbi5hZnRlclNjcmVlblVw
ZGF0ZXMpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRo
U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CiAgICAgICAgIGNhbGxTbmFwc2hvdFJlY3Qo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggOTM2
ZDJhNjMzNmI5MDk2ZjA2MzIwYTgwOWUyODg0ZTk4MWQyNzRhMC4uMmVlY2UxNjM2YzBmNTBmMGU4
MTk1ODQ5NGZlMjYxNTA5NDc5OTcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTI4LDcg
KzI4LDYgQEAKIAogI2ltcG9ydCAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIlVz
ZXJJbnRlcmZhY2VJZGlvbS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAi
V0tQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiV0tS
ZXRhaW5QdHIuaCIKQEAgLTQ1LDYgKzQ0LDcgQEAKICNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU3Rv
cmVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lv
bkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1VSTFBh
cnNlci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CkBAIC0xMDYsNyArMTA2LDcgQEAg
c3RhdGljIF9XS0RyYWdMaWZ0RGVsYXkgdG9EcmFnTGlmdERlbGF5KE5TVUludGVnZXIgdmFsdWUp
CiBzdGF0aWMgYm9vbCBkZWZhdWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNr
TG9va1ByZXZpZXcoKQogewogI2lmIFVTRShRVUlDS19MT09LKQotICAgIHN0YXRpYyBib29sIHNo
b3VsZERlY2lkZSA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhh
dERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CisgICAgc3RhdGlj
IGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246
OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CiAg
ICAgcmV0dXJuIHNob3VsZERlY2lkZTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjAw
LDcgKzIwMCw3IEBAIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVM
b2FkaW5nUXVpY2tMb29rUHJldmlldygpCiAKICAgICBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNh
bGx5ID0gTk87CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCi0gICAgaWYgKFdlYktpdDo6bGlua2Vk
T25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWVkaWFUeXBlc1JlcXVpcmlu
Z1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCisgICAgaWYgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRl
cihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhNZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFj
dGlvbkZvclBsYXliYWNrKSkKICAgICAgICAgX21lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9u
Rm9yUGxheWJhY2sgPSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlQXVkaW87CiAgICAgZWxzZQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQppbmRleCA3Mzc0Y2JlOTMwNjY3MjU2Mjc0NjQ4YzQ0MDQ3YTdkN2Vi
OTZhNGIwLi5jMmRiNGEwNGQzNzhmMjRmZGQ1ZTYzMGYxNWIyOTNiZjZiZTAxY2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUubW0KQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb25Db2NvYS5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlci5oIgogI2ltcG9ydCAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLmgiCi0jaW1wb3J0
ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgi
CiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKICNpbXBvcnQgIldLTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oIgpAQCAtNDUsNiArNDQsNyBAQAogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVnaXN0cmF0aW9uRGF0YWJhc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNo
ZWNrcy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CiAj
aW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgog
CiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotICAgIGlmIChXZWJLaXQ6OmxpbmtlZE9uT3JBZnRl
cihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aFdLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1
cm5pbmdOaWwpKQorICAgIGlmIChXZWJDb3JlOjpsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCkpCiAg
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0dlbmVyaWNFeGNlcHRpb24gZm9ybWF0OkAiQ2Fs
bGluZyBbV0tXZWJzaXRlRGF0YVN0b3JlIGluaXRdIGlzIG5vdCBzdXBwb3J0ZWQuIl07CiAgICAg
CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IGU1MDY3NmUzNDZjNzYwM2FmM2Fi
YTJkNjg4ZGNlZjgyYjBmNDU4MzIuLjFhZTdhZTA5ZmYyNGFkY2M4NzE1ODdiOTEwY2QzYTY2MjUx
MmY4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLm1tCkBAIC0zMyw3ICszMyw2IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5j
ZURhdGEuaCIKICNpbXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKLSNp
bXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oIgogI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1JbnRlcm5hbC5oIgpAQCAtNTQsNiArNTMsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxDdXJyZW50VHJhaXRD
b2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFy
dHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+
CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KQEAgLTU4MSw3ICs1ODEsNyBAQCBz
dGF0aWMgV2ViQ29yZTo6Q29sb3Igc2Nyb2xsVmlld0JhY2tncm91bmRDb2xvcihXS1dlYlZpZXcg
KndlYlZpZXcpCiAKIC0gKFVJRWRnZUluc2V0cylfY29tcHV0ZWRPYnNjdXJlZEluc2V0CiB7Ci0g
ICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlU2Ny
b2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMpKSB7CisgICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNjcm9sbFZpZXdD
b250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzKSkgewogICAgICAgICAvLyBGb3IgYmlu
YXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQgcGFydHkgYXBwcywgdHJlYXQgc2Nyb2xsIHZpZXcg
Y29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5nIGluc2V0cyB3aGVuIHRoZSBhcHAgaXMgY29tcGls
ZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdlYktpdCB2ZXJzaW9uIHdpdGhvdXQgdGhlIGZpeCBp
biByMjI5NjQxLgogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbXB1dGVkQ29udGVudEluc2V0XTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5k
ZXggZmIyN2E2YTQ0NzY0MWYyYmZhZTY0OGMxNjNhYTQyMzlhMjQzN2Q0Yi4uNDc3NWUwZTM2N2E5
ODI4MGE4NjQ0ODZjZmM0MTY3MWRiZTZkYzk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBQTEFU
Rk9STShNQUMpCiAKICNpbXBvcnQgIkFwcEtpdFNQSS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNr
cy5oIgogI2ltcG9ydCAiV0tDb250ZW50Vmlld01hYy5oIgogI2ltcG9ydCAiV0tTYWZlQnJvd3Np
bmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJXS1Njcm9sbFZpZXdNYWMuaCIKQEAgLTQxLDYgKzQwLDcg
QEAKICNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVy
U1BJLmg+CiAKIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZSB0b0FQSVNjcm9sbGJhclN0eWxlKE9w
dGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4gY29yZVNjcm9sbGJhclN0eWxl
KQpAQCAtMTE1Niw3ICsxMTU2LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAg
ICAgcmV0dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
TWFza0ZvckRyYWdnaW5nSW5mbzpkcmFnZ2luZ0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9y
QWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93
ZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNp
b246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAg
IHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdE
ZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ5MjY1OGMxZTJkM2RlNjU3MzkwZjU2ZTVlMzEzYzM3MTA4Zjhj
ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5oCisrKyAvZGV2L251bGwKQEAg
LTEsODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbXBvcnQg
PHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Ci0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvVmVyc2lvbkNoZWNrc0FkZGl0aW9ucy5oPgotI2Vs
c2UKLSNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9XSVRIX0lPU19BUFBTX09OX01BQ09T
IDAKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotZW51bSBjbGFzcyBTREtWZXJzaW9u
IDogdWludDMyX3QgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmlyc3RXaXRoTmV0
d29ya0NhY2hlID0gRFlMRF9JT1NfVkVSU0lPTl85XzAsCi0gICAgRmlyc3RXaXRoTWVkaWFUeXBl
c1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwK
LSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxs
cyA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwKLSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9h
ZEJlaGF2aW9yID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93
c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMs
Ci0gICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQg
PSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50
SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAg
IEZpcnN0V2hlcmVVSVNjcm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0
aW9uYWxseSA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFk
UmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAot
ICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0g
RFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aExhenlHZXN0dXJlUmVjb2duaXpl
ckluc3RhbGxhdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKLSAgICBGaXJzdFdpdGhQcm9j
ZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKLSAg
ICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfSU9TX1ZFUlNJT05f
MTNfMCwKLSAgICBGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25B
UEkgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RUaGF0RGVjaWRlc1BvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAg
IEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFT
dG9yZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoTW9kZXJuQ29tcGFi
aWxpdHlNb2RlQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhh
dEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAg
ICBGaXJzdFdoZXJlV0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5P
bk1haW5GcmFtZSA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdoZXJlU2l0ZVNw
ZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMiwK
LSAgICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfSU9TX1ZFUlNJT05f
MTNfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZF
UlNJT05fMTRfMCwKLSAgICBGaXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNlRXZlbnRzID0gRFlMRF9J
T1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVh
ZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdpdGhXS1dlYnNp
dGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAg
IEZpcnN0VmVyc2lvbldpdGhpT1NBcHBzT25NYWNPUyA9IERZTERfSU9TX1ZFUlNJT05fRklSU1Rf
V0lUSF9JT1NfQVBQU19PTl9NQUNPUywKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICBGaXJzdFdp
dGhOZXR3b3JrQ2FjaGUgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzExLAotICAgIEZpcnN0V2l0
aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNP
U1hfVkVSU0lPTl8xMF8xMywKLSAgICBGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRC
eURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aEV4cGly
ZWRPbmx5UmVsb2FkQmVoYXZpb3IgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZp
cnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJz
YWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKLSAgICBGaXJz
dFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBf
MTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVy
ZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaGVy
ZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzE1XzEsCi0gICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1XzQsCi0gICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURl
ZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAotICAgIEZpcnN0V2l0aEluaXRpYWxp
emVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYs
Ci0gICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0jZW5kaWYKLX07Ci0KLWVudW0gY2xhc3MgQXNzdW1lU2Fm
YXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyIDogYm9vbCB7IE5vLCBZZXMgfTsKLWJvb2wgbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb24sIEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciA9
IEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6WWVzKTsKLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3MubW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBkZDY1MzcwYzhlNGRkNDQ0MGJlZDhiZjdhNjI5OGVlYzZlZjQwOTIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbQorKysgL2Rldi9udWxsCkBAIC0x
LDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9y
dCAiVmVyc2lvbkNoZWNrcy5oIgotCi0jaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oPgotI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KLSNpbXBvcnQgPG11dGV4PgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0TGlua2Vk
T25PckFmdGVyRXZlcnl0aGluZ0tleSA9IEAiV2ViS2l0TGlua2VkT25PckFmdGVyRXZlcnl0aGlu
ZyI7Ci0KLWJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24gc2RrVmVyc2lvbiwgQXNzdW1l
U2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyIGFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25B
ZnRlcikKLXsKLSAgICBzdGF0aWMgYm9vbCBsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nID0gZmFs
c2U7Ci0gICAgc3RhdGljIGJvb2wgaXNTYWZhcmkgPSBmYWxzZTsKLSAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgb25jZTsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01v
YmlsZVNhZmFyaSgpKQotICAgICAgICAgICAgaXNTYWZhcmkgPSB0cnVlOwotI2VsaWYgUExBVEZP
Uk0oTUFDKQotICAgICAgICBpZiAoV2ViQ29yZTo6TWFjQXBwbGljYXRpb246OmlzU2FmYXJpKCkp
Ci0gICAgICAgICAgICBpc1NhZmFyaSA9IHRydWU7Ci0jZW5kaWYKLQotICAgICAgICBpZiAoW1tO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJLaXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nS2V5XSkKLSAgICAgICAgICAgIGxpbmtlZE9uT3JBZnRlckV2
ZXJ5dGhpbmcgPSB0cnVlOwotICAgIH0pOwotCi0gICAgaWYgKFVOTElLRUxZKGxpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmcpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1NhZmFy
aSAmJiBhc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIgPT0gQXNzdW1lU2FmYXJpSXNB
bHdheXNMaW5rZWRPbkFmdGVyOjpZZXMpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYXV0
byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24p
OwotICAgIHJldHVybiBzZGtWZXJzaW9uQXNJbnRlZ2VyICYmIGR5bGRfZ2V0X3Byb2dyYW1fc2Rr
X3ZlcnNpb24oKSA+PSBzZGtWZXJzaW9uQXNJbnRlZ2VyOwotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA4
NDcyYWU5MjAyMmViZWQwZjRhZDdlMTI0OTQ2YzgwZTAxNWY2MTJkLi5lYTBlNWZkODU0MTZlMzkw
Y2EwYjgyZDI4MDVjMjExNzc0ZDA0ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTM5LDcgKzM5LDYgQEAKICNp
bXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1w
b3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNp
bXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJX
ZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCIKQEAgLTYwLDYgKzU5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9VVElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0TGluay5oPgpAQCAtMzE4
LDYgKzMxOCwxNSBAQCBzdGF0aWMgYm9vbCByZXF1aXJlc0NvbnRhaW5lck1hbmFnZXJBY2Nlc3Mo
KQogI2VuZGlmCiB9CiAKK3N0YXRpYyBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nIHsgZmFsc2UgfTsKKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0TGlua2VkT25PckFm
dGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcoKQoreworICAgIEFTU0VSVCghbGlua2VkT25PckFmdGVy
RXZlcnl0aGluZ0ZvclRlc3RpbmcpOworICAgIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nID0gdHJ1ZTsKKyAgICBXZWJDb3JlOjpzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5n
Rm9yVGVzdGluZygpOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBwYXJhbWV0ZXJzLm1lZGlhTUlN
RVR5cGVzID0gcHJvY2Vzcy5tZWRpYU1JTUVUeXBlcygpOwpAQCAtMzQ4LDYgKzM1Nyw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJz
LnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Cisg
ICAgcGFyYW1ldGVycy5saW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyA9IGxpbmtl
ZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBpZiAoIW1fcmVzb2x2ZWRQYXRocy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1w
dHkoKSkKQEAgLTQ5MSw2ICs1MDEsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYQogewogICAg
IHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcigpOwogICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbiA9IGR5bGRf
Z2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKTsKKyAgICBwYXJhbWV0ZXJzLmxpbmtlZE9uT3JBZnRl
ckV2ZXJ5dGhpbmdGb3JUZXN0aW5nID0gbGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3Rp
bmc7CiAKICAgICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0K
aW5kZXggMzNiNThmMmFmMzM2Y2ZhZjFhY2U0YWU4MzhlYmQyMWJkN2RjOGFmNy4uMWVhYTk0M2Yy
N2EyN2Q2N2M2MTFmZjZkNmZiYmYzNjE2MmJmNzE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3
Q29udHJvbGxlci5tbQpAQCAtMjksNyArMjksNiBAQAogI2lmIFBMQVRGT1JNKE1BQykKIAogI2lt
cG9ydCAiQVBJTmF2aWdhdGlvbi5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9y
dCAiV0tGcmFtZUluZm8uaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yV0tXZWJWaWV3LmgiCiAjaW1w
b3J0ICJXS05hdmlnYXRpb25BY3Rpb24uaCIKQEAgLTQzLDYgKzQyLDcgQEAKICNpbXBvcnQgIldl
Ykluc3BlY3RvclByb3h5LmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+
CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIAogQGludGVyZmFjZSBXS0luc3BlY3RvclZp
ZXdDb250cm9sbGVyICgpIDxXS1VJRGVsZWdhdGUsIFdLTmF2aWdhdGlvbkRlbGVnYXRlLCBXS0lu
c3BlY3RvcldLV2ViVmlld0RlbGVnYXRlPgpAQCAtMjUyLDcgKzI1Miw3IEBACiAgICAgICAgIHJl
dHVybjsKIAogICAgIE9wdGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IHJlbG9hZE9wdGlv
bnM7Ci0gICAgaWYgKFdlYktpdDo6bGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6
Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKFdlYkNvcmU6Omxp
bmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVkT25seVJl
bG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2Fk
T3B0aW9uOjpFeHBpcmVkT25seSk7CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2FkKHJlbG9h
ZE9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuY3BwCmluZGV4IDhlZGRiMTVmOGYzNDIzOWQyNTA0OTlhOGM0YWY4NzVmMDVkZjNmNzkuLjEy
NWY1ZjFiY2RjMGUwM2JjNTliNTRjOTM3YzQzZGY5NzIzYWYwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAK
ICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgog
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkBAIC00Miw2ICs0
MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVBvc2l0aW9uZWROb2RlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVRyZWUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1ZlcnNpb25DaGVja3MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSgpIGNvbnN0CiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFdl
YktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9uTWFpbkZy
YW1lKSkKKyAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRXZlbnRicml0ZSgpICYm
ICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0U3VwcG9ydHNP
dmVyZmxvd0hpZGRlbk9uTWFpbkZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzYyMWY4NzRj
MDEzYTI0ODVlZjZlMGFjMzc5NTZkZjg4ZmU5YzllYS4uZTYwY2E2OWRiZDliYzM3NGZmOGM1MWQ0
Zjc1ZWZmMzVlNWNkZGNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0yMDYsMTMgKzIwNiwxMyBAQAogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3Jt
YW5jZURhdGEuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCi0j
aW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUJhdHRlcnku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgog
I2luY2x1ZGUgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KICNlbmRpZgpAQCAtMTI0OCw3ICsx
MjQ4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNp
b25IYW5kbGUoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXMKICAgICB9CiAKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRV
bmNvbmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbikpCisgICAgaWYgKCFsaW5rZWRP
bk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0VW5jb25kaXRpb25hbFVu
aXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQogICAgICAgICB3aWxsQWNxdWlyZVVuaXZlcnNhbEZp
bGVSZWFkU2FuZGJveEV4dGVuc2lvbihwcm9jZXNzKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMTc3OGUyMzJiNmVlOTFhOTZhNzNj
MzQxZjVlN2NkMTZkMjNkYTM2ZS4uYzNjYjg5NzZkOGRhMjVhNDllZjlhZTJkNWMxODlmOGRhZTgx
YTBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAt
MTI2LDExICsxMjYsMTEgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkRlZmF1
bHRXZWJCcm93c2VyQ2hlY2tzLmgiCi0jaW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hJREdhbWVwYWRQcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTXVsdGlHYW1l
cGFkUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bvd2VyU291cmNlTm90aWZpZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oTUFDKQpAQCAtMTAyOSw3ICsxMDI5LDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vz
c1Bvb2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVmPEFQSToKIAog
ICAgIGJvb2wgZW5hYmxlUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBwYWdlLT5w
cmVmZXJlbmNlcygpLnByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uRW5hYmxlZCgpOwog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9u
Ojppc0ZpcmVmb3goKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmly
c3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24pKQorICAgIGlmIChXZWJDb3Jl
OjpJT1NBcHBsaWNhdGlvbjo6aXNGaXJlZm94KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJDb3Jl
OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbikp
CiAgICAgICAgIGVuYWJsZVByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uID0gZmFsc2U7
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXgg
NTE1Yjk4Mzk4ZGNjNTA2ZTE5Mzc5MTljMjNlNTJlNjFlZTk2MmUwYy4uMTliZTBjYmE2MjU4Zjcz
YzJiOWY3OWFhZDQxMzVmNGQ0NjZhMmMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCkBAIC0zODgsNiArMzg4LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdm9pZCB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSgpOworICAgIHN0
YXRpYyB2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCk7CiAKICAg
ICBOU011dGFibGVEaWN0aW9uYXJ5ICplbnN1cmVCdW5kbGVQYXJhbWV0ZXJzKCk7CiAgICAgTlNN
dXRhYmxlRGljdGlvbmFyeSAqYnVuZGxlUGFyYW1ldGVycygpIHsgcmV0dXJuIG1fYnVuZGxlUGFy
YW1ldGVycy5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggNWUyYzcwOGYyMmY5N2JlYWYzNzA5MzUyY2I2OWUzZDRjMjhlMWQ5Yi4uMDc2
ODk4ZDBhNTJjMmQxNjlhYzIxNTMyYzVlNGFkODI5MjdhNTMxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC03Niw3ICs3Niw3IEBACiAjaW5jbHVk
ZSAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW5jbHVkZSAiUERGUGx1Z2luLmgiCiAjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgotI2luY2x1ZGUgIlZlcnNpb25DaGVja3Mu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oTUFDKQpAQCAtMTAwLDkgKzEwMCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
c3RhdGljIGJvb2wgaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkKIHsKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIHJldHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3Nl
cnRpb25JbldlYlBhZ2VQcm94eSk7CisgICAgcmV0dXJuIExJS0VMWShSdW5Mb29wOjppc01haW4o
KSkgfHwgIWxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhNYWlu
VGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKICNlbGlmIFBMQVRGT1JNKE1B
QykKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQ
YWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5r
ZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWFpblRocmVhZFJlbGVh
c2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSk7CiAjZWxzZQogICAgIHJldHVybiBSdW5Mb29wOjpp
c01haW4oKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbQppbmRleCA2MDVhMzc5MWFjNzcwMjMzMjA1MWZjZTNkNzNlZDc0NmI2ZjdhYzkwLi5m
OTZiMzAyM2JmZThlNGNkNTMxMDI3M2YwNGUxYjhhZWM2MTZiY2U3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMzksNyArMzksNiBAQAogI2lt
cG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKLSNpbXBvcnQg
IlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcklu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwUHJpdmF0ZS5oIgogI2lt
cG9ydCAiV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3LmgiCkBAIC02Myw2ICs2Miw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1F1aXJrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmVsb2NpdHlEYXRhLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPG9iamMvbWVzc2FnZS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9jb2NvYS9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvUXVhcnR6Q29yZVNQSS5oPgpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBOU0FycmF5
ICprZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJub3RlKGlkIHNlbGYsIFNFTCBfY21k
KQogICAgIFtzZWxmIGFkZFN1YnZpZXc6X2ZpeGVkQ2xpcHBpbmdWaWV3LmdldCgpXTsKICAgICBb
X2ZpeGVkQ2xpcHBpbmdWaWV3IGFkZFN1YnZpZXc6X3Jvb3RDb250ZW50Vmlldy5nZXQoKV07CiAK
LSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aExh
enlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbikpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0
ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVySW5z
dGFsbGF0aW9uKSkKICAgICAgICAgW3NlbGYgc2V0VXBJbnRlcmFjdGlvbl07CiAgICAgW3NlbGYg
c2V0VXNlckludGVyYWN0aW9uRW5hYmxlZDpZRVNdOwogCkBAIC0yMTIsNyArMjEyLDcgQEAgc3Rh
dGljIE5TQXJyYXkgKmtleUNvbW1hbmRzUGxhY2Vob2xkZXJIYWNrRm9yRXZlcm5vdGUoaWQgc2Vs
ZiwgU0VMIF9jbWQpCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfc2NyZWVuQ2FwdHVyZWREaWRDaGFu
Z2U6KSBuYW1lOlVJU2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0OltV
SVNjcmVlbiBtYWluU2NyZWVuXV07CiAKICNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05T
KQotICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlV0tDb250ZW50Vmlld0Rv
ZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzKSkKKyAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRp
b246OmlzRXZlcm5vdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246
OkZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMpKQogICAg
ICAgICBjbGFzc19hZGRNZXRob2Qoc2VsZi5jbGFzcywgQHNlbGVjdG9yKGtleUNvbW1hbmRzKSwg
cmVpbnRlcnByZXRfY2FzdDxJTVA+KCZrZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJu
b3RlKSwgbWV0aG9kX2dldFR5cGVFbmNvZGluZyhjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChzZWxm
LmNsYXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpKSkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDY0MGE1YTRjZTUxZjY1ODIxYzgyNTUwOGQ2ZWFlYmU4ZjgwODE4ODMuLjY5YWI2YmRj
NTk0MTViMDU3ZDhjN2E5Yzk3YmFmYjY3OWMwNWU5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDQs
NyArNDQsNiBAQAogI2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5o
IgogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tz
LmgiCiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0QXNzaXN0YW50LmgiCiAjaW1wb3J0ICJXS0NvbnRl
eHRNZW51RWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tDb250ZXh0TWVudUVsZW1l
bnRJbmZvUHJpdmF0ZS5oIgpAQCAtMTE3LDYgKzExNiw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Rl
eHRJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbXBvcnQg
PFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CkBAIC03
MDk4LDcgKzcwOTgsNyBAQCBzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9yaWdpbnNNYXRj
aE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0CiAtIChCT09MKV9zaG91bGRV
c2VDb250ZXh0TWVudXMKIHsKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVY
VE1FTlUpCi0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZp
cnN0VGhhdEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAgcmV0dXJuIGxpbmtlZE9u
T3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb24pOwogI2VuZGlmCiAgICAgcmV0dXJuIE5POwogfQpAQCAtODU2Nyw3ICs4NTY3LDcg
QEAgc3RhdGljIEJPT0wgYXBwbGljYXRpb25Jc0tub3duVG9JZ25vcmVNb3VzZUV2ZW50cyhjb25z
dCBjaGFyKiAmd2FybmluZ1ZlcnNpb24pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQogCi0g
ICAgaWYgKCFXZWJLaXQ6OmxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0
VmVyc2lvbldpdGhpT1NBcHBzT25NYWNPUykpIHsKKyAgICBpZiAoIVdlYkNvcmU6OmxpbmtlZE9u
T3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFj
T1MpKSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNGSUZBQ29tcGFu
aW9uKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzY3MDkzNDg3PgogICAgICAgICAgICAgfHwgV2ViQ29y
ZTo6SU9TQXBwbGljYXRpb246OmlzTm9nZ2luKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzY0ODMwMzM1
PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzT0tDdXBpZCgpIC8v
IDxyZGFyOi8vcHJvYmxlbS82NTY5ODQ5Nj4KQEAgLTg1NzksNyArODU3OSw3IEBAIHN0YXRpYyBC
T09MIGFwcGxpY2F0aW9uSXNLbm93blRvSWdub3JlTW91c2VFdmVudHMoY29uc3QgY2hhciogJndh
cm5pbmdWZXJzaW9uKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFXZWJLaXQ6Omxpbmtl
ZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VF
dmVudHMpKSB7CisgICAgaWYgKCFXZWJDb3JlOjpsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RUaGF0U2VuZHNOYXRpdmVNb3VzZUV2ZW50cykpIHsKICAgICAgICAgaWYg
KFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1BvY2tldENpdHkoKSAvLyA8cmRhcjovL3Byb2Js
ZW0vNjIyNzMwNzc+CiAgICAgICAgICAgICB8fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNF
c3NlbnRpYWxTa2VsZXRvbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82MjY5NDUxOT4KICAgICAgICAg
ICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0VTUE5GYW50YXN5U3BvcnRzKCkgLy8g
PHJkYXI6Ly9wcm9ibGVtLzY0NjcxNTQzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S1Njcm9sbFZpZXcubW0KaW5kZXggYTg2YTRiZWY5NzBjNmI2ZmU1MmM3NTZlMWY4MDk1Zjc4MmZh
NDg0YS4uYzBlZmZmYmRmOWQwMDYxZjE3NjdlM2MxZjhjMzJmYjdlMDk5OGI1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCkBAIC0yOSw5ICsyOSw5IEBA
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKLSNpbXBv
cnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIuaCIKICNpbXBvcnQgIldLV2ViVmlld0lPUy5oIgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9u
Q2hlY2tzLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9y
dCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKQEAgLTM3OSw3ICszNzksNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgdmFsdWVzQXJlV2l0aGluT25lUGl4ZWwoQ0dGbG9hdCBhLCBDR0Zsb2F0IGIpCiAgICAg
Ly8gdG8gaW5jbHVkZSBrZXlib2FyZCBpbnNldHMgaW4gdGhlIHN5c3RlbUNvbnRlbnRJbnNldC4g
V2UgYWx3YXlzIHdhbnQKICAgICAvLyBrZXlib2FyZCBpbnNldHMgYXBwbGllZCwgZXZlbiB3aGVu
IHdlYiBjb250ZW50IGhhcyBjaG9zZW4gdG8gZGlzYWJsZSBhdXRvbWF0aWMKICAgICAvLyBzYWZl
IGFyZWEgaW5zZXQgYWRqdXN0bWVudC4KLSAgICBpZiAobGlua2VkT25PckFmdGVyKFdlYktpdDo6
U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVVJU2Nyb2xsVmlld0RvZXNOb3RBcHBseUtleWJvYXJkSW5z
ZXRzVW5jb25kaXRpb25hbGx5KSAmJiBzZWxmLmNvbnRlbnRJbnNldEFkanVzdG1lbnRCZWhhdmlv
ciA9PSBVSVNjcm9sbFZpZXdDb250ZW50SW5zZXRBZGp1c3RtZW50TmV2ZXIpCisgICAgaWYgKGxp
bmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3
RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVu
dEluc2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVz
dG1lbnROZXZlcikKICAgICAgICAgc3lzdGVtQ29udGVudEluc2V0LmJvdHRvbSArPSBfa2V5Ym9h
cmRCb3R0b21JbnNldEFkanVzdG1lbnQ7CiAKICAgICByZXR1cm4gc3lzdGVtQ29udGVudEluc2V0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5k
ZXggZjM3YTc2Zjg5NzNiOGI0OGUwNDdhYmZhZWU3OGQyZTRhODZmNDEyNS4uNGM0M2M1YjhjMjli
Y2YxNDE1NWJlMDhkYWM0NjcwMjkzOTNkMDMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC01Miw3ICs1Miw2IEBACiAjaW1wb3J0ICJV
SUtpdFNQSS5oIgogI2ltcG9ydCAiVXNlckRhdGEuaCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJ
ZGlvbS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgpAQCAt
NzAsNiArNjksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVXNlckFnZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9p
b3MvTW9iaWxlR2VzdGFsdFNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgog
CkBAIC0xNDU0LDcgKzE0NTQsNyBAQCBzdGF0aWMgYm9vbCBkZXNrdG9wQ2xhc3NCcm93c2luZ1Jl
Y29tbWVuZGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdQogICAgICAgICAv
LyBXaGlsZSBkZXNrdG9wLWNsYXNzIGJyb3dzaW5nIGlzIHN1cHBvcnRlZCBvbiBhbGwgaVBhZCBt
b2RlbHMsIGl0IGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgaVBhZCBtaW5pLgogICAgICAgICBhdXRv
IHNjcmVlbkNsYXNzID0gTUdHZXRTSW50MzJBbnN3ZXIoa01HUU1haW5TY3JlZW5DbGFzcywgTUdT
Y3JlZW5DbGFzc1BhZDIpOwogICAgICAgICBzaG91bGRSZWNvbW1lbmREZXNrdG9wQ2xhc3NCcm93
c2luZyA9IHNjcmVlbkNsYXNzICE9IE1HU2NyZWVuQ2xhc3NQYWQzICYmIHNjcmVlbkNsYXNzICE9
IE1HU2NyZWVuQ2xhc3NQYWQ0ICYmIGRlc2t0b3BDbGFzc0Jyb3dzaW5nU3VwcG9ydGVkKCk7Ci0g
ICAgICAgIGlmIChpZ25vcmVTYWZlZ3VhcmRzID09IElnbm9yZUFwcENvbXBhdGliaWxpdHlTYWZl
Z3VhcmRzOjpObyAmJiAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RX
aXRoTW9kZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0KSkgeworICAgICAgICBpZiAoaWdub3Jl
U2FmZWd1YXJkcyA9PSBJZ25vcmVBcHBDb21wYXRpYmlsaXR5U2FmZWd1YXJkczo6Tm8gJiYgIWxp
bmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhNb2Rlcm5Db21wYWJp
bGl0eU1vZGVCeURlZmF1bHQpKSB7CiAgICAgICAgICAgICAvLyBPcHQgb3V0IGFwcHMgdGhhdCBo
YXZlbid0IHlldCBidWlsdCBhZ2FpbnN0IHRoZSBpT1MgMTMgU0RLIHRvIGxpbWl0IGFueSBpbmNv
bXBhdGliaWxpdGllcyBhcyBhIHJlc3VsdCBvZiBlbmFibGluZyBkZXNrdG9wLWNsYXNzIGJyb3dz
aW5nIGJ5IGRlZmF1bHQgaW4KICAgICAgICAgICAgIC8vIFdLV2ViVmlldyBvbiBhcHByb3ByaWF0
ZWx5LXNpemVkIGlQYWQgbW9kZWxzLgogICAgICAgICAgICAgc2hvdWxkUmVjb21tZW5kRGVza3Rv
cENsYXNzQnJvd3NpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUzYjY0Zjc1ZWRkNDNjZTk1Zjc2NDEzNDdkOGE1Nzhh
MDZiNjQzYWUuLjA0OGRmNmE3ODdiMjVjNDIyZGViZGM5ODlkMjA2YjI4Nzk4N2JkMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTgy
MSw3ICsxODIxLDYgQEAKIAkJRTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNo
ZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNDlENDBENjFBRDNGQjE3MDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2Uu
aCAqLzsgfTsKIAkJRTRENTREMDQyMUYxRDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi87IH07CiAJCUU0RTU3RjZCMjFBODNCMTIw
MDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU1N0Y2QTIxQTgzQjExMDAzNDVGM0MgLyogUmVtb3Rl
TGF5ZXJUcmVlTm9kZS5oICovOyB9OwotCQlFNEU4NjQ5MzFCMTY3NTA3MDBDODJGNDAgLyogVmVy
c2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLzsgfTsKIAkJ
RTUyQ0Y1NTIyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1NTAy
MEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovOyB9Owog
CQlFNTQ4RUJEMTIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NDhFQkNGMjEwMTVGMEUw
MEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5oICovOyB9OwogCQlFNTVDRDFGNTI0Q0Y3NDdE
MDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDFGMzI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0
ZVRpbWVDaG9vc2VyLmggKi87IH07CkBAIC01MzIzLDggKzUzMjIsNiBAQAogCQlFNDlENDBEODFB
RDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2ODIxQTgzQjAzMDAzNDVGM0MgLyog
UmVtb3RlTGF5ZXJUcmVlTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQwIC8qIFZl
cnNpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmVyc2lvbkNo
ZWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNEU4NjQ4RjFCMTY3M0ZCMDBD
ODJGNDAgLyogVmVyc2lvbkNoZWNrcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZlcnNpb25DaGVja3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MkNGNTUxMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU0OEVC
Q0YyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdLRm9ybUNvbG9yUGlja2VyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtQ29sb3JQaWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYzMzAsOCArNjMyNyw2IEBACiAJCQkJ
NDYzMjM2ODUyMzE0ODMzRjAwQTQ4RkE3IC8qIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCAqLywK
IAkJCQkwNzAyNTlCRTI1MjI4NDFDMDAxNTM0MDUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkubW0gKi8sCiAJCQkJNDExQTlBOUEyNTFERTkzRTAwODA3RDdFIC8qIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkubW0gKi8sCi0JCQkJRTRFODY0OEUxQjE2NzNG
QjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLywKLQkJCQlFNEU4NjQ4RjFCMTY3M0ZCMDBD
ODJGNDAgLyogVmVyc2lvbkNoZWNrcy5tbSAqLywKIAkJCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCiAJCQkJNTJENUExQUIxQzU3
NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQk1MkQ1QTFBQzFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tICovLApAQCAtMTExNjIsNyArMTExNTcsNiBAQAogCQkJCTRBM0NDMThCMTlCMDY0
MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNEEzQ0MxOEQxOUIwNjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NEU3NUZFMURGMjIx
MTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNCQTNDQiAv
KiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1RDVFMTg1
ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQppbmRleCBjN2VhNjg0MDk4OGU4MmI1ZWVkZTg2Y2E2ODI4MTZmMzEzY2QwY2Q2Li5h
YTc5ZTQ1MjhhZTYxNzZkMGRhYTc2MGMxZjVjNzQxMmM3ZWRiYmJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTY4LDYgKzY4
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+CiAj
aW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CkBA
IC0yMjIsNiArMjIzLDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIAogICAgIFdlYkNvcmU6
OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRs
ZUlkZW50aWZpZXIpOwogICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihwYXJhbWV0ZXJzLnVp
UHJvY2Vzc1NES1ZlcnNpb24pOworICAgIGlmIChwYXJhbWV0ZXJzLmxpbmtlZE9uT3JBZnRlckV2
ZXJ5dGhpbmdGb3JUZXN0aW5nKQorICAgICAgICBXZWJDb3JlOjpzZXRMaW5rZWRPbk9yQWZ0ZXJF
dmVyeXRoaW5nRm9yVGVzdGluZygpOwogCiAgICAgbV91aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVy
ID0gcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSURlbGVn
YXRlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZh
dWx0VUlEZWxlZ2F0ZS5tbQppbmRleCA1NTIwMWE2NWQ3MTRlN2RhMDFkYjkyNjczNzEwMjcxZGI5
YzVmNzVjLi5kY2I3YzkzMWM5Njc3NmZkMDhmNDk2YWZiYzlmMWY0ZDIwZWUyMTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRV
SURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0
ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0KQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAiV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLmgi
Ci0jaW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNp
b25DaGVja3MuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIxNiwx
MSArMjE2LDEwIEBAIHN0YXRpYyBXZWJEZWZhdWx0VUlEZWxlZ2F0ZSAqc2hhcmVkRGVsZWdhdGUg
PSBuaWw7CiB7CiB9CiAKLQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogLSAoTlNVSW50ZWdl
cil3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9y
RHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogewotICAgIGlm
ICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlz
YWxsb3dlZEJ5RGVmYXVsdCkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKICAg
ICAgICAgcmV0dXJuIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIAogICAgIHJldHVybiBX
ZWJEcmFnRGVzdGluYXRpb25BY3Rpb25BbnkgJiB+V2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9h
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViSWNvbkRhdGFi
YXNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0K
aW5kZXggNGMxZGNiMjQzZWQzZjRhMWIzMWI5OThhZGZkNzJkY2ZmYWQ1NGJkMC4uOGY0OWJkYmQ3
Zjg0NzNhNDJmZmYxYzQzMzMyMzEyNDMwODJlNzZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KQEAgLTMwLDEwICszMCwxMCBAQAogCiAj
aW1wb3J0ICJXZWJJY29uRGF0YWJhc2UuaCIKIAotI2ltcG9ydCAiV2ViS2l0VmVyc2lvbkNoZWNr
cy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgor
I2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9v
cC5oPgpAQCAtMTA2LDcgKzEwNiw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05T
X0VORAogICAgIHN0YXRpYyBXZWJJY29uRGF0YWJhc2UgKmRhdGFiYXNlOwogICAgIHN0YXRpYyBk
aXNwYXRjaF9vbmNlX3Qgb25jZTsKICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeIHsKLSAgICAg
ICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhXZWJJY29uRGF0YWJh
c2VXYXJuaW5nKSkKKyAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJz
aW9uOjpGaXJzdFdpdGhXZWJJY29uRGF0YWJhc2VXYXJuaW5nKSkKICAgICAgICAgICAgIE5TTG9n
KEAiK1tXZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNvbkRhdGFiYXNlXSBpcyBub3QgQVBJIGFuZCBz
aG91bGQgbm90IGJlIHVzZWQuIFdlYkljb25EYXRhYmFzZSBubyBsb25nZXIgaGFuZGxlcyBpY29u
IGxvYWRpbmcgYW5kIGl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiIpOwog
CiAgICAgICAgIGRhdGFiYXNlID0gW1tXZWJJY29uRGF0YWJhc2UgYWxsb2NdIGluaXRdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tz
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MuaApp
bmRleCA3YWRhN2U5MThiYTNlN2NmNjVkYjk3ZTczMjk1NmM5MjYyNTk3ZTBmLi4yNjcwMzU5YWFj
ZTE2MTI3Njk4YjljYmJhNmYyNTkxNjI3YTdlYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MuaApAQCAtNzIsMTkgKzcyLDYgQEAK
ICNkZWZpbmUgV0VCS0lUX0ZJUlNUX1ZFUlNJT05fV0lUSF9DT05URU5UX1NFQ1VSSVRZX1BPTElD
WV9TT1VSQ0VfU1RBUl9QUk9UT0NPTF9SRVNUUklDVElPTiAzNTU1CiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIAotZW51bSBjbGFzcyBTREtWZXJzaW9uIDogdWludDMyX3QgewotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3Vj
aExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RU
aGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCi0jZWxz
ZQotICAgIEZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoV2ViSWNvbkRhdGFiYXNlV2Fybmlu
ZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFz
ZVVSTFNjaGVtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1XzQsCi0jZW5kaWYKLX07Ci0K
LWJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24pOwotCiAjaWZkZWYgX19jcGx1c3BsdXMK
IGV4dGVybiAiQyIgewogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9N
aXNjL1dlYktpdFZlcnNpb25DaGVja3MubW0KaW5kZXggNGU3YzgxYmJhYmRlNDk1NzBlYzk3ODdi
NDEwY2ZiNzMyMTAxMzA0OC4uY2E3YTZiM2FkMGQyM2RkOTc0YTg1MWY1NGE5YmFiOTFmMGM0ZTNj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJzaW9u
Q2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0VmVyc2lv
bkNoZWNrcy5tbQpAQCAtNjgsMTYgKzY4LDMgQEAgc3RhdGljIGludCBXZWJLaXRMaW5rVGltZVZl
cnNpb24odm9pZCkKICAgICByZXR1cm4gTlNWZXJzaW9uT2ZMaW5rVGltZUxpYnJhcnkoIlVJS2l0
Iik7CiAjZW5kaWYKIH0KLQotYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbiBzZGtWZXJz
aW9uKQotewotICAgIHN0YXRpYyBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmc7Ci0gICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10g
ewotICAgICAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9v
bEZvcktleTpAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciXSkKLSAgICAgICAgICAg
IGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcgPSB0cnVlOwotICAgIH0pOwotICAgIGlmIChVTkxJ
S0VMWShsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgcmV0dXJuIGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKSA+PSBzdGF0aWNfY2FzdDx1
aW50MzJfdD4oc2RrVmVyc2lvbik7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCmluZGV4
IGI2NTgwZTdhNjEzYzEzOWE1YjZmOGRhMTAyYzc3NzQ2NWQzNjM1ZDkuLjY4ZWFjMGE3OGM2NGNj
YTIyNzRkOTRhOTNmYzY4OWIyMTgwYTc5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1t
CkBAIC0yNSw5ICsyNSw5IEBACiAKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5oIgogCi0jaW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL05TQnVuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxtYWNoLW8v
ZHlsZC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9GZWF0dXJlRmxhZ3NTUEkuaD4KICNpbXBv
cnQgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgpAQCAtMTI4LDcg
KzEyOCw3IEBAIGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5s
aW5lQXR0cmlidXRlKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZh
dWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9u
OjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCk7Cisg
ICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFRoYXRE
ZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCk7CiB9CiAKIGJvb2wgZGVm
YXVsdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbygpCkBAIC0xNTcsNyArMTU3LDcgQEAg
Ym9vbCBkZWZhdWx0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0U2hv
dWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVz
dHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRo
YXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJp
Y3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpG
aXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3Ry
aWN0QmFzZVVSTFNjaGVtZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBmN2YxZjlkMjc3ZDFlYjhhMjA1Zjk0NDA3OTU3MzhjNGQzM2Q4
ZTgwLi42ZWJmNDE3NmU2Yzk1OGUxYzVhMjNjOGEzNjNiZTY3M2Q1MWM5OGY4IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMjAtMTAtMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBVbmlmeSBsaW5rZWRPbk9yQWZ0ZXIgZHVwbGljYXRlIGNvZGUgYW5kIHVzZSBT
UEkvV2ViQ29yZVRlc3RTdXBwb3J0IGluc3RlYWQgb2YgTlNVc2VyRGVmYXVsdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzIzOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRW
YWx1ZXNGb3JUZXN0aW5nKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvbWFpbi5tOgorICAg
ICAgICAobWFpbik6CisgICAgICAgICogTW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWluaUJyb3dz
ZXIvbWFpbi5tOgorICAgICAgICAobWFpbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9z
L21haW5JT1MubW06CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21h
Yy9tYWluTWFjLm1tOgorICAgICAgICAobWFpbik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvbWFpbklPUy5tbToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvbWFjL21haW4ubW06CisgICAgICAgIChzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVl
c0ZvclRlc3RpbmcpOgorCiAyMDIwLTEwLTAyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFw
cGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgbXkgaW5mb3JtYXRpb24gaW4gY29udHJpYnV0b3Jz
Lmpzb24KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBh
YjM1YWQ5NzE0ZjNjZThmZjdiNjY0OGI1NmY3MjZlZTAxYTQ0NjVhLi43ZWQ0ZTZhMjI4OGVjMGNh
YThlNzBiOWZkZTI0ODJmYmM0MThjNjgzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tCkBAIC0xMDE4LDcgKzEwMTgsNiBAQCBzdGF0aWMgdm9pZCBzZXREZWZh
dWx0c1RvQ29uc2lzdGVudFZhbHVlc0ZvclRlc3RpbmcoKQogICAgICAgICBXZWJLaXRGdWxsU2Ny
ZWVuRW5hYmxlZFByZWZlcmVuY2VLZXk6IEBZRVMsCiAgICAgICAgIFdlYktpdEFsbG93c0lubGlu
ZU1lZGlhUGxheWJhY2tQcmVmZXJlbmNlS2V5OiBAWUVTLAogICAgICAgICBXZWJLaXRJbmxpbmVN
ZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZUtleTogQE5PLAotICAgICAg
ICBAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciOiBAWUVTLAogICAgICAgICBAIlVz
ZVdlYktpdFdlYkluc3BlY3RvciI6IEBZRVMsCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgICAgIEAiTlNQcmVmZXJyZWRTcGVsbFNlcnZlckxhbmd1YWdlIjogQCJlbl9VUyIsCkBAIC0x
MDQzLDYgKzEwNDIsOCBAQCBzdGF0aWMgdm9pZCBzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVl
c0ZvclRlc3RpbmcoKQogICAgICAgICBAImNvbS5hcHBsZS5zd2lwZXNjcm9sbGRpcmVjdGlvbiI6
IEAxLAogICAgIH07CiAKKyAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6OnNldExpbmtlZE9uT3JBZnRl
ckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCk7CisKICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJk
VXNlckRlZmF1bHRzXSBzZXRWYWx1ZXNGb3JLZXlzV2l0aERpY3Rpb25hcnk6ZGljdF07CiAKICAg
ICBOU0RpY3Rpb25hcnkgKnByb2Nlc3NJbnN0YW5jZURlZmF1bHRzID0gQHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL21hYy9tYWluLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvbWFp
bi5tCmluZGV4IGJhMmNhMTI0ODJjMGFiODA5OTk4MTMxZjY5M2M4NzYwMTljNTk1ZjEuLjk5NDlh
ZmQ3MTRkNjE1NWQyYzUwNGQwNTg0NTg4MmVmMDBkMzYzYjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL21hYy9tYWluLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL21haW4ubQpA
QCAtMjQsMTAgKzI0LDExIEBACiAgKi8KIAogI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogCiBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhciAqYXJndltdKQogewotICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIHNldEJvb2w6WUVTIGZvcktleTpAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmci
XTsKKyAgICBbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRl
c3RpbmddOwogCiAgICAgcmV0dXJuIE5TQXBwbGljYXRpb25NYWluKGFyZ2MsICAoY29uc3QgY2hh
ciAqKikgYXJndik7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9Nb2JpbGVNaW5pQnJvd3Nlci9Nb2Jp
bGVNaW5pQnJvd3Nlci9tYWluLm0gYi9Ub29scy9Nb2JpbGVNaW5pQnJvd3Nlci9Nb2JpbGVNaW5p
QnJvd3Nlci9tYWluLm0KaW5kZXggNTVlZmQxNTcyZmE3YWQ0OWI4MmNlNmM1OGEwMDIyMmUwN2E3
NjFhYy4uOGM0MjUwZjQwODcxZDU0NDhhZmY5N2Q2MTY0MzVjNzdhNGY5M2VlZSAxMDA2NDQKLS0t
IGEvVG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWluaUJyb3dzZXIvbWFpbi5tCisrKyBi
L1Rvb2xzL01vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4ubQpAQCAtMjQs
MTAgKzI0LDExIEBACiAgKi8KIAogI2ltcG9ydCA8TW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWlu
aUJyb3dzZXIuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogCiBp
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqIGFyZ3ZbXSkKIHsKLSAgICBbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOllFUyBmb3JLZXk6QCJXZWJLaXRMaW5rZWRP
bk9yQWZ0ZXJFdmVyeXRoaW5nIl07CisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nXTsKIAogICAgIEBhdXRvcmVsZWFzZXBvb2wgewogICAg
ICAgICByZXR1cm4gVUlBcHBsaWNhdGlvbk1haW4oYXJnYywgYXJndiwgbmlsLCBOU1N0cmluZ0Zy
b21DbGFzcyhbQXBwRGVsZWdhdGUgY2xhc3NdKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcKaW5kZXggNTc0MDAzNWVkNmFmMTc5
YTY3NzFhMzFmOTNmMDJjYmIxMTRjZjYwMi4uMDdkOTdmYmZmNjA1ODYwZmQwYTgwMWY4NWE0NDg3
MzRmYWViOWFmYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9u
cy9UZXN0V1RGLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvVGVzdFdURi54Y2NvbmZpZwpAQCAtMjcsNiArMjcsOCBAQCBMSUJSQVJZX1NFQVJDSF9QQVRI
UyA9ICQoUFJPSkVDVF9ESVIpL1Rlc3RzL1dURi9kYXJ3aW4gJChpbmhlcnRpZWQpOwogCiBHQ0Nf
RU5BQkxFX09CSkNfRVhDRVBUSU9OUyA9IFlFUzsKIAorR0NDX1BSRVBST0NFU1NPUl9ERUZJTklU
SU9OUyA9ICQoaW5oZXJpdGVkKSBCVUlMRElOR19URVNUX1dURj0xCisKIFVORVhQT1JURURfU1lN
Qk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pON3Rlc3Rpbmc0VGVz
dDE2VGVhckRvd25UZXN0Q2FzZUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk43dGVz
dGluZzRUZXN0MTNTZXRVcFRlc3RDYXNlRXYKIAogT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVk
KSAkKFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MpIC1sZ3Rlc3QgLWZvcmNlX2xvYWQgJChCVUlM
VF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXVEYuYSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvbWFpbklPUy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvaW9zL21haW5JT1MubW0KaW5kZXggMDFjN2QyNzM2MTU2NzFiZTAwOGYyMTg4
ZmNkM2M3ZTFmZDAwYjVmNi4uN2E4MDNhNzVhMWM4MDQ0Y2RhYWFlMjEwYTZlZDNjODZmYjNmNDc1
MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvbWFpbklPUy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tCkBAIC0yNiw2ICsyNiw4IEBACiAjaW1w
b3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlRlc3RzQ29udHJvbGxlci5oIgogCisjaW1wb3J0IDxX
ZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KQogewogICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNl
UG9vbCBhbGxvY10gaW5pdF07CkBAIC0zNiwxMCArMzgsMTEgQEAgaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KQogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmFyZ3VtZW50RG9tYWluID0g
W1tbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHZvbGF0aWxlRG9tYWluRm9y
TmFtZTpOU0FyZ3VtZW50RG9tYWluXSBtdXRhYmxlQ29weV07CiAgICAgaWYgKCFhcmd1bWVudERv
bWFpbikKICAgICAgICAgYXJndW1lbnREb21haW4gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxs
b2NdIGluaXRdOwotICAgIAotICAgIE5TRGljdGlvbmFyeSAqZGljdCA9IEB7IEAiV2ViS2l0TGlu
a2VkT25PckFmdGVyRXZlcnl0aGluZyI6IEBZRVMgfTsKIAotICAgIFthcmd1bWVudERvbWFpbiBh
ZGRFbnRyaWVzRnJvbURpY3Rpb25hcnk6ZGljdF07CisjaWZuZGVmIEJVSUxESU5HX1RFU1RfV1RG
CisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0
aW5nXTsKKyNlbmRpZgorCiAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gc2V0Vm9sYXRpbGVEb21haW46YXJndW1lbnREb21haW4gZm9yTmFtZTpOU0FyZ3VtZW50RG9t
YWluXTsKIAogICAgIGJvb2wgcGFzc2VkID0gVGVzdFdlYktpdEFQSTo6VGVzdHNDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5ydW4oYXJnYywgYXJndik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL21hYy9tYWluTWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvbWFpbk1hYy5t
bQppbmRleCA2MjRmZjgyNDI0OGY5NWE3YzVlM2ViYTc1ZjI2NmFhMDY3YzIxOTIwLi41NTljM2Nj
Y2NmZjg5OWM5Zjk2MjZiYWQ3ZTQxYzBhZGI2MjA3NjI0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL21hYy9tYWluTWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL21h
aW5NYWMubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
VGVzdHNDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oPgorCiBleHRlcm4gIkMiIHZvaWQgX0JlZ2luRXZlbnRSZWNlaXB0T25UaHJlYWQodm9pZCk7
CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKQEAgLTQyLDE0ICs0NCwxNSBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgLy8gQ0FVVElPTjogRGVmYXVsdHMg
c2V0IGhlcmUgYXJlIG5vdCBhdXRvbWF0aWNhbGx5IHByb3BhZ2F0ZWQgdG8gdGhlCiAgICAgLy8g
V2ViIENvbnRlbnQgcHJvY2Vzcy4gVGhvc2UgbGlzdGVkIGJlbG93IGFyZSBwcm9wYWdhdGVkIG1h
bnVhbGx5LgogICAgIE5TRGljdGlvbmFyeSAqZGljdCA9IEB7Ci0gICAgICAgIEAiV2ViS2l0TGlu
a2VkT25PckFmdGVyRXZlcnl0aGluZyI6IEBZRVMsCi0KICAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBzd2l0Y2ggdGhlc2UgZGVmYXVsdHMgdG8gdXNlIG92ZXJsYXkKICAgICAgICAgLy8gc2Ny
b2xsYmFycywgc2luY2UgdGhleSBhcmUgdGhlIGRlZmF1bHQgb24gdGhlIHBsYXRmb3JtLAogICAg
ICAgICAvLyBidXQgYSB2YXJpZXR5IG9mIHRlc3RzIHdpbGwgbmVlZCBjaGFuZ2VzLgogICAgICAg
ICBAIk5TT3ZlcmxheVNjcm9sbGVyc0VuYWJsZWQiOiBATk8sCiAgICAgICAgIEAiQXBwbGVTaG93
U2Nyb2xsQmFycyI6IEAiQWx3YXlzIiwKICAgICB9OworI2lmbmRlZiBCVUlMRElOR19URVNUX1dU
RgorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVz
dGluZ107CisjZW5kaWYKIAogICAgIFthcmd1bWVudERvbWFpbiBhZGRFbnRyaWVzRnJvbURpY3Rp
b25hcnk6ZGljdF07CiAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
c2V0Vm9sYXRpbGVEb21haW46YXJndW1lbnREb21haW4gZm9yTmFtZTpOU0FyZ3VtZW50RG9tYWlu
XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9tYWluSU9TLm1tCmluZGV4IDFhOTA2ZWZkYmEwMTA3
MWQxYTFjODQ0MTFiNzkzMWI2ZThhYmExNTcuLmYxNjZlNDBmODdiODgzZjZmOWNlODAxMDBlYjc5
NTliZTI3OThmNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5J
T1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbQpAQCAtMjgs
NiArMjgsNyBAQAogI2ltcG9ydCAiSElERXZlbnRHZW5lcmF0b3IuaCIKICNpbXBvcnQgIlRlc3RD
b250cm9sbGVyLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJv
Y2Vzc1Bvb2xQcml2YXRlLmg+CiAKIHN0YXRpYyBpbnQgX2FyZ2M7CiBzdGF0aWMgY29uc3QgY2hh
ciAqKl9hcmd2OwpAQCAtNjgsOSArNjksNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hh
ciogYXJndltdKQogICAgIF9hcmdjID0gYXJnYzsKICAgICBfYXJndiA9IGFyZ3Y7CiAKLSAgICBA
YXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJE
ZWZhdWx0c10gc2V0Qm9vbDpZRVMgZm9yS2V5OkAiV2ViS2l0TGlua2VkT25PckFmdGVyRXZlcnl0
aGluZyJdOwotICAgIH0KKyAgICBbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZl
cnl0aGluZ0ZvclRlc3RpbmddOwogCiAgICAgVUlBcHBsaWNhdGlvbk1haW4oYXJnYywgKGNoYXIq
Kilhcmd2LCBAIldlYktpdFRlc3RSdW5uZXJBcHAiLCBAIldlYktpdFRlc3RSdW5uZXJBcHAiKTsK
ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL21h
aW4ubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9tYWluLm1tCmluZGV4IDA4NDBmYmVj
NWUyZjU5YzZlMTJjZjU2ZGNiMDhjNGYwYmQ0OTBhMjkuLjFjZjFlMGU3ZjU2ZjczODk3NTE5Mjcz
Mjc1NGQ1ODI2MDM5MGM0YjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFj
L21haW4ubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFpbi5tbQpAQCAtMjks
NiArMjksNyBAQAogCiAjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbXBvcnQgIlRlc3RD
b250cm9sbGVyLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KIAog
c3RhdGljIHZvaWQgc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCkKIHsK
QEAgLTQxLDEyICs0MiwxMiBAQCBzdGF0aWMgdm9pZCBzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZh
bHVlc0ZvclRlc3RpbmcoKQogICAgICAgICBAIkFwcGxlRW5hYmxlU3dpcGVOYXZpZ2F0ZVdpdGhT
Y3JvbGxzIjogQFlFUywKICAgICAgICAgQCJjb20uYXBwbGUuc3dpcGVzY3JvbGxkaXJlY3Rpb24i
OiBAMSwKICAgICAgICAgQCJjb20uYXBwbGUudHJhY2twYWQuZm9yY2VDbGljayI6IEAxLAotICAg
ICAgICBAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciOiBAWUVTLAogICAgICAgICBA
Ik5TU2Nyb2xsQW5pbWF0aW9uRW5hYmxlZCI6IEBOTywKICAgICAgICAgQCJOU092ZXJsYXlTY3Jv
bGxlcnNFbmFibGVkIjogQE5PLAogICAgICAgICBAIkFwcGxlU2hvd1Njcm9sbEJhcnMiOiBAIkFs
d2F5cyIsCiAgICAgICAgIEAiV2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIjog
QE5PLAogICAgIH07CisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmdGb3JUZXN0aW5nXTsKIAogICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdIHNldFZhbHVlc0ZvcktleXNXaXRoRGljdGlvbmFyeTpkaWN0XTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410446</attachid>
            <date>2020-10-03 16:55:41 -0700</date>
            <delta_ts>2020-10-03 17:06:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217239-20201003165540.patch</filename>
            <type>text/plain</type>
            <size>84920</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGU0MTdlZjZhNDFjMDVi
ZjIzZmEwMzIzMmUwYThmZjFjNmRkNjFlMi4uYWMyYjZhMDI4MGExYzAzZGE5NTE4MzQ0N2U1OGVk
ZmQ1MWE4MTljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEwLTAzICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkg
bGlua2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2RlIGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3Vw
cG9ydCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29h
L1ZlcnNpb25DaGVja3MuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1ZlcnNpb25DaGVja3MuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hl
Y2tzLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lv
bkNoZWNrcy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRlcik6CisgICAgICAg
ICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRl
c3RTdXBwb3J0OjpzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAg
ICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaDoKKwogMjAyMC0xMC0wMyAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ11bU29mdCBo
eXBoZW5dIE1hcmsgdGhlIGxhc3QgcnVuIG9uIHRoZSBsaW5lIHdoZW4gaHlwaGVuYXRpb24gaXMg
cmVxdWlyZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdlN2QyYmU3OTdlYmFjYmZiOWM3MzJjMGMyYzMwYmQwYmIy
NDU0ZjYuLmQ3OGFkOGZiNDdmMTYwOTlhYTVjNDZiM2I5YzhmZWQ5ODZiZjllMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjcgQEAKKzIwMjAtMTAtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVbmlmeSBsaW5rZWRPbk9yQWZ0ZXIgZHVwbGlj
YXRlIGNvZGUgYW5kIHVzZSBTUEkvV2ViQ29yZVRlc3RTdXBwb3J0IGluc3RlYWQgb2YgTlNVc2Vy
RGVmYXVsdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9pb3MvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFj
a2VySU9TLm1tOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW06CisgICAgICAgICogU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENo
ZWNrZXIubW06CisgICAgICAgIChXZWJLaXQ6OnNob3VsZFRocm93RXhjZXB0aW9uRm9yRHVwbGlj
YXRlQ29tcGxldGlvbkhhbmRsZXJDYWxsKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvRGVmYXVs
dFdlYkJyb3dzZXJDaGVja3MubW06CisgICAgICAgIChXZWJLaXQ6OmRldGVybWluZUlUUFN0YXRl
KToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFz
c2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAg
ICAgKFdLUGFnZVJlbG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sLm1tOgorICAgICAgICAoK1tXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJF
dmVyeXRoaW5nRm9yVGVzdGluZ10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbToKKyAgICAgICAgKHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxl
VVJMcyk6CisgICAgICAgIChzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IHJlbG9hZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0aENvbmZp
Z3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoZGVmYXVsdFNob3VsZERl
Y2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBp
bml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NvbXB1dGVkT2JzY3VyZWRJbnNldF0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93
ZWJfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci5tbToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciBpbnNwZWN0b3JX
S1dlYlZpZXdSZWxvYWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6aGFzU2Nyb2xsYWJsZU9yWm9vbWVkTWFpbkZy
YW1lIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmlzTWFpblRocmVh
ZE9yQ2hlY2tEaXNhYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhQ
cm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG91
bGRVc2VDb250ZXh0TWVudXNdKToKKyAgICAgICAgKGFwcGxpY2F0aW9uSXNLbm93blRvSWdub3Jl
TW91c2VFdmVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1Njcm9sbFZpZXcgX3N5c3RlbUNvbnRlbnRJbnNldF0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpkZXNr
dG9wQ2xhc3NCcm93c2luZ1JlY29tbWVuZGVkKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbToKKwogMjAyMC0xMC0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gU3VwcG9ydCBkcmF3aW5nIHRleHQgaW4g
MkQgY2FudmFzIHdpdGggZm9udCBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGYwN2IwNGE3MDIyMDVkMGZiNThkZmE3MGY4ZGE2YzQyNzkyOGIyMmUuLjEwY2Q2NThmZDll
NzQ0NDZmNWEyNGViMzA0NzYwNmEyMWRmMmFhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0xMC0wMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IGxpbmtlZE9uT3JBZnRlciBkdXBs
aWNhdGUgY29kZSBhbmQgdXNlIFNQSS9XZWJDb3JlVGVzdFN1cHBvcnQgaW5zdGVhZCBvZiBOU1Vz
ZXJEZWZhdWx0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3MjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSURlbGVnYXRlLm1tOgorICAgICAgICAo
LVtXZWJEZWZhdWx0VUlEZWxlZ2F0ZSB3ZWJWaWV3OmRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tG
b3JEcmFnZ2luZ0luZm86XSk6CisgICAgICAgICogTWlzYy9XZWJJY29uRGF0YWJhc2UubW06Cisg
ICAgICAgICgrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdKToKKyAgICAgICAg
KiBNaXNjL1dlYktpdFZlcnNpb25DaGVja3MuaDoKKyAgICAgICAgKiBNaXNjL1dlYktpdFZlcnNp
b25DaGVja3MubW06CisgICAgICAgIChXZWJLaXRMaW5rVGltZVZlcnNpb24pOgorICAgICAgICAo
bGlua2VkT25PckFmdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VzRGVmYXVsdFZhbHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFBhc3NpdmVUb3Vj
aExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
U2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyk6CisKIDIwMjAtMTAtMDEgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUg
Zm9yIEF1ZGlvV29ya2xldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNDVmMzAyMjlkZGMw
MDU5OTU2MzdiNDljNDI2YzgzZDc2ZTcyZDgzNS4uMDU4NTIzYjc3YzQ2ODMzMzM1MDdlM2VkNTY0
MzYzYWFjNjI3N2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNTEsNiArMjUxLDcg
QEAgcGxhdGZvcm0vY29jb2EvU3lzdGVtVmVyc2lvbi5tbQogcGxhdGZvcm0vY29jb2EvVGVsZXBo
b25lTnVtYmVyRGV0ZWN0b3JDb2NvYS5jcHAKIHBsYXRmb3JtL2NvY29hL1RoZW1lQ29jb2EubW0K
IHBsYXRmb3JtL2NvY29hL1VzZXJBZ2VudENvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9WZXJzaW9u
Q2hlY2tzLm1tCiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dC5tbQogcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCiBwbGF0Zm9ybS9j
b2NvYS9XZWJDb3JlQWRkaXRpb25zLm1tIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMxOGQ1YjBjOGVjNWM3ODdj
MzdmNjg0ODkxMzdjNTg0ZTAwNDFjNDEuLjdmOWQ0Mzg5MWQ2N2M0M2ViOWZkZTdjNDMxYWJlNmJl
MjRmODIyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQ4MDYsNiArNDgwNiw3IEBACiAJCURFQ0E4MDZDMUY5RkVENkEwMEUz
QjY2MSAvKiBVbmlmaWVkU291cmNlMjk5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERFQ0E3RkRBMUY5RkU5QTIwMEUzQjY2MSAvKiBVbmlmaWVkU291
cmNlMjk5LmNwcCAqLzsgfTsKIAkJREVDQTgwNkQxRjlGRUQ2QTAwRTNCNjYxIC8qIFVuaWZpZWRT
b3VyY2UzMDAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREVDQTdGQkIxRjlGRTk4MzAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UzMDAuY3BwICovOyB9
OwogCQlERjE5RTJBQzI0NzcyQkMxMDA3QkRBQ0IgLyogU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29v
a2llQmxvY2tpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERGMTlFMkFBMjQ3NzI5QTYwMDdCREFDQiAvKiBTaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCURGNEUzOEUwMjUyNzk1OTUwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjRFMzhERTI1Mjc5NTk0
MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCURGOTVCMTRBMjRGREFGRDMwMEIxRjRENyAvKiBUZXh0Q29k
ZWNDSksuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERG
OTVCMTQ4MjRGREFGRDMwMEIxRjRENyAvKiBUZXh0Q29kZWNDSksuaCAqLzsgfTsKIAkJREY5QUZE
NzIxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGOUFGRDcw
MTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgg
Ki87IH07CiAJCURGOUFGRDczMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREY5QUZENzExM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gKi87IH07CkBAIC0xNTQ2NSw2ICsxNTQ2Niw4IEBACiAJCURFQ0E3
RkY0MUY5RkU5QjkwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMjU1LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UyNTUuY3BwOyBwYXRoID0gIkRl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UyNTUuY3Bw
Ijsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJREVDQTdGRjUxRjlGRTlC
QTAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyNTYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTI1Ni5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTI1Ni5jcHAiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlERjE5RTJBQTI0NzcyOUE2MDA3QkRBQ0Ig
LyogU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREY0RTM4REMyNTI3OTU5MzAwMkE3NDgxIC8q
IFZlcnNpb25DaGVja3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBWZXJzaW9uQ2hlY2tzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjRFMzhE
RTI1Mjc5NTk0MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBWZXJzaW9uQ2hlY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURGN0U5QTI5NEM3QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9u
YXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGOTVCMTQ2MjRGREFGRDIwMEIx
RjRENyAvKiBUZXh0Q29kZWNDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVGV4dENvZGVjQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY5
NUIxNDgyNEZEQUZEMzAwQjFGNEQ3IC8qIFRleHRDb2RlY0NKSy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUZXh0Q29kZWNDSksuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTI0MTAxLDYgKzI0MTA0LDggQEAKIAkJCQkzMTBENzE5NDFCMzM1QzlEMDA5QzdCNzMg
LyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQwMDlDN0I3MyAvKiBUaGVt
ZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQwNiAvKiBVc2VyQWdlbnRD
b2NvYS5tbSAqLywKKwkJCQlERjRFMzhERTI1Mjc5NTk0MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNr
cy5oICovLAorCQkJCURGNEUzOERDMjUyNzk1OTMwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLm1t
ICovLAogCQkJCTUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci5oICovLAogCQkJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1
bGxzY3JlZW5Nb2RlbC5oICovLAogCQkJCTUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovLApAQCAtMzQzOTYsNiArMzQ0MDEsNyBA
QAogCQkJCTE1Qzc3MDhEMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRDMxNjBBRjEyQjAyNkY3MDBDMUEzNTkgLyogVmVjdG9yTWF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYxQTBDMzgyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0
YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREY0RTM4RTAyNTI3OTU5NTAwMkE3NDgxIC8qIFZlcnNp
b25DaGVja3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTI1NzE1MTI5M0MwMTAwMDdBMjYzRCAv
KiBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEMwMUM1
N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJM0ZCQzRBRjQxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1ZlcnNpb25DaGVja3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTBiYmE1Y2JjNTE4NjE5ZDE4MzIx
MjE5Y2ZiMTIyMGVmZDViMDY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmVyc2lvbkNoZWNrcy5oCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9keWxkU1BJLmg+
CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25z
L1ZlcnNpb25DaGVja3NBZGRpdGlvbnMuaD4KKyNlbHNlCisjZGVmaW5lIERZTERfSU9TX1ZFUlNJ
T05fRklSU1RfV0lUSF9JT1NfQVBQU19PTl9NQUNPUyAwCisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFNES1ZlcnNpb24gOiB1aW50MzJfdCB7CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBGaXJzdFdpdGhOZXR3b3JrQ2FjaGUgPSBEWUxEX0lPU19WRVJT
SU9OXzlfMCwKKyAgICBGaXJzdFdpdGhNZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBs
YXliYWNrID0gRFlMRF9JT1NfVkVSU0lPTl8xMF8wLAorICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNG
b3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8w
LAorICAgIEZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IgPSBEWUxEX0lPU19WRVJT
SU9OXzExXzAsCisgICAgRmlyc3RUaGF0RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21G
aWxlVVJMcyA9IERZTERfSU9TX1ZFUlNJT05fMTFfMywKKyAgICBGaXJzdFRoYXREZWZhdWx0c1Rv
UGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCA9IERZTERfSU9TX1ZFUlNJT05fMTFfMywK
KyAgICBGaXJzdFdoZXJlU2Nyb2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJbnNl
dHMgPSBEWUxEX0lPU19WRVJTSU9OXzEyXzAsCisgICAgRmlyc3RXaGVyZVVJU2Nyb2xsVmlld0Rv
ZXNOb3RBcHBseUtleWJvYXJkSW5zZXRzVW5jb25kaXRpb25hbGx5ID0gRFlMRF9JT1NfVkVSU0lP
Tl8xMl8wLAorICAgIEZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdl
UHJveHkgPSBEWUxEX0lPU19WRVJTSU9OXzEyXzAsCisgICAgRmlyc3RXaXRob3V0VW5jb25kaXRp
b25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCisg
ICAgRmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVySW5zdGFsbGF0aW9uID0gRFlMRF9JT1Nf
VkVSU0lPTl8xMl8yLAorICAgIEZpcnN0V2l0aFByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0
aW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8yLAorICAgIEZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJT
Y3JlZW5VcGRhdGVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAgIEZpcnN0V2l0aERldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkFQSSA9IERZTERfSU9TX1ZFUlNJT05fMTNf
MCwKKyAgICBGaXJzdFRoYXREZWNpZGVzUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZp
ZXcgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJl
bGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfSU9TX1ZFUlNJT05f
MTNfMCwKKyAgICBGaXJzdFdpdGhNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQgPSBEWUxE
X0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RUaGF0SGFzVUlDb250ZXh0TWVudUludGVyYWN0
aW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAgIEZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3
RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCisgICAg
Rmlyc3RUaGF0U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9uTWFpbkZyYW1lID0gRFlMRF9JT1NfVkVS
U0lPTl8xM18wLAorICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlE
ZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18yLAorICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jh
c2VVUkxTY2hlbWVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAorICAgIEZpcnN0V2l0aFNlc3Np
b25DbGVhbnVwQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAorICAgIEZpcnN0VGhh
dFNlbmRzTmF0aXZlTW91c2VFdmVudHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCisgICAgRmly
c3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhyZWFkQXNzZXJ0aW9uID0gRFlMRF9JT1NfVkVS
U0lPTl8xNF8wLAorICAgIEZpcnN0V2l0aFdLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1cm5pbmdO
aWwgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCisgICAgRmlyc3RWZXJzaW9uV2l0aGlPU0FwcHNP
bk1hY09TID0gRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9XSVRIX0lPU19BUFBTX09OX01BQ09TLAor
I2VsaWYgUExBVEZPUk0oTUFDKQorICAgIEZpcnN0V2l0aE5ldHdvcmtDYWNoZSA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTEsCisgICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNv
bXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAorICAgIEZp
cnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCA9IERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTMsCisgICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvciA9IERZ
TERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCisgICAgRmlyc3RXaXRoV2ViSWNvbkRhdGFiYXNlV2Fy
bmluZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCisgICAgRmlyc3RXaXRoTWFpblRocmVh
ZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBf
MTQsCisgICAgRmlyc3RXaXRob3V0VW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNp
b24gPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1LAorICAgIEZpcnN0V2l0aFNuYXBzaG90QWZ0
ZXJTY3JlZW5VcGRhdGVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKKyAgICBGaXJzdFdp
dGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKKyAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVp
cmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfMSwKKyAg
ICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTVfNCwKKyAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTYsCisgICAgRmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhy
ZWFkQXNzZXJ0aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNiwKKyAgICBGaXJzdFdpdGhX
S1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNiwKKyNlbmRpZgorfTsKKworZW51bSBjbGFzcyBBc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtl
ZE9uQWZ0ZXIgOiBib29sIHsgTm8sIFllcyB9OworV0VCQ09SRV9FWFBPUlQgYm9vbCBsaW5rZWRP
bk9yQWZ0ZXIoU0RLVmVyc2lvbiwgQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyID0g
QXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyOjpZZXMpOworCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVyc2lvbkNoZWNrcy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzZi
NTIwMzAxNzBmNTUyNmFkNWQxZjMzZjIwZjNiYmMyODlhZDZjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVyc2lvbkNoZWNrcy5tbQpAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlZl
cnNpb25DaGVja3MuaCIKKworI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCisj
aW1wb3J0IDxtYWNoLW8vZHlsZC5oPgorI2ltcG9ydCA8bXV0ZXg+CisjaW1wb3J0IDx3dGYvY29j
b2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitib29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uIHNka1ZlcnNpb24sIEFzc3VtZVNh
ZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciBhc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0
ZXIpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIGlzU2FmYXJpID0gV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCk7CisjZWxpZiBQTEFURk9STShN
QUMpCisgICAgYm9vbCBpc1NhZmFyaSA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFy
aSgpOworI2VuZGlmCisKKyAgICBpZiAoaXNTYWZhcmkgJiYgYXNzdW1lU2FmYXJpSXNBbHdheXNM
aW5rZWRPbkFmdGVyID09IEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6WWVzKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGF1dG8gc2RrVmVyc2lvbkFzSW50ZWdlciA9IHN0
YXRpY19jYXN0PHVpbnQzMl90PihzZGtWZXJzaW9uKTsKKyAgICByZXR1cm4gc2RrVmVyc2lvbkFz
SW50ZWdlciAmJiBhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA+PSBzZGtWZXJzaW9uQXNJbnRlZ2Vy
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5jcHAKaW5kZXggZDdkMTYzMGM5M2JlZGRmN2E4ZDU3YmU4ZmVlNDUxMDk2MDNiNjU5My4u
YjM3M2FmZjY3NjU2M2VmMDRmOTljODEyNWNjMzU0N2NmOGU2OTJhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtNDgsNiArNDgs
OCBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiVVRJUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCisjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmVUZXN0U3Vw
cG9ydCB7CkBAIC0xNDMsNiArMTQ1LDEzIEBAIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNh
dGUoYm9vbCBhbGxvd0FueVNTTENlcnRpZmljYXRlKQogICAgIEludGVybmFsU2V0dGluZ3M6OnNl
dEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93QW55U1NMQ2VydGlmaWNhdGUpOwogfQogCit2
b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1lcmljX2xp
bWl0czx1aW50MzJfdD46Om1heCgpKTsKKyNlbmRpZgorfQorCiB2b2lkIGluc3RhbGxNb2NrR2Ft
ZXBhZFByb3ZpZGVyKCkKIHsKICNpZiBFTkFCTEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oCmluZGV4IDhlNDFhMDZmZDUxYjZjNGRm
NjAwNmViMDZlODRmMDAyMDI0Yzc1YjcuLjk4OWZkNjcyNmIzMmI1YzhkNDg1ZWNhN2IxZmM5NGZj
OTgxOWUyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRl
c3RTdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1
cHBvcnQuaApAQCAtNTQsNiArNTQsNyBAQCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUo
Y29uc3QgV1RGOjpTdHJpbmcmIG5hbWUpIFRFU1RfU1VQUE9SVF9FWFBPUlQ7CiB2b2lkIGNsZWFy
QWxsTG9nQ2hhbm5lbHNUb0FjY3VtdWxhdGUoKSBURVNUX1NVUFBPUlRfRVhQT1JUOwogdm9pZCBp
bml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpIFRFU1RfU1VQUE9SVF9FWFBPUlQ7CiB2
b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wpIFRFU1RfU1VQUE9SVF9FWFBPUlQ7
Cit2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCkgVEVTVF9TVVBQ
T1JUX0VYUE9SVDsKIAogdm9pZCBpbnN0YWxsTW9ja0dhbWVwYWRQcm92aWRlcigpIFRFU1RfU1VQ
UE9SVF9FWFBPUlQ7CiB2b2lkIGNvbm5lY3RNb2NrR2FtZXBhZCh1bnNpZ25lZCBpbmRleCkgVEVT
VF9TVVBQT1JUX0VYUE9SVDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9pb3MvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VySU9TLm1tIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXJJT1MubW0KaW5kZXggMTBjMTc4ODY4NGVhODQ3MWU3ZDZhYWMwZjZkNTUxZTVm
YWUwNDY0Ny4uYTc4OTU5YmFiZmFiN2E1ZmUxNzQ3MWYxZDk3OTgxYmM3MDdmNzNiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW0KQEAg
LTI4LDcgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLSNpbXBvcnQgIlZl
cnNpb25DaGVja3MuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDgyZDQ0MjBhY2ZiYjdlZDIy
MTM5MzEwYjIyYjE3YzJkYjIwY2JmMzYuLmQzNDYxNjdmYmIyZTQxMDE5MmViZWYyNTI3ZDc4MTFh
OTNhMmI2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW5EYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0NhbGxi
YWNrQWdncmVnYXRvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIubW0KaW5kZXggMTZlNWJiZDUxZTUyNDJl
NWJhZWEwY2RlNGMxOWZhY2JlMGZhMDUzZS4uZTQ1Y2EyMWYyMjQ4ZDg0YWUwOTQxODFjMWFiYzI1
N2NmYWI5ZTAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxl
dGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tCkBAIC0yNiwxMCArMjYsMTAgQEAKICNp
bXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5o
IgogCisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPG11dGV4Pgog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmVmLmg+Ci0jaW1wb3J0ICJW
ZXJzaW9uQ2hlY2tzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02NSw3ICs2NSw3IEBA
IHN0YXRpYyBib29sIHNob3VsZFRocm93RXhjZXB0aW9uRm9yRHVwbGljYXRlQ29tcGxldGlvbkhh
bmRsZXJDYWxsKCkKICAgICBzdGF0aWMgYm9vbCBzaG91bGRUaHJvd0V4Y2VwdGlvbjsKICAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7
Ci0gICAgICAgIHNob3VsZFRocm93RXhjZXB0aW9uID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNp
b246OkZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxz
KTsKKyAgICAgICAgc2hvdWxkVGhyb3dFeGNlcHRpb24gPSBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29y
ZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25I
YW5kbGVyQ2FsbHMpOwogICAgIH0pOwogICAgIHJldHVybiBzaG91bGRUaHJvd0V4Y2VwdGlvbjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93
c2VyQ2hlY2tzLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVmYXVsdFdlYkJyb3dz
ZXJDaGVja3MubW0KaW5kZXggYzRjNjNjMTk2MGQ0NDVjMjhkOTRlZmM2Mjc0MjJiZWNiMmZmNjY4
Ny4uN2FlYWEzOTk5OWFlOWM5NGNlYTIyYTIzNjYzNGFmNmE3MzVjZTBkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0K
QEAgLTI3LDkgKzI3LDkgQEAKICNpbXBvcnQgIkRlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLmgiCiAK
ICNpbXBvcnQgIlRDQ1NQSS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCA8
V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2lt
cG9ydCA8d3RmL0hhc2hNYXAuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIGRldGVybWluZUlUUFN0
YXRlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZ19jdXJyZW50SVRQU3RhdGUgPSBJVFBTdGF0
ZTo6SW5pdGlhbGl6aW5nOwotICAgIGJvb2wgYXBwV2FzTGlua2VkT25PckFmdGVyID0gbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFNlc3Npb25DbGVhbnVwQnlEZWZhdWx0LCBB
c3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXI6Olllcyk7CisgICAgYm9vbCBhcHBXYXNM
aW5rZWRPbk9yQWZ0ZXIgPSBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmly
c3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQpOwogCiAgICAgZ19pdHBRdWV1ZSA9IGRpc3Bh
dGNoX3F1ZXVlX2NyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5pdHBDaGVja1F1ZXVlIiwgTlVMTCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFs
aXplQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6
ZUNvY29hLm1tCmluZGV4IDE0ZDI3OWY1N2ZkMzRjMDA0MGNmZjhkNjY3ZjU2MTZjNWRjMGI1NmYu
LjgzMWI4NDBlOTA1ZmI4NWRkM2MyMWY0MGQxYTFhNDc5MGNjNWFjOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbQpAQCAt
MjYsOCArMjYsOCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJLaXQySW5pdGlh
bGl6ZS5oIgogCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0
Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVj
a3MuaD4KICNpbXBvcnQgPG11dGV4PgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBv
cnQgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgSW5pdGlhbGl6ZVdl
YktpdDIoKQogICAgIC8vIE1ha2Ugc3VyZSB0aGUgaW5pdGlhbGl6YXRpb24gY29kZSBpcyBydW4g
b25seSBvbmNlIGFuZCBvbiB0aGUgbWFpbiB0aHJlYWQgc2luY2UgdGhpbmdzIGxpa2UgaW5pdGlh
bGl6ZU1haW5UaHJlYWQoKQogICAgIC8vIGFyZSBvbmx5IHNhZmUgdG8gY2FsbCBvbiB0aGUgbWFp
biB0aHJlYWQuCiAgICAgc3RkOjpjYWxsX29uY2UoZmxhZywgW10gewotICAgICAgICBpZiAoW05T
VGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbikpCisgICAgICAgIGlmIChb
TlNUaHJlYWQgaXNNYWluVGhyZWFkXSB8fCBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVy
c2lvbjo6Rmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhyZWFkQXNzZXJ0aW9uKSkKICAg
ICAgICAgICAgIHJ1bkluaXRpYWxpemF0aW9uQ29kZSgpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBkaXNwYXRjaF9zeW5jX2YoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgbnVsbHB0ciwg
cnVuSW5pdGlhbGl6YXRpb25Db2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmluZGV4IDQ2NGU5NzdkMWYzOWEyMTQ0NmEw
OTFlZjE0MjdlY2ZlODRjN2VjODQuLmFkNTJmYjVjODNkYjJkZjk2ZDliNWIyMjJlNGI3ODk5OTdj
ZDcyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRl
ICJWZXJzaW9uQ2hlY2tzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAj
aW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9GZWF0dXJlRmxhZ3NTUEkuaD4KICNpbmNsdWRlIDx3dGYv
Y29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KICNlbmRpZgpAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlz
dGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0g
bGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bh
c3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9
IGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1Rv
UGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJiZDMwNTk1MjlhZmNjOTZjZDM0NjY5NDdhNmNi
YWI5ZDU0NjcwNTEuLjY4YzQ0YjQ5MzU2ZDUzMjlhODY1ZWE4MjZmMjdiNmUzYTAzMDZiZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTM4NSw3ICszODUsNiBAQCBVSVByb2Nlc3MvQ29jb2Ev
VUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Lm1tCiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5tbQotVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3MubW0KIFVJUHJv
Y2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQYWdlUHJveHlDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94
eUNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA4
MTM0YjhmYjcxMTk4ZDYxMzA0MzcxNWIxOGI0MTIxMjI0MjE0YTZkLi5mY2JhODQ0MjlkZDg2OTNh
Y2U1YmQ5NTAxMDczZjg4YWMxMDFjNWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0jaW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVmVyc2lv
bkNoZWNrcy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMjc4LDcgKzI3OCw3IEBA
IHZvaWQgV0tQYWdlUmVsb2FkKFdLUGFnZVJlZiBwYWdlUmVmKQogewogICAgIE9wdGlvblNldDxX
ZWJDb3JlOjpSZWxvYWRPcHRpb24+IHJlbG9hZE9wdGlvbnM7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4
cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29y
ZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCiAgICAg
ICAgIHJlbG9hZE9wdGlvbnMuYWRkKFdlYkNvcmU6OlJlbG9hZE9wdGlvbjo6RXhwaXJlZE9ubHkp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KaW5kZXggMWY1NmZiZmI2Nzk1MTY0OGRmMGI0YmJkY2JmMmE1OTlkYzAw
YmRhNi4uZGFmNGJmYWRhMmI5NTI3NGIyMTYzM2JkYWU0MmYxYTM3MTcyNDBhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAg
LTU1LDYgKzU1LDcgQEAKICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CisjaW1wb3J0IDx3dGYvY29j
b2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9W
ZWN0b3JDb2NvYS5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTUxOCw2ICs1MTks
MTEgQEAgc3RhdGljIE5TRGljdGlvbmFyeSAqcG9saWNpZXNIYXNoTWFwVG9EaWN0aW9uYXJ5KGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFMKICNlbmRpZgogfQogCisrICh2b2lkKV9zZXRM
aW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZworeworICAgIHNldEFwcGxpY2F0aW9u
U0RLVmVyc2lvbihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpOworfQorCiAt
IChCT09MKV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkCiB7CiAgICAgcmV0dXJu
IF9wcm9jZXNzUG9vbC0+Y29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmgKaW5kZXggM2I5MzE0MDRhOGUyZTQzMmQ1MWM1NDk2NWUyZGVmNWY4ZWNkYzEwZC4u
MjE5NDFiMmQ0NjA3MGRhMWNhOTVmYjkwNmY4ODMyZjVhZjA0ZDhhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRl
LmgKQEAgLTExMiw2ICsxMTIsNyBAQAogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQg
YmVmb3JlIGFueSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVkLgogKyAodm9pZClf
Zm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKTsKKysgKHZvaWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKIC0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3Ll9wcmVjb25uZWN0VG9T
ZXJ2ZXIiLCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
aW5kZXggMGQ2MTc3MDUyMmNhMjQwOTNkYTMwZWM1ZGM5MmJmODg2NDgyYzJmMy4uZTJkMmYzZWVm
NTdhNmJhOGVjMGIzMzU1ZjAwN2JiZTg0NWFlNmRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC01Miw3ICs1Miw2IEBACiAjaW1wb3J0
ICJSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiU2FmZUJyb3dzaW5nV2FybmluZy5o
IgogI2ltcG9ydCAiVUlEZWxlZ2F0ZS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2lt
cG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJWaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIKQEAg
LTEyNyw2ICsxMjYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvU3RyaW5nVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
cml0aW5nTW9kZS5oPgpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93
UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2soKQogCiBzdGF0aWMgYm9vbCBzaG91bGRBbGxv
d1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogewotICAgIHN0YXRpYyBib29sIHNo
b3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246Omlz
TmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0
RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyk7CisgICAgc3RhdGljIGJv
b2wgc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0gKFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc0NhcmRpb2dyYW0oKSB8fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNOaWtlKCkpICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmly
c3RUaGF0RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyk7CiAgICAgcmV0
dXJuIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMczsKIH0KIApAQCAt
MjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9h
ZFZpZGVvKCkKIAogc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7
Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9u
T3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hl
bWVzKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0gbGlu
a2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VV
UkxTY2hlbWVzKTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsKIH0K
IApAQCAtMzEwLDcgKzMxMCw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFi
aWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAgICAgICAgIFdL
UHJvY2Vzc1Bvb2wgKnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVsYXRlZFdlYlZpZXct
Pl9jb25maWd1cmF0aW9uIHByb2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHByb2Nlc3NQb29sICYm
IHByb2Nlc3NQb29sICE9IHJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAgICAgICAgICAgICBb
TlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiUmVs
YXRlZCB3ZWIgdmlldyAlQCBoYXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25maWd1cmF0aW9uIHNw
ZWNpZmllcyBhIGRpZmZlcmVudCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVkV2ViVmlldywgcmVs
YXRlZFdlYlZpZXdQcm9jZXNzUG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbF07Ci0gICAg
ICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVd
ICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIo
V2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdz
VXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzLCBXZWJLaXQ6OkFzc3VtZVNhZmFyaUlzQWx3YXlzTGlu
a2VkT25BZnRlcjo6Tm8pKQorICAgICAgICBpZiAoW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJh
dGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAhPSBbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9y
ZV0gJiYgbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2Vw
dGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMsIFdlYkNvcmU6
OkFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6Tm8pKQogICAgICAgICAgICAgW05T
RXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIlJlbGF0
ZWQgd2ViIHZpZXcgJUAgaGFzIGRhdGEgc3RvcmUgJUAgYnV0IGNvbmZpZ3VyYXRpb24gc3BlY2lm
aWVzIGEgZGlmZmVyZW50IGRhdGEgc3RvcmUgJUAiLCByZWxhdGVkV2ViVmlldywgW3JlbGF0ZWRX
ZWJWaWV3LT5fY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSwgW19jb25maWd1cmF0aW9u
IHdlYnNpdGVEYXRhU3RvcmVdXTsKIAogICAgICAgICBbX2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vz
c1Bvb2w6cmVsYXRlZFdlYlZpZXdQcm9jZXNzUG9vbF07CkBAIC00NzgsNyArNDc4LDcgQEAgc3Rh
dGljIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhDRk5v
dGlmaWNhdGlvbkNlbnRlclJlZiwKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMo
KS0+c2V0QWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKHNob3VsZEFsbG93U2V0
dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcygpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
cHJlZmVyZW5jZXMoKS0+c2V0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9v
a1ByZXZpZXcoISFbX2NvbmZpZ3VyYXRpb24gX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRp
bmdRdWlja0xvb2tQcmV2aWV3XSk7CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAg
ICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNlT3JpZW50YXRpb25Q
ZXJtaXNzaW9uQVBJRW5hYmxlZChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpG
aXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25BUEkpKTsKKyAgICBw
YWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2aWNlT3JpZW50YXRpb25QZXJt
aXNzaW9uQVBJRW5hYmxlZChsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmly
c3RXaXRoRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYK
ICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVu
Y2VzKCktPnNldFN5c3RlbVByZXZpZXdFbmFibGVkKCEhW19jb25maWd1cmF0aW9uIF9zeXN0ZW1Q
cmV2aWV3RW5hYmxlZF0pOwpAQCAtNTI2LDcgKzUyNiw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJl
S2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJS
ZWYsCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNlcnZpY2VXb3Jr
ZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZyghIVtfY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10uX3NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZyk7CiAjZW5k
aWYKIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RX
aGVyZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVTaXRlU3BlY2lmaWNR
dWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KSkKICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnBy
ZWZlcmVuY2VzKCktPnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGZhbHNlKTsKIH0KIApAQCAt
NzgwLDcgKzc4MCw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlD
aGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAtIChXS05hdmlnYXRpb24g
KilyZWxvYWQKIHsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRP
cHRpb25zOwotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJz
dFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVy
KFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3Ip
KQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4cGly
ZWRPbmx5KTsKIAogICAgIHJldHVybiB3cmFwcGVyKF9wYWdlLT5yZWxvYWQocmVsb2FkT3B0aW9u
cykpOwpAQCAtMTAyNCw3ICsxMDI0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBuc0Vy
cm9yRnJvbUV4Y2VwdGlvbkRldGFpbHMoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGUKICAgICAg
ICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFzbmFw
c2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVy
KFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMp
KSB7CisgICAgaWYgKChzbmFwc2hvdENvbmZpZ3VyYXRpb24gJiYgIXNuYXBzaG90Q29uZmlndXJh
dGlvbi5hZnRlclNjcmVlblVwZGF0ZXMpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CiAgICAgICAg
IGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggOTM2ZDJhNjMzNmI5MDk2ZjA2MzIwYTgwOWUyODg0ZTk4MWQyNzRhMC4u
MmVlY2UxNjM2YzBmNTBmMGU4MTk1ODQ5NGZlMjYxNTA5NDc5OTcyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KQEAgLTI4LDcgKzI4LDYgQEAKIAogI2ltcG9ydCAiQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgotI2ltcG9ydCAiVmVyc2lvbkNo
ZWNrcy5oIgogI2ltcG9ydCAiV0tQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiV0tQcm9jZXNzUG9v
bC5oIgogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKQEAgLTQ1LDYgKzQ0LDcgQEAKICNpbXBvcnQg
Il9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
I2ltcG9ydCA8d3RmL1VSTFBhcnNlci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CkBA
IC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIF9XS0RyYWdMaWZ0RGVsYXkgdG9EcmFnTGlmdERlbGF5
KE5TVUludGVnZXIgdmFsdWUpCiBzdGF0aWMgYm9vbCBkZWZhdWx0U2hvdWxkRGVjaWRlUG9saWN5
QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogewogI2lmIFVTRShRVUlDS19MT09LKQot
ICAgIHN0YXRpYyBib29sIHNob3VsZERlY2lkZSA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNE
S1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJl
dmlldyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVyKFdl
YkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVp
Y2tMb29rUHJldmlldyk7CiAgICAgcmV0dXJuIHNob3VsZERlY2lkZTsKICNlbHNlCiAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGRE
ZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiAKICAgICBfbWVkaWFE
YXRhTG9hZHNBdXRvbWF0aWNhbGx5ID0gTk87CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCi0gICAg
aWYgKFdlYktpdDo6bGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRo
TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCisgICAgaWYgKFdlYkNv
cmU6OmxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhNZWRpYVR5
cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKICAgICAgICAgX21lZGlhVHlwZXNS
ZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlQXVk
aW87CiAgICAgZWxzZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA3Mzc0Y2JlOTMwNjY3MjU2
Mjc0NjQ4YzQ0MDQ3YTdkN2ViOTZhNGIwLi5jMmRiNGEwNGQzNzhmMjRmZGQ1ZTYzMGYxNWIyOTNi
ZjZiZTAxY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQgIkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgogI2ltcG9ydCAiQ29tcGxl
dGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0
aXN0aWNzLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29r
aWVTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKICNpbXBvcnQgIldLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgpAQCAtNDUsNiArNDQsNyBAQAogI2ltcG9ydCAi
X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NyZWRlbnRp
YWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVnaXN0cmF0aW9uRGF0YWJhc2UuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1w
b3J0IDx3dGYvVVJMLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KQEAgLTExOCw3ICsx
MTgsNyBAQCBwcml2YXRlOgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotICAgIGlmIChXZWJL
aXQ6OmxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aFdLV2Vic2l0
ZURhdGFTdG9yZUluaXRSZXR1cm5pbmdOaWwpKQorICAgIGlmIChXZWJDb3JlOjpsaW5rZWRPbk9y
QWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5p
dFJldHVybmluZ05pbCkpCiAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0dlbmVyaWNFeGNl
cHRpb24gZm9ybWF0OkAiQ2FsbGluZyBbV0tXZWJzaXRlRGF0YVN0b3JlIGluaXRdIGlzIG5vdCBz
dXBwb3J0ZWQuIl07CiAgICAgCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IGU1
MDY3NmUzNDZjNzYwM2FmM2FiYTJkNjg4ZGNlZjgyYjBmNDU4MzIuLjFhZTdhZTA5ZmYyNGFkY2M4
NzE1ODdiOTEwY2QzYTY2MjUxMmY4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0zMyw3ICszMyw2IEBACiAjaW1wb3J0ICJSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVT
Y3JvbGxpbmdQZXJmb3JtYW5jZURhdGEuaCIKICNpbXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaCIKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVy
LmgiCiAjaW1wb3J0ICJXS0JhY2tGb3J3YXJkTGlzdEl0ZW1JbnRlcm5hbC5oIgpAQCAtNTQsNiAr
NTMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBl
UmVnaXN0cnkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFw
aGljc1NlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KQEAg
LTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMgV2ViQ29yZTo6Q29sb3Igc2Nyb2xsVmlld0JhY2tncm91
bmRDb2xvcihXS1dlYlZpZXcgKndlYlZpZXcpCiAKIC0gKFVJRWRnZUluc2V0cylfY29tcHV0ZWRP
YnNjdXJlZEluc2V0CiB7Ci0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJz
aW9uOjpGaXJzdFdoZXJlU2Nyb2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJbnNl
dHMpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmly
c3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzKSkgewog
ICAgICAgICAvLyBGb3IgYmluYXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQgcGFydHkgYXBwcywg
dHJlYXQgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5nIGluc2V0cyB3aGVu
IHRoZSBhcHAgaXMgY29tcGlsZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdlYktpdCB2ZXJzaW9u
IHdpdGhvdXQgdGhlIGZpeCBpbiByMjI5NjQxLgogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbXB1
dGVkQ29udGVudEluc2V0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1dlYlZpZXdNYWMubW0KaW5kZXggZmIyN2E2YTQ0NzY0MWYyYmZhZTY0OGMxNjNhYTQyMzlhMjQz
N2Q0Yi4uNDc3NWUwZTM2N2E5ODI4MGE4NjQ0ODZjZmM0MTY3MWRiZTZkYzk1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTI5LDcg
KzI5LDYgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFwcEtpdFNQSS5oIgotI2lt
cG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiV0tDb250ZW50Vmlld01hYy5oIgogI2lt
cG9ydCAiV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJXS1Njcm9sbFZpZXdNYWMu
aCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCiAjaW1wb3J0ICJf
V0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tIaXRUZXN0UmVzdWx0SW50ZXJu
YWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNUZXh0RmluZGVyU1BJLmg+CiAKIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZSB0b0FQ
SVNjcm9sbGJhclN0eWxlKE9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4g
Y29yZVNjcm9sbGJhclN0eWxlKQpAQCAtMTE1Niw3ICsxMTU2LDcgQEAgQUxMT1dfREVQUkVDQVRF
RF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdn
aW5nSW5mbzopXSkKICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpkcmFnZ2luZ0luZm9dOwogCi0g
ICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdpdGhEcm9w
VG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVy
KFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5
RGVmYXVsdCkpCiAgICAgICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIAog
ICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XS0RyYWdEZXN0aW5hdGlv
bkFjdGlvbkxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9W
ZXJzaW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WZXJzaW9uQ2hl
Y2tzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5MjY1OGMxZTJkM2RlNjU3Mzkw
ZjU2ZTVlMzEzYzM3MTA4ZjhjZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5o
CisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KLQotI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvVmVyc2lvbkNoZWNr
c0FkZGl0aW9ucy5oPgotI2Vsc2UKLSNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9XSVRI
X0lPU19BUFBTX09OX01BQ09TIDAKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotZW51
bSBjbGFzcyBTREtWZXJzaW9uIDogdWludDMyX3QgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgRmlyc3RXaXRoTmV0d29ya0NhY2hlID0gRFlMRF9JT1NfVkVSU0lPTl85XzAsCi0gICAg
Rmlyc3RXaXRoTWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IERZTERf
SU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29t
cGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwKLSAgICBGaXJzdFdp
dGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8wLAotICAg
IEZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxE
X0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExp
c3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaGVy
ZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzID0gRFlMRF9JT1Nf
VkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2hlcmVVSVNjcm9sbFZpZXdEb2VzTm90QXBwbHlLZXli
b2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBG
aXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5ID0gRFlMRF9J
T1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxT
YW5kYm94RXh0ZW5zaW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aExh
enlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwK
LSAgICBGaXJzdFdpdGhQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IERZTERfSU9T
X1ZFUlNJT05fMTJfMiwKLSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9
IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvblBlcm1pc3Npb25BUEkgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RU
aGF0RGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3ID0gRFlMRF9JT1Nf
VkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NV
c2luZ0RpZmZlcmVudERhdGFTdG9yZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmly
c3RXaXRoTW9kZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8x
M18wLAotICAgIEZpcnN0VGhhdEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IERZTERfSU9T
X1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdoZXJlV0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlk
ZUtleUNvbW1hbmRzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdFN1cHBv
cnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAg
ICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERf
SU9TX1ZFUlNJT05fMTNfMiwKLSAgICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9
IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVm
YXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFRoYXRTZW5kc05hdGl2ZU1v
dXNlRXZlbnRzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aEluaXRpYWxp
emVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAg
ICBGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9JT1Nf
VkVSU0lPTl8xNF8wLAotICAgIEZpcnN0VmVyc2lvbldpdGhpT1NBcHBzT25NYWNPUyA9IERZTERf
SU9TX1ZFUlNJT05fRklSU1RfV0lUSF9JT1NfQVBQU19PTl9NQUNPUywKLSNlbGlmIFBMQVRGT1JN
KE1BQykKLSAgICBGaXJzdFdpdGhOZXR3b3JrQ2FjaGUgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEw
XzExLAotICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxl
ckNhbGxzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKLSAgICBGaXJzdFdpdGhEcm9wVG9O
YXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAot
ICAgIEZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IgPSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQ
YWdlUHJveHkgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVu
Y29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNSwKLSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRX
ZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBf
MTUsCi0gICAgRmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQg
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1XzEsCi0gICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFz
ZVVSTFNjaGVtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1XzQsCi0gICAgRmlyc3RXaXRo
U2Vzc2lvbkNsZWFudXBCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAotICAg
IEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJl
dHVybmluZ05pbCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0jZW5kaWYKLX07Ci0KLWVu
dW0gY2xhc3MgQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKLWJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24sIEFzc3VtZVNhZmFyaUlzQWx3
YXlzTGlua2VkT25BZnRlciA9IEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6WWVz
KTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lv
bkNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3Mu
bW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkZDY1MzcwYzhlNGRkNDQ0MGJlZDhi
ZjdhNjI5OGVlYzZlZjQwOTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbQor
KysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
ImNvbmZpZy5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgotCi0jaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgotI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KLSNp
bXBvcnQgPG11dGV4PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RhdGljIE5TU3RyaW5nICog
Y29uc3QgV2ViS2l0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0tleSA9IEAiV2ViS2l0TGlua2Vk
T25PckFmdGVyRXZlcnl0aGluZyI7Ci0KLWJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24g
c2RrVmVyc2lvbiwgQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyIGFzc3VtZVNhZmFy
aUlzQWx3YXlzTGlua2VkT25BZnRlcikKLXsKLSAgICBzdGF0aWMgYm9vbCBsaW5rZWRPbk9yQWZ0
ZXJFdmVyeXRoaW5nID0gZmFsc2U7Ci0gICAgc3RhdGljIGJvb2wgaXNTYWZhcmkgPSBmYWxzZTsK
LSAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNl
LCBbXSB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgaWYgKFdlYkNvcmU6OklP
U0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpKQotICAgICAgICAgICAgaXNTYWZhcmkgPSB0
cnVlOwotI2VsaWYgUExBVEZPUk0oTUFDKQotICAgICAgICBpZiAoV2ViQ29yZTo6TWFjQXBwbGlj
YXRpb246OmlzU2FmYXJpKCkpCi0gICAgICAgICAgICBpc1NhZmFyaSA9IHRydWU7Ci0jZW5kaWYK
LQotICAgICAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9v
bEZvcktleTpXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nS2V5XSkKLSAgICAgICAgICAg
IGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcgPSB0cnVlOwotICAgIH0pOwotCi0gICAgaWYgKFVO
TElLRUxZKGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcpKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIGlmIChpc1NhZmFyaSAmJiBhc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIg
PT0gQXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyOjpZZXMpCi0gICAgICAgIHJldHVy
biB0cnVlOwotCi0gICAgYXV0byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0gc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KHNka1ZlcnNpb24pOwotICAgIHJldHVybiBzZGtWZXJzaW9uQXNJbnRlZ2VyICYmIGR5
bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKSA+PSBzZGtWZXJzaW9uQXNJbnRlZ2VyOwotfQot
Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQppbmRleCA4NDcyYWU5MjAyMmViZWQwZjRhZDdlMTI0OTQ2YzgwZTAxNWY2MTJk
Li4xNzMyMmQ2M2MwNTg4ZmZiZjJiMzk1YmQwNThkMTUwNDlmNWRhM2RjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAg
LTM5LDcgKzM5LDYgQEAKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRl
eHRDaGVja2VyLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKLSNpbXBvcnQgIlZl
cnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVy
bmFsLmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1v
cnlQcmVzc3VyZUhhbmRsZXIuaCIKQEAgLTYwLDE1ICs1OSwxNSBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KLSNpbXBvcnQgPHBh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgotI2ltcG9ydCA8cGFsL2NvY29hL01lZGlhVG9vbGJv
eFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9y
dCA8c3lzL3BhcmFtLmg+CiAjaW1wb3J0IDx3dGYvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8d3Rm
L1Byb2Nlc3NQcml2aWxlZ2UuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9y
dCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94
U1BJLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9keWxkU1BJLmg+CiAKQEAgLTkyLDYgKzkx
LDkgQEAKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2VuZGlmCiAKKyNpbXBv
cnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL2NvY29hL01lZGlh
VG9vbGJveFNvZnRMaW5rLmg+CisKIE5TU3RyaW5nICpXZWJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5RGVmYXVsdHNLZXkgPSBAIldlYlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3RvcnkiOwogTlNTdHJpbmcgKldlYktpdExvY2FsQ2FjaGVEZWZhdWx0c0tleSA9IEAiV2Vi
S2l0TG9jYWxDYWNoZSI7CiBOU1N0cmluZyAqV2ViS2l0SlNDSklURW5hYmxlZERlZmF1bHRzS2V5
ID0gQCJXZWJLaXRKU0NKSVRFbmFibGVkRGVmYXVsdHNLZXkiOwpAQCAtMzQ3LDcgKzM0OSw3IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3Qg
V2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVSZXNvdXJj
ZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5LCBwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICBwYXJhbWV0ZXJz
LnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIo
KTsKLSAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBkeWxkX2dldF9wcm9ncmFt
X3Nka192ZXJzaW9uKCk7CisgICAgcGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uID0gYXBw
bGljYXRpb25TREtWZXJzaW9uKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlm
ICghbV9yZXNvbHZlZFBhdGhzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQpAQCAt
NDkwLDcgKzQ5Miw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1
bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKLSAgICBwYXJh
bWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9u
KCk7CisgICAgcGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uID0gYXBwbGljYXRpb25TREtW
ZXJzaW9uKCk7CiAKICAgICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVs
dHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXIubW0KaW5kZXggMzNiNThmMmFmMzM2Y2ZhZjFhY2U0YWU4MzhlYmQyMWJkN2RjOGFmNy4uMWVh
YTk0M2YyN2EyN2Q2N2M2MTFmZjZkNmZiYmYzNjE2MmJmNzE5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjksNyArMjksNiBAQAogI2lmIFBMQVRGT1JNKE1BQykK
IAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgog
I2ltcG9ydCAiV0tGcmFtZUluZm8uaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yV0tXZWJWaWV3Lmgi
CiAjaW1wb3J0ICJXS05hdmlnYXRpb25BY3Rpb24uaCIKQEAgLTQzLDYgKzQyLDcgQEAKICNpbXBv
cnQgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMu
aCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hl
Y2tzLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIAogQGludGVyZmFjZSBXS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyICgpIDxXS1VJRGVsZWdhdGUsIFdLTmF2aWdhdGlvbkRlbGVnYXRl
LCBXS0luc3BlY3RvcldLV2ViVmlld0RlbGVnYXRlPgpAQCAtMjUyLDcgKzI1Miw3IEBACiAgICAg
ICAgIHJldHVybjsKIAogICAgIE9wdGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IHJlbG9h
ZE9wdGlvbnM7Ci0gICAgaWYgKFdlYktpdDo6bGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVy
c2lvbjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKFdlYkNv
cmU6OmxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVk
T25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6
UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2Fk
KHJlbG9hZE9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwCmluZGV4IDhlZGRiMTVmOGYzNDIzOWQyNTA0OTlhOGM0YWY4NzVmMDVkZjNm
NzkuLjEyNWY1ZjFiY2RjMGUwM2JjNTliNTRjOTM3YzQzZGY5NzIzYWYwYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTMzLDcgKzMz
LDYgQEAKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUg
IlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiVmVyc2lvbkNoZWNr
cy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkBAIC00
Miw2ICs0MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVBvc2l0aW9uZWRO
b2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVRyZWUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSgpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYg
KFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFm
dGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9u
TWFpbkZyYW1lKSkKKyAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRXZlbnRicml0
ZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0U3Vw
cG9ydHNPdmVyZmxvd0hpZGRlbk9uTWFpbkZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMWIw
ZTJiZGZlZWZmOTQ1OGEzNmY5M2ViYmFmYzc1MDFlYmRhYTQzMS4uYjdiODE3NWNmMDM1ZWRlMDhl
ZTE0OTVmNGMzNjc1ODMxNmJkOGQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0yMDYsMTMgKzIwNiwxMyBAQAogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQ
ZXJmb3JtYW5jZURhdGEuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgiCi0jaW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUJh
dHRlcnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdo
dC5oPgogI2luY2x1ZGUgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KICNlbmRpZgpAQCAtMTI0
OCw3ICsxMjQ4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1heWJlSW5pdGlhbGl6ZVNhbmRib3hF
eHRlbnNpb25IYW5kbGUoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXMKICAgICB9CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdp
dGhvdXRVbmNvbmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbikpCisgICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0VW5jb25kaXRp
b25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQogICAgICAgICB3aWxsQWNxdWlyZVVuaXZl
cnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihwcm9jZXNzKTsKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMTc3OGUyMzJiNmVlOTFh
OTZhNzNjMzQxZjVlN2NkMTZkMjNkYTM2ZS4uYzNjYjg5NzZkOGRhMjVhNDllZjlhZTJkNWMxODlm
OGRhZTgxYTBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cApAQCAtMTI2LDExICsxMjYsMTEgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUg
IkRlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLmgiCi0jaW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0hJREdhbWVwYWRQcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTXVs
dGlHYW1lcGFkUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bvd2VyU291cmNlTm90aWZp
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oTUFDKQpAQCAtMTAyOSw3ICsxMDI5LDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2Vi
UHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVmPEFQ
SToKIAogICAgIGJvb2wgZW5hYmxlUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBw
YWdlLT5wcmVmZXJlbmNlcygpLnByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uRW5hYmxl
ZCgpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0ZpcmVmb3goKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lv
bjo6Rmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24pKQorICAgIGlmIChX
ZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNGaXJlZm94KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihX
ZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdh
dGlvbikpCiAgICAgICAgIGVuYWJsZVByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uID0g
ZmFsc2U7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggYmViNmE2MWU2NGI3OTRhNTBiMjJhY2E3ZjEwYTM5MjhjNDVlNTIzNi4uNWFj
ZDRiMzBhZTNjYzIxNWIxOTRhZDliYmZjNjYyZmZjNWYyNGNkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC03Niw3ICs3Niw3IEBACiAjaW5jbHVk
ZSAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW5jbHVkZSAiUERGUGx1Z2luLmgiCiAjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgotI2luY2x1ZGUgIlZlcnNpb25DaGVja3Mu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oTUFDKQpAQCAtMTAwLDkgKzEwMCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
c3RhdGljIGJvb2wgaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkKIHsKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIHJldHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3Nl
cnRpb25JbldlYlBhZ2VQcm94eSk7CisgICAgcmV0dXJuIExJS0VMWShSdW5Mb29wOjppc01haW4o
KSkgfHwgIWxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhNYWlu
VGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKICNlbGlmIFBMQVRGT1JNKE1B
QykKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQ
YWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5r
ZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWFpblRocmVhZFJlbGVh
c2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSk7CiAjZWxzZQogICAgIHJldHVybiBSdW5Mb29wOjpp
c01haW4oKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbQppbmRleCA2MDVhMzc5MWFjNzcwMjMzMjA1MWZjZTNkNzNlZDc0NmI2ZjdhYzkwLi5m
OTZiMzAyM2JmZThlNGNkNTMxMDI3M2YwNGUxYjhhZWM2MTZiY2U3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMzksNyArMzksNiBAQAogI2lt
cG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKLSNpbXBvcnQg
IlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcklu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwUHJpdmF0ZS5oIgogI2lt
cG9ydCAiV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3LmgiCkBAIC02Myw2ICs2Miw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1F1aXJrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmVsb2NpdHlEYXRhLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPG9iamMvbWVzc2FnZS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9jb2NvYS9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvUXVhcnR6Q29yZVNQSS5oPgpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBOU0FycmF5
ICprZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJub3RlKGlkIHNlbGYsIFNFTCBfY21k
KQogICAgIFtzZWxmIGFkZFN1YnZpZXc6X2ZpeGVkQ2xpcHBpbmdWaWV3LmdldCgpXTsKICAgICBb
X2ZpeGVkQ2xpcHBpbmdWaWV3IGFkZFN1YnZpZXc6X3Jvb3RDb250ZW50Vmlldy5nZXQoKV07CiAK
LSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aExh
enlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbikpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0
ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVySW5z
dGFsbGF0aW9uKSkKICAgICAgICAgW3NlbGYgc2V0VXBJbnRlcmFjdGlvbl07CiAgICAgW3NlbGYg
c2V0VXNlckludGVyYWN0aW9uRW5hYmxlZDpZRVNdOwogCkBAIC0yMTIsNyArMjEyLDcgQEAgc3Rh
dGljIE5TQXJyYXkgKmtleUNvbW1hbmRzUGxhY2Vob2xkZXJIYWNrRm9yRXZlcm5vdGUoaWQgc2Vs
ZiwgU0VMIF9jbWQpCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfc2NyZWVuQ2FwdHVyZWREaWRDaGFu
Z2U6KSBuYW1lOlVJU2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0OltV
SVNjcmVlbiBtYWluU2NyZWVuXV07CiAKICNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05T
KQotICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlV0tDb250ZW50Vmlld0Rv
ZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzKSkKKyAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRp
b246OmlzRXZlcm5vdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246
OkZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMpKQogICAg
ICAgICBjbGFzc19hZGRNZXRob2Qoc2VsZi5jbGFzcywgQHNlbGVjdG9yKGtleUNvbW1hbmRzKSwg
cmVpbnRlcnByZXRfY2FzdDxJTVA+KCZrZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJu
b3RlKSwgbWV0aG9kX2dldFR5cGVFbmNvZGluZyhjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChzZWxm
LmNsYXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpKSkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDY0MGE1YTRjZTUxZjY1ODIxYzgyNTUwOGQ2ZWFlYmU4ZjgwODE4ODMuLjY5YWI2YmRj
NTk0MTViMDU3ZDhjN2E5Yzk3YmFmYjY3OWMwNWU5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDQs
NyArNDQsNiBAQAogI2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5o
IgogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tz
LmgiCiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0QXNzaXN0YW50LmgiCiAjaW1wb3J0ICJXS0NvbnRl
eHRNZW51RWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tDb250ZXh0TWVudUVsZW1l
bnRJbmZvUHJpdmF0ZS5oIgpAQCAtMTE3LDYgKzExNiw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Rl
eHRJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbXBvcnQg
PFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CkBAIC03
MDk4LDcgKzcwOTgsNyBAQCBzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9yaWdpbnNNYXRj
aE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0CiAtIChCT09MKV9zaG91bGRV
c2VDb250ZXh0TWVudXMKIHsKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVY
VE1FTlUpCi0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZp
cnN0VGhhdEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAgcmV0dXJuIGxpbmtlZE9u
T3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb24pOwogI2VuZGlmCiAgICAgcmV0dXJuIE5POwogfQpAQCAtODU2Nyw3ICs4NTY3LDcg
QEAgc3RhdGljIEJPT0wgYXBwbGljYXRpb25Jc0tub3duVG9JZ25vcmVNb3VzZUV2ZW50cyhjb25z
dCBjaGFyKiAmd2FybmluZ1ZlcnNpb24pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQogCi0g
ICAgaWYgKCFXZWJLaXQ6OmxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0
VmVyc2lvbldpdGhpT1NBcHBzT25NYWNPUykpIHsKKyAgICBpZiAoIVdlYkNvcmU6OmxpbmtlZE9u
T3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFj
T1MpKSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNGSUZBQ29tcGFu
aW9uKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzY3MDkzNDg3PgogICAgICAgICAgICAgfHwgV2ViQ29y
ZTo6SU9TQXBwbGljYXRpb246OmlzTm9nZ2luKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzY0ODMwMzM1
PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzT0tDdXBpZCgpIC8v
IDxyZGFyOi8vcHJvYmxlbS82NTY5ODQ5Nj4KQEAgLTg1NzksNyArODU3OSw3IEBAIHN0YXRpYyBC
T09MIGFwcGxpY2F0aW9uSXNLbm93blRvSWdub3JlTW91c2VFdmVudHMoY29uc3QgY2hhciogJndh
cm5pbmdWZXJzaW9uKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFXZWJLaXQ6Omxpbmtl
ZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VF
dmVudHMpKSB7CisgICAgaWYgKCFXZWJDb3JlOjpsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RUaGF0U2VuZHNOYXRpdmVNb3VzZUV2ZW50cykpIHsKICAgICAgICAgaWYg
KFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1BvY2tldENpdHkoKSAvLyA8cmRhcjovL3Byb2Js
ZW0vNjIyNzMwNzc+CiAgICAgICAgICAgICB8fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNF
c3NlbnRpYWxTa2VsZXRvbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82MjY5NDUxOT4KICAgICAgICAg
ICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0VTUE5GYW50YXN5U3BvcnRzKCkgLy8g
PHJkYXI6Ly9wcm9ibGVtLzY0NjcxNTQzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S1Njcm9sbFZpZXcubW0KaW5kZXggYTg2YTRiZWY5NzBjNmI2ZmU1MmM3NTZlMWY4MDk1Zjc4MmZh
NDg0YS4uYzBlZmZmYmRmOWQwMDYxZjE3NjdlM2MxZjhjMzJmYjdlMDk5OGI1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCkBAIC0yOSw5ICsyOSw5IEBA
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKLSNpbXBv
cnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIuaCIKICNpbXBvcnQgIldLV2ViVmlld0lPUy5oIgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9u
Q2hlY2tzLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9y
dCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKQEAgLTM3OSw3ICszNzksNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgdmFsdWVzQXJlV2l0aGluT25lUGl4ZWwoQ0dGbG9hdCBhLCBDR0Zsb2F0IGIpCiAgICAg
Ly8gdG8gaW5jbHVkZSBrZXlib2FyZCBpbnNldHMgaW4gdGhlIHN5c3RlbUNvbnRlbnRJbnNldC4g
V2UgYWx3YXlzIHdhbnQKICAgICAvLyBrZXlib2FyZCBpbnNldHMgYXBwbGllZCwgZXZlbiB3aGVu
IHdlYiBjb250ZW50IGhhcyBjaG9zZW4gdG8gZGlzYWJsZSBhdXRvbWF0aWMKICAgICAvLyBzYWZl
IGFyZWEgaW5zZXQgYWRqdXN0bWVudC4KLSAgICBpZiAobGlua2VkT25PckFmdGVyKFdlYktpdDo6
U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVVJU2Nyb2xsVmlld0RvZXNOb3RBcHBseUtleWJvYXJkSW5z
ZXRzVW5jb25kaXRpb25hbGx5KSAmJiBzZWxmLmNvbnRlbnRJbnNldEFkanVzdG1lbnRCZWhhdmlv
ciA9PSBVSVNjcm9sbFZpZXdDb250ZW50SW5zZXRBZGp1c3RtZW50TmV2ZXIpCisgICAgaWYgKGxp
bmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3
RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVu
dEluc2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVz
dG1lbnROZXZlcikKICAgICAgICAgc3lzdGVtQ29udGVudEluc2V0LmJvdHRvbSArPSBfa2V5Ym9h
cmRCb3R0b21JbnNldEFkanVzdG1lbnQ7CiAKICAgICByZXR1cm4gc3lzdGVtQ29udGVudEluc2V0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5k
ZXggZjM3YTc2Zjg5NzNiOGI0OGUwNDdhYmZhZWU3OGQyZTRhODZmNDEyNS4uNGM0M2M1YjhjMjli
Y2YxNDE1NWJlMDhkYWM0NjcwMjkzOTNkMDMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC01Miw3ICs1Miw2IEBACiAjaW1wb3J0ICJV
SUtpdFNQSS5oIgogI2ltcG9ydCAiVXNlckRhdGEuaCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJ
ZGlvbS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgpAQCAt
NzAsNiArNjksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVXNlckFnZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8cGFsL3NwaS9p
b3MvTW9iaWxlR2VzdGFsdFNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgog
CkBAIC0xNDU0LDcgKzE0NTQsNyBAQCBzdGF0aWMgYm9vbCBkZXNrdG9wQ2xhc3NCcm93c2luZ1Jl
Y29tbWVuZGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdQogICAgICAgICAv
LyBXaGlsZSBkZXNrdG9wLWNsYXNzIGJyb3dzaW5nIGlzIHN1cHBvcnRlZCBvbiBhbGwgaVBhZCBt
b2RlbHMsIGl0IGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgaVBhZCBtaW5pLgogICAgICAgICBhdXRv
IHNjcmVlbkNsYXNzID0gTUdHZXRTSW50MzJBbnN3ZXIoa01HUU1haW5TY3JlZW5DbGFzcywgTUdT
Y3JlZW5DbGFzc1BhZDIpOwogICAgICAgICBzaG91bGRSZWNvbW1lbmREZXNrdG9wQ2xhc3NCcm93
c2luZyA9IHNjcmVlbkNsYXNzICE9IE1HU2NyZWVuQ2xhc3NQYWQzICYmIHNjcmVlbkNsYXNzICE9
IE1HU2NyZWVuQ2xhc3NQYWQ0ICYmIGRlc2t0b3BDbGFzc0Jyb3dzaW5nU3VwcG9ydGVkKCk7Ci0g
ICAgICAgIGlmIChpZ25vcmVTYWZlZ3VhcmRzID09IElnbm9yZUFwcENvbXBhdGliaWxpdHlTYWZl
Z3VhcmRzOjpObyAmJiAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RX
aXRoTW9kZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0KSkgeworICAgICAgICBpZiAoaWdub3Jl
U2FmZWd1YXJkcyA9PSBJZ25vcmVBcHBDb21wYXRpYmlsaXR5U2FmZWd1YXJkczo6Tm8gJiYgIWxp
bmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhNb2Rlcm5Db21wYWJp
bGl0eU1vZGVCeURlZmF1bHQpKSB7CiAgICAgICAgICAgICAvLyBPcHQgb3V0IGFwcHMgdGhhdCBo
YXZlbid0IHlldCBidWlsdCBhZ2FpbnN0IHRoZSBpT1MgMTMgU0RLIHRvIGxpbWl0IGFueSBpbmNv
bXBhdGliaWxpdGllcyBhcyBhIHJlc3VsdCBvZiBlbmFibGluZyBkZXNrdG9wLWNsYXNzIGJyb3dz
aW5nIGJ5IGRlZmF1bHQgaW4KICAgICAgICAgICAgIC8vIFdLV2ViVmlldyBvbiBhcHByb3ByaWF0
ZWx5LXNpemVkIGlQYWQgbW9kZWxzLgogICAgICAgICAgICAgc2hvdWxkUmVjb21tZW5kRGVza3Rv
cENsYXNzQnJvd3NpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRhYmFmMjY4NzMyMTRiYzY5NjI1NTAwNDgzZGIxN2Zm
YmI0NDc4ZTcuLjdlYjFjMzU0YmQ2MWI3NjZmZmE3NDBhZWVmYjRjZTU5OGQ3NTZlYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTgy
MSw3ICsxODIxLDYgQEAKIAkJRTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNo
ZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNDlENDBENjFBRDNGQjE3MDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2Uu
aCAqLzsgfTsKIAkJRTRENTREMDQyMUYxRDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0MEMxRjkzMjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggKi87IH07CiAJCUU0RTU3RjZCMjFBODNCMTIw
MDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU1N0Y2QTIxQTgzQjExMDAzNDVGM0MgLyogUmVtb3Rl
TGF5ZXJUcmVlTm9kZS5oICovOyB9OwotCQlFNEU4NjQ5MzFCMTY3NTA3MDBDODJGNDAgLyogVmVy
c2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLzsgfTsKIAkJ
RTUyQ0Y1NTIyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1NTAy
MEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovOyB9Owog
CQlFNTQ4RUJEMTIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NDhFQkNGMjEwMTVGMEUw
MEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5oICovOyB9OwogCQlFNTVDRDFGNTI0Q0Y3NDdE
MDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDFGMzI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0
ZVRpbWVDaG9vc2VyLmggKi87IH07CkBAIC01MzI3LDggKzUzMjYsNiBAQAogCQlFNDlENDBEODFB
RDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2ODIxQTgzQjAzMDAzNDVGM0MgLyog
UmVtb3RlTGF5ZXJUcmVlTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQwIC8qIFZl
cnNpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmVyc2lvbkNo
ZWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNEU4NjQ4RjFCMTY3M0ZCMDBD
ODJGNDAgLyogVmVyc2lvbkNoZWNrcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZlcnNpb25DaGVja3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MkNGNTUxMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU0OEVC
Q0YyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdLRm9ybUNvbG9yUGlja2VyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtQ29sb3JQaWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYzMzgsOCArNjMzNSw2IEBACiAJCQkJ
NDYzMjM2ODUyMzE0ODMzRjAwQTQ4RkE3IC8qIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCAqLywK
IAkJCQkwNzAyNTlCRTI1MjI4NDFDMDAxNTM0MDUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkubW0gKi8sCiAJCQkJNDExQTlBOUEyNTFERTkzRTAwODA3RDdFIC8qIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkubW0gKi8sCi0JCQkJRTRFODY0OEUxQjE2NzNG
QjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLywKLQkJCQlFNEU4NjQ4RjFCMTY3M0ZCMDBD
ODJGNDAgLyogVmVyc2lvbkNoZWNrcy5tbSAqLywKIAkJCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCiAJCQkJNTJENUExQUIxQzU3
NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQk1MkQ1QTFBQzFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tICovLApAQCAtMTExNzAsNyArMTExNjUsNiBAQAogCQkJCTRBM0NDMThCMTlCMDY0
MEYwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNEEzQ0MxOEQxOUIwNjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NEU3NUZFMURGMjIx
MTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNCQTNDQiAv
KiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1RDVFMTg1
ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQppbmRleCBjN2VhNjg0MDk4OGU4MmI1ZWVkZTg2Y2E2ODI4MTZmMzEzY2QwY2Q2Li5m
NGY2NmZmMWRiZjk3Zjg1YjQ1ZmUwZjdiYzk3MGRhNjQ4ZTA5NThlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTY4LDYgKzY4
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+CiAj
aW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRl
ZmF1bHRVSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVn
YXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQppbmRleCA1NTIwMWE2NWQ3MTRlN2RhMDFkYjky
NjczNzEwMjcxZGI5YzVmNzVjLi5kY2I3YzkzMWM5Njc3NmZkMDhmNDk2YWZiYzlmMWY0ZDIwZWUy
MTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVz
L1dlYkRlZmF1bHRVSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Rl
ZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0KQEAgLTM0LDcgKzM0LDcgQEAK
IAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAiV2ViSmF2YVNjcmlwdFRleHRJ
bnB1dFBhbmVsLmgiCi0jaW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgiCisjaW1wb3J0IDxX
ZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKQEAgLTIxNiwxMSArMjE2LDEwIEBAIHN0YXRpYyBXZWJEZWZhdWx0VUlEZWxlZ2F0ZSAqc2hh
cmVkRGVsZWdhdGUgPSBuaWw7CiB7CiB9CiAKLQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQog
LSAoTlNVSW50ZWdlcil3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25B
Y3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5m
bwogewotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BU
b05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIo
V2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlE
ZWZhdWx0KSkKICAgICAgICAgcmV0dXJuIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIAog
ICAgIHJldHVybiBXZWJEcmFnRGVzdGluYXRpb25BY3Rpb25BbnkgJiB+V2ViRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uTG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2Mv
V2ViSWNvbkRhdGFiYXNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29u
RGF0YWJhc2UubW0KaW5kZXggNGMxZGNiMjQzZWQzZjRhMWIzMWI5OThhZGZkNzJkY2ZmYWQ1NGJk
MC4uOGY0OWJkYmQ3Zjg0NzNhNDJmZmYxYzQzMzMyMzEyNDMwODJlNzZhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KQEAgLTMwLDEwICsz
MCwxMCBAQAogCiAjaW1wb3J0ICJXZWJJY29uRGF0YWJhc2UuaCIKIAotI2ltcG9ydCAiV2ViS2l0
VmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJl
YWRDaGVjay5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDx3
dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgpAQCAtMTA2LDcgKzEwNiw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1Q
TEVNRU5UQVRJT05TX0VORAogICAgIHN0YXRpYyBXZWJJY29uRGF0YWJhc2UgKmRhdGFiYXNlOwog
ICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZTsKICAgICBkaXNwYXRjaF9vbmNlKCZvbmNl
LCBeIHsKLSAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhX
ZWJJY29uRGF0YWJhc2VXYXJuaW5nKSkKKyAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlcihXZWJD
b3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhXZWJJY29uRGF0YWJhc2VXYXJuaW5nKSkKICAgICAg
ICAgICAgIE5TTG9nKEAiK1tXZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNvbkRhdGFiYXNlXSBpcyBu
b3QgQVBJIGFuZCBzaG91bGQgbm90IGJlIHVzZWQuIFdlYkljb25EYXRhYmFzZSBubyBsb25nZXIg
aGFuZGxlcyBpY29uIGxvYWRpbmcgYW5kIGl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBy
ZWxlYXNlLiIpOwogCiAgICAgICAgIGRhdGFiYXNlID0gW1tXZWJJY29uRGF0YWJhc2UgYWxsb2Nd
IGluaXRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRW
ZXJzaW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNp
b25DaGVja3MuaAppbmRleCA3YWRhN2U5MThiYTNlN2NmNjVkYjk3ZTczMjk1NmM5MjYyNTk3ZTBm
Li4yNjcwMzU5YWFjZTE2MTI3Njk4YjljYmJhNmYyNTkxNjI3YTdlYWFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MuaApAQCAtNzIs
MTkgKzcyLDYgQEAKICNkZWZpbmUgV0VCS0lUX0ZJUlNUX1ZFUlNJT05fV0lUSF9DT05URU5UX1NF
Q1VSSVRZX1BPTElDWV9TT1VSQ0VfU1RBUl9QUk9UT0NPTF9SRVNUUklDVElPTiAzNTU1CiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotZW51bSBjbGFzcyBTREtWZXJzaW9uIDogdWlu
dDMyX3QgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmlyc3RUaGF0RGVmYXVsdHNU
b1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMs
Ci0gICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxEX0lPU19WRVJTSU9O
XzEzXzQsCi0jZWxzZQotICAgIEZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVm
YXVsdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoV2ViSWNvbkRh
dGFiYXNlV2FybmluZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RUaGF0
UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1XzQsCi0j
ZW5kaWYKLX07Ci0KLWJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24pOwotCiAjaWZkZWYg
X19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MubW0KaW5kZXggNGU3YzgxYmJhYmRl
NDk1NzBlYzk3ODdiNDEwY2ZiNzMyMTAxMzA0OC4uY2E3YTZiM2FkMGQyM2RkOTc0YTg1MWY1NGE5
YmFiOTFmMGM0ZTNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJLaXRWZXJzaW9uQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2Mv
V2ViS2l0VmVyc2lvbkNoZWNrcy5tbQpAQCAtNjgsMTYgKzY4LDMgQEAgc3RhdGljIGludCBXZWJL
aXRMaW5rVGltZVZlcnNpb24odm9pZCkKICAgICByZXR1cm4gTlNWZXJzaW9uT2ZMaW5rVGltZUxp
YnJhcnkoIlVJS2l0Iik7CiAjZW5kaWYKIH0KLQotYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVy
c2lvbiBzZGtWZXJzaW9uKQotewotICAgIHN0YXRpYyBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmc7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7Ci0gICAgc3RkOjpjYWxsX29u
Y2Uob25jZSwgW10gewotICAgICAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJE
ZWZhdWx0c10gYm9vbEZvcktleTpAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciXSkK
LSAgICAgICAgICAgIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcgPSB0cnVlOwotICAgIH0pOwot
ICAgIGlmIChVTkxJS0VMWShsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgcmV0dXJuIGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKSA+PSBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oc2RrVmVyc2lvbik7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLm1tCmluZGV4IGI2NTgwZTdhNjEzYzEzOWE1YjZmOGRhMTAyYzc3NzQ2NWQzNjM1ZDkuLjY4
ZWFjMGE3OGM2NGNjYTIyNzRkOTRhOTNmYzY4OWIyMTgwYTc5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzLm1tCkBAIC0yNSw5ICsyNSw5IEBACiAKICNpbXBvcnQgIldlYlByZWZlcmVuY2Vz
RGVmYXVsdFZhbHVlcy5oIgogCi0jaW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgiCiAjaW1w
b3J0IDxGb3VuZGF0aW9uL05TQnVuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1w
b3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9GZWF0dXJlRmxhZ3NT
UEkuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5o
PgpAQCAtMTI4LDcgKzEyOCw3IEBAIGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1
aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlz
dGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25E
b2N1bWVudCk7CisgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9u
OjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCk7CiB9
CiAKIGJvb2wgZGVmYXVsdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbygpCkBAIC0xNTcs
NyArMTU3LDcgQEAgYm9vbCBkZWZhdWx0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkKCkKIAogYm9v
bCBkZWZhdWx0U2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7Ci0gICAgc3RhdGljIGJv
b2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgc3RhdGljIGJvb2wg
c2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpT
REtWZXJzaW9uOjpGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CiAgICAgcmV0dXJu
IHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZDJlYWEwYzYyMzFmZmUyNmQ0MjY2NjE5
MjQwN2YzYzQwYTM2MmRlLi5mYTc4NmJhOGEzYTQ4NjU2NDk1YjNmZDA3N2MwYzViNWNkNGQwNmQw
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMjAtMTAtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBVbmlmeSBsaW5rZWRPbk9yQWZ0ZXIgZHVwbGljYXRlIGNv
ZGUgYW5kIHVzZSBTUEkvV2ViQ29yZVRlc3RTdXBwb3J0IGluc3RlYWQgb2YgTlNVc2VyRGVmYXVs
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzIz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoc2V0RGVmYXVsdHNU
b0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlTWFp
bik6CisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL21haW4ubToKKyAgICAgICAgKG1haW4pOgor
ICAgICAgICAqIE1vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4ubToKKyAg
ICAgICAgKG1haW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVz
dFdURi54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tOgor
ICAgICAgICAobWFpbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvbWFpbk1hYy5tbToK
KyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1Mu
bW06CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9tYWlu
Lm1tOgorICAgICAgICAoc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKToK
KyAgICAgICAgKG1haW4pOgorCiAyMDIwLTEwLTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGV4dHJhIHNsYXNoIGFmdGVyIGVtcHR5
IGhvc3QgY29waWVkIGZyb20gYmFzZSBVUkwgaWYgcGF0aCBpcyBhbHNvIGVtcHR5CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggYWIzNWFkOTcxNGYzY2U4
ZmY3YjY2NDhiNTZmNzI2ZWUwMWE0NDY1YS4uMGI2MDVjMzhiMjkxYWVmM2JkZDVhMjgwYzNlNzg2
NjRjNGJiN2I4OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQpAQCAtMTAxOCw3ICsxMDE4LDYgQEAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdHNUb0NvbnNpc3Rl
bnRWYWx1ZXNGb3JUZXN0aW5nKCkKICAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkVuYWJsZWRQcmVm
ZXJlbmNlS2V5OiBAWUVTLAogICAgICAgICBXZWJLaXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNr
UHJlZmVyZW5jZUtleTogQFlFUywKICAgICAgICAgV2ViS2l0SW5saW5lTWVkaWFQbGF5YmFja1Jl
cXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGVLZXk6IEBOTywKLSAgICAgICAgQCJXZWJLaXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIjogQFlFUywKICAgICAgICAgQCJVc2VXZWJLaXRXZWJJbnNw
ZWN0b3IiOiBAWUVTLAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBAIk5TUHJl
ZmVycmVkU3BlbGxTZXJ2ZXJMYW5ndWFnZSI6IEAiZW5fVVMiLApAQCAtMTM5MCw2ICsxMzg5LDcg
QEAgaW50IER1bXBSZW5kZXJUcmVlTWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQog
CiAgICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cGVybWl0UHJvY2Vzc1RvVXNlQ29va2llQVBJ
KHRydWUpOworICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0TGlua2VkT25PckFmdGVyRXZlcnl0
aGluZ0ZvclRlc3RpbmcoKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgX1VJQXBw
bGljYXRpb25Mb2FkV2ViS2l0KCk7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
bWFpbi5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL21haW4ubQppbmRleCBiYTJjYTEyNDgyYzBh
YjgwOTk5ODEzMWY2OTNjODc2MDE5YzU5NWYxLi45OTQ5YWZkNzE0ZDYxNTVkMmM1MDRkMDU4NDU4
ODJlZjAwZDM2M2I0IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvbWFpbi5tCisr
KyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9tYWluLm0KQEAgLTI0LDEwICsyNCwxMSBAQAogICov
CiAKICNpbXBvcnQgPENvY29hL0NvY29hLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaD4KIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLSAgICBb
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOllFUyBmb3JLZXk6
QCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIl07CisgICAgW1dLUHJvY2Vzc1Bvb2wg
X3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nXTsKIAogICAgIHJldHVybiBO
U0FwcGxpY2F0aW9uTWFpbihhcmdjLCAgKGNvbnN0IGNoYXIgKiopIGFyZ3YpOwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWluaUJyb3dzZXIvbWFpbi5tIGIv
VG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWluaUJyb3dzZXIvbWFpbi5tCmluZGV4IDU1
ZWZkMTU3MmZhN2FkNDliODJjZTZjNThhMDAyMjJlMDdhNzYxYWMuLjhjNDI1MGY0MDg3MWQ1NDQ4
YWZmOTdkNjE2NDM1Yzc3YTRmOTNlZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01vYmlsZU1pbmlCcm93
c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4ubQorKysgYi9Ub29scy9Nb2JpbGVNaW5pQnJvd3Nl
ci9Nb2JpbGVNaW5pQnJvd3Nlci9tYWluLm0KQEAgLTI0LDEwICsyNCwxMSBAQAogICovCiAKICNp
bXBvcnQgPE1vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg
KiBhcmd2W10pCiB7Ci0gICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
c2V0Qm9vbDpZRVMgZm9yS2V5OkAiV2ViS2l0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZyJdOwor
ICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGlu
Z107CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgcmV0dXJuIFVJQXBwbGljYXRp
b25NYWluKGFyZ2MsIGFyZ3YsIG5pbCwgTlNTdHJpbmdGcm9tQ2xhc3MoW0FwcERlbGVnYXRlIGNs
YXNzXSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9U
ZXN0V1RGLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
V1RGLnhjY29uZmlnCmluZGV4IDU3NDAwMzVlZDZhZjE3OWE2NzcxYTMxZjkzZjAyY2JiMTE0Y2Y2
MDIuLmVhY2ZiMTIzNjA5ZTBlZDA0NWU2NDA5MWMzNDc5ZTA4MjUzYmZjMGUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZworKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcKQEAg
LTI3LDYgKzI3LDggQEAgTElCUkFSWV9TRUFSQ0hfUEFUSFMgPSAkKFBST0pFQ1RfRElSKS9UZXN0
cy9XVEYvZGFyd2luICQoaW5oZXJ0aWVkKTsKIAogR0NDX0VOQUJMRV9PQkpDX0VYQ0VQVElPTlMg
PSBZRVM7CiAKK0dDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAkKGluaGVyaXRlZCkgQlVJ
TERJTkdfVEVTVF9XVEYKKwogVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUyA9IC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWk43dGVzdGluZzRUZXN0MTZUZWFyRG93blRlc3RDYXNlRXYgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTjd0ZXN0aW5nNFRlc3QxM1NldFVwVGVzdENhc2VF
dgogCiBPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5FWFBPUlRFRF9TWU1CT0xfTERG
TEFHUykgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdU
Ri5hICQoT1RIRVJfTERGTEFHU19QTEFURk9STSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2lvcy9tYWluSU9TLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvbWFpbklPUy5t
bQppbmRleCAwMWM3ZDI3MzYxNTY3MWJlMDA4ZjIxODhmY2QzYzdlMWZkMDBiNWY2Li40ZTY3MjAz
ZmYwNjZhODU1MTZjNjFjNjdhNTIzMmY0NzQ5OTkzY2UxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL21h
aW5JT1MubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
VGVzdHNDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oPgorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CiAgICAgTlNBdXRvcmVs
ZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKQEAgLTM2
LDEyICszOCwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqYXJndW1lbnREb21haW4gPSBbW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFy
ZFVzZXJEZWZhdWx0c10gdm9sYXRpbGVEb21haW5Gb3JOYW1lOk5TQXJndW1lbnREb21haW5dIG11
dGFibGVDb3B5XTsKICAgICBpZiAoIWFyZ3VtZW50RG9tYWluKQogICAgICAgICBhcmd1bWVudERv
bWFpbiA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07Ci0gICAgCi0gICAgTlNE
aWN0aW9uYXJ5ICpkaWN0ID0gQHsgQCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIjog
QFlFUyB9OwogCi0gICAgW2FyZ3VtZW50RG9tYWluIGFkZEVudHJpZXNGcm9tRGljdGlvbmFyeTpk
aWN0XTsKICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRWb2xh
dGlsZURvbWFpbjphcmd1bWVudERvbWFpbiBmb3JOYW1lOk5TQXJndW1lbnREb21haW5dOwogCisj
aWZuZGVmIEJVSUxESU5HX1RFU1RfV1RGCisgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9u
T3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nXTsKKyNlbmRpZgorCiAgICAgYm9vbCBwYXNzZWQg
PSBUZXN0V2ViS2l0QVBJOjpUZXN0c0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1bihhcmdjLCBh
cmd2KTsKIAogICAgIFtwb29sIGRyYWluXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvbWFjL21haW5NYWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9tYWluTWFjLm1tCmlu
ZGV4IDYyNGZmODI0MjQ4Zjk1YTdjNWUzZWJhNzVmMjY2YWEwNjdjMjE5MjAuLjU1OWMzY2NjY2Zm
ODk5YzlmOTYyNmJhZDdlNDFjMGFkYjYyMDc2MjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvbWFjL21haW5NYWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvbWFpbk1h
Yy5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJUZXN0
c0NvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+
CisKIGV4dGVybiAiQyIgdm9pZCBfQmVnaW5FdmVudFJlY2VpcHRPblRocmVhZCh2b2lkKTsKIAog
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQpAQCAtNDIsMTQgKzQ0LDE1IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAvLyBDQVVUSU9OOiBEZWZhdWx0cyBzZXQg
aGVyZSBhcmUgbm90IGF1dG9tYXRpY2FsbHkgcHJvcGFnYXRlZCB0byB0aGUKICAgICAvLyBXZWIg
Q29udGVudCBwcm9jZXNzLiBUaG9zZSBsaXN0ZWQgYmVsb3cgYXJlIHByb3BhZ2F0ZWQgbWFudWFs
bHkuCiAgICAgTlNEaWN0aW9uYXJ5ICpkaWN0ID0gQHsKLSAgICAgICAgQCJXZWJLaXRMaW5rZWRP
bk9yQWZ0ZXJFdmVyeXRoaW5nIjogQFlFUywKLQogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IHN3aXRjaCB0aGVzZSBkZWZhdWx0cyB0byB1c2Ugb3ZlcmxheQogICAgICAgICAvLyBzY3JvbGxi
YXJzLCBzaW5jZSB0aGV5IGFyZSB0aGUgZGVmYXVsdCBvbiB0aGUgcGxhdGZvcm0sCiAgICAgICAg
IC8vIGJ1dCBhIHZhcmlldHkgb2YgdGVzdHMgd2lsbCBuZWVkIGNoYW5nZXMuCiAgICAgICAgIEAi
TlNPdmVybGF5U2Nyb2xsZXJzRW5hYmxlZCI6IEBOTywKICAgICAgICAgQCJBcHBsZVNob3dTY3Jv
bGxCYXJzIjogQCJBbHdheXMiLAogICAgIH07CisjaWZuZGVmIEJVSUxESU5HX1RFU1RfV1RGCisg
ICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5n
XTsKKyNlbmRpZgogCiAgICAgW2FyZ3VtZW50RG9tYWluIGFkZEVudHJpZXNGcm9tRGljdGlvbmFy
eTpkaWN0XTsKICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRW
b2xhdGlsZURvbWFpbjphcmd1bWVudERvbWFpbiBmb3JOYW1lOk5TQXJndW1lbnREb21haW5dOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW0KaW5kZXggMWE5MDZlZmRiYTAxMDcxZDFh
MWM4NDQxMWI3OTMxYjZlOGFiYTE1Ny4uZjE2NmU0MGY4N2I4ODNmNmY5Y2U4MDEwMGViNzk1OWJl
Mjc5OGY1YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5t
bQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9tYWluSU9TLm1tCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW1wb3J0ICJISURFdmVudEdlbmVyYXRvci5oIgogI2ltcG9ydCAiVGVzdENvbnRy
b2xsZXIuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNz
UG9vbFByaXZhdGUuaD4KIAogc3RhdGljIGludCBfYXJnYzsKIHN0YXRpYyBjb25zdCBjaGFyICoq
X2FyZ3Y7CkBAIC02OCw5ICs2OSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBh
cmd2W10pCiAgICAgX2FyZ2MgPSBhcmdjOwogICAgIF9hcmd2ID0gYXJndjsKIAotICAgIEBhdXRv
cmVsZWFzZXBvb2wgewotICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1
bHRzXSBzZXRCb29sOllFUyBmb3JLZXk6QCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5n
Il07Ci0gICAgfQorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRo
aW5nRm9yVGVzdGluZ107CiAKICAgICBVSUFwcGxpY2F0aW9uTWFpbihhcmdjLCAoY2hhcioqKWFy
Z3YsIEAiV2ViS2l0VGVzdFJ1bm5lckFwcCIsIEAiV2ViS2l0VGVzdFJ1bm5lckFwcCIpOwogICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFpbi5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL21haW4ubW0KaW5kZXggMDg0MGZiZWM1ZTJm
NTljNmUxMmNmNTZkY2IwOGM0ZjBiZDQ5MGEyOS4uNDkxNDMxM2IxODliYzg1ZTFiOTc4ZGMzNTY5
YjdkYmVmNzU0NjUwMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFp
bi5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9tYWluLm1tCkBAIC0yOSw2ICsy
OSw3IEBACiAKICNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgogI2ltcG9ydCAiVGVzdENvbnRy
b2xsZXIuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogCiBzdGF0
aWMgdm9pZCBzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlc0ZvclRlc3RpbmcoKQogewpAQCAt
NDEsNyArNDIsNiBAQCBzdGF0aWMgdm9pZCBzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlc0Zv
clRlc3RpbmcoKQogICAgICAgICBAIkFwcGxlRW5hYmxlU3dpcGVOYXZpZ2F0ZVdpdGhTY3JvbGxz
IjogQFlFUywKICAgICAgICAgQCJjb20uYXBwbGUuc3dpcGVzY3JvbGxkaXJlY3Rpb24iOiBAMSwK
ICAgICAgICAgQCJjb20uYXBwbGUudHJhY2twYWQuZm9yY2VDbGljayI6IEAxLAotICAgICAgICBA
IldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciOiBAWUVTLAogICAgICAgICBAIk5TU2Ny
b2xsQW5pbWF0aW9uRW5hYmxlZCI6IEBOTywKICAgICAgICAgQCJOU092ZXJsYXlTY3JvbGxlcnNF
bmFibGVkIjogQE5PLAogICAgICAgICBAIkFwcGxlU2hvd1Njcm9sbEJhcnMiOiBAIkFsd2F5cyIs
CkBAIC02NSw2ICs2NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10p
CiAgICAgICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXTsKICAgICAgICAgc2V0
RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCk7CiAgICAgICAgIGRpc2FibGVB
cHBOYXBJblVJUHJvY2VzcygpOyAvLyBGb3Igc2Vjb25kYXJ5IHByb2Nlc3NlcywgYXBwIG5hcCBp
cyBkaXNhYmxlZCB1c2luZyBXS1ByZWZlcmVuY2VzU2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWQoKS4KKyAgICAgICAgW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtl
ZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nXTsKICAgICB9CiAgICAgV1RSOjpUZXN0Q29u
dHJvbGxlciBjb250cm9sbGVyKGFyZ2MsIGFyZ3YpOwogICAgIHJldHVybiAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410447</attachid>
            <date>2020-10-03 17:06:58 -0700</date>
            <delta_ts>2020-10-04 13:14:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217239-20201003170657.patch</filename>
            <type>text/plain</type>
            <size>81290</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzkzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEwLTAzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkgbGlu
a2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2RlIGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3VwcG9y
dCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Zl
cnNpb25DaGVja3MuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZlcnNpb25DaGVja3MuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tz
Lm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNo
ZWNrcy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRlcik6CisgICAgICAgICog
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RT
dXBwb3J0OjpzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAgICAg
ICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaDoKKwogMjAyMC0xMC0wMyAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEludHJvZHVjZSBK
SVRPcGVyYXRpb25MaXN0IHRvIHZhbGlkYXRlIEpJVC1jYWdlZCBwb2ludGVycwpJbmRleDogU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyNjc5MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDcgQEAgcGxhdGZv
cm0vY29jb2EvU3lzdGVtVmVyc2lvbi5tbQogcGxhdGZvcm0vY29jb2EvVGVsZXBob25lTnVtYmVy
RGV0ZWN0b3JDb2NvYS5jcHAKIHBsYXRmb3JtL2NvY29hL1RoZW1lQ29jb2EubW0KIHBsYXRmb3Jt
L2NvY29hL1VzZXJBZ2VudENvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLm1t
CiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQogcGxh
dGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCiBwbGF0Zm9ybS9jb2NvYS9XZWJD
b3JlQWRkaXRpb25zLm1tIEBuby11bmlmeQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY3OTM4KQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC00ODA2LDYgKzQ4MDYsNyBAQAogCQlERUNBODA2QzFGOUZFRDZBMDBFM0I2NjEgLyog
VW5pZmllZFNvdXJjZTI5OS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBERUNBN0ZEQTFGOUZFOUEyMDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTI5OS5j
cHAgKi87IH07CiAJCURFQ0E4MDZEMUY5RkVENkEwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMzAw
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERFQ0E3
RkJCMUY5RkU5ODMwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMzAwLmNwcCAqLzsgfTsKIAkJREYx
OUUyQUMyNDc3MkJDMTAwN0JEQUNCIC8qIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjE5
RTJBQTI0NzcyOUE2MDA3QkRBQ0IgLyogU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlE
RjRFMzhFMDI1Mjc5NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREY0RTM4REUyNTI3OTU5NDAwMkE3NDgx
IC8qIFZlcnNpb25DaGVja3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlERjk1QjE0QTI0RkRBRkQzMDBCMUY0RDcgLyogVGV4dENvZGVjQ0pLLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjk1QjE0ODI0
RkRBRkQzMDBCMUY0RDcgLyogVGV4dENvZGVjQ0pLLmggKi87IH07CiAJCURGOUFGRDcyMTNGQzMx
RDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjlBRkQ3MDEzRkMzMUQ4
MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oICovOyB9Owog
CQlERjlBRkQ3MzEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERGOUFGRDcxMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tICovOyB9OwpAQCAtMTU0ODQsNiArMTU0ODUsOCBAQAogCQlERUNBN0ZGNDFGOUZF
OUI5MDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTI1NS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMjU1LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291
cmNlcy9XZWJDb3JlL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMjU1LmNwcCI7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCURFQ0E3RkY1MUY5RkU5QkEwMEUzQjY2
MSAvKiBVbmlmaWVkU291cmNlMjU2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFVuaWZpZWRTb3VyY2UyNTYuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UyNTYuY3BwIjsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJREYxOUUyQUEyNDc3MjlBNjAwN0JEQUNCIC8qIFNob3Vs
ZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCURGNEUzOERDMjUyNzk1OTMwMDJBNzQ4MSAvKiBWZXJzaW9u
Q2hlY2tzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmVyc2lv
bkNoZWNrcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREY0RTM4REUyNTI3OTU5
NDAwMkE3NDgxIC8qIFZlcnNpb25DaGVja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVmVyc2lvbkNoZWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjdF
OUEyOTRDN0FBQ0UwQUQ4OUIzREQgLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjk1QjE0NjI0RkRBRkQyMDBCMUY0RDcgLyog
VGV4dENvZGVjQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRDb2RlY0NKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGOTVCMTQ4MjRG
REFGRDMwMEIxRjRENyAvKiBUZXh0Q29kZWNDSksuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVGV4dENvZGVjQ0pLLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NDEzNCw2ICsyNDEzNyw4IEBACiAJCQkJMzEwRDcxOTQxQjMzNUM5RDAwOUM3QjczIC8qIFRoZW1l
Q29jb2EuaCAqLywKIAkJCQkzMTBENzE5MzFCMzM1QzlEMDA5QzdCNzMgLyogVGhlbWVDb2NvYS5t
bSAqLywKIAkJCQlBM0FGOUQ4MTIwMzI1MkVFMDA2Q0FEMDYgLyogVXNlckFnZW50Q29jb2EubW0g
Ki8sCisJCQkJREY0RTM4REUyNTI3OTU5NDAwMkE3NDgxIC8qIFZlcnNpb25DaGVja3MuaCAqLywK
KwkJCQlERjRFMzhEQzI1Mjc5NTkzMDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5tbSAqLywKIAkJ
CQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXIuaCAqLywKIAkJCQk1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVu
TW9kZWwuaCAqLywKIAkJCQk1MkQ1QTFBNTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLywKQEAgLTM0NDM3LDYgKzM0NDQyLDcgQEAKIAkJCQkx
NUM3NzA4RDEwMEQzQzZCMDA1QkEyNjcgLyogVmFsaWRpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQzMTYwQUYxMkIwMjZGNzAwQzFBMzU5IC8qIFZlY3Rvck1hdGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMUEwQzM4MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCBpbiBI
ZWFkZXJzICovLAorCQkJCURGNEUzOEUwMjUyNzk1OTUwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGlj
YWxQb3NpdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkIwRDRDMDFDNTdGRDY2MDA3
N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTNGQkM0QUY0MTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WZXJzaW9uQ2hlY2tzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmVyc2lvbkNoZWNrcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCA8d3RmL3NwaS9k
YXJ3aW4vZHlsZFNQSS5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9WZXJzaW9uQ2hlY2tzQWRkaXRpb25zLmg+CisjZWxzZQorI2RlZmlu
ZSBEWUxEX0lPU19WRVJTSU9OX0ZJUlNUX1dJVEhfSU9TX0FQUFNfT05fTUFDT1MgMAorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBTREtWZXJzaW9uIDogdWludDMy
X3QgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgRmlyc3RXaXRoTmV0d29ya0NhY2hl
ID0gRFlMRF9JT1NfVkVSU0lPTl85XzAsCisgICAgRmlyc3RXaXRoTWVkaWFUeXBlc1JlcXVpcmlu
Z1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKKyAgICBGaXJz
dFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERf
SU9TX1ZFUlNJT05fMTFfMCwKKyAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9y
ID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8wLAorICAgIEZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdB
bnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCisgICAgRmly
c3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lP
U19WRVJTSU9OXzExXzMsCisgICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJl
Tm90T2JzY3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAorICAgIEZpcnN0V2hl
cmVVSVNjcm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSA9
IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKKyAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFz
c2VydGlvbkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAorICAgIEZpcnN0
V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9JT1Nf
VkVSU0lPTl8xM18wLAorICAgIEZpcnN0V2l0aExhenlHZXN0dXJlUmVjb2duaXplckluc3RhbGxh
dGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKKyAgICBGaXJzdFdpdGhQcm9jZXNzU3dhcE9u
Q3Jvc3NTaXRlTmF2aWdhdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKKyAgICBGaXJzdFdp
dGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAg
ICBGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25BUEkgPSBEWUxE
X0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RUaGF0RGVjaWRlc1BvbGljeUJlZm9yZUxvYWRp
bmdRdWlja0xvb2tQcmV2aWV3ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAgIEZpcnN0V2l0
aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMgPSBE
WUxEX0lPU19WRVJTSU9OXzEzXzAsCisgICAgRmlyc3RXaXRoTW9kZXJuQ29tcGFiaWxpdHlNb2Rl
QnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAorICAgIEZpcnN0VGhhdEhhc1VJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFdo
ZXJlV0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzID0gRFlMRF9JT1NfVkVS
U0lPTl8xM18wLAorICAgIEZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFt
ZSA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKKyAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVp
cmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMiwKKyAgICBGaXJz
dFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKKyAg
ICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTRf
MCwKKyAgICBGaXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNlRXZlbnRzID0gRFlMRF9JT1NfVkVSU0lP
Tl8xM180LAorICAgIEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlv
biA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKKyAgICBGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3Rv
cmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAorICAgIEZpcnN0VmVy
c2lvbldpdGhpT1NBcHBzT25NYWNPUyA9IERZTERfSU9TX1ZFUlNJT05fRklSU1RfV0lUSF9JT1Nf
QVBQU19PTl9NQUNPUywKKyNlbGlmIFBMQVRGT1JNKE1BQykKKyAgICBGaXJzdFdpdGhOZXR3b3Jr
Q2FjaGUgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzExLAorICAgIEZpcnN0V2l0aEV4Y2VwdGlv
bnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xMywKKyAgICBGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQg
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAorICAgIEZpcnN0V2l0aEV4cGlyZWRPbmx5UmVs
b2FkQmVoYXZpb3IgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAorICAgIEZpcnN0V2l0aFdl
Ykljb25EYXRhYmFzZVdhcm5pbmcgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAorICAgIEZp
cnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE0LAorICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJz
YWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKKyAgICBGaXJz
dFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBf
MTUsCisgICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVy
ZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCisgICAgRmlyc3RXaGVy
ZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzE1XzEsCisgICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1XzQsCisgICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURl
ZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAorICAgIEZpcnN0V2l0aEluaXRpYWxp
emVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYs
CisgICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTYsCisjZW5kaWYKK307CisKK2VudW0gY2xhc3MgQXNzdW1lU2Fm
YXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyIDogYm9vbCB7IE5vLCBZZXMgfTsKK1dFQkNPUkVfRVhQ
T1JUIGJvb2wgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb24sIEFzc3VtZVNhZmFyaUlzQWx3YXlz
TGlua2VkT25BZnRlciA9IEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6WWVzKTsK
KworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVyc2lvbkNoZWNrcy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hl
Y2tzLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zl
cnNpb25DaGVja3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCisK
KyNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorI2ltcG9ydCA8bWFjaC1vL2R5
bGQuaD4KKyNpbXBvcnQgPG11dGV4PgorI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0NvY29hLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBsaW5rZWRP
bk9yQWZ0ZXIoU0RLVmVyc2lvbiBzZGtWZXJzaW9uLCBBc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtl
ZE9uQWZ0ZXIgYXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyKQoreworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgYm9vbCBpc1NhZmFyaSA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc01vYmlsZVNhZmFyaSgpOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgaXNT
YWZhcmkgPSBXZWJDb3JlOjpNYWNBcHBsaWNhdGlvbjo6aXNTYWZhcmkoKTsKKyNlbmRpZgorCisg
ICAgaWYgKGlzU2FmYXJpICYmIGFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciA9PSBB
c3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXI6OlllcykKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBhdXRvIHNka1ZlcnNpb25Bc0ludGVnZXIgPSBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oc2RrVmVyc2lvbik7CisgICAgcmV0dXJuIHNka1ZlcnNpb25Bc0ludGVnZXIgJiYgYXBwbGlj
YXRpb25TREtWZXJzaW9uKCkgPj0gc2RrVmVyc2lvbkFzSW50ZWdlcjsKK30KKworfQpJbmRleDog
U291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAko
cmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw4IEBACiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICNpbmNsdWRlICJVVElSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlZlcnNpb25D
aGVja3MuaCIKKyNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29j
b2EuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZVRlc3RTdXBwb3J0IHsKQEAgLTE0Myw2
ICsxNDUsMTMgQEAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbAogICAg
IEludGVybmFsU2V0dGluZ3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93QW55U1NM
Q2VydGlmaWNhdGUpOwogfQogCit2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzZXRBcHBsaWNhdGlvblNES1Zl
cnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKKyNlbmRpZgorfQor
CiB2b2lkIGluc3RhbGxNb2NrR2FtZXBhZFByb3ZpZGVyKCkKIHsKICNpZiBFTkFCTEUoR0FNRVBB
RCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBv
cnQuaAkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCB2b2lkIHNl
dExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgV1RGCiB2b2lkIGNsZWFyQWxsTG9nQ2hhbm5l
bHNUb0FjY3VtdWxhdGUoKSBURVNUX1NVUFBPUlRfRVhQT1JUOwogdm9pZCBpbml0aWFsaXplTG9n
Q2hhbm5lbHNJZk5lY2Vzc2FyeSgpIFRFU1RfU1VQUE9SVF9FWFBPUlQ7CiB2b2lkIHNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlKGJvb2wpIFRFU1RfU1VQUE9SVF9FWFBPUlQ7Cit2b2lkIHNldExp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCkgVEVTVF9TVVBQT1JUX0VYUE9SVDsK
IAogdm9pZCBpbnN0YWxsTW9ja0dhbWVwYWRQcm92aWRlcigpIFRFU1RfU1VQUE9SVF9FWFBPUlQ7
CiB2b2lkIGNvbm5lY3RNb2NrR2FtZXBhZCh1bnNpZ25lZCBpbmRleCkgVEVTVF9TVVBQT1JUX0VY
UE9SVDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjc5MzgpCisrKyBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDIwLTEwLTAzICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkg
bGlua2VkT25PckFmdGVyIGR1cGxpY2F0ZSBjb2RlIGFuZCB1c2UgU1BJL1dlYkNvcmVUZXN0U3Vw
cG9ydCBpbnN0ZWFkIG9mIE5TVXNlckRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvaW9zL0xv
Y2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcklPUy5tbToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9D
b21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRU
aHJvd0V4Y2VwdGlvbkZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbCk6CisgICAgICAg
ICogU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2Vi
S2l0OjpkZXRlcm1pbmVJVFBTdGF0ZSk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYktpdDJJ
bml0aWFsaXplQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6ZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1l
bnQpOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSZWxvYWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKCtbV0tQcm9jZXNzUG9v
bCBfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmddKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChzaG91bGRBbGxvd1NldHRp
bmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOgorICAgICAgICAoc2hvdWxkUmVzdHJpY3RCYXNl
VVJMU2NoZW1lcyk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1
cmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyByZWxvYWRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IHRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAg
ICAgICAgKGRlZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJl
dmlldyk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gaW5pdF0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAo
LVtXS1dlYnNpdGVEYXRhU3RvcmUgaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9jb21wdXRlZE9ic2N1cmVk
SW5zZXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfd2ViX2RyYWdEZXN0aW5hdGlvbkFjdGlvbkZvckRyYWdnaW5n
SW5mbzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIgaW5zcGVjdG9yV0tXZWJWaWV3UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Nj
cm9sbGFibGVPclpvb21lZE1haW5GcmFtZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0
aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdl
YlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0Ojppc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29t
bW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfc2hvdWxkVXNlQ29udGV4dE1lbnVzXSk6CisgICAgICAgIChhcHBs
aWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLU2Nyb2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250
ZW50SW5zZXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6ZGVza3RvcENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZCk6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisKIDIwMjAtMTAtMDMgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgSklUT3Bl
cmF0aW9uTGlzdCB0byB2YWxpZGF0ZSBKSVQtY2FnZWQgcG9pbnRlcnMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQJKHJldmlzaW9uIDI2NzkzOCkKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDcgKzM4NSw2IEBAIFVJUHJvY2Vzcy9Db2Nv
YS9VSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmMKIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Lm1tCiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5tbQotVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3MubW0KIFVJUHJv
Y2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQYWdlUHJveHlDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94
eUNvY29hLm1tCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
aW9zL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvaW9zL0xvY2FsU3RvcmFnZURhdGFi
YXNlVHJhY2tlcklPUy5tbQkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1Mu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVy
c2lvbkNoZWNrcy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApJbmRleDogU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbQkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5k
bGVJbXBsLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPHBh
bC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBv
cnQgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcAkocmV2aXNpb24gMjY3
OTM4KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNs
dWRlICJWZXJzaW9uQ2hlY2tzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+
CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9GZWF0dXJlRmxhZ3NTUEkuaD4KICNpbmNsdWRlIDx3
dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KICNlbmRpZgpAQCAtNDAs
NyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNo
TGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0
ID0gbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNU
b1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJlc3Vs
dCA9IGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0
c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9D
b21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tCShyZXZpc2lvbiAyNjc5MzgpCisrKyBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsMTAgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogCisjaW1wb3J0IDxXZWJDb3Jl
L1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPG11dGV4PgogI2ltcG9ydCA8b2JqYy9ydW50aW1l
Lmg+CiAjaW1wb3J0IDx3dGYvUmVmLmg+Ci0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBib29sIHNob3VsZFRo
cm93RXhjZXB0aW9uRm9yRHVwbGkKICAgICBzdGF0aWMgYm9vbCBzaG91bGRUaHJvd0V4Y2VwdGlv
bjsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShv
bmNlLCBbXSB7Ci0gICAgICAgIHNob3VsZFRocm93RXhjZXB0aW9uID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFu
ZGxlckNhbGxzKTsKKyAgICAgICAgc2hvdWxkVGhyb3dFeGNlcHRpb24gPSBsaW5rZWRPbk9yQWZ0
ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNv
bXBsZXRpb25IYW5kbGVyQ2FsbHMpOwogICAgIH0pOwogICAgIHJldHVybiBzaG91bGRUaHJvd0V4
Y2VwdGlvbjsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJC
cm93c2VyQ2hlY2tzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCShyZXZpc2lvbiAyNjc5MzgpCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjcsOSArMjcsOSBAQAogI2ltcG9ydCAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3Mu
aCIKIAogI2ltcG9ydCAiVENDU1BJLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1w
b3J0IDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+
CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBv
cnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgpAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgZGV0ZXJtaW5l
SVRQU3RhdGUoKQogICAgICAgICByZXR1cm47CiAKICAgICBnX2N1cnJlbnRJVFBTdGF0ZSA9IElU
UFN0YXRlOjpJbml0aWFsaXppbmc7Ci0gICAgYm9vbCBhcHBXYXNMaW5rZWRPbk9yQWZ0ZXIgPSBs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1
bHQsIEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6WWVzKTsKKyAgICBib29sIGFw
cFdhc0xpbmtlZE9uT3JBZnRlciA9IGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9u
OjpGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCk7CiAKICAgICBnX2l0cFF1ZXVlID0g
ZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0Lml0cENoZWNrUXVldWUiLCBO
VUxMKTsKIApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxp
emVDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJL
aXQySW5pdGlhbGl6ZUNvY29hLm1tCShyZXZpc2lvbiAyNjc5MzgpCisrKyBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYktpdDJJbml0
aWFsaXplLmgiCiAKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYktpdEpJ
VE9wZXJhdGlvbnMuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRp
bmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlSklUT3BlcmF0aW9ucy5oPgogI2ltcG9ydCA8bXV0ZXg+CiAjaW1wb3J0IDx3dGYv
TWFpblRocmVhZC5oPgpAQCAtNjYsNyArNjYsNyBAQCB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkK
ICAgICAvLyBNYWtlIHN1cmUgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25j
ZSBhbmQgb24gdGhlIG1haW4gdGhyZWFkIHNpbmNlIHRoaW5ncyBsaWtlIGluaXRpYWxpemVNYWlu
VGhyZWFkKCkKICAgICAvLyBhcmUgb25seSBzYWZlIHRvIGNhbGwgb24gdGhlIG1haW4gdGhyZWFk
LgogICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsKLSAgICAgICAgaWYgKFtOU1RocmVhZCBp
c01haW5UaHJlYWRdIHx8IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhJbml0
aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24pKQorICAgICAgICBpZiAoW05TVGhyZWFk
IGlzTWFpblRocmVhZF0gfHwgbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZp
cnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbikpCiAgICAgICAgICAg
ICBydW5Jbml0aWFsaXphdGlvbkNvZGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZGlz
cGF0Y2hfc3luY19mKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIG51bGxwdHIsIHJ1bkluaXRp
YWxpemF0aW9uQ29kZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDI2NzkzOCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNiwxMyArMjA2LDEzIEBACiAjaW5jbHVk
ZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxh
eWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaCIKLSNpbmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW5jbHVk
ZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F0dHJpYnV0ZWRT
dHJpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGljYXRv
cldpbmRvdy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2luY2x1ZGUg
PHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5o
PgogI2VuZGlmCkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWF5YmVJ
bml0aWFsaXplU2FuZGJvCiAgICAgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0VW5jb25kaXRpb25hbFVuaXZl
cnNhbFNhbmRib3hFeHRlbnNpb24pKQorICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6
OlNES1ZlcnNpb246OkZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0
ZW5zaW9uKSkKICAgICAgICAgd2lsbEFjcXVpcmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRl
bnNpb24ocHJvY2Vzcyk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsMTEgKzEy
NiwxMSBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dz
ZXJDaGVja3MuaCIKLSNpbmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSElE
R2FtZXBhZFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NdWx0aUdhbWVwYWRQcm92aWRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUG93ZXJTb3VyY2VOb3RpZmllci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCkBA
IC0xMDI5LDcgKzEwMjksNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3Jl
YXRlCiAKICAgICBib29sIGVuYWJsZVByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uID0g
cGFnZS0+cHJlZmVyZW5jZXMoKS5wcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbkVuYWJs
ZWQoKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChXZWJDb3JlOjpJT1NBcHBs
aWNhdGlvbjo6aXNGaXJlZm94KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNp
b246OkZpcnN0V2l0aFByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKSkKKyAgICBpZiAo
V2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmlyZWZveCgpICYmICFsaW5rZWRPbk9yQWZ0ZXIo
V2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmln
YXRpb24pKQogICAgICAgICBlbmFibGVQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9
IGZhbHNlOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQAog
I2luY2x1ZGUgIk9iakNPYmplY3RHcmFwaC5oIgogI2luY2x1ZGUgIlBERlBsdWdpbi5oIgogI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKLSNpbmNsdWRlICJWZXJzaW9u
Q2hlY2tzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwMCw5ICsxMDAsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpCiB7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFpbigp
KSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxl
YXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9vcDo6
aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RX
aXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSk7CiAjZWxpZiBQTEFU
Rk9STShNQUMpCi0gICAgcmV0dXJuIExJS0VMWShSdW5Mb29wOjppc01haW4oKSkgfHwgIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlv
bkluV2ViUGFnZVByb3h5KTsKKyAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8
fCAhbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJl
YWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOwogI2Vsc2UKICAgICByZXR1cm4gUnVu
TG9vcDo6aXNNYWluKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQAogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQ
SSB7CkBAIC0yNzgsNyArMjc4LDcgQEAgdm9pZCBXS1BhZ2VSZWxvYWQoV0tQYWdlUmVmIHBhZ2VS
ZWYpCiB7CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9u
czsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFdlYktpdDo6
U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYg
KGxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVkT25s
eVJlbG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVs
b2FkT3B0aW9uOjpFeHBpcmVkT25seSk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0JKHJldmlzaW9uIDI2
NzkzOCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tQ
dHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0
ci5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+
CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCkBAIC01MTgsNiArNTE5LDExIEBAICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJG
cmFtZXdvcmsKICNlbmRpZgogfQogCisrICh2b2lkKV9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRo
aW5nRm9yVGVzdGluZworeworICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpOworfQorCiAtIChCT09MKV9pc0Nvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb25pbmdFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+Y29va2ll
U3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCShyZXZp
c2lvbiAyNjc5MzgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYgKzExMiw3IEBACiAKIC8v
IFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgYW55IHdlYiBjb250ZW50IHByb2Nl
c3NlcyBhcmUgbGF1bmNoZWQuCiArICh2b2lkKV9mb3JjZUdhbWVDb250cm9sbGVyRnJhbWV3b3Jr
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworKyAodm9pZClfc2V0
TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfcHJlY29ubmVjdFRv
U2VydmVyOihOU1VSTCAqKXNlcnZlclVSTCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJXS1dlYlZpZXcuX3ByZWNvbm5lY3RUb1NlcnZlciIsIG1hY29zKDEwLjEzLjQsIFdLX01B
Q19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDI2NzkzOCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDcgKzUyLDYgQEAKICNpbXBvcnQgIlJlc291cmNlTG9hZERlbGVnYXRlLmgi
CiAjaW1wb3J0ICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJVSURlbGVnYXRlLmgi
Ci0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkuaCIKICNpbXBvcnQgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogI2ltcG9ydCAi
V0tCYWNrRm9yd2FyZExpc3RJbnRlcm5hbC5oIgpAQCAtMTI3LDYgKzEyNiw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdVdGlsaXRp
ZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaWV3cG9y
dEFyZ3VtZW50cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJWaWV3VmlzdWFsSWRlbnRpZmljYXRp
b25PdmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dyaXRpbmdNb2RlLmg+CkBAIC0yMTgsNyAr
MjE4LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTQogCiBzdGF0
aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogewot
ICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
cyA9IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6
SU9TQXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RL
VmVyc2lvbjo6Rmlyc3RUaGF0RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
cyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZp
bGVVUkxzID0gKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0NhcmRpb2dyYW0oKSB8fCBXZWJD
b3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNOaWtlKCkpICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29y
ZTo6U0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21G
aWxlVVJMcyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21G
aWxlVVJMczsKIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBib29sIHNob3VsZFJlcXVp
cmVVc2VyR2VzdHVyZVRvTG8KIAogc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2No
ZW1lcygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9
IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jh
c2VVUkxTY2hlbWVzKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hl
bWVzID0gbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3Ry
aWN0c0Jhc2VVUkxTY2hlbWVzKTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2No
ZW1lczsKIH0KIApAQCAtMzEwLDcgKzMxMCw3IEBAIC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29u
ZmlndXJhdGlvbjooV0sKICAgICAgICAgV0tQcm9jZXNzUG9vbCAqcmVsYXRlZFdlYlZpZXdQcm9j
ZXNzUG9vbCA9IFtyZWxhdGVkV2ViVmlldy0+X2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdOwog
ICAgICAgICBpZiAocHJvY2Vzc1Bvb2wgJiYgcHJvY2Vzc1Bvb2wgIT0gcmVsYXRlZFdlYlZpZXdQ
cm9jZXNzUG9vbCkKICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1
bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJSZWxhdGVkIHdlYiB2aWV3ICVAIGhhcyBwcm9jZXNzIHBv
b2wgJUAgYnV0IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVzIGEgZGlmZmVyZW50IHByb2Nlc3MgcG9v
bCAlQCIsIHJlbGF0ZWRXZWJWaWV3LCByZWxhdGVkV2ViVmlld1Byb2Nlc3NQb29sLCBjb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sXTsKLSAgICAgICAgaWYgKFtyZWxhdGVkV2ViVmlldy0+X2NvbmZp
Z3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gIT0gW19jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRh
U3RvcmVdICYmIGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aEV4
Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMsIFdlYktp
dDo6QXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyOjpObykpCisgICAgICAgIGlmIChb
cmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29u
ZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6
U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlm
ZmVyZW50RGF0YVN0b3JlcywgV2ViQ29yZTo6QXNzdW1lU2FmYXJpSXNBbHdheXNMaW5rZWRPbkFm
dGVyOjpObykpCiAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1l
bnRFeGNlcHRpb24gZm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmlldyAlQCBoYXMgZGF0YSBzdG9yZSAl
QCBidXQgY29uZmlndXJhdGlvbiBzcGVjaWZpZXMgYSBkaWZmZXJlbnQgZGF0YSBzdG9yZSAlQCIs
IHJlbGF0ZWRXZWJWaWV3LCBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVE
YXRhU3RvcmVdLCBbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV1dOwogCiAgICAgICAg
IFtfY29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpyZWxhdGVkV2ViVmlld1Byb2Nlc3NQb29s
XTsKQEAgLTQ3OCw3ICs0NzgsNyBAQCAgICAgLy8gV2UgYXJlIGluIHRoZSBWaWV3J3MgaW5pdGlh
bGl6YXRpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldEFsbG93U2V0
dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyhzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFk
ZXJGcm9tRmlsZVVSTHMoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCkt
PnNldFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCEhW19j
b25maWd1cmF0aW9uIF9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJl
dmlld10pOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnByZWZlcmVuY2VzKCktPnNldERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVu
YWJsZWQobGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJKSk7CisgICAgcGFnZUNvbmZpZ3VyYXRp
b24tPnByZWZlcmVuY2VzKCktPnNldERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJs
ZWQobGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aERldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkFQSSkpOwogI2VuZGlmCiAjaWYgVVNFKFNZU1RF
TV9QUkVWSUVXKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTeXN0
ZW1QcmV2aWV3RW5hYmxlZCghIVtfY29uZmlndXJhdGlvbiBfc3lzdGVtUHJldmlld0VuYWJsZWRd
KTsKQEAgLTUyNiw3ICs1MjYsNyBAQCAgICAgLy8gV2UgYXJlIGluIHRoZSBWaWV3J3MgaW5pdGlh
bGl6YXRpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNlcnZpY2VX
b3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZyghIVtfY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10uX3NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZyk7CiAj
ZW5kaWYKIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmly
c3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICgh
bGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVTaXRlU3BlY2lm
aWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KSkKICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24t
PnByZWZlcmVuY2VzKCktPnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGZhbHNlKTsKIH0KIApA
QCAtNzgwLDcgKzc4MCw3IEBAIC0gKFdLTmF2aWdhdGlvbiAqKWdvRm9yd2FyZAogLSAoV0tOYXZp
Z2F0aW9uICopcmVsb2FkCiB7CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4g
cmVsb2FkT3B0aW9uczsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lv
bjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKGxpbmtlZE9u
T3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJl
aGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9u
OjpFeHBpcmVkT25seSk7CiAKICAgICByZXR1cm4gd3JhcHBlcihfcGFnZS0+cmVsb2FkKHJlbG9h
ZE9wdGlvbnMpKTsKQEAgLTEwMjQsNyArMTAyNCw3IEBAIC0gKHZvaWQpdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246KFcKICAgICAgICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25hcHNo
b3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRh
dGVzKSB8fCAhbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoU25h
cHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CisgICAgaWYgKChzbmFwc2hvdENvbmZpZ3VyYXRp
b24gJiYgIXNuYXBzaG90Q29uZmlndXJhdGlvbi5hZnRlclNjcmVlblVwZGF0ZXMpIHx8ICFsaW5r
ZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoU25hcHNob3RBZnRlclNj
cmVlblVwZGF0ZXMpKSB7CiAgICAgICAgIGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCShyZXZpc2lvbiAyNjc5Mzgp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogCiAjaW1wb3J0ICJBUElQ
YWdlQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCi0jaW1w
b3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXS1ByZWZlcmVuY2VzLmgiCiAjaW1wb3J0
ICJXS1Byb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgpAQCAtNDUsNiArNDQs
NyBAQAogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0IDxX
ZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0
aW5ncy5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMUGFyc2VyLmg+CiAjaW1wb3J0IDx3dGYvV2Vh
a09iakNQdHIuaD4KQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgX1dLRHJhZ0xpZnREZWxheSB0
b0RyYWdMaWZ0RGVsYXkoCiBzdGF0aWMgYm9vbCBkZWZhdWx0U2hvdWxkRGVjaWRlUG9saWN5QmVm
b3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogewogI2lmIFVTRShRVUlDS19MT09LKQotICAg
IHN0YXRpYyBib29sIHNob3VsZERlY2lkZSA9IGxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1Zl
cnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmll
dyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVyKFdlYkNv
cmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tM
b29rUHJldmlldyk7CiAgICAgcmV0dXJuIHNob3VsZERlY2lkZTsKICNlbHNlCiAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMjAwLDcgKzIwMCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAKICAgICBf
bWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5ID0gTk87CiAjaWYgIVBMQVRGT1JNKFdBVENIT1Mp
Ci0gICAgaWYgKFdlYktpdDo6bGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmly
c3RXaXRoTWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCisgICAgaWYg
KFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhN
ZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKICAgICAgICAgX21lZGlh
VHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBXS0F1ZGlvdmlzdWFsTWVkaWFU
eXBlQXVkaW87CiAgICAgZWxzZQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0JKHJldmlzaW9u
IDI2NzkzOCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQgIkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgogI2ltcG9ydCAiQ29tcGxl
dGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0
aXN0aWNzLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXS0hUVFBDb29r
aWVTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKICNpbXBvcnQgIldLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgpAQCAtNDUsNiArNDQsNyBAQAogI2ltcG9ydCAi
X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NyZWRlbnRp
YWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVnaXN0cmF0aW9uRGF0YWJhc2UuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1w
b3J0IDx3dGYvVVJMLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KQEAgLTExOCw3ICsx
MTgsNyBAQCArIChXS1dlYnNpdGVEYXRhU3RvcmUgKilub25QZXJzaXN0ZW50RGF0CiAKIC0gKGlu
c3RhbmNldHlwZSlpbml0CiB7Ci0gICAgaWYgKFdlYktpdDo6bGlua2VkT25PckFmdGVyKFdlYktp
dDo6U0RLVmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05p
bCkpCisgICAgaWYgKFdlYkNvcmU6OmxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9u
OjpGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsKSkKICAgICAgICAg
W05TRXhjZXB0aW9uIHJhaXNlOk5TR2VuZXJpY0V4Y2VwdGlvbiBmb3JtYXQ6QCJDYWxsaW5nIFtX
S1dlYnNpdGVEYXRhU3RvcmUgaW5pdF0gaXMgbm90IHN1cHBvcnRlZC4iXTsKICAgICAKICAgICBp
ZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCShyZXZpc2lvbiAyNjc5MzgpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRh
LmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgiCi0jaW1wb3J0
ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aCIKICNpbXBvcnQgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tCYWNrRm9y
d2FyZExpc3RJdGVtSW50ZXJuYWwuaCIKQEAgLTU0LDYgKzUzLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvSU9TdXJmYWNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsQ3VycmVudFRyYWl0Q29sbGVj
dGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29y
ZVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2lt
cG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CkBAIC01ODEsNyArNTgxLDcgQEAgLSAoVUlF
ZGdlSW5zZXRzKV9jb21wdXRlZE9ic2N1cmVkSW5zZXRGbwogCiAtIChVSUVkZ2VJbnNldHMpX2Nv
bXB1dGVkT2JzY3VyZWRJbnNldAogewotICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYktpdDo6
U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3Vy
aW5nSW5zZXRzKSkgeworICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNp
b246OkZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0
cykpIHsKICAgICAgICAgLy8gRm9yIGJpbmFyeSBjb21wYWJpbGl0eSB3aXRoIHRoaXJkIHBhcnR5
IGFwcHMsIHRyZWF0IHNjcm9sbCB2aWV3IGNvbnRlbnQgaW5zZXRzIGFzIG9ic2N1cmluZyBpbnNl
dHMgd2hlbiB0aGUgYXBwIGlzIGNvbXBpbGVkCiAgICAgICAgIC8vIGFnYWluc3QgYSBXZWJLaXQg
dmVyc2lvbiB3aXRob3V0IHRoZSBmaXggaW4gcjIyOTY0MS4KICAgICAgICAgcmV0dXJuIFtzZWxm
IF9jb21wdXRlZENvbnRlbnRJbnNldF07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvbWFjL1dLV2ViVmlld01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDYgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFwcEtpdFNQ
SS5oIgotI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiV0tDb250ZW50Vmlld01h
Yy5oIgogI2ltcG9ydCAiV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJXS1Njcm9s
bFZpZXdNYWMuaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCiAj
aW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tIaXRUZXN0UmVz
dWx0SW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVyU1BJLmg+CiAKIF9XS092ZXJsYXlTY3JvbGxiYXJT
dHlsZSB0b0FQSVNjcm9sbGJhclN0eWxlKE9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92ZXJs
YXlTdHlsZT4gY29yZVNjcm9sbGJhclN0eWxlKQpAQCAtMTE1Niw3ICsxMTU2LDcgQEAgLSAoV0tE
cmFnRGVzdGluYXRpb25BY3Rpb24pX3dlYl9kcmFnRGVzdAogICAgIGlmIChbdWlEZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRyYWdEZXN0aW5hdGlvbkFjdGlv
bk1hc2tGb3JEcmFnZ2luZ0luZm86KV0pCiAgICAgICAgIHJldHVybiBbdWlEZWxlZ2F0ZSBfd2Vi
VmlldzpzZWxmIGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86ZHJhZ2dp
bmdJbmZvXTsKIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6
Rmlyc3RXaXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKKyAgICBpZiAoIWxp
bmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0
ZURpc2FsbG93ZWRCeURlZmF1bHQpKQogICAgICAgICByZXR1cm4gV0tEcmFnRGVzdGluYXRpb25B
Y3Rpb25Bbnk7CiAKICAgICByZXR1cm4gV0tEcmFnRGVzdGluYXRpb25BY3Rpb25BbnkgJiB+V0tE
cmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmVyc2lvbkNoZWNrcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZlcnNpb25DaGVja3MuaAkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5oCShub25leGlzdGVudCkKQEAgLTEs
ODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbXBvcnQgPHd0
Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0j
aW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvVmVyc2lvbkNoZWNrc0FkZGl0aW9ucy5oPgotI2Vsc2UK
LSNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9XSVRIX0lPU19BUFBTX09OX01BQ09TIDAK
LSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotZW51bSBjbGFzcyBTREtWZXJzaW9uIDog
dWludDMyX3QgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmlyc3RXaXRoTmV0d29y
a0NhY2hlID0gRFlMRF9JT1NfVkVSU0lPTl85XzAsCi0gICAgRmlyc3RXaXRoTWVkaWFUeXBlc1Jl
cXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAg
ICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9
IERZTERfSU9TX1ZFUlNJT05fMTFfMCwKLSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJl
aGF2aW9yID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93c1Nl
dHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0g
ICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBE
WUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5z
ZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZp
cnN0V2hlcmVVSVNjcm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9u
YWxseSA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVs
ZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAg
IEZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aExhenlHZXN0dXJlUmVjb2duaXplcklu
c3RhbGxhdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKLSAgICBGaXJzdFdpdGhQcm9jZXNz
U3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTJfMiwKLSAgICBG
aXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNf
MCwKLSAgICBGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25BUEkg
PSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RUaGF0RGVjaWRlc1BvbGljeUJlZm9y
ZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZp
cnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9y
ZXMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoTW9kZXJuQ29tcGFiaWxp
dHlNb2RlQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdEhh
c1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBG
aXJzdFdoZXJlV0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzID0gRFlMRF9J
T1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1h
aW5GcmFtZSA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdoZXJlU2l0ZVNwZWNp
ZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMiwKLSAg
ICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfSU9TX1ZFUlNJT05fMTNf
NCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJ
T05fMTRfMCwKLSAgICBGaXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNlRXZlbnRzID0gRFlMRF9JT1Nf
VkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFz
c2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdpdGhXS1dlYnNpdGVE
YXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZp
cnN0VmVyc2lvbldpdGhpT1NBcHBzT25NYWNPUyA9IERZTERfSU9TX1ZFUlNJT05fRklSU1RfV0lU
SF9JT1NfQVBQU19PTl9NQUNPUywKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICBGaXJzdFdpdGhO
ZXR3b3JrQ2FjaGUgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzExLAotICAgIEZpcnN0V2l0aEV4
Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMywKLSAgICBGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURl
ZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0
V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkgPSBEWUxEX01BQ09T
WF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxT
YW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKLSAgICBGaXJzdFdp
dGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUs
Ci0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50
RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaGVyZVNp
dGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzE1XzEsCi0gICAgRmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE1XzQsCi0gICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1
bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAotICAgIEZpcnN0V2l0aEluaXRpYWxpemVX
ZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0g
ICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTYsCi0jZW5kaWYKLX07Ci0KLWVudW0gY2xhc3MgQXNzdW1lU2FmYXJp
SXNBbHdheXNMaW5rZWRPbkFmdGVyIDogYm9vbCB7IE5vLCBZZXMgfTsKLWJvb2wgbGlua2VkT25P
ckFmdGVyKFNES1ZlcnNpb24sIEFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlciA9IEFz
c3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRlcjo6WWVzKTsKLQotfQpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLm1tCShyZXZpc2lvbiAy
Njc5MzgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLm1t
CShub25leGlzdGVudCkKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9y
dCAiY29uZmlnLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCi0KLSNpbXBvcnQgPFdlYkNv
cmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+Ci0jaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgot
I2ltcG9ydCA8bXV0ZXg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdGF0aWMgTlNTdHJpbmcg
KiBjb25zdCBXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nS2V5ID0gQCJXZWJLaXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIjsKLQotYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lv
biBzZGtWZXJzaW9uLCBBc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXIgYXNzdW1lU2Fm
YXJpSXNBbHdheXNMaW5rZWRPbkFmdGVyKQotewotICAgIHN0YXRpYyBib29sIGxpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmcgPSBmYWxzZTsKLSAgICBzdGF0aWMgYm9vbCBpc1NhZmFyaSA9IGZhbHNl
OwotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2UsIFtdIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBpZiAoV2ViQ29yZTo6
SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkpCi0gICAgICAgICAgICBpc1NhZmFyaSA9
IHRydWU7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgICAgIGlmIChXZWJDb3JlOjpNYWNBcHBs
aWNhdGlvbjo6aXNTYWZhcmkoKSkKLSAgICAgICAgICAgIGlzU2FmYXJpID0gdHJ1ZTsKLSNlbmRp
ZgotCi0gICAgICAgIGlmIChbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBi
b29sRm9yS2V5OldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdLZXldKQotICAgICAgICAg
ICAgbGlua2VkT25PckFmdGVyRXZlcnl0aGluZyA9IHRydWU7Ci0gICAgfSk7Ci0KLSAgICBpZiAo
VU5MSUtFTFkobGlua2VkT25PckFmdGVyRXZlcnl0aGluZykpCi0gICAgICAgIHJldHVybiB0cnVl
OwotCi0gICAgaWYgKGlzU2FmYXJpICYmIGFzc3VtZVNhZmFyaUlzQWx3YXlzTGlua2VkT25BZnRl
ciA9PSBBc3N1bWVTYWZhcmlJc0Fsd2F5c0xpbmtlZE9uQWZ0ZXI6OlllcykKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICBhdXRvIHNka1ZlcnNpb25Bc0ludGVnZXIgPSBzdGF0aWNfY2FzdDx1
aW50MzJfdD4oc2RrVmVyc2lvbik7Ci0gICAgcmV0dXJuIHNka1ZlcnNpb25Bc0ludGVnZXIgJiYg
ZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpID49IHNka1ZlcnNpb25Bc0ludGVnZXI7Ci19
Ci0KLX0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzksNyArMzksNiBAQAogI2ltcG9ydCAiU2FuZGJveFV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGV4
dENoZWNrZXIuaCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgotI2ltcG9ydCAiVmVy
c2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJu
YWwuaCIKICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYk1lbW9y
eVByZXNzdXJlSGFuZGxlci5oIgpAQCAtNjAsMTUgKzU5LDE1IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgotI2ltcG9ydCA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvY29jb2EvTWVkaWFUb29sYm94
U29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0
IDxzeXMvcGFyYW0uaD4KICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDx3dGYv
UHJvY2Vzc1ByaXZpbGVnZS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0
IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hT
UEkuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KIApAQCAtOTIsNiArOTEs
OSBAQAogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjZW5kaWYKIAorI2ltcG9y
dCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvY29jb2EvTWVkaWFU
b29sYm94U29mdExpbmsuaD4KKwogTlNTdHJpbmcgKldlYlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EaXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSI7CiBOU1N0cmluZyAqV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5ID0gQCJXZWJL
aXRMb2NhbENhY2hlIjsKIE5TU3RyaW5nICpXZWJLaXRKU0NKSVRFbmFibGVkRGVmYXVsdHNLZXkg
PSBAIldlYktpdEpTQ0pJVEVuYWJsZWREZWZhdWx0c0tleSI7CkBAIC0zNDcsNyArMzQ5LDcgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKHBhcmFtZXRlcnMudWlQcm9j
ZXNzQnVuZGxlUmVzb3VyY2VQYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwg
cGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOwog
CiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gYXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uID0g
ZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOworICAgIHBhcmFtZXRlcnMudWlQcm9jZXNz
U0RLVmVyc2lvbiA9IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpOwogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBpZiAoIW1fcmVzb2x2ZWRQYXRocy5jb29raWVTdG9yYWdlRGlyZWN0b3J5
LmlzRW1wdHkoKSkKQEAgLTQ5MCw3ICs0OTIsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVO
ZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKIHsKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKLSAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNp
b24gPSBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7CisgICAgcGFyYW1ldGVycy51aVBy
b2Nlc3NTREtWZXJzaW9uID0gYXBwbGljYXRpb25TREtWZXJzaW9uKCk7CiAKICAgICBOU1VzZXJE
ZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNd
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCShyZXZpc2lvbiAy
Njc5MzgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNp
ZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFQSU5hdmlnYXRpb24uaCIKLSNpbXBvcnQgIlZl
cnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvLmgiCiAjaW1wb3J0ICJXS0luc3Bl
Y3RvcldLV2ViVmlldy5oIgogI2ltcG9ydCAiV0tOYXZpZ2F0aW9uQWN0aW9uLmgiCkBAIC00Myw2
ICs0Miw3IEBACiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2ltcG9ydCAiV2ViSW5z
cGVjdG9yVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKIEBp
bnRlcmZhY2UgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAoKSA8V0tVSURlbGVnYXRlLCBXS05h
dmlnYXRpb25EZWxlZ2F0ZSwgV0tJbnNwZWN0b3JXS1dlYlZpZXdEZWxlZ2F0ZT4KQEAgLTI1Miw3
ICsyNTIsNyBAQCAtICh2b2lkKWluc3BlY3RvcldLV2ViVmlld1JlbG9hZDooV0tJbnNwCiAgICAg
ICAgIHJldHVybjsKIAogICAgIE9wdGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IHJlbG9h
ZE9wdGlvbnM7Ci0gICAgaWYgKFdlYktpdDo6bGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVy
c2lvbjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKFdlYkNv
cmU6OmxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVk
T25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6
UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2Fk
KHJlbG9hZE9wdGlvbnMpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmNwcAkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2Fj
dGlvbi5oIgotI2luY2x1ZGUgIlZlcnNpb25DaGVja3MuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAtNDIsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvU2Nyb2xsaW5nU3RhdGVQb3NpdGlvbmVkTm9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2Nyb2xsaW5nU3RhdGVUcmVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yNjYsNyAr
MjY2LDcgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChXZWJD
b3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVudGJyaXRlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihX
ZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5G
cmFtZSkpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAm
JiAhbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFN1cHBvcnRz
T3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlm
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
CShyZXZpc2lvbiAyNjc5MzgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBAQAogI2ltcG9ydCAiUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiU21hcnRNYWduaWZpY2F0
aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKLSNpbXBvcnQgIlZlcnNpb25D
aGVja3MuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgi
CiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tJ
bnNwZWN0b3JIaWdobGlnaHRWaWV3LmgiCkBAIC02Myw2ICs2Miw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1F1aXJrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvVmVsb2NpdHlEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Zl
cnNpb25DaGVja3MuaD4KICNpbXBvcnQgPG9iamMvbWVzc2FnZS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0FjY2Vzc2liaWxpdHlTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVh
cnR6Q29yZVNQSS5oPgpAQCAtMTkwLDcgKzE5MCw3IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9u
SW5pdGlhbGl6YXRpb25XaXQKICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9maXhlZENsaXBwaW5nVmll
dy5nZXQoKV07CiAgICAgW19maXhlZENsaXBwaW5nVmlldyBhZGRTdWJ2aWV3Ol9yb290Q29udGVu
dFZpZXcuZ2V0KCldOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJz
aW9uOjpGaXJzdFdpdGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24pKQorICAgIGlm
ICghbGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2l0aExhenlHZXN0
dXJlUmVjb2duaXplckluc3RhbGxhdGlvbikpCiAgICAgICAgIFtzZWxmIHNldFVwSW50ZXJhY3Rp
b25dOwogICAgIFtzZWxmIHNldFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQ6WUVTXTsKIApAQCAtMjEy
LDcgKzIxMiw3IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5pdGlhbGl6YXRpb25XaXQKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYg
c2VsZWN0b3I6QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5hbWU6VUlTY3Jl
ZW5DYXB0dXJlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVuIG1haW5TY3Jl
ZW5dXTsKIAogI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCi0gICAgaWYgKFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3RlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJL
aXQ6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5
Q29tbWFuZHMpKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgp
ICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVdLQ29u
dGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCiAgICAgICAgIGNsYXNzX2FkZE1l
dGhvZChzZWxmLmNsYXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpLCByZWludGVycHJldF9jYXN0
PElNUD4oJmtleUNvbW1hbmRzUGxhY2Vob2xkZXJIYWNrRm9yRXZlcm5vdGUpLCBtZXRob2RfZ2V0
VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKHNlbGYuY2xhc3MsIEBzZWxlY3Rv
cihrZXlDb21tYW5kcykpKSk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lv
biAyNjc5MzgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw2IEBACiAjaW1wb3J0ICJU
ZXh0SW5wdXRTUEkuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJm
YWNlSWRpb20uaCIKLSNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLQWN0aW9u
U2hlZXRBc3Npc3RhbnQuaCIKICNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmgiCkBAIC0x
MTcsNiArMTE2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9W
aXNpYmxlU2VsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dyaXRpbmdEaXJlY3Rpb24uaD4KQEAgLTcwOTgsNyArNzA5OCw3IEBAIC0gKHZv
aWQpcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUYKIC0gKEJPT0wpX3Nob3VsZFVzZUNv
bnRleHRNZW51cwogewogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFdlYktpdDo6U0RLVmVyc2lvbjo6Rmlyc3RU
aGF0SGFzVUlDb250ZXh0TWVudUludGVyYWN0aW9uKTsKKyAgICByZXR1cm4gbGlua2VkT25PckFm
dGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdEhhc1VJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbik7CiAjZW5kaWYKICAgICByZXR1cm4gTk87CiB9CkBAIC04NTY3LDcgKzg1NjcsNyBAQCBz
dGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vCiAgICAgICAgIHJldHVybiBZ
RVM7CiAgICAgfQogCi0gICAgaWYgKCFXZWJLaXQ6OmxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNE
S1ZlcnNpb246OkZpcnN0VmVyc2lvbldpdGhpT1NBcHBzT25NYWNPUykpIHsKKyAgICBpZiAoIVdl
YkNvcmU6OmxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25X
aXRoaU9TQXBwc09uTWFjT1MpKSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNGSUZBQ29tcGFuaW9uKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzY3MDkzNDg3PgogICAgICAg
ICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTm9nZ2luKCkgLy8gPHJkYXI6Ly9w
cm9ibGVtLzY0ODMwMzM1PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246
OmlzT0tDdXBpZCgpIC8vIDxyZGFyOi8vcHJvYmxlbS82NTY5ODQ5Nj4KQEAgLTg1NzksNyArODU3
OSw3IEBAIHN0YXRpYyBCT09MIGFwcGxpY2F0aW9uSXNLbm93blRvSWdub3JlTW8KICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmICghV2ViS2l0OjpsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtW
ZXJzaW9uOjpGaXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkgeworICAgIGlmICghV2Vi
Q29yZTo6bGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFNlbmRz
TmF0aXZlTW91c2VFdmVudHMpKSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNQb2NrZXRDaXR5KCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzYyMjczMDc3PgogICAgICAgICAg
ICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRXNzZW50aWFsU2tlbGV0b24oKSAvLyA8
cmRhcjovL3Byb2JsZW0vNjI2OTQ1MTk+CiAgICAgICAgICAgICB8fCBXZWJDb3JlOjpJT1NBcHBs
aWNhdGlvbjo6aXNFU1BORmFudGFzeVNwb3J0cygpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDY3MTU0
Mz4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQko
cmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xs
Vmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksOSBAQAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tz
LmgiCiAjaW1wb3J0ICJXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJX
S1dlYlZpZXdJT1MuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9y
dCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0
ci5oPgogCkBAIC0zNzksNyArMzc5LDcgQEAgLSAoVUlFZGdlSW5zZXRzKV9zeXN0ZW1Db250ZW50
SW5zZXQKICAgICAvLyB0byBpbmNsdWRlIGtleWJvYXJkIGluc2V0cyBpbiB0aGUgc3lzdGVtQ29u
dGVudEluc2V0LiBXZSBhbHdheXMgd2FudAogICAgIC8vIGtleWJvYXJkIGluc2V0cyBhcHBsaWVk
LCBldmVuIHdoZW4gd2ViIGNvbnRlbnQgaGFzIGNob3NlbiB0byBkaXNhYmxlIGF1dG9tYXRpYwog
ICAgIC8vIHNhZmUgYXJlYSBpbnNldCBhZGp1c3RtZW50LgotICAgIGlmIChsaW5rZWRPbk9yQWZ0
ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5
S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudEluc2V0QWRqdXN0
bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1lbnROZXZlcikK
KyAgICBpZiAobGlua2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVV
SVNjcm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSkgJiYg
c2VsZi5jb250ZW50SW5zZXRBZGp1c3RtZW50QmVoYXZpb3IgPT0gVUlTY3JvbGxWaWV3Q29udGVu
dEluc2V0QWRqdXN0bWVudE5ldmVyKQogICAgICAgICBzeXN0ZW1Db250ZW50SW5zZXQuYm90dG9t
ICs9IF9rZXlib2FyZEJvdHRvbUluc2V0QWRqdXN0bWVudDsKIAogICAgIHJldHVybiBzeXN0ZW1D
b250ZW50SW5zZXQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0JKHJldmlzaW9uIDI2NzkzOCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDYg
QEAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJVc2VyRGF0YS5oIgogI2ltcG9ydCAi
VXNlckludGVyZmFjZUlkaW9tLmgiCi0jaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0
ICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIlZpZXdVcGRhdGVEaXNw
YXRjaGVyTWVzc2FnZXMuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcklu
dGVybmFsLmgiCkBAIC03MCw2ICs2OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmFs
aWRhdGlvbkJ1YmJsZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9U
ZXh0U3RyZWFtLmg+CiAKQEAgLTE0NTQsNyArMTQ1NCw3IEBAIHN0YXRpYyBib29sIGRlc2t0b3BD
bGFzc0Jyb3dzaW5nUmVjb21tZW4KICAgICAgICAgLy8gV2hpbGUgZGVza3RvcC1jbGFzcyBicm93
c2luZyBpcyBzdXBwb3J0ZWQgb24gYWxsIGlQYWQgbW9kZWxzLCBpdCBpcyBub3QgcmVjb21tZW5k
ZWQgZm9yIGlQYWQgbWluaS4KICAgICAgICAgYXV0byBzY3JlZW5DbGFzcyA9IE1HR2V0U0ludDMy
QW5zd2VyKGtNR1FNYWluU2NyZWVuQ2xhc3MsIE1HU2NyZWVuQ2xhc3NQYWQyKTsKICAgICAgICAg
c2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBzY3JlZW5DbGFzcyAhPSBNR1Nj
cmVlbkNsYXNzUGFkMyAmJiBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkNCAmJiBkZXNr
dG9wQ2xhc3NCcm93c2luZ1N1cHBvcnRlZCgpOwotICAgICAgICBpZiAoaWdub3JlU2FmZWd1YXJk
cyA9PSBJZ25vcmVBcHBDb21wYXRpYmlsaXR5U2FmZWd1YXJkczo6Tm8gJiYgIWxpbmtlZE9uT3JB
ZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5
RGVmYXVsdCkpIHsKKyAgICAgICAgaWYgKGlnbm9yZVNhZmVndWFyZHMgPT0gSWdub3JlQXBwQ29t
cGF0aWJpbGl0eVNhZmVndWFyZHM6Ok5vICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViQ29yZTo6U0RL
VmVyc2lvbjo6Rmlyc3RXaXRoTW9kZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0KSkgewogICAg
ICAgICAgICAgLy8gT3B0IG91dCBhcHBzIHRoYXQgaGF2ZW4ndCB5ZXQgYnVpbHQgYWdhaW5zdCB0
aGUgaU9TIDEzIFNESyB0byBsaW1pdCBhbnkgaW5jb21wYXRpYmlsaXRpZXMgYXMgYSByZXN1bHQg
b2YgZW5hYmxpbmcgZGVza3RvcC1jbGFzcyBicm93c2luZyBieSBkZWZhdWx0IGluCiAgICAgICAg
ICAgICAvLyBXS1dlYlZpZXcgb24gYXBwcm9wcmlhdGVseS1zaXplZCBpUGFkIG1vZGVscy4KICAg
ICAgICAgICAgIHNob3VsZFJlY29tbWVuZERlc2t0b3BDbGFzc0Jyb3dzaW5nID0gZmFsc2U7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDI2NzkzOCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE4MjMsNyArMTgyMyw2IEBACiAJCUU0OUQ0
MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIxNzAw
NjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CiAJCUU0RDU0RDA0MjFG
MUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9T
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBDMUY5
MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJU
cmVlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTRFNTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsgfTsK
LQkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTg2NDhFMUIxNjczRkIwMEM4
MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERBREEy
NyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAwQkUz
QzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQ
aWNrZXIuaCAqLzsgfTsKIAkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1l
Q2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTU1Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9OwpA
QCAtNTMzMSw4ICs1MzMwLDYgQEAKIAkJRTQ5RDQwRDgxQUQzRkIyMTAwNjZCN0I5IC8qIE5ldHdv
cmtDYWNoZUJsb2JTdG9yYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTRFNTdGNjgyMUE4M0IwMzAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXllclRyZWVO
b2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2QTIxQTgzQjExMDAz
NDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVMYXllclRyZWVOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZlcnNpb25DaGVja3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRTRFODY0OEYxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWZXJzaW9uQ2hlY2tz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURB
MjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NTJDRjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBX
S0Zvcm1Db2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBw
YXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC02MzQ0LDggKzYzNDEsNiBAQAogCQkJCTQ2MzIzNjg1MjMxNDgzM0YwMEE0OEZB
NyAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8sCiAJCQkJMDcwMjU5QkUyNTIyODQxQzAw
MTUzNDA1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tICovLAog
CQkJCTQxMUE5QTlBMjUxREU5M0UwMDgwN0Q3RSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Lm1tICovLAotCQkJCUU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hl
Y2tzLmggKi8sCi0JCQkJRTRFODY0OEYxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3Mu
bW0gKi8sCiAJCQkJNTJENUExQUExQzU3NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5oICovLAogCQkJCTUyRDVBMUFCMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTJENUExQUMxQzU3NDk0
RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSAqLywKQEAgLTExMTc2
LDcgKzExMTcxLDYgQEAKIAkJCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBM0ND
MThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNzRFNzVGRTFERjIyMTE5MDBEMzE4RUMgLyogVXNlck1lZGlh
UHJvY2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0RTg2NDkzMUIxNjc1MDcwMEM4
MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFCMDFDNTc0
OTVBMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDEyNUM1RTE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDFCNUQ1RTE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dl
c3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lv
biAyNjc5MzgpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1NXQ29udGV4dE1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmVyc2lv
bkNoZWNrcy5oPgogI2ltcG9ydCA8YWxnb3JpdGhtPgogI2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0
Y2guaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgpJbmRleDogU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMTAtMDMgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVbmlmeSBs
aW5rZWRPbk9yQWZ0ZXIgZHVwbGljYXRlIGNvZGUgYW5kIHVzZSBTUEkvV2ViQ29yZVRlc3RTdXBw
b3J0IGluc3RlYWQgb2YgTlNVc2VyRGVmYXVsdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlEZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV2ViRGVmYXVsdFVJRGVsZWdhdGUgd2ViVmlldzpkcmFnRGVz
dGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOl0pOgorICAgICAgICAqIE1pc2MvV2Vi
SWNvbkRhdGFiYXNlLm1tOgorICAgICAgICAoK1tXZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNvbkRh
dGFiYXNlXSk6CisgICAgICAgICogTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLmg6CisgICAgICAg
ICogTWlzYy9XZWJLaXRWZXJzaW9uQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0TGlua1RpbWVW
ZXJzaW9uKToKKyAgICAgICAgKGxpbmtlZE9uT3JBZnRlcik6IERlbGV0ZWQuCisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW06CisgICAgICAgIChXZWJLaXQ6
OmRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KToKKyAgICAg
ICAgKFdlYktpdDo6ZGVmYXVsdFNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMpOgorCiAyMDIw
LTEwLTAzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pT
Q10gSW50cm9kdWNlIEpJVE9wZXJhdGlvbkxpc3QgdG8gdmFsaWRhdGUgSklULWNhZ2VkIHBvaW50
ZXJzCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRl
ZmF1bHRVSURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0JKHJldmlzaW9uIDI2Nzkz
OCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVs
dFVJRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAiV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVs
LmgiCi0jaW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1Zl
cnNpb25DaGVja3MuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIx
NiwxMSArMjE2LDEwIEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBwcmludEYK
IHsKIH0KIAotCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAtIChOU1VJbnRlZ2VyKXdlYlZp
ZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2lu
Z0luZm86KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCiB7Ci0gICAgaWYgKCFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2Vk
QnlEZWZhdWx0KSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihXZWJDb3JlOjpTREtWZXJzaW9u
OjpGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQogICAgICAgICBy
ZXR1cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55OwogCiAgICAgcmV0dXJuIFdlYkRyYWdE
ZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XZWJEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOwpJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0J
KHJldmlzaW9uIDI2NzkzOCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViSWNv
bkRhdGFiYXNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTAgQEAKIAogI2ltcG9y
dCAiV2ViSWNvbkRhdGFiYXNlLmgiCiAKLSNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIK
ICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQg
PFdlYkNvcmUvSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlSklU
T3BlcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgpAQCAtMTA4LDcgKzEwOCw3IEBAICsgKFdlYkljb25EYXRhYmFzZSAq
KXNoYXJlZEljb25EYXRhYmFzZQogICAgIHN0YXRpYyBXZWJJY29uRGF0YWJhc2UgKmRhdGFiYXNl
OwogICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZTsKICAgICBkaXNwYXRjaF9vbmNlKCZv
bmNlLCBeIHsKLSAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdp
dGhXZWJJY29uRGF0YWJhc2VXYXJuaW5nKSkKKyAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlcihX
ZWJDb3JlOjpTREtWZXJzaW9uOjpGaXJzdFdpdGhXZWJJY29uRGF0YWJhc2VXYXJuaW5nKSkKICAg
ICAgICAgICAgIE5TTG9nKEAiK1tXZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNvbkRhdGFiYXNlXSBp
cyBub3QgQVBJIGFuZCBzaG91bGQgbm90IGJlIHVzZWQuIFdlYkljb25EYXRhYmFzZSBubyBsb25n
ZXIgaGFuZGxlcyBpY29uIGxvYWRpbmcgYW5kIGl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVy
ZSByZWxlYXNlLiIpOwogCiAgICAgICAgIGRhdGFiYXNlID0gW1tXZWJJY29uRGF0YWJhc2UgYWxs
b2NdIGluaXRdOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRWZXJz
aW9uQ2hlY2tzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJLaXRWZXJzaW9uQ2hlY2tzLmgJKHJldmlzaW9uIDI2NzkzOCkKKysrIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViS2l0VmVyc2lvbkNoZWNrcy5oCSh3b3JraW5nIGNvcHkpCkBAIC03
MiwxOSArNzIsNiBAQAogI2RlZmluZSBXRUJLSVRfRklSU1RfVkVSU0lPTl9XSVRIX0NPTlRFTlRf
U0VDVVJJVFlfUE9MSUNZX1NPVVJDRV9TVEFSX1BST1RPQ09MX1JFU1RSSUNUSU9OIDM1NTUKICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCi1lbnVtIGNsYXNzIFNES1ZlcnNpb24gOiB1
aW50MzJfdCB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGaXJzdFRoYXREZWZhdWx0
c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCA9IERZTERfSU9TX1ZFUlNJT05fMTFf
MywKLSAgICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfSU9TX1ZFUlNJ
T05fMTNfNCwKLSNlbHNlCi0gICAgRmlyc3RXaXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlE
ZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKLSAgICBGaXJzdFdpdGhXZWJJY29u
RGF0YWJhc2VXYXJuaW5nID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKLSAgICBGaXJzdFRo
YXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCwK
LSNlbmRpZgotfTsKLQotYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbik7Ci0KICNpZmRl
ZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViS2l0VmVyc2lvbkNoZWNrcy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdFZlcnNpb25DaGVja3MubW0JKHJldmlzaW9u
IDI2NzkzOCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0VmVyc2lvbkNo
ZWNrcy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjgsMTYgKzY4LDMgQEAgc3RhdGljIGludCBXZWJL
aXRMaW5rVGltZVZlcnNpb24odm9pZCkKICAgICByZXR1cm4gTlNWZXJzaW9uT2ZMaW5rVGltZUxp
YnJhcnkoIlVJS2l0Iik7CiAjZW5kaWYKIH0KLQotYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVy
c2lvbiBzZGtWZXJzaW9uKQotewotICAgIHN0YXRpYyBib29sIGxpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmc7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7Ci0gICAgc3RkOjpjYWxsX29u
Y2Uob25jZSwgW10gewotICAgICAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJE
ZWZhdWx0c10gYm9vbEZvcktleTpAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciXSkK
LSAgICAgICAgICAgIGxpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcgPSB0cnVlOwotICAgIH0pOwot
ICAgIGlmIChVTkxJS0VMWShsaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgcmV0dXJuIGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKSA+PSBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oc2RrVmVyc2lvbik7Ci19CkluZGV4OiBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5tbQkocmV2aXNpb24gMjY3OTM4KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTI1LDkgKzI1LDkgQEAKIAogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
LmgiCiAKLSNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgPEZvdW5kYXRp
b24vTlNCdW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPG1hY2gtby9k
eWxkLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0ZlYXR1cmVGbGFnc1NQSS5oPgogI2ltcG9y
dCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CkBAIC0xMjgsNyAr
MTI4LDcgQEAgYm9vbCBkZWZhdWx0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUAogCiBib29s
IGRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsKLSAg
ICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9Q
YXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICByZXR1cm4gbGlua2VkT25PckFm
dGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hM
aXN0ZW5lcnNPbkRvY3VtZW50KTsKIH0KIAogYm9vbCBkZWZhdWx0UmVxdWlyZXNVc2VyR2VzdHVy
ZVRvTG9hZFZpZGVvKCkKQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIGRlZmF1bHRBdHRhY2htZW50
RWxlbWVudEVuYWJsZWQoKQogCiBib29sIGRlZmF1bHRTaG91bGRSZXN0cmljdEJhc2VVUkxTY2hl
bWVzKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0g
bGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hl
bWVzKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0gbGlu
a2VkT25PckFmdGVyKFdlYkNvcmU6OlNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VV
UkxTY2hlbWVzKTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsKIH0K
IApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjY3OTM4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjggQEAKKzIwMjAtMTAtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBVbmlmeSBsaW5rZWRPbk9yQWZ0ZXIgZHVwbGljYXRlIGNv
ZGUgYW5kIHVzZSBTUEkvV2ViQ29yZVRlc3RTdXBwb3J0IGluc3RlYWQgb2YgTlNVc2VyRGVmYXVs
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzIz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoc2V0RGVmYXVsdHNU
b0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlTWFp
bik6CisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL21haW4ubToKKyAgICAgICAgKG1haW4pOgor
ICAgICAgICAqIE1vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4ubToKKyAg
ICAgICAgKG1haW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVz
dFdURi54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tOgor
ICAgICAgICAobWFpbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvbWFpbk1hYy5tbToK
KyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1Mu
bW06CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9tYWlu
Lm1tOgorICAgICAgICAoc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKToK
KyAgICAgICAgKG1haW4pOgorCiAyMDIwLTEwLTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGV4dHJhIHNsYXNoIGFmdGVyIGVtcHR5
IGhvc3QgY29waWVkIGZyb20gYmFzZSBVUkwgaWYgcGF0aCBpcyBhbHNvIGVtcHR5CkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCShyZXZpc2lvbiAyNjc5
MzgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTEwMTgsNyArMTAxOCw2IEBAIHN0YXRpYyB2b2lkIHNldERlZmF1bHRzVG9D
b25zaXN0ZW50VmFsdWUKICAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkVuYWJsZWRQcmVmZXJlbmNl
S2V5OiBAWUVTLAogICAgICAgICBXZWJLaXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrUHJlZmVy
ZW5jZUtleTogQFlFUywKICAgICAgICAgV2ViS2l0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVz
UGxheXNJbmxpbmVBdHRyaWJ1dGVLZXk6IEBOTywKLSAgICAgICAgQCJXZWJLaXRMaW5rZWRPbk9y
QWZ0ZXJFdmVyeXRoaW5nIjogQFlFUywKICAgICAgICAgQCJVc2VXZWJLaXRXZWJJbnNwZWN0b3Ii
OiBAWUVTLAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBAIk5TUHJlZmVycmVk
U3BlbGxTZXJ2ZXJMYW5ndWFnZSI6IEAiZW5fVVMiLApAQCAtMTM5MCw2ICsxMzg5LDcgQEAgaW50
IER1bXBSZW5kZXJUcmVlTWFpbihpbnQgYXJnYywgY29uc3QgYwogCiAgICAgV1RGOjpzZXRQcm9j
ZXNzUHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6cGVybWl0UHJvY2Vzc1RvVXNlQ29va2llQVBJKHRydWUpOworICAgIFdlYkNv
cmVUZXN0U3VwcG9ydDo6c2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcoKTsK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgX1VJQXBwbGljYXRpb25Mb2FkV2ViS2l0
KCk7CkluZGV4OiBUb29scy9NaW5pQnJvd3Nlci9tYWMvbWFpbi5tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL01pbmlCcm93c2VyL21hYy9tYWluLm0JKHJldmlzaW9uIDI2NzkzOCkKKysrIFRvb2xzL01p
bmlCcm93c2VyL21hYy9tYWluLm0JKHdvcmtpbmcgY29weSkKQEAgLTI0LDEwICsyNCwxMSBAQAog
ICovCiAKICNpbXBvcnQgPENvY29hL0NvY29hLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNz
UG9vbFByaXZhdGUuaD4KIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLSAg
ICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOllFUyBmb3JL
ZXk6QCJXZWJLaXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nIl07CisgICAgW1dLUHJvY2Vzc1Bv
b2wgX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nXTsKIAogICAgIHJldHVy
biBOU0FwcGxpY2F0aW9uTWFpbihhcmdjLCAgKGNvbnN0IGNoYXIgKiopIGFyZ3YpOwogfQpJbmRl
eDogVG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWluaUJyb3dzZXIvbWFpbi5tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL01vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93c2VyL21haW4u
bQkocmV2aXNpb24gMjY3OTM4KQorKysgVG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWlu
aUJyb3dzZXIvbWFpbi5tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMCArMjQsMTEgQEAKICAqLwog
CiAjaW1wb3J0IDxNb2JpbGVNaW5pQnJvd3Nlci9Nb2JpbGVNaW5pQnJvd3Nlci5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAKIGludCBtYWluKGludCBhcmdjLCBj
aGFyICogYXJndltdKQogewotICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIHNldEJvb2w6WUVTIGZvcktleTpAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmci
XTsKKyAgICBbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRl
c3RpbmddOwogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CiAgICAgICAgIHJldHVybiBVSUFwcGxp
Y2F0aW9uTWFpbihhcmdjLCBhcmd2LCBuaWwsIE5TU3RyaW5nRnJvbUNsYXNzKFtBcHBEZWxlZ2F0
ZSBjbGFzc10pKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVz
dFdURi54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3Vy
YXRpb25zL1Rlc3RXVEYueGNjb25maWcJKHJldmlzaW9uIDI2NzkzOCkKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsOCBAQCBMSUJSQVJZX1NFQVJDSF9QQVRIUyA9ICQoUFJPSkVDVF9ESVIpL1Rl
CiAKIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVTOwogCitHQ0NfUFJFUFJPQ0VTU09S
X0RFRklOSVRJT05TID0gJChpbmhlcml0ZWQpIEJVSUxESU5HX1RFU1RfV1RGCisKIFVORVhQT1JU
RURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pON3Rlc3Rp
bmc0VGVzdDE2VGVhckRvd25UZXN0Q2FzZUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
Wk43dGVzdGluZzRUZXN0MTNTZXRVcFRlc3RDYXNlRXYKIAogT1RIRVJfTERGTEFHUyA9ICQoaW5o
ZXJpdGVkKSAkKFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MpIC1sZ3Rlc3QgLWZvcmNlX2xvYWQg
JChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXVEYuYSAkKE9USEVSX0xERkxBR1NfUExBVEZP
Uk0pOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvbWFpbklPUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tCShyZXZpc2lvbiAyNjc5Mzgp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw2ICsyNiw4IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlRlc3RzQ29udHJv
bGxlci5oIgogCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKwogaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewogICAgIE5TQXV0b3JlbGVhc2VQb29sICpw
b29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07CkBAIC0zNiwxMiArMzgsMTMg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkgKmFyZ3VtZW50RG9tYWluID0gW1tbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIHZvbGF0aWxlRG9tYWluRm9yTmFtZTpOU0FyZ3VtZW50RG9tYWluXSBtdXRhYmxlQ29weV07
CiAgICAgaWYgKCFhcmd1bWVudERvbWFpbikKICAgICAgICAgYXJndW1lbnREb21haW4gPSBbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdOwotICAgIAotICAgIE5TRGljdGlvbmFyeSAq
ZGljdCA9IEB7IEAiV2ViS2l0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZyI6IEBZRVMgfTsKIAot
ICAgIFthcmd1bWVudERvbWFpbiBhZGRFbnRyaWVzRnJvbURpY3Rpb25hcnk6ZGljdF07CiAgICAg
W1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Vm9sYXRpbGVEb21haW46
YXJndW1lbnREb21haW4gZm9yTmFtZTpOU0FyZ3VtZW50RG9tYWluXTsKIAorI2lmbmRlZiBCVUlM
RElOR19URVNUX1dURgorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVy
eXRoaW5nRm9yVGVzdGluZ107CisjZW5kaWYKKwogICAgIGJvb2wgcGFzc2VkID0gVGVzdFdlYktp
dEFQSTo6VGVzdHNDb250cm9sbGVyOjpzaW5nbGV0b24oKS5ydW4oYXJnYywgYXJndik7CiAKICAg
ICBbcG9vbCBkcmFpbl07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL21hYy9tYWluTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL21haW5NYWMubW0JKHJldmlz
aW9uIDI2NzkzOCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL21haW5NYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
VGVzdHNDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oPgorCiBleHRlcm4gIkMiIHZvaWQgX0JlZ2luRXZlbnRSZWNlaXB0T25UaHJlYWQodm9pZCk7
CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKQEAgLTQyLDE0ICs0NCwxNSBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgLy8gQ0FVVElPTjogRGVmYXVsdHMg
c2V0IGhlcmUgYXJlIG5vdCBhdXRvbWF0aWNhbGx5IHByb3BhZ2F0ZWQgdG8gdGhlCiAgICAgLy8g
V2ViIENvbnRlbnQgcHJvY2Vzcy4gVGhvc2UgbGlzdGVkIGJlbG93IGFyZSBwcm9wYWdhdGVkIG1h
bnVhbGx5LgogICAgIE5TRGljdGlvbmFyeSAqZGljdCA9IEB7Ci0gICAgICAgIEAiV2ViS2l0TGlu
a2VkT25PckFmdGVyRXZlcnl0aGluZyI6IEBZRVMsCi0KICAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBzd2l0Y2ggdGhlc2UgZGVmYXVsdHMgdG8gdXNlIG92ZXJsYXkKICAgICAgICAgLy8gc2Ny
b2xsYmFycywgc2luY2UgdGhleSBhcmUgdGhlIGRlZmF1bHQgb24gdGhlIHBsYXRmb3JtLAogICAg
ICAgICAvLyBidXQgYSB2YXJpZXR5IG9mIHRlc3RzIHdpbGwgbmVlZCBjaGFuZ2VzLgogICAgICAg
ICBAIk5TT3ZlcmxheVNjcm9sbGVyc0VuYWJsZWQiOiBATk8sCiAgICAgICAgIEAiQXBwbGVTaG93
U2Nyb2xsQmFycyI6IEAiQWx3YXlzIiwKICAgICB9OworI2lmbmRlZiBCVUlMRElOR19URVNUX1dU
RgorICAgIFtXS1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVz
dGluZ107CisjZW5kaWYKIAogICAgIFthcmd1bWVudERvbWFpbiBhZGRFbnRyaWVzRnJvbURpY3Rp
b25hcnk6ZGljdF07CiAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
c2V0Vm9sYXRpbGVEb21haW46YXJndW1lbnREb21haW4gZm9yTmFtZTpOU0FyZ3VtZW50RG9tYWlu
XTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbQkocmV2aXNpb24gMjY3
OTM4KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiSElERXZlbnRHZW5lcmF0b3IuaCIKICNp
bXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8
V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAKIHN0YXRpYyBpbnQgX2FyZ2M7CiBzdGF0
aWMgY29uc3QgY2hhciAqKl9hcmd2OwpAQCAtNjgsOSArNjksNyBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY29uc3QgY2hhciogYXJndltdKQogICAgIF9hcmdjID0gYXJnYzsKICAgICBfYXJndiA9IGFy
Z3Y7CiAKLSAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpZRVMgZm9yS2V5OkAiV2ViS2l0TGlua2VkT25P
ckFmdGVyRXZlcnl0aGluZyJdOwotICAgIH0KKyAgICBbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2Vk
T25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmddOwogCiAgICAgVUlBcHBsaWNhdGlvbk1haW4o
YXJnYywgKGNoYXIqKilhcmd2LCBAIldlYktpdFRlc3RSdW5uZXJBcHAiLCBAIldlYktpdFRlc3RS
dW5uZXJBcHAiKTsKICAgICByZXR1cm4gMDsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL21haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFp
bi5tbQkocmV2aXNpb24gMjY3OTM4KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvbWFp
bi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogCiAjaW1wb3J0ICJQbGF0Zm9y
bVdlYlZpZXcuaCIKICNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCisjaW1wb3J0IDxXZWJLaXQv
V0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KIAogc3RhdGljIHZvaWQgc2V0RGVmYXVsdHNUb0NvbnNp
c3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCkKIHsKQEAgLTQxLDcgKzQyLDYgQEAgc3RhdGljIHZvaWQg
c2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZQogICAgICAgICBAIkFwcGxlRW5hYmxlU3dpcGVO
YXZpZ2F0ZVdpdGhTY3JvbGxzIjogQFlFUywKICAgICAgICAgQCJjb20uYXBwbGUuc3dpcGVzY3Jv
bGxkaXJlY3Rpb24iOiBAMSwKICAgICAgICAgQCJjb20uYXBwbGUudHJhY2twYWQuZm9yY2VDbGlj
ayI6IEAxLAotICAgICAgICBAIldlYktpdExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmciOiBAWUVT
LAogICAgICAgICBAIk5TU2Nyb2xsQW5pbWF0aW9uRW5hYmxlZCI6IEBOTywKICAgICAgICAgQCJO
U092ZXJsYXlTY3JvbGxlcnNFbmFibGVkIjogQE5PLAogICAgICAgICBAIkFwcGxlU2hvd1Njcm9s
bEJhcnMiOiBAIkFsd2F5cyIsCkBAIC02NSw2ICs2NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBj
b25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgIFtOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0
aW9uXTsKICAgICAgICAgc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCk7
CiAgICAgICAgIGRpc2FibGVBcHBOYXBJblVJUHJvY2VzcygpOyAvLyBGb3Igc2Vjb25kYXJ5IHBy
b2Nlc3NlcywgYXBwIG5hcCBpcyBkaXNhYmxlZCB1c2luZyBXS1ByZWZlcmVuY2VzU2V0UGFnZVZp
c2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoKS4KKyAgICAgICAgW1dLUHJv
Y2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nXTsKICAgICB9
CiAgICAgV1RSOjpUZXN0Q29udHJvbGxlciBjb250cm9sbGVyKGFyZ2MsIGFyZ3YpOwogICAgIHJl
dHVybiAwOwo=
</data>
<flag name="review"
          id="426388"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>