<?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>118133</bug_id>
          
          <creation_ts>2013-06-27 07:41:31 -0700</creation_ts>
          <short_desc>[Qt][WK2] Handling Pointer Lock permissions</short_desc>
          <delta_ts>2014-02-03 03:26:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>117789</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Stanislav Pikulik">stanislav.pikulik</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>menard</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>904236</commentid>
    <comment_count>0</comment_count>
    <who name="Stanislav Pikulik">stanislav.pikulik</who>
    <bug_when>2013-06-27 07:41:31 -0700</bug_when>
    <thetext>[Qt][WK2] Handling Pointer Lock permissions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904250</commentid>
    <comment_count>1</comment_count>
      <attachid>205611</attachid>
    <who name="Stanislav Pikulik">stanislav.pikulik</who>
    <bug_when>2013-06-27 08:18:22 -0700</bug_when>
    <thetext>Created attachment 205611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904256</commentid>
    <comment_count>2</comment_count>
      <attachid>205611</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-06-27 08:44:38 -0700</bug_when>
    <thetext>Comment on attachment 205611
Patch

Attachment 205611 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/981518</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904260</commentid>
    <comment_count>3</comment_count>
      <attachid>205611</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-06-27 09:04:12 -0700</bug_when>
    <thetext>Comment on attachment 205611
Patch

Attachment 205611 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/997146</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904479</commentid>
    <comment_count>4</comment_count>
      <attachid>205676</attachid>
    <who name="Stanislav Pikulik">stanislav.pikulik</who>
    <bug_when>2013-06-28 00:46:36 -0700</bug_when>
    <thetext>Created attachment 205676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935697</commentid>
    <comment_count>5</comment_count>
      <attachid>205676</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-02 21:38:23 -0700</bug_when>
    <thetext>Comment on attachment 205676
Patch

Qt has been removed, clearing review flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975750</commentid>
    <comment_count>6</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2014-02-03 03:26:20 -0800</bug_when>
    <thetext>=== Bulk closing of Qt bugs ===

If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary.

If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205611</attachid>
            <date>2013-06-27 08:18:22 -0700</date>
            <delta_ts>2013-06-28 00:46:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118133-20130627191612.patch</filename>
            <type>text/plain</type>
            <size>100164</size>
            <attacher name="Stanislav Pikulik">stanislav.pikulik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWExZTU2NTFhNWY0MTEw
ZjQ0ZTg0MmNiMmIxNGM2M2NkNGYwYTI2NS4uOGFiNjUxOWE2ZDQwZGMwZmFjNWVjYzc4NzI5ZTll
MWEzMWI3N2JlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA2LTI3ICBTdGFu
aXNsYXYgUGlrdWxpayAgPHN0YW5pc2xhdi5waWt1bGlrQGxnZS5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIEhhbmRsaW5nIFBvaW50ZXIgTG9jayBwZXJtaXNzaW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisK
KyAgICAgICAgaW5jbHVkZSBQb2ludGVyTG9ja0NvbnRyb2xsZXIgZmlsZXMKKworICAgICAgICAq
IFRhcmdldC5wcmk6CisKIDIwMTMtMDYtMjcgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2Fs
dmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhpbmcgc29tZSBjb21waWxlciB3YXJuaW5n
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDQ5ODI1YmY4NTMwZDdkOTEyMWZhOWExYTA3Zjg5MzE3NzFjMTRmYTAu
LmYzZmUzZmZmNzU2NGM3Zjk0NDFlYTEwMzM0YTFkNjJmOTUwNGM0N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMjUgQEAKKzIwMTMtMDYtMjcgIFN0YW5pc2xhdiBQaWt1bGlrICA8c3RhbmlzbGF2
LnBpa3VsaWtAbGdlLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gSGFuZGxpbmcgUG9pbnRlciBM
b2NrIHBlcm1pc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTgxMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBhZGQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlciB0byB0byBsb2FkIFBl
cm1pc3Npb25zIGZyb20gVUlQcm9jZXNzIGFuZCBjYWNoZSB0aGVtIG9uIFdlYlByb2Nlc3Mgc2lk
ZQorICAgICAgICBhZGQgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgdG8gaGFu
ZGxlIHByZW1zc2lvbnMgcmVxdWVzdHMgb24gV2ViUHJvY2VzcyBzaWRlCisgICAgICAgIGFkZCBQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIG5vdGlmeSBhYm91dCBw
ZXJtaXNzaW9uIGRlY2lzaW9uCisgICAgICAgIGFkZCBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0IHRvIGhhbmRsZSBzcGVjaWZpYyByZXF1ZXN0IGluIFVJUHJvY2VzcworICAgICAgICBhZGQg
V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlciB0byBzdXBwb3J0IG92ZXJsb2FkaW5nIG9m
IFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIKKyAgICAgICAgYWRkIG1ldGhvZHMgdG8g
SW5qZWN0ZWRCdW5kbGUgY2xpZW50IHRvIHNldHVwIGN1c3RvbSBiZWhhdmlvciBvZiBXZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyIGZvciB0ZXN0aW5nCisKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5wcmk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAq
IFNoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwOgorICAgICAgICAqIFNoYXJlZC9BUElDbGllbnRU
cmFpdHMuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRQb2ludGVyTG9ja1Blcm1p
c3Npb25NYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlckdldFR5cGVJRCk6CisgICAgICAgIChXS1Bv
aW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJTZXRQcm92aWRlcik6CisgICAgICAgIChXS1BvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm92aWRlckRpZFVwZGF0ZVBvaW50ZXJMb2NrUG9saWN5
KToKKyAgICAgICAgKFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3ZpZGVyRGlkUmVt
b3ZlUG9pbnRlckxvY2tQb2xpY2llcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRk
ZWQuCisgICAgICAgIChXS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgor
ICAgICAgICAoV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0QWxsb3cpOgorICAgICAgICAo
V0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0OjpQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UG9pbnRlckxv
Y2tQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3cpOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0OjpkZW55KToKKyAgICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BvaW50
ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UG9pbnRlckxv
Y2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVQb2ludGVyTG9ja1Blcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNz
L1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUG9pbnRl
ckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6c3Vw
cGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25N
YW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVy
bWlzc2lvbk1hbmFnZXJQcm94eTo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5
Ojppbml0aWFsaXplUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja1Bl
cm1pc3Npb25NYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OnByb2Nlc3NEaWRDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6
cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OnBvcHVs
YXRlQ29weU9mUG9pbnRlckxvY2tQZXJtaXNzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBv
aW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRVcGRhdGVQb2ludGVy
TG9ja1BvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1h
bmFnZXJQcm94eTo6cHJvdmlkZXJEaWRSZW1vdmVQb2ludGVyTG9ja1BvbGljaWVzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
clByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlcjo6YWRkUG9pbnRlckxvY2tQZXJtaXNzaW9u
TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3Zp
ZGVyOjpyZW1vdmVQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXI6OnBvaW50ZXJMb2NrUGVybWlzc2lv
bnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1p
c3Npb25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OldlYkNvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpX
ZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9X
ZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlQWZ0
ZXJQcm9jZXNzRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0
UG9pbnRlckxvY2tQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVSUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgICogV2ViS2l0Mi5wcmk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRQb2ludGVyTG9ja1Blcm1pc3Np
b24pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlQWxsUG9pbnRlckxv
Y2tQZXJtaXNzaW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxv
Y2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpQb2ludGVyTG9ja1Bl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlBvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpwZXJtaXNz
aW9uTGV2ZWwpOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6c2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9u
c0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVybWlzc2lvbkRlY2lzaW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja1Blcm1pc3Np
b25DYWxsYmFjazo6flBvaW50ZXJMb2NrUGVybWlzc2lvbkNhbGxiYWNrKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
cjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja1Blcm1p
c3Npb25NYW5hZ2VyOjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6fldlYlBvaW50ZXJMb2Nr
UGVybWlzc2lvbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja1Blcm1p
c3Npb25NYW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxv
Y2tQZXJtaXNzaW9uTWFuYWdlcjo6ZGlkVXBkYXRlUG9pbnRlckxvY2tEZWNpc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI6OmRpZFJlbW92ZVBv
aW50ZXJMb2NrRGVjaXNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tQZXJt
aXNzaW9uTWFuYWdlcjo6cG9saWN5Rm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9X
ZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVybWlzc2lvbkRlY2lzaW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OldlYlByb2Nlc3Mp
OgorCiAyMDEzLTA2LTI3ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxp
YS5jb20+CiAKICAgICAgICAgRml4aW5nIHNvbWUgY29tcGlsZXIgd2FybmluZ3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IGY0MTdkZGU1MmNmYTdiYTk4MmY0YTEwNDU2NGRiNGEzZjI4Njg3YTIuLjE1MzUwNWI2
NzQ1NTg3YTlhY2JjOWU0ZGJkYTUyZDczYzlkYWExZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTQxLDYg
Kzk0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNw
cCBcCiAgICAgcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCBcCiAgICAgcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5jcHAgXAorICAgIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNw
cCBcCiAgICAgcGFnZS9QcmludENvbnRleHQuY3BwIFwKICAgICBwYWdlL1NjcmVlbi5jcHAgXAog
ICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0NvbnN0cmFpbnRzLmNwcCBcCkBAIC0yMDk3LDYg
KzIwOTgsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL1BhZ2VUaHJvdHRsZXIuaCBcCiAgICAg
cGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggXAogICAgIHBhZ2UvUGx1Z0luQ2xpZW50LmggXAor
ICAgIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmggXAogICAgIHBhZ2UvUG9wdXBPcGVuaW5n
T2JzZXJ2ZXIuaCBcCiAgICAgcGFnZS9QcmludENvbnRleHQuaCBcCiAgICAgcGFnZS9TY3JlZW4u
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXggZGMxN2ZhYWFjMGI5Y2NmZjgyOGI0
YmNkNzYxNGJiYWE2M2YxZGQ5Yy4uMmQ5Zjc2YjZiZWJjYzY2N2JiZmI4MGM4OGNhY2JjYTIyNGJl
Yjg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtNDgsNiArNDgsNyBAQCBWUEFU
SCA9IFwKICAgICBXZWJQcm9jZXNzL05ldHdvcmtJbmZvIFwKICAgICBXZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucyBcCisgICAgV2ViUHJvY2Vzcy9Qb2lu
dGVyTG9jayBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICBXZWJQcm9jZXNz
L1N0b3JhZ2UgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXApAQCAtNTksNiArNjAs
NyBAQCBWUEFUSCA9IFwKICAgICBVSVByb2Nlc3MvRG93bmxvYWRzIFwKICAgICBVSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucyBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMgXAorICAgIFVJUHJvY2Vzcy9Q
b2ludGVyTG9jayBcCiAgICAgVUlQcm9jZXNzL1N0b3JhZ2UgXAogICAgIFNoYXJlZCBcCiAgICAg
U2hhcmVkL0F1dGhlbnRpY2F0aW9uIFwKQEAgLTEwMCw2ICsxMDIsNyBAQCBNRVNTQUdFX1JFQ0VJ
VkVSUyA9IFwKICAgICBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBX
ZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBcCisgICAgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiBcCiAgICAgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Lm1lc3NhZ2VzLmlu
IFwKICAgICBEcmF3aW5nQXJlYS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViSW5zcGVjdG9yLm1lc3Nh
Z2VzLmluIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCBlYThlMmYxYmE3
NDFhNzVhMjQyMGQ5MWQzMjA5MzYwMjMzNzRhNGZiLi40OTk3MGZiYzJkMDk4MzUyMTBmYmZhZWEx
NjIzYTFkNjBkM2E5OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0x
MzQsNiArMTM0LDkgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciog
V0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVuY2VzUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKiBXS1BvaW50ZXJMb2NrUGVybWlzc2lv
bk1hbmFnZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3QqIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdFJlZjsKK3R5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIqIFdL
UG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwogdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9uUmVmOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcAppbmRleCA5YWY3Yzc2ZTNiZDI4NGVj
ZmY5OTBkOWMzM2VjMjY4ODYyZTk1MTNmLi45NWY4YzkxNDJiZGYyMjc3Y2JhMzJiNDNmMzExMmNm
NDIwZjY5ZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJh
aXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcApA
QCAtNTUsNyArNTUsNyBAQCBjb25zdCBzaXplX3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnQ+OjppbnRlcmZhY2VTaXplc0J5VmVycwogICAgIG9mZnNldG9mKFdL
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQsIGJlZ2FuRW50ZXJGdWxsU2NyZWVuKSwKICAgICBz
aXplb2YoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCkKIH07Ci0gICAgCisKIGNvbnN0IHNp
emVfdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlQ29udGV4dE1lbnVDbGllbnQ+OjppbnRlcmZhY2VT
aXplc0J5VmVyc2lvbltdID0gewogICAgIG9mZnNldG9mKFdLUGFnZUNvbnRleHRNZW51Q2xpZW50
LCBjb250ZXh0TWVudURpc21pc3NlZCksCiAgICAgb2Zmc2V0b2YoV0tQYWdlQ29udGV4dE1lbnVD
bGllbnQsIGdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudSksCkBAIC03Miw2ICs3Miw3IEBA
IGNvbnN0IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlTG9hZGVyQ2xpZW50Pjo6aW50ZXJm
YWNlU2l6ZXNCeVZlcnNpb25bXSA9IHsKIGNvbnN0IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tQ
YWdlVUlDbGllbnQ+OjppbnRlcmZhY2VTaXplc0J5VmVyc2lvbltdID0gewogICAgIG9mZnNldG9m
KFdLUGFnZVVJQ2xpZW50LCBjcmVhdGVOZXdQYWdlKSwKICAgICBvZmZzZXRvZihXS1BhZ2VVSUNs
aWVudCwgc2hvd0NvbG9yUGlja2VyKSwKKyAgICBvZmZzZXRvZihXS1BhZ2VVSUNsaWVudCwgZGVj
aWRlUG9saWN5Rm9yUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCksCiAgICAgc2l6ZW9mKFdL
UGFnZVVJQ2xpZW50KQogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElDbGllbnRUcmFpdHMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFp
dHMuaAppbmRleCA0YTY2YTRlZTgwMjhlOWQ3ZDc0ZTE0M2I2M2NjZTAxYjk0Mzk3ODY3Li4xNDM4
MGZiMTEyMmNkMzQyMGUxYTU0MzYxZDAzNWYxZjEzODNlYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSUNsaWVudFRyYWl0cy5oCkBAIC02OCw3ICs2OCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0
IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VMb2FkZXJDbGllbnQ+IHsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudD4gewotICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bM107CisgICAgc3RhdGljIGNvbnN0IHNp
emVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvbls0XTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50PiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJT2JqZWN0LmgKaW5kZXggNGJlMzk5YTcxM2JmOTJiYzdiOTgyMDZjN2ViMTEyOTg0MDdjNWU4
Zi4uYjk2NDlkNDcyYmViNjFkMWNjYzkyMDBhNWRmN2MzNGEyZTU2NTVhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaApAQCAtMTA2LDYgKzEwNiw4IEBAIHB1YmxpYzoKICAgICAgICAgVHlw
ZVBhZ2UsCiAgICAgICAgIFR5cGVQYWdlR3JvdXAsCiAgICAgICAgIFR5cGVQbHVnaW5TaXRlRGF0
YU1hbmFnZXIsCisgICAgICAgIFR5cGVQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LAorICAg
ICAgICBUeXBlUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlciwKICAgICAgICAgVHlwZVByZWZl
cmVuY2VzLAogICAgICAgICBUeXBlVGV4dENoZWNrZXIsCiAgICAgICAgIFR5cGVWaWJyYXRpb24s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKaW5kZXggNTZmMTQ0ZDZkYTRiMjU3M2M5ZGZlNTYwNmFjMzQyOTMyMDgxOTQ2
Zi4uMDFmNGM2YjNlZWMzZGFlMjA0MTYwYjdlMjgxYmIxOWU4ODY5MmViNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cApAQCAtMTA2LDYgKzEwNiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbgogICAgIGVuY29k
ZXIgPDwgbm90aWZpY2F0aW9uUGVybWlzc2lvbnM7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCisgICAgZW5jb2RlciA8PCBwb2ludGVyTG9ja1Blcm1pc3Npb25zOworI2VuZGlm
CisKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGVuY29kZXIgPDwgdXNlc05ldHdv
cmtQcm9jZXNzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBkMjE5M2M3NDY3Njc4OGVmMmRlNmVhNzkx
YWY3OTNmNzQ4NmYxZWIwLi4wMmE1YmJkY2UxNjQyZjRiMjIwOTcyMjdhMzc2OGMwYTM0MzI0Yjk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTEyOCw2ICsxMjgsMTAgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25QZXJt
aXNzaW9uczsKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBIYXNoTWFw
PFN0cmluZywgYm9vbD4gcG9pbnRlckxvY2tQZXJtaXNzaW9uczsKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBib29sIHVzZXNOZXR3b3JrUHJvY2VzczsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKaW5kZXggZmU2MzM2YTEwMTU2M2YxYmUxNmQ1YjBkODE3MzQ4ZDU3ZTU1ZDQz
Ny4uN2U1ZjQxM2UyZjE4NTQ5MjA1NDExNjBhMzhlMzgyNTA2ZDVjNmYyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CkBAIC0xODgsNiArMTg4LDkgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUdyb3VwLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oIFwKKyAgICBVSVByb2Nl
c3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyLmggXAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmggXAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZS5oIFwK
QEAgLTI3OSw2ICsyODIsMTAgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VD
b250ZXh0TWVudUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggXAogICAg
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1Bv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaCBcCisgICAgVUlQcm9jZXNzL1BvaW50ZXJMb2Nr
L1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBcCisgICAgVUlQcm9j
ZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eS5oIFwK
KyAgICBVSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlk
ZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3Mv
V2ViUHJlZmVyZW5jZXMuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIFwKQEAg
LTMzOSw2ICszNDYsOCBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuaCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXIuaCBcCisgICAgV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oIFwKKyAgICBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJCYXR0ZXJ5Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JD
aG9vc2VyLmggXApAQCAtNTQ5LDYgKzU1OCw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyLmNwcCBcCisg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUHJvdGVjdGlvblNwYWNlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIuY3BwIFwKQEAgLTU4OSw2ICs2MDAsMTAgQEAgU09VUkNFUyArPSBcCiAg
ICAgVUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBcCiAgICAg
VUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vzc1Byb3h5UXQuY3BwIFwKICAgICBVSVBy
b2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwIFwKKyAgICBVSVByb2Nl
c3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAorICAgIFVJ
UHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCBcCisgICAgVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwIFwKQEAgLTcxNSw2
ICs3MzAsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
eHkuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAgXAorICAgIFdlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9T
dG9yYWdlQXJlYUltcGwuY3BwIFwKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFN
YXAuY3BwIFwKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA2NGM4
ZDFhYmZiMTAwYzhlOTYyNTU3NzkxMTliYTdiNGUxNmViOWIzLi45NjE2ZjExYjY2MjIyY2I3OWMz
NzRkNTk3ZTQwNjI3Mjc5MDhiOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNp
b25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
K2NsYXNzIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTkwLDYgKzkxLDggQEAgY2xhc3MgV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQ
cm94eTsKIGNsYXNzIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjsKK2NsYXNzIFdlYlBvaW50ZXJM
b2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTsKK2NsYXNzIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lv
blByb3ZpZGVyOwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7CiBjbGFzcyBXZWJQcm90ZWN0aW9uU3Bh
Y2U7CiBjbGFzcyBXZWJSZW5kZXJMYXllcjsKQEAgLTEzNiw2ICsxMzksOSBAQCBXS19BRERfQVBJ
X01BUFBJTkcoV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJQcm94eQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZUdyb3VwUmVmLCBXZWJQYWdl
R3JvdXApCiBXS19BRERfQVBJX01BUFBJTkcoV0tQYWdlUmVmLCBXZWJQYWdlUHJveHkpCiBXS19B
RERfQVBJX01BUFBJTkcoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYsIFdlYlBsdWdpblNpdGVE
YXRhTWFuYWdlcikKK1dLX0FERF9BUElfTUFQUElORyhXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1h
bmFnZXJSZWYsIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eSkKK1dLX0FERF9B
UElfTUFQUElORyhXS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RSZWYsIFBvaW50ZXJMb2Nr
UGVybWlzc2lvblJlcXVlc3QpCitXS19BRERfQVBJX01BUFBJTkcoV0tQb2ludGVyTG9ja1Blcm1p
c3Npb25Qcm92aWRlclJlZiwgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIpCiBXS19B
RERfQVBJX01BUFBJTkcoV0tQcmVmZXJlbmNlc1JlZiwgV2ViUHJlZmVyZW5jZXMpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tQcm90ZWN0aW9uU3BhY2VSZWYsIFdlYlByb3RlY3Rpb25TcGFjZSkKIFdL
X0FERF9BUElfTUFQUElORyhXS1JlbmRlckxheWVyUmVmLCBXZWJSZW5kZXJMYXllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggMTYyOWE1NjI3
Mzk4ZWY2NjM1ZmMzYjQwZmU4ZDUzZWJiYWZiNDQ2YS4uMTQ3MGYwYjdjMDIwZTIwMTM2NmRiNmE3
OGQ4OGI4NjViOWJkMmNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAKQEAgLTQxLDYgKzQxLDkgQEAKICNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgorI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5Lmgi
CisjZW5kaWYKICNpbmNsdWRlICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5o
IgpAQCAtMjYwLDYgKzI2MywxNSBAQCBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0
R2V0Tm90aWZpY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZgogICAgIHJldHVy
biB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5PigpKTsKIH0KIAorV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUmVmIFdL
Q29udGV4dEdldFBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCit7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICByZXR1cm4gdG9BUEkodG9J
bXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFn
ZXJQcm94eT4oKSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIFdLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0Nv
bnRleHRSZWYgY29udGV4dFJlZikKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCAzY2U3MzFl
NzhmMGZjZDgwYjhhOWFkN2U0ZmEwNWQxNTVjOTMwMGUwLi5kZTQ0OGNhOTU5ZGJiOGY2NDI3NTdm
ZWU1OTA3NGU0MDRkNGE2Y2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5oCkBAIC0xOTUsNyArMTk1LDggQEAgV0tfRVhQT1JUIFdLTmV0d29ya0luZm9NYW5h
Z2VyUmVmIFdLQ29udGV4dEdldE5ldHdvcmtJbmZvTWFuYWdlcihXS0NvbnRleHRSZWYgY28KIFdL
X0VYUE9SVCBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Tm90aWZpY2F0aW9u
TWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJl
ZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4
dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKLSAgICAKK1dL
X0VYUE9SVCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CisKIHR5cGVk
ZWYgdm9pZCAoKldLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlvbikoV0tEaWN0aW9uYXJ5UmVm
IHN0YXRpc3RpY3MsIFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBX
S19FWFBPUlQgdm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzKFdLQ29udGV4dFJlZiBjb250ZXh0
LCB2b2lkKiBmdW5jdGlvbkNvbnRleHQsIFdLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlvbiBm
dW5jdGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzV2l0aE9wdGlv
bnMoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RhdGlzdGljc09wdGlvbnMgc3RhdGlzdGljc01h
c2ssIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9u
IGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCAx
NzY1NzhmZWU5NTJkNWZlNmExNzQ1YTczOWNjYzA4MjUwMGY0MzhiLi44YTFmM2VmOTNiZjI3ZjU0
ZGVlYjAwOTM5ZTAyYTFkNTNjOWQxZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oCkBAIC0yMjAsNiArMjIwLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRl
UG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWcKIHR5
cGVkZWYgdm9pZCAoKldLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQ
YWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbklu
Zm9EaWN0aW9uYXJ5LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldL
UGFnZURlY2lkZVBvbGljeUZvclBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1BvaW50ZXJMb2Nr
UGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwogCiAvLyBEZXByZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VD
cmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBh
Z2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CkBAIC0yODIsMTAgKzI4MywxMyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIFdLUGFn
ZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvd0NvbG9yUGlja2VyOwogICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOwog
ICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8g
VmVyc2lvbiAzCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yUG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JQb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0OwogfTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IFdLUGFnZVVJ
Q2xpZW50OwogCi1lbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gPSAyIH07Citl
bnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gPSAzIH07CiAKIC8vIEZpbmQgY2xp
ZW50LgogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmluZFN0cmluZ0NhbGxiYWNrKShXS1BhZ2VS
ZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjE4MmI0YjRmZTgwN2VhODYzZDQ5MGQzYzIxOGMxNmFmNDUzZmIzYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVy
bWlzc2lvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9OSUNTIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBF
TEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1BvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2lu
Y2x1ZGUgIldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eS5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCisKK1dLVHlwZUlEIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlckdldFR5cGVJRCgpCit7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICByZXR1cm4g
dG9BUEkoV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5OjpBUElUeXBlKTsKKyNl
bHNlCisgICAgcmV0dXJuIEFQSU9iamVjdDo6VHlwZU51bGw7CisjZW5kaWYKK30KKwordm9pZCBX
S1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJTZXRQcm92aWRlcihXS1BvaW50ZXJMb2NrUGVy
bWlzc2lvbk1hbmFnZXJSZWYgbWFuYWdlclJlZiwgY29uc3QgV0tQb2ludGVyTG9ja1Blcm1pc3Np
b25Qcm92aWRlciogd2tQcm92aWRlcikKK3sKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAg
IHRvSW1wbChtYW5hZ2VyUmVmKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOworI2Vu
ZGlmCit9CisKK3ZvaWQgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJvdmlkZXJEaWRV
cGRhdGVQb2ludGVyTG9ja1BvbGljeShXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJSZWYg
bWFuYWdlclJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGJvb2wgYWxsb3dlZCkKK3sK
KyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHRvSW1wbChtYW5hZ2VyUmVmKS0+cHJvdmlk
ZXJEaWRVcGRhdGVQb2ludGVyTG9ja1BvbGljeSh0b0ltcGwob3JpZ2luKSwgYWxsb3dlZCk7Cisj
ZW5kaWYKK30KKwordm9pZCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm92aWRlckRp
ZFJlbW92ZVBvaW50ZXJMb2NrUG9saWNpZXMoV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2Vy
UmVmIG1hbmFnZXJSZWYsIFdLQXJyYXlSZWYgb3JpZ2lucykKK3sKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQorICAgIHRvSW1wbChtYW5hZ2VyUmVmKS0+cHJvdmlkZXJEaWRSZW1vdmVQb2ludGVy
TG9ja1BvbGljaWVzKHRvSW1wbChvcmlnaW5zKSk7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTcxOGI0OTU1ZTA5OWRkODZkZGU2NjQ1MzdlOWZj
YzA0YmQ0OTdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExH
IEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyX2gKKyNkZWZpbmUgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5h
Z2VyX2gKKworI2luY2x1ZGUgIldLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIuaCIKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1BvaW50ZXJMb2NrUGVybWlzc2lv
bk1hbmFnZXJHZXRUeXBlSUQoKTsKK1dLX0VYUE9SVCB2b2lkIFdLUG9pbnRlckxvY2tQZXJtaXNz
aW9uTWFuYWdlclNldFByb3ZpZGVyKFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclJlZiBt
YW5hZ2VyUmVmLCBjb25zdCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyKiB3a1Byb3Zp
ZGVyKTsKK1dLX0VYUE9SVCB2b2lkIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3Zp
ZGVyRGlkVXBkYXRlUG9pbnRlckxvY2tQb2xpY3koV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5h
Z2VyUmVmIG1hbmFnZXJSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBib29sIGFsbG93
ZWQpOworV0tfRVhQT1JUIHZvaWQgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJvdmlk
ZXJEaWRSZW1vdmVQb2ludGVyTG9ja1BvbGljaWVzKFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlclJlZiBtYW5hZ2VyUmVmLCBXS0FycmF5UmVmIG9yaWdpbnMpOworCisjaWZkZWYgX19jcGx1
c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5h
Z2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvaW50
ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZTgxZDcz
YTExOTk3ZWE0NTdjYzA3MGM4OGI0Zjg3ZmMzMjc4YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRl
ci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ry
b25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlcl9oCisjZGVmaW5lIFdL
UG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jh
c2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBl
ZGVmIHZvaWQgKCpXS1BvaW50ZXJMb2NrUGVybWlzc2lvbkFkZE5vdGlmaWNhdGlvbk1hbmFnZXJD
YWxsYmFjaykoV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUmVmIG1hbmFnZXIsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQb2ludGVyTG9ja1Blcm1pc3Np
b25Qcm92aWRlclJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjaykoV0tQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyUmVmIG1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
dHlwZWRlZiBXS0RpY3Rpb25hcnlSZWYgKCpXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVy
UGVybWlzc2lvbnNDYWxsYmFjaykoY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3N0cnVjdCBX
S1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyIHsKKyAgICBpbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247Cisg
ICAgY29uc3Qgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGllbnRJbmZvOworICAgIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uQWRkTm90
aWZpY2F0aW9uTWFuYWdlckNhbGxiYWNrICAgICAgICAgICAgYWRkUG9pbnRlckxvY2tQZXJtaXNz
aW9uTWFuYWdlcjsKKyAgICBXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyUmVtb3ZlTm90
aWZpY2F0aW9uTWFuYWdlckNhbGxiYWNrIHJlbW92ZVBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFn
ZXI7CisgICAgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlclBlcm1pc3Npb25zQ2FsbGJh
Y2sgICAgICAgICAgICAgICBwb2ludGVyTG9ja1Blcm1pc3Npb25zOworfTsKK3R5cGVkZWYgc3Ry
dWN0IFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIgV0tQb2ludGVyTG9ja1Blcm1pc3Np
b25Qcm92aWRlcjsKKworZW51bSB7IGtXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyQ3Vy
cmVudFZlcnNpb24gPSAwIH07CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNl
bmRpZiAvLyBXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDcwZDQ5N2ZmYmM4YWUyYjY0MmY2Yjc3YmFl
NDVhYWEzM2IzYzNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIExHIEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaCIKKworI2lu
Y2x1ZGUgIlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKK3sKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQorICAgIHJldHVybiB0b0FQSShQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0OjpBUElUeXBl
KTsKKyNlbHNlCisgICAgcmV0dXJuIEFQSU9iamVjdDo6VHlwZU51bGw7CisjZW5kaWYKK30KKwor
dm9pZCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS1BvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3RSZWYgcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCkKK3sKKyNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHJldHVybiB0b0ltcGwocG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdCktPmFsbG93KCk7CisjZW5kaWYKK30KKwordm9pZCBXS1BvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3REZW55KFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdFJlZiBwb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KQoreworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisg
ICAgcmV0dXJuIHRvSW1wbChwb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KS0+ZGVueSgpOwor
I2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDUxODZk
NjcwMjIwOTgxYzNkN2NhMDgxOGYzMjhjMGNjNjY1MzRiZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3QuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0
cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdL
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFz
ZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VY
UE9SVCBXS1R5cGVJRCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsK
KworV0tfRVhQT1JUIHZvaWQgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UmVmIHBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3QpOworV0tfRVhQT1JUIHZvaWQgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0RGVueShX
S1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RSZWYgcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS1Bv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lv
blJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MmE0Y2U4NWQ0Njk3ZGM1MWNmZmJhMjc5MWFkMjU1
Yjc0Nzc0ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9p
bnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw2OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaCIKKworI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCisjaW5jbHVkZSAiUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0PiBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0Ojpj
cmVhdGUoV2ViS2l0OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5ICpt
YW5hZ2VyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdChtYW5hZ2VyKSk7Cit9CisKK1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q6OlBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QoUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSogbWFuYWdlcikKKyAgICA6IG1fbWFuYWdlcihtYW5hZ2VyKQoreworfQorCit2
b2lkIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93KCkKK3sKKyAgICBpZiAoIW1f
bWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5kaWRSZWNlaXZlUG9p
bnRlckxvY2tQZXJtaXNzaW9uRGVjaXNpb24odHJ1ZSk7CisgICAgbV9tYW5hZ2VyID0gMDsKK30K
Kwordm9pZCBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0OjpkZW55KCkKK3sKKyAgICBpZiAo
IW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5kaWRSZWNlaXZl
UG9pbnRlckxvY2tQZXJtaXNzaW9uRGVjaXNpb24oZmFsc2UpOworICAgIG1fbWFuYWdlciA9IDA7
Cit9CisKK3ZvaWQgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSgpCit7
CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwMDU3MzA3NzY3OWQzN2M0YjQ5YTcwNzRlNTQ2ZDYwMTAw
ZjAzODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRl
ckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExH
IEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Rf
aAorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVj
dDo6VHlwZVBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoUG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSopOworCisgICAgdm9pZCBhbGxvdygp
OworICAgIHZvaWQgZGVueSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisKK3ByaXZhdGU6
CisgICAgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdChQb2ludGVyTG9ja1Blcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Kik7CisKKyAgICBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5KiBtX21hbmFnZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFBPSU5URVJfTE9DSworCisjZW5kaWYgLy8gUG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxv
Y2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzAwNWNjMTFjZGRmNGE5NTMyMDQ0NmM4MGUz
YjY0ZjE1NzM5ODkwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9u
aWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2luY2x1
ZGUgIlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BvaW50ZXJMb2NrUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkoV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQg
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVl
c3QoKQoreworICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0KSB7CisgICAgICAgIG1fcGVuZGluZ1Jl
cXVlc3QtPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdC5jbGVhcigpOwor
ICAgIH0KK30KKworUGFzc1JlZlB0cjxQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0PiBQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KCkKK3sK
KyAgICBSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdD4gcmVxdWVzdCA9IFBvaW50
ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSh0aGlzKTsKKyAgICBtX3BlbmRpbmdSZXF1
ZXN0ID0gcmVxdWVzdDsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK3ZvaWQg
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVBvaW50
ZXJMb2NrUGVybWlzc2lvbkRlY2lzaW9uKGJvb2wgYWxsb3cpCit7CisgICAgaWYgKCFtX3BhZ2Ut
PmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3BlbmRpbmdSZXF1ZXN0
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVybWlzc2lvbkRlY2lzaW9uKGFsbG93
KSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJM
b2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzJkMTM4ZTNk
Mzk3Y2I2NTUwMDExMmFkY2YwYzM2MjliM2VhZWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxF
Q1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHlfaAorI2RlZmluZSBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5X2gKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJv
eHk7CisKK2NsYXNzIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgewor
cHVibGljOgorICAgIGV4cGxpY2l0IFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkoV2ViUGFnZVByb3h5Kik7CisKKyAgICB2b2lkIGludmFsaWRhdGVSZXF1ZXN0KCk7CisK
KyAgICBQYXNzUmVmUHRyPFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0ZVJlcXVl
c3QoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVybWlzc2lvbkRlY2lzaW9u
KGJvb2wgYWxsb3cpOworCitwcml2YXRlOgorICAgIFJlZlB0cjxQb2ludGVyTG9ja1Blcm1pc3Np
b25SZXF1ZXN0PiBtX3BlbmRpbmdSZXF1ZXN0OworICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQT0lOVEVSX0xPQ0sKKwor
I2VuZGlmIC8vIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJM
b2NrTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bv
aW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFmMTBmZDliMzA1ODU4ZDc2MDcwNTIzMjE0NGMyZTZiOTBhNTdiOGYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxv
Y2tNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIworIyBDb3B5cmln
aHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworCisjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKK21lc3NhZ2VzIC0+IFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5IHsKKyAgICBS
ZXF1ZXN0UG9pbnRlckxvY2soKQorICAgIFJlcXVlc3RQb2ludGVyVW5sb2NrKCkKK30KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBv
aW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jOWNjZTc0MDBiOTZiY2ZhNzZmMzlhM2VmZGYwNDY4N2ZjOWFlZTA0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dl
YlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxMjcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IExHIEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHkuaCIKKwor
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgor
I2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tQZXJt
aXNzaW9uTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIK
KwordXNpbmcgbmFtZXNwYWNlIFdURjsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlclByb3h5OjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJXZWJQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyUHJveHkiOworfQorCitQYXNzUmVmUHRyPFdlYlBvaW50ZXJMb2Nr
UGVybWlzc2lvbk1hbmFnZXJQcm94eT4gV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclBy
b3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eShjb250ZXh0KSk7Cit9CisK
K1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6V2ViUG9pbnRlckxvY2tQZXJt
aXNzaW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJDb250ZXh0
U3VwcGxlbWVudChjb250ZXh0KQoreworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lv
bk1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLUG9pbnRlckxvY2tQZXJt
aXNzaW9uUHJvdmlkZXIgKnByb3ZpZGVyKQoreworICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShw
cm92aWRlcik7CisgICAgbV9wcm92aWRlci5hZGRQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2Vy
KHRoaXMpOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6
Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgbV9wcm92aWRlci5yZW1vdmVQb2ludGVyTG9ja1Bl
cm1pc3Npb25NYW5hZ2VyKHRoaXMpOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lv
bk1hbmFnZXJQcm94eTo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopCit7CisgICAg
bV9wcm92aWRlci5yZW1vdmVQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKHRoaXMpOworfQor
Cit2b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6cmVmV2ViQ29udGV4
dFN1cHBsZW1lbnQoKQoreworICAgIEFQSU9iamVjdDo6cmVmKCk7Cit9CisKK3ZvaWQgV2ViUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50
KCkKK3sKKyAgICBBUElPYmplY3Q6OmRlcmVmKCk7Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uTWFuYWdlclByb3h5Ojpwb3B1bGF0ZUNvcHlPZlBvaW50ZXJMb2NrUGVybWlzc2lv
bnMoSGFzaE1hcDxTdHJpbmcsIGJvb2w+JiBwZXJtaXNzaW9ucykKK3sKKyAgICBSZWZQdHI8SW1t
dXRhYmxlRGljdGlvbmFyeT4ga25vd25QZXJtaXNzaW9ucyA9IG1fcHJvdmlkZXIucG9pbnRlckxv
Y2tQZXJtaXNzaW9ucygpOworCisgICAgaWYgKCFrbm93blBlcm1pc3Npb25zKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBwZXJtaXNzaW9ucy5jbGVhcigpOworICAgIFJlZlB0cjxJbW11dGFibGVB
cnJheT4ga25vd25PcmlnaW5zID0ga25vd25QZXJtaXNzaW9ucy0+a2V5cygpOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwga25vd25PcmlnaW5zLT5zaXplKCk7ICsraSkgeworICAgICAgICBX
ZWJTdHJpbmcqIG9yaWdpbiA9IGtub3duT3JpZ2lucy0+YXQ8V2ViU3RyaW5nPihpKTsKKyAgICAg
ICAgcGVybWlzc2lvbnMuc2V0KG9yaWdpbi0+c3RyaW5nKCksIGtub3duUGVybWlzc2lvbnMtPmdl
dDxXZWJCb29sZWFuPihvcmlnaW4tPnN0cmluZygpKS0+dmFsdWUoKSk7CisgICAgfQorfQorCit2
b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRVcGRh
dGVQb2ludGVyTG9ja1BvbGljeShjb25zdCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBib29s
IGFsbG93ZWQpCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQb2ludGVyTG9ja1Bl
cm1pc3Npb25NYW5hZ2VyOjpEaWRVcGRhdGVQb2ludGVyTG9ja0RlY2lzaW9uKG9yaWdpbi0+dG9T
dHJpbmcoKSwgYWxsb3dlZCkpOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1h
bmFnZXJQcm94eTo6cHJvdmlkZXJEaWRSZW1vdmVQb2ludGVyTG9ja1BvbGljaWVzKEltbXV0YWJs
ZUFycmF5KiBvcmlnaW5zKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBzaXplX3Qgc2l6ZSA9IG9yaWdpbnMtPnNpemUoKTsKKyAgICBpZiAoIXNpemUpCisg
ICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxTdHJpbmc+IG9yaWdpblN0cmluZ3M7CisgICAg
b3JpZ2luU3RyaW5ncy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemUpOworCisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIG9yaWdpblN0cmluZ3MuYXBwZW5k
KG9yaWdpbnMtPmF0PFdlYlNlY3VyaXR5T3JpZ2luPihpKS0+dG9TdHJpbmcoKSk7CisKKyAgICBj
b250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUG9pbnRlckxvY2tQZXJt
aXNzaW9uTWFuYWdlcjo6RGlkUmVtb3ZlUG9pbnRlckxvY2tEZWNpc2lvbnMob3JpZ2luU3RyaW5n
cykpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50
ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFn
ZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhMWQ1ZDIzNTJmZTkzNTVhM2ZkZWViM2U1YmUwNGJhMjgy
NGNkZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRl
ckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw3
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQ
b2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyUHJveHlfaAorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKwor
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50Lmgi
CisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIEltbXV0YWJsZUFycmF5OworY2xhc3MgV2ViQ29udGV4dDsK
K2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOworCitjbGFzcyBXZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcj4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxlbWVudCB7
CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk+
IGNyZWF0ZShXZWJDb250ZXh0Kik7CisKKyAgICB2b2lkIGluaXRpYWxpemVQcm92aWRlcihjb25z
dCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyKik7CisKKyAgICB2b2lkIHBvcHVsYXRl
Q29weU9mUG9pbnRlckxvY2tQZXJtaXNzaW9ucyhIYXNoTWFwPFN0cmluZywgYm9vbD4mKTsKKwor
ICAgIHZvaWQgcHJvdmlkZXJEaWRVcGRhdGVQb2ludGVyTG9ja1BvbGljeShjb25zdCBXZWJTZWN1
cml0eU9yaWdpbiosIGJvb2wpOworICAgIHZvaWQgcHJvdmlkZXJEaWRSZW1vdmVQb2ludGVyTG9j
a1BvbGljaWVzKEltbXV0YWJsZUFycmF5KiBvcmlnaW5zKTsKKworICAgIHVzaW5nIEFQSU9iamVj
dDo6cmVmOworICAgIHVzaW5nIEFQSU9iamVjdDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZXhw
bGljaXQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsK
KworICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRE
ZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdl
YlByb2Nlc3NQcm94eSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0
U3VwcGxlbWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRT
dXBwbGVtZW50KCkgT1ZFUlJJREU7CisKKyAgICBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92
aWRlciBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBQT0lOVEVSX0xPQ0sKKworI2VuZGlmIC8vIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFn
ZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxv
Y2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44MDM2YzA4NGUyNjRjMDg0ZmNhYmZkNjI5YTljYzUyM2E0ZWZhOTY3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dl
YlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBF
TEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIuaCIKKworI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5j
bHVkZSAiTXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAi
V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViU2Vj
dXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUG9pbnRlckxv
Y2tQZXJtaXNzaW9uUHJvdmlkZXI6OmFkZFBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIoV2Vi
UG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQoreworICAgIGlmICht
X2NsaWVudC5hZGRQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKQorICAgICAgICBtX2NsaWVu
dC5hZGRQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIpLCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRl
cjo6cmVtb3ZlUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcihXZWJQb2ludGVyTG9ja1Blcm1p
c3Npb25NYW5hZ2VyUHJveHkqIG1hbmFnZXIpCit7CisgICAgaWYgKG1fY2xpZW50LnJlbW92ZVBv
aW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIpCisgICAgICAgIG1fY2xpZW50LnJlbW92ZVBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNsaWVudElu
Zm8pOworfQorCitQYXNzUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IFdlYlBvaW50ZXJMb2Nr
UGVybWlzc2lvblByb3ZpZGVyOjpwb2ludGVyTG9ja1Blcm1pc3Npb25zKCkKK3sKKyAgICBpZiAo
bV9jbGllbnQucG9pbnRlckxvY2tQZXJtaXNzaW9ucykKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KHRvSW1wbChtX2NsaWVudC5wb2ludGVyTG9ja1Blcm1pc3Npb25zKG1fY2xpZW50LmNsaWVudElu
Zm8pKSk7CisKKyAgICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfTE9DSykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bv
aW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODllYTRmNTQ0ZDdjNzY1NzQwNmU2NjE2ZTZmNDllN2RjOWZmYWVkOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Bl
cm1pc3Npb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9OSUNTIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBF
TEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlk
ZXJfaAorI2RlZmluZSBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlcl9oCisKKyNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAi
V0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOworY2xhc3Mg
V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5OworCitjbGFzcyBXZWJQb2ludGVy
TG9ja1Blcm1pc3Npb25Qcm92aWRlciA6IHB1YmxpYyBBUElDbGllbnQ8V0tQb2ludGVyTG9ja1Bl
cm1pc3Npb25Qcm92aWRlciwga1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXJDdXJyZW50
VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgYWRkUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlcihXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHkqKTsKKyAgICB2b2lkIHJl
bW92ZVBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIoV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9u
TWFuYWdlclByb3h5Kik7CisgICAgUGFzc1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBwb2lu
dGVyTG9ja1Blcm1pc3Npb25zKCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFBPSU5URVJfTE9DSworCisjZW5kaWYgLy8gV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9u
UHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDMx
ZWQyOTkzYjhhYzcxNjJkYWIwNTU1Mjk3YWJiN2FjM2NlMzhkMWIuLmE3ZThiNjExZWJiNGJjZjUw
OGEwMTFhYzQ5MDA5YzBlNjQzMjFlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKQEAgLTQ3LDEwICs0NywxMyBAQAogI2luY2x1ZGUgIldlYkljb25EYXRhYmFzZS5o
IgogI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJN
ZWRpYUNhY2hlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViTWVtb3J5U2FtcGxlci5oIgog
I2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgotI2luY2x1ZGUgIldlYlBs
dWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgotI2luY2x1
ZGUgIldlYk1lbW9yeVNhbXBsZXIuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0YU1hbmFn
ZXIuaCIKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2Nr
UGVybWlzc2lvbk1hbmFnZXJQcm94eS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgpAQCAtMTgwLDYgKzE4Myw5IEBAIFdlYkNvbnRleHQ6
OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCwgY29uc3QgU3RyaW5nJiBpbmpl
Y3RlZEJ1bmRsZVBhCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKICAgICBhZGRTdXBwbGVtZW50
PFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5PigpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKKyAgICBhZGRTdXBwbGVtZW50PFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFn
ZXJQcm94eT4oKTsKKyNlbmRpZgogCiAgICAgY29udGV4dHMoKS5hcHBlbmQodGhpcyk7CiAKQEAg
LTU0Nyw2ICs1NTMsMTAgQEAgV2ViUHJvY2Vzc1Byb3h5KiBXZWJDb250ZXh0OjpjcmVhdGVOZXdX
ZWJQcm9jZXNzKCkKICAgICBzdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4o
KS0+cG9wdWxhdGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhwYXJhbWV0ZXJzLm5vdGlm
aWNhdGlvblBlcm1pc3Npb25zKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
KyAgICBzdXBwbGVtZW50PFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eT4oKS0+
cG9wdWxhdGVDb3B5T2ZQb2ludGVyTG9ja1Blcm1pc3Npb25zKHBhcmFtZXRlcnMucG9pbnRlckxv
Y2tQZXJtaXNzaW9ucyk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAg
ICAgcGFyYW1ldGVycy51c2VzTmV0d29ya1Byb2Nlc3MgPSBtX3VzZXNOZXR3b3JrUHJvY2VzczsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA0
ZDIyMWQ0MTc2NGU4NmJmMDM0NjY1ZjM3MGY5ZjM5OTdkM2ZhNDhhLi5jMTUyMDI1OWNmZWQ2Mzdj
M2E2OTFjZjA5MzhmMzU4NWExMzhlM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMjQxLDYgKzI0MSw5IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVBy
b3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBw
CiAgICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudCgpKQogICAgICwgbV9nZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogICAgICwgbV9ub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQor
ICAgICwgbV9wb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQorI2VuZGlm
CiAgICAgLCBtX2VzdGltYXRlZFByb2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5kb3cobV9wYWdl
Q2xpZW50LT5pc1ZpZXdJbldpbmRvdygpKQogICAgICwgbV9pc1Zpc2libGUobV9wYWdlQ2xpZW50
LT5pc1ZpZXdWaXNpYmxlKCkpCkBAIC00ODcsNyArNDkwLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnJlYXR0YWNoVG9XZWJQcm9jZXNzKCkKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
bV9mdWxsU2NyZWVuTWFuYWdlciA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0
aGlzKTsKICNlbmRpZgotCiAgICAgaW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIAogICAgIG1fcGFnZUNs
aWVudC0+ZGlkUmVsYXVuY2hQcm9jZXNzKCk7CkBAIC0zODkwLDYgKzM4OTIsMTAgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnJlc2V0U3RhdGVBZnRlclByb2Nlc3NFeGl0ZWQoKQogCiAgICAgbV9ub3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAK
KyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIG1fcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3QoKTsKKyNlbmRpZgorCiAgICAgbV90b29sVGlw
ID0gU3RyaW5nKCk7CiAKICAgICBtX21haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgPSBm
YWxzZTsKQEAgLTQwOTksNiArNDEwNSwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbgogICAg
ICAgICByZXF1ZXN0LT5kZW55KCk7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQordm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RQb2ludGVyTG9ja1Blcm1pc3Npb24oY29uc3QgU3RyaW5n
JiBvcmlnaW5TdHJpbmcpCit7CisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4g
PSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5TdHJpbmcpOworICAg
IFJlZlB0cjxQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0PiByZXF1ZXN0ID0gbV9wb2ludGVy
TG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0KCk7CisKKyAgICBpZiAo
IW1fdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCh0
aGlzLCBvcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKQorICAgICAgICByZXF1ZXN0LT5kZW55
KCk7Cit9CisjZW5kaWYgLy8gUE9JTlRFUl9MT0NLCisKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93
Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29u
c3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5n
LCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklEKQogewogICAgIG1fcHJvY2Vzcy0+Y29udGV4dCgpLT5zdXBwbGVtZW50
PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4oKS0+c2hvdyh0aGlzLCB0aXRsZSwgYm9keSwg
aWNvblVSTCwgdGFnLCBsYW5nLCBkaXIsIG9yaWdpblN0cmluZywgbm90aWZpY2F0aW9uSUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDRkYjYyZTkxYTIyYTgz
MTYyYTYyMWM1MWM0ZDI3ZGYwNmRhOWM1NDAuLjY1YmZiNzBlZTMxNGE3ZjY5YTRiOTNiMWNiZmQ3
MjVmMjRjMDZmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTM1LDYgKzM1LDkgQEAKICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyNp
bmNsdWRlICJQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisjZW5k
aWYKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0
bWFwLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCkBAIC04ODAsNiArODgzLDEwIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90
aWZpY2F0aW9uSURzKTsKICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB2b2lkIHJl
cXVlc3RQb2ludGVyTG9ja1Blcm1pc3Npb24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpOwor
I2VuZGlmCisKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2b2lkIHBhZ2VEaWRS
ZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdm9pZCBwYWdlVHJh
bnNpdGlvblZpZXdwb3J0UmVhZHkoKTsKQEAgLTExMTksNiArMTEyNiw5IEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk+IG1fb3BlblBhbmVsUmVz
dWx0TGlzdGVuZXI7CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogICAgIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX3BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOworI2VuZGlmIC8vIFBPSU5URVJfTE9DSwogCiAgICAgZG91YmxlIG1fZXN0aW1h
dGVkUHJvZ3Jlc3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhjMWRlOTA4Y2NkNjhjOWY1MmRjMDAwZWE5NjFjNTEzZTI3
NTEyYzMuLjMxNzE2ZGJhYTIxNWI0MWEwNTMzNjBjOWY4MTg3YjhiZmNjOGE1MzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjI0LDYgKzIyNCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIENsZWFyTm90
aWZpY2F0aW9ucyhWZWN0b3I8dWludDY0X3Q+IG5vdGlmaWNhdGlvbklEcykKICAgICBEaWREZXN0
cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogCisjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKKyAgICBSZXF1ZXN0UG9pbnRlckxvY2tQZXJtaXNzaW9uKFdURjo6U3RyaW5n
IG9yaWdpbklkZW50aWZpZXIpCisjZW5kaWYKKwogICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIg
bWVzc2FnZXMKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKSAgCiAgICAgQ2hlY2tUZXh0
T2ZQYXJhZ3JhcGgoV1RGOjpTdHJpbmcgdGV4dCwgdWludDY0X3QgY2hlY2tpbmdUeXBlcykgLT4g
KFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdHMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAppbmRleCBiZmE0ZDhlNDNlN2ViNGZmNjc1M2Fj
YjNlYmZjN2MzODFmYjI0MTFjLi5lYmM2YmJjOTQ5ZWE1MjY0NWU2YmRjMDcwY2RjNzMxYmRkZmEy
MWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKQEAgLTMxLDYg
KzMxLDkgQEAKICNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvcm1hdGlv
bi5oIgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisjaW5jbHVkZSAiUG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVk
ZSAiV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTnVt
YmVyLmgiCkBAIC0zNjUsNiArMzY4LDE1IEBAIGJvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclBvaW50
ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9y
aWdpbiogb3JpZ2luLCBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVx
dWVzdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvclBvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3QpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fY2xpZW50LmRl
Y2lkZVBvbGljeUZvclBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QodG9BUEkocGFnZSksIHRv
QVBJKG9yaWdpbiksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuY2xpZW50SW5m
byk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGZsb2F0IFdlYlVJQ2xpZW50OjpoZWFkZXJIZWln
aHQoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSkKIHsKICAgICBpZiAo
IW1fY2xpZW50LmhlYWRlckhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmgKaW5kZXggOTgxM2Y1NzU0YzgxM2JmMTY5YzZiM2M5MjhiOGU1YWE1ZmJhNDNiNy4uMjUxYWQ5
ZTA2ZWQxMTE4NzA3YmIyZTFmMmVkNWI5YzZjOTg4YmNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgSW1tdXRhYmxlRGljdGlv
bmFyeTsKIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVl
bEV2ZW50OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclByb3h5OwogY2xhc3MgV2ViRGF0YTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CkBAIC0xMDMs
NiArMTA0LDcgQEAgcHVibGljOgogICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSos
IFdlYkZyYW1lUHJveHkqLCBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJQcm94eSopOwogICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViU2VjdXJp
dHlPcmlnaW4qLCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKICAgICBib29s
IGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqKTsK
KyAgICBib29sIGRlY2lkZVBvbGljeUZvclBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QoV2Vi
UGFnZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0Kik7CiAKICAgICAvLyBQcmludGluZy4KICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViUGFn
ZVByb3h5KiwgV2ViRnJhbWVQcm94eSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggZTc4YjhmNjJmMjcwMzRjODBj
MzRiYTg2YjA0MTA0YTc5ZTdhMDZmMy4uMWJmMzFmZWJkY2UwZDYyZjJhZWEyZTIzMTk5Y2VkN2Zm
ZDY2MjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNw
ZWN0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYklu
c3BlY3RvclByb3h5TWFjLm1tCkBAIC00NjMsNiArNDYzLDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKICAgICAgICAgMCwg
Ly8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAg
ICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQKKyAgICAgICAgMCwgLy8gZGVj
aWRlUG9saWN5Rm9yUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAKICAgICBp
bnNwZWN0b3JQYWdlLT5pbml0aWFsaXplVUlDbGllbnQoJnVpQ2xpZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkK
aW5kZXggYTFkYTA0NTFhYzVhZjhmMWYyM2QxN2Q0M2MwNWRhZTkxOTk2NmQ4Zi4uZDk0OTJlMmU3
NDE1MDMxMDZiNDFmZDIxYWI0NzlmODViZTdiMmUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKQEAgLTQwLDYg
KzQwLDcgQEAgSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUi9VSVByb2Nlc3MvTGF1
bmNoZXIgXAogICAgICQkU09VUkNFX0RJUi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCiAgICAg
JCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy9QbHVnaW5zIFwKKyAgICAkJFNPVVJDRV9ESVIvVUlQcm9j
ZXNzL1BvaW50ZXJMb2NrIFwKICAgICAkJFNPVVJDRV9ESVIvVUlQcm9jZXNzL1N0b3JhZ2UgXAog
ICAgICQkU09VUkNFX0RJUi9VSVByb2Nlc3MvcXQgXAogICAgICQkU09VUkNFX0RJUi9VSVByb2Nl
c3MvdGV4bWFwIFwKQEAgLTU5LDYgKzYwLDcgQEAgSU5DTFVERVBBVEggKz0gXAogICAgICQkU09V
UkNFX0RJUi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogICAgICQkU09VUkNFX0RJUi9XZWJQ
cm9jZXNzL1BsdWdpbnMgXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUgXAorICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAkJFNPVVJDRV9ESVIv
V2ViUHJvY2Vzcy9TdG9yYWdlIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGVmNGE4MmY2ZTVkMDdmY2Y3ZDk4
NzY1ODYwNTQ1ZTlmMjFkZWEzNmEuLmIxYWQ4MzZiYmNjMzJhMzcyYTczZjU4YWZmODYwMzY4YmRi
NTk4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0zMiw2ICszMiw5IEBACiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIkxheWVyVHJl
ZUhvc3QuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aCIKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIlBvaW50ZXJMb2NrUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgiCisjZW5kaWYKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNp
bmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5oIgpAQCAtNjQ5LDYgKzY1MiwyNiBAQCBQYXNzUmVmUHRyPFdlYkRhdGE+IEluamVj
dGVkQnVuZGxlOjpjcmVhdGVXZWJEYXRhRnJvbVVpbnQ4QXJyYXkoSlNDb250ZXh0UmVmIGNvbgog
ICAgIHJldHVybiBXZWJEYXRhOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KGFy
cmF5RGF0YS0+YmFzZUFkZHJlc3MoKSksIGFycmF5RGF0YS0+Ynl0ZUxlbmd0aCgpKTsKIH0KIAor
dm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0UG9pbnRlckxvY2tQZXJtaXNzaW9uKFdlYlBhZ2UqIHBh
Z2UsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKKyAgICBwYWdlLT5wb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpLT5zZXRQZXJtaXNzaW9uTGV2ZWxGb3JUZXN0aW5nKG9yaWdpblN0cmluZywgYWxs
b3dlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0o
b3JpZ2luU3RyaW5nKTsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7CisjZW5kaWYKK30KKwor
dm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlQWxsUG9pbnRlckxvY2tQZXJtaXNzaW9ucyhXZWJQ
YWdlKiBwYWdlKQoreworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgcGFnZS0+cG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JU
ZXN0aW5nKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyNlbmRpZgorfQorCiB2
b2lkIEluamVjdGVkQnVuZGxlOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoV2ViUGFn
ZSogcGFnZSwgYm9vbCBlbmFibGVkKQogewogICAgIHBhZ2UtPmNvcmVQYWdlKCktPnNldFRhYktl
eUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCAz
N2Q0MWMyZDIyMThjYzU3Yzg3OTAzNWM0MDJlZWY0NDllMjYxNzJiLi4xZjMxZjJiYWIzYTMwZDJm
OWM3ZTZhZDk5NmYyOWQ5ODQ4NThjZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC0xMjcsNiAr
MTI3LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbnMoV2ViUGFnZSopOwogICAgIHVpbnQ2NF90IHdlYk5vdGlmaWNhdGlvbklEKEpTQ29udGV4
dFJlZiwgSlNWYWx1ZVJlZik7CiAgICAgUGFzc1JlZlB0cjxXZWJEYXRhPiBjcmVhdGVXZWJEYXRh
RnJvbVVpbnQ4QXJyYXkoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKKyAgICB2b2lkIHNldFBv
aW50ZXJMb2NrUGVybWlzc2lvbihXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7CisgICAg
dm9pZCByZW1vdmVBbGxQb2ludGVyTG9ja1Blcm1pc3Npb25zKFdlYlBhZ2UqKTsKIAogICAgIC8v
IFVzZXJDb250ZW50IEFQSQogICAgIHZvaWQgYWRkVXNlclNjcmlwdChXZWJQYWdlR3JvdXBQcm94
eSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29u
c3QgU3RyaW5nJiB1cmwsIEltbXV0YWJsZUFycmF5KiB3aGl0ZWxpc3QsIEltbXV0YWJsZUFycmF5
KiBibGFja2xpc3QsIFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lLCBXZWJDb3JlOjpV
c2VyQ29udGVudEluamVjdGVkRnJhbWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Bl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTEwNzQ2NGNjYjM4NDFmM2Fh
MDk0ZDljOTRlZjU2ZDA0MzBkODVhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVs
ZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1Mg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI+IFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUo
V2ViUGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKHBhZ2UpKTsKK30KKworUG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBh
Z2UqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworYm9vbCBQb2ludGVyTG9ja1Bl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIFBhc3NSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQor
eworICAgIGlmICghb3JpZ2luKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBPbmx5
IG9uZSByZXF1ZXN0IGNhbiBiZSBwcm9jZXNzZWQgZm9yIHRoZSB3ZWJwYWdlIHNhbWUgdGltZQor
ICAgIEFTU0VSVChtX3NlY3VyaXR5T3JpZ2luKTsKKyAgICBpZiAobV9zZWN1cml0eU9yaWdpbikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9zZWN1cml0eU9yaWdpbiA9IG9yaWdpbjsK
KyAgICBtX2NhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgcmV0dXJuIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0UG9pbnRlckxvY2tQZXJtaXNzaW9uKG9yaWdpbi0+
dG9TdHJpbmcoKSkpOworfQorCit2b2lkIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpjYW5jZWxSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKikKK3sKKyAgICBtX3NlY3VyaXR5T3Jp
Z2luLmNsZWFyKCk7CisgICAgbV9jYWxsYmFjay5jbGVhcigpOworfQorCitXZWJQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyOjpQZXJtaXNzaW9uIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpwZXJtaXNzaW9uTGV2ZWwoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2lu
KQoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5zdXBwbGVtZW50PFdlYlBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI+KCktPnBvbGljeUZvck9yaWdpbihzZWN1cml0eU9yaWdp
bik7Cit9CisKK3ZvaWQgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNldFBl
cm1pc3Npb25MZXZlbEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGJvb2wg
YWxsb3dlZCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5zdXBwbGVtZW50PFdlYlBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI+KCktPmRpZFVwZGF0ZVBvaW50ZXJMb2NrRGVjaXNpb24o
b3JpZ2luU3RyaW5nLCBhbGxvd2VkKTsKK30KKwordm9pZCBQb2ludGVyTG9ja1Blcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCkKK3sKKyAgICBX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5zdXBwbGVtZW50PFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1h
bmFnZXI+KCktPnJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworfQorCit2b2lkIFBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uRGVjaXNpb24oYm9vbCBhbGxvd2VkKQoreworICAgIGlmIChtX3NlY3VyaXR5T3Jp
Z2luKSB7CisgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnN1cHBsZW1lbnQ8V2ViUG9pbnRl
ckxvY2tQZXJtaXNzaW9uTWFuYWdlcj4oKS0+ZGlkVXBkYXRlUG9pbnRlckxvY2tEZWNpc2lvbiht
X3NlY3VyaXR5T3JpZ2luLT50b1N0cmluZygpLCBhbGxvd2VkKTsKKyAgICAgICAgaWYgKG1fY2Fs
bGJhY2spCisgICAgICAgICAgICBtX2NhbGxiYWNrLT5oYW5kbGVFdmVudChhbGxvd2VkKTsKKyAg
ICB9CisKKyAgICBtX3NlY3VyaXR5T3JpZ2luLmNsZWFyKCk7CisgICAgbV9jYWxsYmFjay5jbGVh
cigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2lu
dGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0ODRmZjQ3MmI0YWIyN2JlOTRkYzQ4OTVlMTA0YWIzZWYx
ZGUyNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50
ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw3
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIFBvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisjaW5j
bHVkZSAiV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgUG9pbnRlckxvY2tQZXJtaXNz
aW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxQb2ludGVyTG9ja1Blcm1pc3Npb25DYWxs
YmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflBvaW50ZXJMb2NrUGVybWlzc2lvbkNhbGxi
YWNrKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoYm9vbCBwZXJtaXNzaW9u
KSA9IDA7Cit9OworCitjbGFzcyBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI+IGNyZWF0ZShXZWJQYWdlKik7CisKKyAgICBib29sIHN0YXJ0UmVxdWVzdChX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIFBhc3NSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9u
Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qKTsKKworICAgIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI6OlBlcm1pc3Npb24g
cGVybWlzc2lvbkxldmVsKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7CisKKyAgICAvLyBGb3Ig
dGVzdGluZyBwdXJwb3NlcyBvbmx5LgorICAgIHZvaWQgc2V0UGVybWlzc2lvbkxldmVsRm9yVGVz
dGluZyhjb25zdCBTdHJpbmcmLCBib29sKTsKKyAgICB2b2lkIHJlbW92ZUFsbFBlcm1pc3Npb25z
Rm9yVGVzdGluZygpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUG9pbnRlckxvY2tQZXJtaXNzaW9u
RGVjaXNpb24oYm9vbCk7CisKK3ByaXZhdGU6CisgICAgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoV2ViUGFnZSopOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4gbV9zZWN1cml0eU9yaWdpbjsKKyAgICBSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9uQ2Fs
bGJhY2s+IG1fY2FsbGJhY2s7CisgICAgV2ViUGFnZSogbV9wYWdlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjZW5kaWYg
Ly8gUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2Vi
UG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY0NDlkZjUwYWFj
OWE0OTgwOWVmYWFlMzBlZDI3ODk1OTk1OTIyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlci5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBF
bGVjdHJvbmljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNT
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrUGVy
bWlzc2lvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2ViUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVy
biAiV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlciI7Cit9CisKK1dlYlBvaW50ZXJMb2Nr
UGVybWlzc2lvbk1hbmFnZXI6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIoV2ViUHJv
Y2VzcyogcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworfQorCitXZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyOjp+V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
cigpCit7Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6aW5pdGlh
bGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorewor
ICAgIG1fcGVybWlzc2lvbnNNYXAgPSBwYXJhbWV0ZXJzLnBvaW50ZXJMb2NrUGVybWlzc2lvbnM7
Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6ZGlkVXBkYXRlUG9p
bnRlckxvY2tEZWNpc2lvbihjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgYm9vbCBhbGxvd2Vk
KQoreworICAgIG1fcGVybWlzc2lvbnNNYXAuc2V0KG9yaWdpblN0cmluZywgYWxsb3dlZCk7Cit9
CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6ZGlkUmVtb3ZlUG9pbnRl
ckxvY2tEZWNpc2lvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9yaWdpblN0cmluZ3MpCit7Cisg
ICAgc2l6ZV90IGNvdW50ID0gb3JpZ2luU3RyaW5ncy5zaXplKCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICBtX3Blcm1pc3Npb25zTWFwLnJlbW92ZShv
cmlnaW5TdHJpbmdzW2ldKTsKK30KKworV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6
UGVybWlzc2lvbiBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmln
aW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4gKm9yaWdpbikgY29uc3QKK3sKKyAgICBpZiAoIW9y
aWdpbikKKyAgICAgICAgcmV0dXJuIFBlcm1pc3Npb25Ob3RBbGxvd2VkOworCisgICAgQVNTRVJU
KCFvcmlnaW4tPmlzVW5pcXVlKCkpOworCisgICAgSGFzaE1hcDxTdHJpbmcsIGJvb2w+Ojpjb25z
dF9pdGVyYXRvciBpdCA9IG1fcGVybWlzc2lvbnNNYXAuZmluZChvcmlnaW4tPnRvUmF3U3RyaW5n
KCkpOworICAgIGlmIChpdCAhPSBtX3Blcm1pc3Npb25zTWFwLmVuZCgpKQorICAgICAgICByZXR1
cm4gaXQtPnZhbHVlID8gV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6UGVybWlzc2lv
bkFsbG93ZWQgOiBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyOjpQZXJtaXNzaW9uRGVu
aWVkOworICAgIHJldHVybiBQZXJtaXNzaW9uTm90QWxsb3dlZDsKK30KKwordm9pZCBXZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3Rpbmco
KQoreworICAgIG1fcGVybWlzc2lvbnNNYXAuY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBv
aW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTljOGVhZTdmODVjYmY3
NDExYzg1OTg5NjQ2MDRkNTMzYTY0ZDZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2Vy
LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJv
bmljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyX2gKKyNkZWZpbmUgV2Vi
UG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcl9oCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1
cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlBhZ2U7CitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBXZWJQb2ludGVyTG9ja1Bl
cm1pc3Npb25NYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKTsKK3B1YmxpYzoKKyAgICBlbnVtIFBlcm1pc3Npb24g
eworICAgICAgICBQZXJtaXNzaW9uQWxsb3dlZCwKKyAgICAgICAgUGVybWlzc2lvbk5vdEFsbG93
ZWQsCisgICAgICAgIFBlcm1pc3Npb25EZW5pZWQKKyAgICB9OworCisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICBleHBsaWNpdCBXZWJQb2ludGVyTG9ja1Bl
cm1pc3Npb25NYW5hZ2VyKFdlYlByb2Nlc3MqKTsKKyAgICB2aXJ0dWFsIH5XZWJQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyKCk7CisKKyAgICB2b2lkIGRpZFVwZGF0ZVBvaW50ZXJMb2NrRGVj
aXNpb24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGJvb2wgYWxsb3dlZCk7CisgICAgUGVy
bWlzc2lvbiBwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBjb25zdDsK
KworICAgIHZvaWQgcmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCk7CisKK3ByaXZhdGU6
CisgICAgLy8gV2ViUHJvY2Vzc1N1cHBsZW1lbnQKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6
ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgT1ZFUlJJREU7CisKKyAgICAv
LyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZF
UlJJREU7CisKKyAgICB2b2lkIGRpZFJlbW92ZVBvaW50ZXJMb2NrRGVjaXNpb25zKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBvcmlnaW5TdHJpbmdzKTsKKworICAgIFdlYlByb2Nlc3MqIG1fcHJvY2Vz
czsKKyAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4gbV9wZXJtaXNzaW9uc01hcDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfTE9DSykKKwor
I2VuZGlmIC8vIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1p
c3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2lu
dGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFmNWMzZjQ5ODY3YWUwZjBiODRkYTljYzIyOTI3OGE3OWYzMGZhMzEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIwor
IyBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9O
SUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
CisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyMKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCittZXNzYWdlcyAtPiBXZWJQ
b2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyIHsKKyAgICBEaWRVcGRhdGVQb2ludGVyTG9ja0Rl
Y2lzaW9uKFdURjo6U3RyaW5nIG9yaWdpblN0cmluZywgYm9vbCBhbGxvd2VkKTsKKyAgICBEaWRS
ZW1vdmVQb2ludGVyTG9ja0RlY2lzaW9ucyhWZWN0b3I8V1RGOjpTdHJpbmc+IG9yaWdpblN0cmlu
Z3MpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggZWNjYjgzYzU3MGU5ZDIzNTVkNjUyMTFiN2IxOGNiZWVmMjk3ZWVmMC4u
ZmM3MDFiMDdkNzE2ZTYwMjkzNTgxZTA4NTVmYTE3YjNhZDQ4NTQ5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDQsNiArNDQsOSBAQAog
I2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJv
eHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
KyNpbmNsdWRlICJQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorI2VuZGlm
CiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCkBAIC0yNTk4LDYgKzI2MDEsMTUgQEAgV2ViRnVsbFNj
cmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKiBXZWJQYWdlOjpwb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpCit7Cisg
ICAgaWYgKCFtX3BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQorICAgICAgICBt
X3BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyID0gUG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1cm4gbV9wb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5nZXQoKTsKK30KKyNlbmRpZgorCiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIFdlYlBhZ2U6Om5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigpCiB7CiAgICAgaWYgKG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKQpAQCAtMjkxNSw2ICsyOTI3LDEzIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVj
ZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25J
RCwKICAgICBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+ZGlkUmVjZWl2
ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmljYXRpb25JRCwgYWxsb3dlZCk7
CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
UG9pbnRlckxvY2tQZXJtaXNzaW9uRGVjaXNpb24oYm9vbCBhbGxvd2VkKQoreworICAgIHBvaW50
ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVQb2ludGVyTG9ja1Bl
cm1pc3Npb25EZWNpc2lvbihhbGxvd2VkKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OmFk
dmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogewogICAg
IEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5G
cmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggN2JkZjA2OWNjMGIwMDYxM2I2MThkMThmODBkNDMwZjJlZTVjODk0MS4uNDg4MmY2MjM2Zjcz
MzNmZDBjNTBkMjgyMTU1MDQyZDMzNjRmZmMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzQsNiArMTM0LDcgQEAgY2xhc3MgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgUGFnZUJhbm5lcjsKIGNsYXNzIFBh
Z2VPdmVybGF5OwogY2xhc3MgUGx1Z2luVmlldzsKK2NsYXNzIFBvaW50ZXJMb2NrUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgU2Vzc2lvblN0YXRlOwogY2xhc3MgV2ViQ29sb3JDaG9v
c2VyOwogY2xhc3MgV2ViQ29udGV4dE1lbnU7CkBAIC0yMDIsNiArMjAzLDEwIEBAIHB1YmxpYzoK
ICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1hbmFnZXIoKTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0TWFuYWdlciogcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKKyNlbmRp
ZgorCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTog
V2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVy
ZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwogICAgIHZvaWQgZHJhd1JlY3QoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwpAQCAtODE5LDYg
KzgyNCwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpOwog
CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB2b2lkIGRpZFJlY2VpdmVQb2ludGVyTG9j
a1Blcm1pc3Npb25EZWNpc2lvbihib29sIGFsbG93ZWQpOworI2VuZGlmCisKICAgICB2b2lkIGFk
dmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKTsKICAgICB2
b2lkIGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAjaWYgVVNFKEFQ
UEtJVCkKQEAgLTk2NSw2ICs5NzQsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IG1fZnVsbFNjcmVlbk1hbmFn
ZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIFJlZlB0cjxQb2ludGVy
TG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9wb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjsKKyNlbmRpZgogICAgIFJlZlB0cjxXZWJQb3B1cE1lbnU+IG1fYWN0aXZlUG9w
dXBNZW51OwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIFJlZlB0cjxXZWJDb250ZXh0
TWVudT4gbV9jb250ZXh0TWVudTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMjVlYmQ4Njg4YjYyMjUxOWY0ZDdk
MjNkYmExNDJmOGJhM2IxMzk4ZC4uNzJjZjU1ZGI2YzFmOWQwZTQ0MjBkOWM3ZjMyMzQ5NzI3OWYy
YzU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTIxOCw2ICsyMTgsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90
aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29s
IGFsbG93ZWQpCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIERpZFJlY2VpdmVQb2lu
dGVyTG9ja1Blcm1pc3Npb25EZWNpc2lvbihib29sIGFsbG93ZWQpCisjZW5kaWYKKwogICAgIFNl
dFdpbmRvd1Jlc2l6ZXJTaXplKFdlYkNvcmU6OkludFNpemUgaW50ZXJzZWN0c1ZpZXcpCiAKICAg
ICAjIFByaW50aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggYjViMjE0YWFlZWMzZTAwNDEzZDE1OTg2YTQ1YmFlOTBhZGJjYThjYi4uY2E1Njk5MDFhZDk5
NzdmMTMxZmQ1MjhmNWZlOWJlOTQyYTJlNDM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC00OCw2ICs0OCw5IEBACiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuaCIKKyNlbmRp
ZgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCkBA
IC0yMDksNiArMjEyLDkgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAjaWYgVVNFKFNPVVAp
CiAgICAgYWRkU3VwcGxlbWVudDxXZWJTb3VwUmVxdWVzdE1hbmFnZXI+KCk7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIGFkZFN1cHBsZW1lbnQ8V2ViUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uTWFuYWdlcj4oKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAyOTA4MDI3M2Q1OGY0YjU2YTUyM2IwYjBlOWYwZDM4ZjY1MDFkYzJjLi4wNTU5M2Q1
ZDIwMmI2MjhmZWU4M2ZlYmZjYmY1OGY4YzRlOWQ1NGEyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDYtMjcg
IFN0YW5pc2xhdiBQaWt1bGlrICA8c3RhbmlzbGF2LnBpa3VsaWtAbGdlLmNvbT4KKworICAgICAg
ICBbUXRdW1dLMl0gSGFuZGxpbmcgUG9pbnRlciBMb2NrIHBlcm1pc3Npb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgxMzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgbnVsbCBwb2ludGVyIGZv
ciBuZXcgbWV0aG9kIGluIFdLUGFnZVVJQ2xpZW50IHN0cnVjdCB0byBmaXggd2FybmluZ3MKKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisKIDIwMTMtMDYtMjcgIFhh
YmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBG
aXhpbmcgc29tZSBjb21waWxlciB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCAwOTY0N2ExNjAxNzM4NDE3Y2ZmZGYwMzY2ZTRkOTkxODAzZDY0
OTIzLi4xYTRlYzVhYTE5MTEzYjdiMGQ2NmVjODc5NmQ2MzQyMTgxYTBhZThjIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjQ3LDYgKzI0Nyw3IEBAIFdL
UGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdl
LCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAg
ICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvclBvaW50ZXJMb2Nr
UGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQ
YWdlLCAmb3RoZXJQYWdlVUlDbGllbnQpOwogCkBAIC00NDYsNiArNDQ3LDcgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRp
b25zKQogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNv
bG9yUGlja2VyCiAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCwKKyAgICAg
ICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdAogICAg
IH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBh
Z2VVSUNsaWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205676</attachid>
            <date>2013-06-28 00:46:36 -0700</date>
            <delta_ts>2013-10-02 21:38:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118133-20130628114425.patch</filename>
            <type>text/plain</type>
            <size>100924</size>
            <attacher name="Stanislav Pikulik">stanislav.pikulik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUxMjM3NzUwNjRmMzY1
MDdlMzM5MGQ5YTFhZWE3MzQ0Mzc1YjkzNC4uOGFmNzJmNTQxMTk0NWJlY2QzZTQ2YzE3ZTk0OGU4
MGJlYTNlMThjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA2LTI4ICBTdGFu
aXNsYXYgUGlrdWxpayAgPHN0YW5pc2xhdi5waWt1bGlrQGxnZS5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIEhhbmRsaW5nIFBvaW50ZXIgTG9jayBwZXJtaXNzaW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MTMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisK
KyAgICAgICAgaW5jbHVkZSBQb2ludGVyTG9ja0NvbnRyb2xsZXIgZmlsZXMKKworICAgICAgICAq
IFRhcmdldC5wcmk6CisKIDIwMTMtMDYtMjcgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIEhUTUxBdWRpb0VsZW1lbnQgZG9lc24ndCBoYXZlIHRvIGtub3cg
YWJvdXQgaXNWaWRlbyBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhjMTBmY2MzODMyY2VlMWFkNWUy
NzE5OTcyMzA4OTliOTJkMGM0NzEuLjcxODdhOWEzODcyYjI4MWQ0N2FiMjhhNWJlYzZlNTczYzc5
NjA3NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjUgQEAKKzIwMTMtMDYtMjggIFN0YW5pc2xh
diBQaWt1bGlrICA8c3RhbmlzbGF2LnBpa3VsaWtAbGdlLmNvbT4KKworICAgICAgICBbUXRdW1dL
Ml0gSGFuZGxpbmcgUG9pbnRlciBMb2NrIHBlcm1pc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgxMzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9u
TWFuYWdlciB0byB0byBsb2FkIFBlcm1pc3Npb25zIGZyb20gVUlQcm9jZXNzIGFuZCBjYWNoZSB0
aGVtIG9uIFdlYlByb2Nlc3Mgc2lkZQorICAgICAgICBhZGQgUG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIgdG8gaGFuZGxlIHByZW1zc2lvbnMgcmVxdWVzdHMgb24gV2ViUHJvY2Vz
cyBzaWRlCisgICAgICAgIGFkZCBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5IHRvIG5vdGlmeSBhYm91dCBwZXJtaXNzaW9uIGRlY2lzaW9uCisgICAgICAgIGFkZCBQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0IHRvIGhhbmRsZSBzcGVjaWZpYyByZXF1ZXN0IGluIFVJ
UHJvY2VzcworICAgICAgICBhZGQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlciB0byBz
dXBwb3J0IG92ZXJsb2FkaW5nIG9mIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIKKyAg
ICAgICAgYWRkIG1ldGhvZHMgdG8gSW5qZWN0ZWRCdW5kbGUgY2xpZW50IHRvIHNldHVwIGN1c3Rv
bSBiZWhhdmlvciBvZiBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyIGZvciB0ZXN0aW5n
CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwOgorICAgICAg
ICAqIFNoYXJlZC9BUElDbGllbnRUcmFpdHMuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRl
eHRHZXRQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlckdldFR5
cGVJRCk6CisgICAgICAgIChXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJTZXRQcm92aWRl
cik6CisgICAgICAgIChXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm92aWRlckRpZFVw
ZGF0ZVBvaW50ZXJMb2NrUG9saWN5KToKKyAgICAgICAgKFdLUG9pbnRlckxvY2tQZXJtaXNzaW9u
TWFuYWdlclByb3ZpZGVyRGlkUmVtb3ZlUG9pbnRlckxvY2tQb2xpY2llcyk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXS1BvaW50ZXJMb2NrUGVybWlzc2lv
blJlcXVlc3RHZXRUeXBlSUQpOgorICAgICAgICAoV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0QWxsb3cpOgorICAgICAgICAoV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0RGVueSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVz
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3cpOgorICAgICAg
ICAoV2ViS2l0OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0OjpkZW55KToKKyAgICAgICAg
KFdlYktpdDo6UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Qu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6UG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBvaW50ZXJMb2Nr
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3Jl
YXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVQb2ludGVyTG9ja1Blcm1pc3Npb25EZWNpc2lvbik6
CisgICAgICAgICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BvaW50ZXJM
b2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXJQcm94eTo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
b2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6V2ViUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uTWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJv
eHk6OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVy
bWlzc2lvbk1hbmFnZXJQcm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29u
dGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyUHJveHk6OnBvcHVsYXRlQ29weU9mUG9pbnRlckxvY2tQZXJtaXNzaW9ucyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6cHJv
dmlkZXJEaWRVcGRhdGVQb2ludGVyTG9ja1BvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBv
aW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRSZW1vdmVQb2ludGVy
TG9ja1BvbGljaWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRl
ckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlcjo6YWRk
UG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50
ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyOjpyZW1vdmVQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXI6
OnBvaW50ZXJMb2NrUGVybWlzc2lvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qb2ludGVyTG9j
ay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6Oldl
YkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9j
ZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZXNldFN0YXRlQWZ0ZXJQcm9jZXNzRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpyZXF1ZXN0UG9pbnRlckxvY2tQZXJtaXNzaW9uKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yUG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSk6Cisg
ICAgICAgICogV2ViS2l0Mi5wcmk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpz
ZXRQb2ludGVyTG9ja1Blcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZTo6cmVtb3ZlQWxsUG9pbnRlckxvY2tQZXJtaXNzaW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
Y2FuY2VsUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpwZXJtaXNzaW9uTGV2ZWwpOgorICAgICAgICAoV2ViS2l0OjpQb2ludGVy
TG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVy
bWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50
ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpQb2ludGVyTG9ja1Blcm1pc3Npb25DYWxsYmFjazo6flBvaW50ZXJMb2NrUGVybWlzc2lvbkNh
bGxiYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2Nr
UGVybWlzc2lvbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRl
ckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyOjpXZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlcjo6fldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6ZGlkVXBkYXRlUG9pbnRl
ckxvY2tEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lv
bk1hbmFnZXI6OmRpZFJlbW92ZVBvaW50ZXJMb2NrRGVjaXNpb25zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6cG9saWN5Rm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6cmVtb3ZlQWxs
UGVybWlzc2lvbnNGb3JUZXN0aW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BvaW50ZXJMb2Nr
L1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVBvaW50ZXJMb2Nr
UGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OldlYlByb2Nlc3MpOgorCiAyMDEzLTA2LTI4ICBEYXJpdXN6IEZyYW5raWV3aWN6
ICA8ZC5mcmFua2lld2ljQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gQWRkIHNw
ZWxsY2hlY2sgQVBJIHRlc3RzIGluIHVuaXQgdGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBhYjIyZjA3
MGZhZGQ3MmEyYjBkZGFiMzlmMWM0N2QzM2RlY2Y0NTc1Li5lMjFjZDg4Y2VlOGFmZTRlMWI5YTVk
ZmUzZDJmYjI2MmQ1MDA0MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk0MSw2ICs5NDEsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgXAogICAgIHBhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1p
bmcuY3BwIFwKKyAgICBwYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2Uv
UHJpbnRDb250ZXh0LmNwcCBcCiAgICAgcGFnZS9TY3JlZW4uY3BwIFwKICAgICBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb25zdHJhaW50cy5jcHAgXApAQCAtMjA5Nyw2ICsyMDk4LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgcGFnZS9QYWdlVGhyb3R0bGVyLmggXAogICAgIHBhZ2UvUGFnZVZpc2li
aWxpdHlTdGF0ZS5oIFwKICAgICBwYWdlL1BsdWdJbkNsaWVudC5oIFwKKyAgICBwYWdlL1BvaW50
ZXJMb2NrQ29udHJvbGxlci5oIFwKICAgICBwYWdlL1BvcHVwT3BlbmluZ09ic2VydmVyLmggXAog
ICAgIHBhZ2UvUHJpbnRDb250ZXh0LmggXAogICAgIHBhZ2UvU2NyZWVuLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYktpdDIvRGVy
aXZlZFNvdXJjZXMucHJpCmluZGV4IGRjMTdmYWFhYzBiOWNjZmY4MjhiNGJjZDc2MTRiYmFhNjNm
MWRkOWMuLjJkOWY3NmI2YmViY2M2NjdiYmZiODBjODhjYWNiY2EyMjRiZWI4NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTQ4LDYgKzQ4LDcgQEAgVlBBVEggPSBcCiAgICAgV2Vi
UHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKICAg
ICBXZWJQcm9jZXNzL1BsdWdpbnMgXAorICAgIFdlYlByb2Nlc3MvUG9pbnRlckxvY2sgXAogICAg
IFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlIFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKQEAgLTU5LDYgKzYwLDcgQEAgVlBBVEggPSBc
CiAgICAgVUlQcm9jZXNzL0Rvd25sb2FkcyBcCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMg
XAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zIFwKKyAgICBVSVByb2Nlc3MvUG9pbnRlckxvY2sgXAog
ICAgIFVJUHJvY2Vzcy9TdG9yYWdlIFwKICAgICBTaGFyZWQgXAogICAgIFNoYXJlZC9BdXRoZW50
aWNhdGlvbiBcCkBAIC0xMDAsNiArMTAyLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAg
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViRnVsbFNjcmVlbk1h
bmFnZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gXAorICAgIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIubWVzc2FnZXMuaW4g
XAogICAgIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbiBcCiAgICAgRHJhd2lu
Z0FyZWEubWVzc2FnZXMuaW4gXAogICAgIFdlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggZWE4ZTJmMWJhNzQxYTc1YTI0MjBkOTFk
MzIwOTM2MDIzMzc0YTRmYi4uNDk5NzBmYmMyZDA5ODM1MjEwZmJmYWVhMTYyM2ExZDYwZDNhOTky
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTM0LDYgKzEzNCw5IEBA
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZSogV0tQYWdlUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyog
V0tQcmVmZXJlbmNlc1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUG9pbnRlckxv
Y2tQZXJtaXNzaW9uTWFuYWdlciogV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUmVmOwor
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
KiBXS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyKiBXS1BvaW50ZXJMb2NrUGVy
bWlzc2lvblByb3ZpZGVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0
aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSUNsaWVudFRyYWl0cy5jcHAKaW5kZXggOWFmN2M3NmUzYmQyODRlY2ZmOTkwZDljMzNlYzI2
ODg2MmU5NTEzZi4uOTVmOGM5MTQyYmRmMjI3N2NiYTMyYjQzZjMxMTJjZjQyMGY2OWRjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKQEAgLTU1LDcgKzU1LDcg
QEAgY29uc3Qgc2l6ZV90IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50Pjo6aW50ZXJmYWNlU2l6ZXNCeVZlcnMKICAgICBvZmZzZXRvZihXS0J1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50LCBiZWdhbkVudGVyRnVsbFNjcmVlbiksCiAgICAgc2l6ZW9mKFdLQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQpCiB9OwotICAgIAorCiBjb25zdCBzaXplX3QgQVBJQ2xpZW50
VHJhaXRzPFdLUGFnZUNvbnRleHRNZW51Q2xpZW50Pjo6aW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25b
XSA9IHsKICAgICBvZmZzZXRvZihXS1BhZ2VDb250ZXh0TWVudUNsaWVudCwgY29udGV4dE1lbnVE
aXNtaXNzZWQpLAogICAgIG9mZnNldG9mKFdLUGFnZUNvbnRleHRNZW51Q2xpZW50LCBnZXRDb250
ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnUpLApAQCAtNzIsNiArNzIsNyBAQCBjb25zdCBzaXplX3Qg
QVBJQ2xpZW50VHJhaXRzPFdLUGFnZUxvYWRlckNsaWVudD46OmludGVyZmFjZVNpemVzQnlWZXJz
aW9uW10gPSB7CiBjb25zdCBzaXplX3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50Pjo6
aW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bXSA9IHsKICAgICBvZmZzZXRvZihXS1BhZ2VVSUNsaWVu
dCwgY3JlYXRlTmV3UGFnZSksCiAgICAgb2Zmc2V0b2YoV0tQYWdlVUlDbGllbnQsIHNob3dDb2xv
clBpY2tlciksCisgICAgb2Zmc2V0b2YoV0tQYWdlVUlDbGllbnQsIGRlY2lkZVBvbGljeUZvclBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QpLAogICAgIHNpemVvZihXS1BhZ2VVSUNsaWVudCkK
IH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJh
aXRzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKaW5kZXggNGE2
NmE0ZWU4MDI4ZTlkN2Q3NGUxNDNiNjNjY2UwMWI5NDM5Nzg2Ny4uMTQzODBmYjExMjJjZDM0MjBl
MWE1NDM2MWQwMzVmMWYxMzgzZWI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSUNsaWVudFRyYWl0cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRU
cmFpdHMuaApAQCAtNjgsNyArNjgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElDbGllbnRUcmFp
dHM8V0tQYWdlTG9hZGVyQ2xpZW50PiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElDbGll
bnRUcmFpdHM8V0tQYWdlVUlDbGllbnQ+IHsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGludGVy
ZmFjZVNpemVzQnlWZXJzaW9uWzNdOworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50ZXJmYWNl
U2l6ZXNCeVZlcnNpb25bNF07CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElDbGllbnRUcmFp
dHM8V0tCdW5kbGVQYWdlRm9ybUNsaWVudD4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmlu
ZGV4IDQ0MWUwNWU5ODdmNjczYzJjNzRhNmNjN2E3MGU0YTdjNGU0NzMyZjguLmYxMTFkYmYxYTY1
YWM0MWFlOWRlMmJiZmRjYmJmNTUzMDA2MGFkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgKQEAgLTEwNiw2ICsxMDYsOCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVQYWdlLAogICAgICAg
ICBUeXBlUGFnZUdyb3VwLAogICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLAorICAg
ICAgICBUeXBlUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCwKKyAgICAgICAgVHlwZVBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIsCiAgICAgICAgIFR5cGVQcmVmZXJlbmNlcywKICAgICAg
ICAgVHlwZVRleHRDaGVja2VyLAogICAgICAgICBUeXBlVmlicmF0aW9uLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmlu
ZGV4IDU2ZjE0NGQ2ZGE0YjI1NzNjOWRmZTU2MDZhYzM0MjkzMjA4MTk0NmYuLjAxZjRjNmIzZWVj
M2RhZTIwNDE2MGI3ZTI4MWJiMTllODg2OTJlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTEwNiw2ICsx
MDYsMTAgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb24KICAgICBlbmNvZGVyIDw8IG5vdGlmaWNh
dGlvblBlcm1pc3Npb25zOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAg
IGVuY29kZXIgPDwgcG9pbnRlckxvY2tQZXJtaXNzaW9uczsKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKICAgICBlbmNvZGVyIDw8IHVzZXNOZXR3b3JrUHJvY2VzczsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggZDIxOTNjNzQ2NzY3ODhlZjJkZTZlYTc5MWFmNzkzZjc0ODZmMWVi
MC4uMDJhNWJiZGNlMTY0MmY0YjIyMDk3MjI3YTM3NjhjMGEzNDMyNGI5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0xMjgsNiArMTI4LDEwIEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4gbm90aWZpY2F0aW9uUGVybWlzc2lvbnM7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgSGFzaE1hcDxTdHJpbmcsIGJvb2w+
IHBvaW50ZXJMb2NrUGVybWlzc2lvbnM7CisjZW5kaWYKKwogI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCiAgICAgYm9vbCB1c2VzTmV0d29ya1Byb2Nlc3M7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmlu
ZGV4IGZlNjMzNmExMDE1NjNmMWJlMTZkNWIwZDgxNzM0OGQ1N2U1NWQ0MzcuLjdlNWY0MTNlMmYx
ODU0OTIwNTQxMTYwYTM4ZTM4MjUwNmQ1YzZmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTg4LDYgKzE4
OCw5IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tQb2lu
dGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuaCBcCkBAIC0yNzksNiArMjgy
LDEwIEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGll
bnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oIFwKICAgICBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggXAorICAgIFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0LmggXAorICAgIFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Bl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAorICAgIFVJUHJvY2Vzcy9Qb2ludGVyTG9j
ay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHkuaCBcCisgICAgVUlQcm9jZXNz
L1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmggXAogICAgIFVJ
UHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByZWZlcmVuY2Vz
LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBcCkBAIC0zMzksNiArMzQ2LDgg
QEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmggXAog
ICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIFwKICAgICBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmggXAorICAg
IFdlYlByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCBcCisgICAgV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNs
aWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oIFwKQEAg
LTU0OSw2ICs1NTgsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcCBcCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5jcHAgXAorICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rp
b25TcGFjZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2Vy
LmNwcCBcCkBAIC01ODksNiArNjAwLDEwIEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9Q
bHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9QbHVn
aW5zL3F0L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMv
dW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcCBcCisgICAgVUlQcm9jZXNzL1BvaW50ZXJMb2Nr
L1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKKyAgICBVSVByb2Nlc3MvUG9pbnRl
ckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAorICAg
IFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJv
eHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNz
aW9uUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAg
XAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9T
dG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcCBcCkBAIC03MTUsNiArNzMwLDggQEAgU09V
UkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcCBcCiAgICAg
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgXAorICAg
IFdlYlByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwIFwKKyAgICBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBs
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBcCiAgICAg
V2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNjRjOGQxYWJmYjEwMGM4ZTk2
MjU1Nzc5MTE5YmE3YjRlMTZlYjliMy4uOTYxNmYxMWI2NjIyMmNiNzljMzc0ZDU5N2U0MDYyNzI3
OTA4YjllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApA
QCAtNTcsNiArNTcsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBj
bGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBQb2ludGVy
TG9ja1Blcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW07CkBAIC05MCw2ICs5MSw4IEBAIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI7CitjbGFzcyBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25N
YW5hZ2VyUHJveHk7CitjbGFzcyBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlcjsKIGNs
YXNzIFdlYlByZWZlcmVuY2VzOwogY2xhc3MgV2ViUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgV2Vi
UmVuZGVyTGF5ZXI7CkBAIC0xMzYsNiArMTM5LDkgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkK
IFdLX0FERF9BUElfTUFQUElORyhXS1BhZ2VHcm91cFJlZiwgV2ViUGFnZUdyb3VwKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIpCitX
S19BRERfQVBJX01BUFBJTkcoV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUmVmLCBXZWJQ
b2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UmVmLCBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXJS
ZWYsIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLUHJlZmVyZW5jZXNSZWYsIFdlYlByZWZlcmVuY2VzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
UHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3BhY2UpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IDE2MjlhNTYyNzM5OGVmNjYzNWZjM2I0
MGZlOGQ1M2ViYmFmYjQ0NmEuLjE0NzBmMGI3YzAyMGUyMDEzNjZkYjZhNzhkODhiODY1YjliZDJj
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBA
IC00MSw2ICs0MSw5IEBACiAjaW5jbHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIgog
I2luY2x1ZGUgIldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1
ZGUgIldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eS5oIgorI2VuZGlmCiAjaW5j
bHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgogI2lmIEVOQUJMRShTUUxfREFU
QUJBU0UpCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCIKQEAgLTI2MCw2ICsy
NjMsMTUgQEAgV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldE5vdGlmaWNhdGlv
bk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYKICAgICByZXR1cm4gdG9BUEkodG9JbXBs
KGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4oKSk7
CiB9CiAKK1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVm
KS0+c3VwcGxlbWVudDxXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk+KCkpOwor
I2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiBXS1BsdWdpblNpdGVEYXRhTWFuYWdl
clJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggM2NlNzMxZTc4ZjBmY2Q4MGI4YTlh
ZDdlNGZhMDVkMTU1YzkzMDBlMC4uZGU0NDhjYTk1OWRiYjhmNjQyNzU3ZmVlNTkwNzRlNDA0ZDRh
NmNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAt
MTk1LDcgKzE5NSw4IEBAIFdLX0VYUE9SVCBXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXROZXR3b3JrSW5mb01hbmFnZXIoV0tDb250ZXh0UmVmIGNvCiBXS19FWFBPUlQgV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldE5vdGlmaWNhdGlvbk1hbmFnZXIoV0tDb250
ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIFdL
Q29udGV4dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBX
S19FWFBPUlQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNh
Y2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci0gICAgCitXS19FWFBPUlQgV0tQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldFBvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworCiB0eXBlZGVmIHZvaWQgKCpXS0Nv
bnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24pKFdLRGljdGlvbmFyeVJlZiBzdGF0aXN0aWNzLCBX
S0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0R2V0U3RhdGlzdGljcyhXS0NvbnRleHRSZWYgY29udGV4dCwgdm9pZCogZnVuY3Rp
b25Db250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rpb24pOwogV0tf
RVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljc1dpdGhPcHRpb25zKFdLQ29udGV4dFJl
ZiBjb250ZXh0LCBXS1N0YXRpc3RpY3NPcHRpb25zIHN0YXRpc3RpY3NNYXNrLCB2b2lkKiBmdW5j
dGlvbkNvbnRleHQsIFdLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlvbiBmdW5jdGlvbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXggMTc2NTc4ZmVlOTUyZDVm
ZTZhMTc0NWE3MzljY2MwODI1MDBmNDM4Yi4uOGExZjNlZjkzYmYyN2Y1NGRlZWIwMDkzOWUwMmEx
ZDUzYzlkMWQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAt
MjIwLDYgKzIyMCw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnCiB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUhpZGVDb2xvclBp
Y2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFj
aykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24sIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGljdGlvbmFyeSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xp
Y3lGb3JQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1
ZXN0UmVmIHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogLy8g
RGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25h
cnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VC
dXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMjgyLDEwICsy
ODMsMTMgQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VTaG93Q29sb3JQaWNr
ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xv
clBpY2tlcjsKICAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKICAgICBXS1BhZ2VVbmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
IHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKworICAgIC8vIFZlcnNpb24gMworICAg
IFdLUGFnZURlY2lkZVBvbGljeUZvclBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
ayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdDsK
IH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCBXS1BhZ2VVSUNsaWVudDsKIAotZW51
bSB7IGtXS1BhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uID0gMiB9OworZW51bSB7IGtXS1BhZ2VV
SUNsaWVudEN1cnJlbnRWZXJzaW9uID0gMyB9OwogCiAvLyBGaW5kIGNsaWVudC4KIHR5cGVkZWYg
dm9pZCAoKldLUGFnZURpZEZpbmRTdHJpbmdDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIHN0cmluZywgdW5zaWduZWQgbWF0Y2hDb3VudCwgY29uc3Qgdm9pZCogY2xpZW50SW5m
byk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVy
TG9ja1Blcm1pc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxODJiNGI0
ZmU4MDdlYTg2M2Q0OTBkM2MyMThjMTZhZjQ1M2ZiM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0
cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworCitXS1R5cGVJRCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJHZXRUeXBlSUQo
KQoreworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgcmV0dXJuIHRvQVBJKFdlYlBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6QVBJVHlwZSk7CisjZWxzZQorICAgIHJldHVy
biBBUElPYmplY3Q6OlR5cGVOdWxsOworI2VuZGlmCit9CisKK3ZvaWQgV0tQb2ludGVyTG9ja1Bl
cm1pc3Npb25NYW5hZ2VyU2V0UHJvdmlkZXIoV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2Vy
UmVmIG1hbmFnZXJSZWYsIGNvbnN0IFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIqIHdr
UHJvdmlkZXIpCit7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB0b0ltcGwobWFuYWdl
clJlZiktPmluaXRpYWxpemVQcm92aWRlcih3a1Byb3ZpZGVyKTsKKyNlbmRpZgorfQorCit2b2lk
IFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3ZpZGVyRGlkVXBkYXRlUG9pbnRlckxv
Y2tQb2xpY3koV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUmVmIG1hbmFnZXJSZWYsIFdL
U2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKKyAgICB0b0ltcGwobWFuYWdlclJlZiktPnByb3ZpZGVyRGlkVXBkYXRlUG9p
bnRlckxvY2tQb2xpY3kodG9JbXBsKG9yaWdpbiksIGFsbG93ZWQpOworI2VuZGlmCit9CisKK3Zv
aWQgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJvdmlkZXJEaWRSZW1vdmVQb2ludGVy
TG9ja1BvbGljaWVzKFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclJlZiBtYW5hZ2VyUmVm
LCBXS0FycmF5UmVmIG9yaWdpbnMpCit7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB0
b0ltcGwobWFuYWdlclJlZiktPnByb3ZpZGVyRGlkUmVtb3ZlUG9pbnRlckxvY2tQb2xpY2llcyh0
b0ltcGwob3JpZ2lucykpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjE3MThiNDk1NWUwOTlkZDg2ZGRlNjY0NTM3ZTlmY2MwNGJkNDk3ZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvaW50ZXJM
b2NrUGVybWlzc2lvbk1hbmFnZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
TEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlcl9oCisjZGVmaW5lIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcl9oCisKKyNpbmNs
dWRlICJXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmgiCisjaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgor
CitXS19FWFBPUlQgV0tUeXBlSUQgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyR2V0VHlw
ZUlEKCk7CitXS19FWFBPUlQgdm9pZCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJTZXRQ
cm92aWRlcihXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJSZWYgbWFuYWdlclJlZiwgY29u
c3QgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlciogd2tQcm92aWRlcik7CitXS19FWFBP
UlQgdm9pZCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm92aWRlckRpZFVwZGF0ZVBv
aW50ZXJMb2NrUG9saWN5KFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclJlZiBtYW5hZ2Vy
UmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgYm9vbCBhbGxvd2VkKTsKK1dLX0VYUE9S
VCB2b2lkIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3ZpZGVyRGlkUmVtb3ZlUG9p
bnRlckxvY2tQb2xpY2llcyhXS1BvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJSZWYgbWFuYWdl
clJlZiwgV0tBcnJheVJlZiBvcmlnaW5zKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8vIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Np
b25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9pbnRlckxv
Y2tQZXJtaXNzaW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmU4MWQ3M2ExMTk5N2VhNDU3Y2Mw
NzBjODhiNGY4N2ZjMzI3OGJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIuaApAQCAtMCwwICsx
LDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdL
UG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXJfaAorI2RlZmluZSBXS1BvaW50ZXJMb2NrUGVy
bWlzc2lvblByb3ZpZGVyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordHlwZWRlZiB2b2lkICgqV0tQ
b2ludGVyTG9ja1Blcm1pc3Npb25BZGROb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2spKFdLUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXJSZW1v
dmVOb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2spKFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgV0tEaWN0
aW9uYXJ5UmVmICgqV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlclBlcm1pc3Npb25zQ2Fs
bGJhY2spKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCitzdHJ1Y3QgV0tQb2ludGVyTG9ja1Bl
cm1pc3Npb25Qcm92aWRlciB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50SW5mbzsKKyAgICBXS1BvaW50ZXJMb2NrUGVybWlzc2lvbkFkZE5vdGlmaWNhdGlvbk1hbmFn
ZXJDYWxsYmFjayAgICAgICAgICAgIGFkZFBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI7Cisg
ICAgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlclJlbW92ZU5vdGlmaWNhdGlvbk1hbmFn
ZXJDYWxsYmFjayByZW1vdmVQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyOworICAgIFdLUG9p
bnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXJQZXJtaXNzaW9uc0NhbGxiYWNrICAgICAgICAgICAg
ICAgcG9pbnRlckxvY2tQZXJtaXNzaW9uczsKK307Cit0eXBlZGVmIHN0cnVjdCBXS1BvaW50ZXJM
b2NrUGVybWlzc2lvblByb3ZpZGVyIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXI7CisK
K2VudW0geyBrV0tQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlckN1cnJlbnRWZXJzaW9uID0g
MCB9OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tQb2lu
dGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3MGQ0OTdmZmJjOGFlMmI2NDJmNmI3N2JhZTQ1YWFhMzNiM2MzZmQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJP
TklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJQb2ludGVy
TG9ja1Blcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdEdldFR5cGVJRCgpCit7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICByZXR1cm4g
dG9BUEkoUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdDo6QVBJVHlwZSk7CisjZWxzZQorICAg
IHJldHVybiBBUElPYmplY3Q6OlR5cGVOdWxsOworI2VuZGlmCit9CisKK3ZvaWQgV0tQb2ludGVy
TG9ja1Blcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
UmVmIHBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QpCit7CisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKKyAgICByZXR1cm4gdG9JbXBsKHBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QpLT5h
bGxvdygpOworI2VuZGlmCit9CisKK3ZvaWQgV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
RGVueShXS1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RSZWYgcG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdCkKK3sKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHJldHVybiB0b0lt
cGwocG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCktPmRlbnkoKTsKKyNlbmRpZgorfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MTg2ZDY3MDIyMDk4MWMzZDdj
YTA4MThmMzI4YzBjYzY2NTM0YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXS1BvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVm
IF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQg
V0tQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2
b2lkIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLUG9pbnRlckxvY2tQZXJt
aXNzaW9uUmVxdWVzdFJlZiBwb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KTsKK1dLX0VYUE9S
VCB2b2lkIFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tQb2ludGVyTG9ja1Bl
cm1pc3Npb25SZXF1ZXN0UmVmIHBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tQb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2lu
dGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NzJhNGNlODVkNDY5N2RjNTFjZmZiYTI3OTFhZDI1NWI3NDc3NGRjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50
ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9O
SUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQorI2luY2x1ZGUgIlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdD4gUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKFdlYktpdDo6
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSAqbWFuYWdlcikKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QobWFuYWdl
cikpOworfQorCitQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0OjpQb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0KFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1h
bmFnZXIpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKK3sKK30KKwordm9pZCBQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVybWlz
c2lvbkRlY2lzaW9uKHRydWUpOworICAgIG1fbWFuYWdlciA9IDA7Cit9CisKK3ZvaWQgUG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdDo6ZGVueSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVy
bWlzc2lvbkRlY2lzaW9uKGZhbHNlKTsKKyAgICBtX21hbmFnZXIgPSAwOworfQorCit2b2lkIFBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q6OmludmFsaWRhdGUoKQoreworICAgIG1fbWFuYWdl
ciA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9p
bnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMDA1NzMwNzc2NzlkMzdjNGI0OWE3MDc0ZTU0NmQ2MDEwMGYwMzgwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJM
b2NrUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
TEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3RfaAorI2RlZmluZSBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0X2gKKworI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgUG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdCA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVQb2ludGVy
TG9ja1Blcm1pc3Npb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKFBvaW50ZXJMb2NrUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkqKTsKKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRl
bnkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCitwcml2YXRlOgorICAgIFBvaW50ZXJM
b2NrUGVybWlzc2lvblJlcXVlc3QoUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSopOworCisgICAgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSog
bV9tYW5hZ2VyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQT0lO
VEVSX0xPQ0sKKworI2VuZGlmIC8vIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2Nr
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BvaW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcwMDVjYzExY2RkZjRhOTUzMjA0NDZjODBlM2I2NGYxNTczOTg5MDAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2sv
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCIKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJQb2ludGVyTG9j
a1Blcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94
eSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFBvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0KCkKK3sKKyAgICBp
ZiAobV9wZW5kaW5nUmVxdWVzdCkgeworICAgICAgICBtX3BlbmRpbmdSZXF1ZXN0LT5pbnZhbGlk
YXRlKCk7CisgICAgICAgIG1fcGVuZGluZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICB9Cit9CisKK1Bh
c3NSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdD4gUG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCgpCit7CisgICAgUmVmUHRyPFBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBQb2ludGVyTG9ja1Blcm1pc3Np
b25SZXF1ZXN0OjpjcmVhdGUodGhpcyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdCA9IHJlcXVlc3Q7
CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCit2b2lkIFBvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVQb2ludGVyTG9ja1Blcm1pc3Np
b25EZWNpc2lvbihib29sIGFsbG93KQoreworICAgIGlmICghbV9wYWdlLT5pc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9wZW5kaW5nUmVxdWVzdCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRp
ZFJlY2VpdmVQb2ludGVyTG9ja1Blcm1pc3Npb25EZWNpc2lvbihhbGxvdyksIG1fcGFnZS0+cGFn
ZUlEKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bv
aW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMyZDEzOGUzZDM5N2NiNjU1MDAxMTJh
ZGNmMGMzNjI5YjNlYWVmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJv
bmljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKyNk
ZWZpbmUgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisKKyNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAiUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQ
cm94eSopOworCisgICAgdm9pZCBpbnZhbGlkYXRlUmVxdWVzdCgpOworCisgICAgUGFzc1JlZlB0
cjxQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGVSZXF1ZXN0KCk7CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVQb2ludGVyTG9ja1Blcm1pc3Npb25EZWNpc2lvbihib29sIGFsbG93KTsK
KworcHJpdmF0ZToKKyAgICBSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdD4gbV9w
ZW5kaW5nUmVxdWVzdDsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUE9JTlRFUl9MT0NLCisKKyNlbmRpZiAvLyBQb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQ
b2ludGVyTG9ja01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjEwZmQ5YjMw
NTg1OGQ3NjA3MDUyMzIxNDRjMmU2YjkwYTU3YjhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIExH
IEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycn
CisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyMKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCittZXNz
YWdlcyAtPiBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eSB7CisgICAgUmVxdWVzdFBvaW50ZXJM
b2NrKCkKKyAgICBSZXF1ZXN0UG9pbnRlclVubG9jaygpCit9CisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1p
c3Npb25NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJM
b2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzljY2U3NDAwYjk2YmNmYTc2ZjM5YTNlZmRmMDQ2ODdmYzlhZWUwNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Bl
cm1pc3Npb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklD
UyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQorCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJJbW11
dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldl
YlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXVEY7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NvbnN0IGNoYXIqIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6c3Vw
cGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlclByb3h5IjsKK30KKworUGFzc1JlZlB0cjxXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5h
Z2VyUHJveHk+IFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdl
YkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb2ludGVy
TG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHkoY29udGV4dCkpOworfQorCitXZWJQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQ
cm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogV2ViQ29udGV4dFN1cHBsZW1lbnQoY29u
dGV4dCkKK3sKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6
OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVy
ICpwcm92aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOworICAg
IG1fcHJvdmlkZXIuYWRkUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcih0aGlzKTsKK30KKwor
dm9pZCBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95
ZWQoKQoreworICAgIG1fcHJvdmlkZXIucmVtb3ZlUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
cih0aGlzKTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6
OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKQoreworICAgIG1fcHJvdmlkZXIucmVt
b3ZlUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcih0aGlzKTsKK30KKwordm9pZCBXZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkK
K3sKKyAgICBBUElPYmplY3Q6OnJlZigpOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCit7CisgICAgQVBJ
T2JqZWN0OjpkZXJlZigpOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFn
ZXJQcm94eTo6cG9wdWxhdGVDb3B5T2ZQb2ludGVyTG9ja1Blcm1pc3Npb25zKEhhc2hNYXA8U3Ry
aW5nLCBib29sPiYgcGVybWlzc2lvbnMpCit7CisgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25h
cnk+IGtub3duUGVybWlzc2lvbnMgPSBtX3Byb3ZpZGVyLnBvaW50ZXJMb2NrUGVybWlzc2lvbnMo
KTsKKworICAgIGlmICgha25vd25QZXJtaXNzaW9ucykKKyAgICAgICAgcmV0dXJuOworCisgICAg
cGVybWlzc2lvbnMuY2xlYXIoKTsKKyAgICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IGtub3duT3Jp
Z2lucyA9IGtub3duUGVybWlzc2lvbnMtPmtleXMoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGtub3duT3JpZ2lucy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgV2ViU3RyaW5nKiBvcmln
aW4gPSBrbm93bk9yaWdpbnMtPmF0PFdlYlN0cmluZz4oaSk7CisgICAgICAgIHBlcm1pc3Npb25z
LnNldChvcmlnaW4tPnN0cmluZygpLCBrbm93blBlcm1pc3Npb25zLT5nZXQ8V2ViQm9vbGVhbj4o
b3JpZ2luLT5zdHJpbmcoKSktPnZhbHVlKCkpOworICAgIH0KK30KKwordm9pZCBXZWJQb2ludGVy
TG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkVXBkYXRlUG9pbnRlckxvY2tQ
b2xpY3koY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgYm9vbCBhbGxvd2VkKQorewor
ICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0KCktPnNl
bmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
cjo6RGlkVXBkYXRlUG9pbnRlckxvY2tEZWNpc2lvbihvcmlnaW4tPnRvU3RyaW5nKCksIGFsbG93
ZWQpKTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk6OnBy
b3ZpZGVyRGlkUmVtb3ZlUG9pbnRlckxvY2tQb2xpY2llcyhJbW11dGFibGVBcnJheSogb3JpZ2lu
cykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2l6ZV90
IHNpemUgPSBvcmlnaW5zLT5zaXplKCk7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm47
CisKKyAgICBWZWN0b3I8U3RyaW5nPiBvcmlnaW5TdHJpbmdzOworICAgIG9yaWdpblN0cmluZ3Mu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgc2l6ZTsgKytpKQorICAgICAgICBvcmlnaW5TdHJpbmdzLmFwcGVuZChvcmlnaW5zLT5hdDxX
ZWJTZWN1cml0eU9yaWdpbj4oaSktPnRvU3RyaW5nKCkpOworCisgICAgY29udGV4dCgpLT5zZW5k
VG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI6
OkRpZFJlbW92ZVBvaW50ZXJMb2NrRGVjaXNpb25zKG9yaWdpblN0cmluZ3MpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2lu
dGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYTFkNWQyMzUyZmU5MzU1YTNmZGVlYjNlNWJlMDRiYTI4MjRjZGY3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNU
Uk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUG9pbnRlckxvY2tQZXJt
aXNzaW9uTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlclByb3h5X2gKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJBUElP
YmplY3QuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIldl
YlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBJbW11dGFibGVBcnJheTsKK2NsYXNzIFdlYkNvbnRleHQ7CitjbGFzcyBXZWJTZWN1
cml0eU9yaWdpbjsKKworY2xhc3MgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5
IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVBvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQgeworcHVibGljOgorICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29u
dGV4dCopOworCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tQb2ludGVyTG9j
a1Blcm1pc3Npb25Qcm92aWRlciopOworCisgICAgdm9pZCBwb3B1bGF0ZUNvcHlPZlBvaW50ZXJM
b2NrUGVybWlzc2lvbnMoSGFzaE1hcDxTdHJpbmcsIGJvb2w+Jik7CisKKyAgICB2b2lkIHByb3Zp
ZGVyRGlkVXBkYXRlUG9pbnRlckxvY2tQb2xpY3koY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4qLCBi
b29sKTsKKyAgICB2b2lkIHByb3ZpZGVyRGlkUmVtb3ZlUG9pbnRlckxvY2tQb2xpY2llcyhJbW11
dGFibGVBcnJheSogb3JpZ2lucyk7CisKKyAgICB1c2luZyBBUElPYmplY3Q6OnJlZjsKKyAgICB1
c2luZyBBUElPYmplY3Q6OmRlcmVmOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisKKyAgICAvLyBXZWJD
b250ZXh0U3VwcGxlbWVudAorICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkq
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9W
RVJSSURFOworCisgICAgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXIgbV9wcm92aWRl
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUE9JTlRFUl9MT0NL
CisKKyNlbmRpZiAvLyBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHlfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJM
b2NrUGVybWlzc2lvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2lu
dGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODAzNmMwODRlMjY0YzA4NGZjYWJmZDYyOWE5Y2M1MjNhNGVmYTk2NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Bl
cm1pc3Npb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExH
IEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBv
aW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyLmgiCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQorCisjaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIk11dGFibGVB
cnJheS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2Nr
UGVybWlzc2lvbk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvblBy
b3ZpZGVyOjphZGRQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKFdlYlBvaW50ZXJMb2NrUGVy
bWlzc2lvbk1hbmFnZXJQcm94eSogbWFuYWdlcikKK3sKKyAgICBpZiAobV9jbGllbnQuYWRkUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcikKKyAgICAgICAgbV9jbGllbnQuYWRkUG9pbnRlckxv
Y2tQZXJtaXNzaW9uTWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7
Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXI6OnJlbW92ZVBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIoV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlclBy
b3h5KiBtYW5hZ2VyKQoreworICAgIGlmIChtX2NsaWVudC5yZW1vdmVQb2ludGVyTG9ja1Blcm1p
c3Npb25NYW5hZ2VyKQorICAgICAgICBtX2NsaWVudC5yZW1vdmVQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKworUGFz
c1JlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25Qcm92
aWRlcjo6cG9pbnRlckxvY2tQZXJtaXNzaW9ucygpCit7CisgICAgaWYgKG1fY2xpZW50LnBvaW50
ZXJMb2NrUGVybWlzc2lvbnMpCisgICAgICAgIHJldHVybiBhZG9wdFJlZih0b0ltcGwobV9jbGll
bnQucG9pbnRlckxvY2tQZXJtaXNzaW9ucyhtX2NsaWVudC5jbGllbnRJbmZvKSkpOworCisgICAg
cmV0dXJuIEltbXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZSgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNz
aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQ
b2ludGVyTG9ja1Blcm1pc3Npb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZWE0ZjU0NGQ3Yzc2
NTc0MDZlNjYxNmU2ZjQ5ZTdkYzlmZmFlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlk
ZXIuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0
cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyX2gKKyNkZWZpbmUg
V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLUG9pbnRlckxvY2tQ
ZXJtaXNzaW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEltbXV0YWJsZURp
Y3Rpb25hcnk7CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFdlYlBvaW50ZXJMb2Nr
UGVybWlzc2lvbk1hbmFnZXJQcm94eTsKKworY2xhc3MgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9u
UHJvdmlkZXIgOiBwdWJsaWMgQVBJQ2xpZW50PFdLUG9pbnRlckxvY2tQZXJtaXNzaW9uUHJvdmlk
ZXIsIGtXS1BvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyQ3VycmVudFZlcnNpb24+IHsKK3B1
YmxpYzoKKyAgICB2b2lkIGFkZFBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIoV2ViUG9pbnRl
ckxvY2tQZXJtaXNzaW9uTWFuYWdlclByb3h5Kik7CisgICAgdm9pZCByZW1vdmVQb2ludGVyTG9j
a1Blcm1pc3Npb25NYW5hZ2VyKFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXJQcm94eSop
OworICAgIFBhc3NSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gcG9pbnRlckxvY2tQZXJtaXNz
aW9ucygpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQT0lOVEVS
X0xPQ0sKKworI2VuZGlmIC8vIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvblByb3ZpZGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAzMWVkMjk5M2I4YWM3MTYy
ZGFiMDU1NTI5N2FiYjdhYzNjZTM4ZDFiLi5hN2U4YjYxMWViYjRiY2Y1MDhhMDExYWM0OTAwOWMw
ZTY0MzIxZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC00
NywxMCArNDcsMTMgQEAKICNpbmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFDYWNoZU1hbmFn
ZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYk1lbW9yeVNhbXBsZXIuaCIKICNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKLSNpbmNsdWRlICJXZWJNZW1vcnlT
YW1wbGVyLmgiCisjaW5jbHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5h
Z2VyUHJveHkuaCIKKyNlbmRpZgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKQEAgLTE4MCw2ICsxODMsOSBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFBy
b2Nlc3NNb2RlbCBwcm9jZXNzTW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYQog
I2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAgICAgYWRkU3VwcGxlbWVudDxXZWJOZXR3b3JrSW5m
b01hbmFnZXJQcm94eT4oKTsKICNlbmRpZgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAg
YWRkU3VwcGxlbWVudDxXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk+KCk7Cisj
ZW5kaWYKIAogICAgIGNvbnRleHRzKCkuYXBwZW5kKHRoaXMpOwogCkBAIC01NDcsNiArNTUzLDEw
IEBAIFdlYlByb2Nlc3NQcm94eSogV2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAg
ICAgc3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCktPnBvcHVsYXRlQ29w
eU9mTm90aWZpY2F0aW9uUGVybWlzc2lvbnMocGFyYW1ldGVycy5ub3RpZmljYXRpb25QZXJtaXNz
aW9ucyk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgc3VwcGxlbWVu
dDxXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyUHJveHk+KCktPnBvcHVsYXRlQ29weU9m
UG9pbnRlckxvY2tQZXJtaXNzaW9ucyhwYXJhbWV0ZXJzLnBvaW50ZXJMb2NrUGVybWlzc2lvbnMp
OworI2VuZGlmCisKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIHBhcmFtZXRlcnMu
dXNlc05ldHdvcmtQcm9jZXNzID0gbV91c2VzTmV0d29ya1Byb2Nlc3M7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNGQyMjFkNDE3NjRlODZi
ZjAzNDY2NWYzNzBmOWYzOTk3ZDNmYTQ4YS4uYzE1MjAyNTljZmVkNjM3YzNhNjkxY2YwOTM4ZjM1
ODVhMTM4ZTNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTI0MSw2ICsyNDEsOSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50
KiBwYWdlQ2xpZW50LCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcAogICAgICwgbV91c2Vy
QWdlbnQoc3RhbmRhcmRVc2VyQWdlbnQoKSkKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIodGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKHRoaXMpCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICAsIG1fcG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKKyNlbmRpZgogICAgICwgbV9lc3Rp
bWF0ZWRQcm9ncmVzcygwKQogICAgICwgbV9pc0luV2luZG93KG1fcGFnZUNsaWVudC0+aXNWaWV3
SW5XaW5kb3coKSkKICAgICAsIG1faXNWaXNpYmxlKG1fcGFnZUNsaWVudC0+aXNWaWV3VmlzaWJs
ZSgpKQpAQCAtNDg3LDcgKzQ5MCw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2VzcygpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIG1fZnVsbFNjcmVlbk1h
bmFnZXIgPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcyk7CiAjZW5kaWYK
LQogICAgIGluaXRpYWxpemVXZWJQYWdlKCk7CiAKICAgICBtX3BhZ2VDbGllbnQtPmRpZFJlbGF1
bmNoUHJvY2VzcygpOwpAQCAtMzg5MCw2ICszODkyLDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZXNldFN0YXRlQWZ0ZXJQcm9jZXNzRXhpdGVkKCkKIAogICAgIG1fbm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogCisjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKKyAgICBtX3BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmlu
dmFsaWRhdGVSZXF1ZXN0KCk7CisjZW5kaWYKKwogICAgIG1fdG9vbFRpcCA9IFN0cmluZygpOwog
CiAgICAgbV9tYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZmFsc2U7CkBAIC00MDk5
LDYgKzQxMDUsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW4KICAgICAgICAgcmVxdWVzdC0+
ZGVueSgpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK3ZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0UG9pbnRlckxvY2tQZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5n
KQoreworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luU3RyaW5nKTsKKyAgICBSZWZQdHI8UG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdD4gcmVxdWVzdCA9IG1fcG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuY3JlYXRlUmVxdWVzdCgpOworCisgICAgaWYgKCFtX3VpQ2xpZW50LmRl
Y2lkZVBvbGljeUZvclBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QodGhpcywgb3JpZ2luLmdl
dCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgpOworfQorI2VuZGlm
IC8vIFBPSU5URVJfTE9DSworCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd05vdGlmaWNhdGlvbihj
b25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNv
blVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgU3RyaW5n
JiBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKIHsKICAgICBtX3Byb2Nlc3MtPmNvbnRleHQoKS0+c3VwcGxlbWVudDxXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk+KCktPnNob3codGhpcywgdGl0bGUsIGJvZHksIGljb25VUkwsIHRhZywg
bGFuZywgZGlyLCBvcmlnaW5TdHJpbmcsIG5vdGlmaWNhdGlvbklEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0ZGI2MmU5MWEyMmE4MzE2MmE2MjFjNTFjNGQy
N2RmMDZkYTljNTQwLi42NWJmYjcwZWUzMTRhN2Y2OWE0YjkzYjFjYmZkNzI1ZjI0YzA2ZjlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zNSw2ICszNSw5IEBA
CiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNz
SWRlbnRpZmllci5oIgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisjaW5jbHVkZSAiUG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorI2VuZGlmCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1
ZGUgIldLQmFzZS5oIgpAQCAtODgwLDYgKzg4MywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xl
YXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyk7
CiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgdm9pZCByZXF1ZXN0UG9pbnRlckxv
Y2tQZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKTsKKyNlbmRpZgorCiAjaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAgIHZvaWQgcGFnZVRyYW5zaXRpb25WaWV3cG9y
dFJlYWR5KCk7CkBAIC0xMTE5LDYgKzExMjYsOSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5PiBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwog
ICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsK
KyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkgbV9wb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNl
bmRpZiAvLyBQT0lOVEVSX0xPQ0sKIAogICAgIGRvdWJsZSBtX2VzdGltYXRlZFByb2dyZXNzOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA4YzFkZTkwOGNjZDY4YzlmNTJkYzAwMGVhOTYxYzUxM2UyNzUxMmMzLi4zMTcxNmRi
YWEyMTViNDFhMDUzMzYwYzlmODE4N2I4YmZjYzhhNTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyNCw2ICsyMjQsMTAg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVj
dG9yPHVpbnQ2NF90PiBub3RpZmljYXRpb25JRHMpCiAgICAgRGlkRGVzdHJveU5vdGlmaWNhdGlv
bih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisg
ICAgUmVxdWVzdFBvaW50ZXJMb2NrUGVybWlzc2lvbihXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlm
aWVyKQorI2VuZGlmCisKICAgICAjIFNwZWxsaW5nIGFuZCBncmFtbWFyIG1lc3NhZ2VzCiAjaWYg
VVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykgIAogICAgIENoZWNrVGV4dE9mUGFyYWdyYXBoKFdU
Rjo6U3RyaW5nIHRleHQsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMpIC0+IChWZWN0b3I8V2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5jcHAKaW5kZXggYmZhNGQ4ZTQzZTdlYjRmZjY3NTNhY2IzZWJmYzdjMzgxZmIy
NDExYy4uZWJjNmJiYzk0OWVhNTI2NDVlNmJkYzA3MGNkYzczMWJkZGZhMjFhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw5IEBACiAjaW5j
bHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb3JtYXRpb24uaCIKKyNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3Qu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYkNvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYk51bWJlci5oIgpAQCAtMzY1
LDYgKzM2OCwxNSBAQCBib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZwogICAgIHJldHVybiB0cnVlOwog
fQogCitib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JQb2ludGVyTG9ja1Blcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwg
UG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3QpCit7CisgICAg
aWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KHRvQVBJKHBhZ2UpLCB0b0FQSShvcmlnaW4pLCB0
b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHJldHVy
biB0cnVlOworfQorCiBmbG9hdCBXZWJVSUNsaWVudDo6aGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94
eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5oZWFk
ZXJIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDk4MTNm
NTc1NGM4MTNiZjE2OWM2YjNjOTI4YjhlNWFhNWZiYTQzYjcuLjI1MWFkOWUwNmVkMTExODcwN2Ji
MmUxZjJlZDViOWM2Yzk4OGJjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVu
dC5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFzcyBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNz
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgUG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdDsKIGNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNs
YXNzIFdlYkRhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwpAQCAtMTAzLDYgKzEwNCw3IEBAIHB1
YmxpYzoKICAgICBib29sIHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5
KiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkqKTsKICAgICBib29sIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5Kik7CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqLCBXZWJTZWN1cml0
eU9yaWdpbiosIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Kik7CisgICAgYm9vbCBkZWNp
ZGVQb2xpY3lGb3JQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSosIFdl
YlNlY3VyaXR5T3JpZ2luKiwgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdCopOwogCiAgICAg
Ly8gUHJpbnRpbmcuCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSosIFdlYkZy
YW1lUHJveHkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
SW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYklu
c3BlY3RvclByb3h5TWFjLm1tCmluZGV4IGU3OGI4ZjYyZjI3MDM0YzgwYzM0YmE4NmIwNDEwNGE3
OWU3YTA2ZjMuLjFiZjMxZmViZGNlMGQ2MmYyYWVhMmUyMzE5OWNlZDdmZmQ2NjI0YTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbQpAQCAtNDYzLDYgKzQ2Myw3IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBp
Y2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gdW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvclBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogCiAgICAgaW5zcGVjdG9yUGFnZS0+
aW5pdGlhbGl6ZVVJQ2xpZW50KCZ1aUNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnByaSBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCmluZGV4IGExZGEwNDUx
YWM1YWY4ZjFmMjNkMTdkNDNjMDVkYWU5MTk5NjZkOGYuLmQ5NDkyZTJlNzQxNTAzMTA2YjQxZmQy
MWFiNDc5Zjg1YmU3YjJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJp
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCkBAIC00MCw2ICs0MCw3IEBAIElOQ0xV
REVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIvVUlQcm9jZXNzL0xhdW5jaGVyIFwKICAgICAk
JFNPVVJDRV9ESVIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogICAgICQkU09VUkNFX0RJUi9V
SVByb2Nlc3MvUGx1Z2lucyBcCisgICAgJCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy9Qb2ludGVyTG9j
ayBcCiAgICAgJCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy9TdG9yYWdlIFwKICAgICAkJFNPVVJDRV9E
SVIvVUlQcm9jZXNzL3F0IFwKICAgICAkJFNPVVJDRV9ESVIvVUlQcm9jZXNzL3RleG1hcCBcCkBA
IC01OSw2ICs2MCw3IEBAIElOQ0xVREVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9QbHVnaW5z
IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIFwKKyAgICAk
JFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jayBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvU3Rv
cmFnZSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAppbmRleCBlZjRhODJmNmU1ZDA3ZmNmN2Q5ODc2NTg2MDU0NWU5ZjIx
ZGVhMzZhLi5iMWFkODM2YmJjYzMyYTM3MmE3M2Y1OGFmZjg2MDM2OGJkYjU5ODI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcApAQCAtMzIsNiArMzIsOSBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCiAjaW5j
bHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKKyNpbmNsdWRlICJQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIgorI2VuZGlmCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5k
bGVBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKQEAg
LTY0OSw2ICs2NTIsMjYgQEAgUGFzc1JlZlB0cjxXZWJEYXRhPiBJbmplY3RlZEJ1bmRsZTo6Y3Jl
YXRlV2ViRGF0YUZyb21VaW50OEFycmF5KEpTQ29udGV4dFJlZiBjb24KICAgICByZXR1cm4gV2Vi
RGF0YTo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihhcnJheURhdGEtPmJhc2VB
ZGRyZXNzKCkpLCBhcnJheURhdGEtPmJ5dGVMZW5ndGgoKSk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGU6OnNldFBvaW50ZXJMb2NrUGVybWlzc2lvbihXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJp
bmcmIG9yaWdpblN0cmluZywgYm9vbCBhbGxvd2VkKQoreworI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCisgICAgcGFnZS0+cG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c2V0
UGVybWlzc2lvbkxldmVsRm9yVGVzdGluZyhvcmlnaW5TdHJpbmcsIGFsbG93ZWQpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKG9yaWdpblN0cmluZyk7
CisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCit9CisKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGU6OnJlbW92ZUFsbFBvaW50ZXJMb2NrUGVybWlzc2lvbnMoV2ViUGFnZSogcGFnZSkKK3sK
KyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHBhZ2UtPnBvaW50ZXJMb2NrUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCktPnJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisjZW5kaWYKK30KKwogdm9pZCBJbmplY3RlZEJ1
bmRsZTo6c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKFdlYlBhZ2UqIHBhZ2UsIGJvb2wg
ZW5hYmxlZCkKIHsKICAgICBwYWdlLT5jb3JlUGFnZSgpLT5zZXRUYWJLZXlDeWNsZXNUaHJvdWdo
RWxlbWVudHMoZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggMzdkNDFjMmQyMjE4Y2M1
N2M4NzkwMzVjNDAyZWVmNDQ5ZTI2MTcyYi4uMWYzMWYyYmFiM2EzMGQyZjljN2U2YWQ5OTZmMjlk
OTg0ODU4Y2Y4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTI3LDYgKzEyNyw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKFdlYlBhZ2Uq
KTsKICAgICB1aW50NjRfdCB3ZWJOb3RpZmljYXRpb25JRChKU0NvbnRleHRSZWYsIEpTVmFsdWVS
ZWYpOwogICAgIFBhc3NSZWZQdHI8V2ViRGF0YT4gY3JlYXRlV2ViRGF0YUZyb21VaW50OEFycmF5
KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CisgICAgdm9pZCBzZXRQb2ludGVyTG9ja1Blcm1p
c3Npb24oV2ViUGFnZSosIGNvbnN0IFN0cmluZyYsIGJvb2wpOworICAgIHZvaWQgcmVtb3ZlQWxs
UG9pbnRlckxvY2tQZXJtaXNzaW9ucyhXZWJQYWdlKik7CiAKICAgICAvLyBVc2VyQ29udGVudCBB
UEkKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoV2ViUGFnZUdyb3VwUHJveHkqLCBJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJs
LCBJbW11dGFibGVBcnJheSogd2hpdGVsaXN0LCBJbW11dGFibGVBcnJheSogYmxhY2tsaXN0LCBX
ZWJDb3JlOjpVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmpl
Y3RlZEZyYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50
ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxMDc0NjRjY2IzODQxZjNhYTA5NGQ5Yzk0ZWY1NmQw
NDMwZDg1YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bv
aW50ZXJMb2NrL1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCww
ICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgiCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitQYXNzUmVmUHRyPFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2Up
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcihwYWdlKSk7Cit9CisKK1BvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlKiBwYWdlKQorICAg
IDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK2Jvb2wgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBQYXNzUmVmUHRy
PFBvaW50ZXJMb2NrUGVybWlzc2lvbkNhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW9y
aWdpbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gT25seSBvbmUgcmVxdWVzdCBj
YW4gYmUgcHJvY2Vzc2VkIGZvciB0aGUgd2VicGFnZSBzYW1lIHRpbWUKKyAgICBBU1NFUlQobV9z
ZWN1cml0eU9yaWdpbik7CisgICAgaWYgKG1fc2VjdXJpdHlPcmlnaW4pCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIG1fc2VjdXJpdHlPcmlnaW4gPSBvcmlnaW47CisgICAgbV9jYWxsYmFj
ayA9IGNhbGxiYWNrOworICAgIHJldHVybiBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UmVxdWVzdFBvaW50ZXJMb2NrUGVybWlzc2lvbihvcmlnaW4tPnRvU3RyaW5nKCkpKTsK
K30KKwordm9pZCBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVx
dWVzdChTZWN1cml0eU9yaWdpbiopCit7CisgICAgbV9zZWN1cml0eU9yaWdpbi5jbGVhcigpOwor
ICAgIG1fY2FsbGJhY2suY2xlYXIoKTsKK30KKworV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlcjo6UGVybWlzc2lvbiBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cGVy
bWlzc2lvbkxldmVsKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKK3sKKyAgICByZXR1
cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyPigpLT5wb2xpY3lGb3JPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOworfQorCit2b2lk
IFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzZXRQZXJtaXNzaW9uTGV2ZWxG
b3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpCit7Cisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyPigpLT5kaWRVcGRhdGVQb2ludGVyTG9ja0RlY2lzaW9uKG9yaWdpblN0cmluZywg
YWxsb3dlZCk7Cit9CisKK3ZvaWQgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OnJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpCit7CisgICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuc3VwcGxlbWVudDxXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyPigpLT5yZW1v
dmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKTsKK30KKwordm9pZCBQb2ludGVyTG9ja1Blcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVybWlzc2lvbkRlY2lz
aW9uKGJvb2wgYWxsb3dlZCkKK3sKKyAgICBpZiAobV9zZWN1cml0eU9yaWdpbikgeworICAgICAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5zdXBwbGVtZW50PFdlYlBvaW50ZXJMb2NrUGVybWlzc2lv
bk1hbmFnZXI+KCktPmRpZFVwZGF0ZVBvaW50ZXJMb2NrRGVjaXNpb24obV9zZWN1cml0eU9yaWdp
bi0+dG9TdHJpbmcoKSwgYWxsb3dlZCk7CisgICAgICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAg
ICAgICAgbV9jYWxsYmFjay0+aGFuZGxlRXZlbnQoYWxsb3dlZCk7CisgICAgfQorCisgICAgbV9z
ZWN1cml0eU9yaWdpbi5jbGVhcigpOworICAgIG1fY2FsbGJhY2suY2xlYXIoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svUG9pbnRl
ckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUG9pbnRlckxvY2svUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NDg0ZmY0NzJiNGFiMjdiZTk0ZGM0ODk1ZTEwNGFiM2VmMWRlMjZhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9Qb2ludGVy
TG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNU
Uk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUG9pbnRlckxvY2tQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcl9oCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIldlYlBvaW50
ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFBvaW50ZXJMb2NrUGVybWlzc2lvbkNhbGxiYWNrIDog
cHVibGljIFJlZkNvdW50ZWQ8UG9pbnRlckxvY2tQZXJtaXNzaW9uQ2FsbGJhY2s+IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIH5Qb2ludGVyTG9ja1Blcm1pc3Npb25DYWxsYmFjaygpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KGJvb2wgcGVybWlzc2lvbikgPSAwOworfTsKKwor
Y2xhc3MgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4geworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBj
cmVhdGUoV2ViUGFnZSopOworCisgICAgYm9vbCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4qLCBQYXNzUmVmUHRyPFBvaW50ZXJMb2NrUGVybWlzc2lvbkNhbGxiYWNrPik7Cisg
ICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7CisKKyAgICBX
ZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyOjpQZXJtaXNzaW9uIHBlcm1pc3Npb25MZXZl
bChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworCisgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9z
ZXMgb25seS4KKyAgICB2b2lkIHNldFBlcm1pc3Npb25MZXZlbEZvclRlc3RpbmcoY29uc3QgU3Ry
aW5nJiwgYm9vbCk7CisgICAgdm9pZCByZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKTsK
KworICAgIHZvaWQgZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVybWlzc2lvbkRlY2lzaW9uKGJvb2wp
OworCitwcml2YXRlOgorICAgIFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdl
YlBhZ2UqKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlP
cmlnaW47CisgICAgUmVmUHRyPFBvaW50ZXJMb2NrUGVybWlzc2lvbkNhbGxiYWNrPiBtX2NhbGxi
YWNrOworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2VuZGlmIC8vIFBvaW50ZXJMb2Nr
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVy
bWlzc2lvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmNDQ5ZGY1MGFhYzlhNDk4MDllZmFhZTMw
ZWQyNzg5NTk5NTkyMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIExHIEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2Vy
LmgiCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NvbnN0IGNoYXIqIFdlYlBvaW50ZXJMb2NrUGVybWlz
c2lvbk1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYlBvaW50ZXJM
b2NrUGVybWlzc2lvbk1hbmFnZXIiOworfQorCitXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5h
Z2VyOjpXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyKFdlYlByb2Nlc3MqIHByb2Nlc3Mp
CisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKK30KKworV2ViUG9pbnRlckxvY2tQZXJtaXNz
aW9uTWFuYWdlcjo6fldlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXIoKQoreworfQorCit2
b2lkIFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBtX3Blcm1pc3Np
b25zTWFwID0gcGFyYW1ldGVycy5wb2ludGVyTG9ja1Blcm1pc3Npb25zOworfQorCit2b2lkIFdl
YlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI6OmRpZFVwZGF0ZVBvaW50ZXJMb2NrRGVjaXNp
b24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBtX3Bl
cm1pc3Npb25zTWFwLnNldChvcmlnaW5TdHJpbmcsIGFsbG93ZWQpOworfQorCit2b2lkIFdlYlBv
aW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI6OmRpZFJlbW92ZVBvaW50ZXJMb2NrRGVjaXNpb25z
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5TdHJpbmdzKQoreworICAgIHNpemVfdCBjb3Vu
dCA9IG9yaWdpblN0cmluZ3Muc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291
bnQ7ICsraSkKKyAgICAgICAgbV9wZXJtaXNzaW9uc01hcC5yZW1vdmUob3JpZ2luU3RyaW5nc1tp
XSk7Cit9CisKK1dlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI6OlBlcm1pc3Npb24gV2Vi
UG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6cG9saWN5Rm9yT3JpZ2luKFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luICpvcmlnaW4pIGNvbnN0Cit7CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAg
IHJldHVybiBQZXJtaXNzaW9uTm90QWxsb3dlZDsKKworICAgIEFTU0VSVCghb3JpZ2luLT5pc1Vu
aXF1ZSgpKTsKKworICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPjo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBtX3Blcm1pc3Npb25zTWFwLmZpbmQob3JpZ2luLT50b1Jhd1N0cmluZygpKTsKKyAgICBpZiAo
aXQgIT0gbV9wZXJtaXNzaW9uc01hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT52YWx1ZSA/
IFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFnZXI6OlBlcm1pc3Npb25BbGxvd2VkIDogV2Vi
UG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICByZXR1
cm4gUGVybWlzc2lvbk5vdEFsbG93ZWQ7Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tQZXJtaXNz
aW9uTWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCkKK3sKKyAgICBtX3Bl
cm1pc3Npb25zTWFwLmNsZWFyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1p
c3Npb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U5YzhlYWU3Zjg1Y2JmNzQxMWM4NTk4OTY0NjA0
ZDUzM2E2NGQ2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5oCkBAIC0wLDAgKzEs
ODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIExHIEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
UG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlcl9oCisjZGVmaW5lIFdlYlBvaW50ZXJMb2NrUGVy
bWlzc2lvbk1hbmFnZXJfaAorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2Vj
dXJpdHlPcmlnaW47Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOwor
Y2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
ciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViUG9pbnRlckxvY2tQZXJtaXNz
aW9uTWFuYWdlcik7CitwdWJsaWM6CisgICAgZW51bSBQZXJtaXNzaW9uIHsKKyAgICAgICAgUGVy
bWlzc2lvbkFsbG93ZWQsCisgICAgICAgIFBlcm1pc3Npb25Ob3RBbGxvd2VkLAorICAgICAgICBQ
ZXJtaXNzaW9uRGVuaWVkCisgICAgfTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVt
ZW50TmFtZSgpOworCisgICAgZXhwbGljaXQgV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdl
cihXZWJQcm9jZXNzKik7CisgICAgdmlydHVhbCB+V2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFu
YWdlcigpOworCisgICAgdm9pZCBkaWRVcGRhdGVQb2ludGVyTG9ja0RlY2lzaW9uKGNvbnN0IFN0
cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpOworICAgIFBlcm1pc3Npb24gcG9saWN5
Rm9yT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKikgY29uc3Q7CisKKyAgICB2b2lkIHJl
bW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworCitwcml2YXRlOgorICAgIC8vIFdlYlBy
b2Nlc3NTdXBwbGVtZW50CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIE9WRVJSSURFOworCisgICAgLy8gQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworCisgICAg
dm9pZCBkaWRSZW1vdmVQb2ludGVyTG9ja0RlY2lzaW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
b3JpZ2luU3RyaW5ncyk7CisKKyAgICBXZWJQcm9jZXNzKiBtX3Byb2Nlc3M7CisgICAgSGFzaE1h
cDxTdHJpbmcsIGJvb2w+IG1fcGVybWlzc2lvbnNNYXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNlbmRpZiAvLyBXZWJQ
b2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9p
bnRlckxvY2tQZXJtaXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjVjM2Y0
OTg2N2FlMGYwYjg0ZGE5Y2MyMjkyNzhhNzlmMzBmYTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja1Blcm1pc3Np
b25NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKyMKKyMgQ29weXJpZ2h0IChD
KSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJP
TklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisK
KyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorbWVzc2FnZXMgLT4gV2ViUG9pbnRlckxvY2tQZXJt
aXNzaW9uTWFuYWdlciB7CisgICAgRGlkVXBkYXRlUG9pbnRlckxvY2tEZWNpc2lvbihXVEY6OlN0
cmluZyBvcmlnaW5TdHJpbmcsIGJvb2wgYWxsb3dlZCk7CisgICAgRGlkUmVtb3ZlUG9pbnRlckxv
Y2tEZWNpc2lvbnMoVmVjdG9yPFdURjo6U3RyaW5nPiBvcmlnaW5TdHJpbmdzKTsKK30KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IGE5ZWI4NDMyOGFlOTdlZDBiNjdiOTY2NGY2NWU1NGE2MWFiNWIyMGYuLmJhYzUwZDYxNjg1NDA4
NDI5ZjNhMGM4MDE3OTc3NDliZWE5ZWI3ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ0LDYgKzQ0LDkgQEAKICNpbmNsdWRlICJQbHVn
aW5Qcm9jZXNzQXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb3h5LmgiCiAjaW5jbHVk
ZSAiUGx1Z2luVmlldy5oIgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisjaW5jbHVkZSAiUG9p
bnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBy
aW50SW5mby5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJs
ZUJpdG1hcC5oIgpAQCAtMjU5OCw2ICsyNjAxLDE1IEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBX
ZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCitQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlciogV2ViUGFnZTo6
cG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKQoreworICAgIGlmICghbV9wb2lu
dGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKKyAgICAgICAgbV9wb2ludGVyTG9ja1Bl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlciA9IFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuZ2V0KCk7Cit9CisjZW5kaWYKKwogTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKQogewogICAgIGlmIChtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikK
QEAgLTI5MTUsNiArMjkyNywxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsCiAgICAgbm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93ZWQpOwogfQogCisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvaW50ZXJMb2NrUGVy
bWlzc2lvbkRlY2lzaW9uKGJvb2wgYWxsb3dlZCkKK3sKKyAgICBwb2ludGVyTG9ja1Blcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNlaXZlUG9pbnRlckxvY2tQZXJtaXNzaW9uRGVjaXNp
b24oYWxsb3dlZCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlz
c3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKICAgICBGcmFtZSogZnJhbWUg
PSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDdiZGYwNjljYzBi
MDA2MTNiNjE4ZDE4ZjgwZDQzMGYyZWU1Yzg5NDEuLjQ4ODJmNjIzNmY3MzMzZmQwYzUwZDI4MjE1
NTA0MmQzMzY0ZmZjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMTM0LDYgKzEzNCw3IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIFBhZ2VCYW5uZXI7CiBjbGFzcyBQYWdlT3ZlcmxheTsKIGNs
YXNzIFBsdWdpblZpZXc7CitjbGFzcyBQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjsKIGNsYXNzIFNlc3Npb25TdGF0ZTsKIGNsYXNzIFdlYkNvbG9yQ2hvb3NlcjsKIGNsYXNzIFdl
YkNvbnRleHRNZW51OwpAQCAtMjAyLDYgKzIwMywxMCBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNj
cmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCisgICAgUG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIHBv
aW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CisjZW5kaWYKKwogICAgIC8vIC0t
IENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVy
aWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRo
YXQgYmUgYmVuZWZpY2lhbD8KICAgICB2b2lkIGRyYXdSZWN0KFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKQEAgLTgxOSw2ICs4MjQsMTAgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lv
bih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKIAorI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCisgICAgdm9pZCBkaWRSZWNlaXZlUG9pbnRlckxvY2tQZXJtaXNzaW9uRGVj
aXNpb24oYm9vbCBhbGxvd2VkKTsKKyNlbmRpZgorCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlz
c3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbik7CiAgICAgdm9pZCBjaGFuZ2VTcGVs
bGluZ1RvV29yZChjb25zdCBTdHJpbmcmIHdvcmQpOwogI2lmIFVTRShBUFBLSVQpCkBAIC05NjUs
NiArOTc0LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgUmVm
UHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOwogI2VuZGlmCisj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBSZWZQdHI8UG9pbnRlckxvY2tQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI+IG1fcG9pbnRlckxvY2tQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7Cisj
ZW5kaWYKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51PiBtX2FjdGl2ZVBvcHVwTWVudTsKICNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBSZWZQdHI8V2ViQ29udGV4dE1lbnU+IG1fY29udGV4
dE1lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCmluZGV4IDI1ZWJkODY4OGI2MjI1MTlmNGQ3ZDIzZGJhMTQyZjhiYTNi
MTM5OGQuLjcyY2Y1NWRiNmMxZjlkMGU0NDIwZDljN2YzMjM0OTcyNzlmMmM1NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCkBAIC0yMTgsNiArMjE4LDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2
ZXIgewogICAgICMgTm90aWZpY2F0aW9uCiAgICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCisj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBEaWRSZWNlaXZlUG9pbnRlckxvY2tQZXJtaXNz
aW9uRGVjaXNpb24oYm9vbCBhbGxvd2VkKQorI2VuZGlmCisKICAgICBTZXRXaW5kb3dSZXNpemVy
U2l6ZShXZWJDb3JlOjpJbnRTaXplIGludGVyc2VjdHNWaWV3KQogCiAgICAgIyBQcmludGluZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGI1YjIxNGFhZWVj
M2UwMDQxM2QxNTk4NmE0NWJhZTkwYWRiY2E4Y2IuLmNhNTY5OTAxYWQ5OTc3ZjEzMWZkNTI4ZjVm
ZTliZTk0MmEyZTQzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cApAQCAtNDgsNiArNDgsOSBAQAogI2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyNpbmNsdWRl
ICJXZWJQb2ludGVyTG9ja1Blcm1pc3Npb25NYW5hZ2VyLmgiCisjZW5kaWYKICNpbmNsdWRlICJX
ZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMjA5LDYgKzIxMiw5
IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogI2lmIFVTRShTT1VQKQogICAgIGFkZFN1cHBs
ZW1lbnQ8V2ViU291cFJlcXVlc3RNYW5hZ2VyPigpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKKyAgICBhZGRTdXBwbGVtZW50PFdlYlBvaW50ZXJMb2NrUGVybWlzc2lvbk1hbmFn
ZXI+KCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmFkMzI5
ZWVlMDk4MzYyMjc2NzM2OWQ5ZTczNWYyNGRkYWZhOGUyYS4uZGM4MTM4YmI0Mjc1NGYxNTBiNDhm
ZWFmYWU0N2NiYzZmZWVkMjNmYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA2LTI4ICBTdGFuaXNsYXYgUGlr
dWxpayAgPHN0YW5pc2xhdi5waWt1bGlrQGxnZS5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIEhh
bmRsaW5nIFBvaW50ZXIgTG9jayBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgYWRkIG51bGwgcG9pbnRlciBmb3IgbmV3IG1ldGhvZCBp
biBXS1BhZ2VVSUNsaWVudCBzdHJ1Y3QgdG8gZml4IHdhcm5pbmdzCisKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bV0sy
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VGcm9tTmliXSk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlV2ViVmlld1dpdGhPcHRpb25zKToKKwogMjAxMy0wNi0yNiAgRGVhbiBKYWNrc29uICA8ZGlu
b0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gQWRkIE1hdmVyaWNrcyBzeXN0ZW0gZm9udCB0
byBUZXN0IHN5c3RlbXMKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93
c2VyV2luZG93Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJX
aW5kb3dDb250cm9sbGVyLm0KaW5kZXggNzJhZThiMjRkZGU3YTY1OTJkN2MyNzBmMTlhYmQ1MTIy
MDdlODRjNi4uODc1N2E2YmRjYzc5ZjIwZjk4OWEwNjYzNDg4M2QxNDNmYzYwMGI5MCAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0K
KysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0K
QEAgLTcyNCw2ICs3MjQsNyBAQCAtICh2b2lkKWF3YWtlRnJvbU5pYgogICAgICAgICAwLCAvLyBz
aG93Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAs
IC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBkZWNpZGVQ
b2xpY3lGb3JQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQoX3dlYlZpZXcucGFnZVJlZiwgJnVpQ2xpZW50KTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMDk2NDdhMTYwMTczODQxN2Nm
ZmRmMDM2NmU0ZDk5MTgwM2Q2NDkyMy4uMWE0ZWM1YWExOTExM2I3YjBkNjZlYzg3OTZkNjM0MjE4
MWEwYWU4YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTI0Nyw2ICsyNDcsNyBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFn
ZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBz
aG93Q29sb3JQaWNrZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCiAgICAgICAgIDAs
IC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAorICAgICAgICAwLCAvLyBkZWNpZGVQ
b2xpY3lGb3JQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtNDQ2LDYg
KzQ0Nyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhX
S0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAg
ICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgogICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQsCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvclBvaW50ZXJMb2NrUGVy
bWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5X
ZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>