<?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>190759</bug_id>
          
          <creation_ts>2018-10-19 12:52:35 -0700</creation_ts>
          <short_desc>Mark LegacySync IPC messages</short_desc>
          <delta_ts>2018-10-21 05:56:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1470960</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-19 12:52:35 -0700</bug_when>
    <thetext>Mark LegacySync IPC messages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470962</commentid>
    <comment_count>1</comment_count>
      <attachid>352817</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-19 12:53:18 -0700</bug_when>
    <thetext>Created attachment 352817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470971</commentid>
    <comment_count>2</comment_count>
      <attachid>352819</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-19 13:25:04 -0700</bug_when>
    <thetext>Created attachment 352819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470975</commentid>
    <comment_count>3</comment_count>
      <attachid>352819</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-10-19 13:37:02 -0700</bug_when>
    <thetext>Comment on attachment 352819
Patch

Is there... a non-legacy &apos;sync&apos;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470979</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-19 13:38:54 -0700</bug_when>
    <thetext>Delayed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470981</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-19 13:40:48 -0700</bug_when>
    <thetext>In a future patch I&apos;ll rename Delayed to Sync and Async to nothing (default)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470985</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-10-19 14:12:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/r237300</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470987</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-19 14:13:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/45416245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471143</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-10-21 05:56:09 -0700</bug_when>
    <thetext>A bit of explanation in the changelog would have been nice.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352817</attachid>
            <date>2018-10-19 12:53:18 -0700</date>
            <delta_ts>2018-10-19 13:25:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190759-20181019125316.patch</filename>
            <type>text/plain</type>
            <size>58118</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzcyOTYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTEwLTE5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFyayBMZWdhY3lT
eW5jIElQQyBtZXNzYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkwNzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSGFuZGxl
TWVzc2FnZS5oOgorICAgICAgICAoSVBDOjpoYW5kbGVNZXNzYWdlTGVnYWN5U3luYyk6CisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2hhcmVkL1Bs
dWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQ
cm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDE4LTEwLTE5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW50cm9k
dWNlIENvbXBsZXRpb25IYW5kbGVyLWJhc2VkIEFzeW5jIElQQyBtZXNzYWdlcyB3aXRoIHJlcGxp
ZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2
aXNpb24gMjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzQsMTEg
KzM0LDExIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBT
dGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3Vn
Z2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
V2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2ll
c0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJM
IHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vz
c1NlY3VyZUNvb2tpZXMpCisgICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
IHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29y
ZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcg
Y29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIExlZ2FjeVN5bmMKICAg
ICBTZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVS
TCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywg
V2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tp
ZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgZW5hYmxlZCkKLSAg
ICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNh
bWVTaXRlSW5mbywgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29v
a2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpCi0gICAgR2V0UmF3Q29va2ll
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBzdHJ1
Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJMIHVybCwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
cGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKKyAgICBDb29raWVz
RW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGVuYWJsZWQpIExlZ2Fj
eVN5bmMKKyAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvIHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wg
V2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChT
dHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIExlZ2FjeVN5
bmMKKyAgICBHZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
VVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZv
LCBXZWJDb3JlOjpVUkwgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBj
b29raWVzKSBMZWdhY3lTeW5jCiAgICAgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3Rl
ckZpbGVCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkK
QEAgLTQ4LDcgKzQ4LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
cwogICAgIFJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKFdlYkNvcmU6OlVSTCB1
cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkwsIFN0cmluZyBmaWxlQmFja2VkUGF0aCwgU3RyaW5nIGNv
bnRlbnRUeXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFdlYkNvcmU6OlVSTCB1cmws
IFdlYkNvcmU6OlVSTCBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKQogICAgIFVu
cmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OlVSTCB1cmwpCi0gICAgQmxvYlNpemUoV2ViQ29yZTo6
VVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNpemUpCisgICAgQmxvYlNpemUoV2ViQ29yZTo6
VVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNpemUpIExlZ2FjeVN5bmMKICAgICBXcml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyhWZWN0b3I8U3RyaW5nPiBibG9iVVJMcywgdWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIpCiAKICAgICBTdG9yZURlcml2ZWREYXRhVG9DYWNoZShXZWJLaXQ6Ok5l
dHdvcmtDYWNoZTo6RGF0YUtleSBrZXksIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBk
YXRhKQpAQCAtNjYsMTcgKzY2LDE3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXMKICAgICBSZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTdHJpbmcgc291
cmNlT3JpZ2luLCBTdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgU3RyaW5nIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgUmVzZXRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RzKCk7CiAKLSAgICBHZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVxdWVz
dCh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QpOwotICAgIEdldE5ldHdvcmtMb2FkSW5mb3JtYXRpb25SZXNwb25zZSh1
aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSk7Ci0gICAgR2V0TmV0d29ya0xvYWRJbnRlcm1lZGlhdGVJbmZvcm1hdGlv
bih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoVmVjdG9yPFdlYkNvcmU6Ok5l
dHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uPiB0cmFuc2FjdGlvbnMpOwotICAgIFRha2VOZXR3
b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVy
KSAtPiAoV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzIG5ldHdvcmtNZXRyaWNzKTsKKyAgICBH
ZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVxdWVzdCh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpIExlZ2FjeVN5bmMK
KyAgICBHZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVzcG9uc2UodWludDY0X3QgcmVzb3VyY2VM
b2FkSWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIExl
Z2FjeVN5bmMKKyAgICBHZXROZXR3b3JrTG9hZEludGVybWVkaWF0ZUluZm9ybWF0aW9uKHVpbnQ2
NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChWZWN0b3I8V2ViQ29yZTo6TmV0d29ya1Ry
YW5zYWN0aW9uSW5mb3JtYXRpb24+IHRyYW5zYWN0aW9ucykgTGVnYWN5U3luYworICAgIFRha2VO
ZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlm
aWVyKSAtPiAoV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzIG5ldHdvcmtNZXRyaWNzKSBMZWdh
Y3lTeW5jCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBFc3RhYmxpc2hJREJD
b25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAodWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRv
U2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKSBMZWdhY3lTeW5jCiAgICAgUmVtb3ZlSURCQ29ubmVjdGlvblRvU2Vy
dmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgRXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgRXN0YWJsaXNoU1dTZXJ2
ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpIExlZ2Fj
eVN5bmMKICNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9j
ZXNzIExlZ2FjeVJlY2VpdmUKICAgICBTZXRRT1MoaW50IGxhdGVuY3lRT1MsIGludCB0aHJvdWdo
cHV0UU9TKQogICAgIFNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNl
bmRpZgotICAgIFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgZW5h
YmxlZCkgLT4gKCkKKyAgICBTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChi
b29sIGVuYWJsZWQpIC0+ICgpIExlZ2FjeVN5bmMKIAogICAgIFN5bmNBbGxDb29raWVzKCkKIApA
QCAtNjgsNyArNjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZl
CiAgICAgUHJvY2Vzc0RpZFRyYW5zaXRpb25Ub0JhY2tncm91bmQoKQogICAgIFByb2Nlc3NEaWRU
cmFuc2l0aW9uVG9Gb3JlZ3JvdW5kKCkKIAotICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHkoKSAtPiAoYm9vbCBoYW5kbGVkKQorICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHko
KSAtPiAoYm9vbCBoYW5kbGVkKSBMZWdhY3lTeW5jCiAgICAgUHJlcGFyZVRvU3VzcGVuZCgpCiAg
ICAgQ2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgpCkBAIC0x
MDEsMTYgKzEwMSwxNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZl
CiAgICAgU2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IHF1b3RhLCBTdHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQotRGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllcikKLURpZEZhaWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQot
RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKLURp
ZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3Qg
ZW5jb2RlZERhdGFMZW5ndGgpCi1EaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIGRhdGEpCi1EaWRGaW5pc2hGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIgZmV0Y2hJZGVudGlmaWVyKQotUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoc3Ry
dWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2Us
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0cmlu
ZyBzb3VyY2VPcmlnaW4pCisgICAgRGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKKyAgICBEaWRGYWlsRmV0Y2goV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBlcnJvcikKKyAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIERpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCisgICAgRGlkUmVj
ZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCisg
ICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAK
LVBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMg
bWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBzb3VyY2Us
IFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgZGVzdGluYXRpb24sIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3Nh
Z2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVy
IHNvdXJjZSwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllcikKIAotRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxh
eSgpCisgICAgRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpCiAj
ZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNv
bm5lY3Rpb24gewogICAgIFJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhIGRhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKLSAg
ICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdv
cmtlcklkZW50aWZpZXIpIC0+ICgpCisgICAgU3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBMZWdhY3lTeW5j
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5oCShyZXZpc2lvbiAyMzcyOTQpCisrKyBT
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoRGVjb2RlciYgZGVjb2Rlciwg
QyogCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgot
dm9pZCBoYW5kbGVNZXNzYWdlKERlY29kZXImIGRlY29kZXIsIEVuY29kZXImIHJlcGx5RW5jb2Rl
ciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZUxlZ2FjeVN5bmMo
RGVjb2RlciYgZGVjb2RlciwgRW5jb2RlciYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQogewogICAgIHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRz
Pjo6VHlwZSBhcmd1bWVudHM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKSB7
CkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBoYW5kbGVNZXNzYWdlKERlY29kZXImIGRlY29kZXIs
IEVuYwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4K
LXZvaWQgaGFuZGxlTWVzc2FnZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEZWNvZGVyJiBkZWNv
ZGVyLCBFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lk
IGhhbmRsZU1lc3NhZ2VMZWdhY3lTeW5jKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIERlY29kZXIm
IGRlY29kZXIsIEVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikK
IHsKICAgICB0eXBlbmFtZSBDb2RpbmdUeXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGUg
YXJndW1lbnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRzKSkgewpJbmRleDog
U291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OSwyOCArNjksMjggQEAgbWVzc2FnZXMgLT4gUGx1Z2luQ29udHJvbGxl
clByb3h5IExlZ2FjeQogICAgIEhhbmRsZU1vdXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50
IG1vdXNlRXZlbnQpCiAgICAgCiAgICAgIyBTZW50IHdoZW4gYSBtb3VzZSB3aGVlbCBldmVudCBz
aG91bGQgYmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpXZWJXaGVl
bEV2ZW50IHdoZWVsRXZlbnQpIC0+IChib29sIGhhbmRsZWQpCisgICAgSGFuZGxlV2hlZWxFdmVu
dChXZWJLaXQ6OldlYldoZWVsRXZlbnQgd2hlZWxFdmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgTGVn
YWN5U3luYwogCiAgICAgIyBTZW50IHdoZW4gYSBtb3VzZSBlbnRlciBldmVudCBzaG91bGQgYmUg
cHJvY2Vzc2VkLgotICAgIEhhbmRsZU1vdXNlRW50ZXJFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZl
bnQgbW91c2VFdmVudCkgLT4gKGJvb2wgaGFuZGxlZCkKKyAgICBIYW5kbGVNb3VzZUVudGVyRXZl
bnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIExl
Z2FjeVN5bmMKICAgICAKICAgICAjIFNlbnQgd2hlbiBhIG1vdXNlIGxlYXZlIGV2ZW50IHNob3Vs
ZCBiZSBwcm9jZXNzZWQuCi0gICAgSGFuZGxlTW91c2VMZWF2ZUV2ZW50KFdlYktpdDo6V2ViTW91
c2VFdmVudCBtb3VzZUV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKQorICAgIEhhbmRsZU1vdXNlTGVh
dmVFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgbW91c2VFdmVudCkgLT4gKGJvb2wgaGFuZGxl
ZCkgTGVnYWN5U3luYwogCiAgICAgIyBTZW50IHdoZW4gYSBrZXlib2FyZCBzaG91bGQgYmUgcHJv
Y2Vzc2VkLgotICAgIEhhbmRsZUtleWJvYXJkRXZlbnQoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
IGtleWJvYXJkRXZlbnQpIC0+IChib29sIGhhbmRsZWQpCisgICAgSGFuZGxlS2V5Ym9hcmRFdmVu
dChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQga2V5Ym9hcmRFdmVudCkgLT4gKGJvb2wgaGFuZGxl
ZCkgTGVnYWN5U3luYwogICAgIAogICAgICMgU2VudCB3aGVuIGFuIGVkaXRpbmcgY29tbWFuZCBz
aG91bGQgYmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZUVkaXRpbmdDb21tYW5kKFN0cmluZyBjb21t
YW5kTmFtZSwgU3RyaW5nIGFyZ3VtZW50KSAtPiAoYm9vbCBoYW5kbGVkKTsKKyAgICBIYW5kbGVF
ZGl0aW5nQ29tbWFuZChTdHJpbmcgY29tbWFuZE5hbWUsIFN0cmluZyBhcmd1bWVudCkgLT4gKGJv
b2wgaGFuZGxlZCkgTGVnYWN5U3luYwogICAgIAogICAgICMgUmV0dXJuIHdoZXRoZXIgb3Igbm90
IGEgcGx1Z2luIHdhbnRzIHRvIGVuYWJsZSB0aGUgZ2l2ZW4gZWRpdGluZyBjb21tYW5kLgotICAg
IElzRWRpdGluZ0NvbW1hbmRFbmFibGVkKFN0cmluZyBjb21tYW5kTmFtZSkgLT4gKGJvb2wgZW5h
YmxlZCk7CisgICAgSXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQoU3RyaW5nIGNvbW1hbmROYW1lKSAt
PiAoYm9vbCBlbmFibGVkKSBMZWdhY3lTeW5jCiAgICAgCiAgICAgIyBSZXR1cm4gd2hldGhlciBv
ciBub3QgYSBwbHVnaW4gd2FudHMgdG8gaGFuZGxlIHBhZ2Ugc2NhbGUgZmFjdG9yIGl0c2VsZi4K
LSAgICBIYW5kbGVzUGFnZVNjYWxlRmFjdG9yKCkgLT4gKGJvb2wgZW5hYmxlZCk7CisgICAgSGFu
ZGxlc1BhZ2VTY2FsZUZhY3RvcigpIC0+IChib29sIGVuYWJsZWQpIExlZ2FjeVN5bmMKIAogICAg
ICMgUmV0dXJuIHdoZXRoZXIgb3Igbm90IGEgcGx1Z2luIHdhbnRzIHBhZ2Ugc2NhbGUsIHBhZ2Ug
em9vbSwgYW5kIHRleHQgem9vbSBhbGwgdG8gYWZmZWN0IHBhZ2Ugc2NhbGUuCi0gICAgUmVxdWly
ZXNVbmlmaWVkU2NhbGVGYWN0b3IoKSAtPiAoYm9vbCByZXF1aXJlZCk7CisgICAgUmVxdWlyZXNV
bmlmaWVkU2NhbGVGYWN0b3IoKSAtPiAoYm9vbCByZXF1aXJlZCkgTGVnYWN5U3luYwogCiAgICAg
IyBTZW50IHdoZW4gdGhlIHBsdWctaW4gZm9jdXMgY2hhbmdlcy4KICAgICBTZXRGb2N1cyhib29s
IGlzRm9jdXNlZCkKQEAgLTk5LDEwICs5OSwxMCBAQCBtZXNzYWdlcyAtPiBQbHVnaW5Db250cm9s
bGVyUHJveHkgTGVnYWN5CiAgICAgRGlkVXBkYXRlKCkKIAogICAgICMgUGFpbnQgdGhlIGVudGly
ZSBwbHVnLWluLgotICAgIFBhaW50RW50aXJlUGx1Z2luKCkgLT4gKCkKKyAgICBQYWludEVudGly
ZVBsdWdpbigpIC0+ICgpIExlZ2FjeVN5bmMKIAogICAgICMgR2V0IGEgcmVmZXJlbmNlIHRvIHRo
ZSBwbHVnLWluJ3Mgc2NyaXB0YWJsZSBOUE9iamVjdC4KLSAgICBHZXRQbHVnaW5TY3JpcHRhYmxl
TlBPYmplY3QoKSAtPiAodWludDY0X3QgcGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0SUQpCisgICAg
R2V0UGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0KCkgLT4gKHVpbnQ2NF90IHBsdWdpblNjcmlwdGFi
bGVOUE9iamVjdElEKSBMZWdhY3lTeW5jCiAKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmlu
ZyBOU1dpbmRvdydzIGZvY3VzIGNoYW5nZXMKICAgICBXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBo
YXNGb2N1cykKQEAgLTEyMiwxMCArMTIyLDEwIEBAIG1lc3NhZ2VzIC0+IFBsdWdpbkNvbnRyb2xs
ZXJQcm94eSBMZWdhY3kKICNlbmRpZgogCiAgICAgIyBEb2VzIHRoZSBwbHVnaW4gc3VwcG9ydCBz
bmFwc2hvdHRpbmc/Ci0gICAgU3VwcG9ydHNTbmFwc2hvdHRpbmcoKSAtPiAoYm9vbCBpc1N1cHBv
cnRlZCkKKyAgICBTdXBwb3J0c1NuYXBzaG90dGluZygpIC0+IChib29sIGlzU3VwcG9ydGVkKSBM
ZWdhY3lTeW5jCiAKICAgICAjIFJldHVybiBhIHNuYXBzaG90IG9mIHRoZSBwbHVnaW4uCi0gICAg
U25hcHNob3QoKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBiYWNraW5nU3Rv
cmVIYW5kbGUpCisgICAgU25hcHNob3QoKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSBiYWNraW5nU3RvcmVIYW5kbGUpIExlZ2FjeVN5bmMKIAogICAgICMgU2VudCB3aGVuIHN0
b3JhZ2UgYmxvY2tpbmcgcG9saWN5IGNoYW5nZXMKICAgICBTdG9yYWdlQmxvY2tpbmdTdGF0ZUNo
YW5nZWQoYm9vbCBzdG9yYWdlQmxvY2tpbmdFbmFibGVkKQpAQCAtMTM0LDcgKzEzNCw3IEBAIG1l
c3NhZ2VzIC0+IFBsdWdpbkNvbnRyb2xsZXJQcm94eSBMZWdhY3kKICAgICBQcml2YXRlQnJvd3Np
bmdTdGF0ZUNoYW5nZWQoYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiAKICAgICAjIEdl
dHMgdGhlIHN0cmluZyByZXByZXNlbnRhdGluZyB0aGUgZm9ybSB2YWx1ZSBvZiB0aGUgcGx1Zy1p
bgotICAgIEdldEZvcm1WYWx1ZSgpIC0+IChib29sIHJldHVyblZhbHVlLCBTdHJpbmcgZm9ybVZh
bHVlKQorICAgIEdldEZvcm1WYWx1ZSgpIC0+IChib29sIHJldHVyblZhbHVlLCBTdHJpbmcgZm9y
bVZhbHVlKSBMZWdhY3lTeW5jCiAKICAgICAjIFNlbnQgd2hlbiB0aGUgYnJvd3NlciB3YW50cyB0
byBtdXRlIG9yIHVubXV0ZSB0aGUgcGx1Z2luLgogICAgIE11dGVkU3RhdGVDaGFuZ2VkKGJvb2wg
bXV0ZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkJKHJl
dmlzaW9uIDIzNzI5NCkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAgV0FOVFNfQ09OTkVDVElPTl9BVFRS
SUJVVEUgPSAnV2FudHNDb25uZQogTEVHQUNZX1JFQ0VJVkVSX0FUVFJJQlVURSA9ICdMZWdhY3lS
ZWNlaXZlcicKIERFTEFZRURfQVRUUklCVVRFID0gJ0RlbGF5ZWQnCiBBU1lOQ19BVFRSSUJVVEUg
PSAnQXN5bmMnCitMRUdBQ1lfU1lOQ19BVFRSSUJVVEUgPSAnTGVnYWN5U3luYycKIAogX2xpY2Vu
c2VfaGVhZGVyID0gIiIiLyoKICAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTEyMiwxNiArMTIzLDE2IEBAIGRlZiBtZXNzYWdlX3Rv
X3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWcKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAg
aWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzICE9IE5vbmU6CiAgICAgICAgIHNlbmRfcGFyYW1l
dGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBlLCB4LmtpbmQpLCB4Lm5hbWUp
IGZvciB4IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyc10KKyAgICAgICAgY29tcGxldGlvbl9o
YW5kbGVyX3BhcmFtZXRlcnMgPSAnJXMnICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3IgeCBp
biBzZW5kX3BhcmFtZXRlcnNdKQorICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZ
TkNfQVRUUklCVVRFKToKKyAgICAgICAgICAgIG1vdmVfcGFyYW1ldGVycyA9ICcsICcuam9pbihb
bW92ZV90eXBlKHgudHlwZSkgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXSkKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpE
ZWNvZGVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFyYW1l
dGVycykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBjYW5jZWxS
ZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCVzKT4mJik7XG4nICUgbW92ZV9wYXJhbWV0ZXJz
KQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiB7ICIlc1JlcGx5IiB9OyB9XG4n
ICUgbWVzc2FnZS5uYW1lKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIEFz
eW5jUmVwbHknKQorICAgICAgICBlbGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FU
VFJJQlVURSk6CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgRGVsYXllZFJl
cGx5JykKICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRF
KSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKLSAgICAgICAgICAg
IGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzID0gJyVzJyAlICcsICcuam9pbihbJyAnLmpv
aW4oeCkgZm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkKLSAgICAgICAgICAgIGlmIG1lc3NhZ2Uu
aGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgotICAgICAgICAgICAgICAgIG1vdmVfcGFy
YW1ldGVycyA9ICcsICcuam9pbihbbW92ZV90eXBlKHgudHlwZSkgZm9yIHggaW4gbWVzc2FnZS5y
ZXBseV9wYXJhbWV0ZXJzXSkKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3Rh
dGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
JXMpPiYmKTtcbicgJSBtb3ZlX3BhcmFtZXRlcnMpCi0gICAgICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnICAgIHN0YXRpYyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
JXMpPiYmKTtcbicgJSBtb3ZlX3BhcmFtZXRlcnMpCi0gICAgICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBhc3luY01lc3NhZ2VSZXBseU5h
bWUoKSB7IHJldHVybiB7ICIlc1JlcGx5IiB9OyB9XG4nICUgbWVzc2FnZS5uYW1lKQotICAgICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBBc3luY1JlcGx5JykKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHVzaW5nIERlbGF5
ZWRSZXBseScpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCVzKT47XG4nICUgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMpCiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgc2VuZChzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mJykKICAgICAgICAgICAgIGlmIGxlbihz
ZW5kX3BhcmFtZXRlcnMpOgpAQCAtMzA3LDYgKzMwOCw4IEBAIGRlZiBzeW5jX21lc3NhZ2Vfc3Rh
dGVtZW50KHJlY2VpdmVyLCBtZXMKICAgICAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gKz0gJ0RlbGF5
ZWQnCiAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6CiAgICAg
ICAgIGRpc3BhdGNoX2Z1bmN0aW9uICs9ICdBc3luYycKKyAgICBpZiBtZXNzYWdlLmhhc19hdHRy
aWJ1dGUoTEVHQUNZX1NZTkNfQVRUUklCVVRFKToKKyAgICAgICAgZGlzcGF0Y2hfZnVuY3Rpb24g
Kz0gJ0xlZ2FjeVN5bmMnCiAKICAgICB3YW50c19jb25uZWN0aW9uID0gbWVzc2FnZS5oYXNfYXR0
cmlidXRlKERFTEFZRURfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoV0FOVFNf
Q09OTkVDVElPTl9BVFRSSUJVVEUpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdp
bnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9O
UE9iamVjdE1lc3NhZ2VSZWNlaXZlci5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjMs
MTYgKzIzLDE2IEBACiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKIG1lc3NhZ2Vz
IC0+IE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIExlZ2FjeVJlY2VpdmVyIHsKLSAgICBEZWFsbG9j
YXRlKCkgLT4gKCkKLSAgICBIYXNNZXRob2QoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIG1ldGhv
ZE5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKQotICAgIEludm9rZShXZWJLaXQ6Ok5QSWRlbnRp
ZmllckRhdGEgbWV0aG9kTmFtZSwgVmVjdG9yPFdlYktpdDo6TlBWYXJpYW50RGF0YT4gYXJndW1l
bnRzRGF0YSkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0YSByZXN1
bHREYXRhKQotICAgIEludm9rZURlZmF1bHQoVmVjdG9yPFdlYktpdDo6TlBWYXJpYW50RGF0YT4g
YXJndW1lbnRzRGF0YSkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0
YSByZXN1bHREYXRhKQotICAgIEhhc1Byb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBw
cm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKQotICAgIEdldFByb3BlcnR5KFdlYktp
dDo6TlBJZGVudGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlLCBX
ZWJLaXQ6Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkKLSAgICBTZXRQcm9wZXJ0eShXZWJLaXQ6
Ok5QSWRlbnRpZmllckRhdGEgcHJvcGVydHlOYW1lLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEgcHJv
cGVydHlWYWx1ZURhdGEpIC0+IChib29sIHJldHVyblZhbHVlKQotICAgIFJlbW92ZVByb3BlcnR5
KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZh
bHVlKQotICAgIEVudW1lcmF0ZSgpIC0+IChib29sIHJldHVyblZhbHVlLCBWZWN0b3I8V2ViS2l0
OjpOUElkZW50aWZpZXJEYXRhPiBpZGVudGlmaWVyc0RhdGEpCi0gICAgQ29uc3RydWN0KFZlY3Rv
cjxXZWJLaXQ6Ok5QVmFyaWFudERhdGE+IGFyZ3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZh
bHVlLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkKKyAgICBEZWFsbG9jYXRlKCkg
LT4gKCkgTGVnYWN5U3luYworICAgIEhhc01ldGhvZChXZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGEg
bWV0aG9kTmFtZSkgLT4gKGJvb2wgcmV0dXJuVmFsdWUpIExlZ2FjeVN5bmMKKyAgICBJbnZva2Uo
V2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIG1ldGhvZE5hbWUsIFZlY3RvcjxXZWJLaXQ6Ok5QVmFy
aWFudERhdGE+IGFyZ3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5Q
VmFyaWFudERhdGEgcmVzdWx0RGF0YSkgTGVnYWN5U3luYworICAgIEludm9rZURlZmF1bHQoVmVj
dG9yPFdlYktpdDo6TlBWYXJpYW50RGF0YT4gYXJndW1lbnRzRGF0YSkgLT4gKGJvb2wgcmV0dXJu
VmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0YSByZXN1bHREYXRhKSBMZWdhY3lTeW5jCisgICAg
SGFzUHJvcGVydHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSkgLT4gKGJv
b2wgcmV0dXJuVmFsdWUpIExlZ2FjeVN5bmMKKyAgICBHZXRQcm9wZXJ0eShXZWJLaXQ6Ok5QSWRl
bnRpZmllckRhdGEgcHJvcGVydHlOYW1lKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgV2ViS2l0OjpO
UFZhcmlhbnREYXRhIHJlc3VsdERhdGEpIExlZ2FjeVN5bmMKKyAgICBTZXRQcm9wZXJ0eShXZWJL
aXQ6Ok5QSWRlbnRpZmllckRhdGEgcHJvcGVydHlOYW1lLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEg
cHJvcGVydHlWYWx1ZURhdGEpIC0+IChib29sIHJldHVyblZhbHVlKSBMZWdhY3lTeW5jCisgICAg
UmVtb3ZlUHJvcGVydHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSkgLT4g
KGJvb2wgcmV0dXJuVmFsdWUpIExlZ2FjeVN5bmMKKyAgICBFbnVtZXJhdGUoKSAtPiAoYm9vbCBy
ZXR1cm5WYWx1ZSwgVmVjdG9yPFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YT4gaWRlbnRpZmllcnNE
YXRhKSBMZWdhY3lTeW5jCisgICAgQ29uc3RydWN0KFZlY3RvcjxXZWJLaXQ6Ok5QVmFyaWFudERh
dGE+IGFyZ3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5QVmFyaWFu
dERhdGEgcmVzdWx0RGF0YSkgTGVnYWN5U3luYwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtMjIsNyArMjIsNyBAQAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogbWVzc2Fn
ZXMgLT4gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSB7Ci0gICAgU3VwcG9ydHNGdWxsU2NyZWVu
KGJvb2wgd2l0aEtleWJvYXJkKSAtPiAoYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4pCisgICAgU3Vw
cG9ydHNGdWxsU2NyZWVuKGJvb2wgd2l0aEtleWJvYXJkKSAtPiAoYm9vbCBzdXBwb3J0c0Z1bGxT
Y3JlZW4pIExlZ2FjeVN5bmMKICAgICBFbnRlckZ1bGxTY3JlZW4oKQogICAgIEV4aXRGdWxsU2Ny
ZWVuKCkKICAgICBCZWdhbkVudGVyRnVsbFNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxS
ZWN0LCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDIzNzI5NCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29y
a2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
ICAgIEdldFdpbmRvd0ZyYW1lKCkgLT4gKFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFtZSkg
RGVsYXllZAogICAgIFNjcmVlblRvUm9vdFZpZXcoV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9p
bnQpIC0+IChXZWJDb3JlOjpJbnRQb2ludCB3aW5kb3dQb2ludCkgRGVsYXllZAogICAgIFJvb3RW
aWV3VG9TY3JlZW4oV2ViQ29yZTo6SW50UmVjdCByZWN0KSAtPiAoV2ViQ29yZTo6SW50UmVjdCBz
Y3JlZW5GcmFtZSkgRGVsYXllZAotICAgIEdldElzVmlld1Zpc2libGUoKSAtPiAoYm9vbCByZXN1
bHQpCisgICAgR2V0SXNWaWV3VmlzaWJsZSgpIC0+IChib29sIHJlc3VsdCkgTGVnYWN5U3luYwog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU2hvd1ZhbGlkYXRpb25NZXNzYWdlKFdlYkNvcmU6
OkludFJlY3QgYW5jaG9yUmVjdCwgU3RyaW5nIG1lc3NhZ2UpCkBAIC02OSwxNSArNjksMTUgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBBY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290VmlldyhXZWJDb3JlOjpJbnRQb2lu
dCBzY3JlZW5Qb2ludCkgLT4gKFdlYkNvcmU6OkludFBvaW50IHdpbmRvd1BvaW50KQotICAgIFJv
b3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKFdlYkNvcmU6OkludFJlY3QgcmVjdCkgLT4gKFdl
YkNvcmU6OkludFJlY3Qgc2NyZWVuRnJhbWUpCisgICAgQWNjZXNzaWJpbGl0eVNjcmVlblRvUm9v
dFZpZXcoV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpIC0+IChXZWJDb3JlOjpJbnRQb2lu
dCB3aW5kb3dQb2ludCkgTGVnYWN5U3luYworICAgIFJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2Ny
ZWVuKFdlYkNvcmU6OkludFJlY3QgcmVjdCkgLT4gKFdlYkNvcmU6OkludFJlY3Qgc2NyZWVuRnJh
bWUpIExlZ2FjeVN5bmMKICNlbmRpZgogCiAgICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJh
bWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBE
ZWxheWVkCiAgICAgUGFnZURpZFNjcm9sbCgpCiAgICAgUnVuT3BlblBhbmVsKHVpbnQ2NF90IGZy
YW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9y
aWdpbiwgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKICAg
ICBTaG93U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBz
aGFyZURhdGEsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgUHJpbnRGcmFtZSh1aW50NjRfdCBm
cmFtZUlEKSAtPiAoKQorICAgIFByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCkgLT4gKCkgTGVn
YWN5U3luYwogICAgIFJ1bk1vZGFsKCkKICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxl
SW5SZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNj
cm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpCkBAIC0xNDksNyArMTQ5LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRDaGFuZ2VNYWluRG9jdW1lbnQo
dWludDY0X3QgZnJhbWVJRCk7CiAgICAgRGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2
aWdhdGlvbklEKQogCi0gICAgSGFzSW5zZWN1cmVDb250ZW50KCkgLT4gKGVudW06Ym9vbCBXZWJD
b3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQgaGFzSW5zZWN1cmVDb250ZW50KQorICAgIEhhc0luc2Vj
dXJlQ29udGVudCgpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50IGhh
c0luc2VjdXJlQ29udGVudCkgTGVnYWN5U3luYwogCiAgICAgTWFpbkZyYW1lUGx1Z2luSGFuZGxl
c1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFn
ZVNjYWxlR2VzdHVyZSkKIApAQCAtMTkzLDcgKzE5Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgQXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJhY2soVmVjdG9yPFdlYkNvcmU6OkZs
b2F0UmVjdD4gdGV4dFJlY3RzLCBTdHJpbmcgZm9udE5hbWUsIGRvdWJsZSBmb250U2l6ZSwgdWlu
dDY0X3QgdHJhaXRzLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBBdXRvY29y
cmVjdGlvbkNvbnRleHRDYWxsYmFjayhTdHJpbmcgYmVmb3JlVGV4dCwgU3RyaW5nIG1hcmtlZFRl
eHQsIFN0cmluZyBzZWxlY3RlZFRleHQsIFN0cmluZyBhZnRlclRleHQsIHVpbnQ2NF90IGxvY2F0
aW9uLCB1aW50NjRfdCBsZW5ndGgsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAg
IFNlbGVjdGlvbkNvbnRleHRDYWxsYmFjayhTdHJpbmcgc2VsZWN0ZWRUZXh0LCBTdHJpbmcgYmVm
b3JlVGV4dCwgU3RyaW5nIGFmdGVyVGV4dCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci0gICAgSW50ZXJwcmV0S2V5RXZlbnQoc3RydWN0IFdlYktpdDo6RWRpdG9yU3RhdGUgc3RhdGUs
IGJvb2wgaXNDaGFyRXZlbnQpIC0+IChib29sIGhhbmRsZWQpCisgICAgSW50ZXJwcmV0S2V5RXZl
bnQoc3RydWN0IFdlYktpdDo6RWRpdG9yU3RhdGUgc3RhdGUsIGJvb2wgaXNDaGFyRXZlbnQpIC0+
IChib29sIGhhbmRsZWQpIExlZ2FjeVN5bmMKICAgICBEaWRSZWNlaXZlUG9zaXRpb25JbmZvcm1h
dGlvbihzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZv
cm1hdGlvbikKICAgICBTYXZlSW1hZ2VUb0xpYnJhcnkoV2ViS2l0OjpTaGFyZWRNZW1vcnk6Okhh
bmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpCiAgICAgU2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6OkludFJlY3QgZWxlbWVudFJlY3QsIGVudW06dWludDhf
dCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5LCBTdHJpbmcgcm91dGluZ0NvbnRl
eHRVSUQpCkBAIC0yMjgsMTAgKzIyOCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
CiAgICAgIyBCYWNrRm9yd2FyZCBtZXNzYWdlcwogICAgIEJhY2tGb3J3YXJkQWRkSXRlbShzdHJ1
Y3QgV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgaXRlbVN0YXRlKQotICAgIEJhY2tG
b3J3YXJkR29Ub0l0ZW0oc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIg
aXRlbUlEKSAtPiAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSkKLSAgICBCYWNrRm9yd2FyZEl0ZW1BdEluZGV4KGludDMyX3QgaXRlbUluZGV4
KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyPiBp
dGVtSUQpCi0gICAgQmFja0ZvcndhcmRCYWNrTGlzdENvdW50KCkgLT4gKHVpbnQzMl90IGNvdW50
KQotICAgIEJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgpIC0+ICh1aW50MzJfdCBjb3VudCkK
KyAgICBCYWNrRm9yd2FyZEdvVG9JdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyIGl0ZW1JRCkgLT4gKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUpIExlZ2FjeVN5bmMKKyAgICBCYWNrRm9yd2FyZEl0ZW1BdElu
ZGV4KGludDMyX3QgaXRlbUluZGV4KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyPiBpdGVtSUQpIExlZ2FjeVN5bmMKKyAgICBCYWNrRm9yd2FyZEJh
Y2tMaXN0Q291bnQoKSAtPiAodWludDMyX3QgY291bnQpIExlZ2FjeVN5bmMKKyAgICBCYWNrRm9y
d2FyZEZvcndhcmRMaXN0Q291bnQoKSAtPiAodWludDMyX3QgY291bnQpIExlZ2FjeVN5bmMKICAg
ICBCYWNrRm9yd2FyZENsZWFyKCkKICAgICBXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oc3Ry
dWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgaXRlbUlELCBib29sIGluUGFn
ZUNhY2hlKQogCkBAIC0yMzksOCArMjM5LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsK
ICAgICBSZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyh1aW50NjRfdCBjb21tYW5kSUQsIHVpbnQz
Ml90IGVkaXRBY3Rpb24pCiAgICAgQ2xlYXJBbGxFZGl0Q29tbWFuZHMoKQogICAgIFJlZ2lzdGVy
SW5zZXJ0aW9uVW5kb0dyb3VwaW5nKCkKLSAgICBDYW5VbmRvUmVkbyhlbnVtOmJvb2wgV2ViS2l0
OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pIC0+IChib29sIHJlc3VsdCkKLSAgICBFeGVjdXRlVW5k
b1JlZG8oZW51bTpib29sIFdlYktpdDo6VW5kb09yUmVkbyB1bmRvT3JSZWRvKSAtPiAoKQorICAg
IENhblVuZG9SZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVkbykgLT4g
KGJvb2wgcmVzdWx0KSBMZWdhY3lTeW5jCisgICAgRXhlY3V0ZVVuZG9SZWRvKGVudW06Ym9vbCBX
ZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVkbykgLT4gKCkgTGVnYWN5U3luYwogCiAgICAgIyBE
aWFnbm9zdGljIG1lc3NhZ2VzIGxvZ2dpbmcKICAgICBMb2dEaWFnbm9zdGljTWVzc2FnZShTdHJp
bmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxk
U2FtcGxlIHNob3VsZFNhbXBsZSkKQEAgLTMwMCwxNiArMzAwLDE2IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAKICAgICAjIFNwZWxsaW5nIGFuZCBncmFtbWFyIG1lc3NhZ2VzCiAjaWYg
VVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykgIAotICAgIENoZWNrVGV4dE9mUGFyYWdyYXBoKFN0
cmluZyB0ZXh0LCBPcHRpb25TZXQ8V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZT4gY2hlY2tpbmdU
eXBlcywgaW50MzJfdCBpbnNlcnRpb25Qb2ludCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXN1bHQ+IHJlc3VsdHMpCisgICAgQ2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nIHRl
eHQsIE9wdGlvblNldDxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlPiBjaGVja2luZ1R5cGVzLCBp
bnQzMl90IGluc2VydGlvblBvaW50KSAtPiAoVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
c3VsdD4gcmVzdWx0cykgTGVnYWN5U3luYwogI2VuZGlmCi0gICAgQ2hlY2tTcGVsbGluZ09mU3Ry
aW5nKFN0cmluZyB0ZXh0KSAtPiAoaW50MzJfdCBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQzMl90
IG1pc3NwZWxsaW5nTGVuZ3RoKQotICAgIENoZWNrR3JhbW1hck9mU3RyaW5nKFN0cmluZyB0ZXh0
KSAtPiAoVmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+IHJlc3VsdHMsIGludDMyX3QgYmFk
R3JhbW1hckxvY2F0aW9uLCBpbnQzMl90IGJhZEdyYW1tYXJMZW5ndGgpCi0gICAgU3BlbGxpbmdV
SUlzU2hvd2luZygpIC0+IChib29sIGlzU2hvd2luZykKKyAgICBDaGVja1NwZWxsaW5nT2ZTdHJp
bmcoU3RyaW5nIHRleHQpIC0+IChpbnQzMl90IG1pc3NwZWxsaW5nTG9jYXRpb24sIGludDMyX3Qg
bWlzc3BlbGxpbmdMZW5ndGgpIExlZ2FjeVN5bmMKKyAgICBDaGVja0dyYW1tYXJPZlN0cmluZyhT
dHJpbmcgdGV4dCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiByZXN1bHRzLCBp
bnQzMl90IGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50MzJfdCBiYWRHcmFtbWFyTGVuZ3RoKSBMZWdh
Y3lTeW5jCisgICAgU3BlbGxpbmdVSUlzU2hvd2luZygpIC0+IChib29sIGlzU2hvd2luZykgTGVn
YWN5U3luYwogICAgIFVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoU3RyaW5nIG1p
c3NwZWxsZWRXb3JkKQogICAgIFVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhTdHJp
bmcgYmFkR3JhbW1hclBocmFzZSwgc3RydWN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwgZ3JhbW1h
ckRldGFpbCkKLSAgICBHZXRHdWVzc2VzRm9yV29yZChTdHJpbmcgd29yZCwgU3RyaW5nIGNvbnRl
eHQsIGludDMyX3QgaW5zZXJ0aW9uUG9pbnQpIC0+IChWZWN0b3I8U3RyaW5nPiBndWVzc2VzKQot
ICAgIExlYXJuV29yZChTdHJpbmcgd29yZCk7Ci0gICAgSWdub3JlV29yZChTdHJpbmcgd29yZCk7
CisgICAgR2V0R3Vlc3Nlc0ZvcldvcmQoU3RyaW5nIHdvcmQsIFN0cmluZyBjb250ZXh0LCBpbnQz
Ml90IGluc2VydGlvblBvaW50KSAtPiAoVmVjdG9yPFN0cmluZz4gZ3Vlc3NlcykgTGVnYWN5U3lu
YworICAgIExlYXJuV29yZChTdHJpbmcgd29yZCkKKyAgICBJZ25vcmVXb3JkKFN0cmluZyB3b3Jk
KQogICAgIFJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEgcmVxdWVzdCwgaW50MzJfdCBpbnNlcnRpb25Qb2lu
dCkKIAogICAgICMgRHJhZyBhbmQgZHJvcCBtZXNzYWdlcwpAQCAtMzQwLDcgKzM0MCw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAo
c3RydWN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8gZGljdGlvbmFyeVBvcHVwSW5mbykK
IAogICAgICMgS2V5Ym9hcmQgaW5wdXQgc3VwcG9ydCBtZXNzYWdlcwotICAgIEV4ZWN1dGVTYXZl
ZENvbW1hbmRCeVNlbGVjdG9yKFN0cmluZyBzZWxlY3RvcikgLT4gKGJvb2wgaGFuZGxlZCkKKyAg
ICBFeGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcihTdHJpbmcgc2VsZWN0b3IpIC0+IChib29s
IGhhbmRsZWQpIExlZ2FjeVN5bmMKIAogICAgICMgUmVtb3RlIGFjY2Vzc2liaWxpdHkgbWVzc2Fn
ZXMKICAgICBSZWdpc3RlcldlYlByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW4oSVBDOjpEYXRhUmVm
ZXJlbmNlIGRhdGEpCkBAIC0zNTAsNyArMzUwLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICAgICBTZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3QgcGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIsIHVpbnQ2NF90IGNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkK
IAogICAgICMgU3BlZWNoIG1lc3NhZ2VzCi0gICAgR2V0SXNTcGVha2luZygpIC0+IChib29sIGlz
U3BlYWtpbmcpCisgICAgR2V0SXNTcGVha2luZygpIC0+IChib29sIGlzU3BlYWtpbmcpIExlZ2Fj
eVN5bmMKICAgICBTcGVhayhTdHJpbmcgc3RyaW5nKQogICAgIFN0b3BTcGVha2luZygpCiAKQEAg
LTM2OCw3ICszNjgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICNp
ZiBVU0UoQVBQS0lUKQotICAgIFN1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZygpIC0+IChib29s
IGlzU2hvd2luZykKKyAgICBTdWJzdGl0dXRpb25zUGFuZWxJc1Nob3dpbmcoKSAtPiAoYm9vbCBp
c1Nob3dpbmcpIExlZ2FjeVN5bmMKICNlbmRpZgogI2lmIFVTRShBVVRPTUFUSUNfVEVYVF9SRVBM
QUNFTUVOVCkKICAgICB0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpCkBAIC0zODEsNyArMzgxLDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEF1dG9jb3JyZWN0aW9uIG1lc3Nh
Z2VzCiAgICAgU2hvd0NvcnJlY3Rpb25QYW5lbChpbnQzMl90IHBhbmVsVHlwZSwgV2ViQ29yZTo6
RmxvYXRSZWN0IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgU3RyaW5nIHJlcGxhY2VkU3Ry
aW5nLCBTdHJpbmcgcmVwbGFjZW1lbnRTdHJpbmcsIFZlY3RvcjxTdHJpbmc+IGFsdGVybmF0aXZl
UmVwbGFjZW1lbnRTdHJpbmdzKQogICAgIERpc21pc3NDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCBy
ZWFzb24pCi0gICAgRGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oaW50MzJfdCByZWFzb24pIC0+
IChTdHJpbmcgcmVzdWx0KQorICAgIERpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKGludDMyX3Qg
cmVhc29uKSAtPiAoU3RyaW5nIHJlc3VsdCkgTGVnYWN5U3luYwogICAgIFJlY29yZEF1dG9jb3Jy
ZWN0aW9uUmVzcG9uc2UoaW50MzJfdCByZXNwb25zZSwgU3RyaW5nIHJlcGxhY2VkU3RyaW5nLCBT
dHJpbmcgcmVwbGFjZW1lbnRTdHJpbmcpOwogCiAgICAgU2V0RWRpdGFibGVFbGVtZW50SXNGb2N1
c2VkKGJvb2wgZWRpdGFibGVFbGVtZW50SXNGb2N1c2VkKQpAQCAtMzkwLDEyICszOTAsMTIgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZF
UykKICAgICBTaG93RGljdGF0aW9uQWx0ZXJuYXRpdmVVSShXZWJDb3JlOjpGbG9hdFJlY3QgYm91
bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgdWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkKICAgICBS
ZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkKLSAg
ICBEaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkgLT4gKFZl
Y3RvcjxTdHJpbmc+IGFsdGVybmF0aXZlcykKKyAgICBEaWN0YXRpb25BbHRlcm5hdGl2ZXModWlu
dDY0X3QgZGljdGF0aW9uQ29udGV4dCkgLT4gKFZlY3RvcjxTdHJpbmc+IGFsdGVybmF0aXZlcykg
TGVnYWN5U3luYwogI2VuZGlmCiAKICNpZiBQTEFURk9STShYMTEpCiAgICAgIyBYMTEgd2luZG93
ZWQgcGx1Z2luIG1lc3NhZ2VzCi0gICAgQ3JlYXRlUGx1Z2luQ29udGFpbmVyKCkgLT4gKHVpbnQ2
NF90IHdpbmRvd0lEKQorICAgIENyZWF0ZVBsdWdpbkNvbnRhaW5lcigpIC0+ICh1aW50NjRfdCB3
aW5kb3dJRCkgTGVnYWN5U3luYwogICAgIFdpbmRvd2VkUGx1Z2luR2VvbWV0cnlEaWRDaGFuZ2Uo
V2ViQ29yZTo6SW50UmVjdCBmcmFtZVJlY3QsIFdlYkNvcmU6OkludFJlY3QgY2xpcFJlY3QsIHVp
bnQ2NF90IHdpbmRvd0lEKQogICAgIFdpbmRvd2VkUGx1Z2luVmlzaWJpbGl0eURpZENoYW5nZShi
b29sIGlzVmlzaWJsZSwgdWludDY0X3Qgd2luZG93SUQpCiAjZW5kaWYKQEAgLTQyNSw3ICs0MjUs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBTZWFyY2ggcG9wdXAgbWVu
dXMKICAgICBTYXZlUmVjZW50U2VhcmNoZXMoU3RyaW5nIG5hbWUsIFZlY3RvcjxXZWJDb3JlOjpS
ZWNlbnRTZWFyY2g+IHNlYXJjaEl0ZW1zKQotICAgIExvYWRSZWNlbnRTZWFyY2hlcyhTdHJpbmcg
bmFtZSkgLT4gKFZlY3RvcjxXZWJDb3JlOjpSZWNlbnRTZWFyY2g+IHJlc3VsdCkKKyAgICBMb2Fk
UmVjZW50U2VhcmNoZXMoU3RyaW5nIG5hbWUpIC0+IChWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2Vh
cmNoPiByZXN1bHQpIExlZ2FjeVN5bmMKIAogICAgIFNhdmVQREZUb0ZpbGVJbkRvd25sb2Fkc0Zv
bGRlcihTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUsIFdlYkNvcmU6OlVSTCBvcmlnaW5hdGluZ1VS
TCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAKQEAgLTQzNSw3ICs0MzUsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikK
LSAgICBTaG93UERGQ29udGV4dE1lbnUoc3RydWN0IFdlYktpdDo6UERGQ29udGV4dE1lbnUgY29u
dGV4dE1lbnUpIC0+IChzdGQ6Om9wdGlvbmFsPGludDMyX3Q+IHNlbGVjdGVkSXRlbSkKKyAgICBT
aG93UERGQ29udGV4dE1lbnUoc3RydWN0IFdlYktpdDo6UERGQ29udGV4dE1lbnUgY29udGV4dE1l
bnUpIC0+IChzdGQ6Om9wdGlvbmFsPGludDMyX3Q+IHNlbGVjdGVkSXRlbSkgTGVnYWN5U3luYwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTQ0Nyw4ICs0NDcs
OCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZFNhdmVUb1BhZ2VDYWNoZSgp
CiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSAgICBXcmFwQ3J5cHRvS2V5KFZlY3Rvcjx1
aW50OF90PiBrZXkpIC0+IChib29sIHN1Y2NlZWRlZCwgVmVjdG9yPHVpbnQ4X3Q+IHdyYXBwZWRL
ZXkpCi0gICAgVW53cmFwQ3J5cHRvS2V5KFZlY3Rvcjx1aW50OF90PiB3cmFwcGVkS2V5KSAtPiAo
Ym9vbCBzdWNjZWVkZWQsIFZlY3Rvcjx1aW50OF90PiBrZXkpCisgICAgV3JhcENyeXB0b0tleShW
ZWN0b3I8dWludDhfdD4ga2V5KSAtPiAoYm9vbCBzdWNjZWVkZWQsIFZlY3Rvcjx1aW50OF90PiB3
cmFwcGVkS2V5KSBMZWdhY3lTeW5jCisgICAgVW53cmFwQ3J5cHRvS2V5KFZlY3Rvcjx1aW50OF90
PiB3cmFwcGVkS2V5KSAtPiAoYm9vbCBzdWNjZWVkZWQsIFZlY3Rvcjx1aW50OF90PiBrZXkpIExl
Z2FjeVN5bmMKICNlbmRpZgogCiAKQEAgLTQ4MSw3ICs0ODEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIERpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KHN0cnVjdCBX
ZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhIHJlc3VsdCwgYm9vbCBjb250ZW50UHJldmVudHNE
ZWZhdWx0LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogI2VuZGlmCiAgICAgSGFuZGxlTWVz
c2FnZShTdHJpbmcgbWVzc2FnZU5hbWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIFdh
bnRzQ29ubmVjdGlvbgotICAgIEhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShTdHJpbmcgbWVzc2Fn
ZU5hbWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIC0+IChXZWJLaXQ6OlVzZXJEYXRh
IHJldHVybkRhdGEpIFdhbnRzQ29ubmVjdGlvbgorICAgIEhhbmRsZVN5bmNocm9ub3VzTWVzc2Fn
ZShTdHJpbmcgbWVzc2FnZU5hbWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIC0+IChX
ZWJLaXQ6OlVzZXJEYXRhIHJldHVybkRhdGEpIExlZ2FjeVN5bmMgV2FudHNDb25uZWN0aW9uCiAK
ICAgICBIYW5kbGVBdXRvRmlsbEJ1dHRvbkNsaWNrKFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CiAKQEAgLTU0Niw2ICs1NDYsNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFN0
b3BEaXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZlcklEKQogI2VuZGlmCiAKLSAgICBTaWduZWRQ
dWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBTdHJpbmcg
Y2hhbGxlbmdlU3RyaW5nLCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAg
ICBTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4
LCBTdHJpbmcgY2hhbGxlbmdlU3RyaW5nLCBXZWJDb3JlOjpVUkwgdXJsKSAtPiAoU3RyaW5nIHJl
c3VsdCkgTGVnYWN5U3luYwogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTM2LDM5ICszNiwzOSBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0
ZWJvYXJkUHJveHkgewogICAgIEdldFBhc3RlYm9hcmRUeXBlc0J5RmlkZWxpdHlGb3JJdGVtQXRJ
bmRleCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoVmVjdG9yPFN0
cmluZz4gdHlwZXMpCiAjZW5kaWYKIAotICAgIFdyaXRlQ3VzdG9tRGF0YShzdHJ1Y3QgV2ViQ29y
ZTo6UGFzdGVib2FyZEN1c3RvbURhdGEgZGF0YSwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAo
dWludDY0X3QgY2hhbmdlQ291bnQpCi0gICAgVHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUo
U3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgb3JpZ2luKSAtPiAoVmVjdG9yPFN0cmluZz4g
dHlwZXMpCisgICAgV3JpdGVDdXN0b21EYXRhKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YSBkYXRhLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBjaGFuZ2VD
b3VudCkgTGVnYWN5U3luYworICAgIFR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKFN0cmlu
ZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIG9yaWdpbikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVz
KSBMZWdhY3lTeW5jCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAjIFBhc3RlYm9hcmQgbWVz
c2FnZXMuCi0gICAgR2V0TnVtYmVyT2ZGaWxlcyhTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1
aW50NjRfdCBudW1iZXJPZkZpbGVzKQotICAgIEdldFBhc3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFz
dGVib2FyZE5hbWUpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykKLSAgICBHZXRQYXN0ZWJvYXJk
UGF0aG5hbWVzRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJk
VHlwZSkgLT4gKFZlY3RvcjxTdHJpbmc+IHBhdGhuYW1lcywgV2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGVBcnJheSBzYW5kYm94RXh0ZW5zaW9ucykgV2FudHNDb25uZWN0aW9uCi0gICAg
R2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcg
cGFzdGVib2FyZFR5cGUpIC0+IChTdHJpbmcgc3RyaW5nKQotICAgIEdldFBhc3RlYm9hcmRTdHJp
bmdzRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkg
LT4gKFZlY3RvcjxTdHJpbmc+IHN0cmluZ3MpCi0gICAgR2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5
cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChXZWJL
aXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkKLSAgICBQYXN0
ZWJvYXJkQ29weShTdHJpbmcgZnJvbVBhc3RlYm9hcmQsIFN0cmluZyB0b1Bhc3RlYm9hcmQpIC0+
ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkKLSAgICBHZXRQYXN0ZWJvYXJkQ2hhbmdlQ291bnQoU3Ry
aW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpCi0gICAgR2V0UGFz
dGVib2FyZFVuaXF1ZU5hbWUoKSAtPiAoU3RyaW5nIHBhc3RlYm9hcmROYW1lKQotICAgIEdldFBh
c3RlYm9hcmRDb2xvcihTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChXZWJDb3JlOjpDb2xvciBj
b2xvcikKLSAgICBHZXRQYXN0ZWJvYXJkVVJMKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0
cmluZyB1cmxTdHJpbmcpCi0gICAgQWRkUGFzdGVib2FyZFR5cGVzKFN0cmluZyBwYXN0ZWJvYXJk
TmFtZSwgVmVjdG9yPFN0cmluZz4gcGFzdGVib2FyZFR5cGVzKSAtPiAodWludDY0X3QgY2hhbmdl
Q291bnQpCi0gICAgU2V0UGFzdGVib2FyZFR5cGVzKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgVmVj
dG9yPFN0cmluZz4gcGFzdGVib2FyZFR5cGVzKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpCi0g
ICAgU2V0UGFzdGVib2FyZFVSTChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFVSTCBwYXN0ZWJv
YXJkVVJMLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkg
V2FudHNDb25uZWN0aW9uCi0gICAgU2V0UGFzdGVib2FyZENvbG9yKFN0cmluZyBwYXN0ZWJvYXJk
TmFtZSwgV2ViQ29yZTo6Q29sb3IgY29sb3IpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkKLSAg
ICBTZXRQYXN0ZWJvYXJkU3RyaW5nRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmlu
ZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHN0cmluZykgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50
KQotICAgIFNldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwg
U3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRs
ZSwgdWludDY0X3Qgc2l6ZSkgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KQorICAgIEdldE51bWJl
ck9mRmlsZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgbnVtYmVyT2ZGaWxl
cykgTGVnYWN5U3luYworICAgIEdldFBhc3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2FyZE5h
bWUpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgTGVnYWN5U3luYworICAgIEdldFBhc3RlYm9h
cmRQYXRobmFtZXNGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9h
cmRUeXBlKSAtPiAoVmVjdG9yPFN0cmluZz4gcGF0aG5hbWVzLCBXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5IHNhbmRib3hFeHRlbnNpb25zKSBMZWdhY3lTeW5jIFdhbnRzQ29u
bmVjdGlvbgorICAgIEdldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJk
TmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoU3RyaW5nIHN0cmluZykgTGVnYWN5U3lu
YworICAgIEdldFBhc3RlYm9hcmRTdHJpbmdzRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUs
IFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFZlY3RvcjxTdHJpbmc+IHN0cmluZ3MpIExlZ2Fj
eVN5bmMKKyAgICBHZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5h
bWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlLCB1aW50NjRfdCBzaXplKSBMZWdhY3lTeW5jCisgICAgUGFzdGVib2FyZENvcHko
U3RyaW5nIGZyb21QYXN0ZWJvYXJkLCBTdHJpbmcgdG9QYXN0ZWJvYXJkKSAtPiAodWludDY0X3Qg
Y2hhbmdlQ291bnQpIExlZ2FjeVN5bmMKKyAgICBHZXRQYXN0ZWJvYXJkQ2hhbmdlQ291bnQoU3Ry
aW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpIExlZ2FjeVN5bmMK
KyAgICBHZXRQYXN0ZWJvYXJkVW5pcXVlTmFtZSgpIC0+IChTdHJpbmcgcGFzdGVib2FyZE5hbWUp
IExlZ2FjeVN5bmMKKyAgICBHZXRQYXN0ZWJvYXJkQ29sb3IoU3RyaW5nIHBhc3RlYm9hcmROYW1l
KSAtPiAoV2ViQ29yZTo6Q29sb3IgY29sb3IpIExlZ2FjeVN5bmMKKyAgICBHZXRQYXN0ZWJvYXJk
VVJMKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0cmluZyB1cmxTdHJpbmcpIExlZ2FjeVN5
bmMKKyAgICBBZGRQYXN0ZWJvYXJkVHlwZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBWZWN0b3I8
U3RyaW5nPiBwYXN0ZWJvYXJkVHlwZXMpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgTGVnYWN5
U3luYworICAgIFNldFBhc3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFZlY3Rv
cjxTdHJpbmc+IHBhc3RlYm9hcmRUeXBlcykgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBMZWdh
Y3lTeW5jCisgICAgU2V0UGFzdGVib2FyZFVSTChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFVS
TCBwYXN0ZWJvYXJkVVJMLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBjaGFu
Z2VDb3VudCkgTGVnYWN5U3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBTZXRQYXN0ZWJvYXJkQ29s
b3IoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBXZWJDb3JlOjpDb2xvciBjb2xvcikgLT4gKHVpbnQ2
NF90IGNoYW5nZUNvdW50KSBMZWdhY3lTeW5jCisgICAgU2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5
cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBz
dHJpbmcpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgTGVnYWN5U3luYworICAgIFNldFBhc3Rl
Ym9hcmRCdWZmZXJGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9h
cmRUeXBlLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6
ZSkgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBMZWdhY3lTeW5jCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKEdUSykKLSAgICBXcml0ZVRvQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwg
c3RydWN0IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKLSAgICBS
ZWFkRnJvbUNsaXBib2FyZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChzdHJ1Y3QgV2ViS2l0
OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQorICAgIFdyaXRlVG9DbGlwYm9h
cmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25EYXRh
IHBhc3RlYm9hcmRDb250ZW50KSBMZWdhY3lTeW5jCisgICAgUmVhZEZyb21DbGlwYm9hcmQoU3Ry
aW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoc3RydWN0IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0YSBw
YXN0ZWJvYXJkQ29udGVudCkgTGVnYWN5U3luYwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXUEUp
Ci0gICAgR2V0UGFzdGVib2FyZFR5cGVzKCkgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKQotICAg
IFJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9h
cmRUeXBlKSAtPiAoU3RyaW5nIHN0cmluZykKLSAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9h
cmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50IGNvbnRlbnQpCi0gICAgV3Jp
dGVTdHJpbmdUb1Bhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgdGV4dCkK
KyAgICBHZXRQYXN0ZWJvYXJkVHlwZXMoKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIExlZ2Fj
eVN5bmMKKyAgICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmlu
ZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFN0cmluZyBzdHJpbmcpIExlZ2FjeVN5bmMKKyAgICBXcml0
ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250
ZW50IGNvbnRlbnQpIExlZ2FjeVN5bmMKKyAgICBXcml0ZVN0cmluZ1RvUGFzdGVib2FyZChTdHJp
bmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0KSBMZWdhY3lTeW5jCiAjZW5kaWYKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3Nh
Z2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAog
CiBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUG9vbCB7CiAgICAgSGFuZGxlTWVzc2FnZShTdHJpbmcg
bWVzc2FnZU5hbWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIFdhbnRzQ29ubmVjdGlv
bgotICAgIEhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShTdHJpbmcgbWVzc2FnZU5hbWUsIFdlYktp
dDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIC0+IChXZWJLaXQ6OlVzZXJEYXRhIHJldHVybkRhdGEp
IFdhbnRzQ29ubmVjdGlvbgorICAgIEhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShTdHJpbmcgbWVz
c2FnZU5hbWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIC0+IChXZWJLaXQ6OlVzZXJE
YXRhIHJldHVybkRhdGEpIExlZ2FjeVN5bmMgV2FudHNDb25uZWN0aW9uCiAKICAgICBEaWRHZXRT
dGF0aXN0aWNzKHN0cnVjdCBXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhIHN0YXRpc3RpY3NEYXRhLCB1
aW50NjRfdCBjYWxsYmFja0lEKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTI2LDE0ICsyNiwxNCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkg
TGVnYWN5UmVjZWl2CiAKICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1
c2VyR2VzdHVyZVRva2VuSUQpIAogCi0gICAgU2hvdWxkVGVybWluYXRlKCkgLT4gKGJvb2wgc2hv
dWxkVGVybWluYXRlKQorICAgIFNob3VsZFRlcm1pbmF0ZSgpIC0+IChib29sIHNob3VsZFRlcm1p
bmF0ZSkgTGVnYWN5U3luYwogCiAgICAgRW5hYmxlU3VkZGVuVGVybWluYXRpb24oKQogICAgIERp
c2FibGVTdWRkZW5UZXJtaW5hdGlvbigpCiAKICAgICAjIFBsdWdpbiBtZXNzYWdlcy4KICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkg
LT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4gYXBwbGljYXRpb25QbHVnaW5zLCBzdHJ1Y3Qgc3RkOjpvcHRpb25hbDxWZWN0
b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklk
ZW50aWZpZXJzKQorICAgIEdldFBsdWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNv
cmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBhcHBs
aWNhdGlvblBsdWdpbnMsIHN0cnVjdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBw
b3J0ZWRQbHVnaW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpIExlZ2Fj
eVN5bmMKICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9j
ZXNzVG9rZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBw
b3J0c0FzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBEZWxheWVkCiAjZW5kaWYKICAgICBHZXRO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25I
YW5kbGUpIERlbGF5ZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMjYsMTIgKzI2LDEyIEBACiAKIG1lc3NhZ2VzIC0+IFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5IHsKIAotICAgIEF2YWlsYWJsZVBheW1lbnROZXR3b3JrcygpIC0+IChWZWN0b3I8
U3RyaW5nPiBhdmFpbGFibGVQYXltZW50TmV0d29ya3MpCi0gICAgQ2FuTWFrZVBheW1lbnRzKCkg
LT4gKGJvb2wgcmVzdWx0KQorICAgIEF2YWlsYWJsZVBheW1lbnROZXR3b3JrcygpIC0+IChWZWN0
b3I8U3RyaW5nPiBhdmFpbGFibGVQYXltZW50TmV0d29ya3MpIExlZ2FjeVN5bmMKKyAgICBDYW5N
YWtlUGF5bWVudHMoKSAtPiAoYm9vbCByZXN1bHQpIExlZ2FjeVN5bmMKICAgICBDYW5NYWtlUGF5
bWVudHNXaXRoQWN0aXZlQ2FyZChTdHJpbmcgbWVyY2hhbnRJZGVudGlmaWVyLCBTdHJpbmcgZG9t
YWluTmFtZSwgdWludDY0X3QgcmVxdWVzdElEKQogICAgIE9wZW5QYXltZW50U2V0dXAoU3RyaW5n
IG1lcmNoYW50SWRlbnRpZmllciwgU3RyaW5nIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJ
RCkKIAotICAgIFNob3dQYXltZW50VUkoU3RyaW5nIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBWZWN0
b3I8U3RyaW5nPiBsaW5rSWNvblVSTFN0cmluZ3MsIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0IHBheW1lbnRSZXF1ZXN0KSAtPiAoYm9vbCByZXN1bHQpCisgICAgU2hvd1Bh
eW1lbnRVSShTdHJpbmcgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+IGxpbmtJ
Y29uVVJMU3RyaW5ncywgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QgcGF5
bWVudFJlcXVlc3QpIC0+IChib29sIHJlc3VsdCkgTGVnYWN5U3luYwogICAgIENvbXBsZXRlTWVy
Y2hhbnRWYWxpZGF0aW9uKFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24gcGF5bWVudE1l
cmNoYW50U2Vzc2lvbikKICAgICBDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IHVwZGF0ZSkKICAgICBDb21w
bGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBw
aW5nQ29udGFjdFVwZGF0ZT4gdXBkYXRlKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCwxMCArMjQsMTAgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKLUNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmlu
ZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyBzZXR0aW5ncykKK0NyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBo
YXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+
IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykgTGVnYWN5U3luYwogICAgIFN0YXJ0UHJv
ZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBp
ZCkKLSAgICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykKKyAgICBDYXBhYmlsaXRpZXModWlu
dDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNh
cGFiaWxpdGllcykgTGVnYWN5U3luYwogICAgIFNldE11dGVkKHVpbnQ2NF90IGlkLCBib29sIG11
dGVkKQogICAgIEFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIHN0cnVjdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKQogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDIzNzI5NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCwxNiArMzQsMTYgQEAgbWVzc2FnZXMgLT4gUGx1Z2luUHJvY2Vzc1Byb3h5IHsKICAgICBTZXRG
dWxsc2NyZWVuV2luZG93SXNTaG93aW5nKGJvb2wgZnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZykK
ICAgICAKICAgICAjIFJldHVybnMgdHJ1ZSBpZiB0aGUgVUkgcHJvY2VzcyBsYXVuY2hlZCB0aGUg
cHJvY2Vzcy4KLSAgICBMYXVuY2hQcm9jZXNzKFN0cmluZyBsYXVuY2hQYXRoLCBWZWN0b3I8U3Ry
aW5nPiBhcmd1bWVudHMpIC0+IChib29sIHJlc3VsdCkKKyAgICBMYXVuY2hQcm9jZXNzKFN0cmlu
ZyBsYXVuY2hQYXRoLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMpIC0+IChib29sIHJlc3VsdCkg
TGVnYWN5U3luYwogCiAgICAgIyBSZXR1cm5zIHRydWUgaWYgdGhlIFVJIHByb2Nlc3MgbGF1bmNo
ZWQgdGhlIGFwcGxpY2F0aW9uLgotICAgIExhdW5jaEFwcGxpY2F0aW9uQXRVUkwoU3RyaW5nIHVy
bCwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzKSAtPiAoYm9vbCByZXN1bHQpCisgICAgTGF1bmNo
QXBwbGljYXRpb25BdFVSTChTdHJpbmcgdXJsLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMpIC0+
IChib29sIHJlc3VsdCkgTGVnYWN5U3luYwogCiAgICAgIyBSZXR1cm5zIHRydWUgaWYgdGhlIFVJ
IHByb2Nlc3MgZGlkIG9wZW4gdGhlIFVSTC4KLSAgICBPcGVuVVJMKFN0cmluZyB1cmxTdHJpbmcp
IC0+IChib29sIHJlc3VsdCwgaW50MzJfdCBzdGF0dXMsIFN0cmluZyBsYXVuY2hlZFVSTFN0cmlu
ZykKKyAgICBPcGVuVVJMKFN0cmluZyB1cmxTdHJpbmcpIC0+IChib29sIHJlc3VsdCwgaW50MzJf
dCBzdGF0dXMsIFN0cmluZyBsYXVuY2hlZFVSTFN0cmluZykgTGVnYWN5U3luYwogICAgIAogICAg
ICMgUmV0dXJucyB0cnVlIGlmIHRoZSBVSSBwcm9jZXNzIGRpZCBvcGVuIHRoZSBmaWxlLgotICAg
IE9wZW5GaWxlKFN0cmluZyBmdWxsUGF0aCkgLT4gKGJvb2wgcmVzdWx0KQorICAgIE9wZW5GaWxl
KFN0cmluZyBmdWxsUGF0aCkgLT4gKGJvb2wgcmVzdWx0KSBMZWdhY3lTeW5jCiAjZW5kaWYKIH0K
IApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdl
ci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VN
YW5hZ2VyIHsKICAgICBDcmVhdGVTZXNzaW9uU3RvcmFnZU1hcCh1aW50NjRfdCBzdG9yYWdlTWFw
SUQsIHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGEpIFdhbnRzQ29ubmVjdGlvbgogICAgIERlc3Ry
b3lTdG9yYWdlTWFwKHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCkgV2FudHNDb25uZWN0aW9uCiAKLSAg
ICBHZXRWYWx1ZXModWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2Vl
ZCkgLT4gKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHZhbHVlcykgV2FudHNDb25uZWN0aW9uCisg
ICAgR2V0VmFsdWVzKHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNl
ZWQpIC0+IChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YWx1ZXMpIExlZ2FjeVN5bmMgV2FudHND
b25uZWN0aW9uCiAKICAgICBTZXRJdGVtKHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWludDY0X3Qg
c291cmNlU3RvcmFnZUFyZWFJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXks
IFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCiAgICAgUmVt
b3ZlSXRlbSh1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVh
SUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJpbmcgdXJsU3RyaW5n
KSBXYW50c0Nvbm5lY3Rpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJ
dGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdl
cy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gU2VjSXRl
bVNoaW1Qcm94eSB7CiAKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKLSAgICBTZWNJdGVtUmVx
dWVzdChXZWJLaXQ6OlNlY0l0ZW1SZXF1ZXN0RGF0YSByZXF1ZXN0KSAtPiAoV2ViS2l0OjpTZWNJ
dGVtUmVzcG9uc2VEYXRhIHJlc3BvbnNlKQorICAgIFNlY0l0ZW1SZXF1ZXN0KFdlYktpdDo6U2Vj
SXRlbVJlcXVlc3REYXRhIHJlcXVlc3QpIC0+IChXZWJLaXQ6OlNlY0l0ZW1SZXNwb25zZURhdGEg
cmVzcG9uc2UpIExlZ2FjeVN5bmMKICNlbmRpZgogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjM3Mjk0KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTgyLDkgKzgyLDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAKICAgICBSZWxlYXNlUGFnZUNhY2hlKCkKIAotICAgIEZldGNoV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3
ZWJzaXRlRGF0YSkKLSAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
V2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkgLT4gKCkKLSAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE+IG9yaWdpbnMpIC0+ICgpCisgICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKSBMZWdh
Y3lTeW5jCisgICAgRGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxU
aW1lIG1vZGlmaWVkU2luY2UpIC0+ICgpIExlZ2FjeVN5bmMKKyAgICBEZWxldGVXZWJzaXRlRGF0
YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpX
ZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+IG9yaWdpbnMpIC0+ICgpIExlZ2FjeVN5bmMKIAogICAgIFNldEhpZGRlblBh
Z2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiAjaWYg
UExBVEZPUk0oQ09DT0EpCkBAIC0xMDAsNyArMTAwLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAgICAgRW5zdXJlQXV0b21hdGlvblNlc3Npb25Qcm94eShTdHJp
bmcgc2Vzc2lvbklkZW50aWZpZXIpCiAgICAgRGVzdHJveUF1dG9tYXRpb25TZXNzaW9uUHJveHko
KQogCi0gICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSgpIC0+IChib29sIGhhbmRsZWQp
CisgICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSgpIC0+IChib29sIGhhbmRsZWQpIExl
Z2FjeVN5bmMKICAgICBQcmVwYXJlVG9TdXNwZW5kKCkKICAgICBDYW5jZWxQcmVwYXJlVG9TdXNw
ZW5kKCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKCkKQEAgLTEyOSw3ICsxMjksNyBAQCBtZXNzYWdl
cyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBNZXNzYWdlc0F2YWlsYWJsZUZv
clBvcnQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0KQogCiAgICAg
VXBkYXRlQWN0aXZlUGFnZXMoKQotICAgIEdldEFjdGl2ZVBhZ2VzT3JpZ2luc0ZvclRlc3Rpbmco
KSAtPiAoVmVjdG9yPFN0cmluZz4gYWN0aXZlT3JpZ2lucykKKyAgICBHZXRBY3RpdmVQYWdlc09y
aWdpbnNGb3JUZXN0aW5nKCkgLT4gKFZlY3RvcjxTdHJpbmc+IGFjdGl2ZU9yaWdpbnMpIExlZ2Fj
eVN5bmMKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBTZXRTY3JlZW5Qcm9wZXJ0aWVzKHN0cnVj
dCBXZWJDb3JlOjpTY3JlZW5Qcm9wZXJ0aWVzIHNjcmVlblByb3BlcnRpZXMpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjM3Mjk0KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKIAogbWVzc2FnZXMg
LT4gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAgICMgU2V0IGEg
Z2xvYmFsIEphdmFTY3JpcHQgZXhjZXB0aW9uLgotICAgIFNldEV4Y2VwdGlvbihTdHJpbmcgZXhj
ZXB0aW9uU3RyaW5nKSAtPiAoKQorICAgIFNldEV4Y2VwdGlvbihTdHJpbmcgZXhjZXB0aW9uU3Ry
aW5nKSAtPiAoKSBMZWdhY3lTeW5jCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4J
KHJldmlzaW9uIDIzNzI5NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMiArMzAsMjIgQEAg
bWVzc2FnZXMgLT4gUGx1Z2luUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFVwZGF0ZShXZWJD
b3JlOjpJbnRSZWN0IHBhaW50ZWRSZWN0KQogCiAgICAgIyBSZXR1cm5zIGEgUEFDIHN0eWxlIHN0
cmluZyB3aXRoIHByb3hpZXMgZm9yIHRoZSBnaXZlbiBVUkwuCi0gICAgUHJveGllc0ZvclVSTChT
dHJpbmcgdXJsU3RyaW5nKSAtPiAoU3RyaW5nIHByb3hpZXNTdHJpbmcpCisgICAgUHJveGllc0Zv
clVSTChTdHJpbmcgdXJsU3RyaW5nKSAtPiAoU3RyaW5nIHByb3hpZXNTdHJpbmcpIExlZ2FjeVN5
bmMKIAogICAgICMgUmV0dXJucyB0aGUgY29va2llcyBmb3IgdGhlIGdpdmVuIFVSTC4KLSAgICBD
b29raWVzRm9yVVJMKFN0cmluZyB1cmxTdHJpbmcpIC0+IChTdHJpbmcgY29va2llU3RyaW5nKQor
ICAgIENvb2tpZXNGb3JVUkwoU3RyaW5nIHVybFN0cmluZykgLT4gKFN0cmluZyBjb29raWVTdHJp
bmcpIExlZ2FjeVN5bmMKIAogICAgICMgU2V0cyB0aGUgY29va2llcyBmb3IgdGhlIGdpdmVuIFVS
TC4KICAgICBTZXRDb29raWVzRm9yVVJMKFN0cmluZyB1cmxTdHJpbmcsIFN0cmluZyBjb29raWVT
dHJpbmcpCiAKICAgICAjIEdldHMgdGhlIGF1dGhlbnRpY2F0aW9uIGluZm8gZm9yIHRoZSBnaXZl
biBwcm90ZWN0aW9uIHNwYWNlLgotICAgIEdldEF1dGhlbnRpY2F0aW9uSW5mbyhXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNwYWNlKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgU3Ry
aW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpCisgICAgR2V0QXV0aGVudGljYXRpb25JbmZv
KFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2UpIC0+IChib29sIHJldHVy
blZhbHVlLCBTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkgTGVnYWN5U3luYwogCiAg
ICAgIyBHZXRzIGEgcmVmZXJlbmNlIHRvIHRoZSBwbHVnLWluIGVsZW1lbnQgTlBPYmplY3QuCi0g
ICAgR2V0UGx1Z2luRWxlbWVudE5QT2JqZWN0KCkgLT4gKHVpbnQ2NF90IHBsdWdpbkVsZW1lbnRO
UE9iamVjdElEKQorICAgIEdldFBsdWdpbkVsZW1lbnROUE9iamVjdCgpIC0+ICh1aW50NjRfdCBw
bHVnaW5FbGVtZW50TlBPYmplY3RJRCkgTGVnYWN5U3luYwogCiAgICAgIyBFdmFsdWF0ZXMgdGhl
IGdpdmVuIEphdmFTY3JpcHQgc3RyaW5nLgotICAgIEV2YWx1YXRlKFdlYktpdDo6TlBWYXJpYW50
RGF0YSBucE9iamVjdEFzVmFyaWFudERhdGEsIFN0cmluZyBzY3JpcHRTdHJpbmcsIGJvb2wgYWxs
b3dQb3B1cHMpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEgcmVz
dWx0RGF0YSkKKyAgICBFdmFsdWF0ZShXZWJLaXQ6Ok5QVmFyaWFudERhdGEgbnBPYmplY3RBc1Zh
cmlhbnREYXRhLCBTdHJpbmcgc2NyaXB0U3RyaW5nLCBib29sIGFsbG93UG9wdXBzKSAtPiAoYm9v
bCByZXR1cm5WYWx1ZSwgV2ViS2l0OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpIExlZ2FjeVN5
bmMKIAogICAgICMgQ2FuY2VscyB0aGUgZ2l2ZW4gc3RyZWFtIGxvYWQuCiAgICAgQ2FuY2VsU3Ry
ZWFtTG9hZCh1aW50NjRfdCBzdHJlYW1JRCkKQEAgLTcyLDcgKzcyLDcgQEAgbWVzc2FnZXMgLT4g
UGx1Z2luUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgUExBVEZPUk0oWDExKQogICAgICMg
Q3JlYXRlIHRoZSBwbHVnaW4gY29udGFpbmVyIGZvciB3aW5kb3dlZCBwbHVnaW5zCi0gICAgQ3Jl
YXRlUGx1Z2luQ29udGFpbmVyKCkgLT4gKHVpbnQ2NF90IHdpbmRvd0lEKQorICAgIENyZWF0ZVBs
dWdpbkNvbnRhaW5lcigpIC0+ICh1aW50NjRfdCB3aW5kb3dJRCkgTGVnYWN5U3luYwogCiAgICAg
IyBVcGRhdGUgZ2VvbWV0cnkgb2Ygd2luZG93ZWQgcGx1Z2luIHdpZGdldAogICAgIFdpbmRvd2Vk
UGx1Z2luR2VvbWV0cnlEaWRDaGFuZ2UoV2ViQ29yZTo6SW50UmVjdCBmcmFtZVJlY3QsIFdlYkNv
cmU6OkludFJlY3QgY2xpcFJlY3QsIHVpbnQ2NF90IHdpbmRvd0lEKQpAQCAtODIsMTAgKzgyLDEw
IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAg
ICAgIyBUZWxscyB0aGUgV2ViUHJvY2VzcyB0aGF0IHRoZSBwbHVnLWluIHdhcyBzdWNjZXNzZnVs
bHkgaW5pdGlhbGl6ZWQgYXN5bmNocm9ub3VzbHkKLSAgICBEaWRDcmVhdGVQbHVnaW4oYm9vbCB3
YW50c1doZWVsRXZlbnRzLCB1aW50MzJfdCByZW1vdGVMYXllckNsaWVudElEKSAtPiAoKQorICAg
IERpZENyZWF0ZVBsdWdpbihib29sIHdhbnRzV2hlZWxFdmVudHMsIHVpbnQzMl90IHJlbW90ZUxh
eWVyQ2xpZW50SUQpIC0+ICgpIExlZ2FjeVN5bmMKICAgICAKICAgICAjIFRlbGxzIHRoZSBXZWJQ
cm9jZXNzIHRoYXQgdGhlIHBsdWctaW4gZmFpbGVkIHRvIGluaXRpYWxpemUuCi0gICAgRGlkRmFp
bFRvQ3JlYXRlUGx1Z2luKCkgLT4gKCkKKyAgICBEaWRGYWlsVG9DcmVhdGVQbHVnaW4oKSAtPiAo
KSBMZWdhY3lTeW5jCiAKICAgICAjIFRlbGxzIHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhlIHBsdWct
aW4gaGFzIHN0YXJ0ZWQgb3Igc3RvcHBlZCBwbGF5aW5nIGF1ZGlvLgogICAgIFNldFBsdWdpbklz
UGxheWluZ0F1ZGlvKGJvb2wgcGx1Z2luSXNQbGF5aW5nQXVkaW8pCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDIzNzI5NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTc3LDEwICs3NywxMCBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZXBsYWNlU2VsZWN0ZWRUZXh0KFN0
cmluZyBvbGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKICAgICBSZXF1ZXN0QXV0b2NvcnJlY3Rpb25E
YXRhKFN0cmluZyB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQogICAgIEFwcGx5QXV0b2NvcnJlY3Rpb24oU3RyaW5nIGNvcnJlY3Rpb24sIFN0cmlu
ZyBvcmlnaW5hbFRleHQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIFN5bmNB
cHBseUF1dG9jb3JyZWN0aW9uKFN0cmluZyBjb3JyZWN0aW9uLCBTdHJpbmcgb3JpZ2luYWxUZXh0
KSAtPiAoYm9vbCBhdXRvY29ycmVjdGlvbkFwcGxpZWQpCisgICAgU3luY0FwcGx5QXV0b2NvcnJl
Y3Rpb24oU3RyaW5nIGNvcnJlY3Rpb24sIFN0cmluZyBvcmlnaW5hbFRleHQpIC0+IChib29sIGF1
dG9jb3JyZWN0aW9uQXBwbGllZCkgTGVnYWN5U3luYwogICAgIFJlcXVlc3RBdXRvY29ycmVjdGlv
bkNvbnRleHQoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0QXV0b2NvcnJl
Y3Rpb25Db250ZXh0KCkgLT4gKFN0cmluZyBiZWZvcmVDb250ZXh0LCBTdHJpbmcgbWFya2VkVGV4
dCwgU3RyaW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIGFmdGVyQ29udGV4dCwgdWludDY0X3QgbG9j
YXRpb24sIHVpbnQ2NF90IGxlbmd0aCkgCi0gICAgR2V0UG9zaXRpb25JbmZvcm1hdGlvbihzdHJ1
Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KSAtPiAoc3Ry
dWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24p
CisgICAgR2V0QXV0b2NvcnJlY3Rpb25Db250ZXh0KCkgLT4gKFN0cmluZyBiZWZvcmVDb250ZXh0
LCBTdHJpbmcgbWFya2VkVGV4dCwgU3RyaW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIGFmdGVyQ29u
dGV4dCwgdWludDY0X3QgbG9jYXRpb24sIHVpbnQ2NF90IGxlbmd0aCkgTGVnYWN5U3luYworICAg
IEdldFBvc2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvblJlcXVlc3QgcmVxdWVzdCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSBMZWdhY3lTeW5jCiAgICAgUmVxdWVzdFBvc2l0
aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVl
c3QgcmVxdWVzdCkKICAgICBTdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRBdFBvc2l0aW9uKFdl
YkNvcmU6OkludFBvaW50IHBvaW50KQogICAgIFN0b3BJbnRlcmFjdGlvbigpCkBAIC0xMTYsNyAr
MTE2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIFRvdWNoRXZlbnRTeW5jKFdlYktpdDo6
V2ViVG91Y2hFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkKKyAgICBUb3VjaEV2ZW50U3lu
YyhXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQpIC0+IChib29sIGhhbmRsZWQpIExlZ2FjeVN5
bmMKICNlbmRpZgogI2lmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgJiYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKICAgICBUb3VjaEV2ZW50KFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkKQEAg
LTM4Miw3ICszODIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0gKEdUSykgJiYgSEFWRShHVEtfR0VTVFVSRVMpCi0gICAgR2V0
Q2VudGVyRm9yWm9vbUdlc3R1cmUoV2ViQ29yZTo6SW50UG9pbnQgY2VudGVySW5WaWV3Q29vcmRp
bmF0ZXMpIC0+IChXZWJDb3JlOjpJbnRQb2ludCBjZW50ZXIpCisgICAgR2V0Q2VudGVyRm9yWm9v
bUdlc3R1cmUoV2ViQ29yZTo6SW50UG9pbnQgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMpIC0+IChX
ZWJDb3JlOjpJbnRQb2ludCBjZW50ZXIpIExlZ2FjeVN5bmMKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCkBAIC0zOTIsMTYgKzM5MiwxNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChXZWJDb3JlOjpGbG9h
dFJlY3Qgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBXZWJDb3JlOjpGbG9hdFJlY3Qg
d2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVzLCBXZWJDb3JlOjpGbG9hdFJl
Y3Qgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgV2ViQ29yZTo6RmxvYXRQb2ludCBhY2Nl
c3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKQogICAgIFNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZShi
b29sIGlzU2Nyb2xsYWJsZSkKICAgICBSZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tl
bnMoSVBDOjpEYXRhUmVmZXJlbmNlIGVsZW1lblRva2VuLCBJUEM6OkRhdGFSZWZlcmVuY2Ugd2lu
ZG93VG9rZW4pCi0gICAgR2V0U3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpIC0+IChTdHJp
bmcgc3RyaW5nVmFsdWUpCi0gICAgR2V0RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQoU3RyaW5n
IHBhc3RlYm9hcmRUeXBlKSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUs
IHVpbnQ2NF90IHNpemUpCi0gICAgUmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKFN0cmluZyBw
YXN0ZWJvYXJkTmFtZSkgLT4gKGJvb2wgcmVzdWx0KQorICAgIEdldFN0cmluZ1NlbGVjdGlvbkZv
clBhc3RlYm9hcmQoKSAtPiAoU3RyaW5nIHN0cmluZ1ZhbHVlKSBMZWdhY3lTeW5jCisgICAgR2V0
RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpIExlZ2FjeVN5
bmMKKyAgICBSZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1l
KSAtPiAoYm9vbCByZXN1bHQpIExlZ2FjeVN5bmMKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQogICAgIFJlcGxhY2VTZWxlY3Rpb25XaXRoUGFzdGVib2FyZERhdGEoVmVjdG9yPFN0cmlu
Zz4gdHlwZXMsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogI2VuZGlmCiAKLSAgICBTaG91bGRE
ZWxheVdpbmRvd09yZGVyaW5nRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KSAtPiAo
Ym9vbCByZXN1bHQpCi0gICAgQWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVyLCBXZWJL
aXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpIC0+IChib29sIHJlc3VsdCkKKyAgICBTaG91bGREZWxh
eVdpbmRvd09yZGVyaW5nRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KSAtPiAoYm9v
bCByZXN1bHQpIExlZ2FjeVN5bmMKKyAgICBBY2NlcHRzRmlyc3RNb3VzZShpbnQgZXZlbnROdW1i
ZXIsIFdlYktpdDo6V2ViTW91c2VFdmVudCBldmVudCkgLT4gKGJvb2wgcmVzdWx0KSBMZWdhY3lT
eW5jCiAKICAgICBTZXRUZXh0QXN5bmMoU3RyaW5nIHRleHQpCiAgICAgSW5zZXJ0VGV4dEFzeW5j
KFN0cmluZyB0ZXh0LCBzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmVwbGFjZW1lbnRSYW5n
ZSwgYm9vbCByZWdpc3RlclVuZG9Hcm91cCwgdWludDMyX3QgZWRpdGluZ1JhbmdlSXNSZWxhdGl2
ZVRvLCBib29sIHN1cHByZXNzU2VsZWN0aW9uVXBkYXRlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352819</attachid>
            <date>2018-10-19 13:25:04 -0700</date>
            <delta_ts>2018-10-19 13:51:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190759-20181019132503.patch</filename>
            <type>text/plain</type>
            <size>66288</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzcyOTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE4LTEwLTE5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFyayBMZWdhY3lT
eW5jIElQQyBtZXNzYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkwNzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvSGFuZGxl
TWVzc2FnZS5oOgorICAgICAgICAoSVBDOjpoYW5kbGVNZXNzYWdlTGVnYWN5U3luYyk6CisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2hhcmVkL1Bs
dWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQ
cm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDE4LTEwLTE5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBkYXRl
IGFuZCBhZGQgcHl0aG9uIHRlc3RzIGFmdGVyIHIyMzcyOTQKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjM3Mjk0KQorKysgU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDExIEBAIG1lc3NhZ2VzIC0+IE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0
TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50
NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25s
b2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvIHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wg
V2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChT
dHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpCisgICAgQ29v
a2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBh
cnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6
VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMg
aW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFj
Y2Vzc1NlY3VyZUNvb2tpZXMpIExlZ2FjeVN5bmMKICAgICBTZXRDb29raWVzRnJvbURPTShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2Vi
Q29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBTdHJpbmcgY29va2llU3RyaW5nKQotICAgIENvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgLT4gKGJvb2wgZW5hYmxlZCkKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJM
IHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vz
c1NlY3VyZUNvb2tpZXMpCi0gICAgR2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
IHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4gY29va2llcykKKyAgICBDb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIC0+IChib29sIGVuYWJsZWQpIExlZ2FjeVN5bmMKKyAgICBDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBm
aXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgV2Vi
Q29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29s
IGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIExlZ2FjeVN5bmMKKyAgICBHZXRSYXdDb29raWVzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIHN0cnVjdCBX
ZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBXZWJDb3JlOjpVUkwgdXJsLCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdl
SUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBMZWdhY3lTeW5jCiAgICAg
RGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIHVybCwg
U3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFdlYkNvcmU6OlVS
TCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRl
bnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkKQEAgLTQ4LDcgKzQ4LDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2NlcwogICAgIFJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkws
IFN0cmluZyBmaWxlQmFja2VkUGF0aCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lzdGVy
QmxvYlVSTEZvclNsaWNlKFdlYkNvcmU6OlVSTCB1cmwsIFdlYkNvcmU6OlVSTCBzcmNVUkwsIGlu
dDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKQogICAgIFVucmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6
OlVSTCB1cmwpCi0gICAgQmxvYlNpemUoV2ViQ29yZTo6VVJMIHVybCkgLT4gKHVpbnQ2NF90IHJl
c3VsdFNpemUpCisgICAgQmxvYlNpemUoV2ViQ29yZTo6VVJMIHVybCkgLT4gKHVpbnQ2NF90IHJl
c3VsdFNpemUpIExlZ2FjeVN5bmMKICAgICBXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhWZWN0
b3I8U3RyaW5nPiBibG9iVVJMcywgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIpCiAKICAgICBT
dG9yZURlcml2ZWREYXRhVG9DYWNoZShXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YUtleSBrZXks
IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQpAQCAtNjYsMTcgKzY2LDE3IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBSZW1vdmVPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTdHJpbmcgc291cmNlT3JpZ2luLCBTdHJpbmcgZGVzdGlu
YXRpb25Qcm90b2NvbCwgU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucyk7CiAgICAgUmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CiAKLSAg
ICBHZXROZXR3b3JrTG9hZEluZm9ybWF0aW9uUmVxdWVzdCh1aW50NjRfdCByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpOwotICAgIEdl
dE5ldHdvcmtMb2FkSW5mb3JtYXRpb25SZXNwb25zZSh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSk7Ci0gICAgR2V0
TmV0d29ya0xvYWRJbnRlcm1lZGlhdGVJbmZvcm1hdGlvbih1aW50NjRfdCByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyKSAtPiAoVmVjdG9yPFdlYkNvcmU6Ok5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0
aW9uPiB0cmFuc2FjdGlvbnMpOwotICAgIFRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmlj
cyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6TmV0d29ya0xv
YWRNZXRyaWNzIG5ldHdvcmtNZXRyaWNzKTsKKyAgICBHZXROZXR3b3JrTG9hZEluZm9ybWF0aW9u
UmVxdWVzdCh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QpIExlZ2FjeVN5bmMKKyAgICBHZXROZXR3b3JrTG9hZEluZm9y
bWF0aW9uUmVzcG9uc2UodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIExlZ2FjeVN5bmMKKyAgICBHZXROZXR3b3Jr
TG9hZEludGVybWVkaWF0ZUluZm9ybWF0aW9uKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZp
ZXIpIC0+IChWZWN0b3I8V2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24+IHRy
YW5zYWN0aW9ucykgTGVnYWN5U3luYworICAgIFRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0
cmljcyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6TmV0d29y
a0xvYWRNZXRyaWNzIG5ldHdvcmtNZXRyaWNzKSBMZWdhY3lTeW5jCiAKICNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKLSAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIpCisgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSBMZWdhY3lT
eW5jCiAgICAgUmVtb3ZlSURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0g
ICAgRXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpCisgICAgRXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgLT4gKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpIExlZ2FjeVN5bmMKICNlbmRpZgogfQpJbmRleDog
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3
ICs1Myw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmUKICAgICBT
ZXRRT1MoaW50IGxhdGVuY3lRT1MsIGludCB0aHJvdWdocHV0UU9TKQogICAgIFNldFN0b3JhZ2VB
Y2Nlc3NBUElFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgotICAgIFNldEFsbG93c0FueVNT
TENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgZW5hYmxlZCkgLT4gKCkKKyAgICBTZXRBbGxv
d3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29sIGVuYWJsZWQpIC0+ICgpIExlZ2Fj
eVN5bmMKIAogICAgIFN5bmNBbGxDb29raWVzKCkKIApAQCAtNjgsNyArNjgsNyBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlCiAgICAgUHJvY2Vzc0RpZFRyYW5zaXRp
b25Ub0JhY2tncm91bmQoKQogICAgIFByb2Nlc3NEaWRUcmFuc2l0aW9uVG9Gb3JlZ3JvdW5kKCkK
IAotICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKSAtPiAoYm9vbCBoYW5kbGVkKQor
ICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBMZWdh
Y3lTeW5jCiAgICAgUHJlcGFyZVRvU3VzcGVuZCgpCiAgICAgQ2FuY2VsUHJlcGFyZVRvU3VzcGVu
ZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgpCkBAIC0xMDEsMTYgKzEwMSwxNiBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlCiAgICAgU2V0Q2FjaGVTdG9yYWdlUGFy
YW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHF1b3RhLCBTdHJpbmcg
Y2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBo
YW5kbGUpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotRGlkTm90SGFuZGxlRmV0Y2go
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKLURpZEZh
aWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQotRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2Uo
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKLURpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgSVBDOjpTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi1EaWRS
ZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIGRhdGEpCi1EaWRGaW5pc2hGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQotUG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6
Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4pCisgICAgRGlk
Tm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllcikKKyAgICBEaWRGYWlsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIg
ZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQorICAg
IERpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZl
dGNoSWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0
X3QgZW5jb2RlZERhdGFMZW5ndGgpCisgICAgRGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlk
ZW50aWZpZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKLVBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgUG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24s
IHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIAotRGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpCisgICAgRGlzYWJsZVNlcnZpY2VX
b3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkocmV2aXNpb24g
MjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDIsNyAr
NDIsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gewogICAgIFJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRv
cE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGRhdGEsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+
IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpCiAgICAgVW5y
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKLSAgICBTeW5jVGVybWluYXRlV29ya2VyKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdvcmtlcklkZW50aWZpZXIpIC0+ICgpCisg
ICAgU3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3
b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBMZWdhY3lTeW5jCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVN
ZXNzYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvSGFuZGxl
TWVzc2FnZS5oCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9IYW5kbGVNZXNzYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lk
IGhhbmRsZU1lc3NhZ2UoRGVjb2RlciYgZGVjb2RlciwgQyogCiB9CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlKERlY29k
ZXImIGRlY29kZXIsIEVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKK3ZvaWQgaGFuZGxlTWVzc2FnZUxlZ2FjeVN5bmMoRGVjb2RlciYgZGVjb2RlciwgRW5jb2Rl
ciYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVuYW1l
IENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6QXJndW1lbnRzPjo6VHlwZSBhcmd1bWVudHM7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKSB7CkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9p
ZCBoYW5kbGVNZXNzYWdlKERlY29kZXImIGRlY29kZXIsIEVuYwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBEZWNvZGVyJiBkZWNvZGVyLCBFbmNvZGVyJiByZXBseUVuY29k
ZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VMZWdhY3lTeW5j
KENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIERlY29kZXImIGRlY29kZXIsIEVuY29kZXImIHJlcGx5
RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBDb2RpbmdU
eXBlPHR5cGVuYW1lIFQ6OkFyZ3VtZW50cz46OlR5cGUgYXJndW1lbnRzOwogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoYXJndW1lbnRzKSkgewpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC02OSwyOCArNjks
MjggQEAgbWVzc2FnZXMgLT4gUGx1Z2luQ29udHJvbGxlclByb3h5IExlZ2FjeQogICAgIEhhbmRs
ZU1vdXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQpCiAgICAgCiAgICAg
IyBTZW50IHdoZW4gYSBtb3VzZSB3aGVlbCBldmVudCBzaG91bGQgYmUgcHJvY2Vzc2VkLgotICAg
IEhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpXZWJXaGVlbEV2ZW50IHdoZWVsRXZlbnQpIC0+IChi
b29sIGhhbmRsZWQpCisgICAgSGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6OldlYldoZWVsRXZlbnQg
d2hlZWxFdmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgTGVnYWN5U3luYwogCiAgICAgIyBTZW50IHdo
ZW4gYSBtb3VzZSBlbnRlciBldmVudCBzaG91bGQgYmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZU1v
dXNlRW50ZXJFdmVudChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgbW91c2VFdmVudCkgLT4gKGJvb2wg
aGFuZGxlZCkKKyAgICBIYW5kbGVNb3VzZUVudGVyRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50
IG1vdXNlRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIExlZ2FjeVN5bmMKICAgICAKICAgICAjIFNl
bnQgd2hlbiBhIG1vdXNlIGxlYXZlIGV2ZW50IHNob3VsZCBiZSBwcm9jZXNzZWQuCi0gICAgSGFu
ZGxlTW91c2VMZWF2ZUV2ZW50KFdlYktpdDo6V2ViTW91c2VFdmVudCBtb3VzZUV2ZW50KSAtPiAo
Ym9vbCBoYW5kbGVkKQorICAgIEhhbmRsZU1vdXNlTGVhdmVFdmVudChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQgbW91c2VFdmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgTGVnYWN5U3luYwogCiAgICAgIyBT
ZW50IHdoZW4gYSBrZXlib2FyZCBzaG91bGQgYmUgcHJvY2Vzc2VkLgotICAgIEhhbmRsZUtleWJv
YXJkRXZlbnQoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50IGtleWJvYXJkRXZlbnQpIC0+IChib29s
IGhhbmRsZWQpCisgICAgSGFuZGxlS2V5Ym9hcmRFdmVudChXZWJLaXQ6OldlYktleWJvYXJkRXZl
bnQga2V5Ym9hcmRFdmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgTGVnYWN5U3luYwogICAgIAogICAg
ICMgU2VudCB3aGVuIGFuIGVkaXRpbmcgY29tbWFuZCBzaG91bGQgYmUgcHJvY2Vzc2VkLgotICAg
IEhhbmRsZUVkaXRpbmdDb21tYW5kKFN0cmluZyBjb21tYW5kTmFtZSwgU3RyaW5nIGFyZ3VtZW50
KSAtPiAoYm9vbCBoYW5kbGVkKTsKKyAgICBIYW5kbGVFZGl0aW5nQ29tbWFuZChTdHJpbmcgY29t
bWFuZE5hbWUsIFN0cmluZyBhcmd1bWVudCkgLT4gKGJvb2wgaGFuZGxlZCkgTGVnYWN5U3luYwog
ICAgIAogICAgICMgUmV0dXJuIHdoZXRoZXIgb3Igbm90IGEgcGx1Z2luIHdhbnRzIHRvIGVuYWJs
ZSB0aGUgZ2l2ZW4gZWRpdGluZyBjb21tYW5kLgotICAgIElzRWRpdGluZ0NvbW1hbmRFbmFibGVk
KFN0cmluZyBjb21tYW5kTmFtZSkgLT4gKGJvb2wgZW5hYmxlZCk7CisgICAgSXNFZGl0aW5nQ29t
bWFuZEVuYWJsZWQoU3RyaW5nIGNvbW1hbmROYW1lKSAtPiAoYm9vbCBlbmFibGVkKSBMZWdhY3lT
eW5jCiAgICAgCiAgICAgIyBSZXR1cm4gd2hldGhlciBvciBub3QgYSBwbHVnaW4gd2FudHMgdG8g
aGFuZGxlIHBhZ2Ugc2NhbGUgZmFjdG9yIGl0c2VsZi4KLSAgICBIYW5kbGVzUGFnZVNjYWxlRmFj
dG9yKCkgLT4gKGJvb2wgZW5hYmxlZCk7CisgICAgSGFuZGxlc1BhZ2VTY2FsZUZhY3RvcigpIC0+
IChib29sIGVuYWJsZWQpIExlZ2FjeVN5bmMKIAogICAgICMgUmV0dXJuIHdoZXRoZXIgb3Igbm90
IGEgcGx1Z2luIHdhbnRzIHBhZ2Ugc2NhbGUsIHBhZ2Ugem9vbSwgYW5kIHRleHQgem9vbSBhbGwg
dG8gYWZmZWN0IHBhZ2Ugc2NhbGUuCi0gICAgUmVxdWlyZXNVbmlmaWVkU2NhbGVGYWN0b3IoKSAt
PiAoYm9vbCByZXF1aXJlZCk7CisgICAgUmVxdWlyZXNVbmlmaWVkU2NhbGVGYWN0b3IoKSAtPiAo
Ym9vbCByZXF1aXJlZCkgTGVnYWN5U3luYwogCiAgICAgIyBTZW50IHdoZW4gdGhlIHBsdWctaW4g
Zm9jdXMgY2hhbmdlcy4KICAgICBTZXRGb2N1cyhib29sIGlzRm9jdXNlZCkKQEAgLTk5LDEwICs5
OSwxMCBAQCBtZXNzYWdlcyAtPiBQbHVnaW5Db250cm9sbGVyUHJveHkgTGVnYWN5CiAgICAgRGlk
VXBkYXRlKCkKIAogICAgICMgUGFpbnQgdGhlIGVudGlyZSBwbHVnLWluLgotICAgIFBhaW50RW50
aXJlUGx1Z2luKCkgLT4gKCkKKyAgICBQYWludEVudGlyZVBsdWdpbigpIC0+ICgpIExlZ2FjeVN5
bmMKIAogICAgICMgR2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBwbHVnLWluJ3Mgc2NyaXB0YWJsZSBO
UE9iamVjdC4KLSAgICBHZXRQbHVnaW5TY3JpcHRhYmxlTlBPYmplY3QoKSAtPiAodWludDY0X3Qg
cGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0SUQpCisgICAgR2V0UGx1Z2luU2NyaXB0YWJsZU5QT2Jq
ZWN0KCkgLT4gKHVpbnQ2NF90IHBsdWdpblNjcmlwdGFibGVOUE9iamVjdElEKSBMZWdhY3lTeW5j
CiAKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmluZyBOU1dpbmRvdydzIGZvY3VzIGNoYW5n
ZXMKICAgICBXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBoYXNGb2N1cykKQEAgLTEyMiwxMCArMTIy
LDEwIEBAIG1lc3NhZ2VzIC0+IFBsdWdpbkNvbnRyb2xsZXJQcm94eSBMZWdhY3kKICNlbmRpZgog
CiAgICAgIyBEb2VzIHRoZSBwbHVnaW4gc3VwcG9ydCBzbmFwc2hvdHRpbmc/Ci0gICAgU3VwcG9y
dHNTbmFwc2hvdHRpbmcoKSAtPiAoYm9vbCBpc1N1cHBvcnRlZCkKKyAgICBTdXBwb3J0c1NuYXBz
aG90dGluZygpIC0+IChib29sIGlzU3VwcG9ydGVkKSBMZWdhY3lTeW5jCiAKICAgICAjIFJldHVy
biBhIHNuYXBzaG90IG9mIHRoZSBwbHVnaW4uCi0gICAgU25hcHNob3QoKSAtPiAoV2ViS2l0OjpT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSBiYWNraW5nU3RvcmVIYW5kbGUpCisgICAgU25hcHNob3Qo
KSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBiYWNraW5nU3RvcmVIYW5kbGUp
IExlZ2FjeVN5bmMKIAogICAgICMgU2VudCB3aGVuIHN0b3JhZ2UgYmxvY2tpbmcgcG9saWN5IGNo
YW5nZXMKICAgICBTdG9yYWdlQmxvY2tpbmdTdGF0ZUNoYW5nZWQoYm9vbCBzdG9yYWdlQmxvY2tp
bmdFbmFibGVkKQpAQCAtMTM0LDcgKzEzNCw3IEBAIG1lc3NhZ2VzIC0+IFBsdWdpbkNvbnRyb2xs
ZXJQcm94eSBMZWdhY3kKICAgICBQcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCBpc1By
aXZhdGVCcm93c2luZ0VuYWJsZWQpCiAKICAgICAjIEdldHMgdGhlIHN0cmluZyByZXByZXNlbnRh
dGluZyB0aGUgZm9ybSB2YWx1ZSBvZiB0aGUgcGx1Zy1pbgotICAgIEdldEZvcm1WYWx1ZSgpIC0+
IChib29sIHJldHVyblZhbHVlLCBTdHJpbmcgZm9ybVZhbHVlKQorICAgIEdldEZvcm1WYWx1ZSgp
IC0+IChib29sIHJldHVyblZhbHVlLCBTdHJpbmcgZm9ybVZhbHVlKSBMZWdhY3lTeW5jCiAKICAg
ICAjIFNlbnQgd2hlbiB0aGUgYnJvd3NlciB3YW50cyB0byBtdXRlIG9yIHVubXV0ZSB0aGUgcGx1
Z2luLgogICAgIE11dGVkU3RhdGVDaGFuZ2VkKGJvb2wgbXV0ZWQpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5o
CShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L0xlZ2Fj
eU1lc3NhZ2VzLWV4cGVjdGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwxNCBAQAog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLSAgICBj
bGFzcyBNYWNoUG9ydDsKLSAgICBjbGFzcyBDb25uZWN0aW9uOwotICAgIGNsYXNzIER1bW15VHlw
ZTsKK2NsYXNzIE1hY2hQb3J0OworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIER1bW15VHlwZTsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0gICAgY2xhc3MgV2ViVG91Y2hFdmVudDsKLSAgICBj
bGFzcyBXZWJQcmVmZXJlbmNlc1N0b3JlOworY2xhc3MgV2ViVG91Y2hFdmVudDsKK2NsYXNzIFdl
YlByZWZlcmVuY2VzU3RvcmU7CiB9CiAKIG5hbWVzcGFjZSBNZXNzYWdlcyB7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlclN1cGVyY2xhc3MtZXhwZWN0
ZWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2Fn
ZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBlY3RlZC5jcHAJKHJldmlzaW9uIDIzNzI5OCkKKysrIFNv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyU3VwZXJjbGFzcy1leHBl
Y3RlZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwxMiBAQAogI2luY2x1ZGUgIkFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkhhbmRsZU1l
c3NhZ2UuaCIKKyNpbmNsdWRlICJUZXN0Q2xhc3NOYW1lLmgiCiAjaWYgRU5BQkxFKFRFU1RfRkVB
VFVSRSkKICNpbmNsdWRlICJUZXN0VHdvU3RhdGVFbnVtLmgiCiAjZW5kaWYKICNpbmNsdWRlICJX
ZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKQEAgLTY1LDYgKzY3
LDEyIEBAIHZvaWQgVGVzdEFzeW5jTWVzc2FnZTo6c2VuZChzdGQ6OnVuaXF1ZV8KIAogI2VuZGlm
CiAKK3ZvaWQgVGVzdERlbGF5ZWRNZXNzYWdlOjpzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JiYgZW5jb2RlciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBzdGQ6
Om9wdGlvbmFsPFdlYktpdDo6VGVzdENsYXNzTmFtZT4mIG9wdGlvbmFsUmVwbHkpCit7CisgICAg
KmVuY29kZXIgPDwgb3B0aW9uYWxSZXBseTsKKyAgICBjb25uZWN0aW9uLnNlbmRTeW5jUmVwbHko
V1RGTW92ZShlbmNvZGVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYlBhZ2UKIAogfSAvLyBu
YW1lc3BhY2UgTWVzc2FnZXMKQEAgLTg2LDUgKzk0LDIxIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb24KICAgICBXZWJQYWdlQmFzZTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQoreworICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RTeW5jTWVz
c2FnZTo6bmFtZSgpKSB7CisgICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZTo6VGVzdFN5bmNNZXNzYWdlPihkZWNvZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlzLCAmV2Vi
UGFnZTo6dGVzdFN5bmNNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0RGVsYXllZE1l
c3NhZ2U6Om5hbWUoKSkgeworICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3Nh
Z2VzOjpXZWJQYWdlOjpUZXN0RGVsYXllZE1lc3NhZ2U+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJl
cGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OnRlc3REZWxheWVkTWVzc2FnZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNF
RF9QQVJBTShkZWNvZGVyKTsKKyAgICBVTlVTRURfUEFSQU0ocmVwbHlFbmNvZGVyKTsKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXNTdXBlcmNsYXNzLWV4cGVjdGVk
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlc1N1
cGVyY2xhc3MtZXhwZWN0ZWQuaAkocmV2aXNpb24gMjM3Mjk4KQorKysgU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9NZXNzYWdlc1N1cGVyY2xhc3MtZXhwZWN0ZWQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjUsMTEgKzI1LDE4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50
Q29kZXJzLmgiCisjaW5jbHVkZSAiVGVzdENsYXNzTmFtZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK25hbWVz
cGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7Ci0g
ICAgZW51bSBjbGFzcyBUZXN0VHdvU3RhdGVFbnVtIDogYm9vbDsKK2VudW0gY2xhc3MgVGVzdFR3
b1N0YXRlRW51bSA6IGJvb2w7CiB9CiAKIG5hbWVzcGFjZSBNZXNzYWdlcyB7CkBAIC05Miw1ICs5
OSw1MyBAQCBwcml2YXRlOgogfTsKICNlbmRpZgogCitjbGFzcyBUZXN0U3luY01lc3NhZ2Ugewor
cHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx1aW50MzJfdD4gQXJndW1lbnRzOworCisg
ICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBu
YW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIlRlc3RTeW5jTWVzc2FnZSIpOyB9
CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKKworICAgIHR5cGVkZWYgc3Rk
Ojp0dXBsZTx1aW50OF90Jj4gUmVwbHk7CisgICAgZXhwbGljaXQgVGVzdFN5bmNNZXNzYWdlKHVp
bnQzMl90IHBhcmFtKQorICAgICAgICA6IG1fYXJndW1lbnRzKHBhcmFtKQorICAgIHsKKyAgICB9
CisKKyAgICBjb25zdCBBcmd1bWVudHMmIGFyZ3VtZW50cygpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9hcmd1bWVudHM7CisgICAgfQorCitwcml2YXRlOgorICAgIEFyZ3VtZW50cyBt
X2FyZ3VtZW50czsKK307CisKK2NsYXNzIFRlc3REZWxheWVkTWVzc2FnZSB7CitwdWJsaWM6Cisg
ICAgdHlwZWRlZiBzdGQ6OnR1cGxlPGJvb2w+IEFyZ3VtZW50czsKKworICAgIHN0YXRpYyBJUEM6
OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJO
YW1lKCk7IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJu
IElQQzo6U3RyaW5nUmVmZXJlbmNlKCJUZXN0RGVsYXllZE1lc3NhZ2UiKTsgfQorICAgIHN0YXRp
YyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CisKKyAgICB1c2luZyBEZWxheWVkUmVwbHkgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpUZXN0Q2xh
c3NOYW1lPiYgb3B0aW9uYWxSZXBseSk+OworICAgIHN0YXRpYyB2b2lkIHNlbmQoc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgY29uc3Qgc3RkOjpvcHRp
b25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+JiBvcHRpb25hbFJlcGx5KTsKKyAgICB0eXBlZGVm
IHN0ZDo6dHVwbGU8c3RkOjpvcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFzc05hbWU+Jj4gUmVwbHk7
CisgICAgZXhwbGljaXQgVGVzdERlbGF5ZWRNZXNzYWdlKGJvb2wgdmFsdWUpCisgICAgICAgIDog
bV9hcmd1bWVudHModmFsdWUpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IEFyZ3VtZW50cyYg
YXJndW1lbnRzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgQXJndW1lbnRzIG1fYXJndW1lbnRzOworfTsKKwogfSAvLyBu
YW1lc3BhY2UgV2ViUGFnZQogfSAvLyBuYW1lc3BhY2UgTWVzc2FnZXMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQkocmV2aXNpb24gMjM3Mjk0KQorKysgU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQCBXQU5UU19DT05ORUNUSU9OX0FUVFJJQlVURSA9ICdXYW50c0Nvbm5lCiBM
RUdBQ1lfUkVDRUlWRVJfQVRUUklCVVRFID0gJ0xlZ2FjeVJlY2VpdmVyJwogREVMQVlFRF9BVFRS
SUJVVEUgPSAnRGVsYXllZCcKIEFTWU5DX0FUVFJJQlVURSA9ICdBc3luYycKK0xFR0FDWV9TWU5D
X0FUVFJJQlVURSA9ICdMZWdhY3lTeW5jJwogCiBfbGljZW5zZV9oZWFkZXIgPSAiIiIvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpA
QCAtMTIyLDE2ICsxMjMsMTYgQEAgZGVmIG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKG1l
c3NhZwogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFt
ZXRlcnMgIT0gTm9uZToKICAgICAgICAgc2VuZF9wYXJhbWV0ZXJzID0gWyhmdW5jdGlvbl9wYXJh
bWV0ZXJfdHlwZSh4LnR5cGUsIHgua2luZCksIHgubmFtZSkgZm9yIHggaW4gbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzXQorICAgICAgICBjb21wbGV0aW9uX2hhbmRsZXJfcGFyYW1ldGVycyA9ICcl
cycgJSAnLCAnLmpvaW4oWycgJy5qb2luKHgpIGZvciB4IGluIHNlbmRfcGFyYW1ldGVyc10pCisg
ICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgICAg
ICAgICAgbW92ZV9wYXJhbWV0ZXJzID0gJywgJy5qb2luKFttb3ZlX3R5cGUoeC50eXBlKSBmb3Ig
eCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBseShJUEM6OkRlY29kZXImLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCVzKT4mJik7XG4nICUgbW92ZV9wYXJhbWV0ZXJzKQorICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICAgIHN0YXRpYyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoJXMpPiYmKTtcbicgJSBtb3ZlX3BhcmFtZXRlcnMpCisgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIGFzeW5jTWVzc2FnZVJlcGx5
TmFtZSgpIHsgcmV0dXJuIHsgIiVzUmVwbHkiIH07IH1cbicgJSBtZXNzYWdlLm5hbWUpCisgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgQXN5bmNSZXBseScpCisgICAgICAgIGVs
aWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBEZWxheWVkUmVwbHknKQogICAgICAgICBpZiBtZXNz
YWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJp
YnV0ZShBU1lOQ19BVFRSSUJVVEUpOgotICAgICAgICAgICAgY29tcGxldGlvbl9oYW5kbGVyX3Bh
cmFtZXRlcnMgPSAnJXMnICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3IgeCBpbiBzZW5kX3Bh
cmFtZXRlcnNdKQotICAgICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FU
VFJJQlVURSk6Ci0gICAgICAgICAgICAgICAgbW92ZV9wYXJhbWV0ZXJzID0gJywgJy5qb2luKFtt
b3ZlX3R5cGUoeC50eXBlKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdKQotICAg
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBD
OjpEZWNvZGVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFy
YW1ldGVycykKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQg
Y2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFy
YW1ldGVycykKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIElQQzo6
U3RyaW5nUmVmZXJlbmNlIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIHsgIiVzUmVw
bHkiIH07IH1cbicgJSBtZXNzYWdlLm5hbWUpCi0gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnICAgIHVzaW5nIEFzeW5jUmVwbHknKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgRGVsYXllZFJlcGx5JykKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPjtcbicgJSBjb21w
bGV0aW9uX2hhbmRsZXJfcGFyYW1ldGVycykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBzdGF0aWMgdm9pZCBzZW5kKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiYsIElQQzo6
Q29ubmVjdGlvbiYnKQogICAgICAgICAgICAgaWYgbGVuKHNlbmRfcGFyYW1ldGVycyk6CkBAIC0x
NzAsNyArMTcxLDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb24obmFtZXNwYWNlLCBraW5kXwog
ZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2Zvcl9uYW1lc3BhY2UobmFtZXNwYWNlLCBraW5kX2Fu
ZF90eXBlcyk6CiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5kKCduYW1lc3BhY2Ug
JXMge1xuJyAlIG5hbWVzcGFjZSkKLSAgICByZXN1bHQgKz0gWycgICAgJXM7XG4nICUgZm9yd2Fy
ZF9kZWNsYXJhdGlvbihuYW1lc3BhY2UsIHgpIGZvciB4IGluIGtpbmRfYW5kX3R5cGVzXQorICAg
IHJlc3VsdCArPSBbJyVzO1xuJyAlIGZvcndhcmRfZGVjbGFyYXRpb24obmFtZXNwYWNlLCB4KSBm
b3IgeCBpbiBraW5kX2FuZF90eXBlc10KICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQogICAgIHJl
dHVybiAnJy5qb2luKHJlc3VsdCkKIApAQCAtMzA3LDYgKzMwOCw4IEBAIGRlZiBzeW5jX21lc3Nh
Z2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBtZXMKICAgICAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gKz0g
J0RlbGF5ZWQnCiAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6
CiAgICAgICAgIGRpc3BhdGNoX2Z1bmN0aW9uICs9ICdBc3luYycKKyAgICBpZiBtZXNzYWdlLmhh
c19hdHRyaWJ1dGUoTEVHQUNZX1NZTkNfQVRUUklCVVRFKToKKyAgICAgICAgZGlzcGF0Y2hfZnVu
Y3Rpb24gKz0gJ0xlZ2FjeVN5bmMnCiAKICAgICB3YW50c19jb25uZWN0aW9uID0gbWVzc2FnZS5o
YXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUo
V0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdC1zdXBlcmNsYXNzLW1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdC1zdXBlcmNsYXNzLW1lc3NhZ2VzLmluCShyZXZp
c2lvbiAyMzcyOTgpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Qtc3VwZXJj
bGFzcy1tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjUsNCArMjUsNiBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlIDogV2ViUGFnZUJhc2UgewogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAg
ICAgVGVzdEFzeW5jTWVzc2FnZShlbnVtOmJvb2wgV2ViS2l0OjpUZXN0VHdvU3RhdGVFbnVtIHR3
b1N0YXRlRW51bSkgLT4gKHVpbnQ2NF90IHJlc3VsdCkgQXN5bmMKICNlbmRpZgorICAgIFRlc3RT
eW5jTWVzc2FnZSh1aW50MzJfdCBwYXJhbSkgLT4gKHVpbnQ4X3QgcmVwbHkpIFN5bmMKKyAgICBU
ZXN0RGVsYXllZE1lc3NhZ2UoYm9vbCB2YWx1ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpU
ZXN0Q2xhc3NOYW1lPiBvcHRpb25hbFJlcGx5KSBEZWxheWVkCiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3NhZ2VzLmluCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdl
UmVjZWl2ZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDIzNzI5NCkKKysrIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTIzLDE2ICsyMywxNiBAQAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogCiBtZXNzYWdlcyAtPiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciBMZWdhY3lSZWNlaXZl
ciB7Ci0gICAgRGVhbGxvY2F0ZSgpIC0+ICgpCi0gICAgSGFzTWV0aG9kKFdlYktpdDo6TlBJZGVu
dGlmaWVyRGF0YSBtZXRob2ROYW1lKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSkKLSAgICBJbnZva2Uo
V2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIG1ldGhvZE5hbWUsIFZlY3RvcjxXZWJLaXQ6Ok5QVmFy
aWFudERhdGE+IGFyZ3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5Q
VmFyaWFudERhdGEgcmVzdWx0RGF0YSkKLSAgICBJbnZva2VEZWZhdWx0KFZlY3RvcjxXZWJLaXQ6
Ok5QVmFyaWFudERhdGE+IGFyZ3VtZW50c0RhdGEpIC0+IChib29sIHJldHVyblZhbHVlLCBXZWJL
aXQ6Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkKLSAgICBIYXNQcm9wZXJ0eShXZWJLaXQ6Ok5Q
SWRlbnRpZmllckRhdGEgcHJvcGVydHlOYW1lKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSkKLSAgICBH
ZXRQcm9wZXJ0eShXZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGEgcHJvcGVydHlOYW1lKSAtPiAoYm9v
bCByZXR1cm5WYWx1ZSwgV2ViS2l0OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpCi0gICAgU2V0
UHJvcGVydHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSwgV2ViS2l0OjpO
UFZhcmlhbnREYXRhIHByb3BlcnR5VmFsdWVEYXRhKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSkKLSAg
ICBSZW1vdmVQcm9wZXJ0eShXZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGEgcHJvcGVydHlOYW1lKSAt
PiAoYm9vbCByZXR1cm5WYWx1ZSkKLSAgICBFbnVtZXJhdGUoKSAtPiAoYm9vbCByZXR1cm5WYWx1
ZSwgVmVjdG9yPFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YT4gaWRlbnRpZmllcnNEYXRhKQotICAg
IENvbnN0cnVjdChWZWN0b3I8V2ViS2l0OjpOUFZhcmlhbnREYXRhPiBhcmd1bWVudHNEYXRhKSAt
PiAoYm9vbCByZXR1cm5WYWx1ZSwgV2ViS2l0OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpCisg
ICAgRGVhbGxvY2F0ZSgpIC0+ICgpIExlZ2FjeVN5bmMKKyAgICBIYXNNZXRob2QoV2ViS2l0OjpO
UElkZW50aWZpZXJEYXRhIG1ldGhvZE5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBMZWdhY3lT
eW5jCisgICAgSW52b2tlKFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBtZXRob2ROYW1lLCBWZWN0
b3I8V2ViS2l0OjpOUFZhcmlhbnREYXRhPiBhcmd1bWVudHNEYXRhKSAtPiAoYm9vbCByZXR1cm5W
YWx1ZSwgV2ViS2l0OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpIExlZ2FjeVN5bmMKKyAgICBJ
bnZva2VEZWZhdWx0KFZlY3RvcjxXZWJLaXQ6Ok5QVmFyaWFudERhdGE+IGFyZ3VtZW50c0RhdGEp
IC0+IChib29sIHJldHVyblZhbHVlLCBXZWJLaXQ6Ok5QVmFyaWFudERhdGEgcmVzdWx0RGF0YSkg
TGVnYWN5U3luYworICAgIEhhc1Byb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBwcm9w
ZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBMZWdhY3lTeW5jCisgICAgR2V0UHJvcGVy
dHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSkgLT4gKGJvb2wgcmV0dXJu
VmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0YSByZXN1bHREYXRhKSBMZWdhY3lTeW5jCisgICAg
U2V0UHJvcGVydHkoV2ViS2l0OjpOUElkZW50aWZpZXJEYXRhIHByb3BlcnR5TmFtZSwgV2ViS2l0
OjpOUFZhcmlhbnREYXRhIHByb3BlcnR5VmFsdWVEYXRhKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSkg
TGVnYWN5U3luYworICAgIFJlbW92ZVByb3BlcnR5KFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YSBw
cm9wZXJ0eU5hbWUpIC0+IChib29sIHJldHVyblZhbHVlKSBMZWdhY3lTeW5jCisgICAgRW51bWVy
YXRlKCkgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFZlY3RvcjxXZWJLaXQ6Ok5QSWRlbnRpZmllckRh
dGE+IGlkZW50aWZpZXJzRGF0YSkgTGVnYWN5U3luYworICAgIENvbnN0cnVjdChWZWN0b3I8V2Vi
S2l0OjpOUFZhcmlhbnREYXRhPiBhcmd1bWVudHNEYXRhKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwg
V2ViS2l0OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpIExlZ2FjeVN5bmMKIH0KIAogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDIzNzI5NCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKIG1lc3NhZ2VzIC0+IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgewotICAgIFN1
cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCkgLT4gKGJvb2wgc3VwcG9ydHNGdWxs
U2NyZWVuKQorICAgIFN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCkgLT4gKGJv
b2wgc3VwcG9ydHNGdWxsU2NyZWVuKSBMZWdhY3lTeW5jCiAgICAgRW50ZXJGdWxsU2NyZWVuKCkK
ICAgICBFeGl0RnVsbFNjcmVlbigpCiAgICAgQmVnYW5FbnRlckZ1bGxTY3JlZW4oV2ViQ29yZTo6
SW50UmVjdCBpbml0aWFsUmVjdCwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBHZXRXaW5kb3dGcmFtZSgpIC0+IChXZWJDb3JlOjpGbG9hdFJl
Y3Qgd2luZG93RnJhbWUpIERlbGF5ZWQKICAgICBTY3JlZW5Ub1Jvb3RWaWV3KFdlYkNvcmU6Oklu
dFBvaW50IHNjcmVlblBvaW50KSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgd2luZG93UG9pbnQpIERl
bGF5ZWQKICAgICBSb290Vmlld1RvU2NyZWVuKFdlYkNvcmU6OkludFJlY3QgcmVjdCkgLT4gKFdl
YkNvcmU6OkludFJlY3Qgc2NyZWVuRnJhbWUpIERlbGF5ZWQKLSAgICBHZXRJc1ZpZXdWaXNpYmxl
KCkgLT4gKGJvb2wgcmVzdWx0KQorICAgIEdldElzVmlld1Zpc2libGUoKSAtPiAoYm9vbCByZXN1
bHQpIExlZ2FjeVN5bmMKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNob3dWYWxpZGF0aW9u
TWVzc2FnZShXZWJDb3JlOjpJbnRSZWN0IGFuY2hvclJlY3QsIFN0cmluZyBtZXNzYWdlKQpAQCAt
NjksMTUgKzY5LDE1IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXco
V2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpIC0+IChXZWJDb3JlOjpJbnRQb2ludCB3aW5k
b3dQb2ludCkKLSAgICBSb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihXZWJDb3JlOjpJbnRS
ZWN0IHJlY3QpIC0+IChXZWJDb3JlOjpJbnRSZWN0IHNjcmVlbkZyYW1lKQorICAgIEFjY2Vzc2li
aWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KFdlYkNvcmU6OkludFBvaW50IHNjcmVlblBvaW50KSAtPiAo
V2ViQ29yZTo6SW50UG9pbnQgd2luZG93UG9pbnQpIExlZ2FjeVN5bmMKKyAgICBSb290Vmlld1Rv
QWNjZXNzaWJpbGl0eVNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IHJlY3QpIC0+IChXZWJDb3JlOjpJ
bnRSZWN0IHNjcmVlbkZyYW1lKSBMZWdhY3lTeW5jCiAjZW5kaWYKIAogICAgIFJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9v
bCBzaG91bGRDbG9zZSkgRGVsYXllZAogICAgIFBhZ2VEaWRTY3JvbGwoKQogICAgIFJ1bk9wZW5Q
YW5lbCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdz
IHBhcmFtZXRlcnMpCiAgICAgU2hvd1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0
YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQotICAgIFByaW50
RnJhbWUodWludDY0X3QgZnJhbWVJRCkgLT4gKCkKKyAgICBQcmludEZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpIC0+ICgpIExlZ2FjeVN5bmMKICAgICBSdW5Nb2RhbCgpCiAgICAgTm90aWZ5U2Nyb2xs
ZXJUaHVtYklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIpCiAg
ICAgUmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQpA
QCAtMTQ5LDcgKzE0OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkQ2hh
bmdlTWFpbkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIERpZERlc3Ryb3lOYXZpZ2F0
aW9uKHVpbnQ2NF90IG5hdmlnYXRpb25JRCkKIAotICAgIEhhc0luc2VjdXJlQ29udGVudCgpIC0+
IChlbnVtOmJvb2wgV2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50IGhhc0luc2VjdXJlQ29udGVu
dCkKKyAgICBIYXNJbnNlY3VyZUNvbnRlbnQoKSAtPiAoZW51bTpib29sIFdlYkNvcmU6Okhhc0lu
c2VjdXJlQ29udGVudCBoYXNJbnNlY3VyZUNvbnRlbnQpIExlZ2FjeVN5bmMKIAogICAgIE1haW5G
cmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFpbkZyYW1l
UGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmUpCiAKQEAgLTE5Myw3ICsxOTMsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEF1dG9jb3JyZWN0aW9uRGF0YUNhbGxiYWNrKFZl
Y3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHRleHRSZWN0cywgU3RyaW5nIGZvbnROYW1lLCBkb3Vi
bGUgZm9udFNpemUsIHVpbnQ2NF90IHRyYWl0cywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiAgICAgQXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2soU3RyaW5nIGJlZm9yZVRleHQs
IFN0cmluZyBtYXJrZWRUZXh0LCBTdHJpbmcgc2VsZWN0ZWRUZXh0LCBTdHJpbmcgYWZ0ZXJUZXh0
LCB1aW50NjRfdCBsb2NhdGlvbiwgdWludDY0X3QgbGVuZ3RoLCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKICAgICBTZWxlY3Rpb25Db250ZXh0Q2FsbGJhY2soU3RyaW5nIHNlbGVjdGVk
VGV4dCwgU3RyaW5nIGJlZm9yZVRleHQsIFN0cmluZyBhZnRlclRleHQsIFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQotICAgIEludGVycHJldEtleUV2ZW50KHN0cnVjdCBXZWJLaXQ6OkVk
aXRvclN0YXRlIHN0YXRlLCBib29sIGlzQ2hhckV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKQorICAg
IEludGVycHJldEtleUV2ZW50KHN0cnVjdCBXZWJLaXQ6OkVkaXRvclN0YXRlIHN0YXRlLCBib29s
IGlzQ2hhckV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBMZWdhY3lTeW5jCiAgICAgRGlkUmVjZWl2
ZVBvc2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24gaW5mb3JtYXRpb24pCiAgICAgU2F2ZUltYWdlVG9MaWJyYXJ5KFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlLCB1aW50NjRfdCBzaXplKQogICAgIFNob3dQbGF5
YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRS
ZWN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSwgU3Ry
aW5nIHJvdXRpbmdDb250ZXh0VUlEKQpAQCAtMjI4LDEwICsyMjgsMTAgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKIAogICAgICMgQmFja0ZvcndhcmQgbWVzc2FnZXMKICAgICBCYWNrRm9y
d2FyZEFkZEl0ZW0oc3RydWN0IFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGl0ZW1T
dGF0ZSkKLSAgICBCYWNrRm9yd2FyZEdvVG9JdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyIGl0ZW1JRCkgLT4gKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCi0gICAgQmFja0ZvcndhcmRJdGVtQXRJbmRleChp
bnQzMl90IGl0ZW1JbmRleCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllcj4gaXRlbUlEKQotICAgIEJhY2tGb3J3YXJkQmFja0xpc3RDb3VudCgpIC0+
ICh1aW50MzJfdCBjb3VudCkKLSAgICBCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQoKSAtPiAo
dWludDMyX3QgY291bnQpCisgICAgQmFja0ZvcndhcmRHb1RvSXRlbShzdHJ1Y3QgV2ViQ29yZTo6
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBpdGVtSUQpIC0+IChXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSBMZWdhY3lTeW5jCisgICAgQmFj
a0ZvcndhcmRJdGVtQXRJbmRleChpbnQzMl90IGl0ZW1JbmRleCkgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcj4gaXRlbUlEKSBMZWdhY3lTeW5jCisg
ICAgQmFja0ZvcndhcmRCYWNrTGlzdENvdW50KCkgLT4gKHVpbnQzMl90IGNvdW50KSBMZWdhY3lT
eW5jCisgICAgQmFja0ZvcndhcmRGb3J3YXJkTGlzdENvdW50KCkgLT4gKHVpbnQzMl90IGNvdW50
KSBMZWdhY3lTeW5jCiAgICAgQmFja0ZvcndhcmRDbGVhcigpCiAgICAgV2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0
ZW1JRCwgYm9vbCBpblBhZ2VDYWNoZSkKIApAQCAtMjM5LDggKzIzOSw4IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAgICAgUmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8odWludDY0X3Qg
Y29tbWFuZElELCB1aW50MzJfdCBlZGl0QWN0aW9uKQogICAgIENsZWFyQWxsRWRpdENvbW1hbmRz
KCkKICAgICBSZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZygpCi0gICAgQ2FuVW5kb1JlZG8o
ZW51bTpib29sIFdlYktpdDo6VW5kb09yUmVkbyB1bmRvT3JSZWRvKSAtPiAoYm9vbCByZXN1bHQp
Ci0gICAgRXhlY3V0ZVVuZG9SZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09y
UmVkbykgLT4gKCkKKyAgICBDYW5VbmRvUmVkbyhlbnVtOmJvb2wgV2ViS2l0OjpVbmRvT3JSZWRv
IHVuZG9PclJlZG8pIC0+IChib29sIHJlc3VsdCkgTGVnYWN5U3luYworICAgIEV4ZWN1dGVVbmRv
UmVkbyhlbnVtOmJvb2wgV2ViS2l0OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pIC0+ICgpIExlZ2Fj
eVN5bmMKIAogICAgICMgRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5nCiAgICAgTG9nRGlhZ25v
c3RpY01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZW51bTpib29s
IFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCkBAIC0zMDAsMTYgKzMwMCwxNiBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBTcGVsbGluZyBhbmQgZ3JhbW1h
ciBtZXNzYWdlcwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpICAKLSAgICBDaGVja1Rl
eHRPZlBhcmFncmFwaChTdHJpbmcgdGV4dCwgT3B0aW9uU2V0PFdlYkNvcmU6OlRleHRDaGVja2lu
Z1R5cGU+IGNoZWNraW5nVHlwZXMsIGludDMyX3QgaW5zZXJ0aW9uUG9pbnQpIC0+IChWZWN0b3I8
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzKQorICAgIENoZWNrVGV4dE9mUGFy
YWdyYXBoKFN0cmluZyB0ZXh0LCBPcHRpb25TZXQ8V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZT4g
Y2hlY2tpbmdUeXBlcywgaW50MzJfdCBpbnNlcnRpb25Qb2ludCkgLT4gKFZlY3RvcjxXZWJDb3Jl
OjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdHMpIExlZ2FjeVN5bmMKICNlbmRpZgotICAgIENo
ZWNrU3BlbGxpbmdPZlN0cmluZyhTdHJpbmcgdGV4dCkgLT4gKGludDMyX3QgbWlzc3BlbGxpbmdM
b2NhdGlvbiwgaW50MzJfdCBtaXNzcGVsbGluZ0xlbmd0aCkKLSAgICBDaGVja0dyYW1tYXJPZlN0
cmluZyhTdHJpbmcgdGV4dCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiByZXN1
bHRzLCBpbnQzMl90IGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50MzJfdCBiYWRHcmFtbWFyTGVuZ3Ro
KQotICAgIFNwZWxsaW5nVUlJc1Nob3dpbmcoKSAtPiAoYm9vbCBpc1Nob3dpbmcpCisgICAgQ2hl
Y2tTcGVsbGluZ09mU3RyaW5nKFN0cmluZyB0ZXh0KSAtPiAoaW50MzJfdCBtaXNzcGVsbGluZ0xv
Y2F0aW9uLCBpbnQzMl90IG1pc3NwZWxsaW5nTGVuZ3RoKSBMZWdhY3lTeW5jCisgICAgQ2hlY2tH
cmFtbWFyT2ZTdHJpbmcoU3RyaW5nIHRleHQpIC0+IChWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRl
dGFpbD4gcmVzdWx0cywgaW50MzJfdCBiYWRHcmFtbWFyTG9jYXRpb24sIGludDMyX3QgYmFkR3Jh
bW1hckxlbmd0aCkgTGVnYWN5U3luYworICAgIFNwZWxsaW5nVUlJc1Nob3dpbmcoKSAtPiAoYm9v
bCBpc1Nob3dpbmcpIExlZ2FjeVN5bmMKICAgICBVcGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxs
ZWRXb3JkKFN0cmluZyBtaXNzcGVsbGVkV29yZCkKICAgICBVcGRhdGVTcGVsbGluZ1VJV2l0aEdy
YW1tYXJTdHJpbmcoU3RyaW5nIGJhZEdyYW1tYXJQaHJhc2UsIHN0cnVjdCBXZWJDb3JlOjpHcmFt
bWFyRGV0YWlsIGdyYW1tYXJEZXRhaWwpCi0gICAgR2V0R3Vlc3Nlc0ZvcldvcmQoU3RyaW5nIHdv
cmQsIFN0cmluZyBjb250ZXh0LCBpbnQzMl90IGluc2VydGlvblBvaW50KSAtPiAoVmVjdG9yPFN0
cmluZz4gZ3Vlc3NlcykKLSAgICBMZWFybldvcmQoU3RyaW5nIHdvcmQpOwotICAgIElnbm9yZVdv
cmQoU3RyaW5nIHdvcmQpOworICAgIEdldEd1ZXNzZXNGb3JXb3JkKFN0cmluZyB3b3JkLCBTdHJp
bmcgY29udGV4dCwgaW50MzJfdCBpbnNlcnRpb25Qb2ludCkgLT4gKFZlY3RvcjxTdHJpbmc+IGd1
ZXNzZXMpIExlZ2FjeVN5bmMKKyAgICBMZWFybldvcmQoU3RyaW5nIHdvcmQpCisgICAgSWdub3Jl
V29yZChTdHJpbmcgd29yZCkKICAgICBSZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh1aW50NjRfdCBy
ZXF1ZXN0SUQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhIHJlcXVlc3QsIGludDMy
X3QgaW5zZXJ0aW9uUG9pbnQpCiAKICAgICAjIERyYWcgYW5kIGRyb3AgbWVzc2FnZXMKQEAgLTM0
MCw3ICszNDAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZFBlcmZvcm1E
aWN0aW9uYXJ5TG9va3VwKHN0cnVjdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvIGRpY3Rp
b25hcnlQb3B1cEluZm8pCiAKICAgICAjIEtleWJvYXJkIGlucHV0IHN1cHBvcnQgbWVzc2FnZXMK
LSAgICBFeGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcihTdHJpbmcgc2VsZWN0b3IpIC0+IChi
b29sIGhhbmRsZWQpCisgICAgRXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoU3RyaW5nIHNl
bGVjdG9yKSAtPiAoYm9vbCBoYW5kbGVkKSBMZWdhY3lTeW5jCiAKICAgICAjIFJlbW90ZSBhY2Nl
c3NpYmlsaXR5IG1lc3NhZ2VzCiAgICAgUmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0eVRv
a2VuKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQpAQCAtMzUwLDcgKzM1MCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVp
bnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCB1aW50NjRfdCBjb21wbGV4
VGV4dElucHV0U3RhdGUpCiAKICAgICAjIFNwZWVjaCBtZXNzYWdlcwotICAgIEdldElzU3BlYWtp
bmcoKSAtPiAoYm9vbCBpc1NwZWFraW5nKQorICAgIEdldElzU3BlYWtpbmcoKSAtPiAoYm9vbCBp
c1NwZWFraW5nKSBMZWdhY3lTeW5jCiAgICAgU3BlYWsoU3RyaW5nIHN0cmluZykKICAgICBTdG9w
U3BlYWtpbmcoKQogCkBAIC0zNjgsNyArMzY4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKLSAgICBTdWJzdGl0dXRpb25zUGFuZWxJc1No
b3dpbmcoKSAtPiAoYm9vbCBpc1Nob3dpbmcpCisgICAgU3Vic3RpdHV0aW9uc1BhbmVsSXNTaG93
aW5nKCkgLT4gKGJvb2wgaXNTaG93aW5nKSBMZWdhY3lTeW5jCiAjZW5kaWYKICNpZiBVU0UoQVVU
T01BVElDX1RFWFRfUkVQTEFDRU1FTlQpCiAgICAgdG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKQpA
QCAtMzgxLDcgKzM4MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBBdXRv
Y29ycmVjdGlvbiBtZXNzYWdlcwogICAgIFNob3dDb3JyZWN0aW9uUGFuZWwoaW50MzJfdCBwYW5l
bFR5cGUsIFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIFN0
cmluZyByZXBsYWNlZFN0cmluZywgU3RyaW5nIHJlcGxhY2VtZW50U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykKICAgICBEaXNtaXNzQ29ycmVjdGlv
blBhbmVsKGludDMyX3QgcmVhc29uKQotICAgIERpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKGlu
dDMyX3QgcmVhc29uKSAtPiAoU3RyaW5nIHJlc3VsdCkKKyAgICBEaXNtaXNzQ29ycmVjdGlvblBh
bmVsU29vbihpbnQzMl90IHJlYXNvbikgLT4gKFN0cmluZyByZXN1bHQpIExlZ2FjeVN5bmMKICAg
ICBSZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKGludDMyX3QgcmVzcG9uc2UsIFN0cmluZyBy
ZXBsYWNlZFN0cmluZywgU3RyaW5nIHJlcGxhY2VtZW50U3RyaW5nKTsKIAogICAgIFNldEVkaXRh
YmxlRWxlbWVudElzRm9jdXNlZChib29sIGVkaXRhYmxlRWxlbWVudElzRm9jdXNlZCkKQEAgLTM5
MCwxMiArMzkwLDEyIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgVVNFKERJQ1RB
VElPTl9BTFRFUk5BVElWRVMpCiAgICAgU2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUkoV2ViQ29y
ZTo6RmxvYXRSZWN0IGJvdW5kaW5nQm94T2ZEaWN0YXRlZFRleHQsIHVpbnQ2NF90IGRpY3RhdGlv
bkNvbnRleHQpCiAgICAgUmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3Rh
dGlvbkNvbnRleHQpCi0gICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlv
bkNvbnRleHQpIC0+IChWZWN0b3I8U3RyaW5nPiBhbHRlcm5hdGl2ZXMpCisgICAgRGljdGF0aW9u
QWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIC0+IChWZWN0b3I8U3RyaW5n
PiBhbHRlcm5hdGl2ZXMpIExlZ2FjeVN5bmMKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oWDExKQog
ICAgICMgWDExIHdpbmRvd2VkIHBsdWdpbiBtZXNzYWdlcwotICAgIENyZWF0ZVBsdWdpbkNvbnRh
aW5lcigpIC0+ICh1aW50NjRfdCB3aW5kb3dJRCkKKyAgICBDcmVhdGVQbHVnaW5Db250YWluZXIo
KSAtPiAodWludDY0X3Qgd2luZG93SUQpIExlZ2FjeVN5bmMKICAgICBXaW5kb3dlZFBsdWdpbkdl
b21ldHJ5RGlkQ2hhbmdlKFdlYkNvcmU6OkludFJlY3QgZnJhbWVSZWN0LCBXZWJDb3JlOjpJbnRS
ZWN0IGNsaXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJRCkKICAgICBXaW5kb3dlZFBsdWdpblZpc2li
aWxpdHlEaWRDaGFuZ2UoYm9vbCBpc1Zpc2libGUsIHVpbnQ2NF90IHdpbmRvd0lEKQogI2VuZGlm
CkBAIC00MjUsNyArNDI1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMg
U2VhcmNoIHBvcHVwIG1lbnVzCiAgICAgU2F2ZVJlY2VudFNlYXJjaGVzKFN0cmluZyBuYW1lLCBW
ZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiBzZWFyY2hJdGVtcykKLSAgICBMb2FkUmVjZW50
U2VhcmNoZXMoU3RyaW5nIG5hbWUpIC0+IChWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiBy
ZXN1bHQpCisgICAgTG9hZFJlY2VudFNlYXJjaGVzKFN0cmluZyBuYW1lKSAtPiAoVmVjdG9yPFdl
YkNvcmU6OlJlY2VudFNlYXJjaD4gcmVzdWx0KSBMZWdhY3lTeW5jCiAKICAgICBTYXZlUERGVG9G
aWxlSW5Eb3dubG9hZHNGb2xkZXIoU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lLCBXZWJDb3JlOjpV
Ukwgb3JpZ2luYXRpbmdVUkwsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogCkBAIC00MzUsNyAr
NDM1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFBERktJVF9QTFVHSU4pCi0gICAgU2hvd1BERkNvbnRleHRNZW51KHN0cnVjdCBXZWJLaXQ6OlBE
RkNvbnRleHRNZW51IGNvbnRleHRNZW51KSAtPiAoc3RkOjpvcHRpb25hbDxpbnQzMl90PiBzZWxl
Y3RlZEl0ZW0pCisgICAgU2hvd1BERkNvbnRleHRNZW51KHN0cnVjdCBXZWJLaXQ6OlBERkNvbnRl
eHRNZW51IGNvbnRleHRNZW51KSAtPiAoc3RkOjpvcHRpb25hbDxpbnQzMl90PiBzZWxlY3RlZEl0
ZW0pIExlZ2FjeVN5bmMKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CkBAIC00NDcsOCArNDQ3LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRT
YXZlVG9QYWdlQ2FjaGUoKQogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0gICAgV3JhcENy
eXB0b0tleShWZWN0b3I8dWludDhfdD4ga2V5KSAtPiAoYm9vbCBzdWNjZWVkZWQsIFZlY3Rvcjx1
aW50OF90PiB3cmFwcGVkS2V5KQotICAgIFVud3JhcENyeXB0b0tleShWZWN0b3I8dWludDhfdD4g
d3JhcHBlZEtleSkgLT4gKGJvb2wgc3VjY2VlZGVkLCBWZWN0b3I8dWludDhfdD4ga2V5KQorICAg
IFdyYXBDcnlwdG9LZXkoVmVjdG9yPHVpbnQ4X3Q+IGtleSkgLT4gKGJvb2wgc3VjY2VlZGVkLCBW
ZWN0b3I8dWludDhfdD4gd3JhcHBlZEtleSkgTGVnYWN5U3luYworICAgIFVud3JhcENyeXB0b0tl
eShWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtleSkgLT4gKGJvb2wgc3VjY2VlZGVkLCBWZWN0b3I8
dWludDhfdD4ga2V5KSBMZWdhY3lTeW5jCiAjZW5kaWYKIAogCkBAIC00ODEsNyArNDgxLDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdChzdHJ1Y3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSByZXN1bHQsIGJvb2wg
Y29udGVudFByZXZlbnRzRGVmYXVsdCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICNlbmRp
ZgogICAgIEhhbmRsZU1lc3NhZ2UoU3RyaW5nIG1lc3NhZ2VOYW1lLCBXZWJLaXQ6OlVzZXJEYXRh
IG1lc3NhZ2VCb2R5KSBXYW50c0Nvbm5lY3Rpb24KLSAgICBIYW5kbGVTeW5jaHJvbm91c01lc3Nh
Z2UoU3RyaW5nIG1lc3NhZ2VOYW1lLCBXZWJLaXQ6OlVzZXJEYXRhIG1lc3NhZ2VCb2R5KSAtPiAo
V2ViS2l0OjpVc2VyRGF0YSByZXR1cm5EYXRhKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBIYW5kbGVT
eW5jaHJvbm91c01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2VOYW1lLCBXZWJLaXQ6OlVzZXJEYXRhIG1l
c3NhZ2VCb2R5KSAtPiAoV2ViS2l0OjpVc2VyRGF0YSByZXR1cm5EYXRhKSBMZWdhY3lTeW5jIFdh
bnRzQ29ubmVjdGlvbgogCiAgICAgSGFuZGxlQXV0b0ZpbGxCdXR0b25DbGljayhXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQogCkBAIC01NDYsNiArNTQ2LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBTdG9wRGlzcGxheUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCkKICNlbmRp
ZgogCi0gICAgU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNp
emVJbmRleCwgU3RyaW5nIGNoYWxsZW5nZVN0cmluZywgV2ViQ29yZTo6VVJMIHVybCkgLT4gKFN0
cmluZyByZXN1bHQpCisgICAgU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2ln
bmVkIGtleVNpemVJbmRleCwgU3RyaW5nIGNoYWxsZW5nZVN0cmluZywgV2ViQ29yZTo6VVJMIHVy
bCkgLT4gKFN0cmluZyByZXN1bHQpIExlZ2FjeVN5bmMKIAogfQpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgko
cmV2aXNpb24gMjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw0OSArMjYsNDkgQEAgbWVz
c2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5IHsKICAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3Rl
Ym9hcmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50IGNvbnRlbnQsIFN0cmlu
ZyBwYXN0ZWJvYXJkTmFtZSkKICAgICBXcml0ZUltYWdlVG9QYXN0ZWJvYXJkKHN0cnVjdCBXZWJD
b3JlOjpQYXN0ZWJvYXJkSW1hZ2UgcGFzdGVib2FyZEltYWdlLCBTdHJpbmcgcGFzdGVib2FyZE5h
bWUpCiAgICAgV3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBT
dHJpbmcgdGV4dCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKQotICAgIFJlYWRTdHJpbmdGcm9tUGFz
dGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFz
dGVib2FyZE5hbWUpIC0+IChTdHJpbmcgc3RyaW5nKQotICAgIFJlYWRVUkxGcm9tUGFzdGVib2Fy
ZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoU3RyaW5nIHVybCwg
U3RyaW5nIHRpdGxlKQotICAgIFJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRl
eCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChXZWJL
aXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkKLSAgICBHZXRQ
YXN0ZWJvYXJkSXRlbXNDb3VudChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBp
dGVtc0NvdW50KQotICAgIEFsbFBhc3RlYm9hcmRJdGVtSW5mbyhTdHJpbmcgcGFzdGVib2FyZE5h
bWUpIC0+IChWZWN0b3I8V2ViQ29yZTo6UGFzdGVib2FyZEl0ZW1JbmZvPiBhbGxJbmZvKQotICAg
IEluZm9ybWF0aW9uRm9ySXRlbUF0SW5kZXgodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJv
YXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSXRlbUluZm8gaW5mbykKKyAg
ICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJv
YXJkVHlwZSwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoU3RyaW5nIHN0cmluZykgTGVnYWN5
U3luYworICAgIFJlYWRVUkxGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBh
c3RlYm9hcmROYW1lKSAtPiAoU3RyaW5nIHVybCwgU3RyaW5nIHRpdGxlKSBMZWdhY3lTeW5jCisg
ICAgUmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJpbmcgcGFzdGVi
b2FyZFR5cGUsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFdlYktpdDo6U2hhcmVkTWVtb3J5
OjpIYW5kbGUgaGFuZGxlLCB1aW50NjRfdCBzaXplKSBMZWdhY3lTeW5jCisgICAgR2V0UGFzdGVi
b2FyZEl0ZW1zQ291bnQoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgaXRlbXND
b3VudCkgTGVnYWN5U3luYworICAgIEFsbFBhc3RlYm9hcmRJdGVtSW5mbyhTdHJpbmcgcGFzdGVi
b2FyZE5hbWUpIC0+IChWZWN0b3I8V2ViQ29yZTo6UGFzdGVib2FyZEl0ZW1JbmZvPiBhbGxJbmZv
KSBMZWdhY3lTeW5jCisgICAgSW5mb3JtYXRpb25Gb3JJdGVtQXRJbmRleCh1aW50NjRfdCBpbmRl
eCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJ
dGVtSW5mbyBpbmZvKSBMZWdhY3lTeW5jCiAgICAgVXBkYXRlU3VwcG9ydGVkVHlwZUlkZW50aWZp
ZXJzKFZlY3RvcjxTdHJpbmc+IGlkZW50aWZpZXJzLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpCi0g
ICAgR2V0UGFzdGVib2FyZFR5cGVzQnlGaWRlbGl0eUZvckl0ZW1BdEluZGV4KHVpbnQ2NF90IGlu
ZGV4LCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykKKyAg
ICBHZXRQYXN0ZWJvYXJkVHlwZXNCeUZpZGVsaXR5Rm9ySXRlbUF0SW5kZXgodWludDY0X3QgaW5k
ZXgsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBMZWdh
Y3lTeW5jCiAjZW5kaWYKIAotICAgIFdyaXRlQ3VzdG9tRGF0YShzdHJ1Y3QgV2ViQ29yZTo6UGFz
dGVib2FyZEN1c3RvbURhdGEgZGF0YSwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0
X3QgY2hhbmdlQ291bnQpCi0gICAgVHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoU3RyaW5n
IHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgb3JpZ2luKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMp
CisgICAgV3JpdGVDdXN0b21EYXRhKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0
YSBkYXRhLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkg
TGVnYWN5U3luYworICAgIFR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKFN0cmluZyBwYXN0
ZWJvYXJkTmFtZSwgU3RyaW5nIG9yaWdpbikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBMZWdh
Y3lTeW5jCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAjIFBhc3RlYm9hcmQgbWVzc2FnZXMu
Ci0gICAgR2V0TnVtYmVyT2ZGaWxlcyhTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRf
dCBudW1iZXJPZkZpbGVzKQotICAgIEdldFBhc3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2Fy
ZE5hbWUpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykKLSAgICBHZXRQYXN0ZWJvYXJkUGF0aG5h
bWVzRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkg
LT4gKFZlY3RvcjxTdHJpbmc+IHBhdGhuYW1lcywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGVBcnJheSBzYW5kYm94RXh0ZW5zaW9ucykgV2FudHNDb25uZWN0aW9uCi0gICAgR2V0UGFz
dGVib2FyZFN0cmluZ0ZvclR5cGUoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVi
b2FyZFR5cGUpIC0+IChTdHJpbmcgc3RyaW5nKQotICAgIEdldFBhc3RlYm9hcmRTdHJpbmdzRm9y
VHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFZl
Y3RvcjxTdHJpbmc+IHN0cmluZ3MpCi0gICAgR2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5cGUoU3Ry
aW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChXZWJLaXQ6OlNo
YXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkKLSAgICBQYXN0ZWJvYXJk
Q29weShTdHJpbmcgZnJvbVBhc3RlYm9hcmQsIFN0cmluZyB0b1Bhc3RlYm9hcmQpIC0+ICh1aW50
NjRfdCBjaGFuZ2VDb3VudCkKLSAgICBHZXRQYXN0ZWJvYXJkQ2hhbmdlQ291bnQoU3RyaW5nIHBh
c3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpCi0gICAgR2V0UGFzdGVib2Fy
ZFVuaXF1ZU5hbWUoKSAtPiAoU3RyaW5nIHBhc3RlYm9hcmROYW1lKQotICAgIEdldFBhc3RlYm9h
cmRDb2xvcihTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChXZWJDb3JlOjpDb2xvciBjb2xvcikK
LSAgICBHZXRQYXN0ZWJvYXJkVVJMKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0cmluZyB1
cmxTdHJpbmcpCi0gICAgQWRkUGFzdGVib2FyZFR5cGVzKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwg
VmVjdG9yPFN0cmluZz4gcGFzdGVib2FyZFR5cGVzKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQp
Ci0gICAgU2V0UGFzdGVib2FyZFR5cGVzKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgVmVjdG9yPFN0
cmluZz4gcGFzdGVib2FyZFR5cGVzKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpCi0gICAgU2V0
UGFzdGVib2FyZFVSTChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFVSTCBwYXN0ZWJvYXJkVVJM
LCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgV2FudHND
b25uZWN0aW9uCi0gICAgU2V0UGFzdGVib2FyZENvbG9yKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwg
V2ViQ29yZTo6Q29sb3IgY29sb3IpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkKLSAgICBTZXRQ
YXN0ZWJvYXJkU3RyaW5nRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0
ZWJvYXJkVHlwZSwgU3RyaW5nIHN0cmluZykgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KQotICAg
IFNldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5n
IHBhc3RlYm9hcmRUeXBlLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWlu
dDY0X3Qgc2l6ZSkgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KQorICAgIEdldE51bWJlck9mRmls
ZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgbnVtYmVyT2ZGaWxlcykgTGVn
YWN5U3luYworICAgIEdldFBhc3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+
IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgTGVnYWN5U3luYworICAgIEdldFBhc3RlYm9hcmRQYXRo
bmFtZXNGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBl
KSAtPiAoVmVjdG9yPFN0cmluZz4gcGF0aG5hbWVzLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5IHNhbmRib3hFeHRlbnNpb25zKSBMZWdhY3lTeW5jIFdhbnRzQ29ubmVjdGlv
bgorICAgIEdldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwg
U3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoU3RyaW5nIHN0cmluZykgTGVnYWN5U3luYworICAg
IEdldFBhc3RlYm9hcmRTdHJpbmdzRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmlu
ZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFZlY3RvcjxTdHJpbmc+IHN0cmluZ3MpIExlZ2FjeVN5bmMK
KyAgICBHZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0
cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFu
ZGxlLCB1aW50NjRfdCBzaXplKSBMZWdhY3lTeW5jCisgICAgUGFzdGVib2FyZENvcHkoU3RyaW5n
IGZyb21QYXN0ZWJvYXJkLCBTdHJpbmcgdG9QYXN0ZWJvYXJkKSAtPiAodWludDY0X3QgY2hhbmdl
Q291bnQpIExlZ2FjeVN5bmMKKyAgICBHZXRQYXN0ZWJvYXJkQ2hhbmdlQ291bnQoU3RyaW5nIHBh
c3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgY2hhbmdlQ291bnQpIExlZ2FjeVN5bmMKKyAgICBH
ZXRQYXN0ZWJvYXJkVW5pcXVlTmFtZSgpIC0+IChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIExlZ2Fj
eVN5bmMKKyAgICBHZXRQYXN0ZWJvYXJkQ29sb3IoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAo
V2ViQ29yZTo6Q29sb3IgY29sb3IpIExlZ2FjeVN5bmMKKyAgICBHZXRQYXN0ZWJvYXJkVVJMKFN0
cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0cmluZyB1cmxTdHJpbmcpIExlZ2FjeVN5bmMKKyAg
ICBBZGRQYXN0ZWJvYXJkVHlwZXMoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBWZWN0b3I8U3RyaW5n
PiBwYXN0ZWJvYXJkVHlwZXMpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgTGVnYWN5U3luYwor
ICAgIFNldFBhc3RlYm9hcmRUeXBlcyhTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFZlY3RvcjxTdHJp
bmc+IHBhc3RlYm9hcmRUeXBlcykgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KSBMZWdhY3lTeW5j
CisgICAgU2V0UGFzdGVib2FyZFVSTChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFVSTCBwYXN0
ZWJvYXJkVVJMLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBjaGFuZ2VDb3Vu
dCkgTGVnYWN5U3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBTZXRQYXN0ZWJvYXJkQ29sb3IoU3Ry
aW5nIHBhc3RlYm9hcmROYW1lLCBXZWJDb3JlOjpDb2xvciBjb2xvcikgLT4gKHVpbnQ2NF90IGNo
YW5nZUNvdW50KSBMZWdhY3lTeW5jCisgICAgU2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoU3Ry
aW5nIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBzdHJpbmcp
IC0+ICh1aW50NjRfdCBjaGFuZ2VDb3VudCkgTGVnYWN5U3luYworICAgIFNldFBhc3RlYm9hcmRC
dWZmZXJGb3JUeXBlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBl
LCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkgLT4g
KHVpbnQ2NF90IGNoYW5nZUNvdW50KSBMZWdhY3lTeW5jCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KEdUSykKLSAgICBXcml0ZVRvQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgc3RydWN0
IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKLSAgICBSZWFkRnJv
bUNsaXBib2FyZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJT
ZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQorICAgIFdyaXRlVG9DbGlwYm9hcmQoU3Ry
aW5nIHBhc3RlYm9hcmROYW1lLCBzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3Rl
Ym9hcmRDb250ZW50KSBMZWdhY3lTeW5jCisgICAgUmVhZEZyb21DbGlwYm9hcmQoU3RyaW5nIHBh
c3RlYm9hcmROYW1lKSAtPiAoc3RydWN0IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJv
YXJkQ29udGVudCkgTGVnYWN5U3luYwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXUEUpCi0gICAg
R2V0UGFzdGVib2FyZFR5cGVzKCkgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKQotICAgIFJlYWRT
dHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBl
KSAtPiAoU3RyaW5nIHN0cmluZykKLSAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoc3Ry
dWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50IGNvbnRlbnQpCi0gICAgV3JpdGVTdHJp
bmdUb1Bhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgdGV4dCkKKyAgICBH
ZXRQYXN0ZWJvYXJkVHlwZXMoKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIExlZ2FjeVN5bmMK
KyAgICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0
ZWJvYXJkVHlwZSkgLT4gKFN0cmluZyBzdHJpbmcpIExlZ2FjeVN5bmMKKyAgICBXcml0ZVdlYkNv
bnRlbnRUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50IGNv
bnRlbnQpIExlZ2FjeVN5bmMKKyAgICBXcml0ZVN0cmluZ1RvUGFzdGVib2FyZChTdHJpbmcgcGFz
dGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0KSBMZWdhY3lTeW5jCiAjZW5kaWYKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNz
YWdlcyAtPiBXZWJQcm9jZXNzUG9vbCB7CiAgICAgSGFuZGxlTWVzc2FnZShTdHJpbmcgbWVzc2Fn
ZU5hbWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIFdhbnRzQ29ubmVjdGlvbgotICAg
IEhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShTdHJpbmcgbWVzc2FnZU5hbWUsIFdlYktpdDo6VXNl
ckRhdGEgbWVzc2FnZUJvZHkpIC0+IChXZWJLaXQ6OlVzZXJEYXRhIHJldHVybkRhdGEpIFdhbnRz
Q29ubmVjdGlvbgorICAgIEhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShTdHJpbmcgbWVzc2FnZU5h
bWUsIFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpIC0+IChXZWJLaXQ6OlVzZXJEYXRhIHJl
dHVybkRhdGEpIExlZ2FjeVN5bmMgV2FudHNDb25uZWN0aW9uCiAKICAgICBEaWRHZXRTdGF0aXN0
aWNzKHN0cnVjdCBXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhIHN0YXRpc3RpY3NEYXRhLCB1aW50NjRf
dCBjYWxsYmFja0lEKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDE0ICsyNiwxNCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2CiAKICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1c2VyR2Vz
dHVyZVRva2VuSUQpIAogCi0gICAgU2hvdWxkVGVybWluYXRlKCkgLT4gKGJvb2wgc2hvdWxkVGVy
bWluYXRlKQorICAgIFNob3VsZFRlcm1pbmF0ZSgpIC0+IChib29sIHNob3VsZFRlcm1pbmF0ZSkg
TGVnYWN5U3luYwogCiAgICAgRW5hYmxlU3VkZGVuVGVybWluYXRpb24oKQogICAgIERpc2FibGVT
dWRkZW5UZXJtaW5hdGlvbigpCiAKICAgICAjIFBsdWdpbiBtZXNzYWdlcy4KICNpZiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBHZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCkgLT4gKFZl
Y3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2lu
SW5mbz4gYXBwbGljYXRpb25QbHVnaW5zLCBzdHJ1Y3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2Vi
Q29yZTo6U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcj4+IHN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXJzKQorICAgIEdldFBsdWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBs
dWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBhcHBsaWNhdGlv
blBsdWdpbnMsIHN0cnVjdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQ
bHVnaW5JZGVudGlmaWVyPj4gc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpIExlZ2FjeVN5bmMK
ICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0Fz
eW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBEZWxheWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUp
IERlbGF5ZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRp
bmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkocmV2
aXNpb24gMjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjEsNSArMjEs
NSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBDb21wb3NpdGluZ01hbmFnZXJQcm94
eSB7Ci0gICAgRXN0YWJsaXNoQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVj
dGlvbkhhbmRsZSkKKyAgICBFc3RhYmxpc2hDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uSGFuZGxlKSBMZWdhY3lTeW5jCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjM3Mjk0KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVz
c2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI2LDEyICsyNiwxMiBAQAogCiBtZXNzYWdlcyAt
PiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSB7CiAKLSAgICBBdmFpbGFibGVQYXltZW50TmV0
d29ya3MoKSAtPiAoVmVjdG9yPFN0cmluZz4gYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKQotICAg
IENhbk1ha2VQYXltZW50cygpIC0+IChib29sIHJlc3VsdCkKKyAgICBBdmFpbGFibGVQYXltZW50
TmV0d29ya3MoKSAtPiAoVmVjdG9yPFN0cmluZz4gYXZhaWxhYmxlUGF5bWVudE5ldHdvcmtzKSBM
ZWdhY3lTeW5jCisgICAgQ2FuTWFrZVBheW1lbnRzKCkgLT4gKGJvb2wgcmVzdWx0KSBMZWdhY3lT
eW5jCiAgICAgQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoU3RyaW5nIG1lcmNoYW50SWRl
bnRpZmllciwgU3RyaW5nIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICBPcGVu
UGF5bWVudFNldHVwKFN0cmluZyBtZXJjaGFudElkZW50aWZpZXIsIFN0cmluZyBkb21haW5OYW1l
LCB1aW50NjRfdCByZXF1ZXN0SUQpCiAKLSAgICBTaG93UGF5bWVudFVJKFN0cmluZyBvcmlnaW5h
dGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlua0ljb25VUkxTdHJpbmdzLCBXZWJDb3Jl
OjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBwYXltZW50UmVxdWVzdCkgLT4gKGJvb2wg
cmVzdWx0KQorICAgIFNob3dQYXltZW50VUkoU3RyaW5nIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBW
ZWN0b3I8U3RyaW5nPiBsaW5rSWNvblVSTFN0cmluZ3MsIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0IHBheW1lbnRSZXF1ZXN0KSAtPiAoYm9vbCByZXN1bHQpIExlZ2FjeVN5
bmMKICAgICBDb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihXZWJDb3JlOjpQYXltZW50TWVyY2hh
bnRTZXNzaW9uIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCiAgICAgQ29tcGxldGVTaGlwcGluZ01l
dGhvZFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRl
PiB1cGRhdGUpCiAgICAgQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IHVwZGF0ZSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjM3Mjk0KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjQsMTAgKzI0LDEwIEBACiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSB7Ci1DcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBTdHJpbmcgaGFz
aFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAo
Ym9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCitDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpIExlZ2Fj
eVN5bmMKICAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgU3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QgaWQpCi0gICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpCisg
ICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIExlZ2FjeVN5bmMKICAgICBTZXRNdXRlZCh1
aW50NjRfdCBpZCwgYm9vbCBtdXRlZCkKICAgICBBcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlk
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykKIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMzQsMTYgKzM0LDE2IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb2Nl
c3NQcm94eSB7CiAgICAgU2V0RnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZyhib29sIGZ1bGxzY3Jl
ZW5XaW5kb3dJc1Nob3dpbmcpCiAgICAgCiAgICAgIyBSZXR1cm5zIHRydWUgaWYgdGhlIFVJIHBy
b2Nlc3MgbGF1bmNoZWQgdGhlIHByb2Nlc3MuCi0gICAgTGF1bmNoUHJvY2VzcyhTdHJpbmcgbGF1
bmNoUGF0aCwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzKSAtPiAoYm9vbCByZXN1bHQpCisgICAg
TGF1bmNoUHJvY2VzcyhTdHJpbmcgbGF1bmNoUGF0aCwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRz
KSAtPiAoYm9vbCByZXN1bHQpIExlZ2FjeVN5bmMKIAogICAgICMgUmV0dXJucyB0cnVlIGlmIHRo
ZSBVSSBwcm9jZXNzIGxhdW5jaGVkIHRoZSBhcHBsaWNhdGlvbi4KLSAgICBMYXVuY2hBcHBsaWNh
dGlvbkF0VVJMKFN0cmluZyB1cmwsIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cykgLT4gKGJvb2wg
cmVzdWx0KQorICAgIExhdW5jaEFwcGxpY2F0aW9uQXRVUkwoU3RyaW5nIHVybCwgVmVjdG9yPFN0
cmluZz4gYXJndW1lbnRzKSAtPiAoYm9vbCByZXN1bHQpIExlZ2FjeVN5bmMKIAogICAgICMgUmV0
dXJucyB0cnVlIGlmIHRoZSBVSSBwcm9jZXNzIGRpZCBvcGVuIHRoZSBVUkwuCi0gICAgT3BlblVS
TChTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9vbCByZXN1bHQsIGludDMyX3Qgc3RhdHVzLCBTdHJp
bmcgbGF1bmNoZWRVUkxTdHJpbmcpCisgICAgT3BlblVSTChTdHJpbmcgdXJsU3RyaW5nKSAtPiAo
Ym9vbCByZXN1bHQsIGludDMyX3Qgc3RhdHVzLCBTdHJpbmcgbGF1bmNoZWRVUkxTdHJpbmcpIExl
Z2FjeVN5bmMKICAgICAKICAgICAjIFJldHVybnMgdHJ1ZSBpZiB0aGUgVUkgcHJvY2VzcyBkaWQg
b3BlbiB0aGUgZmlsZS4KLSAgICBPcGVuRmlsZShTdHJpbmcgZnVsbFBhdGgpIC0+IChib29sIHJl
c3VsdCkKKyAgICBPcGVuRmlsZShTdHJpbmcgZnVsbFBhdGgpIC0+IChib29sIHJlc3VsdCkgTGVn
YWN5U3luYwogI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2
aXNpb24gMjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBt
ZXNzYWdlcyAtPiBTdG9yYWdlTWFuYWdlciB7CiAgICAgQ3JlYXRlU2Vzc2lvblN0b3JhZ2VNYXAo
dWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSBXYW50c0Nv
bm5lY3Rpb24KICAgICBEZXN0cm95U3RvcmFnZU1hcCh1aW50NjRfdCBzdG9yYWdlTWFwSUQpIFdh
bnRzQ29ubmVjdGlvbgogCi0gICAgR2V0VmFsdWVzKHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWlu
dDY0X3Qgc3RvcmFnZU1hcFNlZWQpIC0+IChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YWx1ZXMp
IFdhbnRzQ29ubmVjdGlvbgorICAgIEdldFZhbHVlcyh1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVp
bnQ2NF90IHN0b3JhZ2VNYXBTZWVkKSAtPiAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdmFsdWVz
KSBMZWdhY3lTeW5jIFdhbnRzQ29ubmVjdGlvbgogCiAgICAgU2V0SXRlbSh1aW50NjRfdCBzdG9y
YWdlTWFwSUQsIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIHVpbnQ2NF90IHN0b3JhZ2VN
YXBTZWVkLCBTdHJpbmcga2V5LCBTdHJpbmcgdmFsdWUsIFN0cmluZyB1cmxTdHJpbmcpIFdhbnRz
Q29ubmVjdGlvbgogICAgIFJlbW92ZUl0ZW0odWludDY0X3Qgc3RvcmFnZU1hcElELCB1aW50NjRf
dCBzb3VyY2VTdG9yYWdlQXJlYUlELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtl
eSwgU3RyaW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5p
bgkocmV2aXNpb24gMjM3Mjk0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0
ZW1TaGltUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAK
IG1lc3NhZ2VzIC0+IFNlY0l0ZW1TaGltUHJveHkgewogCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NI
SU0pCi0gICAgU2VjSXRlbVJlcXVlc3QoV2ViS2l0OjpTZWNJdGVtUmVxdWVzdERhdGEgcmVxdWVz
dCkgLT4gKFdlYktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YSByZXNwb25zZSkKKyAgICBTZWNJdGVt
UmVxdWVzdChXZWJLaXQ6OlNlY0l0ZW1SZXF1ZXN0RGF0YSByZXF1ZXN0KSAtPiAoV2ViS2l0OjpT
ZWNJdGVtUmVzcG9uc2VEYXRhIHJlc3BvbnNlKSBMZWdhY3lTeW5jCiAjZW5kaWYKIAogfQpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4J
KHJldmlzaW9uIDIzNzI5NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC04Miw5ICs4Miw5IEBAIG1lc3NhZ2VzIC0+
IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgUmVsZWFzZVBhZ2VDYWNoZSgpCiAK
LSAgICBGZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKSAtPiAoc3RydWN0IFdl
YktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpCi0gICAgRGVsZXRlV2Vic2l0ZURhdGEoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpIC0+ICgpCi0gICAgRGVs
ZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSAtPiAoKQorICAgIEZldGNoV2Vic2l0
ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0
YSB3ZWJzaXRlRGF0YSkgTGVnYWN5U3luYworICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKSBMZWdhY3lTeW5jCisg
ICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0
b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSAtPiAoKSBMZWdhY3lTeW5j
CiAKICAgICBTZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nSW5jcmVhc2VMaW1pdChpbnQg
bWlsbGlzZWNvbmRzKQogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMTAwLDcgKzEwMCw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEVuc3VyZUF1dG9tYXRp
b25TZXNzaW9uUHJveHkoU3RyaW5nIHNlc3Npb25JZGVudGlmaWVyKQogICAgIERlc3Ryb3lBdXRv
bWF0aW9uU2Vzc2lvblByb3h5KCkKIAotICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHko
KSAtPiAoYm9vbCBoYW5kbGVkKQorICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKSAt
PiAoYm9vbCBoYW5kbGVkKSBMZWdhY3lTeW5jCiAgICAgUHJlcGFyZVRvU3VzcGVuZCgpCiAgICAg
Q2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgpCkBAIC0xMjks
NyArMTI5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAg
TWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50
aWZpZXIgcG9ydCkKIAogICAgIFVwZGF0ZUFjdGl2ZVBhZ2VzKCkKLSAgICBHZXRBY3RpdmVQYWdl
c09yaWdpbnNGb3JUZXN0aW5nKCkgLT4gKFZlY3RvcjxTdHJpbmc+IGFjdGl2ZU9yaWdpbnMpCisg
ICAgR2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZygpIC0+IChWZWN0b3I8U3RyaW5nPiBh
Y3RpdmVPcmlnaW5zKSBMZWdhY3lTeW5jCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgU2V0U2Ny
ZWVuUHJvcGVydGllcyhzdHJ1Y3QgV2ViQ29yZTo6U2NyZWVuUHJvcGVydGllcyBzY3JlZW5Qcm9w
ZXJ0aWVzKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDIzNzI5NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsy
NCw3IEBACiAKIG1lc3NhZ2VzIC0+IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICAjIFNldCBhIGdsb2JhbCBKYXZhU2NyaXB0IGV4Y2VwdGlvbi4KLSAgICBTZXRF
eGNlcHRpb24oU3RyaW5nIGV4Y2VwdGlvblN0cmluZykgLT4gKCkKKyAgICBTZXRFeGNlcHRpb24o
U3RyaW5nIGV4Y2VwdGlvblN0cmluZykgLT4gKCkgTGVnYWN5U3luYwogfQogCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtMzAsMjIgKzMwLDIyIEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb3h5IExlZ2FjeVJlY2VpdmVy
IHsKICAgICBVcGRhdGUoV2ViQ29yZTo6SW50UmVjdCBwYWludGVkUmVjdCkKIAogICAgICMgUmV0
dXJucyBhIFBBQyBzdHlsZSBzdHJpbmcgd2l0aCBwcm94aWVzIGZvciB0aGUgZ2l2ZW4gVVJMLgot
ICAgIFByb3hpZXNGb3JVUkwoU3RyaW5nIHVybFN0cmluZykgLT4gKFN0cmluZyBwcm94aWVzU3Ry
aW5nKQorICAgIFByb3hpZXNGb3JVUkwoU3RyaW5nIHVybFN0cmluZykgLT4gKFN0cmluZyBwcm94
aWVzU3RyaW5nKSBMZWdhY3lTeW5jCiAKICAgICAjIFJldHVybnMgdGhlIGNvb2tpZXMgZm9yIHRo
ZSBnaXZlbiBVUkwuCi0gICAgQ29va2llc0ZvclVSTChTdHJpbmcgdXJsU3RyaW5nKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZykKKyAgICBDb29raWVzRm9yVVJMKFN0cmluZyB1cmxTdHJpbmcpIC0+
IChTdHJpbmcgY29va2llU3RyaW5nKSBMZWdhY3lTeW5jCiAKICAgICAjIFNldHMgdGhlIGNvb2tp
ZXMgZm9yIHRoZSBnaXZlbiBVUkwuCiAgICAgU2V0Q29va2llc0ZvclVSTChTdHJpbmcgdXJsU3Ry
aW5nLCBTdHJpbmcgY29va2llU3RyaW5nKQogCiAgICAgIyBHZXRzIHRoZSBhdXRoZW50aWNhdGlv
biBpbmZvIGZvciB0aGUgZ2l2ZW4gcHJvdGVjdGlvbiBzcGFjZS4KLSAgICBHZXRBdXRoZW50aWNh
dGlvbkluZm8oV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFjZSkgLT4gKGJv
b2wgcmV0dXJuVmFsdWUsIFN0cmluZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKQorICAgIEdl
dEF1dGhlbnRpY2F0aW9uSW5mbyhXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNw
YWNlKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dv
cmQpIExlZ2FjeVN5bmMKIAogICAgICMgR2V0cyBhIHJlZmVyZW5jZSB0byB0aGUgcGx1Zy1pbiBl
bGVtZW50IE5QT2JqZWN0LgotICAgIEdldFBsdWdpbkVsZW1lbnROUE9iamVjdCgpIC0+ICh1aW50
NjRfdCBwbHVnaW5FbGVtZW50TlBPYmplY3RJRCkKKyAgICBHZXRQbHVnaW5FbGVtZW50TlBPYmpl
Y3QoKSAtPiAodWludDY0X3QgcGx1Z2luRWxlbWVudE5QT2JqZWN0SUQpIExlZ2FjeVN5bmMKIAog
ICAgICMgRXZhbHVhdGVzIHRoZSBnaXZlbiBKYXZhU2NyaXB0IHN0cmluZy4KLSAgICBFdmFsdWF0
ZShXZWJLaXQ6Ok5QVmFyaWFudERhdGEgbnBPYmplY3RBc1ZhcmlhbnREYXRhLCBTdHJpbmcgc2Ny
aXB0U3RyaW5nLCBib29sIGFsbG93UG9wdXBzKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgV2ViS2l0
OjpOUFZhcmlhbnREYXRhIHJlc3VsdERhdGEpCisgICAgRXZhbHVhdGUoV2ViS2l0OjpOUFZhcmlh
bnREYXRhIG5wT2JqZWN0QXNWYXJpYW50RGF0YSwgU3RyaW5nIHNjcmlwdFN0cmluZywgYm9vbCBh
bGxvd1BvcHVwcykgLT4gKGJvb2wgcmV0dXJuVmFsdWUsIFdlYktpdDo6TlBWYXJpYW50RGF0YSBy
ZXN1bHREYXRhKSBMZWdhY3lTeW5jCiAKICAgICAjIENhbmNlbHMgdGhlIGdpdmVuIHN0cmVhbSBs
b2FkLgogICAgIENhbmNlbFN0cmVhbUxvYWQodWludDY0X3Qgc3RyZWFtSUQpCkBAIC03Miw3ICs3
Miw3IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb3h5IExlZ2FjeVJlY2VpdmVyIHsKIAogI2lmIFBM
QVRGT1JNKFgxMSkKICAgICAjIENyZWF0ZSB0aGUgcGx1Z2luIGNvbnRhaW5lciBmb3Igd2luZG93
ZWQgcGx1Z2lucwotICAgIENyZWF0ZVBsdWdpbkNvbnRhaW5lcigpIC0+ICh1aW50NjRfdCB3aW5k
b3dJRCkKKyAgICBDcmVhdGVQbHVnaW5Db250YWluZXIoKSAtPiAodWludDY0X3Qgd2luZG93SUQp
IExlZ2FjeVN5bmMKIAogICAgICMgVXBkYXRlIGdlb21ldHJ5IG9mIHdpbmRvd2VkIHBsdWdpbiB3
aWRnZXQKICAgICBXaW5kb3dlZFBsdWdpbkdlb21ldHJ5RGlkQ2hhbmdlKFdlYkNvcmU6OkludFJl
Y3QgZnJhbWVSZWN0LCBXZWJDb3JlOjpJbnRSZWN0IGNsaXBSZWN0LCB1aW50NjRfdCB3aW5kb3dJ
RCkKQEAgLTgyLDEwICs4MiwxMCBAQCBtZXNzYWdlcyAtPiBQbHVnaW5Qcm94eSBMZWdhY3lSZWNl
aXZlciB7CiAjZW5kaWYKIAogICAgICMgVGVsbHMgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgcGx1
Zy1pbiB3YXMgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIGFzeW5jaHJvbm91c2x5Ci0gICAgRGlk
Q3JlYXRlUGx1Z2luKGJvb2wgd2FudHNXaGVlbEV2ZW50cywgdWludDMyX3QgcmVtb3RlTGF5ZXJD
bGllbnRJRCkgLT4gKCkKKyAgICBEaWRDcmVhdGVQbHVnaW4oYm9vbCB3YW50c1doZWVsRXZlbnRz
LCB1aW50MzJfdCByZW1vdGVMYXllckNsaWVudElEKSAtPiAoKSBMZWdhY3lTeW5jCiAgICAgCiAg
ICAgIyBUZWxscyB0aGUgV2ViUHJvY2VzcyB0aGF0IHRoZSBwbHVnLWluIGZhaWxlZCB0byBpbml0
aWFsaXplLgotICAgIERpZEZhaWxUb0NyZWF0ZVBsdWdpbigpIC0+ICgpCisgICAgRGlkRmFpbFRv
Q3JlYXRlUGx1Z2luKCkgLT4gKCkgTGVnYWN5U3luYwogCiAgICAgIyBUZWxscyB0aGUgV2ViUHJv
Y2VzcyB0aGF0IHRoZSBwbHVnLWluIGhhcyBzdGFydGVkIG9yIHN0b3BwZWQgcGxheWluZyBhdWRp
by4KICAgICBTZXRQbHVnaW5Jc1BsYXlpbmdBdWRpbyhib29sIHBsdWdpbklzUGxheWluZ0F1ZGlv
KQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzcyOTQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC03Nywx
MCArNzcsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVw
bGFjZVNlbGVjdGVkVGV4dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCiAgICAgUmVx
dWVzdEF1dG9jb3JyZWN0aW9uRGF0YShTdHJpbmcgdGV4dEZvckF1dG9jb3JyZWN0aW9uLCBXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBBcHBseUF1dG9jb3JyZWN0aW9uKFN0cmlu
ZyBjb3JyZWN0aW9uLCBTdHJpbmcgb3JpZ2luYWxUZXh0LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKLSAgICBTeW5jQXBwbHlBdXRvY29ycmVjdGlvbihTdHJpbmcgY29ycmVjdGlvbiwg
U3RyaW5nIG9yaWdpbmFsVGV4dCkgLT4gKGJvb2wgYXV0b2NvcnJlY3Rpb25BcHBsaWVkKQorICAg
IFN5bmNBcHBseUF1dG9jb3JyZWN0aW9uKFN0cmluZyBjb3JyZWN0aW9uLCBTdHJpbmcgb3JpZ2lu
YWxUZXh0KSAtPiAoYm9vbCBhdXRvY29ycmVjdGlvbkFwcGxpZWQpIExlZ2FjeVN5bmMKICAgICBS
ZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQotICAgIEdldEF1dG9jb3JyZWN0aW9uQ29udGV4dCgpIC0+IChTdHJpbmcgYmVmb3JlQ29udGV4
dCwgU3RyaW5nIG1hcmtlZFRleHQsIFN0cmluZyBzZWxlY3RlZFRleHQsIFN0cmluZyBhZnRlckNv
bnRleHQsIHVpbnQ2NF90IGxvY2F0aW9uLCB1aW50NjRfdCBsZW5ndGgpIAotICAgIEdldFBvc2l0
aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVl
c3QgcmVxdWVzdCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uIGluZm9ybWF0aW9uKQorICAgIEdldEF1dG9jb3JyZWN0aW9uQ29udGV4dCgpIC0+IChT
dHJpbmcgYmVmb3JlQ29udGV4dCwgU3RyaW5nIG1hcmtlZFRleHQsIFN0cmluZyBzZWxlY3RlZFRl
eHQsIFN0cmluZyBhZnRlckNvbnRleHQsIHVpbnQ2NF90IGxvY2F0aW9uLCB1aW50NjRfdCBsZW5n
dGgpIExlZ2FjeVN5bmMKKyAgICBHZXRQb3NpdGlvbkluZm9ybWF0aW9uKHN0cnVjdCBXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QpIC0+IChzdHJ1Y3QgV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgTGVnYWN5U3lu
YwogICAgIFJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QpCiAgICAgU3RhcnRJbnRlcmFjdGlvbldpdGhF
bGVtZW50QXRQb3NpdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkKICAgICBTdG9wSW50ZXJh
Y3Rpb24oKQpAQCAtMTE2LDcgKzExNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVj
ZWl2ZXIgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBUb3Vj
aEV2ZW50U3luYyhXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQpIC0+IChib29sIGhhbmRsZWQp
CisgICAgVG91Y2hFdmVudFN5bmMoV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KSAtPiAoYm9v
bCBoYW5kbGVkKSBMZWdhY3lTeW5jCiAjZW5kaWYKICNpZiAhRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpICYmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgVG91Y2hFdmVudChXZWJLaXQ6OldlYlRv
dWNoRXZlbnQgZXZlbnQpCkBAIC0zODIsNyArMzgyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBM
ZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNIChHVEspICYmIEhBVkUoR1RL
X0dFU1RVUkVTKQotICAgIEdldENlbnRlckZvclpvb21HZXN0dXJlKFdlYkNvcmU6OkludFBvaW50
IGNlbnRlckluVmlld0Nvb3JkaW5hdGVzKSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgY2VudGVyKQor
ICAgIEdldENlbnRlckZvclpvb21HZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IGNlbnRlckluVmll
d0Nvb3JkaW5hdGVzKSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgY2VudGVyKSBMZWdhY3lTeW5jCiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMzkyLDE2ICszOTIsMTYgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgV2luZG93QW5kVmlld0ZyYW1lc0No
YW5nZWQoV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywg
V2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5VbmZsaXBwZWRTY3JlZW5Db29yZGluYXRl
cywgV2ViQ29yZTo6RmxvYXRSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIFdlYkNv
cmU6OkZsb2F0UG9pbnQgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcykKICAgICBTZXRNYWlu
RnJhbWVJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9sbGFibGUpCiAgICAgUmVnaXN0ZXJVSVByb2Nl
c3NBY2Nlc3NpYmlsaXR5VG9rZW5zKElQQzo6RGF0YVJlZmVyZW5jZSBlbGVtZW5Ub2tlbiwgSVBD
OjpEYXRhUmVmZXJlbmNlIHdpbmRvd1Rva2VuKQotICAgIEdldFN0cmluZ1NlbGVjdGlvbkZvclBh
c3RlYm9hcmQoKSAtPiAoU3RyaW5nIHN0cmluZ1ZhbHVlKQotICAgIEdldERhdGFTZWxlY3Rpb25G
b3JQYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGUgaGFuZGxlLCB1aW50NjRfdCBzaXplKQotICAgIFJlYWRTZWxlY3Rpb25Gcm9t
UGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChib29sIHJlc3VsdCkKKyAgICBH
ZXRTdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkgLT4gKFN0cmluZyBzdHJpbmdWYWx1ZSkg
TGVnYWN5U3luYworICAgIEdldERhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKFN0cmluZyBwYXN0
ZWJvYXJkVHlwZSkgLT4gKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlLCB1aW50
NjRfdCBzaXplKSBMZWdhY3lTeW5jCisgICAgUmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKFN0
cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKGJvb2wgcmVzdWx0KSBMZWdhY3lTeW5jCiAKICNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBSZXBsYWNlU2VsZWN0aW9uV2l0aFBhc3RlYm9h
cmREYXRhKFZlY3RvcjxTdHJpbmc+IHR5cGVzLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKICNl
bmRpZgogCi0gICAgU2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0V2ZW50KFdlYktpdDo6V2ViTW91
c2VFdmVudCBldmVudCkgLT4gKGJvb2wgcmVzdWx0KQotICAgIEFjY2VwdHNGaXJzdE1vdXNlKGlu
dCBldmVudE51bWJlciwgV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KSAtPiAoYm9vbCByZXN1
bHQpCisgICAgU2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0V2ZW50KFdlYktpdDo6V2ViTW91c2VF
dmVudCBldmVudCkgLT4gKGJvb2wgcmVzdWx0KSBMZWdhY3lTeW5jCisgICAgQWNjZXB0c0ZpcnN0
TW91c2UoaW50IGV2ZW50TnVtYmVyLCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpIC0+IChi
b29sIHJlc3VsdCkgTGVnYWN5U3luYwogCiAgICAgU2V0VGV4dEFzeW5jKFN0cmluZyB0ZXh0KQog
ICAgIEluc2VydFRleHRBc3luYyhTdHJpbmcgdGV4dCwgc3RydWN0IFdlYktpdDo6RWRpdGluZ1Jh
bmdlIHJlcGxhY2VtZW50UmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXAsIHVpbnQzMl90IGVk
aXRpbmdSYW5nZUlzUmVsYXRpdmVUbywgYm9vbCBzdXBwcmVzc1NlbGVjdGlvblVwZGF0ZSkK
</data>
<flag name="review"
          id="370059"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>