<?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>118132</bug_id>
          
          <creation_ts>2013-06-27 07:26:42 -0700</creation_ts>
          <short_desc>[Qt][WK2] Handling Pointer Lock requests</short_desc>
          <delta_ts>2014-02-03 03:26:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>904226</commentid>
    <comment_count>0</comment_count>
    <who name="Stanislav Pikulik">stanislav.pikulik</who>
    <bug_when>2013-06-27 07:26:42 -0700</bug_when>
    <thetext>[Qt][WK2] Handling Pointer Lock requests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904231</commentid>
    <comment_count>1</comment_count>
      <attachid>205604</attachid>
    <who name="Stanislav Pikulik">stanislav.pikulik</who>
    <bug_when>2013-06-27 07:36:21 -0700</bug_when>
    <thetext>Created attachment 205604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906766</commentid>
    <comment_count>2</comment_count>
      <attachid>206240</attachid>
    <who name="Stanislav Pikulik">stanislav.pikulik</who>
    <bug_when>2013-07-08 06:55:19 -0700</bug_when>
    <thetext>Created attachment 206240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908363</commentid>
    <comment_count>3</comment_count>
      <attachid>206656</attachid>
    <who name="Stanislav Pikulik">stanislav.pikulik</who>
    <bug_when>2013-07-15 04:27:48 -0700</bug_when>
    <thetext>Created attachment 206656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935700</commentid>
    <comment_count>4</comment_count>
      <attachid>206656</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-02 21:40:07 -0700</bug_when>
    <thetext>Comment on attachment 206656
Patch

Qt has been removed, clearing review flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975749</commentid>
    <comment_count>5</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2014-02-03 03:26:16 -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>205604</attachid>
            <date>2013-06-27 07:36:21 -0700</date>
            <delta_ts>2013-07-08 06:55:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118132-20130627183412.patch</filename>
            <type>text/plain</type>
            <size>55626</size>
            <attacher name="Stanislav Pikulik">stanislav.pikulik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWExZTU2NTFhNWY0MTEw
ZjQ0ZTg0MmNiMmIxNGM2M2NkNGYwYTI2NS4uZjc4MGQyY2M5MzcxOTI4Njk0MTUwNTAwMTdlZTcy
ZmY2OGU1MWQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA2LTI3ICBTdGFu
aXNsYXYgUGlrdWxpayAgPHN0YW5pc2xhdi5waWt1bGlrQGxnZS5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIEhhbmRsaW5nIFBvaW50ZXIgTG9jayByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MTMyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAg
ICAgICAgaW5jbHVkZSBQb2ludGVyTG9ja0NvbnRyb2xsZXIgZmlsZXMKKworICAgICAgICAqIFRh
cmdldC5wcmk6CisKIDIwMTMtMDYtMjcgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFy
aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhpbmcgc29tZSBjb21waWxlciB3YXJuaW5ncwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDQ5ODI1YmY4NTMwZDdkOTEyMWZhOWExYTA3Zjg5MzE3NzFjMTRmYTAuLjll
MzYwZWQxNGU4OWIzMzgyYmY1OTlmNjg4NTQyMDg0YmI3MGFiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NyBAQAorMjAxMy0wNi0yNyAgU3RhbmlzbGF2IFBpa3VsaWsgIDxzdGFuaXNsYXYucGlr
dWxpa0BsZ2UuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBIYW5kbGluZyBQb2ludGVyIExvY2sg
cmVxdWVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExODEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGFkZCBXZWJQb2ludGVyTG9ja01hbmFnZXIgdG8gbWFuZ2UgUG9pbnRlckxvY2sgc3RhdGUgb24g
V2ViUHJvY2VzcyBzaWRlCisgICAgICAgIGFkZCBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eSB0
byBtYW5hZ2UgUG9pbnRlckxvY2sgc3RhdGUgb24gVUlQcm9jZXNzIHNpZGUKKyAgICAgICAgYWRk
IEluamVjdGVkQnVuZGxlIGNsaWVudCB0byBXZWJQb2ludGVyTG9ja01hbmFnZXIgdG8gc2V0dXAg
Y3VzdG9tIGJlaGF2aW9yCisgICAgICAgIGFkZCBDIEFQSSB0byByZWZlciBXZWJQb2ludGVyTG9j
a01hbmFnZXIgbWV0aG9kcworICAgICAgICBhZGQgdHJhbnNmZXIgbW91c2UgY3Vyc29yIG1vdmVt
ZW50IGRlbHRhCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogU2hh
cmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0
Zm9ybU1vdXNlRXZlbnQ6OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2Nr
TWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2Nr
TWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01h
bmFnZXJQcm94eTo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6fldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OnNldFdlYlZp
ZXcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6aXNQb2lu
dGVyTG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6
OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFu
YWdlclByb3h5OjpyZXF1ZXN0UG9pbnRlclVubG9jayk6CisgICAgICAgICogVUlQcm9jZXNzL1Bv
aW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL3F0L1dlYlBvaW50
ZXJMb2NrTWFuYWdlclByb3h5UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9p
bnRlckxvY2tNYW5hZ2VyUHJveHk6OmRpZEFjcXVpcmVQb2ludGVyTG9jayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpkaWROb3RBY3F1aXJlUG9pbnRlckxv
Y2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6ZGlkTG9z
ZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojpwb2ludGVyTG9ja01hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQyLnByaToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChX
S0J1bmRsZVBhZ2VTZXRQb2ludGVyTG9ja0NsaWVudCk6CisgICAgICAgIChXS0J1bmRsZVBhZ2VT
dGFydFJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTdGFydFJlcXVl
c3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZUlzUG9pbnRlckxvY2tlZCk6
CisgICAgICAgIChXS0J1bmRsZVBhZ2VEaWRBY3F1aXJlUG9pbnRlckxvY2spOgorICAgICAgICAo
V0tCdW5kbGVQYWdlRGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdLQnVuZGxl
UGFnZURpZExvc2VQb2ludGVyTG9jayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50OjpzdXBw
b3J0c1BvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlUG9p
bnRlckxvY2tDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9jayk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQ
b2ludGVyTG9ja0NsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BvaW50ZXJM
b2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb2ludGVyTG9ja01hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50
ZXJMb2NrTWFuYWdlcjo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjp+V2ViUG9pbnRlckxvY2tNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzdXBwb3J0c1BvaW50ZXJMb2NrKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpyZXF1ZXN0UG9pbnRlckxvY2sp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OnJlcXVlc3RQb2ludGVy
VW5sb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjppc1BvaW50
ZXJMb2NrZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OmRpZEFj
cXVpcmVQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdl
cjo6ZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRl
ckxvY2tNYW5hZ2VyOjpkaWRMb3NlUG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
b2ludGVyTG9ja01hbmFnZXI6OnN0YXJ0UmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzdGFydFJlcXVlc3RQb2ludGVyVW5sb2NrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlcjo6c2VjdXJpdHlPcmln
aW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5h
Z2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRl
ckxvY2tNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6aXNQb2ludGVyTG9ja2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6On5XZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUG9pbnRlckxvY2tDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OmhhbmRsZU1vdXNlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyTG9ja01hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5q
ZWN0ZWRCdW5kbGVQb2ludGVyTG9ja0NsaWVudCk6CisKIDIwMTMtMDYtMjcgIFhhYmllciBSb2Ry
aWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhpbmcgc29t
ZSBjb21waWxlciB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZjQxN2RkZTUyY2ZhN2JhOTgyZjRh
MTA0NTY0ZGI0YTNmMjg2ODdhMi4uMTUzNTA1YjY3NDU1ODdhOWFjYmM5ZTRkYmRhNTJkNzNjOWRh
YTFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC05NDEsNiArOTQxLDcgQEAgU09VUkNFUyArPSBcCiAgICAg
cGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcCBcCisgICAg
cGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL1ByaW50Q29udGV4dC5j
cHAgXAogICAgIHBhZ2UvU2NyZWVuLmNwcCBcCiAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29uc3RyYWludHMuY3BwIFwKQEAgLTIwOTcsNiArMjA5OCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IHBhZ2UvUGFnZVRocm90dGxlci5oIFwKICAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBc
CiAgICAgcGFnZS9QbHVnSW5DbGllbnQuaCBcCisgICAgcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xs
ZXIuaCBcCiAgICAgcGFnZS9Qb3B1cE9wZW5pbmdPYnNlcnZlci5oIFwKICAgICBwYWdlL1ByaW50
Q29udGV4dC5oIFwKICAgICBwYWdlL1NjcmVlbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBy
aQppbmRleCBkYzE3ZmFhYWMwYjljY2ZmODI4YjRiY2Q3NjE0YmJhYTYzZjFkZDljLi41YWE3YjNk
MWQ3Njc0ZTdmNTE4YmEyNGVkMzI2NTE5ZTdhOTdhOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMucHJpCkBAIC00OCw2ICs0OCw3IEBAIFZQQVRIID0gXAogICAgIFdlYlByb2Nlc3MvTmV0d29y
a0luZm8gXAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCiAgICAgV2ViUHJvY2Vzcy9Q
bHVnaW5zIFwKKyAgICBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrIFwKICAgICBXZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUgXAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZSBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydCBcCkBAIC01OSw2ICs2MCw3IEBAIFZQQVRIID0gXAogICAgIFVJUHJvY2Vz
cy9Eb3dubG9hZHMgXAogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKICAgICBVSVByb2Nl
c3MvUGx1Z2lucyBcCisgICAgVUlQcm9jZXNzL1BvaW50ZXJMb2NrIFwKICAgICBVSVByb2Nlc3Mv
U3RvcmFnZSBcCiAgICAgU2hhcmVkIFwKICAgICBTaGFyZWQvQXV0aGVudGljYXRpb24gXApAQCAt
MTAwLDYgKzEwMiw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKKyAgICBX
ZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCisgICAgV2ViUG9pbnRlckxv
Y2tNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBDb29yZGluYXRlZExheWVyVHJlZUhvc3QubWVz
c2FnZXMuaW4gXAogICAgIERyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIFwKICAgICBXZWJJbnNwZWN0
b3IubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2
ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJz
aW9uLmNwcAppbmRleCA4MWFmN2ViMjcwMmU2NDA2MjFlMjhjYmE3NTA4YTY4MzZjZTQzNmY2Li45
ZjFlNTdiZjczMWVlNThlM2YyZTQ4Y2E0ZmQ1OTczMzI5NmQ0ZWIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcApAQCAtODMsNiArODMsMTAgQEAgcHVi
bGljOgogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gd2ViRXZlbnQuZ2xvYmFsUG9zaXRpb24o
KTsKICAgICAgICAgbV9jbGlja0NvdW50ID0gd2ViRXZlbnQuY2xpY2tDb3VudCgpOwogCisjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICAgICAgbV9tb3ZlbWVudERlbHRhID0gV2ViQ29yZTo6
SW50UG9pbnQod2ViRXZlbnQuZGVsdGFYKCksIHdlYkV2ZW50LmRlbHRhWSgpKTsKKyNlbmRpZgor
CiAgICAgICAgIG1fbW9kaWZpZXJGbGFncyA9IDA7CiAgICAgICAgIGlmICh3ZWJFdmVudC5zaGlm
dEtleSgpKQogICAgICAgICAgICAgbV9tb2RpZmllckZsYWdzIHw9IFdlYkV2ZW50OjpTaGlmdEtl
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCmluZGV4IGZlNjMzNmExMDE1NjNmMWJlMTZkNWIwZDgxNzM0OGQ1N2U1NWQ0
MzcuLjYzNTlhNzRjM2Q5MmEwNDY0ZTRlNWEzYjI3ZDEzZDZkMDBiZDQ3MjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQpAQCAtMjc5LDYgKzI3OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdl
Q29udGV4dE1lbnVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oIFwKICAg
ICBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggXAorICAgIFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9X
ZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUG9saWN5Q2xp
ZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmggXApAQCAtMzE2LDYgKzMxNyw3IEBAIEhFQURFUlMgKz0gXAogICAg
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VGb3JtQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIFwKKyAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LmggXAogICAgIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50Lmgg
XAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGll
bnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlw
dFdvcmxkLmggXApAQCAtMzM5LDYgKzM0MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24uaCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci5oIFwKKyAgICBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBv
aW50ZXJMb2NrTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJh
dHRlcnlDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIu
aCBcCkBAIC01ODksNiArNTkyLDggQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1BsdWdp
bnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMv
cXQvUGx1Z2luUHJvY2Vzc1Byb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4
L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwIFwKKyAgICBVSVByb2Nlc3MvUG9pbnRlckxvY2svcXQv
V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHlRdC5jcHAgXAorICAgIFVJUHJvY2Vzcy9Qb2ludGVy
TG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9SZXNw
b25zaXZlbmVzc1RpbWVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNw
cCBcCiAgICAgVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwIFwKQEAg
LTY4OSw2ICs2OTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dC5jcHAgXAorICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
UG9pbnRlckxvY2tDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBcCiAgICAg
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAg
XApAQCAtNzE1LDYgKzcyMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm94eS5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwIFwKKyAgICBXZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50
ZXJMb2NrTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYUlt
cGwuY3BwIFwKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhNDFiYjMxNDg1OGUyY2Vl
NjE3NmViZjY5ZGY0YWU2ZmE5OTY2ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkuY3BwCkBA
IC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3Ms
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5o
IgorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2luY2x1ZGUgIldlYkNvbnRleHQuaCIK
KyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YlBvaW50ZXJMb2NrTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1Bhc3NSZWZQdHI8V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk+IFdlYlBvaW50ZXJMb2Nr
TWFuYWdlclByb3h5OjpjcmVhdGUoV2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkocGFnZSkpOworfQorCitXZWJQ
b2ludGVyTG9ja01hbmFnZXJQcm94eTo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkoV2ViUGFn
ZVByb3h5KiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCisgICAgLCBtX3dlYlZpZXcoMCkKKyAg
ICAsIG1faXNQb2ludGVyTG9ja2VkKGZhbHNlKQoreworICAgIGlmIChtX3BhZ2UpCisgICAgICAg
IG1fcGFnZS0+cHJvY2VzcygpLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBvaW50
ZXJMb2NrTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+cGFnZUlE
KCksIHRoaXMpOworfQorCitXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6fldlYlBvaW50ZXJM
b2NrTWFuYWdlclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94
eTo6c2V0V2ViVmlldyhQbGF0Zm9ybVdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgbV93ZWJWaWV3
ID0gd2ViVmlldzsKK30KKworYm9vbCBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6aXNQb2lu
dGVyTG9ja2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc1BvaW50ZXJMb2NrZWQ7Cit9CisK
K3ZvaWQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7
CisgICAgaWYgKG1fcGFnZSAmJiBtX3BhZ2UtPmlzVmFsaWQoKSkKKyAgICAgICAgZGlkQWNxdWly
ZVBvaW50ZXJMb2NrKCk7Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OnJl
cXVlc3RQb2ludGVyVW5sb2NrKCkKK3sKKyAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+aXNWYWxp
ZCgpKQorICAgICAgICBkaWRMb3NlUG9pbnRlckxvY2soKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50
ZXJMb2NrTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc3YzMzOTM4Njg5OGZlMDEwOTZlYTNk
MTBmNjY0ZTRmZTU2MjI0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEs
OTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIExHIEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJQb2ludGVyTG9ja01hbmFnZXJQ
cm94eV9oCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKK09CSkNfQ0xBU1MgV0tWaWV3OworI2Vs
aWYgUExBVEZPUk0oR1RLKQordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdCYXNlIFdlYktp
dFdlYlZpZXdCYXNlOworI2VsaWYgUExBVEZPUk0oUVQpCitjbGFzcyBRUXVpY2tXZWJWaWV3Owor
I2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgUExBVEZPUk0oTUFDKQordHlwZWRl
ZiBXS1ZpZXcgUGxhdGZvcm1XZWJWaWV3OworI2VsaWYgUExBVEZPUk0oUVQpCit0eXBlZGVmIFFR
dWlja1dlYlZpZXcgUGxhdGZvcm1XZWJWaWV3OworI2VsaWYgUExBVEZPUk0oR1RLKQordHlwZWRl
ZiBXZWJLaXRXZWJWaWV3QmFzZSBQbGF0Zm9ybVdlYlZpZXc7CisjZWxpZiBQTEFURk9STShFRkwp
Cit0eXBlZGVmIEV2YXNfT2JqZWN0IFBsYXRmb3JtV2ViVmlldzsKKyNlbmRpZgorCitjbGFzcyBX
ZWJQYWdlUHJveHk7CisKK2NsYXNzIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5IDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk+LCBwdWJsaWMgQ29yZUlQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQb2lu
dGVyTG9ja01hbmFnZXJQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSopOworICAgIHZpcnR1YWwg
fldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIHNldFdlYlZpZXcoUGxh
dGZvcm1XZWJWaWV3Kik7CisKKyAgICBib29sIGlzUG9pbnRlckxvY2tlZCgpIGNvbnN0OworICAg
IHZvaWQgZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgdm9pZCBkaWROb3RBY3F1aXJlUG9p
bnRlckxvY2soKTsKKyAgICB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOworCisgICAgdm9pZCBy
ZXF1ZXN0UG9pbnRlckxvY2soKTsKKyAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisK
K3Byb3RlY3RlZDoKKworICAgIGV4cGxpY2l0IFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5KFdl
YlBhZ2VQcm94eSopOworCisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CisgICAgUGxhdGZvcm1X
ZWJWaWV3KiBtX3dlYlZpZXc7CisgICAgYm9vbCBtX2lzUG9pbnRlckxvY2tlZDsKKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNlbmRpZiAv
LyBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eV9oCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50
ZXJMb2NrTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmMTBmZDliMzA1ODU4
ZDc2MDcwNTIzMjE0NGMyZTZiOTBhNTdiOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxl
Y3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorIworCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK21lc3NhZ2Vz
IC0+IFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5IHsKKyAgICBSZXF1ZXN0UG9pbnRlckxvY2so
KQorICAgIFJlcXVlc3RQb2ludGVyVW5sb2NrKCkKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL3F0L1dlYlBvaW50ZXJMb2NrTWFuYWdl
clByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL3F0L1dl
YlBvaW50ZXJMb2NrTWFuYWdlclByb3h5UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzM2Q0NGE1YzhkYWMy
NTY3YWMzMGE3NGExMDdhNWI1MjIwNTRiYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svcXQvV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHlR
dC5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVj
dHJvbmljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdl
clByb3h5LmgiCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAiV2ViQ29u
dGV4dC5oIgorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit2b2lkIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpkaWRBY3F1aXJlUG9pbnRl
ckxvY2soKQoreworICAgIC8vIEZJWE1FIDogUGxhdGZvcm0tZGVwZW5kZW50IG5vdGlmaWNhdGlv
bi4gU29tZXRoaW5rIGxpa2UgdGhhdAorICAgIC8vIGlmIChtX3dlYlZpZXcpCisgICAgLy8gICAg
IGVtaXQgbV93ZWJWaWV3LT5leHBlcmltZW50YWwoKS0+cG9pbnRlckxvY2tSZXF1ZXN0ZWQoKTsK
KworICAgIG1faXNQb2ludGVyTG9ja2VkID0gdHJ1ZTsKKyAgICBpZiAobV9wYWdlKQorICAgICAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUG9pbnRlckxvY2tNYW5hZ2Vy
OjpEaWRBY3F1aXJlUG9pbnRlckxvY2soKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQg
V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OmRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpCit7
CisgICAgbV9pc1BvaW50ZXJMb2NrZWQgPSBmYWxzZTsKKyAgICBpZiAobV9wYWdlKQorICAgICAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUG9pbnRlckxvY2tNYW5hZ2Vy
OjpEaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3Zv
aWQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OmRpZExvc2VQb2ludGVyTG9jaygpCit7Cisg
ICAgLy8gRklYTUUgOiBQbGF0Zm9ybS1kZXBlbmRlbnQgbm90aWZpY2F0aW9uLiBTb21ldGhpbmsg
bGlrZSB0aGF0CisgICAgLy8gaWYgKG1fd2ViVmlldykKKyAgICAvLyAgICAgZW1pdCBtX3dlYlZp
ZXctPmV4cGVyaW1lbnRhbCgpLT5wb2ludGVyVW5sb2NrUmVxdWVzdGVkKCk7CisKKyAgICBtX2lz
UG9pbnRlckxvY2tlZCA9IGZhbHNlOworICAgIGlmICAobV9wYWdlKQorICAgICAgICBtX3BhZ2Ut
PnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpEaWRMb3Nl
UG9pbnRlckxvY2soKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDRkMjIxZDQxNzY0ZTg2YmYwMzQ2NjVm
MzcwZjlmMzk5N2QzZmE0OGEuLmRhZjMyZTg2MmZlMGM1NzRmZWM4ZGE0ZGVlMDMxMTNkOTJiMTcz
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03NCw2
ICs3NCwxMCBAQAogI2luY2x1ZGUgIldlYlBhZ2VHcm91cERhdGEuaCIKICNpbmNsdWRlICJXZWJQ
YWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHku
aCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjZW5k
aWYKICNpbmNsdWRlICJXZWJQb3B1cEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94
eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCkBAIC0zMzUsNiArMzM5LDkgQEAgV2Vi
UGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0
cjxXZWJQcm9jZXNzUHJveHk+IHAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgbV9m
dWxsU2NyZWVuTWFuYWdlciA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlz
KTsKICNlbmRpZgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgbV9wb2ludGVyTG9ja01h
bmFnZXIgPSBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOworI2VuZGlm
CiAjaWYgRU5BQkxFKFZJQlJBVElPTikKICAgICBtX3ZpYnJhdGlvbiA9IFdlYlZpYnJhdGlvblBy
b3h5OjpjcmVhdGUodGhpcyk7CiAjZW5kaWYKQEAgLTQ4Nyw2ICs0OTQsOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3MoKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6
Y3JlYXRlKHRoaXMpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBtX3Bv
aW50ZXJMb2NrTWFuYWdlciA9IFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpjcmVhdGUodGhp
cyk7CisjZW5kaWYKIAogICAgIGluaXRpYWxpemVXZWJQYWdlKCk7CiAKQEAgLTMwNDEsNiArMzA1
MSwxMyBAQCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KiBXZWJQYWdlUHJveHk6OmZ1bGxTY3Jl
ZW5NYW5hZ2VyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK1dlYlBv
aW50ZXJMb2NrTWFuYWdlclByb3h5KiBXZWJQYWdlUHJveHk6OnBvaW50ZXJMb2NrTWFuYWdlcigp
Cit7CisgICAgcmV0dXJuIG1fcG9pbnRlckxvY2tNYW5hZ2VyLmdldCgpOworfQorI2VuZGlmCisK
IC8vIEJhY2tGb3J3YXJkTGlzdAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRBZGRJ
dGVtKHVpbnQ2NF90IGl0ZW1JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA0ZGI2MmU5MWEyMmE4MzE2MmE2MjFjNTFjNGQyN2RmMDZkYTljNTQwLi42NDAyNGRm
ZTljMmRhNGEwOThjODQ0OWM3NjQ4YmJjNDYxMTdmMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDYsNiArMTQ2LDcgQEAgY2xhc3MgV2ViS2V5Ym9hcmRF
dmVudDsKIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOworY2xhc3MgV2ViUG9pbnRlckxvY2tNYW5h
Z2VyUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiBjbGFzcyBXZWJVUkxSZXF1ZXN0Owog
Y2xhc3MgV2ViV2hlZWxFdmVudDsKQEAgLTI2NCw2ICsyNjUsMTAgQEAgcHVibGljOgogICAgIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkq
IHBvaW50ZXJMb2NrTWFuYWdlcigpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKICAgICB2b2lkIGluaXRpYWxpemVDb250ZXh0TWVudUNsaWVudChjb25zdCBXS1BhZ2VDb250
ZXh0TWVudUNsaWVudCopOwogI2VuZGlmCkBAIC0xMDg4LDYgKzEwOTMsMTAgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4gbV9mdWxsU2NyZWVuTWFuYWdl
cjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBSZWZQdHI8V2ViUG9p
bnRlckxvY2tNYW5hZ2VyUHJveHk+IG1fcG9pbnRlckxvY2tNYW5hZ2VyOworI2VuZGlmCisKICNp
ZiBFTkFCTEUoVklCUkFUSU9OKQogICAgIFJlZlB0cjxXZWJWaWJyYXRpb25Qcm94eT4gbV92aWJy
YXRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKaW5kZXggYTFkYTA0NTFhYzVhZjhmMWYyM2QxN2Q0
M2MwNWRhZTkxOTk2NmQ4Zi4uZDk0OTJlMmU3NDE1MDMxMDZiNDFmZDIxYWI0NzlmODViZTdiMmUz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi5wcmkKQEAgLTQwLDYgKzQwLDcgQEAgSU5DTFVERVBBVEggKz0gXAogICAg
ICQkU09VUkNFX0RJUi9VSVByb2Nlc3MvTGF1bmNoZXIgXAogICAgICQkU09VUkNFX0RJUi9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucyBcCiAgICAgJCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy9QbHVnaW5z
IFwKKyAgICAkJFNPVVJDRV9ESVIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrIFwKICAgICAkJFNPVVJD
RV9ESVIvVUlQcm9jZXNzL1N0b3JhZ2UgXAogICAgICQkU09VUkNFX0RJUi9VSVByb2Nlc3MvcXQg
XAogICAgICQkU09VUkNFX0RJUi9VSVByb2Nlc3MvdGV4bWFwIFwKQEAgLTU5LDYgKzYwLDcgQEAg
SU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMgXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQkU09VUkNF
X0RJUi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUgXAorICAgICQkU09VUkNFX0RJUi9XZWJQ
cm9jZXNzL1BvaW50ZXJMb2NrIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9SZXNvdXJj
ZUNhY2hlIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKICAgICAkJFNP
VVJDRV9ESVIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKaW5kZXggZDQ1ZTQ4ZTg4ZGFjMTQ3YzBhZmJlY2M3NjUxYTA0NmYyMzgzYWMyMC4u
YzgxM2Q4ZWFiYjIwNDQ5MjRhYjI4MTM0OTAxMzEyMWY4ZjIwY2U5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcApAQCAtNDEsNiArNDEsOSBAQAogI2luY2x1ZGUgIldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgi
CisjaWYgZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKSAmJiBFTkFCTEVfUE9JTlRFUl9MT0NL
CisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyLmgiCisjZW5kaWYKICNpbmNsdWRlICJX
ZWJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIldlYlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUg
IldlYlN0cmluZy5oIgpAQCAtNTE2LDMgKzUxOSw1NiBAQCB2b2lkIFdLQnVuZGxlUGFnZVN0b3BF
eHRlbmRpbmdJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKFdLQnVuZGxlUGFnZVJlZiBw
YQogewogICAgIHRvSW1wbChwYWdlUmVmKS0+c3RvcEV4dGVuZGluZ0luY3JlbWVudGFsUmVuZGVy
aW5nU3VwcHJlc3Npb24odG9rZW4pOwogfQorCit2b2lkIFdLQnVuZGxlUGFnZVNldFBvaW50ZXJM
b2NrQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VQb2ludGVyTG9j
a0NsaWVudCogd2tDbGllbnQpCit7CisjaWYgZGVmaW5lZChFTkFCTEVfUE9JTlRFUl9MT0NLKSAm
JiBFTkFCTEVfUE9JTlRFUl9MT0NLCisgICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplSW5q
ZWN0ZWRCdW5kbGVQb2ludGVyTG9ja0NsaWVudCh3a0NsaWVudCk7CisjZW5kaWYKK30KKworYm9v
bCBXS0J1bmRsZVBhZ2VTdGFydFJlcXVlc3RQb2ludGVyTG9jayhXS0J1bmRsZVBhZ2VSZWYgcGFn
ZVJlZikKK3sKKyNpZiBkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICYmIEVOQUJMRV9QT0lO
VEVSX0xPQ0sKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5wb2ludGVyTG9ja01hbmFnZXIo
KS0+c3RhcnRSZXF1ZXN0UG9pbnRlckxvY2soKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlU3RhcnRSZXF1ZXN0UG9pbnRlclVubG9jayhX
S0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKK3sKKyNpZiBkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICYmIEVOQUJMRV9QT0lOVEVSX0xPQ0sKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5w
b2ludGVyTG9ja01hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0UG9pbnRlclVubG9jaygpOworI2VuZGlm
Cit9CisKK2Jvb2wgV0tCdW5kbGVQYWdlSXNQb2ludGVyTG9ja2VkKFdLQnVuZGxlUGFnZVJlZiBw
YWdlUmVmKQoreworI2lmIGRlZmluZWQoRU5BQkxFX1BPSU5URVJfTE9DSykgJiYgRU5BQkxFX1BP
SU5URVJfTE9DSworICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnBvaW50ZXJMb2NrTWFuYWdl
cigpLT5pc1BvaW50ZXJMb2NrZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlRGlkQWNxdWlyZVBvaW50ZXJMb2NrKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlUmVmKQoreworI2lmIGRlZmluZWQoRU5BQkxFX1BPSU5URVJfTE9DSykgJiYgRU5B
QkxFX1BPSU5URVJfTE9DSworICAgIHRvSW1wbChwYWdlUmVmKS0+cG9pbnRlckxvY2tNYW5hZ2Vy
KCktPmRpZEFjcXVpcmVQb2ludGVyTG9jaygpOworI2VuZGlmCit9CisKK3ZvaWQgV0tCdW5kbGVQ
YWdlRGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQorewor
I2lmIGRlZmluZWQoRU5BQkxFX1BPSU5URVJfTE9DSykgJiYgRU5BQkxFX1BPSU5URVJfTE9DSwor
ICAgIHRvSW1wbChwYWdlUmVmKS0+cG9pbnRlckxvY2tNYW5hZ2VyKCktPmRpZE5vdEFjcXVpcmVQ
b2ludGVyTG9jaygpOworI2VuZGlmCit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlRGlkTG9zZVBvaW50
ZXJMb2NrKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQoreworI2lmIGRlZmluZWQoRU5BQkxFX1BP
SU5URVJfTE9DSykgJiYgRU5BQkxFX1BPSU5URVJfTE9DSworICAgIHRvSW1wbChwYWdlUmVmKS0+
cG9pbnRlckxvY2tNYW5hZ2VyKCktPmRpZExvc2VQb2ludGVyTG9jaygpOworI2VuZGlmCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCAxMDNmNDc4YTEyMzVjOGQ3NDljMjQ2ZDQwNmI4
MDJhODllN2Y5NTExLi5lNGIyNTY0NmRmNzg1OWFlZTczNjk3NTFlZjE1NDM1MmFiODg2YTA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTQwMyw2ICs0MDMsMjQgQEAgdHlwZWRlZiBz
dHJ1Y3QgV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50OwogCiBlbnVtIHsga1dLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnRDdXJyZW50VmVy
c2lvbiA9IDEgfTsKIAorLy8gUG9pbnRlciBMb2NrIGNsaWVudAordHlwZWRlZiBib29sICgqV0tC
dW5kbGVQYWdlU3VwcG9ydHNQb2ludGVyTG9jaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwordHlw
ZWRlZiBib29sICgqV0tCdW5kbGVQYWdlUmVxdWVzdFBvaW50ZXJMb2NrKShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VSZXF1ZXN0UG9pbnRlclVubG9j
aykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOworCitzdHJ1Y3QgV0tCdW5kbGVQYWdlUG9pbnRlckxv
Y2tDbGllbnQgeworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dEluZm87CisKKyAgICAvLyBWZXJzaW9uIDA6CisgICAgV0tCdW5kbGVQYWdlU3VwcG9ydHNQb2lu
dGVyTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c1BvaW50
ZXJMb2NrOworICAgIFdLQnVuZGxlUGFnZVJlcXVlc3RQb2ludGVyTG9jayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFBvaW50ZXJMb2NrOworICAgIFdLQnVuZGxl
UGFnZVJlcXVlc3RQb2ludGVyVW5sb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdFBvaW50ZXJVbmxvY2s7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdl
UG9pbnRlckxvY2tDbGllbnQgV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQ7CisKK2VudW0g
eyBrV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnRDdXJyZW50VmVyc2lvbiA9IDAgfTsKKwog
Ly8gTWVzc2FnZVRyYWNlIGNsaWVudAogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1l
c3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS1N0cmluZ1JlZiBzdWNjZXNzLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKIApAQCAtNDMxLDYgKzQ0OSw3IEBAIFdLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlUGFnZVNldFBvbGljeUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5k
bGVQYWdlUG9sCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRVSUNsaWVudChXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlVUlDbGllbnQqIGNsaWVudCk7CiBXS19FWFBPUlQg
dm9pZCBXS0J1bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQg
V0tCdW5kbGVQYWdlU2V0RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBjbGllbnQpOworV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9pbnRlckxvY2tDbGllbnQoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50KiBjbGllbnQpOwogCiBXS19FWFBP
UlQgV0tCdW5kbGVQYWdlR3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVuZGxl
UGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFnZUdl
dE1haW5GcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CkBAIC00NzIsNiArNDkxLDEzIEBAIFdL
X0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZUxpc3RlbkZvckxheW91dE1pbGVzdG9uZXMoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLTGF5CiAKIFdLX0VYUE9SVCBXS0J1bmRsZUluc3BlY3RvclJlZiBX
S0J1bmRsZVBhZ2VHZXRJbnNwZWN0b3IoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCitXS19FWFBP
UlQgYm9vbCBXS0J1bmRsZVBhZ2VTdGFydFJlcXVlc3RQb2ludGVyTG9jayhXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTdGFydFJlcXVlc3RQb2ludGVy
VW5sb2NrKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCBib29sIFdLQnVuZGxlUGFn
ZUlzUG9pbnRlckxvY2tlZChXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CitXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZVBhZ2VEaWRBY3F1aXJlUG9pbnRlckxvY2soV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwor
V0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZExvc2VQb2lu
dGVyTG9jayhXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxv
Y2tDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxYmZmOWNkMmFkODFhMjI4ODUzMjJjZWQxOWNjOWNi
YmRiOGQzYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LmNwcApAQCAt
MCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLU2hhcmVk
QVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUg
IldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXIuaCIKKyNpbmNsdWRl
ICJXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBJbmplY3RlZEJ1bmRsZVBh
Z2VQb2ludGVyTG9ja0NsaWVudDo6c3VwcG9ydHNQb2ludGVyTG9jayhXZWJQYWdlICpwYWdlKQor
eworICAgIGlmIChtX2NsaWVudC5yZXF1ZXN0UG9pbnRlckxvY2spCisgICAgICAgIHJldHVybiBt
X2NsaWVudC5zdXBwb3J0c1BvaW50ZXJMb2NrKHRvQVBJKHBhZ2UpKTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudDo6cmVxdWVz
dFBvaW50ZXJMb2NrKFdlYlBhZ2UgKnBhZ2UpCit7CisgICAgaWYgKG1fY2xpZW50LnJlcXVlc3RQ
b2ludGVyTG9jaykKKyAgICAgICAgcmV0dXJuIG1fY2xpZW50LnJlcXVlc3RQb2ludGVyTG9jayh0
b0FQSShwYWdlKSk7CisgICAgcmV0dXJuIHBhZ2UtPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5zdGFy
dFJlcXVlc3RQb2ludGVyTG9jaygpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVBvaW50
ZXJMb2NrQ2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9jayhXZWJQYWdlICpwYWdlKQoreworICAg
IGlmIChtX2NsaWVudC5yZXF1ZXN0UG9pbnRlclVubG9jaykKKyAgICAgICAgbV9jbGllbnQucmVx
dWVzdFBvaW50ZXJVbmxvY2sodG9BUEkocGFnZSkpOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+
cG9pbnRlckxvY2tNYW5hZ2VyKCktPnN0YXJ0UmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzE0ZTIzZjE0MzIzOTE0OTA4ZDEzNWNiZTE0Yjc4ZTgzNjAyN2QwZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQuaApAQCAtMCwwICsxLDU2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEluamVjdGVk
QnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50X2gKKyNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVQYWdl
UG9pbnRlckxvY2tDbGllbnRfaAorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2luY2x1
ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLQnVuZGxlUGFnZS5oIgorI2luY2x1ZGUgIldl
YkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEludFJlY3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9j
a0NsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQs
IGtXS0J1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudEN1cnJlbnRWZXJzaW9uPiB7CitwdWJsaWM6
CisgICAgYm9vbCBzdXBwb3J0c1BvaW50ZXJMb2NrKFdlYlBhZ2UqKTsKKyAgICBib29sIHJlcXVl
c3RQb2ludGVyTG9jayhXZWJQYWdlKik7CisgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jayhX
ZWJQYWdlKik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShQT0lOVEVSX0xPQ0spCisKKyNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9j
a0NsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJM
b2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJkMGE5
OTRiMTMxMzc4ZmI2OWFjM2U1YzhiYjE5NjMwZjU5MmNjNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVj
dHJvbmljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdl
ci5oIgorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYlBvaW50ZXJMb2NrTWFu
YWdlcj4gV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlBvaW50ZXJMb2NrTWFuYWdlcihwYWdlKSk7Cit9CisK
K1dlYlBvaW50ZXJMb2NrTWFuYWdlcjo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyKFdlYlBhZ2UqIHBh
Z2UpCisgICAgOiBtX3BhZ2UocGFnZSkKKyAgICAsIG1fcG9pbnRlckxvY2tlZChmYWxzZSkKK3sK
K30KKworV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjp+V2ViUG9pbnRlckxvY2tNYW5hZ2VyKCkKK3sK
K30KKworYm9vbCBXZWJQb2ludGVyTG9ja01hbmFnZXI6OnN1cHBvcnRzUG9pbnRlckxvY2soKQor
eworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxl
UG9pbnRlckxvY2tDbGllbnQoKS5zdXBwb3J0c1BvaW50ZXJMb2NrKG1fcGFnZS5nZXQoKSk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpyZXF1ZXN0
UG9pbnRlckxvY2soKQoreworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIHJldHVybiBtX3BhZ2Ut
PmluamVjdGVkQnVuZGxlUG9pbnRlckxvY2tDbGllbnQoKS5yZXF1ZXN0UG9pbnRlckxvY2sobV9w
YWdlLmdldCgpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tN
YW5hZ2VyOjpyZXF1ZXN0UG9pbnRlclVubG9jaygpCit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAg
ICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVBvaW50ZXJMb2NrQ2xpZW50KCkucmVxdWVzdFBvaW50
ZXJVbmxvY2sobV9wYWdlLmdldCgpKTsKK30KKworYm9vbCBXZWJQb2ludGVyTG9ja01hbmFnZXI6
OmlzUG9pbnRlckxvY2tlZCgpCit7CisgICAgcmV0dXJuIG1fcGFnZSAmJiBtX3BhZ2UtPmNvcmVQ
YWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLT5lbGVtZW50KCk7Cit9CisKK3ZvaWQgV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyOjpkaWRBY3F1aXJlUG9pbnRlckxvY2soKQoreworICAgIGlmICht
X3BhZ2UpCisgICAgICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+cG9pbnRlckxvY2tDb250cm9sbGVy
KCktPmRpZEFjcXVpcmVQb2ludGVyTG9jaygpOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrTWFu
YWdlcjo6ZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBpZiAobV9wYWdlKQorICAg
ICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLT5kaWROb3RB
Y3F1aXJlUG9pbnRlckxvY2soKTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja01hbmFnZXI6OmRp
ZExvc2VQb2ludGVyTG9jaygpCit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5j
b3JlUGFnZSgpLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS0+ZGlkTG9zZVBvaW50ZXJMb2NrKCk7
Cit9CisKK2Jvb2wgV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzdGFydFJlcXVlc3RQb2ludGVyTG9j
aygpCit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OlJlcXVlc3RQb2ludGVyTG9jaygpKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzdGFy
dFJlcXVlc3RQb2ludGVyVW5sb2NrKCkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpSZXF1ZXN0UG9p
bnRlclVubG9jaygpKTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja01hbmFnZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGRpZFJlY2VpdmVXZWJQb2ludGVyTG9ja01hbmFn
ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworfQorCitXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiogV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzZWN1cml0eU9yaWdpbigpCit7CisgICAgLy8g
RklYTUUgOiB0aGlzIHZhbHVlIHNob3VsZCBiZSBvYnRhaW5lZCBmcm9tIHRoZSBwb2ludGVyTG9j
a0NvbnRyb2xsZXIoKQorICAgIC8vIG9yIHBhc3NlZCB0byB0aGUgcmVxdWVzdFBvaW50ZXJMb2Nr
KCkgbWV0aG9kCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdkNjNiOGI2N2JmMDY0M2UxZWVjNjgzMWFiN2E0M2ExYjY0YmMyOTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBv
aW50ZXJMb2NrTWFuYWdlci5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9OSUNTIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBMRyBF
TEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUG9pbnRlckxvY2tNYW5hZ2VyX2gKKyNkZWZp
bmUgV2ViUG9pbnRlckxvY2tNYW5hZ2VyX2gKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisK
KyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQ
QyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJQb2ludGVyTG9ja01h
bmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJQb2ludGVyTG9ja01hbmFnZXI+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQb2ludGVyTG9ja01hbmFnZXI+IGNyZWF0ZShX
ZWJQYWdlKik7CisgICAgdmlydHVhbCB+V2ViUG9pbnRlckxvY2tNYW5hZ2VyKCk7CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworCisgICAgYm9vbCBzdXBwb3J0c1BvaW50ZXJMb2NrKCk7CisKKyAgICBi
b29sIHJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2so
KTsKKyAgICBib29sIGlzUG9pbnRlckxvY2tlZCgpOworCisgICAgdm9pZCBkaWRBY3F1aXJlUG9p
bnRlckxvY2soKTsKKyAgICB2b2lkIGRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOworICAgIHZv
aWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CisKKyAgICBib29sIHN0YXJ0UmVxdWVzdFBvaW50ZXJM
b2NrKCk7CisgICAgdm9pZCBzdGFydFJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisKKyAgICBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKTsKKworcHJvdGVjdGVkOgorICAg
IFdlYlBvaW50ZXJMb2NrTWFuYWdlcihXZWJQYWdlKik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJQb2ludGVyTG9ja01hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworCisgICAgUmVmUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBi
b29sIG1fcG9pbnRlckxvY2tlZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2VuZGlmIC8vIFdlYlBvaW50ZXJMb2NrTWFu
YWdlcl9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxv
Y2svV2ViUG9pbnRlckxvY2tNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODkwNTUyYzBiMTlmYmY4ODhhMjMwMzUyZWEyMzBjZjUyNDhlYTgyNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9p
bnRlckxvY2tNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMKKyMgQ29weXJp
Z2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQTEcgRUxFQ1RST05J
Q1NQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
IworCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK21lc3NhZ2VzIC0+IFdlYlBvaW50ZXJMb2Nr
TWFuYWdlciBMZWdhY3lSZWNlaXZlciB7CisgICAgRGlkQWNxdWlyZVBvaW50ZXJMb2NrKCkKKyAg
ICBEaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKQorICAgIERpZExvc2VQb2ludGVyTG9jaygpCit9
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwOTg1OGFlZmY5NzkzNTFlNDMx
NWMzZDc2MWE0Njk5MDE2Njc2Yzg0Li5hYTFiMDVhZjkzZmY0NWM0ZDM1NTI1NWU4ZTllMzQ5MWY2
OWFhYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00Myw2ICs0Myw5IEBACiAjaW5j
bHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyLmgiCisjZW5kaWYKICNpbmNsdWRl
ICJXZWJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtODI0LDYgKzgyNywyNyBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRB
cmd1bWVudAogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7CisgICAgaWYgKCFtX3BhZ2UtPnBv
aW50ZXJMb2NrTWFuYWdlcigpLT5zdXBwb3J0c1BvaW50ZXJMb2NrKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIC8vIEZJWE1FIDogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSByZXF1ZXN0
IHBlcm1pc3Npb25zLgorICAgIHJldHVybiBtX3BhZ2UtPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5y
ZXF1ZXN0UG9pbnRlckxvY2soKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQ
b2ludGVyVW5sb2NrKCkKK3sKKyAgICBtX3BhZ2UtPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5yZXF1
ZXN0UG9pbnRlclVubG9jaygpOworfQorCitib29sIFdlYkNocm9tZUNsaWVudDo6aXNQb2ludGVy
TG9ja2VkKCkKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5wb2ludGVyTG9ja01hbmFnZXIoKS0+aXNQ
b2ludGVyTG9ja2VkKCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om5vdGlm
eVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50UmVjdCYgc2Nyb2xsZXJUaHVt
YikKIHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Tm90aWZ5U2Ny
b2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChzY3JvbGxlclRodW1iKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCA0ZjI4YmIzNzQ3MmZhYzFiOGYzZDdiODBmOTk4M2ZiMjM3ZWU3ODcyLi5iYmI5
N2M0YzlhMWRhNjUzYzY0MzE5YmYyMzZjNmNmYmZhZTQ0ZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTIwOCw2ICsyMDgsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVSUklERTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygp
IE9WRVJSSURFOworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBPVkVSUklERTsKKyAg
ICBib29sIGlzUG9pbnRlckxvY2tlZCgpIE9WRVJSSURFOworI2VuZGlmCisKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIE9WRVJSSURFOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggZWNjYjgzYzU3MGU5ZDIzNTVkNjUyMTFiN2IxOGNiZWVmMjk3ZWVmMC4uMzRhNTY2NWIw
NzIzMTc1YmI4MmZhOGE3ZWI1OGRlZDY3ZTk1OTczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzcsNiArNzcsMTAgQEAKICNpbmNsdWRl
ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlBsdWdJbkNsaWVudC5oIgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisj
aW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUG9pbnRlckxv
Y2tNYW5hZ2VyTWVzc2FnZXMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgog
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CkBAIC0xMTIsNiArMTE2LDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1
Z2luRG9jdW1lbnQuaD4KKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgPFdlYkNv
cmUvUG9pbnRlckxvY2tDb250cm9sbGVyLmg+CisjZW5kaWYKICNpbmNsdWRlIDxXZWJDb3JlL1By
aW50Q29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlbmRlckxheWVyLmg+CkBAIC00MDcsNiArNDE0LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQsIHRoaXMpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYlBvaW50ZXJMb2NrTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3BhZ2VJRCwgdGhpcyk7CisjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKICAgICB3ZWJQYWdlQ291
bnRlci5pbmNyZW1lbnQoKTsKQEAgLTQ0Myw3ICs0NTMsOSBAQCBXZWJQYWdlOjp+V2ViUGFnZSgp
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQpOwogI2VuZGlmCi0KKyNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQorICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZUlEKTsKKyNlbmRpZgogI2lmbmRlZiBOREVCVUcKICAgICB3ZWJQYWdlQ291bnRlci5kZWNy
ZW1lbnQoKTsKICNlbmRpZgpAQCAtNTI4LDYgKzU0MCwxMyBAQCB2b2lkIFdlYlBhZ2U6OmluaXRp
YWxpemVJbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdLQnVuZGxlUGFnZURp
YWdubwogICAgIG1fbG9nRGlhZ25vc3RpY01lc3NhZ2VDbGllbnQuaW5pdGlhbGl6ZShjbGllbnQp
OwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK3ZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6
ZUluamVjdGVkQnVuZGxlUG9pbnRlckxvY2tDbGllbnQoV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tD
bGllbnQqIGNsaWVudCkKK3sKKyAgICBtX3BvaW50ZXJMb2NrQ2xpZW50LmluaXRpYWxpemUoY2xp
ZW50KTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiBQYXNz
UmVmUHRyPFBsdWdpbj4gV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgSFRN
TFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYg
cGFyYW1ldGVycywgU3RyaW5nJiBuZXdNSU1FVHlwZSkKIHsKQEAgLTgyMCw2ICs4MzksOSBAQCB2
b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgbV9m
dWxsU2NyZWVuTWFuYWdlciA9IDA7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQor
ICAgIG1fcG9pbnRlckxvY2tNYW5hZ2VyID0gMDsKKyNlbmRpZgogCiAgICAgaWYgKG1fYWN0aXZl
UG9wdXBNZW51KSB7CiAgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51LT5kaXNjb25uZWN0RnJvbVBh
Z2UoKTsKQEAgLTE2NDcsNiArMTY2OSwyNyBAQCBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZUV2ZW50
KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIFdlYlBhZ2UqIHBhZ2UsIGJvbwogCiAg
ICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCA9IHBsYXRmb3JtKG1vdXNl
RXZlbnQpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBpZiAocGFnZS0+cG9pbnRl
ckxvY2tNYW5hZ2VyKCktPmlzUG9pbnRlckxvY2tlZCgpKSB7CisgICAgICAgIEF0b21pY1N0cmlu
ZyBldmVudFR5cGU7CisgICAgICAgIHN3aXRjaCAobW91c2VFdmVudC50eXBlKCkpIHsKKyAgICAg
ICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpNb3VzZURvd246CisgICAgICAgICAgICBldmVudFR5cGUg
PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpNb3VzZVVwOgorICAgICAgICAgICAgZXZlbnRUeXBlID0g
ZXZlbnROYW1lcygpLm1vdXNldXBFdmVudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFdlYk1vdXNlRXZlbnQ6Ok1vdXNlTW92ZToKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IGV2
ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAg
ICAgICAgcGFnZS0+Y29yZVBhZ2UoKS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCktPmRpc3BhdGNo
TG9ja2VkTW91c2VFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQsIGV2ZW50VHlwZSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgorCiAgICAgc3dpdGNoIChwbGF0Zm9ybU1vdXNl
RXZlbnQudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2Vk
OiB7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yNTk4LDYgKzI2NDEsMTUgQEAgV2Vi
RnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK1dlYlBvaW50ZXJMb2NrTWFuYWdlciogV2Vi
UGFnZTo6cG9pbnRlckxvY2tNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcG9pbnRlckxvY2tNYW5h
Z2VyKQorICAgICAgICBtX3BvaW50ZXJMb2NrTWFuYWdlciA9IFdlYlBvaW50ZXJMb2NrTWFuYWdl
cjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX3BvaW50ZXJMb2NrTWFuYWdlci5nZXQoKTsK
K30KKyNlbmRpZgorCiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIFdlYlBh
Z2U6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpCiB7CiAgICAgaWYgKG1f
bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQpAQCAtMzE2Nyw2ICszMjE5LDEz
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
KyAgICAgICAgcG9pbnRlckxvY2tNYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBkaWRS
ZWNlaXZlV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDdiZGYwNjljYzBiMDA2
MTNiNjE4ZDE4ZjgwZDQzMGYyZWU1Yzg5NDEuLjAzN2YxNDIxNDRlODcxNzliNzk0MjlkYjliNGU3
ZDY1MDEwNGE5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtNDAsNiArNDAsOSBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgiCisjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0Ns
aWVudC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50
LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmgiCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCIKQEAgLTE0OSw2ICsxNTIsNyBA
QCBjbGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50OwogY2xh
c3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsK
K2NsYXNzIFdlYlBvaW50ZXJMb2NrTWFuYWdlcjsKIGNsYXNzIFdlYlBvcHVwTWVudTsKIGNsYXNz
IFdlYldoZWVsRXZlbnQ7CiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKQEAgLTIwMiw2ICsyMDYs
MTAgQEAgcHVibGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdl
cigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIFdlYlBvaW50ZXJM
b2NrTWFuYWdlciogcG9pbnRlckxvY2tNYW5hZ2VyKCk7CisjZW5kaWYKKwogICAgIC8vIC0tIENh
bGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNp
emUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQg
YmUgYmVuZWZpY2lhbD8KICAgICB2b2lkIGRyYXdSZWN0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKQEAgLTI1OCw2ICsyNjYsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdLQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQqKTsKICNlbmRpZgogICAgIHZvaWQgaW5pdGlhbGl6ZUlu
amVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQqKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHZvaWQgaW5p
dGlhbGl6ZUluamVjdGVkQnVuZGxlUG9pbnRlckxvY2tDbGllbnQoV0tCdW5kbGVQYWdlUG9pbnRl
ckxvY2tDbGllbnQqKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAg
SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQmIGluamVjdGVkQnVuZGxlQ29udGV4
dE1lbnVDbGllbnQoKSB7IHJldHVybiBtX2NvbnRleHRNZW51Q2xpZW50OyB9CkBAIC0yNzIsNiAr
MjgzLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBJbmplY3Rl
ZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50JiBpbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGll
bnQoKSB7IHJldHVybiBtX2Z1bGxTY3JlZW5DbGllbnQ7IH0KICNlbmRpZgorI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCisgICAgSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQmIGlu
amVjdGVkQnVuZGxlUG9pbnRlckxvY2tDbGllbnQoKSB7IHJldHVybiBtX3BvaW50ZXJMb2NrQ2xp
ZW50OyB9CisjZW5kaWYKIAogICAgIHZvaWQgc2V0VW5kZXJsYXlQYWdlKFBhc3NSZWZQdHI8V2Vi
UGFnZT4gdW5kZXJsYXlQYWdlKSB7IG1fdW5kZXJsYXlQYWdlID0gdW5kZXJsYXlQYWdlOyB9CiAK
QEAgLTk1MCw2ICs5NjQsOSBAQCBwcml2YXRlOgogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnQgbV9mdWxsU2NyZWVuQ2xpZW50OwogI2VuZGlmCiAgICAgSW5qZWN0ZWRCdW5k
bGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgbV9sb2dEaWFnbm9zdGljTWVzc2FnZUNsaWVu
dDsKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIEluamVjdGVkQnVuZGxlUGFnZVBvaW50
ZXJMb2NrQ2xpZW50IG1fcG9pbnRlckxvY2tDbGllbnQ7CisjZW5kaWYKIAogICAgIEZpbmRDb250
cm9sbGVyIG1fZmluZENvbnRyb2xsZXI7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgUExB
VEZPUk0oUVQpCkBAIC05NjUsNiArOTgyLDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBtX2Z1bGxTY3JlZW5N
YW5hZ2VyOwogI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBSZWZQdHI8V2Vi
UG9pbnRlckxvY2tNYW5hZ2VyPiBtX3BvaW50ZXJMb2NrTWFuYWdlcjsKKyNlbmRpZgogICAgIFJl
ZlB0cjxXZWJQb3B1cE1lbnU+IG1fYWN0aXZlUG9wdXBNZW51OwogI2lmIEVOQUJMRShDT05URVhU
X01FTlVTKQogICAgIFJlZlB0cjxXZWJDb250ZXh0TWVudT4gbV9jb250ZXh0TWVudTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206240</attachid>
            <date>2013-07-08 06:55:19 -0700</date>
            <delta_ts>2013-07-15 04:27:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118132-20130708175238.patch</filename>
            <type>text/plain</type>
            <size>55429</size>
            <attacher name="Stanislav Pikulik">stanislav.pikulik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI5ZGM5ODY2ZTBlYTMz
Mzc4MmM3YWI1YzdhYjUwMDBlYzQ2ZmRmYy4uNWViYzAzOGEyYzdlYWY2ZWJmMjY3NmQ3ZjUwOGEz
YTc0ZmQ5ZDhmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA3LTA4ICBTdGFu
aXNsYXYgUGlrdWxpayAgPHN0YW5pc2xhdi5waWt1bGlrQGxnZS5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIEhhbmRsaW5nIFBvaW50ZXIgTG9jayByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MTMyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAg
ICAgICAgaW5jbHVkZSBQb2ludGVyTG9ja0NvbnRyb2xsZXIgZmlsZXMKKworICAgICAgICAqIFRh
cmdldC5wcmk6CisKIDIwMTMtMDctMDggIEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgdmlicmF0ZSBmdW5jdGlvbiBoYXZlIHRvIHJldHVybiBib29sZWFu
IHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGUwODc5ODAxZmIyOWE2NTE2YzdkMTVmZjgzOTFhYzBmNTA5
ZDRlYWQuLjc1MDMyMDljODYzNzAyMzk0MDJkZWQ4YTliYjBiZmRlOTk2MzkzNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw4NyBAQAorMjAxMy0wNy0wOCAgU3RhbmlzbGF2IFBpa3VsaWsgIDxzdGFu
aXNsYXYucGlrdWxpa0BsZ2UuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBIYW5kbGluZyBQb2lu
dGVyIExvY2sgcmVxdWVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExODEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGFkZCBXZWJQb2ludGVyTG9ja01hbmFnZXIgdG8gbWFuZ2UgUG9pbnRlckxvY2sg
c3RhdGUgb24gV2ViUHJvY2VzcyBzaWRlCisgICAgICAgIGFkZCBXZWJQb2ludGVyTG9ja01hbmFn
ZXJQcm94eSB0byBtYW5hZ2UgUG9pbnRlckxvY2sgc3RhdGUgb24gVUlQcm9jZXNzIHNpZGUKKyAg
ICAgICAgYWRkIEluamVjdGVkQnVuZGxlIGNsaWVudCB0byBXZWJQb2ludGVyTG9ja01hbmFnZXIg
dG8gc2V0dXAgY3VzdG9tIGJlaGF2aW9yCisgICAgICAgIGFkZCBDIEFQSSB0byByZWZlciBXZWJQ
b2ludGVyTG9ja01hbmFnZXIgbWV0aG9kcworICAgICAgICBhZGQgdHJhbnNmZXIgbW91c2UgY3Vy
c29yIG1vdmVtZW50IGRlbHRhCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAg
ICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQ6OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAg
ICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBv
aW50ZXJMb2NrTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBv
aW50ZXJMb2NrTWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2lu
dGVyTG9ja01hbmFnZXJQcm94eTo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6fldlYlBvaW50ZXJMb2NrTWFu
YWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6
OnNldFdlYlZpZXcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94
eTo6aXNQb2ludGVyTG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5h
Z2VyUHJveHk6OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50
ZXJMb2NrTWFuYWdlclByb3h5OjpyZXF1ZXN0UG9pbnRlclVubG9jayk6CisgICAgICAgICogVUlQ
cm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Lmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL3F0
L1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OmRpZEFjcXVpcmVQb2ludGVyTG9jayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpkaWROb3RBY3F1aXJl
UG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94
eTo6ZGlkTG9zZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwb2ludGVyTG9ja01hbmFnZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQyLnByaToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6Cisg
ICAgICAgIChXS0J1bmRsZVBhZ2VTZXRQb2ludGVyTG9ja0NsaWVudCk6CisgICAgICAgIChXS0J1
bmRsZVBhZ2VTdGFydFJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXS0J1bmRsZVBhZ2VT
dGFydFJlcXVlc3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZUlzUG9pbnRl
ckxvY2tlZCk6CisgICAgICAgIChXS0J1bmRsZVBhZ2VEaWRBY3F1aXJlUG9pbnRlckxvY2spOgor
ICAgICAgICAoV0tCdW5kbGVQYWdlRGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKToKKyAgICAgICAg
KFdLQnVuZGxlUGFnZURpZExvc2VQb2ludGVyTG9jayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xp
ZW50OjpzdXBwb3J0c1BvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVQYWdlUG9pbnRlckxvY2tDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50OjpyZXF1ZXN0UG9pbnRl
clVubG9jayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBvaW50ZXJMb2NrTWFuYWdlcjo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjp+V2ViUG9pbnRlckxvY2tNYW5hZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzdXBwb3J0c1BvaW50ZXJM
b2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpyZXF1ZXN0UG9p
bnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OnJlcXVl
c3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2Vy
Ojppc1BvaW50ZXJMb2NrZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFn
ZXI6OmRpZEFjcXVpcmVQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJM
b2NrTWFuYWdlcjo6ZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpkaWRMb3NlUG9pbnRlckxvY2spOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OnN0YXJ0UmVxdWVzdFBvaW50ZXJMb2NrKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzdGFydFJlcXVlc3RQb2ludGVy
VW5sb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlcjo6c2Vj
dXJpdHlPcmlnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRl
ckxvY2tNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUG9pbnRlckxvY2sv
V2ViUG9pbnRlckxvY2tNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9jayk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6aXNQb2ludGVyTG9ja2VkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFn
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6On5XZWJQYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUG9pbnRlckxvY2tDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OmhhbmRs
ZU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyTG9ja01hbmFn
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aW5qZWN0ZWRCdW5kbGVQb2ludGVyTG9ja0NsaWVudCk6CisKIDIwMTMtMDctMDcgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
IFJ1bnRpbWUgY3JpdGljYWwgd2FybmluZyB3aGVuIHVubG9hZGluZyBhIG1vZHVsZSB0aGF0IGZh
aWxlZCB0byBsb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAzNWViNjU0NmJlMDVkODM3N2ZlY2FlMjE0OGNk
Y2FkYmY0NmJjYmJhLi5mMzI1ZmNkMzU4MTI4ODc4Yjk4ZWRmYzAyNTQ4YmMzMDZiM2EzMDc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTk0MSw2ICs5NDEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL1Bl
cmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwIFwKKyAgICBwYWdlL1Bv
aW50ZXJMb2NrQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvUHJpbnRDb250ZXh0LmNwcCBcCiAg
ICAgcGFnZS9TY3JlZW4uY3BwIFwKICAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb25zdHJh
aW50cy5jcHAgXApAQCAtMjA5Nyw2ICsyMDk4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9Q
YWdlVGhyb3R0bGVyLmggXAogICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIFwKICAgICBw
YWdlL1BsdWdJbkNsaWVudC5oIFwKKyAgICBwYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5oIFwK
ICAgICBwYWdlL1BvcHVwT3BlbmluZ09ic2VydmVyLmggXAogICAgIHBhZ2UvUHJpbnRDb250ZXh0
LmggXAogICAgIHBhZ2UvU2NyZWVuLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVy
aXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4
IGRjMTdmYWFhYzBiOWNjZmY4MjhiNGJjZDc2MTRiYmFhNjNmMWRkOWMuLjVhYTdiM2QxZDc2NzRl
N2Y1MThiYTI0ZWQzMjY1MTllN2E5N2E5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rl
cml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkK
QEAgLTQ4LDYgKzQ4LDcgQEAgVlBBVEggPSBcCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBc
CiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMg
XAorICAgIFdlYlByb2Nlc3MvUG9pbnRlckxvY2sgXAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VD
YWNoZSBcCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0IFwKQEAgLTU5LDYgKzYwLDcgQEAgVlBBVEggPSBcCiAgICAgVUlQcm9jZXNzL0Rvd25s
b2FkcyBcCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogICAgIFVJUHJvY2Vzcy9QbHVn
aW5zIFwKKyAgICBVSVByb2Nlc3MvUG9pbnRlckxvY2sgXAogICAgIFVJUHJvY2Vzcy9TdG9yYWdl
IFwKICAgICBTaGFyZWQgXAogICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbiBcCkBAIC0xMDAsNiAr
MTAyLDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gXAog
ICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYlBvaW50
ZXJMb2NrTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKKyAgICBXZWJQb2ludGVyTG9ja01hbmFn
ZXIubWVzc2FnZXMuaW4gXAogICAgIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5p
biBcCiAgICAgRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4gXAogICAgIFdlYkluc3BlY3Rvci5tZXNz
YWdlcy5pbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252
ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3Bw
CmluZGV4IDgxYWY3ZWIyNzAyZTY0MDYyMWUyOGNiYTc1MDhhNjgzNmNlNDM2ZjYuLjlmMWU1N2Jm
NzMxZWU1OGUzZjJlNDhjYTRmZDU5NzMzMjk2ZDRlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCkBAIC04Myw2ICs4MywxMCBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSB3ZWJFdmVudC5nbG9iYWxQb3NpdGlvbigpOwogICAg
ICAgICBtX2NsaWNrQ291bnQgPSB3ZWJFdmVudC5jbGlja0NvdW50KCk7CiAKKyNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQorICAgICAgICBtX21vdmVtZW50RGVsdGEgPSBXZWJDb3JlOjpJbnRQb2lu
dCh3ZWJFdmVudC5kZWx0YVgoKSwgd2ViRXZlbnQuZGVsdGFZKCkpOworI2VuZGlmCisKICAgICAg
ICAgbV9tb2RpZmllckZsYWdzID0gMDsKICAgICAgICAgaWYgKHdlYkV2ZW50LnNoaWZ0S2V5KCkp
CiAgICAgICAgICAgICBtX21vZGlmaWVyRmxhZ3MgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkKaW5kZXggZmU2MzM2YTEwMTU2M2YxYmUxNmQ1YjBkODE3MzQ4ZDU3ZTU1ZDQzNy4uNjM1
OWE3NGMzZDkyYTA0NjRlNGU1YTNiMjdkMTNkNmQwMGJkNDcyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0y
NzksNiArMjc5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0
TWVudUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50
ZXJMb2NrTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmggXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBcCkBAIC0zMTYsNiArMzE3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggXAorICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCBcCiAgICAg
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIFwK
ICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQu
aCBcCkBAIC0zMzksNiArMzQxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5LmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxv
Y2tNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNs
aWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oIFwKQEAg
LTU4OSw2ICs1OTIsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9XZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVn
aW5Qcm9jZXNzUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2lu
SW5mb1N0b3JlVW5peC5jcHAgXAorICAgIFVJUHJvY2Vzcy9Qb2ludGVyTG9jay9xdC9XZWJQb2lu
dGVyTG9ja01hbmFnZXJQcm94eVF0LmNwcCBcCisgICAgVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dl
YlBvaW50ZXJMb2NrTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwIFwKICAg
ICBVSVByb2Nlc3MvU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAgXApAQCAtNjg5LDYg
KzY5NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgXAogICAgIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBc
CisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVy
TG9ja0NsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwIFwKICAgICBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCBcCkBAIC03
MTUsNiArNzIxLDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb3h5LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlci5jcHAgXAorICAgIFdlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tN
YW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAg
XAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAgXAogICAgIFdlYlBy
b2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVy
TG9ja01hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE0MWJiMzE0ODU4ZTJjZWU2MTc2ZWJm
NjlkZjRhZTZmYTk5NjZkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCAr
MSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5LmgiCisKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1
ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUG9pbnRl
ckxvY2tNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFz
c1JlZlB0cjxXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eT4gV2ViUG9pbnRlckxvY2tNYW5hZ2Vy
UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eShwYWdlKSk7Cit9CisKK1dlYlBvaW50ZXJM
b2NrTWFuYWdlclByb3h5OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eShXZWJQYWdlUHJveHkq
IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKKyAgICAsIG1fd2ViVmlldygwKQorICAgICwgbV9p
c1BvaW50ZXJMb2NrZWQoZmFsc2UpCit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdl
LT5wcm9jZXNzKCktPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUG9pbnRlckxvY2tN
YW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQoKSwgdGhp
cyk7Cit9CisKK1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Ojp+V2ViUG9pbnRlckxvY2tNYW5h
Z2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpzZXRX
ZWJWaWV3KFBsYXRmb3JtV2ViVmlldyogd2ViVmlldykKK3sKKyAgICBtX3dlYlZpZXcgPSB3ZWJW
aWV3OworfQorCitib29sIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Ojppc1BvaW50ZXJMb2Nr
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lzUG9pbnRlckxvY2tlZDsKK30KKwordm9pZCBX
ZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKK3sKKyAgICBp
ZiAobV9wYWdlICYmIG1fcGFnZS0+aXNWYWxpZCgpKQorICAgICAgICBkaWRBY3F1aXJlUG9pbnRl
ckxvY2soKTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6cmVxdWVzdFBv
aW50ZXJVbmxvY2soKQoreworICAgIGlmIChtX3BhZ2UgJiYgbV9wYWdlLT5pc1ZhbGlkKCkpCisg
ICAgICAgIGRpZExvc2VQb2ludGVyTG9jaygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tN
YW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzdjMzM5Mzg2ODk4ZmUwMTA5NmVhM2QxMGY2NjRl
NGZlNTYyMjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bv
aW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw5MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
TEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQb2ludGVy
TG9ja01hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5X2gK
KworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCisjaWYgUExBVEZPUk0oTUFDKQorT0JKQ19DTEFTUyBXS1ZpZXc7CisjZWxpZiBQTEFU
Rk9STShHVEspCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2UgV2ViS2l0V2ViVmll
d0Jhc2U7CisjZWxpZiBQTEFURk9STShRVCkKK2NsYXNzIFFRdWlja1dlYlZpZXc7CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBQTEFURk9STShNQUMpCit0eXBlZGVmIFdLVmll
dyBQbGF0Zm9ybVdlYlZpZXc7CisjZWxpZiBQTEFURk9STShRVCkKK3R5cGVkZWYgUVF1aWNrV2Vi
VmlldyBQbGF0Zm9ybVdlYlZpZXc7CisjZWxpZiBQTEFURk9STShHVEspCit0eXBlZGVmIFdlYktp
dFdlYlZpZXdCYXNlIFBsYXRmb3JtV2ViVmlldzsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKK3R5cGVk
ZWYgRXZhc19PYmplY3QgUGxhdGZvcm1XZWJWaWV3OworI2VuZGlmCisKK2NsYXNzIFdlYlBhZ2VQ
cm94eTsKKworY2xhc3MgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkgOiBwdWJsaWMgUmVmQ291
bnRlZDxXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eT4sIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBvaW50ZXJMb2Nr
TWFuYWdlclByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5Kik7CisgICAgdmlydHVhbCB+V2ViUG9p
bnRlckxvY2tNYW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQgc2V0V2ViVmlldyhQbGF0Zm9ybVdl
YlZpZXcqKTsKKworICAgIGJvb2wgaXNQb2ludGVyTG9ja2VkKCkgY29uc3Q7CisgICAgdm9pZCBk
aWRBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICB2b2lkIGRpZE5vdEFjcXVpcmVQb2ludGVyTG9j
aygpOworICAgIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CisKKyAgICB2b2lkIHJlcXVlc3RQ
b2ludGVyTG9jaygpOworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKKworcHJvdGVj
dGVkOgorCisgICAgZXhwbGljaXQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkoV2ViUGFnZVBy
b3h5Kik7CisKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcq
IG1fd2ViVmlldzsKKyAgICBib29sIG1faXNQb2ludGVyTG9ja2VkOworCitwcml2YXRlOgorICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2VuZGlmIC8vIFdlYlBv
aW50ZXJMb2NrTWFuYWdlclByb3h5X2gKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYxMGZkOWIzMDU4NThkNzYwNzA1
MjMyMTQ0YzJlNmI5MGE1N2I4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDMxIEBACisjCisjIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmlj
cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisjCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorbWVzc2FnZXMgLT4gV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHkgeworICAgIFJlcXVlc3RQb2ludGVyTG9jaygpCisgICAg
UmVxdWVzdFBvaW50ZXJVbmxvY2soKQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svcXQvV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHlR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svcXQvV2ViUG9pbnRl
ckxvY2tNYW5hZ2VyUHJveHlRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMzZDQ0YTVjOGRhYzI1NjdhYzMw
YTc0YTEwN2E1YjUyMjA1NGJiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Qb2ludGVyTG9jay9xdC9XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eVF0LmNwcApA
QCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNz
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHku
aCIKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJXZWJDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3ZvaWQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OmRpZEFjcXVpcmVQb2ludGVyTG9jaygp
Cit7CisgICAgLy8gRklYTUUgOiBQbGF0Zm9ybS1kZXBlbmRlbnQgbm90aWZpY2F0aW9uLiBTb21l
dGhpbmsgbGlrZSB0aGF0CisgICAgLy8gaWYgKG1fd2ViVmlldykKKyAgICAvLyAgICAgZW1pdCBt
X3dlYlZpZXctPmV4cGVyaW1lbnRhbCgpLT5wb2ludGVyTG9ja1JlcXVlc3RlZCgpOworCisgICAg
bV9pc1BvaW50ZXJMb2NrZWQgPSB0cnVlOworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIG1fcGFn
ZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OkRpZEFj
cXVpcmVQb2ludGVyTG9jaygpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwordm9pZCBXZWJQb2lu
dGVyTG9ja01hbmFnZXJQcm94eTo6ZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBt
X2lzUG9pbnRlckxvY2tlZCA9IGZhbHNlOworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIG1fcGFn
ZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OkRpZE5v
dEFjcXVpcmVQb2ludGVyTG9jaygpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwordm9pZCBXZWJQ
b2ludGVyTG9ja01hbmFnZXJQcm94eTo6ZGlkTG9zZVBvaW50ZXJMb2NrKCkKK3sKKyAgICAvLyBG
SVhNRSA6IFBsYXRmb3JtLWRlcGVuZGVudCBub3RpZmljYXRpb24uIFNvbWV0aGluayBsaWtlIHRo
YXQKKyAgICAvLyBpZiAobV93ZWJWaWV3KQorICAgIC8vICAgICBlbWl0IG1fd2ViVmlldy0+ZXhw
ZXJpbWVudGFsKCktPnBvaW50ZXJVbmxvY2tSZXF1ZXN0ZWQoKTsKKworICAgIG1faXNQb2ludGVy
TG9ja2VkID0gZmFsc2U7CisgICAgaWYgIChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+cHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OkRpZExvc2VQb2ludGVy
TG9jaygpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzQwZGY5MTFiODAwNWJmODllZTg1NzkyYjBlOGRh
MGI3Y2RjNWIyMC4uODE5NjUzNTU3OGFhZDZiY2UzNTQxZTI0MDg1NzZjNDNhMzIxNWE1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDEw
IEBACiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwRGF0YS5oIgogI2luY2x1ZGUgIldlYlBhZ2VNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5oIgorI2lu
Y2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIldlYlBvcHVwSXRlbS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKQEAgLTMzOCw2ICszNDIsOSBAQCBXZWJQYWdlUHJv
eHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNzUmVmUHRyPFdlYlBy
b2Nlc3NQcm94eT4gcAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBtX2Z1bGxTY3Jl
ZW5NYW5hZ2VyID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBtX3BvaW50ZXJMb2NrTWFuYWdlciA9
IFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcyk7CisjZW5kaWYKICNpZiBF
TkFCTEUoVklCUkFUSU9OKQogICAgIG1fdmlicmF0aW9uID0gV2ViVmlicmF0aW9uUHJveHk6OmNy
ZWF0ZSh0aGlzKTsKICNlbmRpZgpAQCAtNDkwLDYgKzQ5Nyw5IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpyZWF0dGFjaFRvV2ViUHJvY2VzcygpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IG1fZnVsbFNjcmVlbk1hbmFnZXIgPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUo
dGhpcyk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIG1fcG9pbnRlckxv
Y2tNYW5hZ2VyID0gV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyNl
bmRpZgogCiAgICAgaW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIApAQCAtMzA1MCw2ICszMDYwLDEzIEBA
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6ZnVsbFNjcmVlbk1hbmFn
ZXIoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorV2ViUG9pbnRlckxv
Y2tNYW5hZ2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6cG9pbnRlckxvY2tNYW5hZ2VyKCkKK3sKKyAg
ICByZXR1cm4gbV9wb2ludGVyTG9ja01hbmFnZXIuZ2V0KCk7Cit9CisjZW5kaWYKKwogLy8gQmFj
a0ZvcndhcmRMaXN0CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZEFkZEl0ZW0odWlu
dDY0X3QgaXRlbUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGY1N2I2NTM3N2E1YmFmM2Q3MDQyMjFhNzhkYTkzOTMwZWYyNzk1MDEuLjNmODFiNDc1YmZlZDQx
NWVjZjBkNzU5YjU0NzBlYjY3Y2JlY2QxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTE0Niw2ICsxNDYsNyBAQCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50Owog
Y2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CitjbGFzcyBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94
eTsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIGNsYXNzIFdlYlVSTFJlcXVlc3Q7CiBjbGFzcyBX
ZWJXaGVlbEV2ZW50OwpAQCAtMjY0LDYgKzI2NSwxMCBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eSogZnVsbFNjcmVlbk1hbmFnZXIoKTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKKyAgICBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eSogcG9pbnRl
ckxvY2tNYW5hZ2VyKCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAg
IHZvaWQgaW5pdGlhbGl6ZUNvbnRleHRNZW51Q2xpZW50KGNvbnN0IFdLUGFnZUNvbnRleHRNZW51
Q2xpZW50Kik7CiAjZW5kaWYKQEAgLTEwOTEsNiArMTA5NiwxMCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIFJlZlB0cjxXZWJQb2ludGVyTG9j
a01hbmFnZXJQcm94eT4gbV9wb2ludGVyTG9ja01hbmFnZXI7CisjZW5kaWYKKwogI2lmIEVOQUJM
RShWSUJSQVRJT04pCiAgICAgUmVmUHRyPFdlYlZpYnJhdGlvblByb3h5PiBtX3ZpYnJhdGlvbjsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnByaQppbmRleCBhMWRhMDQ1MWFjNWFmOGYxZjIzZDE3ZDQzYzA1ZGFl
OTE5OTY2ZDhmLi5kOTQ5MmUyZTc0MTUwMzEwNmI0MWZkMjFhYjQ3OWY4NWJlN2IyZTMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnByaQpAQCAtNDAsNiArNDAsNyBAQCBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VS
Q0VfRElSL1VJUHJvY2Vzcy9MYXVuY2hlciBcCiAgICAgJCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zIFwKICAgICAkJFNPVVJDRV9ESVIvVUlQcm9jZXNzL1BsdWdpbnMgXAorICAg
ICQkU09VUkNFX0RJUi9VSVByb2Nlc3MvUG9pbnRlckxvY2sgXAogICAgICQkU09VUkNFX0RJUi9V
SVByb2Nlc3MvU3RvcmFnZSBcCiAgICAgJCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy9xdCBcCiAgICAg
JCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy90ZXhtYXAgXApAQCAtNTksNiArNjAsNyBAQCBJTkNMVURF
UEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCiAg
ICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSBcCisgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3Mv
UG9pbnRlckxvY2sgXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUg
XAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL1N0b3JhZ2UgXAogICAgICQkU09VUkNFX0RJ
Ui9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNw
cAppbmRleCBkNDVlNDhlODhkYWMxNDdjMGFmYmVjYzc2NTFhMDQ2ZjIzODNhYzIwLi41MmEyMTUx
YzY0ZDJmNWEwOTU4OWEzYzA5NjAxNzAzZTZiNjM1NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuY3BwCkBAIC00MSw2ICs0MSw5IEBACiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlci5oIgor
I2VuZGlmCiAjaW5jbHVkZSAiV2ViUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJXZWJSZW5kZXJP
YmplY3QuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKQEAgLTUxNiwzICs1MTksNTYgQEAgdm9p
ZCBXS0J1bmRsZVBhZ2VTdG9wRXh0ZW5kaW5nSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lv
bihXS0J1bmRsZVBhZ2VSZWYgcGEKIHsKICAgICB0b0ltcGwocGFnZVJlZiktPnN0b3BFeHRlbmRp
bmdJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKHRva2VuKTsKIH0KKwordm9pZCBXS0J1
bmRsZVBhZ2VTZXRQb2ludGVyTG9ja0NsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tC
dW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQqIHdrQ2xpZW50KQoreworI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCisgICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQ
b2ludGVyTG9ja0NsaWVudCh3a0NsaWVudCk7CisjZW5kaWYKK30KKworYm9vbCBXS0J1bmRsZVBh
Z2VTdGFydFJlcXVlc3RQb2ludGVyTG9jayhXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKK3sKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnBvaW50
ZXJMb2NrTWFuYWdlcigpLT5zdGFydFJlcXVlc3RQb2ludGVyTG9jaygpOworI2Vsc2UKKyAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VTdGFydFJlcXVlc3RQ
b2ludGVyVW5sb2NrKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQoreworI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cG9pbnRlckxvY2tNYW5hZ2Vy
KCktPnN0YXJ0UmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKKyNlbmRpZgorfQorCitib29sIFdLQnVu
ZGxlUGFnZUlzUG9pbnRlckxvY2tlZChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKK3sKKyNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnBvaW50ZXJM
b2NrTWFuYWdlcigpLT5pc1BvaW50ZXJMb2NrZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlRGlkQWNxdWlyZVBvaW50ZXJMb2NrKFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmKQoreworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAg
dG9JbXBsKHBhZ2VSZWYpLT5wb2ludGVyTG9ja01hbmFnZXIoKS0+ZGlkQWNxdWlyZVBvaW50ZXJM
b2NrKCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWROb3RBY3F1aXJlUG9pbnRl
ckxvY2soV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCit7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKKyAgICB0b0ltcGwocGFnZVJlZiktPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5kaWROb3RBY3F1
aXJlUG9pbnRlckxvY2soKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxlUGFnZURpZExvc2VQ
b2ludGVyTG9jayhXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKK3sKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQorICAgIHRvSW1wbChwYWdlUmVmKS0+cG9pbnRlckxvY2tNYW5hZ2VyKCktPmRpZExv
c2VQb2ludGVyTG9jaygpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRl
eCAxMDNmNDc4YTEyMzVjOGQ3NDljMjQ2ZDQwNmI4MDJhODllN2Y5NTExLi5lNGIyNTY0NmRmNzg1
OWFlZTczNjk3NTFlZjE1NDM1MmFiODg2YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgK
QEAgLTQwMyw2ICs0MDMsMjQgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50OwogCiBlbnVtIHsga1dLQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnRDdXJyZW50VmVyc2lvbiA9IDEgfTsKIAorLy8gUG9pbnRlciBM
b2NrIGNsaWVudAordHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU3VwcG9ydHNQb2ludGVyTG9j
aykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwordHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlUmVx
dWVzdFBvaW50ZXJMb2NrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7Cit0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VSZXF1ZXN0UG9pbnRlclVubG9jaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwor
CitzdHJ1Y3QgV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQgeworICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisKKyAgICAvLyBWZXJzaW9uIDA6
CisgICAgV0tCdW5kbGVQYWdlU3VwcG9ydHNQb2ludGVyTG9jayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdXBwb3J0c1BvaW50ZXJMb2NrOworICAgIFdLQnVuZGxlUGFnZVJl
cXVlc3RQb2ludGVyTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdFBvaW50ZXJMb2NrOworICAgIFdLQnVuZGxlUGFnZVJlcXVlc3RQb2ludGVyVW5sb2NrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFBvaW50ZXJVbmxvY2s7Cit9
OwordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQgV0tCdW5kbGVQ
YWdlUG9pbnRlckxvY2tDbGllbnQ7CisKK2VudW0geyBrV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tD
bGllbnRDdXJyZW50VmVyc2lvbiA9IDAgfTsKKwogLy8gTWVzc2FnZVRyYWNlIGNsaWVudAogdHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjaykoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0
aW9uLCBXS1N0cmluZ1JlZiBzdWNjZXNzLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIApAQCAt
NDMxLDYgKzQ0OSw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldFBvbGljeUNsaWVu
dChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlUG9sCiBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZVBhZ2VTZXRVSUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdl
VUlDbGllbnQqIGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRGdWxsU2Ny
ZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0RGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50KiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9p
bnRlckxvY2tDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZVBvaW50ZXJM
b2NrQ2xpZW50KiBjbGllbnQpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVQYWdlR3JvdXBSZWYgV0tC
dW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBX
S0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSk7CkBAIC00NzIsNiArNDkxLDEzIEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZUxp
c3RlbkZvckxheW91dE1pbGVzdG9uZXMoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLTGF5CiAKIFdL
X0VYUE9SVCBXS0J1bmRsZUluc3BlY3RvclJlZiBXS0J1bmRsZVBhZ2VHZXRJbnNwZWN0b3IoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UpOwogCitXS19FWFBPUlQgYm9vbCBXS0J1bmRsZVBhZ2VTdGFydFJl
cXVlc3RQb2ludGVyTG9jayhXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CitXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZVBhZ2VTdGFydFJlcXVlc3RQb2ludGVyVW5sb2NrKFdLQnVuZGxlUGFnZVJlZiBwYWdl
KTsKK1dLX0VYUE9SVCBib29sIFdLQnVuZGxlUGFnZUlzUG9pbnRlckxvY2tlZChXS0J1bmRsZVBh
Z2VSZWYgcGFnZSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRBY3F1aXJlUG9pbnRl
ckxvY2soV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdl
RGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9S
VCB2b2lkIFdLQnVuZGxlUGFnZURpZExvc2VQb2ludGVyTG9jayhXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50
ZXJMb2NrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3
MGJhN2Y3YTMwMzc0YWY4NWE4NGRiNmRmOGQ1N2Q5N2IxZDA3MmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVBvaW50ZXJMb2NrQ2xpZW50LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklD
UyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxv
Y2tDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxl
QVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQ
b2ludGVyTG9ja01hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudDo6c3VwcG9y
dHNQb2ludGVyTG9jayhXZWJQYWdlICpwYWdlKQoreworICAgIGlmIChtX2NsaWVudC5zdXBwb3J0
c1BvaW50ZXJMb2NrKQorICAgICAgICByZXR1cm4gbV9jbGllbnQuc3VwcG9ydHNQb2ludGVyTG9j
ayh0b0FQSShwYWdlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgSW5qZWN0ZWRCdW5k
bGVQYWdlUG9pbnRlckxvY2tDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jayhXZWJQYWdlICpwYWdl
KQoreworICAgIGlmIChtX2NsaWVudC5yZXF1ZXN0UG9pbnRlckxvY2spCisgICAgICAgIHJldHVy
biBtX2NsaWVudC5yZXF1ZXN0UG9pbnRlckxvY2sodG9BUEkocGFnZSkpOworICAgIHJldHVybiBw
YWdlLT5wb2ludGVyTG9ja01hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0UG9pbnRlckxvY2soKTsKK30K
Kwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudDo6cmVxdWVzdFBvaW50
ZXJVbmxvY2soV2ViUGFnZSAqcGFnZSkKK3sKKyAgICBpZiAobV9jbGllbnQucmVxdWVzdFBvaW50
ZXJVbmxvY2spCisgICAgICAgIG1fY2xpZW50LnJlcXVlc3RQb2ludGVyVW5sb2NrKHRvQVBJKHBh
Z2UpKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5zdGFy
dFJlcXVlc3RQb2ludGVyVW5sb2NrKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9j
a0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNGUyM2YxNDMy
MzkxNDkwOGQxMzVjYmUxNGI3OGU4MzYwMjdkMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50
ZXJMb2NrQ2xpZW50LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNU
Uk9OSUNTIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVu
dF9oCisjZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50X2gKKworI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRl
ICJXS0J1bmRsZVBhZ2UuaCIKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBJ
bnRSZWN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xh
c3MgSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50
PFdLQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LCBrV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tD
bGllbnRDdXJyZW50VmVyc2lvbj4geworcHVibGljOgorICAgIGJvb2wgc3VwcG9ydHNQb2ludGVy
TG9jayhXZWJQYWdlKik7CisgICAgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soV2ViUGFnZSopOwor
ICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soV2ViUGFnZSopOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjZW5kaWYg
Ly8gSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9j
a01hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliZDBhOTk0YjEzMTM3OGZiNjlhYzNlNWM4YmIxOTYz
MGY1OTJjYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bv
aW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExH
IEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBMRyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXIuaCIKKworI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgi
CisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckxvY2tDb250cm9s
bGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGFzc1JlZlB0cjxXZWJQb2ludGVyTG9ja01hbmFnZXI+IFdlYlBvaW50ZXJMb2NrTWFuYWdl
cjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQ
b2ludGVyTG9ja01hbmFnZXIocGFnZSkpOworfQorCitXZWJQb2ludGVyTG9ja01hbmFnZXI6Oldl
YlBvaW50ZXJMb2NrTWFuYWdlcihXZWJQYWdlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCisg
ICAgLCBtX3BvaW50ZXJMb2NrZWQoZmFsc2UpCit7Cit9CisKK1dlYlBvaW50ZXJMb2NrTWFuYWdl
cjo6fldlYlBvaW50ZXJMb2NrTWFuYWdlcigpCit7Cit9CisKK2Jvb2wgV2ViUG9pbnRlckxvY2tN
YW5hZ2VyOjpzdXBwb3J0c1BvaW50ZXJMb2NrKCkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAg
ICByZXR1cm4gbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVBvaW50ZXJMb2NrQ2xpZW50KCkuc3VwcG9y
dHNQb2ludGVyTG9jayhtX3BhZ2UuZ2V0KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29s
IFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKK3sKKyAgICBpZiAo
bV9wYWdlKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVBvaW50ZXJMb2Nr
Q2xpZW50KCkucmVxdWVzdFBvaW50ZXJMb2NrKG1fcGFnZS5nZXQoKSk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6cmVxdWVzdFBvaW50ZXJVbmxv
Y2soKQoreworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVQ
b2ludGVyTG9ja0NsaWVudCgpLnJlcXVlc3RQb2ludGVyVW5sb2NrKG1fcGFnZS5nZXQoKSk7Cit9
CisKK2Jvb2wgV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjppc1BvaW50ZXJMb2NrZWQoKQoreworICAg
IHJldHVybiBtX3BhZ2UgJiYgbV9wYWdlLT5jb3JlUGFnZSgpLT5wb2ludGVyTG9ja0NvbnRyb2xs
ZXIoKS0+ZWxlbWVudCgpOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6ZGlkQWNx
dWlyZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAgICBtX3BhZ2UtPmNv
cmVQYWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLT5kaWRBY3F1aXJlUG9pbnRlckxvY2so
KTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja01hbmFnZXI6OmRpZE5vdEFjcXVpcmVQb2ludGVy
TG9jaygpCit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5w
b2ludGVyTG9ja0NvbnRyb2xsZXIoKS0+ZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCk7Cit9CisK
K3ZvaWQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpkaWRMb3NlUG9pbnRlckxvY2soKQoreworICAg
IGlmIChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+cG9pbnRlckxvY2tDb250
cm9sbGVyKCktPmRpZExvc2VQb2ludGVyTG9jaygpOworfQorCitib29sIFdlYlBvaW50ZXJMb2Nr
TWFuYWdlcjo6c3RhcnRSZXF1ZXN0UG9pbnRlckxvY2soKQoreworICAgIGlmIChtX3BhZ2UpCisg
ICAgICAgIHJldHVybiBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBvaW50ZXJMb2NrTWFuYWdl
clByb3h5OjpSZXF1ZXN0UG9pbnRlckxvY2soKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6c3RhcnRSZXF1ZXN0UG9pbnRlclVubG9jaygpCit7
CisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQb2lu
dGVyTG9ja01hbmFnZXJQcm94eTo6UmVxdWVzdFBvaW50ZXJVbmxvY2soKSk7Cit9CisKK3ZvaWQg
V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBkaWRSZWNlaXZlV2ViUG9pbnRlckxvY2tNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKK30KKworV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIFdlYlBvaW50ZXJMb2NrTWFuYWdl
cjo6c2VjdXJpdHlPcmlnaW4oKQoreworICAgIC8vIEZJWE1FIDogdGhpcyB2YWx1ZSBzaG91bGQg
YmUgb2J0YWluZWQgZnJvbSB0aGUgcG9pbnRlckxvY2tDb250cm9sbGVyKCkKKyAgICAvLyBvciBw
YXNzZWQgdG8gdGhlIHJlcXVlc3RQb2ludGVyTG9jaygpIG1ldGhvZAorICAgIHJldHVybiAwOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQT0lOVEVSX0xP
Q0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dl
YlBvaW50ZXJMb2NrTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVy
TG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDYzYjhiNjdiZjA2NDNl
MWVlYzY4MzFhYjdhNDNhMWI2NGJjMjkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIuaApAQCAtMCww
ICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYlBvaW50ZXJMb2NrTWFuYWdlcl9oCisjZGVmaW5lIFdlYlBvaW50ZXJMb2NrTWFuYWdlcl9o
CisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0
eU9yaWdpbkhhc2guaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2Ns
YXNzIE1lc3NhZ2VEZWNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UGFnZTsKKworY2xhc3MgV2ViUG9pbnRlckxvY2tNYW5hZ2VyIDogcHVibGljIFJlZkNvdW50ZWQ8
V2ViUG9pbnRlckxvY2tNYW5hZ2VyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViUG9pbnRlckxvY2tNYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHZpcnR1YWwgfldl
YlBvaW50ZXJMb2NrTWFuYWdlcigpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKworICAgIGJvb2wg
c3VwcG9ydHNQb2ludGVyTG9jaygpOworCisgICAgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soKTsK
KyAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisgICAgYm9vbCBpc1BvaW50ZXJMb2Nr
ZWQoKTsKKworICAgIHZvaWQgZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgdm9pZCBkaWRO
b3RBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOwor
CisgICAgYm9vbCBzdGFydFJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIHZvaWQgc3RhcnRSZXF1
ZXN0UG9pbnRlclVubG9jaygpOworCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXR5T3JpZ2luKCk7CisKK3Byb3RlY3RlZDoKKyAgICBXZWJQb2ludGVyTG9ja01hbmFnZXIoV2Vi
UGFnZSopOworCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUG9pbnRlckxvY2tNYW5hZ2VyTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKworICAg
IFJlZlB0cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgYm9vbCBtX3BvaW50ZXJMb2NrZWQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CisKKyNlbmRpZiAvLyBXZWJQb2ludGVyTG9ja01hbmFnZXJfaAorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9p
bnRlckxvY2tNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MDU1MmMwYjE5ZmJmODg4
YTIzMDM1MmVhMjMwY2Y1MjQ4ZWE4MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDMxIEBACisjCisjIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmlj
cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIExHIEVMRUNUUk9OSUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUExHIEVMRUNUUk9OSUNTUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyMKKworI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCittZXNzYWdlcyAtPiBXZWJQb2ludGVyTG9ja01hbmFnZXIgTGVnYWN5UmVjZWl2ZXIgewor
ICAgIERpZEFjcXVpcmVQb2ludGVyTG9jaygpCisgICAgRGlkTm90QWNxdWlyZVBvaW50ZXJMb2Nr
KCkKKyAgICBEaWRMb3NlUG9pbnRlckxvY2soKQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggY2UxNjAwNmRiNzRmMjBmOTcyNzRkNGViM2I1NGZmOGFlOGI4MGU4Yy4uYzQ4
YWNjNmFjNDkyZjQzYjU5MDZlMDE2MWVjMDNlMWViMzJhMzU5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtNDMsNiArNDMsOSBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRl
ICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIldlYlBvaW50ZXJM
b2NrTWFuYWdlci5oIgorI2VuZGlmCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCiAjaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTgy
NCw2ICs4MjcsMjcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnRQcm9w
ZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnQKICNlbmRpZgogfQogCisjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRl
ckxvY2soKQoreworICAgIGlmICghbV9wYWdlLT5wb2ludGVyTG9ja01hbmFnZXIoKS0+c3VwcG9y
dHNQb2ludGVyTG9jaygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBGSVhNRSA6
IFRoZXJlIHNob3VsZCBhbHNvIGJlIGEgcmVxdWVzdCBwZXJtaXNzaW9ucy4KKyAgICByZXR1cm4g
bV9wYWdlLT5wb2ludGVyTG9ja01hbmFnZXIoKS0+cmVxdWVzdFBvaW50ZXJMb2NrKCk7Cit9CisK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9jaygpCit7CisgICAgbV9w
YWdlLT5wb2ludGVyTG9ja01hbmFnZXIoKS0+cmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKK30KKwor
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OmlzUG9pbnRlckxvY2tlZCgpCit7CisgICAgcmV0dXJuIG1f
cGFnZS0+cG9pbnRlckxvY2tNYW5hZ2VyKCktPmlzUG9pbnRlckxvY2tlZCgpOworfQorI2VuZGlm
CisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5S
ZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyVGh1bWIpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3Qo
c2Nyb2xsZXJUaHVtYikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNGYyOGJiMzc0NzJmYWMx
YjhmM2Q3YjgwZjk5ODNmYjIzN2VlNzg3Mi4uYmJiOTdjNGM5YTFkYTY1M2M2NDMxOWJmMjM2YzZj
ZmJmYWU0NGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMDgsNiArMjA4LDEyIEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3Jl
OjpFbGVtZW50KikgT1ZFUlJJREU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CisgICAgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soKSBPVkVSUklERTsKKyAgICB2b2lkIHJlcXVl
c3RQb2ludGVyVW5sb2NrKCkgT1ZFUlJJREU7CisgICAgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSBP
VkVSUklERTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBt
YWtlRmlyc3RSZXNwb25kZXIoKSBPVkVSUklERTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE5MDQxNWM1ODA2MTM5ZTZlMGQx
ZTE1ZTA2ZTNiNzQwOGQwYjk1NjQuLjVmZDFjOThmNjU2MDY4ZGZhY2I4NzkxNjRjODQwN2JhOTk0
ZTRlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTc3LDYgKzc3LDEwIEBACiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQbHVnSW5DbGllbnQu
aCIKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFu
YWdlci5oIgorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlck1lc3NhZ2VzLmgiCisjZW5k
aWYKICNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0
b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtMTEyLDYgKzExNiw5IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CisjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5o
PgorI2VuZGlmCiAjaW5jbHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJMYXllci5oPgpAQCAtNDEw
LDYgKzQxNyw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlE
LCB0aGlzKTsKICNlbmRpZgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQb2ludGVyTG9ja01h
bmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQsIHRoaXMpOworI2VuZGlmCiAK
ICNpZm5kZWYgTkRFQlVHCiAgICAgd2ViUGFnZUNvdW50ZXIuaW5jcmVtZW50KCk7CkBAIC00NDYs
NyArNDU2LDkgQEAgV2ViUGFnZTo6fldlYlBhZ2UoKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlE
KTsKICNlbmRpZgotCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBvaW50ZXJMb2NrTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCk7CisjZW5kaWYKICNpZm5kZWYg
TkRFQlVHCiAgICAgd2ViUGFnZUNvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKQEAgLTUzMSw2
ICs1NDMsMTMgQEAgdm9pZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudChXS0J1bmRsZVBhZ2VEaWFnbm8KICAgICBtX2xvZ0RpYWdub3N0aWNN
ZXNzYWdlQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCit2b2lkIFdlYlBhZ2U6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBvaW50ZXJMb2Nr
Q2xpZW50KFdLQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50KiBjbGllbnQpCit7CisgICAgbV9w
b2ludGVyTG9ja0NsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisjZW5kaWYKKwogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogUGFzc1JlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNy
ZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FbGVt
ZW50LCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFN0cmluZyYgbmV3TUlN
RVR5cGUpCiB7CkBAIC04MjcsNiArODQ2LDkgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSAwOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBtX3BvaW50ZXJMb2NrTWFuYWdlciA9
IDA7CisjZW5kaWYKIAogICAgIGlmIChtX2FjdGl2ZVBvcHVwTWVudSkgewogICAgICAgICBtX2Fj
dGl2ZVBvcHVwTWVudS0+ZGlzY29ubmVjdEZyb21QYWdlKCk7CkBAIC0xNjU0LDYgKzE2NzYsMjcg
QEAgc3RhdGljIGJvb2wgaGFuZGxlTW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3Vz
ZUV2ZW50LCBXZWJQYWdlKiBwYWdlLCBib28KIAogICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0
Zm9ybU1vdXNlRXZlbnQgPSBwbGF0Zm9ybShtb3VzZUV2ZW50KTsKIAorI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCisgICAgaWYgKHBhZ2UtPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5pc1BvaW50ZXJM
b2NrZWQoKSkgeworICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOworICAgICAgICBzd2l0
Y2ggKG1vdXNlRXZlbnQudHlwZSgpKSB7CisgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TW91
c2VEb3duOgorICAgICAgICAgICAgZXZlbnRUeXBlID0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2
ZW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TW91
c2VVcDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpNb3VzZU1v
dmU6CisgICAgICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPnBv
aW50ZXJMb2NrQ29udHJvbGxlcigpLT5kaXNwYXRjaExvY2tlZE1vdXNlRXZlbnQocGxhdGZvcm1N
b3VzZUV2ZW50LCBldmVudFR5cGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5k
aWYKKwogICAgIHN3aXRjaCAocGxhdGZvcm1Nb3VzZUV2ZW50LnR5cGUoKSkgewogICAgICAgICBj
YXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDogewogI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQpAQCAtMjYwMiw2ICsyNjQ1LDE1IEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdl
OjpmdWxsU2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCitXZWJQb2ludGVyTG9ja01hbmFnZXIqIFdlYlBhZ2U6OnBvaW50ZXJMb2NrTWFuYWdlcigp
Cit7CisgICAgaWYgKCFtX3BvaW50ZXJMb2NrTWFuYWdlcikKKyAgICAgICAgbV9wb2ludGVyTG9j
a01hbmFnZXIgPSBXZWJQb2ludGVyTG9ja01hbmFnZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1
cm4gbV9wb2ludGVyTG9ja01hbmFnZXIuZ2V0KCk7Cit9CisjZW5kaWYKKwogTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKQogewogICAgIGlmIChtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcikKQEAgLTMxNzIsNiArMzIyNCwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
ZwogICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBvaW50ZXJMb2NrTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHBvaW50ZXJMb2NrTWFuYWdl
cigpLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCBlZjU5ZmY5OWZmYjYxNGI1OWFmMzk4MjZhYmY0MzMwMDEzMDY3ZmQx
Li4xZTcxM2Q5YzQxODRiY2IzZDVhNDkzM2IzMzIxMThhM2U2NGNmMDMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQwLDYgKzQwLDkgQEAKICNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxl
UGFnZUxvYWRlckNsaWVudC5oIgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQuaCIKKyNlbmRpZgogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFn
ZVVJQ2xpZW50LmgiCkBAIC0xNDksNiArMTUyLDcgQEAgY2xhc3MgV2ViTW91c2VFdmVudDsKIGNs
YXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudDsKIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7CitjbGFzcyBXZWJQb2ludGVyTG9ja01hbmFn
ZXI7CiBjbGFzcyBXZWJQb3B1cE1lbnU7CiBjbGFzcyBXZWJXaGVlbEV2ZW50Owogc3RydWN0IEF0
dHJpYnV0ZWRTdHJpbmc7CkBAIC0yMDIsNiArMjA2LDEwIEBAIHB1YmxpYzoKICAgICBXZWJGdWxs
U2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1hbmFnZXIoKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKKyAgICBXZWJQb2ludGVyTG9ja01hbmFnZXIqIHBvaW50ZXJMb2NrTWFu
YWdlcigpOworI2VuZGlmCisKICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdBcmVhLgog
ICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRoZXNlIGludG8gYSBEcmF3aW5nQXJl
YSBjbGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJlbmVmaWNpYWw/CiAgICAgdm9pZCBk
cmF3UmVjdChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
Jik7CkBAIC0yNTgsNiArMjY2LDkgQEAgcHVibGljOgogICAgIHZvaWQgaW5pdGlhbGl6ZUluamVj
dGVkQnVuZGxlRnVsbFNjcmVlbkNsaWVudChXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Kik7
CiAjZW5kaWYKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Kik7CisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKKyAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBvaW50
ZXJMb2NrQ2xpZW50KFdLQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50Kik7CisjZW5kaWYKIAog
I2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRN
ZW51Q2xpZW50JiBpbmplY3RlZEJ1bmRsZUNvbnRleHRNZW51Q2xpZW50KCkgeyByZXR1cm4gbV9j
b250ZXh0TWVudUNsaWVudDsgfQpAQCAtMjcyLDYgKzI4Myw5IEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVu
dCYgaW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KCkgeyByZXR1cm4gbV9mdWxsU2NyZWVu
Q2xpZW50OyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIEluamVjdGVk
QnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50JiBpbmplY3RlZEJ1bmRsZVBvaW50ZXJMb2NrQ2xp
ZW50KCkgeyByZXR1cm4gbV9wb2ludGVyTG9ja0NsaWVudDsgfQorI2VuZGlmCiAKICAgICB2b2lk
IHNldFVuZGVybGF5UGFnZShQYXNzUmVmUHRyPFdlYlBhZ2U+IHVuZGVybGF5UGFnZSkgeyBtX3Vu
ZGVybGF5UGFnZSA9IHVuZGVybGF5UGFnZTsgfQogCkBAIC05NTMsNiArOTY3LDkgQEAgcHJpdmF0
ZToKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50IG1fZnVsbFNjcmVlbkNs
aWVudDsKICNlbmRpZgogICAgIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50IG1fbG9nRGlhZ25vc3RpY01lc3NhZ2VDbGllbnQ7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKKyAgICBJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudCBtX3BvaW50ZXJMb2Nr
Q2xpZW50OworI2VuZGlmCiAKICAgICBGaW5kQ29udHJvbGxlciBtX2ZpbmRDb250cm9sbGVyOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIFBMQVRGT1JNKFFUKQpAQCAtOTY4LDYgKzk4NSw5
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFJlZlB0cjxXZWJG
dWxsU2NyZWVuTWFuYWdlcj4gbV9mdWxsU2NyZWVuTWFuYWdlcjsKICNlbmRpZgorI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCisgICAgUmVmUHRyPFdlYlBvaW50ZXJMb2NrTWFuYWdlcj4gbV9wb2lu
dGVyTG9ja01hbmFnZXI7CisjZW5kaWYKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51PiBtX2FjdGl2
ZVBvcHVwTWVudTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBSZWZQdHI8V2ViQ29u
dGV4dE1lbnU+IG1fY29udGV4dE1lbnU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206656</attachid>
            <date>2013-07-15 04:27:48 -0700</date>
            <delta_ts>2013-10-02 21:40:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118132-20130715152606.patch</filename>
            <type>text/plain</type>
            <size>57809</size>
            <attacher name="Stanislav Pikulik">stanislav.pikulik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJmMzA0ODZlNDViNDgx
ODBhNzA0OTQ3ZTdkNTc2ZGY2ODE3M2QyYS4uMzU3Yzk3ZDhmZmU2MWQ4MDFmZGRkMzMyMTNiMGQ3
ZjE3NGU5YzgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA3LTE1ICBTdGFu
aXNsYXYgUGlrdWxpayAgPHN0YW5pc2xhdi5waWt1bGlrQGxnZS5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIEhhbmRsaW5nIFBvaW50ZXIgTG9jayByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MTMyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAg
ICAgICAgaW5jbHVkZSBQb2ludGVyTG9ja0NvbnRyb2xsZXIgZmlsZXMKKworICAgICAgICAqIFRh
cmdldC5wcmk6CisKIDIwMTMtMDctMTQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAg
ICAgICAgIE9yaWdpbnMgd2l0aCBpbnZhbGlkIHBvcnRzIGFyZSBub3QgbWFya2VkIGFzIHVuaXF1
ZSAoMTE4NjUyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZhMmFlYmUyZmU5MzU0N2M4OGM1M2FjYzcyMjk3ZTll
Y2FiNGEzOTMuLjViZTc0YmE0Nzc4ZTIxYzhjZGU1YmQwYjA1YWQyMjUwYjY4ZjRlMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAxMy0wNy0xNSAgU3RhbmlzbGF2IFBpa3VsaWsgIDxz
dGFuaXNsYXYucGlrdWxpa0BsZ2UuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBIYW5kbGluZyBQ
b2ludGVyIExvY2sgcmVxdWVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExODEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGFkZCBXZWJQb2ludGVyTG9ja01hbmFnZXIgdG8gbWFuZ2UgUG9pbnRlckxv
Y2sgc3RhdGUgb24gV2ViUHJvY2VzcyBzaWRlCisgICAgICAgIGFkZCBXZWJQb2ludGVyTG9ja01h
bmFnZXJQcm94eSB0byBtYW5hZ2UgUG9pbnRlckxvY2sgc3RhdGUgb24gVUlQcm9jZXNzIHNpZGUK
KyAgICAgICAgYWRkIEluamVjdGVkQnVuZGxlIGNsaWVudCB0byBXZWJQb2ludGVyTG9ja01hbmFn
ZXIgdG8gc2V0dXAgY3VzdG9tIGJlaGF2aW9yCisgICAgICAgIGFkZCBDIEFQSSB0byByZWZlciBX
ZWJQb2ludGVyTG9ja01hbmFnZXIgbWV0aG9kcworICAgICAgICBhZGQgdHJhbnNmZXIgbW91c2Ug
Y3Vyc29yIG1vdmVtZW50IGRlbHRhCisgICAgICAgIERpc2FibGUgb3JkaW5hcnkgbW91c2VldmVu
dHMgaGFuZGxpbmcgaW4gUG9pbnRlciBMb2NrIG1vZGUKKyAgICAgICAgYWRkIHRyYW5zbGF0aW9u
IG1vdWRlZXZlbnRzIHRvIFBvaW50ZXJMb2NrQ29udHJvbGxlcgorICAgICAgICBkaXNhYmxlIG9y
ZGluYXJ5IHRvdWNoZXZlbnRzIGhhbmRsaW5nIGluIFBvaW50ZXIgTG9jayBtb2RlCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVy
c2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQ6Oldl
YktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6V2ViUG9p
bnRlckxvY2tNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01h
bmFnZXJQcm94eTo6fldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OnNldFdlYlZpZXcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6aXNQb2ludGVyTG9ja2VkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OnJlcXVlc3RQb2ludGVyTG9j
ayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpyZXF1ZXN0
UG9pbnRlclVubG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlclBy
b3h5Ojp1bmxvY2tQb2ludGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUG9pbnRlckxvY2svV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1Bv
aW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvUG9pbnRlckxvY2svcXQvV2ViUG9pbnRlckxvY2tNYW5hZ2Vy
UHJveHlRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFn
ZXJQcm94eTo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9p
bnRlckxvY2tNYW5hZ2VyUHJveHk6OmRpZE5vdEFjcXVpcmVQb2ludGVyTG9jayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpkaWRMb3NlUG9pbnRlckxvY2sp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnBvaW50ZXJMb2NrTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFdlYktpdDIucHJpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZVNl
dFBvaW50ZXJMb2NrQ2xpZW50KToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVN0YXJ0UmVxdWVzdFBv
aW50ZXJMb2NrKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVN0YXJ0UmVxdWVzdFBvaW50ZXJVbmxv
Y2spOgorICAgICAgICAoV0tCdW5kbGVQYWdlSXNQb2ludGVyTG9ja2VkKToKKyAgICAgICAgKFdL
QnVuZGxlUGFnZURpZEFjcXVpcmVQb2ludGVyTG9jayk6CisgICAgICAgIChXS0J1bmRsZVBhZ2VE
aWROb3RBY3F1aXJlUG9pbnRlckxvY2spOgorICAgICAgICAoV0tCdW5kbGVQYWdlRGlkTG9zZVBv
aW50ZXJMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQ6OnN1cHBvcnRzUG9pbnRlckxv
Y2spOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVu
dDo6cmVxdWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQ
YWdlUG9pbnRlckxvY2tDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xp
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRl
ckxvY2tNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2Nr
TWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2Vy
OjpXZWJQb2ludGVyTG9ja01hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9j
a01hbmFnZXI6On5XZWJQb2ludGVyTG9ja01hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
b2ludGVyTG9ja01hbmFnZXI6OnN1cHBvcnRzUG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0
OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlcjo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OmlzUG9pbnRlckxvY2tlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFuYWdlcjo6ZGlkQWNxdWlyZVBvaW50ZXJM
b2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpkaWROb3RBY3F1
aXJlUG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6
OmRpZExvc2VQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvaW50ZXJMb2NrTWFu
YWdlcjo6c3RhcnRSZXF1ZXN0UG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQb2lu
dGVyTG9ja01hbmFnZXI6OnN0YXJ0UmVxdWVzdFBvaW50ZXJVbmxvY2spOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzZWN1cml0eU9yaWdpbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIu
bWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpy
ZXF1ZXN0UG9pbnRlckxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJl
cXVlc3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpp
c1BvaW50ZXJMb2NrZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6fldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbml0aWFsaXpl
SW5qZWN0ZWRCdW5kbGVQb2ludGVyTG9ja0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0
b3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dG91Y2hFdmVudFN5bmNGb3JU
ZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9pbnRlckxvY2tNYW5hZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmluamVjdGVkQnVuZGxlUG9pbnRlckxvY2tDbGllbnQpOgorCiAyMDEzLTA3LTE1ICBTaW1vbiBQ
ZW5hICA8c2ltb24ucGVuYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBbV0syXSBDaGVj
ayBpZiB0aGUga2V5RXZlbnRRdWV1ZSBpcyBlbXB0eSBpbiBXZWJQYWdlUHJveHk6OmdldEVkaXRv
ckNvbW1hbmRzRm9yS2V5RXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDNiMDM1NTE4YTQ3ODc3MTkyYzJk
MGQzNDIxMWI0N2NkOGY5MzQ3NTEuLjk2MDc3YTllNzljYTMyNmIwNWNkMjg0MGU3MDYwZTI3ZTdi
NTY1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTQxLDYgKzk0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBcCiAgICAgcGFnZS9QZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmNwcCBcCiAgICAgcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAgXAorICAg
IHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9QcmludENvbnRleHQu
Y3BwIFwKICAgICBwYWdlL1NjcmVlbi5jcHAgXAogICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0NvbnN0cmFpbnRzLmNwcCBcCkBAIC0yMDk3LDYgKzIwOTgsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBwYWdlL1BhZ2VUaHJvdHRsZXIuaCBcCiAgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgg
XAogICAgIHBhZ2UvUGx1Z0luQ2xpZW50LmggXAorICAgIHBhZ2UvUG9pbnRlckxvY2tDb250cm9s
bGVyLmggXAogICAgIHBhZ2UvUG9wdXBPcGVuaW5nT2JzZXJ2ZXIuaCBcCiAgICAgcGFnZS9Qcmlu
dENvbnRleHQuaCBcCiAgICAgcGFnZS9TY3JlZW4uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5w
cmkKaW5kZXggZGMxN2ZhYWFjMGI5Y2NmZjgyOGI0YmNkNzYxNGJiYWE2M2YxZGQ5Yy4uNWFhN2Iz
ZDFkNzY3NGU3ZjUxOGJhMjRlZDMyNjUxOWU3YTk3YTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLnByaQpAQCAtNDgsNiArNDgsNyBAQCBWUEFUSCA9IFwKICAgICBXZWJQcm9jZXNzL05ldHdv
cmtJbmZvIFwKICAgICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucyBcCisgICAgV2ViUHJvY2Vzcy9Qb2ludGVyTG9jayBcCiAgICAgV2ViUHJvY2Vzcy9S
ZXNvdXJjZUNhY2hlIFwKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UgXAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQgXApAQCAtNTksNiArNjAsNyBAQCBWUEFUSCA9IFwKICAgICBVSVByb2Nl
c3MvRG93bmxvYWRzIFwKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCiAgICAgVUlQcm9j
ZXNzL1BsdWdpbnMgXAorICAgIFVJUHJvY2Vzcy9Qb2ludGVyTG9jayBcCiAgICAgVUlQcm9jZXNz
L1N0b3JhZ2UgXAogICAgIFNoYXJlZCBcCiAgICAgU2hhcmVkL0F1dGhlbnRpY2F0aW9uIFwKQEAg
LTEwMCw2ICsxMDIsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdl
cy5pbiBcCiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCisgICAg
V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYlBvaW50ZXJM
b2NrTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Lm1l
c3NhZ2VzLmluIFwKICAgICBEcmF3aW5nQXJlYS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViSW5zcGVj
dG9yLm1lc3NhZ2VzLmluIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJF
dmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVy
c2lvbi5jcHAKaW5kZXggODFhZjdlYjI3MDJlNjQwNjIxZTI4Y2JhNzUwOGE2ODM2Y2U0MzZmNi4u
OWYxZTU3YmY3MzFlZTU4ZTNmMmU0OGNhNGZkNTk3MzMyOTZkNGViMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTgzLDYgKzgzLDEwIEBAIHB1
YmxpYzoKICAgICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IHdlYkV2ZW50Lmdsb2JhbFBvc2l0aW9u
KCk7CiAgICAgICAgIG1fY2xpY2tDb3VudCA9IHdlYkV2ZW50LmNsaWNrQ291bnQoKTsKIAorI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgICAgIG1fbW92ZW1lbnREZWx0YSA9IFdlYkNvcmU6
OkludFBvaW50KHdlYkV2ZW50LmRlbHRhWCgpLCB3ZWJFdmVudC5kZWx0YVkoKSk7CisjZW5kaWYK
KwogICAgICAgICBtX21vZGlmaWVyRmxhZ3MgPSAwOwogICAgICAgICBpZiAod2ViRXZlbnQuc2hp
ZnRLZXkoKSkKICAgICAgICAgICAgIG1fbW9kaWZpZXJGbGFncyB8PSBXZWJFdmVudDo6U2hpZnRL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktp
dDIvVGFyZ2V0LnByaQppbmRleCBmZTYzMzZhMTAxNTYzZjFiZTE2ZDViMGQ4MTczNDhkNTdlNTVk
NDM3Li42MzU5YTc0YzNkOTJhMDQ2NGU0ZTVhM2IyN2QxM2Q2ZDAwYmQ0NzIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5w
cmkKQEAgLTI3OSw2ICsyNzksNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViUGFn
ZUNvbnRleHRNZW51Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaCBcCiAg
ICAgVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvUG9pbnRlckxvY2sv
V2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNs
aWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBcCiAgICAgVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oIFwKQEAgLTMxNiw2ICszMTcsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBcCisgICAgV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudC5oIFwKICAgICBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5o
IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xp
ZW50LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZC5oIFwKQEAgLTMzOSw2ICszNDEsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCBcCisgICAgV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQ
b2ludGVyTG9ja01hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
YXR0ZXJ5Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2Vy
LmggXApAQCAtNTg5LDYgKzU5Miw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9QbHVn
aW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9QbHVnaW5z
L3F0L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5p
eC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcCBcCisgICAgVUlQcm9jZXNzL1BvaW50ZXJMb2NrL3F0
L1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5UXQuY3BwIFwKKyAgICBVSVByb2Nlc3MvUG9pbnRl
ckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5j
cHAgXAogICAgIFVJUHJvY2Vzcy9TdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcCBcCkBA
IC02ODksNiArNjk0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuY3BwIFwKKyAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZVBvaW50ZXJMb2NrQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgXAogICAg
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3Bw
IFwKQEAgLTcxNSw2ICs3MjEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2lu
dGVyTG9ja01hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJ
bXBsLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dl
YlBvaW50ZXJMb2NrTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDhkYjk0OWNlYzU5MTI5
ODNmMjhlNWYyMTc4ZDFhODgzNDYxMjAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5LmNwcApA
QCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNz
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHku
aCIKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNsdWRlICJXZWJDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitQYXNzUmVmUHRyPFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5PiBXZWJQb2ludGVyTG9j
a01hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQcm94eSogcGFnZSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5KHBhZ2UpKTsKK30KKworV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5KFdlYlBh
Z2VQcm94eSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQorICAgICwgbV93ZWJWaWV3KDApCisg
ICAgLCBtX2lzUG9pbnRlckxvY2tlZChmYWxzZSkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQb2lu
dGVyTG9ja01hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJ
RCgpLCB0aGlzKTsKK30KKworV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6On5XZWJQb2ludGVy
TG9ja01hbmFnZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJv
eHk6OnNldFdlYlZpZXcoUGxhdGZvcm1XZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIG1fd2ViVmll
dyA9IHdlYlZpZXc7Cit9CisKK2Jvb2wgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OmlzUG9p
bnRlckxvY2tlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNQb2ludGVyTG9ja2VkOworfQor
Cit2b2lkIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpyZXF1ZXN0UG9pbnRlckxvY2soKQor
eworICAgIGlmIChtX3BhZ2UgJiYgbV9wYWdlLT5pc1ZhbGlkKCkpCisgICAgICAgIGRpZEFjcXVp
cmVQb2ludGVyTG9jaygpOworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5Ojpy
ZXF1ZXN0UG9pbnRlclVubG9jaygpCit7CisgICAgaWYgKG1fcGFnZSAmJiBtX3BhZ2UtPmlzVmFs
aWQoKSkKKyAgICAgICAgZGlkTG9zZVBvaW50ZXJMb2NrKCk7Cit9CisKK3ZvaWQgV2ViUG9pbnRl
ckxvY2tNYW5hZ2VyUHJveHk6OnVubG9ja1BvaW50ZXIoKQoreworICAgIGlmIChtX2lzUG9pbnRl
ckxvY2tlZCkKKyAgICAgICAgZGlkTG9zZVBvaW50ZXJMb2NrKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQ
b2ludGVyTG9ja01hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNzRkMjFlOThhZjQ5Y2FiNzM4
ZjhjNjYzM2NlZWE4YTVmMTYyODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkuaApAQCAtMCww
ICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViUG9pbnRlckxvY2tNYW5h
Z2VyUHJveHlfaAorCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKworI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShNQUMpCitPQkpDX0NMQVNTIFdLVmlldzsK
KyNlbGlmIFBMQVRGT1JNKEdUSykKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZSBX
ZWJLaXRXZWJWaWV3QmFzZTsKKyNlbGlmIFBMQVRGT1JNKFFUKQorY2xhc3MgUVF1aWNrV2ViVmll
dzsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2lmIFBMQVRGT1JNKE1BQykKK3R5
cGVkZWYgV0tWaWV3IFBsYXRmb3JtV2ViVmlldzsKKyNlbGlmIFBMQVRGT1JNKFFUKQordHlwZWRl
ZiBRUXVpY2tXZWJWaWV3IFBsYXRmb3JtV2ViVmlldzsKKyNlbGlmIFBMQVRGT1JNKEdUSykKK3R5
cGVkZWYgV2ViS2l0V2ViVmlld0Jhc2UgUGxhdGZvcm1XZWJWaWV3OworI2VsaWYgUExBVEZPUk0o
RUZMKQordHlwZWRlZiBFdmFzX09iamVjdCBQbGF0Zm9ybVdlYlZpZXc7CisjZW5kaWYKKworY2xh
c3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eSA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5PiwgcHVibGljIENvcmVJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkqKTsKKyAgICB2aXJ0
dWFsIH5XZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBzZXRXZWJWaWV3
KFBsYXRmb3JtV2ViVmlldyopOworCisgICAgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSBjb25zdDsK
KyAgICB2b2lkIHJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJV
bmxvY2soKTsKKyAgICB2b2lkIHVubG9ja1BvaW50ZXIoKTsKKworcHJpdmF0ZToKKyAgICBleHBs
aWNpdCBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eShXZWJQYWdlUHJveHkqKTsKKworICAgIHZv
aWQgZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgdm9pZCBkaWROb3RBY3F1aXJlUG9pbnRl
ckxvY2soKTsKKyAgICB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOworCisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOworCisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CisgICAg
UGxhdGZvcm1XZWJWaWV3KiBtX3dlYlZpZXc7CisgICAgYm9vbCBtX2lzUG9pbnRlckxvY2tlZDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJf
TE9DSykKKworI2VuZGlmIC8vIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5X2gKKworCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxv
Y2tNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9p
bnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWYxMGZkOWIzMDU4NThkNzYwNzA1MjMyMTQ0YzJlNmI5MGE1N2I4ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9j
a01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjCisjIENvcHlyaWdo
dCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQorbWVzc2FnZXMgLT4gV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkgeworICAgIFJl
cXVlc3RQb2ludGVyTG9jaygpCisgICAgUmVxdWVzdFBvaW50ZXJVbmxvY2soKQorfQorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUG9pbnRlckxvY2svcXQvV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHlRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UG9pbnRlckxvY2svcXQvV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHlRdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODY2M2JiN2M0YzNjMjYwN2VlZDkxYTMyMjNhMTYzNDRiNjFjYWIwMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qb2ludGVyTG9jay9xdC9XZWJQb2ludGVy
TG9ja01hbmFnZXJQcm94eVF0LmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
TEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHkuaCIKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisK
KyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViUG9pbnRlckxvY2tNYW5hZ2Vy
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6
OmRpZEFjcXVpcmVQb2ludGVyTG9jaygpCit7CisgICAgLy8gRklYTUUgOiBQbGF0Zm9ybS1kZXBl
bmRlbnQgbm90aWZpY2F0aW9uLiBTb21ldGhpbmsgbGlrZSB0aGF0CisgICAgLy8gaWYgKG1fd2Vi
VmlldykKKyAgICAvLyAgICAgZW1pdCBtX3dlYlZpZXctPmV4cGVyaW1lbnRhbCgpLT5wb2ludGVy
TG9ja1JlcXVlc3RlZCgpOworCisgICAgbV9pc1BvaW50ZXJMb2NrZWQgPSB0cnVlOworICAgIGlm
IChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
b2ludGVyTG9ja01hbmFnZXI6OkRpZEFjcXVpcmVQb2ludGVyTG9jaygpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6ZGlkTm90QWNxdWly
ZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBtX2lzUG9pbnRlckxvY2tlZCA9IGZhbHNlOworICAgIGlm
IChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
b2ludGVyTG9ja01hbmFnZXI6OkRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKK30KKwordm9pZCBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTo6ZGlkTG9zZVBv
aW50ZXJMb2NrKCkKK3sKKyAgICAvLyBGb3IgdGVzdHMgcG9pbnRlciBsb2NrIG1vZGUgY2FuIGJl
IGVudGVyZWQgYnlwYXNzaW5nIFdlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5LAorICAgIC8vIGhl
cmV3aXRoIGxlYXZpbmcgcG9pbnRlciBsb2NrIG1vZGUgY2FuIGJlIG1hZGUgdXNpbmcgV2ViUG9p
bnRlckxvY2tNYW5hZ2VyUHJveHkuCisgICAgLy8gSXQgbXVzdCBiZSBhYmxlIHRvIHNlbmQgRGlk
TG9zZVBvaW50ZXJMb2NrIG5vdGlmaWNhdGlvbiBieSBjYWxsaW5nIGRpZExvc2VQb2ludGVyTG9j
ayBhbnl3YXkuCisKKyAgICAvLyBGSVhNRSA6IFBsYXRmb3JtLWRlcGVuZGVudCBub3RpZmljYXRp
b24uIFNvbWV0aGluayBsaWtlIHRoYXQKKyAgICAvLyBpZiAobV93ZWJWaWV3ICYmIG1faXNQb2lu
dGVyTG9ja2VkKQorICAgIC8vICAgICBlbWl0IG1fd2ViVmlldy0+ZXhwZXJpbWVudGFsKCktPnBv
aW50ZXJVbmxvY2tSZXF1ZXN0ZWQoKTsKKworICAgIG1faXNQb2ludGVyTG9ja2VkID0gZmFsc2U7
CisgICAgaWYgIChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQb2ludGVyTG9ja01hbmFnZXI6OkRpZExvc2VQb2ludGVyTG9jaygpLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggNzQwZGY5MTFiODAwNWJmODllZTg1NzkyYjBlOGRhMGI3Y2RjNWIyMC4uODE5
NjUzNTU3OGFhZDZiY2UzNTQxZTI0MDg1NzZjNDNhMzIxNWE1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDEwIEBACiAjaW5jbHVkZSAi
V2ViUGFnZUdyb3VwRGF0YS5oIgogI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyNp
bmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYlBvaW50
ZXJMb2NrTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIldlYlBvcHVw
SXRlbS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXMuaCIKQEAgLTMzOCw2ICszNDIsOSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94
eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcAog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOwogI2VuZGlmCisjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKKyAgICBtX3BvaW50ZXJMb2NrTWFuYWdlciA9IFdlYlBvaW50ZXJMb2Nr
TWFuYWdlclByb3h5OjpjcmVhdGUodGhpcyk7CisjZW5kaWYKICNpZiBFTkFCTEUoVklCUkFUSU9O
KQogICAgIG1fdmlicmF0aW9uID0gV2ViVmlicmF0aW9uUHJveHk6OmNyZWF0ZSh0aGlzKTsKICNl
bmRpZgpAQCAtNDkwLDYgKzQ5Nyw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2VzcygpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIG1fZnVsbFNjcmVlbk1h
bmFnZXIgPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcyk7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIG1fcG9pbnRlckxvY2tNYW5hZ2VyID0gV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyNlbmRpZgogCiAgICAgaW5p
dGlhbGl6ZVdlYlBhZ2UoKTsKIApAQCAtMzA1MCw2ICszMDYwLDEzIEBAIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorV2ViUG9pbnRlckxvY2tNYW5hZ2VyUHJveHkq
IFdlYlBhZ2VQcm94eTo6cG9pbnRlckxvY2tNYW5hZ2VyKCkKK3sKKyAgICByZXR1cm4gbV9wb2lu
dGVyTG9ja01hbmFnZXIuZ2V0KCk7Cit9CisjZW5kaWYKKwogLy8gQmFja0ZvcndhcmRMaXN0CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZEFkZEl0ZW0odWludDY0X3QgaXRlbUlEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGY1N2I2NTM3N2E1YmFm
M2Q3MDQyMjFhNzhkYTkzOTMwZWYyNzk1MDEuLjNmODFiNDc1YmZlZDQxNWVjZjBkNzU5YjU0NzBl
YjY3Y2JlY2QxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTE0Niw2ICsxNDYsNyBAQCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VF
dmVudDsKIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJQ
YWdlR3JvdXA7CitjbGFzcyBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBy
b2Nlc3NQcm94eTsKIGNsYXNzIFdlYlVSTFJlcXVlc3Q7CiBjbGFzcyBXZWJXaGVlbEV2ZW50OwpA
QCAtMjY0LDYgKzI2NSwxMCBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eSogZnVsbFNjcmVlbk1hbmFnZXIoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKKyAgICBXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eSogcG9pbnRlckxvY2tNYW5hZ2VyKCk7
CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQgaW5pdGlhbGl6
ZUNvbnRleHRNZW51Q2xpZW50KGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2xpZW50Kik7CiAjZW5k
aWYKQEAgLTEwOTEsNiArMTA5NiwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5PiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQorICAgIFJlZlB0cjxXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eT4g
bV9wb2ludGVyTG9ja01hbmFnZXI7CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAg
ICAgUmVmUHRyPFdlYlZpYnJhdGlvblByb3h5PiBtX3ZpYnJhdGlvbjsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
LnByaQppbmRleCBhMWRhMDQ1MWFjNWFmOGYxZjIzZDE3ZDQzYzA1ZGFlOTE5OTY2ZDhmLi5kOTQ5
MmUyZTc0MTUwMzEwNmI0MWZkMjFhYjQ3OWY4NWJlN2IyZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQpAQCAt
NDAsNiArNDAsNyBAQCBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSL1VJUHJvY2Vz
cy9MYXVuY2hlciBcCiAgICAgJCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwK
ICAgICAkJFNPVVJDRV9ESVIvVUlQcm9jZXNzL1BsdWdpbnMgXAorICAgICQkU09VUkNFX0RJUi9V
SVByb2Nlc3MvUG9pbnRlckxvY2sgXAogICAgICQkU09VUkNFX0RJUi9VSVByb2Nlc3MvU3RvcmFn
ZSBcCiAgICAgJCRTT1VSQ0VfRElSL1VJUHJvY2Vzcy9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL1VJ
UHJvY2Vzcy90ZXhtYXAgXApAQCAtNTksNiArNjAsNyBAQCBJTkNMVURFUEFUSCArPSBcCiAgICAg
JCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCiAgICAgJCRTT1VSQ0VfRElS
L1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZSBcCisgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvUG9pbnRlckxvY2sgXAog
ICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAogICAgICQkU09VUkNF
X0RJUi9XZWJQcm9jZXNzL1N0b3JhZ2UgXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBkNDVlNDhl
ODhkYWMxNDdjMGFmYmVjYzc2NTFhMDQ2ZjIzODNhYzIwLi41MmEyMTUxYzY0ZDJmNWEwOTU4OWEz
YzA5NjAxNzAzZTZiNjM1NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC00
MSw2ICs0MSw5IEBACiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKICNpbmNsdWRl
ICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlci5oIgorI2VuZGlmCiAjaW5jbHVk
ZSAiV2ViUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJXZWJSZW5kZXJPYmplY3QuaCIKICNpbmNs
dWRlICJXZWJTdHJpbmcuaCIKQEAgLTUxNiwzICs1MTksNTYgQEAgdm9pZCBXS0J1bmRsZVBhZ2VT
dG9wRXh0ZW5kaW5nSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbihXS0J1bmRsZVBhZ2VS
ZWYgcGEKIHsKICAgICB0b0ltcGwocGFnZVJlZiktPnN0b3BFeHRlbmRpbmdJbmNyZW1lbnRhbFJl
bmRlcmluZ1N1cHByZXNzaW9uKHRva2VuKTsKIH0KKwordm9pZCBXS0J1bmRsZVBhZ2VTZXRQb2lu
dGVyTG9ja0NsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlUG9pbnRl
ckxvY2tDbGllbnQqIHdrQ2xpZW50KQoreworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAg
dG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQb2ludGVyTG9ja0NsaWVu
dCh3a0NsaWVudCk7CisjZW5kaWYKK30KKworYm9vbCBXS0J1bmRsZVBhZ2VTdGFydFJlcXVlc3RQ
b2ludGVyTG9jayhXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKK3sKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQorICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnBvaW50ZXJMb2NrTWFuYWdlcigp
LT5zdGFydFJlcXVlc3RQb2ludGVyTG9jaygpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VTdGFydFJlcXVlc3RQb2ludGVyVW5sb2NrKFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmKQoreworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAg
cmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cG9pbnRlckxvY2tNYW5hZ2VyKCktPnN0YXJ0UmVxdWVz
dFBvaW50ZXJVbmxvY2soKTsKKyNlbmRpZgorfQorCitib29sIFdLQnVuZGxlUGFnZUlzUG9pbnRl
ckxvY2tlZChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKK3sKKyNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQorICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5p
c1BvaW50ZXJMb2NrZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisK
K3ZvaWQgV0tCdW5kbGVQYWdlRGlkQWNxdWlyZVBvaW50ZXJMb2NrKFdLQnVuZGxlUGFnZVJlZiBw
YWdlUmVmKQoreworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgdG9JbXBsKHBhZ2VSZWYp
LT5wb2ludGVyTG9ja01hbmFnZXIoKS0+ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisjZW5kaWYK
K30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWROb3RBY3F1aXJlUG9pbnRlckxvY2soV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYpCit7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB0b0ltcGwo
cGFnZVJlZiktPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5kaWROb3RBY3F1aXJlUG9pbnRlckxvY2so
KTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxlUGFnZURpZExvc2VQb2ludGVyTG9jayhXS0J1
bmRsZVBhZ2VSZWYgcGFnZVJlZikKK3sKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHRv
SW1wbChwYWdlUmVmKS0+cG9pbnRlckxvY2tNYW5hZ2VyKCktPmRpZExvc2VQb2ludGVyTG9jaygp
OworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCAxMDNmNDc4YTEyMzVj
OGQ3NDljMjQ2ZDQwNmI4MDJhODllN2Y5NTExLi5lNGIyNTY0NmRmNzg1OWFlZTczNjk3NTFlZjE1
NDM1MmFiODg2YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTQwMyw2ICs0MDMs
MjQgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCBXS0J1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50OwogCiBlbnVtIHsga1dLQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnRDdXJyZW50VmVyc2lvbiA9IDEgfTsKIAorLy8gUG9pbnRlciBMb2NrIGNsaWVudAordHlw
ZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU3VwcG9ydHNQb2ludGVyTG9jaykoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UpOwordHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlUmVxdWVzdFBvaW50ZXJMb2Nr
KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VSZXF1
ZXN0UG9pbnRlclVubG9jaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOworCitzdHJ1Y3QgV0tCdW5k
bGVQYWdlUG9pbnRlckxvY2tDbGllbnQgeworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBj
b25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsaWVudEluZm87CisKKyAgICAvLyBWZXJzaW9uIDA6CisgICAgV0tCdW5kbGVQ
YWdlU3VwcG9ydHNQb2ludGVyTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdXBwb3J0c1BvaW50ZXJMb2NrOworICAgIFdLQnVuZGxlUGFnZVJlcXVlc3RQb2ludGVyTG9j
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFBvaW50ZXJMb2Nr
OworICAgIFdLQnVuZGxlUGFnZVJlcXVlc3RQb2ludGVyVW5sb2NrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdFBvaW50ZXJVbmxvY2s7Cit9OwordHlwZWRlZiBzdHJ1
Y3QgV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQgV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tD
bGllbnQ7CisKK2VudW0geyBrV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnRDdXJyZW50VmVy
c2lvbiA9IDAgfTsKKwogLy8gTWVzc2FnZVRyYWNlIGNsaWVudAogdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlc2NyaXB0aW9uLCBXS1N0cmluZ1Jl
ZiBzdWNjZXNzLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIApAQCAtNDMxLDYgKzQ0OSw3IEBA
IFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldFBvbGljeUNsaWVudChXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVQYWdlUG9sCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRV
SUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlVUlDbGllbnQqIGNsaWVu
dCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50KiBjbGllbnQpOwog
V0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBj
bGllbnQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9pbnRlckxvY2tDbGllbnQo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50KiBjbGll
bnQpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVQYWdlR3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFn
ZUdyb3VwKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVm
IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CkBAIC00NzIs
NiArNDkxLDEzIEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZUxpc3RlbkZvckxheW91dE1p
bGVzdG9uZXMoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLTGF5CiAKIFdLX0VYUE9SVCBXS0J1bmRs
ZUluc3BlY3RvclJlZiBXS0J1bmRsZVBhZ2VHZXRJbnNwZWN0b3IoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UpOwogCitXS19FWFBPUlQgYm9vbCBXS0J1bmRsZVBhZ2VTdGFydFJlcXVlc3RQb2ludGVyTG9j
ayhXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTdGFy
dFJlcXVlc3RQb2ludGVyVW5sb2NrKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCBi
b29sIFdLQnVuZGxlUGFnZUlzUG9pbnRlckxvY2tlZChXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CitX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRBY3F1aXJlUG9pbnRlckxvY2soV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkTm90QWNxdWlyZVBv
aW50ZXJMb2NrKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxl
UGFnZURpZExvc2VQb2ludGVyTG9jayhXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CisKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlUG9pbnRlckxvY2tDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3MGJhN2Y3YTMwMzc0YWY4
NWE4NGRiNmRmOGQ1N2Q5N2IxZDA3MmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2Nr
Q2xpZW50LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIExH
IEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBFTEVDVFJPTklDUyBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTEcgRUxFQ1RST05J
Q1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQorCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQuaCIKKwor
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgorI2lu
Y2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFn
ZXIuaCIKKyNpbmNsdWRlICJXZWJQb2ludGVyTG9ja01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBJ
bmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudDo6c3VwcG9ydHNQb2ludGVyTG9jayhX
ZWJQYWdlICpwYWdlKQoreworICAgIGlmIChtX2NsaWVudC5zdXBwb3J0c1BvaW50ZXJMb2NrKQor
ICAgICAgICByZXR1cm4gbV9jbGllbnQuc3VwcG9ydHNQb2ludGVyTG9jayh0b0FQSShwYWdlKSk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlUG9pbnRlckxv
Y2tDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jayhXZWJQYWdlICpwYWdlKQoreworICAgIGlmICht
X2NsaWVudC5yZXF1ZXN0UG9pbnRlckxvY2spCisgICAgICAgIHJldHVybiBtX2NsaWVudC5yZXF1
ZXN0UG9pbnRlckxvY2sodG9BUEkocGFnZSkpOworICAgIHJldHVybiBwYWdlLT5wb2ludGVyTG9j
a01hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0UG9pbnRlckxvY2soKTsKK30KKwordm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudDo6cmVxdWVzdFBvaW50ZXJVbmxvY2soV2ViUGFn
ZSAqcGFnZSkKK3sKKyAgICBpZiAobV9jbGllbnQucmVxdWVzdFBvaW50ZXJVbmxvY2spCisgICAg
ICAgIG1fY2xpZW50LnJlcXVlc3RQb2ludGVyVW5sb2NrKHRvQVBJKHBhZ2UpKTsKKyAgICBlbHNl
CisgICAgICAgIHBhZ2UtPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5zdGFydFJlcXVlc3RQb2ludGVy
VW5sb2NrKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQ
b2ludGVyTG9ja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNGUyM2YxNDMyMzkxNDkwOGQxMzVjYmUx
NGI3OGU4MzYwMjdkMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50LmgK
QEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmlj
cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgTEcgRUxFQ1RST05JQ1MgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIExHIEVMRUNUUk9OSUNTIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBJbmplY3RlZEJ1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudF9oCisjZGVmaW5lIElu
amVjdGVkQnVuZGxlUGFnZVBvaW50ZXJMb2NrQ2xpZW50X2gKKworI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS0J1bmRsZVBhZ2Uu
aCIKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBJbnRSZWN0OworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgSW5qZWN0ZWRCdW5k
bGVQYWdlUG9pbnRlckxvY2tDbGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50PFdLQnVuZGxlUGFnZVBv
aW50ZXJMb2NrQ2xpZW50LCBrV0tCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnRDdXJyZW50VmVy
c2lvbj4geworcHVibGljOgorICAgIGJvb2wgc3VwcG9ydHNQb2ludGVyTG9jayhXZWJQYWdlKik7
CisgICAgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soV2ViUGFnZSopOworICAgIHZvaWQgcmVxdWVz
dFBvaW50ZXJVbmxvY2soV2ViUGFnZSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoUE9JTlRFUl9MT0NLKQorCisjZW5kaWYgLy8gSW5qZWN0ZWRCdW5k
bGVQYWdlUG9pbnRlckxvY2tDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliZDBhOTk0YjEzMTM3OGZiNjlhYzNlNWM4YmIxOTYzMGY1OTJjYzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBv
aW50ZXJMb2NrTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgTEcgRWxlY3Ryb25pY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9OSUNTIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBM
RyBFTEVDVFJPTklDUyBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQ
b2ludGVyTG9ja01hbmFnZXIuaCIKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckxvY2tDb250cm9sbGVyLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxX
ZWJQb2ludGVyTG9ja01hbmFnZXI+IFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6Y3JlYXRlKFdlYlBh
Z2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb2ludGVyTG9ja01hbmFn
ZXIocGFnZSkpOworfQorCitXZWJQb2ludGVyTG9ja01hbmFnZXI6OldlYlBvaW50ZXJMb2NrTWFu
YWdlcihXZWJQYWdlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCisgICAgLCBtX3BvaW50ZXJM
b2NrZWQoZmFsc2UpCit7Cit9CisKK1dlYlBvaW50ZXJMb2NrTWFuYWdlcjo6fldlYlBvaW50ZXJM
b2NrTWFuYWdlcigpCit7Cit9CisKK2Jvb2wgV2ViUG9pbnRlckxvY2tNYW5hZ2VyOjpzdXBwb3J0
c1BvaW50ZXJMb2NrKCkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAgICByZXR1cm4gbV9wYWdl
LT5pbmplY3RlZEJ1bmRsZVBvaW50ZXJMb2NrQ2xpZW50KCkuc3VwcG9ydHNQb2ludGVyTG9jayht
X3BhZ2UuZ2V0KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdlYlBvaW50ZXJMb2Nr
TWFuYWdlcjo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAg
ICByZXR1cm4gbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVBvaW50ZXJMb2NrQ2xpZW50KCkucmVxdWVz
dFBvaW50ZXJMb2NrKG1fcGFnZS5nZXQoKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQoreworICAgIGlm
IChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVQb2ludGVyTG9ja0NsaWVu
dCgpLnJlcXVlc3RQb2ludGVyVW5sb2NrKG1fcGFnZS5nZXQoKSk7Cit9CisKK2Jvb2wgV2ViUG9p
bnRlckxvY2tNYW5hZ2VyOjppc1BvaW50ZXJMb2NrZWQoKQoreworICAgIHJldHVybiBtX3BhZ2Ug
JiYgbV9wYWdlLT5jb3JlUGFnZSgpLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS0+ZWxlbWVudCgp
OworfQorCit2b2lkIFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6ZGlkQWNxdWlyZVBvaW50ZXJMb2Nr
KCkKK3sKKyAgICBpZiAobV9wYWdlKQorICAgICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPnBvaW50
ZXJMb2NrQ29udHJvbGxlcigpLT5kaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKK30KKwordm9pZCBX
ZWJQb2ludGVyTG9ja01hbmFnZXI6OmRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpCit7CisgICAg
aWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5wb2ludGVyTG9ja0NvbnRy
b2xsZXIoKS0+ZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCk7Cit9CisKK3ZvaWQgV2ViUG9pbnRl
ckxvY2tNYW5hZ2VyOjpkaWRMb3NlUG9pbnRlckxvY2soKQoreworICAgIGlmIChtX3BhZ2UpCisg
ICAgICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCktPmRpZExv
c2VQb2ludGVyTG9jaygpOworfQorCitib29sIFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6c3RhcnRS
ZXF1ZXN0UG9pbnRlckxvY2soKQoreworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIHJldHVybiBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBvaW50ZXJMb2NrTWFuYWdlclByb3h5OjpSZXF1ZXN0
UG9pbnRlckxvY2soKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYlBvaW50ZXJM
b2NrTWFuYWdlcjo6c3RhcnRSZXF1ZXN0UG9pbnRlclVubG9jaygpCit7CisgICAgaWYgKG1fcGFn
ZSkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQb2ludGVyTG9ja01hbmFnZXJQ
cm94eTo6UmVxdWVzdFBvaW50ZXJVbmxvY2soKSk7Cit9CisKK3ZvaWQgV2ViUG9pbnRlckxvY2tN
YW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBkaWRSZWNlaXZlV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKK30KKworV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4qIFdlYlBvaW50ZXJMb2NrTWFuYWdlcjo6c2VjdXJpdHlPcmln
aW4oKQoreworICAgIC8vIEZJWE1FIDogdGhpcyB2YWx1ZSBzaG91bGQgYmUgb2J0YWluZWQgZnJv
bSB0aGUgcG9pbnRlckxvY2tDb250cm9sbGVyKCkKKyAgICAvLyBvciBwYXNzZWQgdG8gdGhlIHJl
cXVlc3RQb2ludGVyTG9jaygpIG1ldGhvZAorICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Qb2ludGVyTG9jay9XZWJQb2ludGVy
TG9ja01hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDYzYjhiNjdiZjA2NDNlMWVlYzY4MzFhYjdhNDNh
MWI2NGJjMjkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
b2ludGVyTG9jay9XZWJQb2ludGVyTG9ja01hbmFnZXIuaApAQCAtMCwwICsxLDgwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIExHIEVsZWN0cm9uaWNzLCBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBMRyBF
TEVDVFJPTklDUyBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgTEcgRUxFQ1RST05JQ1MgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlBvaW50ZXJMb2Nr
TWFuYWdlcl9oCisjZGVmaW5lIFdlYlBvaW50ZXJMb2NrTWFuYWdlcl9oCisKKyNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQorCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
bmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNv
ZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3Mg
V2ViUG9pbnRlckxvY2tNYW5hZ2VyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUG9pbnRlckxvY2tN
YW5hZ2VyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUG9pbnRlckxvY2tN
YW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHZpcnR1YWwgfldlYlBvaW50ZXJMb2NrTWFu
YWdlcigpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKworICAgIGJvb2wgc3VwcG9ydHNQb2ludGVy
TG9jaygpOworCisgICAgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soKTsKKyAgICB2b2lkIHJlcXVl
c3RQb2ludGVyVW5sb2NrKCk7CisgICAgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKTsKKworICAgIHZv
aWQgZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgdm9pZCBkaWROb3RBY3F1aXJlUG9pbnRl
ckxvY2soKTsKKyAgICB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOworCisgICAgYm9vbCBzdGFy
dFJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIHZvaWQgc3RhcnRSZXF1ZXN0UG9pbnRlclVubG9j
aygpOworCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCk7CisK
K3Byb3RlY3RlZDoKKyAgICBXZWJQb2ludGVyTG9ja01hbmFnZXIoV2ViUGFnZSopOworCisgICAg
dm9pZCBkaWRSZWNlaXZlV2ViUG9pbnRlckxvY2tNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKworICAgIFJlZlB0cjxXZWJQYWdl
PiBtX3BhZ2U7CisgICAgYm9vbCBtX3BvaW50ZXJMb2NrZWQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQT0lOVEVSX0xPQ0spCisKKyNlbmRpZiAvLyBX
ZWJQb2ludGVyTG9ja01hbmFnZXJfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BvaW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUG9pbnRlckxvY2svV2ViUG9pbnRlckxvY2tNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MDU1MmMwYjE5ZmJmODg4YTIzMDM1MmVhMjMwY2Y1
MjQ4ZWE4MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bv
aW50ZXJMb2NrL1dlYlBvaW50ZXJMb2NrTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMx
IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxMyBMRyBFbGVjdHJvbmljcywgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIExHIEVMRUNUUk9O
SUNTIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUExHIEVMRUNUUk9OSUNTUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyMKKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCittZXNzYWdlcyAt
PiBXZWJQb2ludGVyTG9ja01hbmFnZXIgTGVnYWN5UmVjZWl2ZXIgeworICAgIERpZEFjcXVpcmVQ
b2ludGVyTG9jaygpCisgICAgRGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCkKKyAgICBEaWRMb3Nl
UG9pbnRlckxvY2soKQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggY2Ux
NjAwNmRiNzRmMjBmOTcyNzRkNGViM2I1NGZmOGFlOGI4MGU4Yy4uYzQ4YWNjNmFjNDkyZjQzYjU5
MDZlMDE2MWVjMDNlMWViMzJhMzU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDMs
NiArNDMsOSBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlci5oIgor
I2VuZGlmCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTgyNCw2ICs4MjcsMjcgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdl
KGNvbnN0IFZpZXdwb3J0QXJndW1lbnQKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2soKQoreworICAg
IGlmICghbV9wYWdlLT5wb2ludGVyTG9ja01hbmFnZXIoKS0+c3VwcG9ydHNQb2ludGVyTG9jaygp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBGSVhNRSA6IFRoZXJlIHNob3VsZCBh
bHNvIGJlIGEgcmVxdWVzdCBwZXJtaXNzaW9ucy4KKyAgICByZXR1cm4gbV9wYWdlLT5wb2ludGVy
TG9ja01hbmFnZXIoKS0+cmVxdWVzdFBvaW50ZXJMb2NrKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9jaygpCit7CisgICAgbV9wYWdlLT5wb2ludGVyTG9j
a01hbmFnZXIoKS0+cmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKK30KKworYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OmlzUG9pbnRlckxvY2tlZCgpCit7CisgICAgcmV0dXJuIG1fcGFnZS0+cG9pbnRlckxv
Y2tNYW5hZ2VyKCktPmlzUG9pbnRlckxvY2tlZCgpOworfQorI2VuZGlmCisKIHZvaWQgV2ViQ2hy
b21lQ2xpZW50Ojpub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IEludFJl
Y3QmIHNjcm9sbGVyVGh1bWIpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6Ok5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3Qoc2Nyb2xsZXJUaHVtYikp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNGYyOGJiMzc0NzJmYWMxYjhmM2Q3YjgwZjk5ODNm
YjIzN2VlNzg3Mi4uYmJiOTdjNGM5YTFkYTY1M2M2NDMxOWJmMjM2YzZjZmJmYWU0NGQ5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMDgsNiArMjA4LDEyIEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgT1ZF
UlJJREU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgYm9vbCByZXF1
ZXN0UG9pbnRlckxvY2soKSBPVkVSUklERTsKKyAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2Nr
KCkgT1ZFUlJJREU7CisgICAgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSBPVkVSUklERTsKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25k
ZXIoKSBPVkVSUklERTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE5MDQxNWM1ODA2MTM5ZTZlMGQxZTE1ZTA2ZTNiNzQwOGQw
Yjk1NjQuLmRkYWVhYzA4MTE0ODRjMWI0OTMzN2QwMjQ5YWE1MDM2YzdkZmYxZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc3LDYgKzc3
LDEwIEBACiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQbHVnSW5DbGllbnQuaCIKKyNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlci5oIgorI2luY2x1
ZGUgIldlYlBvaW50ZXJMb2NrTWFuYWdlck1lc3NhZ2VzLmgiCisjZW5kaWYKICNpbmNsdWRlICJX
ZWJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgpAQCAtMTEyLDYgKzExNiw5IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
KyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5oPgorI2VuZGlmCiAjaW5j
bHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJMYXllci5oPgpAQCAtNDEwLDYgKzQxNyw5IEBAIFdl
YlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlELCB0aGlzKTsKICNlbmRp
ZgorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQb2ludGVyTG9ja01hbmFnZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQsIHRoaXMpOworI2VuZGlmCiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgd2ViUGFnZUNvdW50ZXIuaW5jcmVtZW50KCk7CkBAIC00NDYsNyArNDU2LDkgQEAgV2Vi
UGFnZTo6fldlYlBhZ2UoKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKICNlbmRpZgotCisj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBvaW50ZXJMb2NrTWFuYWdlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCk7CisjZW5kaWYKICNpZm5kZWYgTkRFQlVHCiAgICAgd2Vi
UGFnZUNvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKQEAgLTUzMSw2ICs1NDMsMTMgQEAgdm9p
ZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dChXS0J1bmRsZVBhZ2VEaWFnbm8KICAgICBtX2xvZ0RpYWdub3N0aWNNZXNzYWdlQ2xpZW50Lmlu
aXRpYWxpemUoY2xpZW50KTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCit2b2lkIFdl
YlBhZ2U6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBvaW50ZXJMb2NrQ2xpZW50KFdLQnVuZGxl
UGFnZVBvaW50ZXJMb2NrQ2xpZW50KiBjbGllbnQpCit7CisgICAgbV9wb2ludGVyTG9ja0NsaWVu
dC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQogUGFzc1JlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNyZWF0ZVBsdWdpbihXZWJG
cmFtZSogZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FbGVtZW50LCBjb25zdCBQbHVn
aW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFN0cmluZyYgbmV3TUlNRVR5cGUpCiB7CkBAIC04
MjcsNiArODQ2LDkgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSAwOwogI2VuZGlmCisjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKKyAgICBtX3BvaW50ZXJMb2NrTWFuYWdlciA9IDA7CisjZW5kaWYKIAog
ICAgIGlmIChtX2FjdGl2ZVBvcHVwTWVudSkgewogICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudS0+
ZGlzY29ubmVjdEZyb21QYWdlKCk7CkBAIC0xNjU0LDYgKzE2NzYsMjcgQEAgc3RhdGljIGJvb2wg
aGFuZGxlTW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBXZWJQYWdl
KiBwYWdlLCBib28KIAogICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQg
PSBwbGF0Zm9ybShtb3VzZUV2ZW50KTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAg
aWYgKHBhZ2UtPnBvaW50ZXJMb2NrTWFuYWdlcigpLT5pc1BvaW50ZXJMb2NrZWQoKSkgeworICAg
ICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOworICAgICAgICBzd2l0Y2ggKG1vdXNlRXZlbnQu
dHlwZSgpKSB7CisgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TW91c2VEb3duOgorICAgICAg
ICAgICAgZXZlbnRUeXBlID0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50OworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TW91c2VVcDoKKyAgICAgICAg
ICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpNb3VzZU1vdmU6CisgICAgICAgICAg
ICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICB9CisgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPnBvaW50ZXJMb2NrQ29udHJv
bGxlcigpLT5kaXNwYXRjaExvY2tlZE1vdXNlRXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50LCBldmVu
dFR5cGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKwogICAgIHN3aXRj
aCAocGxhdGZvcm1Nb3VzZUV2ZW50LnR5cGUoKSkgewogICAgICAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUHJlc3NlZDogewogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMTkzNCwx
MiArMTk3NywyMCBAQCB2b2lkIFdlYlBhZ2U6OmhpZ2hsaWdodFBvdGVudGlhbEFjdGl2YXRpb24o
Y29uc3QgSW50UG9pbnQmIHBvaW50LCBjb25zdCBJbnRTaXplJgogfQogI2VuZGlmCiAKLXN0YXRp
YyBib29sIGhhbmRsZVRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwg
UGFnZSogcGFnZSkKK3N0YXRpYyBib29sIGhhbmRsZVRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hF
dmVudCYgdG91Y2hFdmVudCwgV2ViUGFnZSogcGFnZSkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBw
YWdlLT5tYWluRnJhbWUoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBwYWdlLT5jb3JlUGFnZSgpLT5t
YWluRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lLT52aWV3KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgLy8gQW55d2F5IG9yZGluYXJ5IGhh
bmRsaW5nIG11c3QgYmUgZGlzYWJsZWQsIG90aGVyd2lzZSBpdCBtYXkgY2F1c2UgaW5jb3JyZWN0
IGJlaGF2aW9yLgorICAgIGlmIChwYWdlLT5wb2ludGVyTG9ja01hbmFnZXIoKS0+aXNQb2ludGVy
TG9ja2VkKCkpIHsKKyAgICAgICAgLy8gRklYTUUgOiBJdCBtYXkgYmUgdGhhdCwgd2UgbmVlZCBz
cGVjaWFsIHRvdWNoZXZlbnRzIGhhbmRsaW5nIGluIFBvaW50ZXIgTG9jayBtb2RlLgorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorI2VuZGlmCisKICAgICByZXR1cm4gZnJhbWUtPmV2ZW50
SGFuZGxlcigpLT5oYW5kbGVUb3VjaEV2ZW50KHBsYXRmb3JtKHRvdWNoRXZlbnQpKTsKIH0KIApA
QCAtMTk1MCw3ICsyMDAxLDcgQEAgdm9pZCBXZWJQYWdlOjp0b3VjaEV2ZW50KGNvbnN0IFdlYlRv
dWNoRXZlbnQmIHRvdWNoRXZlbnQpCiAgICAgaWYgKGNhbkhhbmRsZVVzZXJFdmVudHMoKSkgewog
ICAgICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHRvdWNoRXZlbnQpOwogCi0gICAgICAg
IGhhbmRsZWQgPSBoYW5kbGVUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIG1fcGFnZS5nZXQoKSk7Cisg
ICAgICAgIGhhbmRsZWQgPSBoYW5kbGVUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIHRoaXMpOwogICAg
IH0KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVFdmVudChzdGF0
aWNfY2FzdDx1aW50MzJfdD4odG91Y2hFdmVudC50eXBlKCkpLCBoYW5kbGVkKSk7CiB9CkBAIC0x
OTU4LDcgKzIwMDksNyBAQCB2b2lkIFdlYlBhZ2U6OnRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hF
dmVudCYgdG91Y2hFdmVudCkKIHZvaWQgV2ViUGFnZTo6dG91Y2hFdmVudFN5bmNGb3JUZXN0aW5n
KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wmIGhhbmRsZWQpCiB7CiAgICAg
Q3VycmVudEV2ZW50IGN1cnJlbnRFdmVudCh0b3VjaEV2ZW50KTsKLSAgICBoYW5kbGVkID0gaGFu
ZGxlVG91Y2hFdmVudCh0b3VjaEV2ZW50LCBtX3BhZ2UuZ2V0KCkpOworICAgIGhhbmRsZWQgPSBo
YW5kbGVUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIHRoaXMpOwogfQogI2VuZGlmCiAKQEAgLTI2MDIs
NiArMjY1MywxNSBAQCBXZWJGdWxsU2NyZWVuTWFuYWdlciogV2ViUGFnZTo6ZnVsbFNjcmVlbk1h
bmFnZXIoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorV2ViUG9pbnRl
ckxvY2tNYW5hZ2VyKiBXZWJQYWdlOjpwb2ludGVyTG9ja01hbmFnZXIoKQoreworICAgIGlmICgh
bV9wb2ludGVyTG9ja01hbmFnZXIpCisgICAgICAgIG1fcG9pbnRlckxvY2tNYW5hZ2VyID0gV2Vi
UG9pbnRlckxvY2tNYW5hZ2VyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fcG9pbnRlckxv
Y2tNYW5hZ2VyLmdldCgpOworfQorI2VuZGlmCisKIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KCkKIHsKICAgICBpZiAobV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCkBA
IC0zMTcyLDYgKzMyMzIsMTMgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWcKICAgICB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQb2ludGVyTG9ja01hbmFnZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgeworICAgICAgICBwb2ludGVyTG9ja01hbmFnZXIoKS0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisj
ZW5kaWYKKwogICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggZWY1OWZmOTlmZmI2MTRiNTlhZjM5ODI2YWJmNDMzMDAxMzA2N2ZkMS4uMWU3MTNkOWM0MTg0
YmNiM2Q1YTQ5MzNiMzMyMTE4YTNlNjRjZjAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaCIKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxl
UGFnZVBvaW50ZXJMb2NrQ2xpZW50LmgiCisjZW5kaWYKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZVBhZ2VQb2xpY3lDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJj
ZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgpA
QCAtMTQ5LDYgKzE1Miw3IEBAIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBXZWJOb3RpZmlj
YXRpb25DbGllbnQ7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKIGNsYXNzIFdl
YlBhZ2VHcm91cFByb3h5OworY2xhc3MgV2ViUG9pbnRlckxvY2tNYW5hZ2VyOwogY2xhc3MgV2Vi
UG9wdXBNZW51OwogY2xhc3MgV2ViV2hlZWxFdmVudDsKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5n
OwpAQCAtMjAyLDYgKzIwNiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIq
IGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CisgICAgV2ViUG9pbnRlckxvY2tNYW5hZ2VyKiBwb2ludGVyTG9ja01hbmFnZXIoKTsKKyNlbmRp
ZgorCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTog
V2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVy
ZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwogICAgIHZvaWQgZHJhd1JlY3QoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwpAQCAtMjU4LDYg
KzI2Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUZ1bGxT
Y3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCopOwogI2VuZGlmCiAgICAg
dm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXS0J1
bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCopOworI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCisgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQb2ludGVyTG9ja0NsaWVudChX
S0J1bmRsZVBhZ2VQb2ludGVyTG9ja0NsaWVudCopOworI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudCYgaW5q
ZWN0ZWRCdW5kbGVDb250ZXh0TWVudUNsaWVudCgpIHsgcmV0dXJuIG1fY29udGV4dE1lbnVDbGll
bnQ7IH0KQEAgLTI3Miw2ICsyODMsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQmIGluamVjdGVkQnVu
ZGxlRnVsbFNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fZnVsbFNjcmVlbkNsaWVudDsgfQogI2Vu
ZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBJbmplY3RlZEJ1bmRsZVBhZ2VQb2lu
dGVyTG9ja0NsaWVudCYgaW5qZWN0ZWRCdW5kbGVQb2ludGVyTG9ja0NsaWVudCgpIHsgcmV0dXJu
IG1fcG9pbnRlckxvY2tDbGllbnQ7IH0KKyNlbmRpZgogCiAgICAgdm9pZCBzZXRVbmRlcmxheVBh
Z2UoUGFzc1JlZlB0cjxXZWJQYWdlPiB1bmRlcmxheVBhZ2UpIHsgbV91bmRlcmxheVBhZ2UgPSB1
bmRlcmxheVBhZ2U7IH0KIApAQCAtOTUzLDYgKzk2Nyw5IEBAIHByaXZhdGU6CiAgICAgSW5qZWN0
ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCBtX2Z1bGxTY3JlZW5DbGllbnQ7CiAjZW5kaWYK
ICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBtX2xvZ0RpYWdu
b3N0aWNNZXNzYWdlQ2xpZW50OworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgSW5qZWN0
ZWRCdW5kbGVQYWdlUG9pbnRlckxvY2tDbGllbnQgbV9wb2ludGVyTG9ja0NsaWVudDsKKyNlbmRp
ZgogCiAgICAgRmluZENvbnRyb2xsZXIgbV9maW5kQ29udHJvbGxlcjsKICNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKSAmJiBQTEFURk9STShRVCkKQEAgLTk2OCw2ICs5ODUsOSBAQCBwcml2YXRlOgog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFn
ZXI+IG1fZnVsbFNjcmVlbk1hbmFnZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQorICAgIFJlZlB0cjxXZWJQb2ludGVyTG9ja01hbmFnZXI+IG1fcG9pbnRlckxvY2tNYW5hZ2Vy
OworI2VuZGlmCiAgICAgUmVmUHRyPFdlYlBvcHVwTWVudT4gbV9hY3RpdmVQb3B1cE1lbnU7CiAj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgUmVmUHRyPFdlYkNvbnRleHRNZW51PiBtX2Nv
bnRleHRNZW51Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>