<?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>230821</bug_id>
          
          <creation_ts>2021-09-27 01:13:49 -0700</creation_ts>
          <short_desc>[LFC] Use CheckedRef/Ptr instead of WeakPtr</short_desc>
          <delta_ts>2021-09-28 04:20:11 -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>Layout and Rendering</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797390</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-27 01:13:49 -0700</bug_when>
    <thetext>WeakPtr use here is for safety only. Replace with CheckedPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797391</commentid>
    <comment_count>1</comment_count>
      <attachid>439327</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-27 01:16:33 -0700</bug_when>
    <thetext>Created attachment 439327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797395</commentid>
    <comment_count>2</comment_count>
      <attachid>439329</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-27 01:19:36 -0700</bug_when>
    <thetext>Created attachment 439329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797419</commentid>
    <comment_count>3</comment_count>
      <attachid>439339</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-27 03:55:20 -0700</bug_when>
    <thetext>Created attachment 439339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797428</commentid>
    <comment_count>4</comment_count>
      <attachid>439344</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-27 04:45:29 -0700</bug_when>
    <thetext>Created attachment 439344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797429</commentid>
    <comment_count>5</comment_count>
      <attachid>439345</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-27 04:46:04 -0700</bug_when>
    <thetext>Created attachment 439345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797500</commentid>
    <comment_count>6</comment_count>
      <attachid>439358</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-27 09:08:05 -0700</bug_when>
    <thetext>Created attachment 439358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797759</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-27 22:24:51 -0700</bug_when>
    <thetext>Committed r283158 (242206@main): &lt;https://commits.webkit.org/242206@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439358.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797760</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-27 22:25:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/83607269&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439327</attachid>
            <date>2021-09-27 01:16:33 -0700</date>
            <delta_ts>2021-09-27 01:19:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230821-20210927111631.patch</filename>
            <type>text/plain</type>
            <size>38214</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyNTJiYjM1ZmNiMTExZDFkZjc3NTRj
NjVjYjRkZjBjZmJjNTEyMWEuLmJkOTQ2OWM0NzJlMTQ1NDU4NjUyZDRmNjQ5MTQwYzAyZTU0MWFk
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMjcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdIFVzZSBDaGVja2VkUmVmL1B0ciBpbnN0ZWFk
IG9mIFdlYWtQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDgyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL0NoZWNrZWRSZWYuaDoKKyAgICAgICAgKFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJC
YXNlOjppbmNyZW1lbnRQdHJDb3VudCBjb25zdCk6CisgICAgICAgIChXVEY6OkNhbk1ha2VDaGVj
a2VkUHRyQmFzZTo6ZGVjcmVtZW50UHRyQ291bnQgY29uc3QpOgorICAgICAgICAoV1RGOjpDYW5N
YWtlQ2hlY2tlZFB0ckJhc2U6OmluY3JlbWVudFB0ckNvdW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJCYXNlOjpkZWNyZW1lbnRQdHJDb3VudCk6IERlbGV0ZWQu
CisKKyAgICAgICAgTWFrZSBjb25zdCBzbyBDaGVja2VkUHRyPGNvbnN0IEZvbz4gd29ya3MuCisK
IDIwMjEtMDktMjYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgzMDgzIGFuZCByMjgzMDg4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDEzNjg2MjlhNDFjNGVmOGU4OTViMTliNWI1ZmU5YzdiYzA4MWQ4YjAuLjk1NWI5NTVh
OGRiYmUwZjU2MDA3Mjk2OWJmNWM1YjNlOWNlOTM2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAyMS0wOS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0xGQ10gVXNlIENoZWNrZWRSZWYvUHRyIGluc3RlYWQgb2YgV2Vha1B0cgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vha1B0ciBhcmUgdXNl
ZCBoZXJlIGZvciBzYWZldHkgb25seS4gUmVwbGFjZSB3aXRoIHNpbXBsZXIsIGZhc3RlciBDaGVj
a2VkUHRyLgorCisgICAgICAgICogZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheTo6VHJlZUJ1aWxkZXI6OmJ1aWxkKToKKyAgICAgICAgKiBs
YXlvdXQvRm9ybWF0dGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1h
dHRpbmdTdGF0ZTo6YWRkT3V0T2ZGbG93Qm94KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3Rh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6TGF5b3V0U3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0
YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGluZ0NvbnRleHQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZW5zdXJlSW5s
aW5lRm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3RhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OnJvb3QgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6aGFzUm9vdCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaDoKKyAgICAgICAgKiBsYXlv
dXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpG
bG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW06OkZsb2F0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91dC9m
bG9hdHMvRmxvYXRpbmdTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGlu
Z1N0YXRlOjpyb290IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6OkZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0NvbnRlbnQpOgorICAgICAgICAq
IGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OnJvb3QgY29uc3QpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nU3RhdGUu
aDoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToK
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMZXZlbEJv
eC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVMZXZlbEJveDo6bGF5b3V0Qm94
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGV2ZWxCb3g6OklubGlu
ZUxldmVsQm94KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lQm94Lmg6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVE
aXNwbGF5OjpCb3g6OmxheW91dEJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVE
aXNwbGF5OjpCb3g6OkJveCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90
YWJsZS9UYWJsZUdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUdyaWQ6
OkNvbHVtbjo6Q29sdW1uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpS
b3c6OlJvdyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6Q2VsbDo6Q2Vs
bCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpSb3c6OmJveCBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94VHJlZTo6YnVpbGRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hUcmVlOjphcHBl
bmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94VHJlZTo6
bGF5b3V0Qm94Rm9yUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OkJveFRyZWU6OnJlbmRlcmVyRm9yTGF5b3V0Qm94KToKKyAgICAgICAgKiBsYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmg6CisgICAgICAgICogbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudDo6SW5saW5lQ29udGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudDo6cmVu
ZGVyZXJGb3JMYXlvdXRCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OklubGluZUNvbnRlbnQ6OmNvbnRhaW5pbmdCbG9jayBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudDo6bGluZUxheW91dCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uSW5saW5lQ29udGVudC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OklubGluZUNvbnRlbnQ6OmxpbmVMYXlvdXQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNvbnN0cnVjdENvbnRlbnQpOgorICAg
ICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaDoK
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCb3g6OnNldENhY2hlZEdlb21ldHJ5Rm9yTGF5b3V0U3RhdGUgY29uc3Qp
OgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAqIGxh
eW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxhY2VkQm94Lmg6CisgICAgICAgICogbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaDoKKwogMjAyMS0wOS0yNiAgSmVhbi1ZdmVzIEF2
ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdIGFwcGVuZGluZyB0byB0aGUg
c291cmNlIGJ1ZmZlciB3aWxsIG5vdCB0aHJvdyB3aGVuIHRoZSBzb3VyY2UgYnVmZmVyIGlzIGZ1
bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkUmVmLmggYi9Tb3VyY2UvV1RG
L3d0Zi9DaGVja2VkUmVmLmgKaW5kZXggZDJiYzFjYWNlMzMyNGFhNDMzNDc5MGZmNjljYjc0NGZk
NzllZTIyYS4uOGIyMDNiNWEzY2VjZDY3MjI3YmM3YTVlYTk5NjU5OWQ4ZGJmYzgwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0No
ZWNrZWRSZWYuaApAQCAtMjMwLDExICsyMzAsMTEgQEAgcHVibGljOgogICAgIH5DYW5NYWtlQ2hl
Y2tlZFB0ckJhc2UoKSB7IFJFTEVBU0VfQVNTRVJUKCFtX2NvdW50KTsgfQogCiAgICAgUHRyQ291
bnRlclR5cGUgcHRyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NvdW50OyB9Ci0gICAgdm9pZCBp
bmNyZW1lbnRQdHJDb3VudCgpIHsgKyttX2NvdW50OyB9Ci0gICAgdm9pZCBkZWNyZW1lbnRQdHJD
b3VudCgpIHsgQVNTRVJUKG1fY291bnQpOyAtLW1fY291bnQ7IH0KKyAgICB2b2lkIGluY3JlbWVu
dFB0ckNvdW50KCkgY29uc3QgeyArK21fY291bnQ7IH0KKyAgICB2b2lkIGRlY3JlbWVudFB0ckNv
dW50KCkgY29uc3QgeyBBU1NFUlQobV9jb3VudCk7IC0tbV9jb3VudDsgfQogCiBwcml2YXRlOgot
ICAgIFN0b3JhZ2VUeXBlIG1fY291bnQgeyAwIH07CisgICAgbXV0YWJsZSBTdG9yYWdlVHlwZSBt
X2NvdW50IHsgMCB9OwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIEludGVncmFsVHlwZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcAppbmRleCBjN2Vm
ZDY4ZGRiOGQwYjMwNDZhOWY0NDllNjlmMGJhZWVkZWM3OTM4Li41ZDhhNTExOGMzMDc5YzE2Zjgx
MjVjZDMyNTM2MTgxMTg5YTI5OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5
L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNw
bGF5VHJlZUJ1aWxkZXIuY3BwCkBAIC0xMTksOCArMTE5LDYgQEAgVHJlZUJ1aWxkZXI6On5UcmVl
QnVpbGRlcigpID0gZGVmYXVsdDsKIAogc3RkOjp1bmlxdWVfcHRyPFRyZWU+IFRyZWVCdWlsZGVy
OjpidWlsZChjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKIHsKLSAgICBB
U1NFUlQobGF5b3V0U3RhdGUuaGFzUm9vdCgpKTsKLQogICAgIGF1dG8mIHJvb3RMYXlvdXRCb3gg
PSBsYXlvdXRTdGF0ZS5yb290KCk7CiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggNWNlMGQzYmIxNWU3NzE3YWQw
YzZiOWJjZDM1ODIwYWQ0MGFjN2NlNi4uMDI0NDAwODRmNTNiMjVjZmZjMzI2ZmUzOWJhNTE3OTJj
NzU3NjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaApAQCAtMzAs
NyArMzAsNiBAQAogI2luY2x1ZGUgIkZvcm1hdHRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5
b3V0U3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CkBAIC02
NSw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBmaW5kIGEgd2F5
IHRvIGxpbWl0IGFjY2VzcyB0byBtdXRhdGFibGUgZ2VvbWV0cnkuCiAgICAgQm94R2VvbWV0cnkm
IGJveEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94KTsKICAgICAvLyBTaW5jZSB3ZSBsYXlv
dXQgdGhlIG91dC1vZi1mbG93IGJveGVzIGF0IHRoZSBlbmQgb2YgdGhlIGZvcm1hdHRpbmcgY29u
dGV4dCBsYXlvdXQsIGl0J3Mgb2theSB0byBzdG9yZSB0aGVtIGluIHRoZSBmb3JtYXR0aW5nIHN0
YXRlIC1hcyBvcHBvc2VkIHRvIHRoZSBjb250YWluaW5nIGJsb2NrIGxldmVsLgotICAgIHVzaW5n
IE91dE9mRmxvd0JveExpc3QgPSBWZWN0b3I8V2Vha1B0cjxjb25zdCBCb3g+PjsKLSAgICB2b2lk
IGFkZE91dE9mRmxvd0JveChjb25zdCBCb3gmIG91dE9mRmxvd0JveCkgeyBtX291dE9mRmxvd0Jv
eGVzLmFwcGVuZChtYWtlV2Vha1B0cihvdXRPZkZsb3dCb3gpKTsgfQorICAgIHVzaW5nIE91dE9m
Rmxvd0JveExpc3QgPSBWZWN0b3I8Q2hlY2tlZFJlZjxjb25zdCBCb3g+PjsKKyAgICB2b2lkIGFk
ZE91dE9mRmxvd0JveChjb25zdCBCb3gmIG91dE9mRmxvd0JveCkgeyBtX291dE9mRmxvd0JveGVz
LmFwcGVuZChvdXRPZkZsb3dCb3gpOyB9CiAgICAgdm9pZCByZW1vdmVPdXRPZkZsb3dCb3goY29u
c3QgQm94Jik7CiAgICAgY29uc3QgT3V0T2ZGbG93Qm94TGlzdCYgb3V0T2ZGbG93Qm94ZXMoKSBj
b25zdCB7IHJldHVybiBtX291dE9mRmxvd0JveGVzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0U3RhdGUuY3BwCmluZGV4IDBkMDIxZjQ0NWQ1MTViYWU5MjM4N2JhYTg0NWY4MzkxZjI1ZGQw
YmUuLjk2YmQxN2ZhMDE0ODZhNTZmMWU1YmQ5YmZkZTc3YWE4YTdkY2U5NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgTGF5
b3V0IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChMYXlvdXRTdGF0ZSk7CiAKIExheW91
dFN0YXRlOjpMYXlvdXRTdGF0ZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IENvbnRh
aW5lckJveCYgcm9vdENvbnRhaW5lcikKLSAgICA6IG1fcm9vdENvbnRhaW5lcihtYWtlV2Vha1B0
cihyb290Q29udGFpbmVyKSkKKyAgICA6IG1fcm9vdENvbnRhaW5lcihyb290Q29udGFpbmVyKQog
ewogICAgIC8vIEl0IG1ha2VzIGFic29sdXRlbHkgbm8gc2Vuc2UgdG8gY29uc3RydWN0IGEgZGVk
aWNhdGVkIGxheW91dCBzdGF0ZSBmb3IgYSBub24tZm9ybWF0dGluZyBjb250ZXh0IHJvb3QgKGxh
eW91dCB3b3VsZCBiZSBhIG5vLW9wKS4KICAgICBBU1NFUlQocm9vdCgpLmVzdGFibGlzaGVzRm9y
bWF0dGluZ0NvbnRleHQoKSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgRm9ybWF0dGluZ1N0YXRlJiBM
YXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29u
dGFpbmUKIHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzRm9y
bWF0dGluZ0NvbnRleHQoKSk7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkg
ewotICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWlu
ZXIuZ2V0KCkpOworICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jv
b3RDb250YWluZXIucHRyKCkpOwogICAgICAgICByZXR1cm4gKm1fcm9vdElubGluZUZvcm1hdHRp
bmdTdGF0ZUZvckludGVncmF0aW9uOwogICAgIH0KIApAQCAtMTI1LDcgKzEyNSw3IEBAIElubGlu
ZUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZv
cm1hdHRpbmdDb250ZXh0KGNvCiAgICAgQVNTRVJUKGlubGluZUZvcm1hdHRpbmdDb250ZXh0Um9v
dC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpOwogCiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRl
eHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICBBU1NFUlQoJmlubGluZUZvcm1hdHRp
bmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWluZXIuZ2V0KCkpOworICAgICAgICBBU1NFUlQo
JmlubGluZUZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWluZXIucHRyKCkpOwog
ICAgICAgICByZXR1cm4gKm1fcm9vdElubGluZUZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9u
OwogICAgIH0KIApAQCAtMTcxLDcgKzE3MSw3IEBAIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgTGF5
b3V0U3RhdGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCCiAK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRG
b3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICghbV9y
b290SW5saW5lRm9ybWF0dGluZ1N0YXRlRm9ySW50ZWdyYXRpb24pIHsKLSAgICAgICAgICAgIEFT
U0VSVCgmZm9ybWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9vdENvbnRhaW5lci5nZXQoKSk7Cisg
ICAgICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWlu
ZXIucHRyKCkpOwogICAgICAgICAgICAgbV9yb290SW5saW5lRm9ybWF0dGluZ1N0YXRlRm9ySW50
ZWdyYXRpb24gPSBjcmVhdGUoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gKm1fcm9vdElu
bGluZUZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0
U3RhdGUuaAppbmRleCA1MTRiZDk2MDA0MzAwYmIyMjEzYThjZTAxMmQ0ZDA0ZTJkNzYzZGM0Li4z
NWU2YWYwYzczM2FiNTI5ZmFjMmRiMTUwMjhhNTFkYWQwNmEzNjQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0U3RhdGUuaApAQCAtMjgsMTAgKzI4LDEwIEBACiAjaWYgRU5BQkxFKExBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQpCiAKICNpbmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKKyNp
bmNsdWRlIDx3dGYvQ2hlY2tlZFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NSw3ICs0NSw3
IEBAIGNsYXNzIEJveEdlb21ldHJ5OwogY2xhc3MgSW5saW5lRm9ybWF0dGluZ1N0YXRlOwogY2xh
c3MgVGFibGVGb3JtYXR0aW5nU3RhdGU7CiAKLWNsYXNzIExheW91dFN0YXRlIDogcHVibGljIENh
bk1ha2VXZWFrUHRyPExheW91dFN0YXRlPiB7CitjbGFzcyBMYXlvdXRTdGF0ZSA6IHB1YmxpYyBD
YW5NYWtlQ2hlY2tlZFB0ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF5b3V0U3RhdGUp
OwogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTGF5b3V0U3RhdGUpOwogcHVibGljOgpAQCAt
ODQsOCArODQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbkxpbWl0ZWRRdWlya3NNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9xdWlya3NNb2RlID09IFF1aXJrc01vZGU6OkxpbWl0ZWQ7IH0KICAgICBi
b29sIGluU3RhbmRhcmRzTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVpcmtzTW9kZSA9PSBRdWly
a3NNb2RlOjpObzsgfQogCi0gICAgYm9vbCBoYXNSb290KCkgY29uc3QgeyByZXR1cm4gISFtX3Jv
b3RDb250YWluZXI7IH0KLSAgICBjb25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7IHJl
dHVybiAqbV9yb290Q29udGFpbmVyOyB9CisgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkg
Y29uc3QgeyByZXR1cm4gbV9yb290Q29udGFpbmVyOyB9CiAKICAgICAvLyBMRkMgaW50ZWdyYXRp
b24gb25seS4gRnVsbCBMRkMgaGFzIHByb3BlciBJQ0IgYWNjZXNzLgogICAgIHZvaWQgc2V0Vmll
d3BvcnRTaXplKGNvbnN0IExheW91dFNpemUmKTsKQEAgLTExMyw3ICsxMTIsNyBAQCBwcml2YXRl
OgogICAgIEhhc2hNYXA8Y29uc3QgQm94Kiwgc3RkOjp1bmlxdWVfcHRyPEJveEdlb21ldHJ5Pj4g
bV9sYXlvdXRCb3hUb0JveEdlb21ldHJ5OwogICAgIFF1aXJrc01vZGUgbV9xdWlya3NNb2RlIHsg
UXVpcmtzTW9kZTo6Tm8gfTsKIAotICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jv
b3RDb250YWluZXI7CisgICAgQ2hlY2tlZFJlZjxjb25zdCBDb250YWluZXJCb3g+IG1fcm9vdENv
bnRhaW5lcjsKIAogICAgIC8vIExGQyBpbnRlZ3JhdGlvbiBvbmx5LgogICAgIExheW91dFNpemUg
bV92aWV3cG9ydFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRz
L0Zsb2F0QXZvaWRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lk
ZXIuaAppbmRleCA3YTZhYWUwMGJjNGQzNDFmMTQxNDI1M2JlZTQ3ODJiODlmZWI2ZmI3Li5kYzky
NGU4YmM2MjEwZDg1YzE1MWUwNjkzNjkxM2Q1YWRkN2FmYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRl
ICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGlu
Z1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5j
cHAKaW5kZXggYjliY2RhMDA2ZDcxYzVlZmIzN2JjYzJlYTA3MjI5OTMzYzQyYjhhMS4uNjRmZGY5
MzhmMjU1MGY2NTQzN2Q0NDIzN2UxZTQzZTZmNDFkNWZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVz
cGFjZSBMYXlvdXQgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZsb2F0aW5nU3RhdGUp
OwogCiBGbG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW06OkZsb2F0SXRlbShjb25zdCBCb3gmIGxheW91
dEJveCwgQm94R2VvbWV0cnkgYWJzb2x1dGVCb3hHZW9tZXRyeSkKLSAgICA6IG1fbGF5b3V0Qm94
KG1ha2VXZWFrUHRyKGxheW91dEJveCkpCisgICAgOiBtX2xheW91dEJveChsYXlvdXRCb3gpCiAg
ICAgLCBtX3Bvc2l0aW9uKGxheW91dEJveC5pc0xlZnRGbG9hdGluZ1Bvc2l0aW9uZWQoKSA/IFBv
c2l0aW9uOjpMZWZ0IDogUG9zaXRpb246OlJpZ2h0KQogICAgICwgbV9hYnNvbHV0ZUJveEdlb21l
dHJ5KGFic29sdXRlQm94R2VvbWV0cnkpCiB7CkBAIC01NSw3ICs1NSw3IEBAIEZsb2F0aW5nU3Rh
dGU6OkZsb2F0SXRlbTo6RmxvYXRJdGVtKFBvc2l0aW9uIHBvc2l0aW9uLCBCb3hHZW9tZXRyeSBh
YnNvbHV0ZUJveEdlCiAKIEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nU3RhdGUoTGF5b3V0U3RhdGUm
IGxheW91dFN0YXRlLCBjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkK
ICAgICA6IG1fbGF5b3V0U3RhdGUobGF5b3V0U3RhdGUpCi0gICAgLCBtX2Zvcm1hdHRpbmdDb250
ZXh0Um9vdChtYWtlV2Vha1B0cihmb3JtYXR0aW5nQ29udGV4dFJvb3QpKQorICAgICwgbV9mb3Jt
YXR0aW5nQ29udGV4dFJvb3QoZm9ybWF0dGluZ0NvbnRleHRSb290KQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5oCmluZGV4IGI1YzZmZTEzZjRh
ZTIwYjczNTZhMDczOTY1ZWY3MmM1OGNhZGUyZTAuLjY3MzdjZGFiM2Q5ZWU2NDFjM2FmNzAwOWQ3
NmQ1MzVmOWE0NzY5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMv
RmxvYXRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRp
bmdTdGF0ZS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyQm94
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDcg
KzQ4LDcgQEAgY2xhc3MgRmxvYXRpbmdTdGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZsb2F0aW5n
U3RhdGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEZsb2F0aW5nU3RhdGU+IGNyZWF0ZShM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEZsb2F0aW5nU3RhdGUobGF5b3V0U3Rh
dGUsIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkpOyB9CiAKLSAgICBjb25zdCBDb250YWluZXJCb3gm
IHJvb3QoKSBjb25zdCB7IHJldHVybiAqbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7IH0KKyAgICBj
b25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250
ZXh0Um9vdDsgfQogCiAgICAgY2xhc3MgRmxvYXRJdGVtIHsKICAgICBwdWJsaWM6CkBAIC03MCw3
ICs2OSw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgQm94KiBmbG9hdEJveCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGF5b3V0Qm94LmdldCgpOyB9CiAjZW5kaWYKICAgICBwcml2YXRlOgotICAgICAg
ICBXZWFrUHRyPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNrZWRQdHI8Y29u
c3QgQm94PiBtX2xheW91dEJveDsKICAgICAgICAgUG9zaXRpb24gbV9wb3NpdGlvbjsKICAgICAg
ICAgQm94R2VvbWV0cnkgbV9hYnNvbHV0ZUJveEdlb21ldHJ5OwogICAgIH07CkBAIC04Nyw3ICs4
Niw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXlvdXRTdGF0ZTsgfQogCiAgICAgTGF5b3V0U3RhdGUmIG1fbGF5b3V0U3RhdGU7
Ci0gICAgV2Vha1B0cjxjb25zdCBDb250YWluZXJCb3g+IG1fZm9ybWF0dGluZ0NvbnRleHRSb290
OworICAgIENoZWNrZWRSZWY8Y29uc3QgQ29udGFpbmVyQm94PiBtX2Zvcm1hdHRpbmdDb250ZXh0
Um9vdDsKICAgICBGbG9hdExpc3QgbV9mbG9hdHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCmluZGV4IDlkYTNiNTNhMmZhYzU4MjgwNTA2NDk0MDZjMjA1MWI3NjFjMjJjYzguLmYx
MDQyMTQ0OTUxNDExNDQ5OGFkYjI5OTNhN2JlYzczMWM1ZDNjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZvcm1hdHRpbmdDb250ZXh0KTsKIAogRm9ybWF0dGluZ0Nv
bnRleHQ6OkZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290LCBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSkKLSAgICA6IG1fcm9v
dChtYWtlV2Vha1B0cihmb3JtYXR0aW5nQ29udGV4dFJvb3QpKQorICAgIDogbV9yb290KGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkKICAgICAsIG1fZm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdTdGF0
ZSkKIHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290Lmhhc0NoaWxkKCkpOwpAQCAt
MTQxLDI3ICsxNDEsMjcgQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93
Q29udGVudChjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnQKICAgICBjb2xsZWN0T3V0
T2ZGbG93RGVzY2VuZGFudHNJZk5lZWRlZCgpOwogCiAgICAgYXV0byBjb25zdHJhaW50c0Zvckxh
eW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgb3V0T2ZGbG93Qm94KSB7Ci0gICAgICAgIGF1dG8m
IGNvbnRhaW5pbmdCbG9jayA9IG91dE9mRmxvd0JveC5jb250YWluaW5nQmxvY2soKTsKKyAgICAg
ICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gb3V0T2ZGbG93Qm94LT5jb250YWluaW5nQmxvY2so
KTsKICAgICAgICAgcmV0dXJuICZjb250YWluaW5nQmxvY2sgPT0gJnJvb3QoKSA/IGNvbnN0cmFp
bnRzIDogZm9ybWF0dGluZ0dlb21ldHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50
KGNvbnRhaW5pbmdCbG9jayk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94
IDogZm9ybWF0dGluZ1N0YXRlKCkub3V0T2ZGbG93Qm94ZXMoKSkgewogICAgICAgICBBU1NFUlQo
b3V0T2ZGbG93Qm94LT5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgICAgICBh
dXRvIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzID0gY29uc3RyYWludHNGb3JMYXlvdXRCb3go
Km91dE9mRmxvd0JveCk7CisgICAgICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrQ29uc3RyYWludHMg
PSBjb25zdHJhaW50c0ZvckxheW91dEJveChvdXRPZkZsb3dCb3gpOwogICAgICAgICBhdXRvIGhv
cml6b250YWxDb25zdHJhaW50c0ZvckJvcmRlckFuZFBhZGRpbmcgPSBIb3Jpem9udGFsQ29uc3Ry
YWludHMgeyBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cy5ob3Jpem9udGFsLmxvZ2ljYWxMZWZ0
LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cy5ib3JkZXJBbmRQYWRkaW5nQ29uc3RyYWludHMg
fTsKLSAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoKm91dE9mRmxvd0JveCwgaG9yaXpv
bnRhbENvbnN0cmFpbnRzRm9yQm9yZGVyQW5kUGFkZGluZyk7CisgICAgICAgIGNvbXB1dGVCb3Jk
ZXJBbmRQYWRkaW5nKG91dE9mRmxvd0JveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQm9yZGVy
QW5kUGFkZGluZyk7CiAKLSAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRy
eSgqb3V0T2ZGbG93Qm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyk7Ci0gICAgICAgIGF1
dG8gb3V0T2ZGbG93Qm94SGFzQ29udGVudCA9IGlzPENvbnRhaW5lckJveD4oKm91dE9mRmxvd0Jv
eCkgJiYgZG93bmNhc3Q8Q29udGFpbmVyQm94Pigqb3V0T2ZGbG93Qm94KS5oYXNDaGlsZCgpOwor
ICAgICAgICBjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KG91dE9mRmxvd0JveCwg
Y29udGFpbmluZ0Jsb2NrQ29uc3RyYWludHMpOworICAgICAgICBhdXRvIG91dE9mRmxvd0JveEhh
c0NvbnRlbnQgPSBpczxDb250YWluZXJCb3g+KG91dE9mRmxvd0JveC5nZXQoKSkgJiYgZG93bmNh
c3Q8Q29udGFpbmVyQm94PihvdXRPZkZsb3dCb3guZ2V0KCkpLmhhc0NoaWxkKCk7CiAgICAgICAg
IGlmIChvdXRPZkZsb3dCb3hIYXNDb250ZW50KSB7Ci0gICAgICAgICAgICBhdXRvJiBjb250YWlu
ZXJCb3ggPSBkb3duY2FzdDxDb250YWluZXJCb3g+KCpvdXRPZkZsb3dCb3gpOworICAgICAgICAg
ICAgYXV0byYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFpbmVyQm94PihvdXRPZkZsb3dC
b3guZ2V0KCkpOwogICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENv
bnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUo
KSk7CiAgICAgICAgICAgICBpZiAoY29udGFpbmVyQm94Lmhhc0luRmxvd09yRmxvYXRpbmdDaGls
ZCgpKQogICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dDb250
ZW50KGZvcm1hdHRpbmdHZW9tZXRyeSgpLmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChjb250
YWluZXJCb3gpKTsKICAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5
KGNvbnRhaW5lckJveCwgY29udGFpbmluZ0Jsb2NrQ29uc3RyYWludHMpOwogICAgICAgICAgICAg
Zm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoZm9ybWF0dGluZ0dlb21l
dHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnRhaW5lckJveCkpOwogICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5
KCpvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAg
IGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KG91dE9mRmxvd0JveCwgY29udGFpbmlu
Z0Jsb2NrQ29uc3RyYWludHMpOwogICAgIH0KICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGlu
Z0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiRW5kOiBsYXlvdXQgb3V0LW9mLWZsb3cgY29udGVu
dCAtPiBjb250ZXh0OiAiIDw8ICZsYXlvdXRTdGF0ZSgpIDw8ICIgcm9vdDogIiA8PCAmcm9vdCgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCA0NjUyY2FiMzQwMGE5YzdkNjQzZWNh
ZmY0ZDJlOWFlNWM4ZWEwY2RmLi4yMjZjNjQ0Zjg0NmFkNDA1NWFhYzUxMmI1ZmM5ZTg0Y2FlMzU2
MWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVk
ZSAiTGF5b3V0VW5pdC5oIgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjIsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbnRyaW5zaWNX
aWR0aENvbnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpID0gMDsK
ICAgICB2aXJ0dWFsIExheW91dFVuaXQgdXNlZENvbnRlbnRIZWlnaHQoKSBjb25zdCA9IDA7CiAK
LSAgICBjb25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7IHJldHVybiAqbV9yb290OyB9
CisgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4gbV9yb290OyB9
CiAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3Q7CiAgICAgY29uc3QgRm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdT
dGF0ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgRm9ybWF0dGluZ0dlb21ldHJ5JiBmb3JtYXR0aW5n
R2VvbWV0cnkoKSBjb25zdCA9IDA7CkBAIC0xMDEsNyArMTAwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNvbnN0IENv
bnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCYpOwogICAgIHZvaWQgY29tcHV0ZU91dE9mRmxv
d0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9m
Rmxvd0NvbnRlbnQmKTsKIAotICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jvb3Q7
CisgICAgQ2hlY2tlZFJlZjxjb25zdCBDb250YWluZXJCb3g+IG1fcm9vdDsKICAgICBGb3JtYXR0
aW5nU3RhdGUmIG1fZm9ybWF0dGluZ1N0YXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdTdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IDFlNmNkNjE5ZGQzMTZmNTliM2Y0MDliZjM1ZDcwOTZk
OWZiN2M4YjEuLjFkYWFjNWZkY2JkOWQzN2VhMTQ5OTIxZDRlMmY4MDU2NjQwNjcxNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxv
Y2tGb3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKQEAgLTUxLDcgKzUxLDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIEhhc2hNYXA8Y29uc3QgQm94KiwgVXNlZFZlcnRpY2Fs
TWFyZ2luPiBtX3VzZWRWZXJ0aWNhbE1hcmdpbnM7Ci0gICAgV2Vha0hhc2hTZXQ8Y29uc3QgQm94
PiBtX2NsZWFyYW5jZVNldDsKKyAgICBIYXNoU2V0PENoZWNrZWRSZWY8Y29uc3QgQm94Pj4gbV9j
bGVhcmFuY2VTZXQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZDBhN2JiY2ViZDBlOWQ5MTUxMzE1Y2QyMTI0ZmRjMDky
ZmI2N2I1NC4uOGIyYmE3ZDFlYjZmZDVlY2VhMWYyOTZmOGY2ZjM4ODVjYjdjOTczZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjcw
LDcgKzI3MCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNQ
b3NpdGlvbkZvck91dE9mRmxvd0NvbnRlbnQoY29uc3QgRm9yCiAgICAgYXV0byYgYm94ZXMgPSBm
b3JtYXR0aW5nU3RhdGUuYm94ZXMoKTsKIAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDog
b3V0T2ZGbG93Qm94ZXMpIHsKLSAgICAgICAgYXV0byYgb3V0T2ZGbG93R2VvbWV0cnkgPSBmb3Jt
YXR0aW5nU3RhdGUuYm94R2VvbWV0cnkoKm91dE9mRmxvd0JveCk7CisgICAgICAgIGF1dG8mIG91
dE9mRmxvd0dlb21ldHJ5ID0gZm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KG91dE9mRmxvd0Jv
eCk7CiAgICAgICAgIC8vIEJvdGggcHJldmlvdXMgZmxvYXQgYW5kIG91dC1vZi1mbG93IGJveGVz
IGFyZSBza2lwcGVkIGhlcmUuIEEgc2VyaWVzIG9mIGFkam9pbmluZyBvdXQtb2YtZmxvdyBib3hl
cyBzaG91bGQgYWxsIGJlIHBsYWNlZAogICAgICAgICAvLyBhdCB0aGUgc2FtZSBzdGF0aWMgcG9z
aXRpb24gKHRoZXkgZG9uJ3QgYWZmZWN0IG5leHQtc2libGluZyBwb3NpdGlvbnMpIGFuZCB3aGls
ZSBmbG9hdHMgZG8gcGFydGljaXBhdGUgaW4gdGhlIGlubGluZSBsYXlvdXQKICAgICAgICAgLy8g
dGhlaXIgcG9zaXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIHRha2VuIGludG8gYWNjb3VudCBkdXJp
bmcgdGhlIGlubGluZSBsYXlvdXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMZXZlbEJveC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaAppbmRl
eCBlMjA0NTAzNDQ3NjdjZTI3M2I1Zjk5OGJmMmRmNzBiNmNkMTA0MzRmLi4yZWE5YTVlYTUxODZm
MzIzYjhlNjU3MDRlOGJlZjhhMDU3YzJiNzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMZXZlbEJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxldmVs
Qm94LmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAjaW5jbHVk
ZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0VW5pdHMuaCIKLSNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKQEAg
LTkwLDcgKzg5LDcgQEAgcHVibGljOgogICAgIH07CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9CiAKLSAgICBjb25zdCBCb3gmIGxheW91dEJveCgpIGNvbnN0IHsgcmV0
dXJuICptX2xheW91dEJveDsgfQorICAgIGNvbnN0IEJveCYgbGF5b3V0Qm94KCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXlvdXRCb3g7IH0KIAogICAgIElubGluZUxldmVsQm94KGNvbnN0IEJveCYsIGNv
bnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5
b3V0U2l6ZSwgVHlwZSk7CiAKQEAgLTExNSw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0TGF5b3V0Qm91bmRzKGNvbnN0IExheW91dEJvdW5kcyYgbGF5b3V0Qm91bmRzKSB7IG1fbGF5
b3V0Qm91bmRzID0geyBJbmxpbmVMYXlvdXRVbml0KHJvdW5kVG9JbnQobGF5b3V0Qm91bmRzLmFz
Y2VudCkpLCBJbmxpbmVMYXlvdXRVbml0KHJvdW5kVG9JbnQobGF5b3V0Qm91bmRzLmRlc2NlbnQp
KSB9OyB9CiAKIHByaXZhdGU6Ci0gICAgV2Vha1B0cjxjb25zdCBCb3g+IG1fbGF5b3V0Qm94Owor
ICAgIENoZWNrZWRSZWY8Y29uc3QgQm94PiBtX2xheW91dEJveDsKICAgICAvLyBUaGlzIGlzIHRo
ZSBjb21iaW5hdGlvbiBvZiBtYXJnaW4gYW5kIGJvcmRlciBib3hlcy4gSW5saW5lIGxldmVsIGJv
eGVzIGFyZSB2ZXJ0aWNhbGx5IGFsaWduZWQgdXNpbmcgdGhlaXIgbWFyZ2luIGJveGVzLgogICAg
IElubGluZVJlY3QgbV9sb2dpY2FsUmVjdDsKICAgICBMYXlvdXRCb3VuZHMgbV9sYXlvdXRCb3Vu
ZHM7CkBAIC0xMzQsNyArMTMzLDcgQEAgcHJpdmF0ZToKIH07CiAKIGlubGluZSBJbmxpbmVMZXZl
bEJveDo6SW5saW5lTGV2ZWxCb3goY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6
ZSBsb2dpY2FsU2l6ZSwgVHlwZSB0eXBlKQotICAgIDogbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIo
bGF5b3V0Qm94KSkKKyAgICA6IG1fbGF5b3V0Qm94KGxheW91dEJveCkKICAgICAsIG1fbG9naWNh
bFJlY3QoeyB9LCBsb2dpY2FsTGVmdCwgbG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNhbFNpemUu
aGVpZ2h0KCkpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fc3R5bGUoeyBzdHlsZS5mb250
Q2FzY2FkZSgpLnByaW1hcnlGb250KCkuZm9udE1ldHJpY3MoKSwgc3R5bGUubGluZUhlaWdodCgp
LCBJbmxpbmVMYXlvdXRVbml0KHN0eWxlLmZvbnRDYXNjYWRlKCkuZm9udERlc2NyaXB0aW9uKCku
Y29tcHV0ZWRQaXhlbFNpemUoKSksIHsgfSB9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5o
CmluZGV4IGI2ZDgwNmYzOTVjYTI0NTE5MGQ1NDA5ODEwOTdhYTdlODM2MjZiZTMuLjk0YTNjZmEy
ODM5Y2QxNTdmMmNiODNiMjVkMjBkMWJjMWU3MzMxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lQm94LmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIExheW91dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUJveC5oCmluZGV4IDcwNTZlOTdjNzI0YWViZTYwYjAzZTgyMTVjNTNjNmIzYzkwYWRjZDAuLmZj
Y2U1ODZiMWM1OWM3N2ViYjkzODNlZWU1ZTBjZmZlMGRjODhkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5l
RGlzcGxheUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oCkBAIC0xMDcsNyArMTA3LDcgQEAg
c3RydWN0IEJveCB7CiAgICAgfTsKICAgICBFeHBhbnNpb24gZXhwYW5zaW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9leHBhbnNpb247IH0KIAotICAgIGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3go
KSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3g7IH0KKyAgICBjb25zdCBMYXlvdXQ6OkJveCYg
bGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRCb3g7IH0KICAgICBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlOyB9CiAKICAgICBzaXplX3Qg
bGluZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9saW5lSW5kZXg7IH0KQEAgLTExNSw3ICsxMTUs
NyBAQCBzdHJ1Y3QgQm94IHsKIHByaXZhdGU6CiAgICAgY29uc3Qgc2l6ZV90IG1fbGluZUluZGV4
IHsgMCB9OwogICAgIGNvbnN0IFR5cGUgbV90eXBlIHsgVHlwZTo6R2VuZXJpY0lubGluZUxldmVs
Qm94IH07Ci0gICAgV2Vha1B0cjxjb25zdCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRCb3g7CisgICAg
Q2hlY2tlZFJlZjxjb25zdCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRCb3g7CiAgICAgY29uc3QgUmVu
ZGVyU3R5bGUmIG1fc3R5bGU7CiAgICAgTGF5b3V0OjpJbmxpbmVSZWN0IG1fbG9naWNhbFJlY3Q7
CiAgICAgTGF5b3V0OjpJbmxpbmVSZWN0IG1faW5rT3ZlcmZsb3c7CkBAIC0xMjcsNyArMTI3LDcg
QEAgcHJpdmF0ZToKIGlubGluZSBCb3g6OkJveChzaXplX3QgbGluZUluZGV4LCBUeXBlIHR5cGUs
IGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwg
Y29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBsb2dpY2FsUmVjdCwgY29uc3QgTGF5b3V0OjpJbmxp
bmVSZWN0JiBpbmtPdmVyZmxvdywgRXhwYW5zaW9uIGV4cGFuc2lvbiwgc3RkOjpvcHRpb25hbDxU
ZXh0PiB0ZXh0LCBib29sIGhhc0NvbnRlbnQpCiAgICAgOiBtX2xpbmVJbmRleChsaW5lSW5kZXgp
CiAgICAgLCBtX3R5cGUodHlwZSkKLSAgICAsIG1fbGF5b3V0Qm94KG1ha2VXZWFrUHRyKGxheW91
dEJveCkpCisgICAgLCBtX2xheW91dEJveChsYXlvdXRCb3gpCiAgICAgLCBtX3N0eWxlKHN0eWxl
KQogICAgICwgbV9sb2dpY2FsUmVjdChsb2dpY2FsUmVjdCkKICAgICAsIG1faW5rT3ZlcmZsb3co
aW5rT3ZlcmZsb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5jcHAKaW5kZXggNDBkMzI0M2Y2YjRjNjZh
M2EyZmQ2ZGEzOTU2MWUzODkyMDc0ZWE5Mi4uYmY0MzMxOGMxOGI1YzNkNjA0YTQwY2FhYWE2Zjg2
ZDQ0YWVhYTJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgTGF5b3V0IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUYWJsZUdyaWQp
OwogCiBUYWJsZUdyaWQ6OkNvbHVtbjo6Q29sdW1uKGNvbnN0IENvbnRhaW5lckJveCogY29sdW1u
Qm94KQotICAgIDogbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIoY29sdW1uQm94KSkKKyAgICA6IG1f
bGF5b3V0Qm94KGNvbHVtbkJveCkKIHsKIH0KIApAQCAtNTYsMTIgKzU2LDEyIEBAIHZvaWQgVGFi
bGVHcmlkOjpSb3dzOjphZGRSb3coY29uc3QgQ29udGFpbmVyQm94JiByb3dCb3gpCiB9CiAKIFRh
YmxlR3JpZDo6Um93OjpSb3coY29uc3QgQ29udGFpbmVyQm94JiByb3dCb3gpCi0gICAgOiBtX2xh
eW91dEJveChtYWtlV2Vha1B0cihyb3dCb3gpKQorICAgIDogbV9sYXlvdXRCb3gocm93Qm94KQog
ewogfQogCiBUYWJsZUdyaWQ6OkNlbGw6OkNlbGwoY29uc3QgQ29udGFpbmVyQm94JiBjZWxsQm94
LCBTbG90UG9zaXRpb24gcG9zaXRpb24sIENlbGxTcGFuIHNwYW4pCi0gICAgOiBtX2xheW91dEJv
eChtYWtlV2Vha1B0cihjZWxsQm94KSkKKyAgICA6IG1fbGF5b3V0Qm94KGNlbGxCb3gpCiAgICAg
LCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9zcGFuKHNwYW4pCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3Jp
ZC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJs
ZUdyaWQuaAppbmRleCA1ZmM4OTFkM2NiNzMzOGE3NTkzMWY0ZDlkNTVhZTBhNjM4YjA4MTIxLi42
OTFmMjI5NTdkODU0YWU2YmI0OGUzNzYxYTk3NjdjY2NjN2ZiZTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVH
cmlkLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgICAgICBMYXlvdXRVbml0IG1fdXNl
ZExvZ2ljYWxXaWR0aDsKICAgICAgICAgTGF5b3V0VW5pdCBtX3VzZWRMb2dpY2FsTGVmdDsKICAg
ICAgICAgTGVuZ3RoIG1fY29tcHV0ZWRMb2dpY2FsV2lkdGg7Ci0gICAgICAgIFdlYWtQdHI8Y29u
c3QgQ29udGFpbmVyQm94PiBtX2xheW91dEJveDsKKyAgICAgICAgQ2hlY2tlZFB0cjxjb25zdCBD
b250YWluZXJCb3g+IG1fbGF5b3V0Qm94OwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICAgICAg
Ym9vbCBtX2hhc1VzZWRXaWR0aCB7IGZhbHNlIH07CkBAIC0xMjAsMTMgKzEyMCwxMyBAQCBwdWJs
aWM6CiAgICAgICAgIHZvaWQgc2V0QmFzZWxpbmUoSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSkg
eyBtX2Jhc2VsaW5lID0gYmFzZWxpbmU7IH0KICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBiYXNl
bGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZWxpbmU7IH0KIAotICAgICAgICBjb25zdCBDb250
YWluZXJCb3gmIGJveCgpIGNvbnN0IHsgcmV0dXJuICptX2xheW91dEJveC5nZXQoKTsgfQorICAg
ICAgICBjb25zdCBDb250YWluZXJCb3gmIGJveCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94
OyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBMYXlvdXRVbml0IG1fbG9naWNhbFRvcDsKICAg
ICAgICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxIZWlnaHQ7CiAgICAgICAgIElubGluZUxheW91dFVu
aXQgbV9iYXNlbGluZSB7IDAgfTsKLSAgICAgICAgV2Vha1B0cjxjb25zdCBDb250YWluZXJCb3g+
IG1fbGF5b3V0Qm94OworICAgICAgICBDaGVja2VkUmVmPGNvbnN0IENvbnRhaW5lckJveD4gbV9s
YXlvdXRCb3g7CiAgICAgfTsKIAogICAgIGNsYXNzIFJvd3MgewpAQCAtMTY3LDcgKzE2Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgY29uc3QgQ29udGFpbmVyQm94JiBib3goKSBjb25zdCB7IHJldHVy
biAqbV9sYXlvdXRCb3guZ2V0KCk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYWtQdHI8
Y29uc3QgQ29udGFpbmVyQm94PiBtX2xheW91dEJveDsKKyAgICAgICAgQ2hlY2tlZFB0cjxjb25z
dCBDb250YWluZXJCb3g+IG1fbGF5b3V0Qm94OwogICAgICAgICBTbG90UG9zaXRpb24gbV9wb3Np
dGlvbjsKICAgICAgICAgQ2VsbFNwYW4gbV9zcGFuOwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0
IG1fYmFzZWxpbmUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCmluZGV4IDYzNzcy
YzYwYjEzNjA3ZjAyODBlYWIxN2FmNWIzODlmNTBhNjUxNTIuLjNiZGMzMmJhZmQwMDBkMTQyMDY4
NzA2MjJlY2MxYTgwNDlhM2NkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCkBAIC0x
MTQsMTQgKzExNCwxNCBAQCB2b2lkIEJveFRyZWU6OmJ1aWxkVHJlZSgpCiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgYXV0byYgY2hpbGRSZW5kZXJlciA9ICp3YWxrZXIuY3VycmVudCgp
OwogICAgICAgICBhdXRvIGNoaWxkQm94ID0gY3JlYXRlQ2hpbGRCb3goY2hpbGRSZW5kZXJlcik7
Ci0gICAgICAgIGFwcGVuZENoaWxkKFdURk1vdmUoY2hpbGRCb3gpLCBjaGlsZFJlbmRlcmVyKTsK
KyAgICAgICAgYXBwZW5kQ2hpbGQobWFrZVVuaXF1ZVJlZkZyb21Ob25OdWxsVW5pcXVlUHRyKFdU
Rk1vdmUoY2hpbGRCb3gpKSwgY2hpbGRSZW5kZXJlcik7CiAgICAgfQogfQogCi12b2lkIEJveFRy
ZWU6OmFwcGVuZENoaWxkKHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OkJveD4gY2hpbGRCb3gsIFJl
bmRlck9iamVjdCYgY2hpbGRSZW5kZXJlcikKK3ZvaWQgQm94VHJlZTo6YXBwZW5kQ2hpbGQoVW5p
cXVlUmVmPExheW91dDo6Qm94PiBjaGlsZEJveCwgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVy
KQogewogICAgIGF1dG8mIHBhcmVudEJveCA9IGRvd25jYXN0PExheW91dDo6Q29udGFpbmVyQm94
PihsYXlvdXRCb3hGb3JSZW5kZXJlcigqY2hpbGRSZW5kZXJlci5wYXJlbnQoKSkpOwotICAgIHBh
cmVudEJveC5hcHBlbmRDaGlsZCgqY2hpbGRCb3gpOworICAgIHBhcmVudEJveC5hcHBlbmRDaGls
ZChjaGlsZEJveC5nZXQoKSk7CiAKICAgICBtX2JveGVzLmFwcGVuZCh7IFdURk1vdmUoY2hpbGRC
b3gpLCAmY2hpbGRSZW5kZXJlciB9KTsKIApAQCAtMTYxLDcgKzE2MSw3IEBAIExheW91dDo6Qm94
JiBCb3hUcmVlOjpsYXlvdXRCb3hGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRl
cmVyKQogICAgICAgICAgICAgcmV0dXJuIGVudHJ5LnJlbmRlcmVyID09ICZyZW5kZXJlcjsKICAg
ICAgICAgfSk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGluZGV4ICE9IG5vdEZvdW5kKTsKLSAg
ICAgICAgcmV0dXJuICptX2JveGVzW2luZGV4XS5ib3g7CisgICAgICAgIHJldHVybiBtX2JveGVz
W2luZGV4XS5ib3g7CiAgICAgfQogCiAgICAgcmV0dXJuICptX3JlbmRlcmVyVG9Cb3hNYXAuZ2V0
KCZyZW5kZXJlcik7CkBAIC0xNzksNyArMTc5LDcgQEAgUmVuZGVyT2JqZWN0JiBCb3hUcmVlOjpy
ZW5kZXJlckZvckxheW91dEJveChjb25zdCBMYXlvdXQ6OkJveCYgYm94KQogCiAgICAgaWYgKG1f
Ym94ZXMuc2l6ZSgpIDw9IHNtYWxsVHJlZVRocmVzaG9sZCkgewogICAgICAgICBhdXRvIGluZGV4
ID0gbV9ib3hlcy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIGVudHJ5KSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZW50cnkuYm94LmdldCgpID09ICZib3g7CisgICAgICAgICAgICByZXR1cm4gZW50cnku
Ym94LnB0cigpID09ICZib3g7CiAgICAgICAgIH0pOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChp
bmRleCAhPSBub3RGb3VuZCk7CiAgICAgICAgIHJldHVybiAqbV9ib3hlc1tpbmRleF0ucmVuZGVy
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25Cb3hUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgKaW5kZXggMmNkODVlOGMwYjk0M2JjMmJjYjRjNzkx
NjEwMWJlNzJlNGJiNzIyYi4uOGVmZjgwOTFjZjI3NGU2ZTBlZWM2YTBiMjU0MGIyMWQ5MjUzMTY4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uQm94VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTksMjEgKzYwLDIxIEBAIHB1YmxpYzoKICAgICBz
aXplX3QgYm94Q291bnQoKSBjb25zdCB7IHJldHVybiBtX2JveGVzLnNpemUoKTsgfQogCiAgICAg
c3RydWN0IEJveEFuZFJlbmRlcmVyIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dDo6
Qm94PiBib3g7CisgICAgICAgIFVuaXF1ZVJlZjxMYXlvdXQ6OkJveD4gYm94OwogICAgICAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyIHsgbnVsbHB0ciB9OwogICAgIH07CiAgICAgY29uc3QgYXV0
byYgYm94QW5kUmVuZGVyZXJMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9ib3hlczsgfQogCiBwcml2
YXRlOgogICAgIHZvaWQgYnVpbGRUcmVlKCk7Ci0gICAgdm9pZCBhcHBlbmRDaGlsZChzdGQ6OnVu
aXF1ZV9wdHI8TGF5b3V0OjpCb3g+LCBSZW5kZXJPYmplY3QmKTsKKyAgICB2b2lkIGFwcGVuZENo
aWxkKFVuaXF1ZVJlZjxMYXlvdXQ6OkJveD4sIFJlbmRlck9iamVjdCYpOwogCiAgICAgUmVuZGVy
QmxvY2tGbG93JiBtX2Zsb3c7CiAgICAgTGF5b3V0OjpJbml0aWFsQ29udGFpbmluZ0Jsb2NrIG1f
cm9vdDsKICAgICBWZWN0b3I8Qm94QW5kUmVuZGVyZXIsIDE+IG1fYm94ZXM7CiAKLSAgICBIYXNo
TWFwPGNvbnN0IFJlbmRlck9iamVjdCosIExheW91dDo6Qm94Kj4gbV9yZW5kZXJlclRvQm94TWFw
OwotICAgIEhhc2hNYXA8Y29uc3QgTGF5b3V0OjpCb3gqLCBSZW5kZXJPYmplY3QqPiBtX2JveFRv
UmVuZGVyZXJNYXA7CisgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBDaGVja2VkUmVm
PExheW91dDo6Qm94Pj4gbV9yZW5kZXJlclRvQm94TWFwOworICAgIEhhc2hNYXA8Q2hlY2tlZFJl
Zjxjb25zdCBMYXlvdXQ6OkJveD4sIFJlbmRlck9iamVjdCo+IG1fYm94VG9SZW5kZXJlck1hcDsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAKaW5kZXggOTgy
OWMzNjI4MTZiNGQ1YzhhM2M3ZjU5ODEwNjg0YWY1Y2MzYWViYy4uOWVkN2YyZTNhMzk2M2I5M2Nm
OTZlMTAyOTAyMmFkMGIxN2U4MDIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29u
dGVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNl
IExheW91dEludGVncmF0aW9uIHsKIAogSW5saW5lQ29udGVudDo6SW5saW5lQ29udGVudChjb25z
dCBMaW5lTGF5b3V0JiBsaW5lTGF5b3V0KQotICAgIDogbV9saW5lTGF5b3V0KG1ha2VXZWFrUHRy
KGxpbmVMYXlvdXQpKQorICAgIDogbV9saW5lTGF5b3V0KGxpbmVMYXlvdXQpCiB7CiB9CiAKQEAg
LTYzLDE5ICs2MywxNCBAQCBJbmxpbmVDb250ZW50Ojp+SW5saW5lQ29udGVudCgpCiAgICAgfQog
fQogCi1jb25zdCBMaW5lTGF5b3V0JiBJbmxpbmVDb250ZW50OjpsaW5lTGF5b3V0KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gKm1fbGluZUxheW91dDsKLX0KLQogY29uc3QgUmVuZGVyT2JqZWN0JiBJ
bmxpbmVDb250ZW50OjpyZW5kZXJlckZvckxheW91dEJveChjb25zdCBMYXlvdXQ6OkJveCYgbGF5
b3V0Qm94KSBjb25zdAogewotICAgIHJldHVybiBtX2xpbmVMYXlvdXQtPnJlbmRlcmVyRm9yTGF5
b3V0Qm94KGxheW91dEJveCk7CisgICAgcmV0dXJuIGxpbmVMYXlvdXQoKS5yZW5kZXJlckZvckxh
eW91dEJveChsYXlvdXRCb3gpOwogfQogCiBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIElubGluZUNv
bnRlbnQ6OmNvbnRhaW5pbmdCbG9jaygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGluZUxheW91
dC0+ZmxvdygpOworICAgIHJldHVybiBsaW5lTGF5b3V0KCkuZmxvdygpOwogfQogCiBzaXplX3Qg
SW5saW5lQ29udGVudDo6aW5kZXhGb3JCb3goY29uc3QgSW5saW5lRGlzcGxheTo6Qm94JiBib3gp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmgKaW5kZXggMmNmY2YyYjY0
OTdmMjVkOTIwOWE1NGNkNWNlNzA3MjQ5Nzk5YTJjZS4uMGE1OGJhMWRmMzQ3ZmVlMjc1YzFjNDYy
MjliYjgwYzU0NzcyZjJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaApA
QCAtMjksMTAgKzI5LDkgQEAKIAogI2luY2x1ZGUgIklubGluZURpc3BsYXlCb3guaCIKICNpbmNs
dWRlICJMYXlvdXRJbnRlZ3JhdGlvbkxpbmUuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9JdGVyYXRvclJhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgot
I2luY2x1ZGUgPHd0Zi9XZWFrSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjksNyArNjgsNyBAQCBzdHJ1Y3QgSW5saW5lQ29u
dGVudCA6IHB1YmxpYyBSZWZDb3VudGVkPElubGluZUNvbnRlbnQ+IHsKICAgICBXVEY6Okl0ZXJh
dG9yUmFuZ2U8Y29uc3QgSW5saW5lRGlzcGxheTo6Qm94Kj4gYm94ZXNGb3JSZWN0KGNvbnN0IExh
eW91dFJlY3QmKSBjb25zdDsKICAgICB2b2lkIHNocmlua1RvRml0KCk7CiAKLSAgICBjb25zdCBM
aW5lTGF5b3V0JiBsaW5lTGF5b3V0KCkgY29uc3Q7CisgICAgY29uc3QgTGluZUxheW91dCYgbGlu
ZUxheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUxheW91dDsgfQogICAgIGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyZXJGb3JMYXlvdXRCb3goY29uc3QgTGF5b3V0OjpCb3gmKSBjb25zdDsK
ICAgICBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGNvbnRhaW5pbmdCbG9jaygpIGNvbnN0OwogCkBA
IC04NiwxMiArODUsMTIgQEAgc3RydWN0IElubGluZUNvbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbmxpbmVDb250ZW50PiB7CiBwcml2YXRlOgogICAgIElubGluZUNvbnRlbnQoY29uc3QgTGlu
ZUxheW91dCYpOwogCi0gICAgV2Vha1B0cjxjb25zdCBMaW5lTGF5b3V0PiBtX2xpbmVMYXlvdXQ7
CisgICAgQ2hlY2tlZFJlZjxjb25zdCBMaW5lTGF5b3V0PiBtX2xpbmVMYXlvdXQ7CiAKLSAgICB1
c2luZyBGaXJzdEJveEluZGV4Q2FjaGUgPSBXZWFrSGFzaE1hcDxMYXlvdXQ6OkJveCwgc2l6ZV90
PjsKKyAgICB1c2luZyBGaXJzdEJveEluZGV4Q2FjaGUgPSBIYXNoTWFwPENoZWNrZWRSZWY8Y29u
c3QgTGF5b3V0OjpCb3g+LCBzaXplX3Q+OwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPEZp
cnN0Qm94SW5kZXhDYWNoZT4gbV9maXJzdEJveEluZGV4Q2FjaGU7CiAKLSAgICB1c2luZyBJbmxp
bmVCb3hJbmRleENhY2hlID0gV2Vha0hhc2hNYXA8TGF5b3V0OjpCb3gsIFZlY3RvcjxzaXplX3Q+
PjsKKyAgICB1c2luZyBJbmxpbmVCb3hJbmRleENhY2hlID0gSGFzaE1hcDxDaGVja2VkUmVmPGNv
bnN0IExheW91dDo6Qm94PiwgVmVjdG9yPHNpemVfdD4+OwogICAgIG11dGFibGUgc3RkOjp1bmlx
dWVfcHRyPElubGluZUJveEluZGV4Q2FjaGU+IG1faW5saW5lQm94SW5kZXhDYWNoZTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKaW5kZXggOGY3YzAwN2ExNWJkYmQ1MzNl
ODY4MjJiNDU4NDdmOGY1OWRjYTFkZC4uZTUxMzM5MjkwZmUyNWY3ZmRmMTgwYzE4ZTYwOWMxMjJi
OTM4Njg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKQEAgLTIzOSw3ICsy
MzksNyBAQCB2b2lkIExpbmVMYXlvdXQ6OmNvbnN0cnVjdENvbnRlbnQoKQogCiAgICAgYXV0byYg
Ym94QW5kUmVuZGVyZXJMaXN0ID0gbV9ib3hUcmVlLmJveEFuZFJlbmRlcmVyTGlzdCgpOwogICAg
IGZvciAoYXV0byYgYm94QW5kUmVuZGVyZXIgOiBib3hBbmRSZW5kZXJlckxpc3QpIHsKLSAgICAg
ICAgYXV0byYgbGF5b3V0Qm94ID0gKmJveEFuZFJlbmRlcmVyLmJveDsKKyAgICAgICAgYXV0byYg
bGF5b3V0Qm94ID0gYm94QW5kUmVuZGVyZXIuYm94LmdldCgpOwogICAgICAgICBpZiAoIWxheW91
dEJveC5pc1JlcGxhY2VkQm94KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGlu
ZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uTGluZUxheW91dC5oCmluZGV4IGNiNzZiNTJmYWQxODNlN2M1ZjBkZjBiZTBkZjA4MzA2
YmYyMzcwZDAuLmE1NTgwYjAwZThiNGJiOWE2MWFkZTkzY2M3NGUzNTU1OGMxMTE3ZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkxpbmVMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJM
YXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
T2JqZWN0RW51bXMuaCIKLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9D
aGVja2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsNyArNTcsNyBAQCBu
YW1lc3BhY2UgTGF5b3V0SW50ZWdyYXRpb24gewogCiBzdHJ1Y3QgSW5saW5lQ29udGVudDsKIAot
Y2xhc3MgTGluZUxheW91dCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxMaW5lTGF5b3V0PiB7Citj
bGFzcyBMaW5lTGF5b3V0IDogcHVibGljIENhbk1ha2VDaGVja2VkUHRyIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBMaW5lTGF5b3V0KFJlbmRlckJsb2NrRmxv
dyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAK
aW5kZXggZmUwYWExMTE5Y2M3ZTI1MmI1YmI0ZjY1NDhiYTdlOGM3MTI3Y2I0Mi4uZDM2MjdlOTk1
ZDM0ZjYwZDQ4NGU3Nzk3MmIzNDM1NmE0MDgyMmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCkBAIC01MjQsNyArNTI0LDcgQEAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBCb3g6OmNvbHVtbldpZHRoKCkgY29uc3QKIHZvaWQgQm94Ojpz
ZXRDYWNoZWRHZW9tZXRyeUZvckxheW91dFN0YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwg
c3RkOjp1bmlxdWVfcHRyPEJveEdlb21ldHJ5PiBnZW9tZXRyeSkgY29uc3QKIHsKICAgICBBU1NF
UlQoIW1fY2FjaGVkTGF5b3V0U3RhdGUpOwotICAgIG1fY2FjaGVkTGF5b3V0U3RhdGUgPSBtYWtl
V2Vha1B0cihsYXlvdXRTdGF0ZSk7CisgICAgbV9jYWNoZWRMYXlvdXRTdGF0ZSA9ICZsYXlvdXRT
dGF0ZTsKICAgICBtX2NhY2hlZEdlb21ldHJ5Rm9yTGF5b3V0U3RhdGUgPSBXVEZNb3ZlKGdlb21l
dHJ5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3gu
aAppbmRleCBmOWQ2YmY1MTE4MmU2Mzc0MTBkNzg2NDhmOGY1NmU2N2UwNjcxYTIxLi5mM2MzNWYx
NjljZTQ4NTZiMTVkMDZlMzU5ODkyNGM2YjM2YWU3NmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVk
ZSAiTGF5b3V0VW5pdHMuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgPHd0
Zi9DaGVja2VkUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBJbml0aWFsQ29udGFpbmluZ0Jsb2NrOwogY2xhc3MgTGF5b3V0U3RhdGU7CiBjbGFzcyBU
cmVlQnVpbGRlcjsKIAotY2xhc3MgQm94IDogcHVibGljIENhbk1ha2VXZWFrUHRyPEJveD4gewor
Y2xhc3MgQm94IDogcHVibGljIENhbk1ha2VDaGVja2VkUHRyIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEJveCk7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBFbGVtZW50VHlwZSB7CkBA
IC0yMTUsNyArMjE1LDcgQEAgcHJpdmF0ZToKICAgICBCb3gqIG1fbmV4dFNpYmxpbmcgeyBudWxs
cHRyIH07CiAgICAgCiAgICAgLy8gRmlyc3QgTGF5b3V0U3RhdGUgZ2V0cyBhIGRpcmVjdCBjYWNo
ZS4KLSAgICBtdXRhYmxlIFdlYWtQdHI8TGF5b3V0U3RhdGU+IG1fY2FjaGVkTGF5b3V0U3RhdGU7
CisgICAgbXV0YWJsZSBDaGVja2VkUHRyPExheW91dFN0YXRlPiBtX2NhY2hlZExheW91dFN0YXRl
OwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPEJveEdlb21ldHJ5PiBtX2NhY2hlZEdlb21l
dHJ5Rm9yTGF5b3V0U3RhdGU7CiAKICAgICB1bnNpZ25lZCBtX2Jhc2VUeXBlRmxhZ3MgOiA2OyAv
LyBPcHRpb25TZXQ8QmFzZVR5cGVGbGFnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFJlcGxhY2VkQm94LmgKaW5kZXggOGUxZmQzOTRhODVkMWNhMDcy
NzExM2ZkMWJhZDY0YWYwMDU5OGY1YS4uNDVmZTQ3NmQ3ZjBjOGM0ZTdiODcwNTkyMDZmZjYzZjUw
ZDlhYmZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0UmVwbGFjZWRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRSZXBsYWNlZEJveC5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTGF5b3V0U2l6
ZS5oIgogI2luY2x1ZGUgIkxheW91dFVuaXQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIExheW91dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0VHJlZUJ1aWxkZXIuaAppbmRleCA1MjVjZTYzYmJkZTEzMmVhYzRjZjY4Y2NmZDg1OGYz
ZjI2NmM2YjU5Li5iY2JmNDQyZjY5OTYzNzdkNzAxYTc5NjU4MWU5NWQ1NWQ2Yjg3MGVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWls
ZGVyLmgKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439329</attachid>
            <date>2021-09-27 01:19:36 -0700</date>
            <delta_ts>2021-09-27 04:42:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230821-20210927111934.patch</filename>
            <type>text/plain</type>
            <size>39672</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyNTJiYjM1ZmNiMTExZDFkZjc3NTRj
NjVjYjRkZjBjZmJjNTEyMWEuLmJkOTQ2OWM0NzJlMTQ1NDU4NjUyZDRmNjQ5MTQwYzAyZTU0MWFk
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMjcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdIFVzZSBDaGVja2VkUmVmL1B0ciBpbnN0ZWFk
IG9mIFdlYWtQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDgyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL0NoZWNrZWRSZWYuaDoKKyAgICAgICAgKFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJC
YXNlOjppbmNyZW1lbnRQdHJDb3VudCBjb25zdCk6CisgICAgICAgIChXVEY6OkNhbk1ha2VDaGVj
a2VkUHRyQmFzZTo6ZGVjcmVtZW50UHRyQ291bnQgY29uc3QpOgorICAgICAgICAoV1RGOjpDYW5N
YWtlQ2hlY2tlZFB0ckJhc2U6OmluY3JlbWVudFB0ckNvdW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJCYXNlOjpkZWNyZW1lbnRQdHJDb3VudCk6IERlbGV0ZWQu
CisKKyAgICAgICAgTWFrZSBjb25zdCBzbyBDaGVja2VkUHRyPGNvbnN0IEZvbz4gd29ya3MuCisK
IDIwMjEtMDktMjYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgzMDgzIGFuZCByMjgzMDg4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDEzNjg2MjlhNDFjNGVmOGU4OTViMTliNWI1ZmU5YzdiYzA4MWQ4YjAuLjk1NWI5NTVh
OGRiYmUwZjU2MDA3Mjk2OWJmNWM1YjNlOWNlOTM2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAyMS0wOS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0xGQ10gVXNlIENoZWNrZWRSZWYvUHRyIGluc3RlYWQgb2YgV2Vha1B0cgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vha1B0ciBhcmUgdXNl
ZCBoZXJlIGZvciBzYWZldHkgb25seS4gUmVwbGFjZSB3aXRoIHNpbXBsZXIsIGZhc3RlciBDaGVj
a2VkUHRyLgorCisgICAgICAgICogZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheTo6VHJlZUJ1aWxkZXI6OmJ1aWxkKToKKyAgICAgICAgKiBs
YXlvdXQvRm9ybWF0dGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1h
dHRpbmdTdGF0ZTo6YWRkT3V0T2ZGbG93Qm94KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3Rh
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6TGF5b3V0U3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0
YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGluZ0NvbnRleHQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZW5zdXJlSW5s
aW5lRm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3RhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OnJvb3QgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6aGFzUm9vdCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaDoKKyAgICAgICAgKiBsYXlv
dXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpG
bG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW06OkZsb2F0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91dC9m
bG9hdHMvRmxvYXRpbmdTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGlu
Z1N0YXRlOjpyb290IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6OkZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0NvbnRlbnQpOgorICAgICAgICAq
IGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OnJvb3QgY29uc3QpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nU3RhdGUu
aDoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KToK
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMZXZlbEJv
eC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVMZXZlbEJveDo6bGF5b3V0Qm94
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGV2ZWxCb3g6OklubGlu
ZUxldmVsQm94KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lQm94Lmg6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVE
aXNwbGF5OjpCb3g6OmxheW91dEJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVE
aXNwbGF5OjpCb3g6OkJveCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90
YWJsZS9UYWJsZUdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUdyaWQ6
OkNvbHVtbjo6Q29sdW1uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpS
b3c6OlJvdyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6Q2VsbDo6Q2Vs
bCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpSb3c6OmJveCBjb25zdCk6
CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94VHJlZTo6YnVpbGRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hUcmVlOjphcHBl
bmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94VHJlZTo6
bGF5b3V0Qm94Rm9yUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OkJveFRyZWU6OnJlbmRlcmVyRm9yTGF5b3V0Qm94KToKKyAgICAgICAgKiBsYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmg6CisgICAgICAgICogbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudDo6SW5saW5lQ29udGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudDo6cmVu
ZGVyZXJGb3JMYXlvdXRCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OklubGluZUNvbnRlbnQ6OmNvbnRhaW5pbmdCbG9jayBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudDo6bGluZUxheW91dCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uSW5saW5lQ29udGVudC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OklubGluZUNvbnRlbnQ6OmxpbmVMYXlvdXQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNvbnN0cnVjdENvbnRlbnQpOgorICAg
ICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaDoK
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCb3g6OnNldENhY2hlZEdlb21ldHJ5Rm9yTGF5b3V0U3RhdGUgY29uc3Qp
OgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAqIGxh
eW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxhY2VkQm94Lmg6CisgICAgICAgICogbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaDoKKwogMjAyMS0wOS0yNiAgSmVhbi1ZdmVzIEF2
ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdIGFwcGVuZGluZyB0byB0aGUg
c291cmNlIGJ1ZmZlciB3aWxsIG5vdCB0aHJvdyB3aGVuIHRoZSBzb3VyY2UgYnVmZmVyIGlzIGZ1
bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkUmVmLmggYi9Tb3VyY2UvV1RG
L3d0Zi9DaGVja2VkUmVmLmgKaW5kZXggZDJiYzFjYWNlMzMyNGFhNDMzNDc5MGZmNjljYjc0NGZk
NzllZTIyYS4uOGIyMDNiNWEzY2VjZDY3MjI3YmM3YTVlYTk5NjU5OWQ4ZGJmYzgwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0No
ZWNrZWRSZWYuaApAQCAtMjMwLDExICsyMzAsMTEgQEAgcHVibGljOgogICAgIH5DYW5NYWtlQ2hl
Y2tlZFB0ckJhc2UoKSB7IFJFTEVBU0VfQVNTRVJUKCFtX2NvdW50KTsgfQogCiAgICAgUHRyQ291
bnRlclR5cGUgcHRyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NvdW50OyB9Ci0gICAgdm9pZCBp
bmNyZW1lbnRQdHJDb3VudCgpIHsgKyttX2NvdW50OyB9Ci0gICAgdm9pZCBkZWNyZW1lbnRQdHJD
b3VudCgpIHsgQVNTRVJUKG1fY291bnQpOyAtLW1fY291bnQ7IH0KKyAgICB2b2lkIGluY3JlbWVu
dFB0ckNvdW50KCkgY29uc3QgeyArK21fY291bnQ7IH0KKyAgICB2b2lkIGRlY3JlbWVudFB0ckNv
dW50KCkgY29uc3QgeyBBU1NFUlQobV9jb3VudCk7IC0tbV9jb3VudDsgfQogCiBwcml2YXRlOgot
ICAgIFN0b3JhZ2VUeXBlIG1fY291bnQgeyAwIH07CisgICAgbXV0YWJsZSBTdG9yYWdlVHlwZSBt
X2NvdW50IHsgMCB9OwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIEludGVncmFsVHlwZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcAppbmRleCBjN2Vm
ZDY4ZGRiOGQwYjMwNDZhOWY0NDllNjlmMGJhZWVkZWM3OTM4Li41ZDhhNTExOGMzMDc5YzE2Zjgx
MjVjZDMyNTM2MTgxMTg5YTI5OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5
L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNw
bGF5VHJlZUJ1aWxkZXIuY3BwCkBAIC0xMTksOCArMTE5LDYgQEAgVHJlZUJ1aWxkZXI6On5UcmVl
QnVpbGRlcigpID0gZGVmYXVsdDsKIAogc3RkOjp1bmlxdWVfcHRyPFRyZWU+IFRyZWVCdWlsZGVy
OjpidWlsZChjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKIHsKLSAgICBB
U1NFUlQobGF5b3V0U3RhdGUuaGFzUm9vdCgpKTsKLQogICAgIGF1dG8mIHJvb3RMYXlvdXRCb3gg
PSBsYXlvdXRTdGF0ZS5yb290KCk7CiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggNWNlMGQzYmIxNWU3NzE3YWQw
YzZiOWJjZDM1ODIwYWQ0MGFjN2NlNi4uMDI0NDAwODRmNTNiMjVjZmZjMzI2ZmUzOWJhNTE3OTJj
NzU3NjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaApAQCAtMzAs
NyArMzAsNiBAQAogI2luY2x1ZGUgIkZvcm1hdHRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5
b3V0U3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CkBAIC02
NSw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBmaW5kIGEgd2F5
IHRvIGxpbWl0IGFjY2VzcyB0byBtdXRhdGFibGUgZ2VvbWV0cnkuCiAgICAgQm94R2VvbWV0cnkm
IGJveEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94KTsKICAgICAvLyBTaW5jZSB3ZSBsYXlv
dXQgdGhlIG91dC1vZi1mbG93IGJveGVzIGF0IHRoZSBlbmQgb2YgdGhlIGZvcm1hdHRpbmcgY29u
dGV4dCBsYXlvdXQsIGl0J3Mgb2theSB0byBzdG9yZSB0aGVtIGluIHRoZSBmb3JtYXR0aW5nIHN0
YXRlIC1hcyBvcHBvc2VkIHRvIHRoZSBjb250YWluaW5nIGJsb2NrIGxldmVsLgotICAgIHVzaW5n
IE91dE9mRmxvd0JveExpc3QgPSBWZWN0b3I8V2Vha1B0cjxjb25zdCBCb3g+PjsKLSAgICB2b2lk
IGFkZE91dE9mRmxvd0JveChjb25zdCBCb3gmIG91dE9mRmxvd0JveCkgeyBtX291dE9mRmxvd0Jv
eGVzLmFwcGVuZChtYWtlV2Vha1B0cihvdXRPZkZsb3dCb3gpKTsgfQorICAgIHVzaW5nIE91dE9m
Rmxvd0JveExpc3QgPSBWZWN0b3I8Q2hlY2tlZFJlZjxjb25zdCBCb3g+PjsKKyAgICB2b2lkIGFk
ZE91dE9mRmxvd0JveChjb25zdCBCb3gmIG91dE9mRmxvd0JveCkgeyBtX291dE9mRmxvd0JveGVz
LmFwcGVuZChvdXRPZkZsb3dCb3gpOyB9CiAgICAgdm9pZCByZW1vdmVPdXRPZkZsb3dCb3goY29u
c3QgQm94Jik7CiAgICAgY29uc3QgT3V0T2ZGbG93Qm94TGlzdCYgb3V0T2ZGbG93Qm94ZXMoKSBj
b25zdCB7IHJldHVybiBtX291dE9mRmxvd0JveGVzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0U3RhdGUuY3BwCmluZGV4IDBkMDIxZjQ0NWQ1MTViYWU5MjM4N2JhYTg0NWY4MzkxZjI1ZGQw
YmUuLjk2YmQxN2ZhMDE0ODZhNTZmMWU1YmQ5YmZkZTc3YWE4YTdkY2U5NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgTGF5
b3V0IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChMYXlvdXRTdGF0ZSk7CiAKIExheW91
dFN0YXRlOjpMYXlvdXRTdGF0ZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IENvbnRh
aW5lckJveCYgcm9vdENvbnRhaW5lcikKLSAgICA6IG1fcm9vdENvbnRhaW5lcihtYWtlV2Vha1B0
cihyb290Q29udGFpbmVyKSkKKyAgICA6IG1fcm9vdENvbnRhaW5lcihyb290Q29udGFpbmVyKQog
ewogICAgIC8vIEl0IG1ha2VzIGFic29sdXRlbHkgbm8gc2Vuc2UgdG8gY29uc3RydWN0IGEgZGVk
aWNhdGVkIGxheW91dCBzdGF0ZSBmb3IgYSBub24tZm9ybWF0dGluZyBjb250ZXh0IHJvb3QgKGxh
eW91dCB3b3VsZCBiZSBhIG5vLW9wKS4KICAgICBBU1NFUlQocm9vdCgpLmVzdGFibGlzaGVzRm9y
bWF0dGluZ0NvbnRleHQoKSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgRm9ybWF0dGluZ1N0YXRlJiBM
YXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29u
dGFpbmUKIHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzRm9y
bWF0dGluZ0NvbnRleHQoKSk7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkg
ewotICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWlu
ZXIuZ2V0KCkpOworICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jv
b3RDb250YWluZXIucHRyKCkpOwogICAgICAgICByZXR1cm4gKm1fcm9vdElubGluZUZvcm1hdHRp
bmdTdGF0ZUZvckludGVncmF0aW9uOwogICAgIH0KIApAQCAtMTI1LDcgKzEyNSw3IEBAIElubGlu
ZUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZv
cm1hdHRpbmdDb250ZXh0KGNvCiAgICAgQVNTRVJUKGlubGluZUZvcm1hdHRpbmdDb250ZXh0Um9v
dC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpOwogCiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRl
eHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICBBU1NFUlQoJmlubGluZUZvcm1hdHRp
bmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWluZXIuZ2V0KCkpOworICAgICAgICBBU1NFUlQo
JmlubGluZUZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWluZXIucHRyKCkpOwog
ICAgICAgICByZXR1cm4gKm1fcm9vdElubGluZUZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9u
OwogICAgIH0KIApAQCAtMTcxLDcgKzE3MSw3IEBAIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgTGF5
b3V0U3RhdGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCCiAK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRG
b3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICghbV9y
b290SW5saW5lRm9ybWF0dGluZ1N0YXRlRm9ySW50ZWdyYXRpb24pIHsKLSAgICAgICAgICAgIEFT
U0VSVCgmZm9ybWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9vdENvbnRhaW5lci5nZXQoKSk7Cisg
ICAgICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWlu
ZXIucHRyKCkpOwogICAgICAgICAgICAgbV9yb290SW5saW5lRm9ybWF0dGluZ1N0YXRlRm9ySW50
ZWdyYXRpb24gPSBjcmVhdGUoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gKm1fcm9vdElu
bGluZUZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0
U3RhdGUuaAppbmRleCA1MTRiZDk2MDA0MzAwYmIyMjEzYThjZTAxMmQ0ZDA0ZTJkNzYzZGM0Li4z
NWU2YWYwYzczM2FiNTI5ZmFjMmRiMTUwMjhhNTFkYWQwNmEzNjQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0U3RhdGUuaApAQCAtMjgsMTAgKzI4LDEwIEBACiAjaWYgRU5BQkxFKExBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQpCiAKICNpbmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKKyNp
bmNsdWRlIDx3dGYvQ2hlY2tlZFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NSw3ICs0NSw3
IEBAIGNsYXNzIEJveEdlb21ldHJ5OwogY2xhc3MgSW5saW5lRm9ybWF0dGluZ1N0YXRlOwogY2xh
c3MgVGFibGVGb3JtYXR0aW5nU3RhdGU7CiAKLWNsYXNzIExheW91dFN0YXRlIDogcHVibGljIENh
bk1ha2VXZWFrUHRyPExheW91dFN0YXRlPiB7CitjbGFzcyBMYXlvdXRTdGF0ZSA6IHB1YmxpYyBD
YW5NYWtlQ2hlY2tlZFB0ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF5b3V0U3RhdGUp
OwogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTGF5b3V0U3RhdGUpOwogcHVibGljOgpAQCAt
ODQsOCArODQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbkxpbWl0ZWRRdWlya3NNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9xdWlya3NNb2RlID09IFF1aXJrc01vZGU6OkxpbWl0ZWQ7IH0KICAgICBi
b29sIGluU3RhbmRhcmRzTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVpcmtzTW9kZSA9PSBRdWly
a3NNb2RlOjpObzsgfQogCi0gICAgYm9vbCBoYXNSb290KCkgY29uc3QgeyByZXR1cm4gISFtX3Jv
b3RDb250YWluZXI7IH0KLSAgICBjb25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7IHJl
dHVybiAqbV9yb290Q29udGFpbmVyOyB9CisgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkg
Y29uc3QgeyByZXR1cm4gbV9yb290Q29udGFpbmVyOyB9CiAKICAgICAvLyBMRkMgaW50ZWdyYXRp
b24gb25seS4gRnVsbCBMRkMgaGFzIHByb3BlciBJQ0IgYWNjZXNzLgogICAgIHZvaWQgc2V0Vmll
d3BvcnRTaXplKGNvbnN0IExheW91dFNpemUmKTsKQEAgLTExMyw3ICsxMTIsNyBAQCBwcml2YXRl
OgogICAgIEhhc2hNYXA8Y29uc3QgQm94Kiwgc3RkOjp1bmlxdWVfcHRyPEJveEdlb21ldHJ5Pj4g
bV9sYXlvdXRCb3hUb0JveEdlb21ldHJ5OwogICAgIFF1aXJrc01vZGUgbV9xdWlya3NNb2RlIHsg
UXVpcmtzTW9kZTo6Tm8gfTsKIAotICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jv
b3RDb250YWluZXI7CisgICAgQ2hlY2tlZFJlZjxjb25zdCBDb250YWluZXJCb3g+IG1fcm9vdENv
bnRhaW5lcjsKIAogICAgIC8vIExGQyBpbnRlZ3JhdGlvbiBvbmx5LgogICAgIExheW91dFNpemUg
bV92aWV3cG9ydFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRz
L0Zsb2F0QXZvaWRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lk
ZXIuaAppbmRleCA3YTZhYWUwMGJjNGQzNDFmMTQxNDI1M2JlZTQ3ODJiODlmZWI2ZmI3Li5kYzky
NGU4YmM2MjEwZDg1YzE1MWUwNjkzNjkxM2Q1YWRkN2FmYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRl
ICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGlu
Z1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5j
cHAKaW5kZXggYjliY2RhMDA2ZDcxYzVlZmIzN2JjYzJlYTA3MjI5OTMzYzQyYjhhMS4uNjRmZGY5
MzhmMjU1MGY2NTQzN2Q0NDIzN2UxZTQzZTZmNDFkNWZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVz
cGFjZSBMYXlvdXQgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZsb2F0aW5nU3RhdGUp
OwogCiBGbG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW06OkZsb2F0SXRlbShjb25zdCBCb3gmIGxheW91
dEJveCwgQm94R2VvbWV0cnkgYWJzb2x1dGVCb3hHZW9tZXRyeSkKLSAgICA6IG1fbGF5b3V0Qm94
KG1ha2VXZWFrUHRyKGxheW91dEJveCkpCisgICAgOiBtX2xheW91dEJveChsYXlvdXRCb3gpCiAg
ICAgLCBtX3Bvc2l0aW9uKGxheW91dEJveC5pc0xlZnRGbG9hdGluZ1Bvc2l0aW9uZWQoKSA/IFBv
c2l0aW9uOjpMZWZ0IDogUG9zaXRpb246OlJpZ2h0KQogICAgICwgbV9hYnNvbHV0ZUJveEdlb21l
dHJ5KGFic29sdXRlQm94R2VvbWV0cnkpCiB7CkBAIC01NSw3ICs1NSw3IEBAIEZsb2F0aW5nU3Rh
dGU6OkZsb2F0SXRlbTo6RmxvYXRJdGVtKFBvc2l0aW9uIHBvc2l0aW9uLCBCb3hHZW9tZXRyeSBh
YnNvbHV0ZUJveEdlCiAKIEZsb2F0aW5nU3RhdGU6OkZsb2F0aW5nU3RhdGUoTGF5b3V0U3RhdGUm
IGxheW91dFN0YXRlLCBjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkK
ICAgICA6IG1fbGF5b3V0U3RhdGUobGF5b3V0U3RhdGUpCi0gICAgLCBtX2Zvcm1hdHRpbmdDb250
ZXh0Um9vdChtYWtlV2Vha1B0cihmb3JtYXR0aW5nQ29udGV4dFJvb3QpKQorICAgICwgbV9mb3Jt
YXR0aW5nQ29udGV4dFJvb3QoZm9ybWF0dGluZ0NvbnRleHRSb290KQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5oCmluZGV4IGI1YzZmZTEzZjRh
ZTIwYjczNTZhMDczOTY1ZWY3MmM1OGNhZGUyZTAuLjY3MzdjZGFiM2Q5ZWU2NDFjM2FmNzAwOWQ3
NmQ1MzVmOWE0NzY5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMv
RmxvYXRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRp
bmdTdGF0ZS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyQm94
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDcg
KzQ4LDcgQEAgY2xhc3MgRmxvYXRpbmdTdGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZsb2F0aW5n
U3RhdGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEZsb2F0aW5nU3RhdGU+IGNyZWF0ZShM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEZsb2F0aW5nU3RhdGUobGF5b3V0U3Rh
dGUsIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkpOyB9CiAKLSAgICBjb25zdCBDb250YWluZXJCb3gm
IHJvb3QoKSBjb25zdCB7IHJldHVybiAqbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7IH0KKyAgICBj
b25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250
ZXh0Um9vdDsgfQogCiAgICAgY2xhc3MgRmxvYXRJdGVtIHsKICAgICBwdWJsaWM6CkBAIC03MCw3
ICs2OSw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgQm94KiBmbG9hdEJveCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGF5b3V0Qm94LmdldCgpOyB9CiAjZW5kaWYKICAgICBwcml2YXRlOgotICAgICAg
ICBXZWFrUHRyPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNrZWRQdHI8Y29u
c3QgQm94PiBtX2xheW91dEJveDsKICAgICAgICAgUG9zaXRpb24gbV9wb3NpdGlvbjsKICAgICAg
ICAgQm94R2VvbWV0cnkgbV9hYnNvbHV0ZUJveEdlb21ldHJ5OwogICAgIH07CkBAIC04Nyw3ICs4
Niw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXlvdXRTdGF0ZTsgfQogCiAgICAgTGF5b3V0U3RhdGUmIG1fbGF5b3V0U3RhdGU7
Ci0gICAgV2Vha1B0cjxjb25zdCBDb250YWluZXJCb3g+IG1fZm9ybWF0dGluZ0NvbnRleHRSb290
OworICAgIENoZWNrZWRSZWY8Y29uc3QgQ29udGFpbmVyQm94PiBtX2Zvcm1hdHRpbmdDb250ZXh0
Um9vdDsKICAgICBGbG9hdExpc3QgbV9mbG9hdHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCmluZGV4IDlkYTNiNTNhMmZhYzU4MjgwNTA2NDk0MDZjMjA1MWI3NjFjMjJjYzguLmYx
MDQyMTQ0OTUxNDExNDQ5OGFkYjI5OTNhN2JlYzczMWM1ZDNjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZvcm1hdHRpbmdDb250ZXh0KTsKIAogRm9ybWF0dGluZ0Nv
bnRleHQ6OkZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290LCBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSkKLSAgICA6IG1fcm9v
dChtYWtlV2Vha1B0cihmb3JtYXR0aW5nQ29udGV4dFJvb3QpKQorICAgIDogbV9yb290KGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkKICAgICAsIG1fZm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdTdGF0
ZSkKIHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290Lmhhc0NoaWxkKCkpOwpAQCAt
MTQxLDI3ICsxNDEsMjcgQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93
Q29udGVudChjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnQKICAgICBjb2xsZWN0T3V0
T2ZGbG93RGVzY2VuZGFudHNJZk5lZWRlZCgpOwogCiAgICAgYXV0byBjb25zdHJhaW50c0Zvckxh
eW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgb3V0T2ZGbG93Qm94KSB7Ci0gICAgICAgIGF1dG8m
IGNvbnRhaW5pbmdCbG9jayA9IG91dE9mRmxvd0JveC5jb250YWluaW5nQmxvY2soKTsKKyAgICAg
ICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gb3V0T2ZGbG93Qm94LT5jb250YWluaW5nQmxvY2so
KTsKICAgICAgICAgcmV0dXJuICZjb250YWluaW5nQmxvY2sgPT0gJnJvb3QoKSA/IGNvbnN0cmFp
bnRzIDogZm9ybWF0dGluZ0dlb21ldHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50
KGNvbnRhaW5pbmdCbG9jayk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94
IDogZm9ybWF0dGluZ1N0YXRlKCkub3V0T2ZGbG93Qm94ZXMoKSkgewogICAgICAgICBBU1NFUlQo
b3V0T2ZGbG93Qm94LT5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgICAgICBh
dXRvIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzID0gY29uc3RyYWludHNGb3JMYXlvdXRCb3go
Km91dE9mRmxvd0JveCk7CisgICAgICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrQ29uc3RyYWludHMg
PSBjb25zdHJhaW50c0ZvckxheW91dEJveChvdXRPZkZsb3dCb3gpOwogICAgICAgICBhdXRvIGhv
cml6b250YWxDb25zdHJhaW50c0ZvckJvcmRlckFuZFBhZGRpbmcgPSBIb3Jpem9udGFsQ29uc3Ry
YWludHMgeyBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cy5ob3Jpem9udGFsLmxvZ2ljYWxMZWZ0
LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cy5ib3JkZXJBbmRQYWRkaW5nQ29uc3RyYWludHMg
fTsKLSAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoKm91dE9mRmxvd0JveCwgaG9yaXpv
bnRhbENvbnN0cmFpbnRzRm9yQm9yZGVyQW5kUGFkZGluZyk7CisgICAgICAgIGNvbXB1dGVCb3Jk
ZXJBbmRQYWRkaW5nKG91dE9mRmxvd0JveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQm9yZGVy
QW5kUGFkZGluZyk7CiAKLSAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRy
eSgqb3V0T2ZGbG93Qm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyk7Ci0gICAgICAgIGF1
dG8gb3V0T2ZGbG93Qm94SGFzQ29udGVudCA9IGlzPENvbnRhaW5lckJveD4oKm91dE9mRmxvd0Jv
eCkgJiYgZG93bmNhc3Q8Q29udGFpbmVyQm94Pigqb3V0T2ZGbG93Qm94KS5oYXNDaGlsZCgpOwor
ICAgICAgICBjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KG91dE9mRmxvd0JveCwg
Y29udGFpbmluZ0Jsb2NrQ29uc3RyYWludHMpOworICAgICAgICBhdXRvIG91dE9mRmxvd0JveEhh
c0NvbnRlbnQgPSBpczxDb250YWluZXJCb3g+KG91dE9mRmxvd0JveC5nZXQoKSkgJiYgZG93bmNh
c3Q8Q29udGFpbmVyQm94PihvdXRPZkZsb3dCb3guZ2V0KCkpLmhhc0NoaWxkKCk7CiAgICAgICAg
IGlmIChvdXRPZkZsb3dCb3hIYXNDb250ZW50KSB7Ci0gICAgICAgICAgICBhdXRvJiBjb250YWlu
ZXJCb3ggPSBkb3duY2FzdDxDb250YWluZXJCb3g+KCpvdXRPZkZsb3dCb3gpOworICAgICAgICAg
ICAgYXV0byYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFpbmVyQm94PihvdXRPZkZsb3dC
b3guZ2V0KCkpOwogICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENv
bnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUo
KSk7CiAgICAgICAgICAgICBpZiAoY29udGFpbmVyQm94Lmhhc0luRmxvd09yRmxvYXRpbmdDaGls
ZCgpKQogICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dDb250
ZW50KGZvcm1hdHRpbmdHZW9tZXRyeSgpLmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChjb250
YWluZXJCb3gpKTsKICAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5
KGNvbnRhaW5lckJveCwgY29udGFpbmluZ0Jsb2NrQ29uc3RyYWludHMpOwogICAgICAgICAgICAg
Zm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoZm9ybWF0dGluZ0dlb21l
dHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnRhaW5lckJveCkpOwogICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5
KCpvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAg
IGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KG91dE9mRmxvd0JveCwgY29udGFpbmlu
Z0Jsb2NrQ29uc3RyYWludHMpOwogICAgIH0KICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGlu
Z0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiRW5kOiBsYXlvdXQgb3V0LW9mLWZsb3cgY29udGVu
dCAtPiBjb250ZXh0OiAiIDw8ICZsYXlvdXRTdGF0ZSgpIDw8ICIgcm9vdDogIiA8PCAmcm9vdCgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCA0NjUyY2FiMzQwMGE5YzdkNjQzZWNh
ZmY0ZDJlOWFlNWM4ZWEwY2RmLi4yMjZjNjQ0Zjg0NmFkNDA1NWFhYzUxMmI1ZmM5ZTg0Y2FlMzU2
MWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVk
ZSAiTGF5b3V0VW5pdC5oIgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjIsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbnRyaW5zaWNX
aWR0aENvbnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpID0gMDsK
ICAgICB2aXJ0dWFsIExheW91dFVuaXQgdXNlZENvbnRlbnRIZWlnaHQoKSBjb25zdCA9IDA7CiAK
LSAgICBjb25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7IHJldHVybiAqbV9yb290OyB9
CisgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4gbV9yb290OyB9
CiAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3Q7CiAgICAgY29uc3QgRm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdT
dGF0ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgRm9ybWF0dGluZ0dlb21ldHJ5JiBmb3JtYXR0aW5n
R2VvbWV0cnkoKSBjb25zdCA9IDA7CkBAIC0xMDEsNyArMTAwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNvbnN0IENv
bnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCYpOwogICAgIHZvaWQgY29tcHV0ZU91dE9mRmxv
d0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9m
Rmxvd0NvbnRlbnQmKTsKIAotICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jvb3Q7
CisgICAgQ2hlY2tlZFJlZjxjb25zdCBDb250YWluZXJCb3g+IG1fcm9vdDsKICAgICBGb3JtYXR0
aW5nU3RhdGUmIG1fZm9ybWF0dGluZ1N0YXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdTdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IDFlNmNkNjE5ZGQzMTZmNTliM2Y0MDliZjM1ZDcwOTZk
OWZiN2M4YjEuLjFkYzY3ODgyNmQxZGY5ODg5N2Y0NjBjOGQ4MjE5YzRhOTg4NjY1MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxv
Y2tGb3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKQEAgLTI4LDggKzI4LDggQEAK
ICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2luY2x1ZGUgIkZvcm1h
dHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKQEAgLTQxLDE3ICs0MSwxNyBAQCBwdWJsaWM6CiAg
ICAgQmxvY2tGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYsIExheW91dFN0YXRl
Jik7CiAgICAgfkJsb2NrRm9ybWF0dGluZ1N0YXRlKCk7CiAKLSAgICB2b2lkIHNldFVzZWRWZXJ0
aWNhbE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZFZlcnRpY2FsTWFyZ2lu
JiB1c2VkVmVydGljYWxNYXJnaW4pIHsgbV91c2VkVmVydGljYWxNYXJnaW5zLnNldCgmbGF5b3V0
Qm94LCB1c2VkVmVydGljYWxNYXJnaW4pOyB9Ci0gICAgVXNlZFZlcnRpY2FsTWFyZ2luIHVzZWRW
ZXJ0aWNhbE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2Vk
VmVydGljYWxNYXJnaW5zLmdldCgmbGF5b3V0Qm94KTsgfQotICAgIGJvb2wgaGFzVXNlZFZlcnRp
Y2FsTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX3VzZWRWZXJ0
aWNhbE1hcmdpbnMuY29udGFpbnMoJmxheW91dEJveCk7IH0KKyAgICB2b2lkIHNldFVzZWRWZXJ0
aWNhbE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZFZlcnRpY2FsTWFyZ2lu
JiB1c2VkVmVydGljYWxNYXJnaW4pIHsgbV91c2VkVmVydGljYWxNYXJnaW5zLnNldChsYXlvdXRC
b3gsIHVzZWRWZXJ0aWNhbE1hcmdpbik7IH0KKyAgICBVc2VkVmVydGljYWxNYXJnaW4gdXNlZFZl
cnRpY2FsTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX3VzZWRW
ZXJ0aWNhbE1hcmdpbnMuZ2V0KGxheW91dEJveCk7IH0KKyAgICBib29sIGhhc1VzZWRWZXJ0aWNh
bE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2VkVmVydGlj
YWxNYXJnaW5zLmNvbnRhaW5zKGxheW91dEJveCk7IH0KIAogICAgIHZvaWQgc2V0SGFzQ2xlYXJh
bmNlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSB7IG1fY2xlYXJhbmNlU2V0LmFkZChsYXlvdXRCb3gp
OyB9CiAgICAgdm9pZCBjbGVhckhhc0NsZWFyYW5jZShjb25zdCBCb3gmIGxheW91dEJveCkgeyBt
X2NsZWFyYW5jZVNldC5yZW1vdmUobGF5b3V0Qm94KTsgfQogICAgIGJvb2wgaGFzQ2xlYXJhbmNl
KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX2NsZWFyYW5jZVNldC5jb250
YWlucyhsYXlvdXRCb3gpOyB9CiAKIHByaXZhdGU6Ci0gICAgSGFzaE1hcDxjb25zdCBCb3gqLCBV
c2VkVmVydGljYWxNYXJnaW4+IG1fdXNlZFZlcnRpY2FsTWFyZ2luczsKLSAgICBXZWFrSGFzaFNl
dDxjb25zdCBCb3g+IG1fY2xlYXJhbmNlU2V0OworICAgIEhhc2hNYXA8Q2hlY2tlZFJlZjxjb25z
dCBCb3g+LCBVc2VkVmVydGljYWxNYXJnaW4+IG1fdXNlZFZlcnRpY2FsTWFyZ2luczsKKyAgICBI
YXNoU2V0PENoZWNrZWRSZWY8Y29uc3QgQm94Pj4gbV9jbGVhcmFuY2VTZXQ7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXgg
ZDBhN2JiY2ViZDBlOWQ5MTUxMzE1Y2QyMTI0ZmRjMDkyZmI2N2I1NC4uOGIyYmE3ZDFlYjZmZDVl
Y2VhMWYyOTZmOGY2ZjM4ODVjYjdjOTczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjcwLDcgKzI3MCw3IEBAIHZvaWQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNQb3NpdGlvbkZvck91dE9mRmxvd0NvbnRl
bnQoY29uc3QgRm9yCiAgICAgYXV0byYgYm94ZXMgPSBmb3JtYXR0aW5nU3RhdGUuYm94ZXMoKTsK
IAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDogb3V0T2ZGbG93Qm94ZXMpIHsKLSAgICAg
ICAgYXV0byYgb3V0T2ZGbG93R2VvbWV0cnkgPSBmb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnko
Km91dE9mRmxvd0JveCk7CisgICAgICAgIGF1dG8mIG91dE9mRmxvd0dlb21ldHJ5ID0gZm9ybWF0
dGluZ1N0YXRlLmJveEdlb21ldHJ5KG91dE9mRmxvd0JveCk7CiAgICAgICAgIC8vIEJvdGggcHJl
dmlvdXMgZmxvYXQgYW5kIG91dC1vZi1mbG93IGJveGVzIGFyZSBza2lwcGVkIGhlcmUuIEEgc2Vy
aWVzIG9mIGFkam9pbmluZyBvdXQtb2YtZmxvdyBib3hlcyBzaG91bGQgYWxsIGJlIHBsYWNlZAog
ICAgICAgICAvLyBhdCB0aGUgc2FtZSBzdGF0aWMgcG9zaXRpb24gKHRoZXkgZG9uJ3QgYWZmZWN0
IG5leHQtc2libGluZyBwb3NpdGlvbnMpIGFuZCB3aGlsZSBmbG9hdHMgZG8gcGFydGljaXBhdGUg
aW4gdGhlIGlubGluZSBsYXlvdXQKICAgICAgICAgLy8gdGhlaXIgcG9zaXRpb25zIGhhdmUgYWxy
ZWFkeSBiZWVuIHRha2VuIGludG8gYWNjb3VudCBkdXJpbmcgdGhlIGlubGluZSBsYXlvdXQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMZXZlbEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaAppbmRleCBlMjA0NTAzNDQ3NjdjZTI3M2I1Zjk5
OGJmMmRmNzBiNmNkMTA0MzRmLi4yZWE5YTVlYTUxODZmMzIzYjhlNjU3MDRlOGJlZjhhMDU3YzJi
NzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMZXZlbEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxldmVsQm94LmgKQEAgLTMxLDcgKzMxLDYgQEAK
ICNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVk
ZSAiTGF5b3V0VW5pdHMuaCIKLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKQEAgLTkwLDcgKzg5LDcgQEAgcHVibGljOgog
ICAgIH07CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKLSAgICBj
b25zdCBCb3gmIGxheW91dEJveCgpIGNvbnN0IHsgcmV0dXJuICptX2xheW91dEJveDsgfQorICAg
IGNvbnN0IEJveCYgbGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRCb3g7IH0KIAog
ICAgIElubGluZUxldmVsQm94KGNvbnN0IEJveCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSwgVHlwZSk7CiAKQEAgLTEx
NSw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0TGF5b3V0Qm91bmRzKGNvbnN0IExh
eW91dEJvdW5kcyYgbGF5b3V0Qm91bmRzKSB7IG1fbGF5b3V0Qm91bmRzID0geyBJbmxpbmVMYXlv
dXRVbml0KHJvdW5kVG9JbnQobGF5b3V0Qm91bmRzLmFzY2VudCkpLCBJbmxpbmVMYXlvdXRVbml0
KHJvdW5kVG9JbnQobGF5b3V0Qm91bmRzLmRlc2NlbnQpKSB9OyB9CiAKIHByaXZhdGU6Ci0gICAg
V2Vha1B0cjxjb25zdCBCb3g+IG1fbGF5b3V0Qm94OworICAgIENoZWNrZWRSZWY8Y29uc3QgQm94
PiBtX2xheW91dEJveDsKICAgICAvLyBUaGlzIGlzIHRoZSBjb21iaW5hdGlvbiBvZiBtYXJnaW4g
YW5kIGJvcmRlciBib3hlcy4gSW5saW5lIGxldmVsIGJveGVzIGFyZSB2ZXJ0aWNhbGx5IGFsaWdu
ZWQgdXNpbmcgdGhlaXIgbWFyZ2luIGJveGVzLgogICAgIElubGluZVJlY3QgbV9sb2dpY2FsUmVj
dDsKICAgICBMYXlvdXRCb3VuZHMgbV9sYXlvdXRCb3VuZHM7CkBAIC0xMzQsNyArMTMzLDcgQEAg
cHJpdmF0ZToKIH07CiAKIGlubGluZSBJbmxpbmVMZXZlbEJveDo6SW5saW5lTGV2ZWxCb3goY29u
c3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0U2l6ZSBsb2dpY2FsU2l6ZSwgVHlwZSB0eXBl
KQotICAgIDogbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKKyAgICA6IG1fbGF5
b3V0Qm94KGxheW91dEJveCkKICAgICAsIG1fbG9naWNhbFJlY3QoeyB9LCBsb2dpY2FsTGVmdCwg
bG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNhbFNpemUuaGVpZ2h0KCkpCiAgICAgLCBtX3R5cGUo
dHlwZSkKICAgICAsIG1fc3R5bGUoeyBzdHlsZS5mb250Q2FzY2FkZSgpLnByaW1hcnlGb250KCku
Zm9udE1ldHJpY3MoKSwgc3R5bGUubGluZUhlaWdodCgpLCBJbmxpbmVMYXlvdXRVbml0KHN0eWxl
LmZvbnRDYXNjYWRlKCkuZm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRQaXhlbFNpemUoKSksIHsg
fSB9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5oCmluZGV4IGI2ZDgwNmYzOTVjYTI0NTE5
MGQ1NDA5ODEwOTdhYTdlODM2MjZiZTMuLjk0YTNjZmEyODM5Y2QxNTdmMmNiODNiMjVkMjBkMWJj
MWU3MzMxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94LmgKQEAgLTMyLDcgKzMyLDYg
QEAKICNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5
L0lubGluZURpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oCmluZGV4IDcwNTZlOTdjNzI0
YWViZTYwYjAzZTgyMTVjNTNjNmIzYzkwYWRjZDAuLmZjY2U1ODZiMWM1OWM3N2ViYjkzODNlZWU1
ZTBjZmZlMGRjODhkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5l
RGlzcGxheUJveC5oCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RydWN0IEJveCB7CiAgICAgfTsKICAg
ICBFeHBhbnNpb24gZXhwYW5zaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbnNpb247IH0KIAot
ICAgIGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3goKSBjb25zdCB7IHJldHVybiAqbV9sYXlv
dXRCb3g7IH0KKyAgICBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94KCkgY29uc3QgeyByZXR1
cm4gbV9sYXlvdXRCb3g7IH0KICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUoKSBjb25zdCB7
IHJldHVybiBtX3N0eWxlOyB9CiAKICAgICBzaXplX3QgbGluZUluZGV4KCkgY29uc3QgeyByZXR1
cm4gbV9saW5lSW5kZXg7IH0KQEAgLTExNSw3ICsxMTUsNyBAQCBzdHJ1Y3QgQm94IHsKIHByaXZh
dGU6CiAgICAgY29uc3Qgc2l6ZV90IG1fbGluZUluZGV4IHsgMCB9OwogICAgIGNvbnN0IFR5cGUg
bV90eXBlIHsgVHlwZTo6R2VuZXJpY0lubGluZUxldmVsQm94IH07Ci0gICAgV2Vha1B0cjxjb25z
dCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRCb3g7CisgICAgQ2hlY2tlZFJlZjxjb25zdCBMYXlvdXQ6
OkJveD4gbV9sYXlvdXRCb3g7CiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIG1fc3R5bGU7CiAgICAg
TGF5b3V0OjpJbmxpbmVSZWN0IG1fbG9naWNhbFJlY3Q7CiAgICAgTGF5b3V0OjpJbmxpbmVSZWN0
IG1faW5rT3ZlcmZsb3c7CkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKIGlubGluZSBCb3g6
OkJveChzaXplX3QgbGluZUluZGV4LCBUeXBlIHR5cGUsIGNvbnN0IExheW91dDo6Qm94JiBsYXlv
dXRCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0
JiBsb2dpY2FsUmVjdCwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgRXhw
YW5zaW9uIGV4cGFuc2lvbiwgc3RkOjpvcHRpb25hbDxUZXh0PiB0ZXh0LCBib29sIGhhc0NvbnRl
bnQpCiAgICAgOiBtX2xpbmVJbmRleChsaW5lSW5kZXgpCiAgICAgLCBtX3R5cGUodHlwZSkKLSAg
ICAsIG1fbGF5b3V0Qm94KG1ha2VXZWFrUHRyKGxheW91dEJveCkpCisgICAgLCBtX2xheW91dEJv
eChsYXlvdXRCb3gpCiAgICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwgbV9sb2dpY2FsUmVjdChs
b2dpY2FsUmVjdCkKICAgICAsIG1faW5rT3ZlcmZsb3coaW5rT3ZlcmZsb3cpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3Jp
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1Rh
YmxlR3JpZC5jcHAKaW5kZXggNDBkMzI0M2Y2YjRjNjZhM2EyZmQ2ZGEzOTU2MWUzODkyMDc0ZWE5
Mi4uYmY0MzMxOGMxOGI1YzNkNjA0YTQwY2FhYWE2Zjg2ZDQ0YWVhYTJlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUv
VGFibGVHcmlkLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChUYWJsZUdyaWQpOwogCiBUYWJsZUdyaWQ6OkNvbHVtbjo6
Q29sdW1uKGNvbnN0IENvbnRhaW5lckJveCogY29sdW1uQm94KQotICAgIDogbV9sYXlvdXRCb3go
bWFrZVdlYWtQdHIoY29sdW1uQm94KSkKKyAgICA6IG1fbGF5b3V0Qm94KGNvbHVtbkJveCkKIHsK
IH0KIApAQCAtNTYsMTIgKzU2LDEyIEBAIHZvaWQgVGFibGVHcmlkOjpSb3dzOjphZGRSb3coY29u
c3QgQ29udGFpbmVyQm94JiByb3dCb3gpCiB9CiAKIFRhYmxlR3JpZDo6Um93OjpSb3coY29uc3Qg
Q29udGFpbmVyQm94JiByb3dCb3gpCi0gICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0cihyb3dC
b3gpKQorICAgIDogbV9sYXlvdXRCb3gocm93Qm94KQogewogfQogCiBUYWJsZUdyaWQ6OkNlbGw6
OkNlbGwoY29uc3QgQ29udGFpbmVyQm94JiBjZWxsQm94LCBTbG90UG9zaXRpb24gcG9zaXRpb24s
IENlbGxTcGFuIHNwYW4pCi0gICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0cihjZWxsQm94KSkK
KyAgICA6IG1fbGF5b3V0Qm94KGNlbGxCb3gpCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQog
ICAgICwgbV9zcGFuKHNwYW4pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuaAppbmRleCA1ZmM4OTFkM2Ni
NzMzOGE3NTkzMWY0ZDlkNTVhZTBhNjM4YjA4MTIxLi42OTFmMjI5NTdkODU0YWU2YmI0OGUzNzYx
YTk3NjdjY2NjN2ZiZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmgKQEAgLTgyLDcgKzgyLDcgQEAg
cHVibGljOgogICAgICAgICBMYXlvdXRVbml0IG1fdXNlZExvZ2ljYWxXaWR0aDsKICAgICAgICAg
TGF5b3V0VW5pdCBtX3VzZWRMb2dpY2FsTGVmdDsKICAgICAgICAgTGVuZ3RoIG1fY29tcHV0ZWRM
b2dpY2FsV2lkdGg7Ci0gICAgICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX2xheW91
dEJveDsKKyAgICAgICAgQ2hlY2tlZFB0cjxjb25zdCBDb250YWluZXJCb3g+IG1fbGF5b3V0Qm94
OwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICAgICAgYm9vbCBtX2hhc1VzZWRXaWR0aCB7IGZh
bHNlIH07CkBAIC0xMjAsMTMgKzEyMCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgc2V0QmFz
ZWxpbmUoSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSkgeyBtX2Jhc2VsaW5lID0gYmFzZWxpbmU7
IH0KICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFzZWxpbmU7IH0KIAotICAgICAgICBjb25zdCBDb250YWluZXJCb3gmIGJveCgpIGNvbnN0IHsg
cmV0dXJuICptX2xheW91dEJveC5nZXQoKTsgfQorICAgICAgICBjb25zdCBDb250YWluZXJCb3gm
IGJveCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94OyB9CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBMYXlvdXRVbml0IG1fbG9naWNhbFRvcDsKICAgICAgICAgTGF5b3V0VW5pdCBtX2xvZ2lj
YWxIZWlnaHQ7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9iYXNlbGluZSB7IDAgfTsKLSAg
ICAgICAgV2Vha1B0cjxjb25zdCBDb250YWluZXJCb3g+IG1fbGF5b3V0Qm94OworICAgICAgICBD
aGVja2VkUmVmPGNvbnN0IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CiAgICAgfTsKIAogICAg
IGNsYXNzIFJvd3MgewpAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3Qg
Q29udGFpbmVyQm94JiBib3goKSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3guZ2V0KCk7IH0K
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX2xh
eW91dEJveDsKKyAgICAgICAgQ2hlY2tlZFB0cjxjb25zdCBDb250YWluZXJCb3g+IG1fbGF5b3V0
Qm94OwogICAgICAgICBTbG90UG9zaXRpb24gbV9wb3NpdGlvbjsKICAgICAgICAgQ2VsbFNwYW4g
bV9zcGFuOwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fYmFzZWxpbmUgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25Cb3hUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkJveFRyZWUuY3BwCmluZGV4IDYzNzcyYzYwYjEzNjA3ZjAyODBlYWIxN2FmNWIz
ODlmNTBhNjUxNTIuLjNiZGMzMmJhZmQwMDBkMTQyMDY4NzA2MjJlY2MxYTgwNDlhM2NkNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkJveFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCkBAIC0xMTQsMTQgKzExNCwxNCBAQCB2b2lkIEJv
eFRyZWU6OmJ1aWxkVHJlZSgpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXV0byYg
Y2hpbGRSZW5kZXJlciA9ICp3YWxrZXIuY3VycmVudCgpOwogICAgICAgICBhdXRvIGNoaWxkQm94
ID0gY3JlYXRlQ2hpbGRCb3goY2hpbGRSZW5kZXJlcik7Ci0gICAgICAgIGFwcGVuZENoaWxkKFdU
Rk1vdmUoY2hpbGRCb3gpLCBjaGlsZFJlbmRlcmVyKTsKKyAgICAgICAgYXBwZW5kQ2hpbGQobWFr
ZVVuaXF1ZVJlZkZyb21Ob25OdWxsVW5pcXVlUHRyKFdURk1vdmUoY2hpbGRCb3gpKSwgY2hpbGRS
ZW5kZXJlcik7CiAgICAgfQogfQogCi12b2lkIEJveFRyZWU6OmFwcGVuZENoaWxkKHN0ZDo6dW5p
cXVlX3B0cjxMYXlvdXQ6OkJveD4gY2hpbGRCb3gsIFJlbmRlck9iamVjdCYgY2hpbGRSZW5kZXJl
cikKK3ZvaWQgQm94VHJlZTo6YXBwZW5kQ2hpbGQoVW5pcXVlUmVmPExheW91dDo6Qm94PiBjaGls
ZEJveCwgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVyKQogewogICAgIGF1dG8mIHBhcmVudEJv
eCA9IGRvd25jYXN0PExheW91dDo6Q29udGFpbmVyQm94PihsYXlvdXRCb3hGb3JSZW5kZXJlcigq
Y2hpbGRSZW5kZXJlci5wYXJlbnQoKSkpOwotICAgIHBhcmVudEJveC5hcHBlbmRDaGlsZCgqY2hp
bGRCb3gpOworICAgIHBhcmVudEJveC5hcHBlbmRDaGlsZChjaGlsZEJveC5nZXQoKSk7CiAKICAg
ICBtX2JveGVzLmFwcGVuZCh7IFdURk1vdmUoY2hpbGRCb3gpLCAmY2hpbGRSZW5kZXJlciB9KTsK
IApAQCAtMTYxLDcgKzE2MSw3IEBAIExheW91dDo6Qm94JiBCb3hUcmVlOjpsYXlvdXRCb3hGb3JS
ZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgICAgICAgICAgcmV0dXJu
IGVudHJ5LnJlbmRlcmVyID09ICZyZW5kZXJlcjsKICAgICAgICAgfSk7CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKGluZGV4ICE9IG5vdEZvdW5kKTsKLSAgICAgICAgcmV0dXJuICptX2JveGVzW2lu
ZGV4XS5ib3g7CisgICAgICAgIHJldHVybiBtX2JveGVzW2luZGV4XS5ib3g7CiAgICAgfQogCiAg
ICAgcmV0dXJuICptX3JlbmRlcmVyVG9Cb3hNYXAuZ2V0KCZyZW5kZXJlcik7CkBAIC0xNzksNyAr
MTc5LDcgQEAgUmVuZGVyT2JqZWN0JiBCb3hUcmVlOjpyZW5kZXJlckZvckxheW91dEJveChjb25z
dCBMYXlvdXQ6OkJveCYgYm94KQogCiAgICAgaWYgKG1fYm94ZXMuc2l6ZSgpIDw9IHNtYWxsVHJl
ZVRocmVzaG9sZCkgewogICAgICAgICBhdXRvIGluZGV4ID0gbV9ib3hlcy5maW5kTWF0Y2hpbmco
WyZdKGF1dG8mIGVudHJ5KSB7Ci0gICAgICAgICAgICByZXR1cm4gZW50cnkuYm94LmdldCgpID09
ICZib3g7CisgICAgICAgICAgICByZXR1cm4gZW50cnkuYm94LnB0cigpID09ICZib3g7CiAgICAg
ICAgIH0pOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CiAgICAg
ICAgIHJldHVybiAqbV9ib3hlc1tpbmRleF0ucmVuZGVyZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVl
LmgKaW5kZXggMmNkODVlOGMwYjk0M2JjMmJjYjRjNzkxNjEwMWJlNzJlNGJiNzIyYi4uOGVmZjgw
OTFjZjI3NGU2ZTBlZWM2YTBiMjU0MGIyMWQ5MjUzMTY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRy
ZWUuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTGF5b3V0SW5pdGlhbENvbnRhaW5p
bmdCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1
ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTksMjEgKzYwLDIxIEBAIHB1YmxpYzoKICAgICBzaXplX3QgYm94Q291bnQoKSBjb25zdCB7
IHJldHVybiBtX2JveGVzLnNpemUoKTsgfQogCiAgICAgc3RydWN0IEJveEFuZFJlbmRlcmVyIHsK
LSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dDo6Qm94PiBib3g7CisgICAgICAgIFVuaXF1
ZVJlZjxMYXlvdXQ6OkJveD4gYm94OwogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyIHsg
bnVsbHB0ciB9OwogICAgIH07CiAgICAgY29uc3QgYXV0byYgYm94QW5kUmVuZGVyZXJMaXN0KCkg
Y29uc3QgeyByZXR1cm4gbV9ib3hlczsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgYnVpbGRUcmVl
KCk7Ci0gICAgdm9pZCBhcHBlbmRDaGlsZChzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0OjpCb3g+LCBS
ZW5kZXJPYmplY3QmKTsKKyAgICB2b2lkIGFwcGVuZENoaWxkKFVuaXF1ZVJlZjxMYXlvdXQ6OkJv
eD4sIFJlbmRlck9iamVjdCYpOwogCiAgICAgUmVuZGVyQmxvY2tGbG93JiBtX2Zsb3c7CiAgICAg
TGF5b3V0OjpJbml0aWFsQ29udGFpbmluZ0Jsb2NrIG1fcm9vdDsKICAgICBWZWN0b3I8Qm94QW5k
UmVuZGVyZXIsIDE+IG1fYm94ZXM7CiAKLSAgICBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCos
IExheW91dDo6Qm94Kj4gbV9yZW5kZXJlclRvQm94TWFwOwotICAgIEhhc2hNYXA8Y29uc3QgTGF5
b3V0OjpCb3gqLCBSZW5kZXJPYmplY3QqPiBtX2JveFRvUmVuZGVyZXJNYXA7CisgICAgSGFzaE1h
cDxjb25zdCBSZW5kZXJPYmplY3QqLCBDaGVja2VkUmVmPExheW91dDo6Qm94Pj4gbV9yZW5kZXJl
clRvQm94TWFwOworICAgIEhhc2hNYXA8Q2hlY2tlZFJlZjxjb25zdCBMYXlvdXQ6OkJveD4sIFJl
bmRlck9iamVjdCo+IG1fYm94VG9SZW5kZXJlck1hcDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNv
bnRlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uSW5saW5lQ29udGVudC5jcHAKaW5kZXggOTgyOWMzNjI4MTZiNGQ1YzhhM2M3ZjU5ODEw
Njg0YWY1Y2MzYWViYy4uOWVkN2YyZTNhMzk2M2I5M2NmOTZlMTAyOTAyMmFkMGIxN2U4MDIyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uSW5saW5lQ29udGVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAKQEAgLTM3LDcgKzM3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKIAog
SW5saW5lQ29udGVudDo6SW5saW5lQ29udGVudChjb25zdCBMaW5lTGF5b3V0JiBsaW5lTGF5b3V0
KQotICAgIDogbV9saW5lTGF5b3V0KG1ha2VXZWFrUHRyKGxpbmVMYXlvdXQpKQorICAgIDogbV9s
aW5lTGF5b3V0KGxpbmVMYXlvdXQpCiB7CiB9CiAKQEAgLTYzLDE5ICs2MywxNCBAQCBJbmxpbmVD
b250ZW50Ojp+SW5saW5lQ29udGVudCgpCiAgICAgfQogfQogCi1jb25zdCBMaW5lTGF5b3V0JiBJ
bmxpbmVDb250ZW50OjpsaW5lTGF5b3V0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gKm1fbGluZUxh
eW91dDsKLX0KLQogY29uc3QgUmVuZGVyT2JqZWN0JiBJbmxpbmVDb250ZW50OjpyZW5kZXJlckZv
ckxheW91dEJveChjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94KSBjb25zdAogewotICAgIHJl
dHVybiBtX2xpbmVMYXlvdXQtPnJlbmRlcmVyRm9yTGF5b3V0Qm94KGxheW91dEJveCk7CisgICAg
cmV0dXJuIGxpbmVMYXlvdXQoKS5yZW5kZXJlckZvckxheW91dEJveChsYXlvdXRCb3gpOwogfQog
CiBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIElubGluZUNvbnRlbnQ6OmNvbnRhaW5pbmdCbG9jaygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGluZUxheW91dC0+ZmxvdygpOworICAgIHJldHVybiBs
aW5lTGF5b3V0KCkuZmxvdygpOwogfQogCiBzaXplX3QgSW5saW5lQ29udGVudDo6aW5kZXhGb3JC
b3goY29uc3QgSW5saW5lRGlzcGxheTo6Qm94JiBib3gpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25JbmxpbmVDb250ZW50LmgKaW5kZXggMmNmY2YyYjY0OTdmMjVkOTIwOWE1NGNkNWNlNzA3MjQ5
Nzk5YTJjZS4uMGE1OGJhMWRmMzQ3ZmVlMjc1YzFjNDYyMjliYjgwYzU0NzcyZjJhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
SW5saW5lQ29udGVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaApAQCAtMjksMTAgKzI5LDkgQEAKIAogI2lu
Y2x1ZGUgIklubGluZURpc3BsYXlCb3guaCIKICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbkxp
bmUuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9JdGVyYXRvclJh
bmdlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNjksNyArNjgsNyBAQCBzdHJ1Y3QgSW5saW5lQ29udGVudCA6IHB1YmxpYyBSZWZDb3VudGVk
PElubGluZUNvbnRlbnQ+IHsKICAgICBXVEY6Okl0ZXJhdG9yUmFuZ2U8Y29uc3QgSW5saW5lRGlz
cGxheTo6Qm94Kj4gYm94ZXNGb3JSZWN0KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKICAgICB2
b2lkIHNocmlua1RvRml0KCk7CiAKLSAgICBjb25zdCBMaW5lTGF5b3V0JiBsaW5lTGF5b3V0KCkg
Y29uc3Q7CisgICAgY29uc3QgTGluZUxheW91dCYgbGluZUxheW91dCgpIGNvbnN0IHsgcmV0dXJu
IG1fbGluZUxheW91dDsgfQogICAgIGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXJGb3JMYXlv
dXRCb3goY29uc3QgTGF5b3V0OjpCb3gmKSBjb25zdDsKICAgICBjb25zdCBSZW5kZXJCbG9ja0Zs
b3cmIGNvbnRhaW5pbmdCbG9jaygpIGNvbnN0OwogCkBAIC04NiwxMiArODUsMTIgQEAgc3RydWN0
IElubGluZUNvbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxJbmxpbmVDb250ZW50PiB7CiBwcml2
YXRlOgogICAgIElubGluZUNvbnRlbnQoY29uc3QgTGluZUxheW91dCYpOwogCi0gICAgV2Vha1B0
cjxjb25zdCBMaW5lTGF5b3V0PiBtX2xpbmVMYXlvdXQ7CisgICAgQ2hlY2tlZFJlZjxjb25zdCBM
aW5lTGF5b3V0PiBtX2xpbmVMYXlvdXQ7CiAKLSAgICB1c2luZyBGaXJzdEJveEluZGV4Q2FjaGUg
PSBXZWFrSGFzaE1hcDxMYXlvdXQ6OkJveCwgc2l6ZV90PjsKKyAgICB1c2luZyBGaXJzdEJveElu
ZGV4Q2FjaGUgPSBIYXNoTWFwPENoZWNrZWRSZWY8Y29uc3QgTGF5b3V0OjpCb3g+LCBzaXplX3Q+
OwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPEZpcnN0Qm94SW5kZXhDYWNoZT4gbV9maXJz
dEJveEluZGV4Q2FjaGU7CiAKLSAgICB1c2luZyBJbmxpbmVCb3hJbmRleENhY2hlID0gV2Vha0hh
c2hNYXA8TGF5b3V0OjpCb3gsIFZlY3RvcjxzaXplX3Q+PjsKKyAgICB1c2luZyBJbmxpbmVCb3hJ
bmRleENhY2hlID0gSGFzaE1hcDxDaGVja2VkUmVmPGNvbnN0IExheW91dDo6Qm94PiwgVmVjdG9y
PHNpemVfdD4+OwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPElubGluZUJveEluZGV4Q2Fj
aGU+IG1faW5saW5lQm94SW5kZXhDYWNoZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5jcHAKaW5kZXggOGY3YzAwN2ExNWJkYmQ1MzNlODY4MjJiNDU4NDdmOGY1OWRjYTFkZC4u
ZTUxMzM5MjkwZmUyNWY3ZmRmMTgwYzE4ZTYwOWMxMjJiOTM4Njg0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uTGluZUxheW91dC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCB2b2lkIExpbmVMYXlvdXQ6
OmNvbnN0cnVjdENvbnRlbnQoKQogCiAgICAgYXV0byYgYm94QW5kUmVuZGVyZXJMaXN0ID0gbV9i
b3hUcmVlLmJveEFuZFJlbmRlcmVyTGlzdCgpOwogICAgIGZvciAoYXV0byYgYm94QW5kUmVuZGVy
ZXIgOiBib3hBbmRSZW5kZXJlckxpc3QpIHsKLSAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gKmJv
eEFuZFJlbmRlcmVyLmJveDsKKyAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gYm94QW5kUmVuZGVy
ZXIuYm94LmdldCgpOwogICAgICAgICBpZiAoIWxheW91dEJveC5pc1JlcGxhY2VkQm94KCkpCiAg
ICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCmluZGV4
IGNiNzZiNTJmYWQxODNlN2M1ZjBkZjBiZTBkZjA4MzA2YmYyMzcwZDAuLmE1NTgwYjAwZThiNGJi
OWE2MWFkZTkzY2M3NGUzNTU1OGMxMTE3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0
LmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUg
IkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0RW51bXMuaCIKLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNTcsNyArNTcsNyBAQCBuYW1lc3BhY2UgTGF5b3V0SW50ZWdyYXRp
b24gewogCiBzdHJ1Y3QgSW5saW5lQ29udGVudDsKIAotY2xhc3MgTGluZUxheW91dCA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxMaW5lTGF5b3V0PiB7CitjbGFzcyBMaW5lTGF5b3V0IDogcHVibGlj
IENhbk1ha2VDaGVja2VkUHRyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBMaW5lTGF5b3V0KFJlbmRlckJsb2NrRmxvdyYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKaW5kZXggZmUwYWExMTE5Y2M3ZTI1MmI1
YmI0ZjY1NDhiYTdlOGM3MTI3Y2I0Mi4uZDM2MjdlOTk1ZDM0ZjYwZDQ4NGU3Nzk3MmIzNDM1NmE0
MDgyMmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRC
b3guY3BwCkBAIC01MjQsNyArNTI0LDcgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBCb3g6
OmNvbHVtbldpZHRoKCkgY29uc3QKIHZvaWQgQm94OjpzZXRDYWNoZWRHZW9tZXRyeUZvckxheW91
dFN0YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgc3RkOjp1bmlxdWVfcHRyPEJveEdlb21l
dHJ5PiBnZW9tZXRyeSkgY29uc3QKIHsKICAgICBBU1NFUlQoIW1fY2FjaGVkTGF5b3V0U3RhdGUp
OwotICAgIG1fY2FjaGVkTGF5b3V0U3RhdGUgPSBtYWtlV2Vha1B0cihsYXlvdXRTdGF0ZSk7Cisg
ICAgbV9jYWNoZWRMYXlvdXRTdGF0ZSA9ICZsYXlvdXRTdGF0ZTsKICAgICBtX2NhY2hlZEdlb21l
dHJ5Rm9yTGF5b3V0U3RhdGUgPSBXVEZNb3ZlKGdlb21ldHJ5KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAppbmRleCBmOWQ2YmY1MTE4MmU2Mzc0
MTBkNzg2NDhmOGY1NmU2N2UwNjcxYTIxLi5mM2MzNWYxNjljZTQ4NTZiMTVkMDZlMzU5ODkyNGM2
YjM2YWU3NmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRC
b3guaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVkZSAiTGF5b3V0VW5pdHMuaCIKICNpbmNs
dWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBJbml0aWFsQ29udGFpbmluZ0Js
b2NrOwogY2xhc3MgTGF5b3V0U3RhdGU7CiBjbGFzcyBUcmVlQnVpbGRlcjsKIAotY2xhc3MgQm94
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPEJveD4geworY2xhc3MgQm94IDogcHVibGljIENhbk1h
a2VDaGVja2VkUHRyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEJveCk7CiBwdWJsaWM6
CiAgICAgZW51bSBjbGFzcyBFbGVtZW50VHlwZSB7CkBAIC0yMTUsNyArMjE1LDcgQEAgcHJpdmF0
ZToKICAgICBCb3gqIG1fbmV4dFNpYmxpbmcgeyBudWxscHRyIH07CiAgICAgCiAgICAgLy8gRmly
c3QgTGF5b3V0U3RhdGUgZ2V0cyBhIGRpcmVjdCBjYWNoZS4KLSAgICBtdXRhYmxlIFdlYWtQdHI8
TGF5b3V0U3RhdGU+IG1fY2FjaGVkTGF5b3V0U3RhdGU7CisgICAgbXV0YWJsZSBDaGVja2VkUHRy
PExheW91dFN0YXRlPiBtX2NhY2hlZExheW91dFN0YXRlOwogICAgIG11dGFibGUgc3RkOjp1bmlx
dWVfcHRyPEJveEdlb21ldHJ5PiBtX2NhY2hlZEdlb21ldHJ5Rm9yTGF5b3V0U3RhdGU7CiAKICAg
ICB1bnNpZ25lZCBtX2Jhc2VUeXBlRmxhZ3MgOiA2OyAvLyBPcHRpb25TZXQ8QmFzZVR5cGVGbGFn
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVw
bGFjZWRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxh
Y2VkQm94LmgKaW5kZXggOGUxZmQzOTRhODVkMWNhMDcyNzExM2ZkMWJhZDY0YWYwMDU5OGY1YS4u
NDVmZTQ3NmQ3ZjBjOGM0ZTdiODcwNTkyMDZmZjYzZjUwZDlhYmZjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWRCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5oCkBAIC0z
Miw3ICszMiw2IEBACiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkxheW91dFVu
aXQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAppbmRl
eCA1MjVjZTYzYmJkZTEzMmVhYzRjZjY4Y2NmZDg1OGYzZjI2NmM2YjU5Li5iY2JmNDQyZjY5OTYz
NzdkNzAxYTc5NjU4MWU5NWQ1NWQ2Yjg3MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKQEAgLTI5LDcgKzI5LDYgQEAK
IAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>
<flag name="commit-queue"
          id="462964"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439339</attachid>
            <date>2021-09-27 03:55:20 -0700</date>
            <delta_ts>2021-09-27 04:45:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230821-20210927135518.patch</filename>
            <type>text/plain</type>
            <size>38076</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyNTJiYjM1ZmNiMTExZDFkZjc3NTRj
NjVjYjRkZjBjZmJjNTEyMWEuLmJkOTQ2OWM0NzJlMTQ1NDU4NjUyZDRmNjQ5MTQwYzAyZTU0MWFk
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMjcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdIFVzZSBDaGVja2VkUmVmL1B0ciBpbnN0ZWFk
IG9mIFdlYWtQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDgyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL0NoZWNrZWRSZWYuaDoKKyAgICAgICAgKFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJC
YXNlOjppbmNyZW1lbnRQdHJDb3VudCBjb25zdCk6CisgICAgICAgIChXVEY6OkNhbk1ha2VDaGVj
a2VkUHRyQmFzZTo6ZGVjcmVtZW50UHRyQ291bnQgY29uc3QpOgorICAgICAgICAoV1RGOjpDYW5N
YWtlQ2hlY2tlZFB0ckJhc2U6OmluY3JlbWVudFB0ckNvdW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJCYXNlOjpkZWNyZW1lbnRQdHJDb3VudCk6IERlbGV0ZWQu
CisKKyAgICAgICAgTWFrZSBjb25zdCBzbyBDaGVja2VkUHRyPGNvbnN0IEZvbz4gd29ya3MuCisK
IDIwMjEtMDktMjYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgzMDgzIGFuZCByMjgzMDg4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDEzNjg2MjlhNDFjNGVmOGU4OTViMTliNWI1ZmU5YzdiYzA4MWQ4YjAuLjliOWQ0YzUx
YWM1YTZkMDc0ZGViZTkyZjhhMzI3OTFhZjBiNWZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAyMS0wOS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0xGQ10gVXNlIENoZWNrZWRSZWYvUHRyIGluc3RlYWQgb2YgV2Vha1B0cgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vha1B0cnMgYXJlIHVz
ZWQgZm9yIGxheW91dCBib3hlcyBmb3Igc2FmZXR5IG9ubHkuIFJlcGxhY2Ugd2l0aCBzaW1wbGVy
LCBmYXN0ZXIgQ2hlY2tlZFB0ci4KKworICAgICAgICAqIGRpc3BsYXkvRGlzcGxheVRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpidWlsZCk6
CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmFkZE91dE9mRmxvd0JveCk6CisgICAgICAgICogbGF5
b3V0L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3Rh
dGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6
OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1h
dHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3Rh
dGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L0xheW91
dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpyb290IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6Omhhc1Jvb3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmg6Cisg
ICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6RmxvYXRJdGVtOjpGbG9hdEl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1N0YXRlOjpGbG9hdGluZ1N0YXRlKToKKyAgICAg
ICAgKiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6RmxvYXRpbmdTdGF0ZTo6cm9vdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dDb250ZW50
KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpyb290IGNv
bnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9y
bWF0dGluZ1N0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uRm9yT3V0T2ZG
bG93Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGV2ZWxCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGV2ZWxC
b3g6OmxheW91dEJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxl
dmVsQm94OjpJbmxpbmVMZXZlbEJveCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5oOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpsYXlvdXRCb3ggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpCb3gpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VGFibGVHcmlkOjpDb2x1bW46OkNvbHVtbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlRhYmxlR3JpZDo6Um93OjpSb3cpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUdy
aWQ6OkNlbGw6OkNlbGwpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFi
bGUvVGFibGVHcmlkLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6Um93
Ojpib3ggY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkJveFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJv
eFRyZWU6OmJ1aWxkVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
Qm94VHJlZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OkJveFRyZWU6OmxheW91dEJveEZvclJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpCb3hUcmVlOjpyZW5kZXJlckZvckxheW91dEJveCk6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oOgorICAgICAg
ICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQ6Oklu
bGluZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGlu
ZUNvbnRlbnQ6OnJlbmRlcmVyRm9yTGF5b3V0Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50Ojpjb250YWluaW5nQmxvY2sgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQ6Omxp
bmVMYXlvdXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50OjpsaW5lTGF5b3V0IGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0Lmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRDYWNoZWRHZW9tZXRyeUZvckxheW91
dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaDoK
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5oOgorICAgICAg
ICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmg6CisKIDIwMjEtMDktMjYg
IEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBhcHBl
bmRpbmcgdG8gdGhlIHNvdXJjZSBidWZmZXIgd2lsbCBub3QgdGhyb3cgd2hlbiB0aGUgc291cmNl
IGJ1ZmZlciBpcyBmdWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5oCmluZGV4IGQyYmMxY2FjZTMzMjRhYTQzMzQ3
OTBmZjY5Y2I3NDRmZDc5ZWUyMmEuLjhiMjAzYjVhM2NlY2Q2NzIyN2JjN2E1ZWE5OTY1OTlkOGRi
ZmM4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRSZWYuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkUmVmLmgKQEAgLTIzMCwxMSArMjMwLDExIEBAIHB1YmxpYzoKICAg
ICB+Q2FuTWFrZUNoZWNrZWRQdHJCYXNlKCkgeyBSRUxFQVNFX0FTU0VSVCghbV9jb3VudCk7IH0K
IAogICAgIFB0ckNvdW50ZXJUeXBlIHB0ckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jb3VudDsg
fQotICAgIHZvaWQgaW5jcmVtZW50UHRyQ291bnQoKSB7ICsrbV9jb3VudDsgfQotICAgIHZvaWQg
ZGVjcmVtZW50UHRyQ291bnQoKSB7IEFTU0VSVChtX2NvdW50KTsgLS1tX2NvdW50OyB9CisgICAg
dm9pZCBpbmNyZW1lbnRQdHJDb3VudCgpIGNvbnN0IHsgKyttX2NvdW50OyB9CisgICAgdm9pZCBk
ZWNyZW1lbnRQdHJDb3VudCgpIGNvbnN0IHsgQVNTRVJUKG1fY291bnQpOyAtLW1fY291bnQ7IH0K
IAogcHJpdmF0ZToKLSAgICBTdG9yYWdlVHlwZSBtX2NvdW50IHsgMCB9OworICAgIG11dGFibGUg
U3RvcmFnZVR5cGUgbV9jb3VudCB7IDAgfTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBJbnRl
Z3JhbFR5cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5j
cHAKaW5kZXggYzdlZmQ2OGRkYjhkMGIzMDQ2YTlmNDQ5ZTY5ZjBiYWVlZGVjNzkzOC4uNWQ4YTUx
MThjMzA3OWMxNmY4MTI1Y2QzMjUzNjE4MTE4OWEyOThjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcApAQCAtMTE5LDggKzExOSw2IEBAIFRyZWVC
dWlsZGVyOjp+VHJlZUJ1aWxkZXIoKSA9IGRlZmF1bHQ7CiAKIHN0ZDo6dW5pcXVlX3B0cjxUcmVl
PiBUcmVlQnVpbGRlcjo6YnVpbGQoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUpCiB7Ci0gICAgQVNTRVJUKGxheW91dFN0YXRlLmhhc1Jvb3QoKSk7Ci0KICAgICBhdXRvJiBy
b290TGF5b3V0Qm94ID0gbGF5b3V0U3RhdGUucm9vdCgpOwogCiAjaWYgRU5BQkxFKFRSRUVfREVC
VUdHSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IDVjZTBk
M2JiMTVlNzcxN2FkMGM2YjliY2QzNTgyMGFkNDBhYzdjZTYuLjAyNDQwMDg0ZjUzYjI1Y2ZmYzMy
NmZlMzliYTUxNzkyYzc1NzY0ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0
YXRlLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJGb3JtYXR0aW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBM
YXlvdXQgewpAQCAtNjUsOCArNjQsOCBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFdlIG5lZWQg
dG8gZmluZCBhIHdheSB0byBsaW1pdCBhY2Nlc3MgdG8gbXV0YXRhYmxlIGdlb21ldHJ5LgogICAg
IEJveEdlb21ldHJ5JiBib3hHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCk7CiAgICAgLy8g
U2luY2Ugd2UgbGF5b3V0IHRoZSBvdXQtb2YtZmxvdyBib3hlcyBhdCB0aGUgZW5kIG9mIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQgbGF5b3V0LCBpdCdzIG9rYXkgdG8gc3RvcmUgdGhlbSBpbiB0aGUg
Zm9ybWF0dGluZyBzdGF0ZSAtYXMgb3Bwb3NlZCB0byB0aGUgY29udGFpbmluZyBibG9jayBsZXZl
bC4KLSAgICB1c2luZyBPdXRPZkZsb3dCb3hMaXN0ID0gVmVjdG9yPFdlYWtQdHI8Y29uc3QgQm94
Pj47Ci0gICAgdm9pZCBhZGRPdXRPZkZsb3dCb3goY29uc3QgQm94JiBvdXRPZkZsb3dCb3gpIHsg
bV9vdXRPZkZsb3dCb3hlcy5hcHBlbmQobWFrZVdlYWtQdHIob3V0T2ZGbG93Qm94KSk7IH0KKyAg
ICB1c2luZyBPdXRPZkZsb3dCb3hMaXN0ID0gVmVjdG9yPENoZWNrZWRSZWY8Y29uc3QgQm94Pj47
CisgICAgdm9pZCBhZGRPdXRPZkZsb3dCb3goY29uc3QgQm94JiBvdXRPZkZsb3dCb3gpIHsgbV9v
dXRPZkZsb3dCb3hlcy5hcHBlbmQob3V0T2ZGbG93Qm94KTsgfQogICAgIHZvaWQgcmVtb3ZlT3V0
T2ZGbG93Qm94KGNvbnN0IEJveCYpOwogICAgIGNvbnN0IE91dE9mRmxvd0JveExpc3QmIG91dE9m
Rmxvd0JveGVzKCkgY29uc3QgeyByZXR1cm4gbV9vdXRPZkZsb3dCb3hlczsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcAppbmRleCAwZDAyMWY0NDVkNTE1YmFlOTIzODdiYWE4
NDVmODM5MWYyNWRkMGJlLi45NmJkMTdmYTAxNDg2YTU2ZjFlNWJkOWJmZGU3N2FhOGE3ZGNlOTZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAg
bmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGF5b3V0U3Rh
dGUpOwogCiBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBDb250YWluZXJCb3gmIHJvb3RDb250YWluZXIpCi0gICAgOiBtX3Jvb3RDb250YWlu
ZXIobWFrZVdlYWtQdHIocm9vdENvbnRhaW5lcikpCisgICAgOiBtX3Jvb3RDb250YWluZXIocm9v
dENvbnRhaW5lcikKIHsKICAgICAvLyBJdCBtYWtlcyBhYnNvbHV0ZWx5IG5vIHNlbnNlIHRvIGNv
bnN0cnVjdCBhIGRlZGljYXRlZCBsYXlvdXQgc3RhdGUgZm9yIGEgbm9uLWZvcm1hdHRpbmcgY29u
dGV4dCByb290IChsYXlvdXQgd291bGQgYmUgYSBuby1vcCkuCiAgICAgQVNTRVJUKHJvb3QoKS5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwpAQCAtMTAxLDcgKzEwMSw3IEBAIEZvcm1h
dHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250
ZXh0KGNvbnN0IENvbnRhaW5lCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRp
b25FbmFibGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0g
bV9yb290Q29udGFpbmVyLmdldCgpKTsKKyAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4
dFJvb3QgPT0gbV9yb290Q29udGFpbmVyLnB0cigpKTsKICAgICAgICAgcmV0dXJuICptX3Jvb3RJ
bmxpbmVGb3JtYXR0aW5nU3RhdGVGb3JJbnRlZ3JhdGlvbjsKICAgICB9CiAKQEAgLTEyNSw3ICsx
MjUsNyBAQCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpmb3JtYXR0aW5nU3Rh
dGVGb3JJbmxpbmVGb3JtYXR0aW5nQ29udGV4dChjbwogICAgIEFTU0VSVChpbmxpbmVGb3JtYXR0
aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKTsKIAog
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxheW91dEZv
cm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCZp
bmxpbmVGb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0gbV9yb290Q29udGFpbmVyLmdldCgpKTsKKyAg
ICAgICAgQVNTRVJUKCZpbmxpbmVGb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0gbV9yb290Q29udGFp
bmVyLnB0cigpKTsKICAgICAgICAgcmV0dXJuICptX3Jvb3RJbmxpbmVGb3JtYXR0aW5nU3RhdGVG
b3JJbnRlZ3JhdGlvbjsKICAgICB9CiAKQEAgLTE3MSw3ICsxNzEsNyBAQCBJbmxpbmVGb3JtYXR0
aW5nU3RhdGUmIExheW91dFN0YXRlOjplbnN1cmVJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY29uc3Qg
Q29udGFpbmVyQgogCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkgewogICAg
ICAgICBpZiAoIW1fcm9vdElubGluZUZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9uKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWlu
ZXIuZ2V0KCkpOworICAgICAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0g
bV9yb290Q29udGFpbmVyLnB0cigpKTsKICAgICAgICAgICAgIG1fcm9vdElubGluZUZvcm1hdHRp
bmdTdGF0ZUZvckludGVncmF0aW9uID0gY3JlYXRlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuICptX3Jvb3RJbmxpbmVGb3JtYXR0aW5nU3RhdGVGb3JJbnRlZ3JhdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dFN0YXRlLmgKaW5kZXggNTE0YmQ5NjAwNDMwMGJiMjIxM2E4Y2UwMTJkNGQw
NGUyZDc2M2RjNC4uY2E3ZDI5ZGIyZDAyMTgwNTg1OGRkMGYyMzJlMDg1MzlhOWQzNjFiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAgLTg0LDggKzg0LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaW5MaW1pdGVkUXVpcmtzTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVpcmtzTW9k
ZSA9PSBRdWlya3NNb2RlOjpMaW1pdGVkOyB9CiAgICAgYm9vbCBpblN0YW5kYXJkc01vZGUoKSBj
b25zdCB7IHJldHVybiBtX3F1aXJrc01vZGUgPT0gUXVpcmtzTW9kZTo6Tm87IH0KIAotICAgIGJv
b2wgaGFzUm9vdCgpIGNvbnN0IHsgcmV0dXJuICEhbV9yb290Q29udGFpbmVyOyB9Ci0gICAgY29u
c3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4gKm1fcm9vdENvbnRhaW5lcjsg
fQorICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENv
bnRhaW5lcjsgfQogCiAgICAgLy8gTEZDIGludGVncmF0aW9uIG9ubHkuIEZ1bGwgTEZDIGhhcyBw
cm9wZXIgSUNCIGFjY2Vzcy4KICAgICB2b2lkIHNldFZpZXdwb3J0U2l6ZShjb25zdCBMYXlvdXRT
aXplJik7CkBAIC0xMTMsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPGNvbnN0IEJv
eCosIHN0ZDo6dW5pcXVlX3B0cjxCb3hHZW9tZXRyeT4+IG1fbGF5b3V0Qm94VG9Cb3hHZW9tZXRy
eTsKICAgICBRdWlya3NNb2RlIG1fcXVpcmtzTW9kZSB7IFF1aXJrc01vZGU6Ok5vIH07CiAKLSAg
ICBXZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9yb290Q29udGFpbmVyOworICAgIENoZWNr
ZWRSZWY8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jvb3RDb250YWluZXI7CiAKICAgICAvLyBMRkMg
aW50ZWdyYXRpb24gb25seS4KICAgICBMYXlvdXRTaXplIG1fdmlld3BvcnRTaXplOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmgKaW5kZXggN2E2YWFlMDBiYzRk
MzQxZjE0MTQyNTNiZWU0NzgyYjg5ZmViNmZiNy4uZGM5MjRlOGJjNjIxMGQ4NWMxNTFlMDY5MzY5
MTNkNWFkZDdhZmM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9G
bG9hdEF2b2lkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZv
aWRlci5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNs
dWRlICJMYXlvdXRVbml0cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwCmluZGV4IGI5YmNkYTAwNmQ3MWM1
ZWZiMzdiY2MyZWEwNzIyOTkzM2M0MmI4YTEuLjY0ZmRmOTM4ZjI1NTBmNjU0MzdkNDQyMzdlMWU0
M2U2ZjQxZDVmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxv
YXRpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGlu
Z1N0YXRlLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChGbG9hdGluZ1N0YXRlKTsKIAogRmxvYXRpbmdTdGF0ZTo6Rmxv
YXRJdGVtOjpGbG9hdEl0ZW0oY29uc3QgQm94JiBsYXlvdXRCb3gsIEJveEdlb21ldHJ5IGFic29s
dXRlQm94R2VvbWV0cnkpCi0gICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0cihsYXlvdXRCb3gp
KQorICAgIDogbV9sYXlvdXRCb3gobGF5b3V0Qm94KQogICAgICwgbV9wb3NpdGlvbihsYXlvdXRC
b3guaXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkgPyBQb3NpdGlvbjo6TGVmdCA6IFBvc2l0aW9u
OjpSaWdodCkKICAgICAsIG1fYWJzb2x1dGVCb3hHZW9tZXRyeShhYnNvbHV0ZUJveEdlb21ldHJ5
KQogewpAQCAtNTUsNyArNTUsNyBAQCBGbG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW06OkZsb2F0SXRl
bShQb3NpdGlvbiBwb3NpdGlvbiwgQm94R2VvbWV0cnkgYWJzb2x1dGVCb3hHZQogCiBGbG9hdGlu
Z1N0YXRlOjpGbG9hdGluZ1N0YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgQ29u
dGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiAgICAgOiBtX2xheW91dFN0YXRlKGxh
eW91dFN0YXRlKQotICAgICwgbV9mb3JtYXR0aW5nQ29udGV4dFJvb3QobWFrZVdlYWtQdHIoZm9y
bWF0dGluZ0NvbnRleHRSb290KSkKKyAgICAsIG1fZm9ybWF0dGluZ0NvbnRleHRSb290KGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRz
L0Zsb2F0aW5nU3RhdGUuaAppbmRleCBiNWM2ZmUxM2Y0YWUyMGI3MzU2YTA3Mzk2NWVmNzJjNThj
YWRlMmUwLi42NzM3Y2RhYjNkOWVlNjQxYzNhZjcwMDlkNzZkNTM1ZjlhNDc2OTdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaApAQCAtMzEsNyArMzEs
NiBAQAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw3ICs0OCw3IEBAIGNsYXNzIEZsb2F0aW5n
U3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGbG9hdGluZ1N0YXRlPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGUoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRl
LCBjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGbG9hdGluZ1N0YXRlKGxheW91dFN0YXRlLCBmb3JtYXR0aW5nQ29udGV4dFJv
b3QpKTsgfQogCi0gICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4g
Km1fZm9ybWF0dGluZ0NvbnRleHRSb290OyB9CisgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290
KCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7IH0KIAogICAgIGNsYXNz
IEZsb2F0SXRlbSB7CiAgICAgcHVibGljOgpAQCAtNzAsNyArNjksNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGNvbnN0IEJveCogZmxvYXRCb3goKSBjb25zdCB7IHJldHVybiBtX2xheW91dEJveC5nZXQo
KTsgfQogI2VuZGlmCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2Vha1B0cjxjb25zdCBCb3g+IG1f
bGF5b3V0Qm94OworICAgICAgICBDaGVja2VkUHRyPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7CiAg
ICAgICAgIFBvc2l0aW9uIG1fcG9zaXRpb247CiAgICAgICAgIEJveEdlb21ldHJ5IG1fYWJzb2x1
dGVCb3hHZW9tZXRyeTsKICAgICB9OwpAQCAtODcsNyArODYsNyBAQCBwcml2YXRlOgogICAgIExh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0U3RhdGU7IH0K
IAogICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOwotICAgIFdlYWtQdHI8Y29uc3QgQ29u
dGFpbmVyQm94PiBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdDsKKyAgICBDaGVja2VkUmVmPGNvbnN0
IENvbnRhaW5lckJveD4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7CiAgICAgRmxvYXRMaXN0IG1f
ZmxvYXRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA5ZGEzYjUzYTJm
YWM1ODI4MDUwNjQ5NDA2YzIwNTFiNzYxYzIyY2M4Li5mMTA0MjE0NDk1MTQxMTQ0OThhZGIyOTkz
YTdiZWM3MzFjNWQzYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNDksNyAr
NDksNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChG
b3JtYXR0aW5nQ29udGV4dCk7CiAKIEZvcm1hdHRpbmdDb250ZXh0OjpGb3JtYXR0aW5nQ29udGV4
dChjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgRm9ybWF0dGluZ1N0
YXRlJiBmb3JtYXR0aW5nU3RhdGUpCi0gICAgOiBtX3Jvb3QobWFrZVdlYWtQdHIoZm9ybWF0dGlu
Z0NvbnRleHRSb290KSkKKyAgICA6IG1fcm9vdChmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiAgICAg
LCBtX2Zvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nU3RhdGUpCiB7CiAgICAgQVNTRVJUKGZvcm1h
dHRpbmdDb250ZXh0Um9vdC5oYXNDaGlsZCgpKTsKQEAgLTE0MSwyNyArMTQxLDI3IEBAIHZvaWQg
Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0NvbnRlbnQoY29uc3QgQ29uc3RyYWlu
dHNGb3JPdXRPZkZsb3dDb250CiAgICAgY29sbGVjdE91dE9mRmxvd0Rlc2NlbmRhbnRzSWZOZWVk
ZWQoKTsKIAogICAgIGF1dG8gY29uc3RyYWludHNGb3JMYXlvdXRCb3ggPSBbJl0gKGNvbnN0IGF1
dG8mIG91dE9mRmxvd0JveCkgewotICAgICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSBvdXRP
ZkZsb3dCb3guY29udGFpbmluZ0Jsb2NrKCk7CisgICAgICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9j
ayA9IG91dE9mRmxvd0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIHJldHVybiAmY29u
dGFpbmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6IGZvcm1hdHRpbmdHZW9tZXRy
eSgpLmNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudChjb250YWluaW5nQmxvY2spOwogICAg
IH07CiAKICAgICBmb3IgKGF1dG8mIG91dE9mRmxvd0JveCA6IGZvcm1hdHRpbmdTdGF0ZSgpLm91
dE9mRmxvd0JveGVzKCkpIHsKICAgICAgICAgQVNTRVJUKG91dE9mRmxvd0JveC0+ZXN0YWJsaXNo
ZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tDb25z
dHJhaW50cyA9IGNvbnN0cmFpbnRzRm9yTGF5b3V0Qm94KCpvdXRPZkZsb3dCb3gpOworICAgICAg
ICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzID0gY29uc3RyYWludHNGb3JMYXlvdXRC
b3gob3V0T2ZGbG93Qm94KTsKICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JC
b3JkZXJBbmRQYWRkaW5nID0gSG9yaXpvbnRhbENvbnN0cmFpbnRzIHsgY29udGFpbmluZ0Jsb2Nr
Q29uc3RyYWludHMuaG9yaXpvbnRhbC5sb2dpY2FsTGVmdCwgY29udGFpbmluZ0Jsb2NrQ29uc3Ry
YWludHMuYm9yZGVyQW5kUGFkZGluZ0NvbnN0cmFpbnRzIH07Ci0gICAgICAgIGNvbXB1dGVCb3Jk
ZXJBbmRQYWRkaW5nKCpvdXRPZkZsb3dCb3gsIGhvcml6b250YWxDb25zdHJhaW50c0ZvckJvcmRl
ckFuZFBhZGRpbmcpOworICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhvdXRPZkZsb3dC
b3gsIGhvcml6b250YWxDb25zdHJhaW50c0ZvckJvcmRlckFuZFBhZGRpbmcpOwogCi0gICAgICAg
IGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoKm91dE9mRmxvd0JveCwgY29udGFp
bmluZ0Jsb2NrQ29uc3RyYWludHMpOwotICAgICAgICBhdXRvIG91dE9mRmxvd0JveEhhc0NvbnRl
bnQgPSBpczxDb250YWluZXJCb3g+KCpvdXRPZkZsb3dCb3gpICYmIGRvd25jYXN0PENvbnRhaW5l
ckJveD4oKm91dE9mRmxvd0JveCkuaGFzQ2hpbGQoKTsKKyAgICAgICAgY29tcHV0ZU91dE9mRmxv
d0hvcml6b250YWxHZW9tZXRyeShvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgYXV0byBvdXRPZkZsb3dCb3hIYXNDb250ZW50ID0gaXM8Q29udGFpbmVy
Qm94PihvdXRPZkZsb3dCb3guZ2V0KCkpICYmIGRvd25jYXN0PENvbnRhaW5lckJveD4ob3V0T2ZG
bG93Qm94LmdldCgpKS5oYXNDaGlsZCgpOwogICAgICAgICBpZiAob3V0T2ZGbG93Qm94SGFzQ29u
dGVudCkgewotICAgICAgICAgICAgYXV0byYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFp
bmVyQm94Pigqb3V0T2ZGbG93Qm94KTsKKyAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9
IGRvd25jYXN0PENvbnRhaW5lckJveD4ob3V0T2ZGbG93Qm94LmdldCgpKTsKICAgICAgICAgICAg
IGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5n
Q29udGV4dChjb250YWluZXJCb3gsIGxheW91dFN0YXRlKCkpOwogICAgICAgICAgICAgaWYgKGNv
bnRhaW5lckJveC5oYXNJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKSkKICAgICAgICAgICAgICAgICBm
b3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0SW5GbG93Q29udGVudChmb3JtYXR0aW5nR2VvbWV0cnko
KS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmVyQm94KSk7CiAgICAgICAgICAg
ICBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb250YWluZXJCb3gsIGNvbnRhaW5p
bmdCbG9ja0NvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlv
dXRPdXRPZkZsb3dDb250ZW50KGZvcm1hdHRpbmdHZW9tZXRyeSgpLmNvbnN0cmFpbnRzRm9yT3V0
T2ZGbG93Q29udGVudChjb250YWluZXJCb3gpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSgqb3V0T2ZGbG93Qm94LCBjb250YWlu
aW5nQmxvY2tDb25zdHJhaW50cyk7CisgICAgICAgICAgICBjb21wdXRlT3V0T2ZGbG93VmVydGlj
YWxHZW9tZXRyeShvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKICAg
ICB9CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0g
PDwgIkVuZDogbGF5b3V0IG91dC1vZi1mbG93IGNvbnRlbnQgLT4gY29udGV4dDogIiA8PCAmbGF5
b3V0U3RhdGUoKSA8PCAiIHJvb3Q6ICIgPDwgJnJvb3QoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250
ZXh0LmgKaW5kZXggNDY1MmNhYjM0MDBhOWM3ZDY0M2VjYWZmNGQyZTlhZTVjOGVhMGNkZi4uMjI2
YzY0NGY4NDZhZDQwNTVhYWM1MTJiNWZjOWU4NGNhZTM1NjFjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0Nv
bnRleHQuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkxheW91dFVuaXQuaCIKICNpbmNs
dWRlICJMYXlvdXRVbml0cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYyLDcgKzYxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRl
ZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSA9IDA7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0
IHVzZWRDb250ZW50SGVpZ2h0KCkgY29uc3QgPSAwOwogCi0gICAgY29uc3QgQ29udGFpbmVyQm94
JiByb290KCkgY29uc3QgeyByZXR1cm4gKm1fcm9vdDsgfQorICAgIGNvbnN0IENvbnRhaW5lckJv
eCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdDsgfQogICAgIExheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSgpIGNvbnN0OwogICAgIGNvbnN0IEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEZvcm1hdHRpbmdHZW9tZXRyeSYgZm9ybWF0dGluZ0dlb21ldHJ5KCkgY29uc3QgPSAwOwpA
QCAtMTAxLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVy
dGljYWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0Nv
bnRlbnQmKTsKICAgICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29u
c3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50Jik7CiAKLSAgICBX
ZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9yb290OworICAgIENoZWNrZWRSZWY8Y29uc3Qg
Q29udGFpbmVyQm94PiBtX3Jvb3Q7CiAgICAgRm9ybWF0dGluZ1N0YXRlJiBtX2Zvcm1hdHRpbmdT
dGF0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nU3RhdGUuaAppbmRl
eCAxZTZjZDYxOWRkMzE2ZjU5YjNmNDA5YmYzNWQ3MDk2ZDlmYjdjOGIxLi4xZGM2Nzg4MjZkMWRm
OTg4OTdmNDYwYzhkODIxOWM0YTk4ODY2NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zv
cm1hdHRpbmdTdGF0ZS5oCkBAIC0yOCw4ICsyOCw4IEBACiAjaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCiAKICNpbmNsdWRlICJGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRlIDx3
dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91
dCB7CkBAIC00MSwxNyArNDEsMTcgQEAgcHVibGljOgogICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRl
KFJlZjxGbG9hdGluZ1N0YXRlPiYmLCBMYXlvdXRTdGF0ZSYpOwogICAgIH5CbG9ja0Zvcm1hdHRp
bmdTdGF0ZSgpOwogCi0gICAgdm9pZCBzZXRVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IFVzZWRWZXJ0aWNhbE1hcmdpbiYgdXNlZFZlcnRpY2FsTWFyZ2luKSB7
IG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5zZXQoJmxheW91dEJveCwgdXNlZFZlcnRpY2FsTWFyZ2lu
KTsgfQotICAgIFVzZWRWZXJ0aWNhbE1hcmdpbiB1c2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94
JiBsYXlvdXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5nZXQoJmxh
eW91dEJveCk7IH0KLSAgICBib29sIGhhc1VzZWRWZXJ0aWNhbE1hcmdpbihjb25zdCBCb3gmIGxh
eW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2VkVmVydGljYWxNYXJnaW5zLmNvbnRhaW5zKCZs
YXlvdXRCb3gpOyB9CisgICAgdm9pZCBzZXRVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IFVzZWRWZXJ0aWNhbE1hcmdpbiYgdXNlZFZlcnRpY2FsTWFyZ2luKSB7
IG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5zZXQobGF5b3V0Qm94LCB1c2VkVmVydGljYWxNYXJnaW4p
OyB9CisgICAgVXNlZFZlcnRpY2FsTWFyZ2luIHVzZWRWZXJ0aWNhbE1hcmdpbihjb25zdCBCb3gm
IGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2VkVmVydGljYWxNYXJnaW5zLmdldChsYXlv
dXRCb3gpOyB9CisgICAgYm9vbCBoYXNVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5jb250YWlucyhsYXlv
dXRCb3gpOyB9CiAKICAgICB2b2lkIHNldEhhc0NsZWFyYW5jZShjb25zdCBCb3gmIGxheW91dEJv
eCkgeyBtX2NsZWFyYW5jZVNldC5hZGQobGF5b3V0Qm94KTsgfQogICAgIHZvaWQgY2xlYXJIYXND
bGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRCb3gpIHsgbV9jbGVhcmFuY2VTZXQucmVtb3ZlKGxh
eW91dEJveCk7IH0KICAgICBib29sIGhhc0NsZWFyYW5jZShjb25zdCBCb3gmIGxheW91dEJveCkg
Y29uc3QgeyByZXR1cm4gbV9jbGVhcmFuY2VTZXQuY29udGFpbnMobGF5b3V0Qm94KTsgfQogCiBw
cml2YXRlOgotICAgIEhhc2hNYXA8Y29uc3QgQm94KiwgVXNlZFZlcnRpY2FsTWFyZ2luPiBtX3Vz
ZWRWZXJ0aWNhbE1hcmdpbnM7Ci0gICAgV2Vha0hhc2hTZXQ8Y29uc3QgQm94PiBtX2NsZWFyYW5j
ZVNldDsKKyAgICBIYXNoTWFwPENoZWNrZWRSZWY8Y29uc3QgQm94PiwgVXNlZFZlcnRpY2FsTWFy
Z2luPiBtX3VzZWRWZXJ0aWNhbE1hcmdpbnM7CisgICAgSGFzaFNldDxDaGVja2VkUmVmPGNvbnN0
IEJveD4+IG1fY2xlYXJhbmNlU2V0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGQwYTdiYmNlYmQwZTlkOTE1MTMxNWNk
MjEyNGZkYzA5MmZiNjdiNTQuLjhiMmJhN2QxZWI2ZmQ1ZWNlYTFmMjk2ZjhmNmYzODg1Y2I3Yzk3
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KGNvbnN0IEZvcgogICAgIGF1dG8m
IGJveGVzID0gZm9ybWF0dGluZ1N0YXRlLmJveGVzKCk7CiAKICAgICBmb3IgKGF1dG8mIG91dE9m
Rmxvd0JveCA6IG91dE9mRmxvd0JveGVzKSB7Ci0gICAgICAgIGF1dG8mIG91dE9mRmxvd0dlb21l
dHJ5ID0gZm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gpOworICAgICAg
ICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShv
dXRPZkZsb3dCb3gpOwogICAgICAgICAvLyBCb3RoIHByZXZpb3VzIGZsb2F0IGFuZCBvdXQtb2Yt
ZmxvdyBib3hlcyBhcmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBvZiBhZGpvaW5pbmcgb3V0LW9m
LWZsb3cgYm94ZXMgc2hvdWxkIGFsbCBiZSBwbGFjZWQKICAgICAgICAgLy8gYXQgdGhlIHNhbWUg
c3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0LXNpYmxpbmcgcG9zaXRpb25z
KSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRoZSBpbmxpbmUgbGF5b3V0CiAg
ICAgICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiB0YWtlbiBpbnRvIGFj
Y291bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxldmVs
Qm94LmgKaW5kZXggZTIwNDUwMzQ0NzY3Y2UyNzNiNWY5OThiZjJkZjcwYjZjZDEwNDM0Zi4uMmVh
OWE1ZWE1MTg2ZjMyM2I4ZTY1NzA0ZThiZWY4YTA1N2MyYjc1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMZXZlbEJveC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiSW5saW5lUmVjdC5o
IgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCi0jaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExh
eW91dCB7CkBAIC05MCw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCi0gICAgY29uc3QgQm94JiBsYXlvdXRCb3goKSBj
b25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3g7IH0KKyAgICBjb25zdCBCb3gmIGxheW91dEJveCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94OyB9CiAKICAgICBJbmxpbmVMZXZlbEJveChjb25z
dCBCb3gmLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQs
IElubGluZUxheW91dFNpemUsIFR5cGUpOwogCkBAIC0xMTUsNyArMTE0LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldExheW91dEJvdW5kcyhjb25zdCBMYXlvdXRCb3VuZHMmIGxheW91dEJvdW5k
cykgeyBtX2xheW91dEJvdW5kcyA9IHsgSW5saW5lTGF5b3V0VW5pdChyb3VuZFRvSW50KGxheW91
dEJvdW5kcy5hc2NlbnQpKSwgSW5saW5lTGF5b3V0VW5pdChyb3VuZFRvSW50KGxheW91dEJvdW5k
cy5kZXNjZW50KSkgfTsgfQogCiBwcml2YXRlOgotICAgIFdlYWtQdHI8Y29uc3QgQm94PiBtX2xh
eW91dEJveDsKKyAgICBDaGVja2VkUmVmPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7CiAgICAgLy8g
VGhpcyBpcyB0aGUgY29tYmluYXRpb24gb2YgbWFyZ2luIGFuZCBib3JkZXIgYm94ZXMuIElubGlu
ZSBsZXZlbCBib3hlcyBhcmUgdmVydGljYWxseSBhbGlnbmVkIHVzaW5nIHRoZWlyIG1hcmdpbiBi
b3hlcy4KICAgICBJbmxpbmVSZWN0IG1fbG9naWNhbFJlY3Q7CiAgICAgTGF5b3V0Qm91bmRzIG1f
bGF5b3V0Qm91bmRzOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHByaXZhdGU6CiB9OwogCiBpbmxpbmUg
SW5saW5lTGV2ZWxCb3g6OklubGluZUxldmVsQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGlu
ZUxheW91dFNpemUgbG9naWNhbFNpemUsIFR5cGUgdHlwZSkKLSAgICA6IG1fbGF5b3V0Qm94KG1h
a2VXZWFrUHRyKGxheW91dEJveCkpCisgICAgOiBtX2xheW91dEJveChsYXlvdXRCb3gpCiAgICAg
LCBtX2xvZ2ljYWxSZWN0KHsgfSwgbG9naWNhbExlZnQsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxv
Z2ljYWxTaXplLmhlaWdodCgpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3N0eWxlKHsg
c3R5bGUuZm9udENhc2NhZGUoKS5wcmltYXJ5Rm9udCgpLmZvbnRNZXRyaWNzKCksIHN0eWxlLmxp
bmVIZWlnaHQoKSwgSW5saW5lTGF5b3V0VW5pdChzdHlsZS5mb250Q2FzY2FkZSgpLmZvbnREZXNj
cmlwdGlvbigpLmNvbXB1dGVkUGl4ZWxTaXplKCkpLCB7IH0gfSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCb3guaAppbmRleCBiNmQ4MDZmMzk1Y2EyNDUxOTBkNTQwOTgxMDk3YWE3ZTgzNjI2YmUz
Li45NGEzY2ZhMjgzOWNkMTU3ZjJjYjgzYjI1ZDIwZDFiYzFlNzMzMTNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJveC5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiSW5saW5lUmVj
dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIG5hbWVzcGFjZSBMYXlvdXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlCb3guaAppbmRleCA3MDU2ZTk3YzcyNGFlYmU2MGIwM2U4MjE1YzUzYzZiM2M5
MGFkY2QwLi5mY2NlNTg2YjFjNTljNzdlYmI5MzgzZWVlNWUwY2ZmZTBkYzg4ZGVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNw
bGF5L0lubGluZURpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaApAQCAtMTA3LDcg
KzEwNyw3IEBAIHN0cnVjdCBCb3ggewogICAgIH07CiAgICAgRXhwYW5zaW9uIGV4cGFuc2lvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9CiAKLSAgICBjb25zdCBMYXlvdXQ6OkJveCYg
bGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94OyB9CisgICAgY29uc3QgTGF5
b3V0OjpCb3gmIGxheW91dEJveCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94OyB9CiAgICAg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZTsgfQogCiAg
ICAgc2l6ZV90IGxpbmVJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUluZGV4OyB9CkBAIC0x
MTUsNyArMTE1LDcgQEAgc3RydWN0IEJveCB7CiBwcml2YXRlOgogICAgIGNvbnN0IHNpemVfdCBt
X2xpbmVJbmRleCB7IDAgfTsKICAgICBjb25zdCBUeXBlIG1fdHlwZSB7IFR5cGU6OkdlbmVyaWNJ
bmxpbmVMZXZlbEJveCB9OwotICAgIFdlYWtQdHI8Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5b3V0
Qm94OworICAgIENoZWNrZWRSZWY8Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5b3V0Qm94OwogICAg
IGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOwogICAgIExheW91dDo6SW5saW5lUmVjdCBtX2xv
Z2ljYWxSZWN0OwogICAgIExheW91dDo6SW5saW5lUmVjdCBtX2lua092ZXJmbG93OwpAQCAtMTI3
LDcgKzEyNyw3IEBAIHByaXZhdGU6CiBpbmxpbmUgQm94OjpCb3goc2l6ZV90IGxpbmVJbmRleCwg
VHlwZSB0eXBlLCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgbG9naWNhbFJlY3QsIGNvbnN0IExh
eW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIEV4cGFuc2lvbiBleHBhbnNpb24sIHN0ZDo6
b3B0aW9uYWw8VGV4dD4gdGV4dCwgYm9vbCBoYXNDb250ZW50KQogICAgIDogbV9saW5lSW5kZXgo
bGluZUluZGV4KQogICAgICwgbV90eXBlKHR5cGUpCi0gICAgLCBtX2xheW91dEJveChtYWtlV2Vh
a1B0cihsYXlvdXRCb3gpKQorICAgICwgbV9sYXlvdXRCb3gobGF5b3V0Qm94KQogICAgICwgbV9z
dHlsZShzdHlsZSkKICAgICAsIG1fbG9naWNhbFJlY3QobG9naWNhbFJlY3QpCiAgICAgLCBtX2lu
a092ZXJmbG93KGlua092ZXJmbG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwCmluZGV4IDQwZDMy
NDNmNmI0YzY2YTNhMmZkNmRhMzk1NjFlMzg5MjA3NGVhOTIuLmJmNDMzMThjMThiNWMzZDYwNGE0
MGNhYWFhNmY4NmQ0NGFlYWEyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5jcHAKQEAgLTM2LDcg
KzM2LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
VGFibGVHcmlkKTsKIAogVGFibGVHcmlkOjpDb2x1bW46OkNvbHVtbihjb25zdCBDb250YWluZXJC
b3gqIGNvbHVtbkJveCkKLSAgICA6IG1fbGF5b3V0Qm94KG1ha2VXZWFrUHRyKGNvbHVtbkJveCkp
CisgICAgOiBtX2xheW91dEJveChjb2x1bW5Cb3gpCiB7CiB9CiAKQEAgLTU2LDEyICs1NiwxMiBA
QCB2b2lkIFRhYmxlR3JpZDo6Um93czo6YWRkUm93KGNvbnN0IENvbnRhaW5lckJveCYgcm93Qm94
KQogfQogCiBUYWJsZUdyaWQ6OlJvdzo6Um93KGNvbnN0IENvbnRhaW5lckJveCYgcm93Qm94KQot
ICAgIDogbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIocm93Qm94KSkKKyAgICA6IG1fbGF5b3V0Qm94
KHJvd0JveCkKIHsKIH0KIAogVGFibGVHcmlkOjpDZWxsOjpDZWxsKGNvbnN0IENvbnRhaW5lckJv
eCYgY2VsbEJveCwgU2xvdFBvc2l0aW9uIHBvc2l0aW9uLCBDZWxsU3BhbiBzcGFuKQotICAgIDog
bV9sYXlvdXRCb3gobWFrZVdlYWtQdHIoY2VsbEJveCkpCisgICAgOiBtX2xheW91dEJveChjZWxs
Qm94KQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fc3BhbihzcGFuKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJs
ZS9UYWJsZUdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
dGFibGUvVGFibGVHcmlkLmgKaW5kZXggNWZjODkxZDNjYjczMzhhNzU5MzFmNGQ5ZDU1YWUwYTYz
OGIwODEyMS4uNjkxZjIyOTU3ZDg1NGFlNmJiNDhlMzc2MWE5NzY3Y2NjYzdmYmU1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJs
ZUdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3Rh
YmxlL1RhYmxlR3JpZC5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgTGF5b3V0
VW5pdCBtX3VzZWRMb2dpY2FsV2lkdGg7CiAgICAgICAgIExheW91dFVuaXQgbV91c2VkTG9naWNh
bExlZnQ7CiAgICAgICAgIExlbmd0aCBtX2NvbXB1dGVkTG9naWNhbFdpZHRoOwotICAgICAgICBX
ZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNrZWRQ
dHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX2xheW91dEJveDsKIAogI2lmIEFTU0VSVF9FTkFCTEVE
CiAgICAgICAgIGJvb2wgbV9oYXNVc2VkV2lkdGggeyBmYWxzZSB9OwpAQCAtMTIwLDEzICsxMjAs
MTMgQEAgcHVibGljOgogICAgICAgICB2b2lkIHNldEJhc2VsaW5lKElubGluZUxheW91dFVuaXQg
YmFzZWxpbmUpIHsgbV9iYXNlbGluZSA9IGJhc2VsaW5lOyB9CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgYmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VsaW5lOyB9CiAKLSAgICAgICAg
Y29uc3QgQ29udGFpbmVyQm94JiBib3goKSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3guZ2V0
KCk7IH0KKyAgICAgICAgY29uc3QgQ29udGFpbmVyQm94JiBib3goKSBjb25zdCB7IHJldHVybiBt
X2xheW91dEJveDsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgTGF5b3V0VW5pdCBtX2xvZ2lj
YWxUb3A7CiAgICAgICAgIExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0OwogICAgICAgICBJbmxp
bmVMYXlvdXRVbml0IG1fYmFzZWxpbmUgeyAwIH07Ci0gICAgICAgIFdlYWtQdHI8Y29uc3QgQ29u
dGFpbmVyQm94PiBtX2xheW91dEJveDsKKyAgICAgICAgQ2hlY2tlZFJlZjxjb25zdCBDb250YWlu
ZXJCb3g+IG1fbGF5b3V0Qm94OwogICAgIH07CiAKICAgICBjbGFzcyBSb3dzIHsKQEAgLTE2Nyw3
ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IENvbnRhaW5lckJveCYgYm94KCkgY29u
c3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94LmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBXZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNr
ZWRQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX2xheW91dEJveDsKICAgICAgICAgU2xvdFBvc2l0
aW9uIG1fcG9zaXRpb247CiAgICAgICAgIENlbGxTcGFuIG1fc3BhbjsKICAgICAgICAgSW5saW5l
TGF5b3V0VW5pdCBtX2Jhc2VsaW5lIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcApp
bmRleCA2Mzc3MmM2MGIxMzYwN2YwMjgwZWFiMTdhZjViMzg5ZjUwYTY1MTUyLi4zYmRjMzJiYWZk
MDAwZDE0MjA2ODcwNjIyZWNjMWE4MDQ5YTNjZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVl
LmNwcApAQCAtMTE0LDE0ICsxMTQsMTQgQEAgdm9pZCBCb3hUcmVlOjpidWlsZFRyZWUoKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1dG8mIGNoaWxkUmVuZGVyZXIgPSAqd2Fsa2Vy
LmN1cnJlbnQoKTsKICAgICAgICAgYXV0byBjaGlsZEJveCA9IGNyZWF0ZUNoaWxkQm94KGNoaWxk
UmVuZGVyZXIpOwotICAgICAgICBhcHBlbmRDaGlsZChXVEZNb3ZlKGNoaWxkQm94KSwgY2hpbGRS
ZW5kZXJlcik7CisgICAgICAgIGFwcGVuZENoaWxkKG1ha2VVbmlxdWVSZWZGcm9tTm9uTnVsbFVu
aXF1ZVB0cihXVEZNb3ZlKGNoaWxkQm94KSksIGNoaWxkUmVuZGVyZXIpOwogICAgIH0KIH0KIAot
dm9pZCBCb3hUcmVlOjphcHBlbmRDaGlsZChzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0OjpCb3g+IGNo
aWxkQm94LCBSZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpCit2b2lkIEJveFRyZWU6OmFwcGVu
ZENoaWxkKFVuaXF1ZVJlZjxMYXlvdXQ6OkJveD4gY2hpbGRCb3gsIFJlbmRlck9iamVjdCYgY2hp
bGRSZW5kZXJlcikKIHsKICAgICBhdXRvJiBwYXJlbnRCb3ggPSBkb3duY2FzdDxMYXlvdXQ6OkNv
bnRhaW5lckJveD4obGF5b3V0Qm94Rm9yUmVuZGVyZXIoKmNoaWxkUmVuZGVyZXIucGFyZW50KCkp
KTsKLSAgICBwYXJlbnRCb3guYXBwZW5kQ2hpbGQoKmNoaWxkQm94KTsKKyAgICBwYXJlbnRCb3gu
YXBwZW5kQ2hpbGQoY2hpbGRCb3guZ2V0KCkpOwogCiAgICAgbV9ib3hlcy5hcHBlbmQoeyBXVEZN
b3ZlKGNoaWxkQm94KSwgJmNoaWxkUmVuZGVyZXIgfSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBM
YXlvdXQ6OkJveCYgQm94VHJlZTo6bGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKICAgICAgICAgICAgIHJldHVybiBlbnRyeS5yZW5kZXJlciA9PSAmcmVu
ZGVyZXI7CiAgICAgICAgIH0pOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmRleCAhPSBub3RG
b3VuZCk7Ci0gICAgICAgIHJldHVybiAqbV9ib3hlc1tpbmRleF0uYm94OworICAgICAgICByZXR1
cm4gbV9ib3hlc1tpbmRleF0uYm94OwogICAgIH0KIAogICAgIHJldHVybiAqbV9yZW5kZXJlclRv
Qm94TWFwLmdldCgmcmVuZGVyZXIpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIFJlbmRlck9iamVjdCYg
Qm94VHJlZTo6cmVuZGVyZXJGb3JMYXlvdXRCb3goY29uc3QgTGF5b3V0OjpCb3gmIGJveCkKIAog
ICAgIGlmIChtX2JveGVzLnNpemUoKSA8PSBzbWFsbFRyZWVUaHJlc2hvbGQpIHsKICAgICAgICAg
YXV0byBpbmRleCA9IG1fYm94ZXMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiBlbnRyeSkgewotICAg
ICAgICAgICAgcmV0dXJuIGVudHJ5LmJveC5nZXQoKSA9PSAmYm94OworICAgICAgICAgICAgcmV0
dXJuIGVudHJ5LmJveC5wdHIoKSA9PSAmYm94OwogICAgICAgICB9KTsKICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoaW5kZXggIT0gbm90Rm91bmQpOwogICAgICAgICByZXR1cm4gKm1fYm94ZXNbaW5k
ZXhdLnJlbmRlcmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oCmluZGV4IDJjZDg1ZThjMGI5NDNi
YzJiY2I0Yzc5MTYxMDFiZTcyZTRiYjcyMmIuLjhlZmY4MDkxY2YyNzRlNmUwZWVjNmEwYjI1NDBi
MjFkOTI1MzE2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU5LDIxICs2MCwyMSBAQCBwdWJs
aWM6CiAgICAgc2l6ZV90IGJveENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9ib3hlcy5zaXplKCk7
IH0KIAogICAgIHN0cnVjdCBCb3hBbmRSZW5kZXJlciB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxMYXlvdXQ6OkJveD4gYm94OworICAgICAgICBVbmlxdWVSZWY8TGF5b3V0OjpCb3g+IGJveDsK
ICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciB7IG51bGxwdHIgfTsKICAgICB9OwogICAg
IGNvbnN0IGF1dG8mIGJveEFuZFJlbmRlcmVyTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fYm94ZXM7
IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGJ1aWxkVHJlZSgpOwotICAgIHZvaWQgYXBwZW5kQ2hp
bGQoc3RkOjp1bmlxdWVfcHRyPExheW91dDo6Qm94PiwgUmVuZGVyT2JqZWN0Jik7CisgICAgdm9p
ZCBhcHBlbmRDaGlsZChVbmlxdWVSZWY8TGF5b3V0OjpCb3g+LCBSZW5kZXJPYmplY3QmKTsKIAog
ICAgIFJlbmRlckJsb2NrRmxvdyYgbV9mbG93OwogICAgIExheW91dDo6SW5pdGlhbENvbnRhaW5p
bmdCbG9jayBtX3Jvb3Q7CiAgICAgVmVjdG9yPEJveEFuZFJlbmRlcmVyLCAxPiBtX2JveGVzOwog
Ci0gICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBMYXlvdXQ6OkJveCo+IG1fcmVuZGVy
ZXJUb0JveE1hcDsKLSAgICBIYXNoTWFwPGNvbnN0IExheW91dDo6Qm94KiwgUmVuZGVyT2JqZWN0
Kj4gbV9ib3hUb1JlbmRlcmVyTWFwOworICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0Kiwg
Q2hlY2tlZFJlZjxMYXlvdXQ6OkJveD4+IG1fcmVuZGVyZXJUb0JveE1hcDsKKyAgICBIYXNoTWFw
PENoZWNrZWRSZWY8Y29uc3QgTGF5b3V0OjpCb3g+LCBSZW5kZXJPYmplY3QqPiBtX2JveFRvUmVu
ZGVyZXJNYXA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
CmluZGV4IDk4MjljMzYyODE2YjRkNWM4YTNjN2Y1OTgxMDY4NGFmNWNjM2FlYmMuLjllZDdmMmUz
YTM5NjNiOTNjZjk2ZTEwMjkwMjJhZDBiMTdlODAyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bklubGluZUNvbnRlbnQuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CiAKIElubGluZUNvbnRlbnQ6OklubGluZUNv
bnRlbnQoY29uc3QgTGluZUxheW91dCYgbGluZUxheW91dCkKLSAgICA6IG1fbGluZUxheW91dCht
YWtlV2Vha1B0cihsaW5lTGF5b3V0KSkKKyAgICA6IG1fbGluZUxheW91dChsaW5lTGF5b3V0KQog
ewogfQogCkBAIC02MywxOSArNjMsMTQgQEAgSW5saW5lQ29udGVudDo6fklubGluZUNvbnRlbnQo
KQogICAgIH0KIH0KIAotY29uc3QgTGluZUxheW91dCYgSW5saW5lQ29udGVudDo6bGluZUxheW91
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICptX2xpbmVMYXlvdXQ7Ci19Ci0KIGNvbnN0IFJlbmRl
ck9iamVjdCYgSW5saW5lQ29udGVudDo6cmVuZGVyZXJGb3JMYXlvdXRCb3goY29uc3QgTGF5b3V0
OjpCb3gmIGxheW91dEJveCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9saW5lTGF5b3V0LT5yZW5k
ZXJlckZvckxheW91dEJveChsYXlvdXRCb3gpOworICAgIHJldHVybiBsaW5lTGF5b3V0KCkucmVu
ZGVyZXJGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKIH0KIAogY29uc3QgUmVuZGVyQmxvY2tGbG93
JiBJbmxpbmVDb250ZW50Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogewotICAgIHJldHVybiBt
X2xpbmVMYXlvdXQtPmZsb3coKTsKKyAgICByZXR1cm4gbGluZUxheW91dCgpLmZsb3coKTsKIH0K
IAogc2l6ZV90IElubGluZUNvbnRlbnQ6OmluZGV4Rm9yQm94KGNvbnN0IElubGluZURpc3BsYXk6
OkJveCYgYm94KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oCmluZGV4
IDJjZmNmMmI2NDk3ZjI1ZDkyMDlhNTRjZDVjZTcwNzI0OTc5OWEyY2UuLjBhNThiYTFkZjM0N2Zl
ZTI3NWMxYzQ2MjI5YmI4MGM1NDc3MmYyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVD
b250ZW50LmgKQEAgLTI5LDEwICsyOSw5IEBACiAKICNpbmNsdWRlICJJbmxpbmVEaXNwbGF5Qm94
LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSXRlcmF0b3JSYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY5LDcgKzY4LDcgQEAgc3RydWN0
IElubGluZUNvbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxJbmxpbmVDb250ZW50PiB7CiAgICAg
V1RGOjpJdGVyYXRvclJhbmdlPGNvbnN0IElubGluZURpc3BsYXk6OkJveCo+IGJveGVzRm9yUmVj
dChjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCi0g
ICAgY29uc3QgTGluZUxheW91dCYgbGluZUxheW91dCgpIGNvbnN0OworICAgIGNvbnN0IExpbmVM
YXlvdXQmIGxpbmVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2xpbmVMYXlvdXQ7IH0KICAgICBj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyRm9yTGF5b3V0Qm94KGNvbnN0IExheW91dDo6Qm94
JikgY29uc3Q7CiAgICAgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBj
b25zdDsKIApAQCAtODYsMTIgKzg1LDEyIEBAIHN0cnVjdCBJbmxpbmVDb250ZW50IDogcHVibGlj
IFJlZkNvdW50ZWQ8SW5saW5lQ29udGVudD4gewogcHJpdmF0ZToKICAgICBJbmxpbmVDb250ZW50
KGNvbnN0IExpbmVMYXlvdXQmKTsKIAotICAgIFdlYWtQdHI8Y29uc3QgTGluZUxheW91dD4gbV9s
aW5lTGF5b3V0OworICAgIENoZWNrZWRSZWY8Y29uc3QgTGluZUxheW91dD4gbV9saW5lTGF5b3V0
OwogCi0gICAgdXNpbmcgRmlyc3RCb3hJbmRleENhY2hlID0gV2Vha0hhc2hNYXA8TGF5b3V0OjpC
b3gsIHNpemVfdD47CisgICAgdXNpbmcgRmlyc3RCb3hJbmRleENhY2hlID0gSGFzaE1hcDxDaGVj
a2VkUmVmPGNvbnN0IExheW91dDo6Qm94Piwgc2l6ZV90PjsKICAgICBtdXRhYmxlIHN0ZDo6dW5p
cXVlX3B0cjxGaXJzdEJveEluZGV4Q2FjaGU+IG1fZmlyc3RCb3hJbmRleENhY2hlOwogCi0gICAg
dXNpbmcgSW5saW5lQm94SW5kZXhDYWNoZSA9IFdlYWtIYXNoTWFwPExheW91dDo6Qm94LCBWZWN0
b3I8c2l6ZV90Pj47CisgICAgdXNpbmcgSW5saW5lQm94SW5kZXhDYWNoZSA9IEhhc2hNYXA8Q2hl
Y2tlZFJlZjxjb25zdCBMYXlvdXQ6OkJveD4sIFZlY3RvcjxzaXplX3Q+PjsKICAgICBtdXRhYmxl
IHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVCb3hJbmRleENhY2hlPiBtX2lubGluZUJveEluZGV4Q2Fj
aGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IDhmN2MwMDdh
MTViZGJkNTMzZTg2ODIyYjQ1ODQ3ZjhmNTlkY2ExZGQuLmU1MTMzOTI5MGZlMjVmN2ZkZjE4MGMx
OGU2MDljMTIyYjkzODY4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBA
IC0yMzksNyArMjM5LDcgQEAgdm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KCkKIAog
ICAgIGF1dG8mIGJveEFuZFJlbmRlcmVyTGlzdCA9IG1fYm94VHJlZS5ib3hBbmRSZW5kZXJlckxp
c3QoKTsKICAgICBmb3IgKGF1dG8mIGJveEFuZFJlbmRlcmVyIDogYm94QW5kUmVuZGVyZXJMaXN0
KSB7Ci0gICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpib3hBbmRSZW5kZXJlci5ib3g7CisgICAg
ICAgIGF1dG8mIGxheW91dEJveCA9IGJveEFuZFJlbmRlcmVyLmJveC5nZXQoKTsKICAgICAgICAg
aWYgKCFsYXlvdXRCb3guaXNSZXBsYWNlZEJveCgpKQogICAgICAgICAgICAgY29udGludWU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaAppbmRleCBjYjc2YjUyZmFkMTgzZTdjNWYwZGYw
YmUwZGYwODMwNmJmMjM3MGQwLi5hNTU4MGIwMGU4YjRiYjlhNjFhZGU5M2NjNzRlMzU1NThjMTEx
N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCkBAIC0zNCw3ICszNCw3IEBACiAj
aW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1
ZGUgIlJlbmRlck9iamVjdEVudW1zLmgiCi0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvQ2hlY2tlZFB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU3LDcg
KzU3LDcgQEAgbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKIAogc3RydWN0IElubGluZUNv
bnRlbnQ7CiAKLWNsYXNzIExpbmVMYXlvdXQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TGluZUxh
eW91dD4geworY2xhc3MgTGluZUxheW91dCA6IHB1YmxpYyBDYW5NYWtlQ2hlY2tlZFB0ciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTGluZUxheW91dChSZW5k
ZXJCbG9ja0Zsb3cmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmgKaW5kZXggZjlkNmJmNTExODJlNjM3NDEwZDc4NjQ4ZjhmNTZlNjdlMDY3MWEyMS4uMzQy
NjE4OTBjMjFlOTUwMzE2ODA4YzUxYzViZmJjOWQxMWMzMWMyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTI5LDggKzI5LDggQEAKIAogI2lu
Y2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRl
IDx3dGYvQ2hlY2tlZFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgSW5pdGlhbENvbnRhaW5pbmdCbG9jazsKIGNsYXNzIExheW91dFN0YXRlOwogY2xh
c3MgVHJlZUJ1aWxkZXI7CiAKLWNsYXNzIEJveCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxCb3g+
IHsKK2NsYXNzIEJveCA6IHB1YmxpYyBDYW5NYWtlQ2hlY2tlZFB0ciB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChCb3gpOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgRWxlbWVudFR5cGUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVw
bGFjZWRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxh
Y2VkQm94LmgKaW5kZXggOGUxZmQzOTRhODVkMWNhMDcyNzExM2ZkMWJhZDY0YWYwMDU5OGY1YS4u
NDVmZTQ3NmQ3ZjBjOGM0ZTdiODcwNTkyMDZmZjYzZjUwZDlhYmZjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWRCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5oCkBAIC0z
Miw3ICszMiw2IEBACiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkxheW91dFVu
aXQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAppbmRl
eCA1MjVjZTYzYmJkZTEzMmVhYzRjZjY4Y2NmZDg1OGYzZjI2NmM2YjU5Li5iY2JmNDQyZjY5OTYz
NzdkNzAxYTc5NjU4MWU5NWQ1NWQ2Yjg3MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKQEAgLTI5LDcgKzI5LDYgQEAK
IAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439344</attachid>
            <date>2021-09-27 04:45:29 -0700</date>
            <delta_ts>2021-09-27 04:45:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230821-20210927144527.patch</filename>
            <type>text/plain</type>
            <size>39553</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyNTJiYjM1ZmNiMTExZDFkZjc3NTRj
NjVjYjRkZjBjZmJjNTEyMWEuLmJkOTQ2OWM0NzJlMTQ1NDU4NjUyZDRmNjQ5MTQwYzAyZTU0MWFk
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMjcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdIFVzZSBDaGVja2VkUmVmL1B0ciBpbnN0ZWFk
IG9mIFdlYWtQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDgyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL0NoZWNrZWRSZWYuaDoKKyAgICAgICAgKFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJC
YXNlOjppbmNyZW1lbnRQdHJDb3VudCBjb25zdCk6CisgICAgICAgIChXVEY6OkNhbk1ha2VDaGVj
a2VkUHRyQmFzZTo6ZGVjcmVtZW50UHRyQ291bnQgY29uc3QpOgorICAgICAgICAoV1RGOjpDYW5N
YWtlQ2hlY2tlZFB0ckJhc2U6OmluY3JlbWVudFB0ckNvdW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJCYXNlOjpkZWNyZW1lbnRQdHJDb3VudCk6IERlbGV0ZWQu
CisKKyAgICAgICAgTWFrZSBjb25zdCBzbyBDaGVja2VkUHRyPGNvbnN0IEZvbz4gd29ya3MuCisK
IDIwMjEtMDktMjYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgzMDgzIGFuZCByMjgzMDg4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDEzNjg2MjlhNDFjNGVmOGU4OTViMTliNWI1ZmU5YzdiYzA4MWQ4YjAuLjliOWQ0YzUx
YWM1YTZkMDc0ZGViZTkyZjhhMzI3OTFhZjBiNWZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAyMS0wOS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0xGQ10gVXNlIENoZWNrZWRSZWYvUHRyIGluc3RlYWQgb2YgV2Vha1B0cgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vha1B0cnMgYXJlIHVz
ZWQgZm9yIGxheW91dCBib3hlcyBmb3Igc2FmZXR5IG9ubHkuIFJlcGxhY2Ugd2l0aCBzaW1wbGVy
LCBmYXN0ZXIgQ2hlY2tlZFB0ci4KKworICAgICAgICAqIGRpc3BsYXkvRGlzcGxheVRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpidWlsZCk6
CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmFkZE91dE9mRmxvd0JveCk6CisgICAgICAgICogbGF5
b3V0L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3Rh
dGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6
OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1h
dHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3Rh
dGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L0xheW91
dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpyb290IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6Omhhc1Jvb3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmg6Cisg
ICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6RmxvYXRJdGVtOjpGbG9hdEl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1N0YXRlOjpGbG9hdGluZ1N0YXRlKToKKyAgICAg
ICAgKiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6RmxvYXRpbmdTdGF0ZTo6cm9vdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dDb250ZW50
KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpyb290IGNv
bnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9y
bWF0dGluZ1N0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uRm9yT3V0T2ZG
bG93Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGV2ZWxCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGV2ZWxC
b3g6OmxheW91dEJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxl
dmVsQm94OjpJbmxpbmVMZXZlbEJveCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5oOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpsYXlvdXRCb3ggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpCb3gpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VGFibGVHcmlkOjpDb2x1bW46OkNvbHVtbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlRhYmxlR3JpZDo6Um93OjpSb3cpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUdy
aWQ6OkNlbGw6OkNlbGwpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFi
bGUvVGFibGVHcmlkLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6Um93
Ojpib3ggY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkJveFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJv
eFRyZWU6OmJ1aWxkVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
Qm94VHJlZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OkJveFRyZWU6OmxheW91dEJveEZvclJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpCb3hUcmVlOjpyZW5kZXJlckZvckxheW91dEJveCk6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oOgorICAgICAg
ICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQ6Oklu
bGluZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGlu
ZUNvbnRlbnQ6OnJlbmRlcmVyRm9yTGF5b3V0Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50Ojpjb250YWluaW5nQmxvY2sgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQ6Omxp
bmVMYXlvdXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50OjpsaW5lTGF5b3V0IGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0Lmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRDYWNoZWRHZW9tZXRyeUZvckxheW91
dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaDoK
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5oOgorICAgICAg
ICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmg6CisKIDIwMjEtMDktMjYg
IEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBhcHBl
bmRpbmcgdG8gdGhlIHNvdXJjZSBidWZmZXIgd2lsbCBub3QgdGhyb3cgd2hlbiB0aGUgc291cmNl
IGJ1ZmZlciBpcyBmdWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5oCmluZGV4IGQyYmMxY2FjZTMzMjRhYTQzMzQ3
OTBmZjY5Y2I3NDRmZDc5ZWUyMmEuLjhiMjAzYjVhM2NlY2Q2NzIyN2JjN2E1ZWE5OTY1OTlkOGRi
ZmM4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRSZWYuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkUmVmLmgKQEAgLTIzMCwxMSArMjMwLDExIEBAIHB1YmxpYzoKICAg
ICB+Q2FuTWFrZUNoZWNrZWRQdHJCYXNlKCkgeyBSRUxFQVNFX0FTU0VSVCghbV9jb3VudCk7IH0K
IAogICAgIFB0ckNvdW50ZXJUeXBlIHB0ckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jb3VudDsg
fQotICAgIHZvaWQgaW5jcmVtZW50UHRyQ291bnQoKSB7ICsrbV9jb3VudDsgfQotICAgIHZvaWQg
ZGVjcmVtZW50UHRyQ291bnQoKSB7IEFTU0VSVChtX2NvdW50KTsgLS1tX2NvdW50OyB9CisgICAg
dm9pZCBpbmNyZW1lbnRQdHJDb3VudCgpIGNvbnN0IHsgKyttX2NvdW50OyB9CisgICAgdm9pZCBk
ZWNyZW1lbnRQdHJDb3VudCgpIGNvbnN0IHsgQVNTRVJUKG1fY291bnQpOyAtLW1fY291bnQ7IH0K
IAogcHJpdmF0ZToKLSAgICBTdG9yYWdlVHlwZSBtX2NvdW50IHsgMCB9OworICAgIG11dGFibGUg
U3RvcmFnZVR5cGUgbV9jb3VudCB7IDAgfTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBJbnRl
Z3JhbFR5cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5j
cHAKaW5kZXggYzdlZmQ2OGRkYjhkMGIzMDQ2YTlmNDQ5ZTY5ZjBiYWVlZGVjNzkzOC4uNWQ4YTUx
MThjMzA3OWMxNmY4MTI1Y2QzMjUzNjE4MTE4OWEyOThjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcApAQCAtMTE5LDggKzExOSw2IEBAIFRyZWVC
dWlsZGVyOjp+VHJlZUJ1aWxkZXIoKSA9IGRlZmF1bHQ7CiAKIHN0ZDo6dW5pcXVlX3B0cjxUcmVl
PiBUcmVlQnVpbGRlcjo6YnVpbGQoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUpCiB7Ci0gICAgQVNTRVJUKGxheW91dFN0YXRlLmhhc1Jvb3QoKSk7Ci0KICAgICBhdXRvJiBy
b290TGF5b3V0Qm94ID0gbGF5b3V0U3RhdGUucm9vdCgpOwogCiAjaWYgRU5BQkxFKFRSRUVfREVC
VUdHSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IDVjZTBk
M2JiMTVlNzcxN2FkMGM2YjliY2QzNTgyMGFkNDBhYzdjZTYuLjAyNDQwMDg0ZjUzYjI1Y2ZmYzMy
NmZlMzliYTUxNzkyYzc1NzY0ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0
YXRlLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJGb3JtYXR0aW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBM
YXlvdXQgewpAQCAtNjUsOCArNjQsOCBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFdlIG5lZWQg
dG8gZmluZCBhIHdheSB0byBsaW1pdCBhY2Nlc3MgdG8gbXV0YXRhYmxlIGdlb21ldHJ5LgogICAg
IEJveEdlb21ldHJ5JiBib3hHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCk7CiAgICAgLy8g
U2luY2Ugd2UgbGF5b3V0IHRoZSBvdXQtb2YtZmxvdyBib3hlcyBhdCB0aGUgZW5kIG9mIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQgbGF5b3V0LCBpdCdzIG9rYXkgdG8gc3RvcmUgdGhlbSBpbiB0aGUg
Zm9ybWF0dGluZyBzdGF0ZSAtYXMgb3Bwb3NlZCB0byB0aGUgY29udGFpbmluZyBibG9jayBsZXZl
bC4KLSAgICB1c2luZyBPdXRPZkZsb3dCb3hMaXN0ID0gVmVjdG9yPFdlYWtQdHI8Y29uc3QgQm94
Pj47Ci0gICAgdm9pZCBhZGRPdXRPZkZsb3dCb3goY29uc3QgQm94JiBvdXRPZkZsb3dCb3gpIHsg
bV9vdXRPZkZsb3dCb3hlcy5hcHBlbmQobWFrZVdlYWtQdHIob3V0T2ZGbG93Qm94KSk7IH0KKyAg
ICB1c2luZyBPdXRPZkZsb3dCb3hMaXN0ID0gVmVjdG9yPENoZWNrZWRSZWY8Y29uc3QgQm94Pj47
CisgICAgdm9pZCBhZGRPdXRPZkZsb3dCb3goY29uc3QgQm94JiBvdXRPZkZsb3dCb3gpIHsgbV9v
dXRPZkZsb3dCb3hlcy5hcHBlbmQob3V0T2ZGbG93Qm94KTsgfQogICAgIHZvaWQgcmVtb3ZlT3V0
T2ZGbG93Qm94KGNvbnN0IEJveCYpOwogICAgIGNvbnN0IE91dE9mRmxvd0JveExpc3QmIG91dE9m
Rmxvd0JveGVzKCkgY29uc3QgeyByZXR1cm4gbV9vdXRPZkZsb3dCb3hlczsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcAppbmRleCAwZDAyMWY0NDVkNTE1YmFlOTIzODdiYWE4
NDVmODM5MWYyNWRkMGJlLi45NmJkMTdmYTAxNDg2YTU2ZjFlNWJkOWJmZGU3N2FhOGE3ZGNlOTZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAg
bmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGF5b3V0U3Rh
dGUpOwogCiBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBDb250YWluZXJCb3gmIHJvb3RDb250YWluZXIpCi0gICAgOiBtX3Jvb3RDb250YWlu
ZXIobWFrZVdlYWtQdHIocm9vdENvbnRhaW5lcikpCisgICAgOiBtX3Jvb3RDb250YWluZXIocm9v
dENvbnRhaW5lcikKIHsKICAgICAvLyBJdCBtYWtlcyBhYnNvbHV0ZWx5IG5vIHNlbnNlIHRvIGNv
bnN0cnVjdCBhIGRlZGljYXRlZCBsYXlvdXQgc3RhdGUgZm9yIGEgbm9uLWZvcm1hdHRpbmcgY29u
dGV4dCByb290IChsYXlvdXQgd291bGQgYmUgYSBuby1vcCkuCiAgICAgQVNTRVJUKHJvb3QoKS5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwpAQCAtMTAxLDcgKzEwMSw3IEBAIEZvcm1h
dHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250
ZXh0KGNvbnN0IENvbnRhaW5lCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRp
b25FbmFibGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0g
bV9yb290Q29udGFpbmVyLmdldCgpKTsKKyAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4
dFJvb3QgPT0gbV9yb290Q29udGFpbmVyLnB0cigpKTsKICAgICAgICAgcmV0dXJuICptX3Jvb3RJ
bmxpbmVGb3JtYXR0aW5nU3RhdGVGb3JJbnRlZ3JhdGlvbjsKICAgICB9CiAKQEAgLTEyNSw3ICsx
MjUsNyBAQCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpmb3JtYXR0aW5nU3Rh
dGVGb3JJbmxpbmVGb3JtYXR0aW5nQ29udGV4dChjbwogICAgIEFTU0VSVChpbmxpbmVGb3JtYXR0
aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKTsKIAog
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxheW91dEZv
cm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCZp
bmxpbmVGb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0gbV9yb290Q29udGFpbmVyLmdldCgpKTsKKyAg
ICAgICAgQVNTRVJUKCZpbmxpbmVGb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0gbV9yb290Q29udGFp
bmVyLnB0cigpKTsKICAgICAgICAgcmV0dXJuICptX3Jvb3RJbmxpbmVGb3JtYXR0aW5nU3RhdGVG
b3JJbnRlZ3JhdGlvbjsKICAgICB9CiAKQEAgLTE3MSw3ICsxNzEsNyBAQCBJbmxpbmVGb3JtYXR0
aW5nU3RhdGUmIExheW91dFN0YXRlOjplbnN1cmVJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY29uc3Qg
Q29udGFpbmVyQgogCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkgewogICAg
ICAgICBpZiAoIW1fcm9vdElubGluZUZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9uKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWlu
ZXIuZ2V0KCkpOworICAgICAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0g
bV9yb290Q29udGFpbmVyLnB0cigpKTsKICAgICAgICAgICAgIG1fcm9vdElubGluZUZvcm1hdHRp
bmdTdGF0ZUZvckludGVncmF0aW9uID0gY3JlYXRlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuICptX3Jvb3RJbmxpbmVGb3JtYXR0aW5nU3RhdGVGb3JJbnRlZ3JhdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dFN0YXRlLmgKaW5kZXggNTE0YmQ5NjAwNDMwMGJiMjIxM2E4Y2UwMTJkNGQw
NGUyZDc2M2RjNC4uY2E3ZDI5ZGIyZDAyMTgwNTg1OGRkMGYyMzJlMDg1MzlhOWQzNjFiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAgLTg0LDggKzg0LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaW5MaW1pdGVkUXVpcmtzTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVpcmtzTW9k
ZSA9PSBRdWlya3NNb2RlOjpMaW1pdGVkOyB9CiAgICAgYm9vbCBpblN0YW5kYXJkc01vZGUoKSBj
b25zdCB7IHJldHVybiBtX3F1aXJrc01vZGUgPT0gUXVpcmtzTW9kZTo6Tm87IH0KIAotICAgIGJv
b2wgaGFzUm9vdCgpIGNvbnN0IHsgcmV0dXJuICEhbV9yb290Q29udGFpbmVyOyB9Ci0gICAgY29u
c3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4gKm1fcm9vdENvbnRhaW5lcjsg
fQorICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENv
bnRhaW5lcjsgfQogCiAgICAgLy8gTEZDIGludGVncmF0aW9uIG9ubHkuIEZ1bGwgTEZDIGhhcyBw
cm9wZXIgSUNCIGFjY2Vzcy4KICAgICB2b2lkIHNldFZpZXdwb3J0U2l6ZShjb25zdCBMYXlvdXRT
aXplJik7CkBAIC0xMTMsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPGNvbnN0IEJv
eCosIHN0ZDo6dW5pcXVlX3B0cjxCb3hHZW9tZXRyeT4+IG1fbGF5b3V0Qm94VG9Cb3hHZW9tZXRy
eTsKICAgICBRdWlya3NNb2RlIG1fcXVpcmtzTW9kZSB7IFF1aXJrc01vZGU6Ok5vIH07CiAKLSAg
ICBXZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9yb290Q29udGFpbmVyOworICAgIENoZWNr
ZWRSZWY8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jvb3RDb250YWluZXI7CiAKICAgICAvLyBMRkMg
aW50ZWdyYXRpb24gb25seS4KICAgICBMYXlvdXRTaXplIG1fdmlld3BvcnRTaXplOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmgKaW5kZXggN2E2YWFlMDBiYzRk
MzQxZjE0MTQyNTNiZWU0NzgyYjg5ZmViNmZiNy4uZGM5MjRlOGJjNjIxMGQ4NWMxNTFlMDY5MzY5
MTNkNWFkZDdhZmM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9G
bG9hdEF2b2lkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZv
aWRlci5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNs
dWRlICJMYXlvdXRVbml0cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwCmluZGV4IGI5YmNkYTAwNmQ3MWM1
ZWZiMzdiY2MyZWEwNzIyOTkzM2M0MmI4YTEuLjY0ZmRmOTM4ZjI1NTBmNjU0MzdkNDQyMzdlMWU0
M2U2ZjQxZDVmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxv
YXRpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGlu
Z1N0YXRlLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChGbG9hdGluZ1N0YXRlKTsKIAogRmxvYXRpbmdTdGF0ZTo6Rmxv
YXRJdGVtOjpGbG9hdEl0ZW0oY29uc3QgQm94JiBsYXlvdXRCb3gsIEJveEdlb21ldHJ5IGFic29s
dXRlQm94R2VvbWV0cnkpCi0gICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0cihsYXlvdXRCb3gp
KQorICAgIDogbV9sYXlvdXRCb3gobGF5b3V0Qm94KQogICAgICwgbV9wb3NpdGlvbihsYXlvdXRC
b3guaXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkgPyBQb3NpdGlvbjo6TGVmdCA6IFBvc2l0aW9u
OjpSaWdodCkKICAgICAsIG1fYWJzb2x1dGVCb3hHZW9tZXRyeShhYnNvbHV0ZUJveEdlb21ldHJ5
KQogewpAQCAtNTUsNyArNTUsNyBAQCBGbG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW06OkZsb2F0SXRl
bShQb3NpdGlvbiBwb3NpdGlvbiwgQm94R2VvbWV0cnkgYWJzb2x1dGVCb3hHZQogCiBGbG9hdGlu
Z1N0YXRlOjpGbG9hdGluZ1N0YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgQ29u
dGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiAgICAgOiBtX2xheW91dFN0YXRlKGxh
eW91dFN0YXRlKQotICAgICwgbV9mb3JtYXR0aW5nQ29udGV4dFJvb3QobWFrZVdlYWtQdHIoZm9y
bWF0dGluZ0NvbnRleHRSb290KSkKKyAgICAsIG1fZm9ybWF0dGluZ0NvbnRleHRSb290KGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRz
L0Zsb2F0aW5nU3RhdGUuaAppbmRleCBiNWM2ZmUxM2Y0YWUyMGI3MzU2YTA3Mzk2NWVmNzJjNThj
YWRlMmUwLi42NzM3Y2RhYjNkOWVlNjQxYzNhZjcwMDlkNzZkNTM1ZjlhNDc2OTdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaApAQCAtMzEsNyArMzEs
NiBAQAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw3ICs0OCw3IEBAIGNsYXNzIEZsb2F0aW5n
U3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGbG9hdGluZ1N0YXRlPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGUoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRl
LCBjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGbG9hdGluZ1N0YXRlKGxheW91dFN0YXRlLCBmb3JtYXR0aW5nQ29udGV4dFJv
b3QpKTsgfQogCi0gICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4g
Km1fZm9ybWF0dGluZ0NvbnRleHRSb290OyB9CisgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290
KCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7IH0KIAogICAgIGNsYXNz
IEZsb2F0SXRlbSB7CiAgICAgcHVibGljOgpAQCAtNzAsNyArNjksNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGNvbnN0IEJveCogZmxvYXRCb3goKSBjb25zdCB7IHJldHVybiBtX2xheW91dEJveC5nZXQo
KTsgfQogI2VuZGlmCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2Vha1B0cjxjb25zdCBCb3g+IG1f
bGF5b3V0Qm94OworICAgICAgICBDaGVja2VkUHRyPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7CiAg
ICAgICAgIFBvc2l0aW9uIG1fcG9zaXRpb247CiAgICAgICAgIEJveEdlb21ldHJ5IG1fYWJzb2x1
dGVCb3hHZW9tZXRyeTsKICAgICB9OwpAQCAtODcsNyArODYsNyBAQCBwcml2YXRlOgogICAgIExh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0U3RhdGU7IH0K
IAogICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOwotICAgIFdlYWtQdHI8Y29uc3QgQ29u
dGFpbmVyQm94PiBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdDsKKyAgICBDaGVja2VkUmVmPGNvbnN0
IENvbnRhaW5lckJveD4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7CiAgICAgRmxvYXRMaXN0IG1f
ZmxvYXRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA5ZGEzYjUzYTJm
YWM1ODI4MDUwNjQ5NDA2YzIwNTFiNzYxYzIyY2M4Li5mMTA0MjE0NDk1MTQxMTQ0OThhZGIyOTkz
YTdiZWM3MzFjNWQzYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNDksNyAr
NDksNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChG
b3JtYXR0aW5nQ29udGV4dCk7CiAKIEZvcm1hdHRpbmdDb250ZXh0OjpGb3JtYXR0aW5nQ29udGV4
dChjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgRm9ybWF0dGluZ1N0
YXRlJiBmb3JtYXR0aW5nU3RhdGUpCi0gICAgOiBtX3Jvb3QobWFrZVdlYWtQdHIoZm9ybWF0dGlu
Z0NvbnRleHRSb290KSkKKyAgICA6IG1fcm9vdChmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiAgICAg
LCBtX2Zvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nU3RhdGUpCiB7CiAgICAgQVNTRVJUKGZvcm1h
dHRpbmdDb250ZXh0Um9vdC5oYXNDaGlsZCgpKTsKQEAgLTE0MSwyNyArMTQxLDI3IEBAIHZvaWQg
Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0NvbnRlbnQoY29uc3QgQ29uc3RyYWlu
dHNGb3JPdXRPZkZsb3dDb250CiAgICAgY29sbGVjdE91dE9mRmxvd0Rlc2NlbmRhbnRzSWZOZWVk
ZWQoKTsKIAogICAgIGF1dG8gY29uc3RyYWludHNGb3JMYXlvdXRCb3ggPSBbJl0gKGNvbnN0IGF1
dG8mIG91dE9mRmxvd0JveCkgewotICAgICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSBvdXRP
ZkZsb3dCb3guY29udGFpbmluZ0Jsb2NrKCk7CisgICAgICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9j
ayA9IG91dE9mRmxvd0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIHJldHVybiAmY29u
dGFpbmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6IGZvcm1hdHRpbmdHZW9tZXRy
eSgpLmNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudChjb250YWluaW5nQmxvY2spOwogICAg
IH07CiAKICAgICBmb3IgKGF1dG8mIG91dE9mRmxvd0JveCA6IGZvcm1hdHRpbmdTdGF0ZSgpLm91
dE9mRmxvd0JveGVzKCkpIHsKICAgICAgICAgQVNTRVJUKG91dE9mRmxvd0JveC0+ZXN0YWJsaXNo
ZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tDb25z
dHJhaW50cyA9IGNvbnN0cmFpbnRzRm9yTGF5b3V0Qm94KCpvdXRPZkZsb3dCb3gpOworICAgICAg
ICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzID0gY29uc3RyYWludHNGb3JMYXlvdXRC
b3gob3V0T2ZGbG93Qm94KTsKICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JC
b3JkZXJBbmRQYWRkaW5nID0gSG9yaXpvbnRhbENvbnN0cmFpbnRzIHsgY29udGFpbmluZ0Jsb2Nr
Q29uc3RyYWludHMuaG9yaXpvbnRhbC5sb2dpY2FsTGVmdCwgY29udGFpbmluZ0Jsb2NrQ29uc3Ry
YWludHMuYm9yZGVyQW5kUGFkZGluZ0NvbnN0cmFpbnRzIH07Ci0gICAgICAgIGNvbXB1dGVCb3Jk
ZXJBbmRQYWRkaW5nKCpvdXRPZkZsb3dCb3gsIGhvcml6b250YWxDb25zdHJhaW50c0ZvckJvcmRl
ckFuZFBhZGRpbmcpOworICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhvdXRPZkZsb3dC
b3gsIGhvcml6b250YWxDb25zdHJhaW50c0ZvckJvcmRlckFuZFBhZGRpbmcpOwogCi0gICAgICAg
IGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoKm91dE9mRmxvd0JveCwgY29udGFp
bmluZ0Jsb2NrQ29uc3RyYWludHMpOwotICAgICAgICBhdXRvIG91dE9mRmxvd0JveEhhc0NvbnRl
bnQgPSBpczxDb250YWluZXJCb3g+KCpvdXRPZkZsb3dCb3gpICYmIGRvd25jYXN0PENvbnRhaW5l
ckJveD4oKm91dE9mRmxvd0JveCkuaGFzQ2hpbGQoKTsKKyAgICAgICAgY29tcHV0ZU91dE9mRmxv
d0hvcml6b250YWxHZW9tZXRyeShvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgYXV0byBvdXRPZkZsb3dCb3hIYXNDb250ZW50ID0gaXM8Q29udGFpbmVy
Qm94PihvdXRPZkZsb3dCb3guZ2V0KCkpICYmIGRvd25jYXN0PENvbnRhaW5lckJveD4ob3V0T2ZG
bG93Qm94LmdldCgpKS5oYXNDaGlsZCgpOwogICAgICAgICBpZiAob3V0T2ZGbG93Qm94SGFzQ29u
dGVudCkgewotICAgICAgICAgICAgYXV0byYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFp
bmVyQm94Pigqb3V0T2ZGbG93Qm94KTsKKyAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9
IGRvd25jYXN0PENvbnRhaW5lckJveD4ob3V0T2ZGbG93Qm94LmdldCgpKTsKICAgICAgICAgICAg
IGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5n
Q29udGV4dChjb250YWluZXJCb3gsIGxheW91dFN0YXRlKCkpOwogICAgICAgICAgICAgaWYgKGNv
bnRhaW5lckJveC5oYXNJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKSkKICAgICAgICAgICAgICAgICBm
b3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0SW5GbG93Q29udGVudChmb3JtYXR0aW5nR2VvbWV0cnko
KS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmVyQm94KSk7CiAgICAgICAgICAg
ICBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb250YWluZXJCb3gsIGNvbnRhaW5p
bmdCbG9ja0NvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlv
dXRPdXRPZkZsb3dDb250ZW50KGZvcm1hdHRpbmdHZW9tZXRyeSgpLmNvbnN0cmFpbnRzRm9yT3V0
T2ZGbG93Q29udGVudChjb250YWluZXJCb3gpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSgqb3V0T2ZGbG93Qm94LCBjb250YWlu
aW5nQmxvY2tDb25zdHJhaW50cyk7CisgICAgICAgICAgICBjb21wdXRlT3V0T2ZGbG93VmVydGlj
YWxHZW9tZXRyeShvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKICAg
ICB9CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0g
PDwgIkVuZDogbGF5b3V0IG91dC1vZi1mbG93IGNvbnRlbnQgLT4gY29udGV4dDogIiA8PCAmbGF5
b3V0U3RhdGUoKSA8PCAiIHJvb3Q6ICIgPDwgJnJvb3QoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250
ZXh0LmgKaW5kZXggNDY1MmNhYjM0MDBhOWM3ZDY0M2VjYWZmNGQyZTlhZTVjOGVhMGNkZi4uMjI2
YzY0NGY4NDZhZDQwNTVhYWM1MTJiNWZjOWU4NGNhZTM1NjFjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0Nv
bnRleHQuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkxheW91dFVuaXQuaCIKICNpbmNs
dWRlICJMYXlvdXRVbml0cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYyLDcgKzYxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRl
ZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSA9IDA7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0
IHVzZWRDb250ZW50SGVpZ2h0KCkgY29uc3QgPSAwOwogCi0gICAgY29uc3QgQ29udGFpbmVyQm94
JiByb290KCkgY29uc3QgeyByZXR1cm4gKm1fcm9vdDsgfQorICAgIGNvbnN0IENvbnRhaW5lckJv
eCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdDsgfQogICAgIExheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSgpIGNvbnN0OwogICAgIGNvbnN0IEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEZvcm1hdHRpbmdHZW9tZXRyeSYgZm9ybWF0dGluZ0dlb21ldHJ5KCkgY29uc3QgPSAwOwpA
QCAtMTAxLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVy
dGljYWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0Nv
bnRlbnQmKTsKICAgICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29u
c3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50Jik7CiAKLSAgICBX
ZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9yb290OworICAgIENoZWNrZWRSZWY8Y29uc3Qg
Q29udGFpbmVyQm94PiBtX3Jvb3Q7CiAgICAgRm9ybWF0dGluZ1N0YXRlJiBtX2Zvcm1hdHRpbmdT
dGF0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nU3RhdGUuaAppbmRl
eCAxZTZjZDYxOWRkMzE2ZjU5YjNmNDA5YmYzNWQ3MDk2ZDlmYjdjOGIxLi4xZGM2Nzg4MjZkMWRm
OTg4OTdmNDYwYzhkODIxOWM0YTk4ODY2NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zv
cm1hdHRpbmdTdGF0ZS5oCkBAIC0yOCw4ICsyOCw4IEBACiAjaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCiAKICNpbmNsdWRlICJGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRlIDx3
dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91
dCB7CkBAIC00MSwxNyArNDEsMTcgQEAgcHVibGljOgogICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRl
KFJlZjxGbG9hdGluZ1N0YXRlPiYmLCBMYXlvdXRTdGF0ZSYpOwogICAgIH5CbG9ja0Zvcm1hdHRp
bmdTdGF0ZSgpOwogCi0gICAgdm9pZCBzZXRVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IFVzZWRWZXJ0aWNhbE1hcmdpbiYgdXNlZFZlcnRpY2FsTWFyZ2luKSB7
IG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5zZXQoJmxheW91dEJveCwgdXNlZFZlcnRpY2FsTWFyZ2lu
KTsgfQotICAgIFVzZWRWZXJ0aWNhbE1hcmdpbiB1c2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94
JiBsYXlvdXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5nZXQoJmxh
eW91dEJveCk7IH0KLSAgICBib29sIGhhc1VzZWRWZXJ0aWNhbE1hcmdpbihjb25zdCBCb3gmIGxh
eW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2VkVmVydGljYWxNYXJnaW5zLmNvbnRhaW5zKCZs
YXlvdXRCb3gpOyB9CisgICAgdm9pZCBzZXRVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IFVzZWRWZXJ0aWNhbE1hcmdpbiYgdXNlZFZlcnRpY2FsTWFyZ2luKSB7
IG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5zZXQobGF5b3V0Qm94LCB1c2VkVmVydGljYWxNYXJnaW4p
OyB9CisgICAgVXNlZFZlcnRpY2FsTWFyZ2luIHVzZWRWZXJ0aWNhbE1hcmdpbihjb25zdCBCb3gm
IGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2VkVmVydGljYWxNYXJnaW5zLmdldChsYXlv
dXRCb3gpOyB9CisgICAgYm9vbCBoYXNVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5jb250YWlucyhsYXlv
dXRCb3gpOyB9CiAKICAgICB2b2lkIHNldEhhc0NsZWFyYW5jZShjb25zdCBCb3gmIGxheW91dEJv
eCkgeyBtX2NsZWFyYW5jZVNldC5hZGQobGF5b3V0Qm94KTsgfQogICAgIHZvaWQgY2xlYXJIYXND
bGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRCb3gpIHsgbV9jbGVhcmFuY2VTZXQucmVtb3ZlKGxh
eW91dEJveCk7IH0KICAgICBib29sIGhhc0NsZWFyYW5jZShjb25zdCBCb3gmIGxheW91dEJveCkg
Y29uc3QgeyByZXR1cm4gbV9jbGVhcmFuY2VTZXQuY29udGFpbnMobGF5b3V0Qm94KTsgfQogCiBw
cml2YXRlOgotICAgIEhhc2hNYXA8Y29uc3QgQm94KiwgVXNlZFZlcnRpY2FsTWFyZ2luPiBtX3Vz
ZWRWZXJ0aWNhbE1hcmdpbnM7Ci0gICAgV2Vha0hhc2hTZXQ8Y29uc3QgQm94PiBtX2NsZWFyYW5j
ZVNldDsKKyAgICBIYXNoTWFwPENoZWNrZWRSZWY8Y29uc3QgQm94PiwgVXNlZFZlcnRpY2FsTWFy
Z2luPiBtX3VzZWRWZXJ0aWNhbE1hcmdpbnM7CisgICAgSGFzaFNldDxDaGVja2VkUmVmPGNvbnN0
IEJveD4+IG1fY2xlYXJhbmNlU2V0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGQwYTdiYmNlYmQwZTlkOTE1MTMxNWNk
MjEyNGZkYzA5MmZiNjdiNTQuLjhiMmJhN2QxZWI2ZmQ1ZWNlYTFmMjk2ZjhmNmYzODg1Y2I3Yzk3
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KGNvbnN0IEZvcgogICAgIGF1dG8m
IGJveGVzID0gZm9ybWF0dGluZ1N0YXRlLmJveGVzKCk7CiAKICAgICBmb3IgKGF1dG8mIG91dE9m
Rmxvd0JveCA6IG91dE9mRmxvd0JveGVzKSB7Ci0gICAgICAgIGF1dG8mIG91dE9mRmxvd0dlb21l
dHJ5ID0gZm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gpOworICAgICAg
ICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShv
dXRPZkZsb3dCb3gpOwogICAgICAgICAvLyBCb3RoIHByZXZpb3VzIGZsb2F0IGFuZCBvdXQtb2Yt
ZmxvdyBib3hlcyBhcmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBvZiBhZGpvaW5pbmcgb3V0LW9m
LWZsb3cgYm94ZXMgc2hvdWxkIGFsbCBiZSBwbGFjZWQKICAgICAgICAgLy8gYXQgdGhlIHNhbWUg
c3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0LXNpYmxpbmcgcG9zaXRpb25z
KSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRoZSBpbmxpbmUgbGF5b3V0CiAg
ICAgICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiB0YWtlbiBpbnRvIGFj
Y291bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxldmVs
Qm94LmgKaW5kZXggZTIwNDUwMzQ0NzY3Y2UyNzNiNWY5OThiZjJkZjcwYjZjZDEwNDM0Zi4uMmVh
OWE1ZWE1MTg2ZjMyM2I4ZTY1NzA0ZThiZWY4YTA1N2MyYjc1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMZXZlbEJveC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiSW5saW5lUmVjdC5o
IgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCi0jaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExh
eW91dCB7CkBAIC05MCw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCi0gICAgY29uc3QgQm94JiBsYXlvdXRCb3goKSBj
b25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3g7IH0KKyAgICBjb25zdCBCb3gmIGxheW91dEJveCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94OyB9CiAKICAgICBJbmxpbmVMZXZlbEJveChjb25z
dCBCb3gmLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQs
IElubGluZUxheW91dFNpemUsIFR5cGUpOwogCkBAIC0xMTUsNyArMTE0LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldExheW91dEJvdW5kcyhjb25zdCBMYXlvdXRCb3VuZHMmIGxheW91dEJvdW5k
cykgeyBtX2xheW91dEJvdW5kcyA9IHsgSW5saW5lTGF5b3V0VW5pdChyb3VuZFRvSW50KGxheW91
dEJvdW5kcy5hc2NlbnQpKSwgSW5saW5lTGF5b3V0VW5pdChyb3VuZFRvSW50KGxheW91dEJvdW5k
cy5kZXNjZW50KSkgfTsgfQogCiBwcml2YXRlOgotICAgIFdlYWtQdHI8Y29uc3QgQm94PiBtX2xh
eW91dEJveDsKKyAgICBDaGVja2VkUmVmPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7CiAgICAgLy8g
VGhpcyBpcyB0aGUgY29tYmluYXRpb24gb2YgbWFyZ2luIGFuZCBib3JkZXIgYm94ZXMuIElubGlu
ZSBsZXZlbCBib3hlcyBhcmUgdmVydGljYWxseSBhbGlnbmVkIHVzaW5nIHRoZWlyIG1hcmdpbiBi
b3hlcy4KICAgICBJbmxpbmVSZWN0IG1fbG9naWNhbFJlY3Q7CiAgICAgTGF5b3V0Qm91bmRzIG1f
bGF5b3V0Qm91bmRzOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHByaXZhdGU6CiB9OwogCiBpbmxpbmUg
SW5saW5lTGV2ZWxCb3g6OklubGluZUxldmVsQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGlu
ZUxheW91dFNpemUgbG9naWNhbFNpemUsIFR5cGUgdHlwZSkKLSAgICA6IG1fbGF5b3V0Qm94KG1h
a2VXZWFrUHRyKGxheW91dEJveCkpCisgICAgOiBtX2xheW91dEJveChsYXlvdXRCb3gpCiAgICAg
LCBtX2xvZ2ljYWxSZWN0KHsgfSwgbG9naWNhbExlZnQsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxv
Z2ljYWxTaXplLmhlaWdodCgpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3N0eWxlKHsg
c3R5bGUuZm9udENhc2NhZGUoKS5wcmltYXJ5Rm9udCgpLmZvbnRNZXRyaWNzKCksIHN0eWxlLmxp
bmVIZWlnaHQoKSwgSW5saW5lTGF5b3V0VW5pdChzdHlsZS5mb250Q2FzY2FkZSgpLmZvbnREZXNj
cmlwdGlvbigpLmNvbXB1dGVkUGl4ZWxTaXplKCkpLCB7IH0gfSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCb3guaAppbmRleCBiNmQ4MDZmMzk1Y2EyNDUxOTBkNTQwOTgxMDk3YWE3ZTgzNjI2YmUz
Li45NGEzY2ZhMjgzOWNkMTU3ZjJjYjgzYjI1ZDIwZDFiYzFlNzMzMTNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJveC5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiSW5saW5lUmVj
dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIG5hbWVzcGFjZSBMYXlvdXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlCb3guaAppbmRleCA3MDU2ZTk3YzcyNGFlYmU2MGIwM2U4MjE1YzUzYzZiM2M5
MGFkY2QwLi5mY2NlNTg2YjFjNTljNzdlYmI5MzgzZWVlNWUwY2ZmZTBkYzg4ZGVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNw
bGF5L0lubGluZURpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaApAQCAtMTA3LDcg
KzEwNyw3IEBAIHN0cnVjdCBCb3ggewogICAgIH07CiAgICAgRXhwYW5zaW9uIGV4cGFuc2lvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9CiAKLSAgICBjb25zdCBMYXlvdXQ6OkJveCYg
bGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94OyB9CisgICAgY29uc3QgTGF5
b3V0OjpCb3gmIGxheW91dEJveCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94OyB9CiAgICAg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZTsgfQogCiAg
ICAgc2l6ZV90IGxpbmVJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUluZGV4OyB9CkBAIC0x
MTUsNyArMTE1LDcgQEAgc3RydWN0IEJveCB7CiBwcml2YXRlOgogICAgIGNvbnN0IHNpemVfdCBt
X2xpbmVJbmRleCB7IDAgfTsKICAgICBjb25zdCBUeXBlIG1fdHlwZSB7IFR5cGU6OkdlbmVyaWNJ
bmxpbmVMZXZlbEJveCB9OwotICAgIFdlYWtQdHI8Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5b3V0
Qm94OworICAgIENoZWNrZWRSZWY8Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5b3V0Qm94OwogICAg
IGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOwogICAgIExheW91dDo6SW5saW5lUmVjdCBtX2xv
Z2ljYWxSZWN0OwogICAgIExheW91dDo6SW5saW5lUmVjdCBtX2lua092ZXJmbG93OwpAQCAtMTI3
LDcgKzEyNyw3IEBAIHByaXZhdGU6CiBpbmxpbmUgQm94OjpCb3goc2l6ZV90IGxpbmVJbmRleCwg
VHlwZSB0eXBlLCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgbG9naWNhbFJlY3QsIGNvbnN0IExh
eW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIEV4cGFuc2lvbiBleHBhbnNpb24sIHN0ZDo6
b3B0aW9uYWw8VGV4dD4gdGV4dCwgYm9vbCBoYXNDb250ZW50KQogICAgIDogbV9saW5lSW5kZXgo
bGluZUluZGV4KQogICAgICwgbV90eXBlKHR5cGUpCi0gICAgLCBtX2xheW91dEJveChtYWtlV2Vh
a1B0cihsYXlvdXRCb3gpKQorICAgICwgbV9sYXlvdXRCb3gobGF5b3V0Qm94KQogICAgICwgbV9z
dHlsZShzdHlsZSkKICAgICAsIG1fbG9naWNhbFJlY3QobG9naWNhbFJlY3QpCiAgICAgLCBtX2lu
a092ZXJmbG93KGlua092ZXJmbG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwCmluZGV4IDQwZDMy
NDNmNmI0YzY2YTNhMmZkNmRhMzk1NjFlMzg5MjA3NGVhOTIuLmJmNDMzMThjMThiNWMzZDYwNGE0
MGNhYWFhNmY4NmQ0NGFlYWEyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5jcHAKQEAgLTM2LDcg
KzM2LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
VGFibGVHcmlkKTsKIAogVGFibGVHcmlkOjpDb2x1bW46OkNvbHVtbihjb25zdCBDb250YWluZXJC
b3gqIGNvbHVtbkJveCkKLSAgICA6IG1fbGF5b3V0Qm94KG1ha2VXZWFrUHRyKGNvbHVtbkJveCkp
CisgICAgOiBtX2xheW91dEJveChjb2x1bW5Cb3gpCiB7CiB9CiAKQEAgLTU2LDEyICs1NiwxMiBA
QCB2b2lkIFRhYmxlR3JpZDo6Um93czo6YWRkUm93KGNvbnN0IENvbnRhaW5lckJveCYgcm93Qm94
KQogfQogCiBUYWJsZUdyaWQ6OlJvdzo6Um93KGNvbnN0IENvbnRhaW5lckJveCYgcm93Qm94KQot
ICAgIDogbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIocm93Qm94KSkKKyAgICA6IG1fbGF5b3V0Qm94
KHJvd0JveCkKIHsKIH0KIAogVGFibGVHcmlkOjpDZWxsOjpDZWxsKGNvbnN0IENvbnRhaW5lckJv
eCYgY2VsbEJveCwgU2xvdFBvc2l0aW9uIHBvc2l0aW9uLCBDZWxsU3BhbiBzcGFuKQotICAgIDog
bV9sYXlvdXRCb3gobWFrZVdlYWtQdHIoY2VsbEJveCkpCisgICAgOiBtX2xheW91dEJveChjZWxs
Qm94KQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fc3BhbihzcGFuKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJs
ZS9UYWJsZUdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
dGFibGUvVGFibGVHcmlkLmgKaW5kZXggNWZjODkxZDNjYjczMzhhNzU5MzFmNGQ5ZDU1YWUwYTYz
OGIwODEyMS4uNjkxZjIyOTU3ZDg1NGFlNmJiNDhlMzc2MWE5NzY3Y2NjYzdmYmU1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJs
ZUdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3Rh
YmxlL1RhYmxlR3JpZC5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgTGF5b3V0
VW5pdCBtX3VzZWRMb2dpY2FsV2lkdGg7CiAgICAgICAgIExheW91dFVuaXQgbV91c2VkTG9naWNh
bExlZnQ7CiAgICAgICAgIExlbmd0aCBtX2NvbXB1dGVkTG9naWNhbFdpZHRoOwotICAgICAgICBX
ZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNrZWRQ
dHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX2xheW91dEJveDsKIAogI2lmIEFTU0VSVF9FTkFCTEVE
CiAgICAgICAgIGJvb2wgbV9oYXNVc2VkV2lkdGggeyBmYWxzZSB9OwpAQCAtMTIwLDEzICsxMjAs
MTMgQEAgcHVibGljOgogICAgICAgICB2b2lkIHNldEJhc2VsaW5lKElubGluZUxheW91dFVuaXQg
YmFzZWxpbmUpIHsgbV9iYXNlbGluZSA9IGJhc2VsaW5lOyB9CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgYmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VsaW5lOyB9CiAKLSAgICAgICAg
Y29uc3QgQ29udGFpbmVyQm94JiBib3goKSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3guZ2V0
KCk7IH0KKyAgICAgICAgY29uc3QgQ29udGFpbmVyQm94JiBib3goKSBjb25zdCB7IHJldHVybiBt
X2xheW91dEJveDsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgTGF5b3V0VW5pdCBtX2xvZ2lj
YWxUb3A7CiAgICAgICAgIExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0OwogICAgICAgICBJbmxp
bmVMYXlvdXRVbml0IG1fYmFzZWxpbmUgeyAwIH07Ci0gICAgICAgIFdlYWtQdHI8Y29uc3QgQ29u
dGFpbmVyQm94PiBtX2xheW91dEJveDsKKyAgICAgICAgQ2hlY2tlZFJlZjxjb25zdCBDb250YWlu
ZXJCb3g+IG1fbGF5b3V0Qm94OwogICAgIH07CiAKICAgICBjbGFzcyBSb3dzIHsKQEAgLTE2Nyw3
ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IENvbnRhaW5lckJveCYgYm94KCkgY29u
c3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94LmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBXZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNr
ZWRQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX2xheW91dEJveDsKICAgICAgICAgU2xvdFBvc2l0
aW9uIG1fcG9zaXRpb247CiAgICAgICAgIENlbGxTcGFuIG1fc3BhbjsKICAgICAgICAgSW5saW5l
TGF5b3V0VW5pdCBtX2Jhc2VsaW5lIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcApp
bmRleCA2Mzc3MmM2MGIxMzYwN2YwMjgwZWFiMTdhZjViMzg5ZjUwYTY1MTUyLi4zYmRjMzJiYWZk
MDAwZDE0MjA2ODcwNjIyZWNjMWE4MDQ5YTNjZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVl
LmNwcApAQCAtMTE0LDE0ICsxMTQsMTQgQEAgdm9pZCBCb3hUcmVlOjpidWlsZFRyZWUoKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1dG8mIGNoaWxkUmVuZGVyZXIgPSAqd2Fsa2Vy
LmN1cnJlbnQoKTsKICAgICAgICAgYXV0byBjaGlsZEJveCA9IGNyZWF0ZUNoaWxkQm94KGNoaWxk
UmVuZGVyZXIpOwotICAgICAgICBhcHBlbmRDaGlsZChXVEZNb3ZlKGNoaWxkQm94KSwgY2hpbGRS
ZW5kZXJlcik7CisgICAgICAgIGFwcGVuZENoaWxkKG1ha2VVbmlxdWVSZWZGcm9tTm9uTnVsbFVu
aXF1ZVB0cihXVEZNb3ZlKGNoaWxkQm94KSksIGNoaWxkUmVuZGVyZXIpOwogICAgIH0KIH0KIAot
dm9pZCBCb3hUcmVlOjphcHBlbmRDaGlsZChzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0OjpCb3g+IGNo
aWxkQm94LCBSZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpCit2b2lkIEJveFRyZWU6OmFwcGVu
ZENoaWxkKFVuaXF1ZVJlZjxMYXlvdXQ6OkJveD4gY2hpbGRCb3gsIFJlbmRlck9iamVjdCYgY2hp
bGRSZW5kZXJlcikKIHsKICAgICBhdXRvJiBwYXJlbnRCb3ggPSBkb3duY2FzdDxMYXlvdXQ6OkNv
bnRhaW5lckJveD4obGF5b3V0Qm94Rm9yUmVuZGVyZXIoKmNoaWxkUmVuZGVyZXIucGFyZW50KCkp
KTsKLSAgICBwYXJlbnRCb3guYXBwZW5kQ2hpbGQoKmNoaWxkQm94KTsKKyAgICBwYXJlbnRCb3gu
YXBwZW5kQ2hpbGQoY2hpbGRCb3guZ2V0KCkpOwogCiAgICAgbV9ib3hlcy5hcHBlbmQoeyBXVEZN
b3ZlKGNoaWxkQm94KSwgJmNoaWxkUmVuZGVyZXIgfSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBM
YXlvdXQ6OkJveCYgQm94VHJlZTo6bGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKICAgICAgICAgICAgIHJldHVybiBlbnRyeS5yZW5kZXJlciA9PSAmcmVu
ZGVyZXI7CiAgICAgICAgIH0pOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmRleCAhPSBub3RG
b3VuZCk7Ci0gICAgICAgIHJldHVybiAqbV9ib3hlc1tpbmRleF0uYm94OworICAgICAgICByZXR1
cm4gbV9ib3hlc1tpbmRleF0uYm94OwogICAgIH0KIAogICAgIHJldHVybiAqbV9yZW5kZXJlclRv
Qm94TWFwLmdldCgmcmVuZGVyZXIpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIFJlbmRlck9iamVjdCYg
Qm94VHJlZTo6cmVuZGVyZXJGb3JMYXlvdXRCb3goY29uc3QgTGF5b3V0OjpCb3gmIGJveCkKIAog
ICAgIGlmIChtX2JveGVzLnNpemUoKSA8PSBzbWFsbFRyZWVUaHJlc2hvbGQpIHsKICAgICAgICAg
YXV0byBpbmRleCA9IG1fYm94ZXMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiBlbnRyeSkgewotICAg
ICAgICAgICAgcmV0dXJuIGVudHJ5LmJveC5nZXQoKSA9PSAmYm94OworICAgICAgICAgICAgcmV0
dXJuIGVudHJ5LmJveC5wdHIoKSA9PSAmYm94OwogICAgICAgICB9KTsKICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoaW5kZXggIT0gbm90Rm91bmQpOwogICAgICAgICByZXR1cm4gKm1fYm94ZXNbaW5k
ZXhdLnJlbmRlcmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oCmluZGV4IDJjZDg1ZThjMGI5NDNi
YzJiY2I0Yzc5MTYxMDFiZTcyZTRiYjcyMmIuLjhlZmY4MDkxY2YyNzRlNmUwZWVjNmEwYjI1NDBi
MjFkOTI1MzE2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU5LDIxICs2MCwyMSBAQCBwdWJs
aWM6CiAgICAgc2l6ZV90IGJveENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9ib3hlcy5zaXplKCk7
IH0KIAogICAgIHN0cnVjdCBCb3hBbmRSZW5kZXJlciB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxMYXlvdXQ6OkJveD4gYm94OworICAgICAgICBVbmlxdWVSZWY8TGF5b3V0OjpCb3g+IGJveDsK
ICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciB7IG51bGxwdHIgfTsKICAgICB9OwogICAg
IGNvbnN0IGF1dG8mIGJveEFuZFJlbmRlcmVyTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fYm94ZXM7
IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGJ1aWxkVHJlZSgpOwotICAgIHZvaWQgYXBwZW5kQ2hp
bGQoc3RkOjp1bmlxdWVfcHRyPExheW91dDo6Qm94PiwgUmVuZGVyT2JqZWN0Jik7CisgICAgdm9p
ZCBhcHBlbmRDaGlsZChVbmlxdWVSZWY8TGF5b3V0OjpCb3g+LCBSZW5kZXJPYmplY3QmKTsKIAog
ICAgIFJlbmRlckJsb2NrRmxvdyYgbV9mbG93OwogICAgIExheW91dDo6SW5pdGlhbENvbnRhaW5p
bmdCbG9jayBtX3Jvb3Q7CiAgICAgVmVjdG9yPEJveEFuZFJlbmRlcmVyLCAxPiBtX2JveGVzOwog
Ci0gICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBMYXlvdXQ6OkJveCo+IG1fcmVuZGVy
ZXJUb0JveE1hcDsKLSAgICBIYXNoTWFwPGNvbnN0IExheW91dDo6Qm94KiwgUmVuZGVyT2JqZWN0
Kj4gbV9ib3hUb1JlbmRlcmVyTWFwOworICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0Kiwg
Q2hlY2tlZFJlZjxMYXlvdXQ6OkJveD4+IG1fcmVuZGVyZXJUb0JveE1hcDsKKyAgICBIYXNoTWFw
PENoZWNrZWRSZWY8Y29uc3QgTGF5b3V0OjpCb3g+LCBSZW5kZXJPYmplY3QqPiBtX2JveFRvUmVu
ZGVyZXJNYXA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
CmluZGV4IDk4MjljMzYyODE2YjRkNWM4YTNjN2Y1OTgxMDY4NGFmNWNjM2FlYmMuLjllZDdmMmUz
YTM5NjNiOTNjZjk2ZTEwMjkwMjJhZDBiMTdlODAyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bklubGluZUNvbnRlbnQuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CiAKIElubGluZUNvbnRlbnQ6OklubGluZUNv
bnRlbnQoY29uc3QgTGluZUxheW91dCYgbGluZUxheW91dCkKLSAgICA6IG1fbGluZUxheW91dCht
YWtlV2Vha1B0cihsaW5lTGF5b3V0KSkKKyAgICA6IG1fbGluZUxheW91dChsaW5lTGF5b3V0KQog
ewogfQogCkBAIC02MywxOSArNjMsMTQgQEAgSW5saW5lQ29udGVudDo6fklubGluZUNvbnRlbnQo
KQogICAgIH0KIH0KIAotY29uc3QgTGluZUxheW91dCYgSW5saW5lQ29udGVudDo6bGluZUxheW91
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICptX2xpbmVMYXlvdXQ7Ci19Ci0KIGNvbnN0IFJlbmRl
ck9iamVjdCYgSW5saW5lQ29udGVudDo6cmVuZGVyZXJGb3JMYXlvdXRCb3goY29uc3QgTGF5b3V0
OjpCb3gmIGxheW91dEJveCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9saW5lTGF5b3V0LT5yZW5k
ZXJlckZvckxheW91dEJveChsYXlvdXRCb3gpOworICAgIHJldHVybiBsaW5lTGF5b3V0KCkucmVu
ZGVyZXJGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKIH0KIAogY29uc3QgUmVuZGVyQmxvY2tGbG93
JiBJbmxpbmVDb250ZW50Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogewotICAgIHJldHVybiBt
X2xpbmVMYXlvdXQtPmZsb3coKTsKKyAgICByZXR1cm4gbGluZUxheW91dCgpLmZsb3coKTsKIH0K
IAogc2l6ZV90IElubGluZUNvbnRlbnQ6OmluZGV4Rm9yQm94KGNvbnN0IElubGluZURpc3BsYXk6
OkJveCYgYm94KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oCmluZGV4
IDJjZmNmMmI2NDk3ZjI1ZDkyMDlhNTRjZDVjZTcwNzI0OTc5OWEyY2UuLjBhNThiYTFkZjM0N2Zl
ZTI3NWMxYzQ2MjI5YmI4MGM1NDc3MmYyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVD
b250ZW50LmgKQEAgLTI5LDEwICsyOSw5IEBACiAKICNpbmNsdWRlICJJbmxpbmVEaXNwbGF5Qm94
LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSXRlcmF0b3JSYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY5LDcgKzY4LDcgQEAgc3RydWN0
IElubGluZUNvbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxJbmxpbmVDb250ZW50PiB7CiAgICAg
V1RGOjpJdGVyYXRvclJhbmdlPGNvbnN0IElubGluZURpc3BsYXk6OkJveCo+IGJveGVzRm9yUmVj
dChjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCi0g
ICAgY29uc3QgTGluZUxheW91dCYgbGluZUxheW91dCgpIGNvbnN0OworICAgIGNvbnN0IExpbmVM
YXlvdXQmIGxpbmVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2xpbmVMYXlvdXQ7IH0KICAgICBj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyRm9yTGF5b3V0Qm94KGNvbnN0IExheW91dDo6Qm94
JikgY29uc3Q7CiAgICAgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBj
b25zdDsKIApAQCAtODYsMTIgKzg1LDEyIEBAIHN0cnVjdCBJbmxpbmVDb250ZW50IDogcHVibGlj
IFJlZkNvdW50ZWQ8SW5saW5lQ29udGVudD4gewogcHJpdmF0ZToKICAgICBJbmxpbmVDb250ZW50
KGNvbnN0IExpbmVMYXlvdXQmKTsKIAotICAgIFdlYWtQdHI8Y29uc3QgTGluZUxheW91dD4gbV9s
aW5lTGF5b3V0OworICAgIENoZWNrZWRSZWY8Y29uc3QgTGluZUxheW91dD4gbV9saW5lTGF5b3V0
OwogCi0gICAgdXNpbmcgRmlyc3RCb3hJbmRleENhY2hlID0gV2Vha0hhc2hNYXA8TGF5b3V0OjpC
b3gsIHNpemVfdD47CisgICAgdXNpbmcgRmlyc3RCb3hJbmRleENhY2hlID0gSGFzaE1hcDxDaGVj
a2VkUmVmPGNvbnN0IExheW91dDo6Qm94Piwgc2l6ZV90PjsKICAgICBtdXRhYmxlIHN0ZDo6dW5p
cXVlX3B0cjxGaXJzdEJveEluZGV4Q2FjaGU+IG1fZmlyc3RCb3hJbmRleENhY2hlOwogCi0gICAg
dXNpbmcgSW5saW5lQm94SW5kZXhDYWNoZSA9IFdlYWtIYXNoTWFwPExheW91dDo6Qm94LCBWZWN0
b3I8c2l6ZV90Pj47CisgICAgdXNpbmcgSW5saW5lQm94SW5kZXhDYWNoZSA9IEhhc2hNYXA8Q2hl
Y2tlZFJlZjxjb25zdCBMYXlvdXQ6OkJveD4sIFZlY3RvcjxzaXplX3Q+PjsKICAgICBtdXRhYmxl
IHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVCb3hJbmRleENhY2hlPiBtX2lubGluZUJveEluZGV4Q2Fj
aGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IDhmN2MwMDdh
MTViZGJkNTMzZTg2ODIyYjQ1ODQ3ZjhmNTlkY2ExZGQuLmU1MTMzOTI5MGZlMjVmN2ZkZjE4MGMx
OGU2MDljMTIyYjkzODY4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBA
IC0yMzksNyArMjM5LDcgQEAgdm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KCkKIAog
ICAgIGF1dG8mIGJveEFuZFJlbmRlcmVyTGlzdCA9IG1fYm94VHJlZS5ib3hBbmRSZW5kZXJlckxp
c3QoKTsKICAgICBmb3IgKGF1dG8mIGJveEFuZFJlbmRlcmVyIDogYm94QW5kUmVuZGVyZXJMaXN0
KSB7Ci0gICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpib3hBbmRSZW5kZXJlci5ib3g7CisgICAg
ICAgIGF1dG8mIGxheW91dEJveCA9IGJveEFuZFJlbmRlcmVyLmJveC5nZXQoKTsKICAgICAgICAg
aWYgKCFsYXlvdXRCb3guaXNSZXBsYWNlZEJveCgpKQogICAgICAgICAgICAgY29udGludWU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaAppbmRleCBjYjc2YjUyZmFkMTgzZTdjNWYwZGYw
YmUwZGYwODMwNmJmMjM3MGQwLi5hNTU4MGIwMGU4YjRiYjlhNjFhZGU5M2NjNzRlMzU1NThjMTEx
N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCkBAIC0zNCw3ICszNCw3IEBACiAj
aW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1
ZGUgIlJlbmRlck9iamVjdEVudW1zLmgiCi0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvQ2hlY2tlZFB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU3LDcg
KzU3LDcgQEAgbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKIAogc3RydWN0IElubGluZUNv
bnRlbnQ7CiAKLWNsYXNzIExpbmVMYXlvdXQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TGluZUxh
eW91dD4geworY2xhc3MgTGluZUxheW91dCA6IHB1YmxpYyBDYW5NYWtlQ2hlY2tlZFB0ciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTGluZUxheW91dChSZW5k
ZXJCbG9ja0Zsb3cmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmgKaW5kZXggZjlkNmJmNTExODJlNjM3NDEwZDc4NjQ4ZjhmNTZlNjdlMDY3MWEyMS4uMzQy
NjE4OTBjMjFlOTUwMzE2ODA4YzUxYzViZmJjOWQxMWMzMWMyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTI5LDggKzI5LDggQEAKIAogI2lu
Y2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRl
IDx3dGYvQ2hlY2tlZFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgSW5pdGlhbENvbnRhaW5pbmdCbG9jazsKIGNsYXNzIExheW91dFN0YXRlOwogY2xh
c3MgVHJlZUJ1aWxkZXI7CiAKLWNsYXNzIEJveCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxCb3g+
IHsKK2NsYXNzIEJveCA6IHB1YmxpYyBDYW5NYWtlQ2hlY2tlZFB0ciB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChCb3gpOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgRWxlbWVudFR5cGUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVw
bGFjZWRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxh
Y2VkQm94LmgKaW5kZXggOGUxZmQzOTRhODVkMWNhMDcyNzExM2ZkMWJhZDY0YWYwMDU5OGY1YS4u
NDVmZTQ3NmQ3ZjBjOGM0ZTdiODcwNTkyMDZmZjYzZjUwZDlhYmZjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWRCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5oCkBAIC0z
Miw3ICszMiw2IEBACiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkxheW91dFVu
aXQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAppbmRl
eCA1MjVjZTYzYmJkZTEzMmVhYzRjZjY4Y2NmZDg1OGYzZjI2NmM2YjU5Li5iY2JmNDQyZjY5OTYz
NzdkNzAxYTc5NjU4MWU5NWQ1NWQ2Yjg3MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKQEAgLTI5LDcgKzI5LDYgQEAK
IAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCmluZGV4
IDkwODg4ODc0ZTVlOTg2NGZkM2I4NGNkZWNhMzNiMmU2ZjliNjRmYjcuLmExMGRjMTU3OTg4ZDBl
MWVhY2RlYjZjYjY2N2RlY2U2MzE0ZTYzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcApAQCAtNjIsNyArNjIsMTAgQEAgdm9pZCBGcmFtZVZp
ZXdMYXlvdXRDb250ZXh0OjpsYXlvdXRVc2luZ0Zvcm1hdHRpbmdDb250ZXh0KCkKICAgICBpZiAo
bV9kaXNhYmxlU2V0TmVlZHNMYXlvdXRDb3VudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byYgcmVuZGVyVmlldyA9ICp0aGlzLT5yZW5kZXJWaWV3KCk7CisgICAgbV9sYXlvdXRTdGF0ZSA9
IG51bGxwdHI7CisgICAgbV9sYXlvdXRUcmVlID0gbnVsbHB0cjsKKworICAgIGF1dG8mIHJlbmRl
clZpZWdpdHcgPSAqdGhpcy0+cmVuZGVyVmlldygpOwogICAgIG1fbGF5b3V0VHJlZSA9IExheW91
dDo6VHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0VHJlZShyZW5kZXJWaWV3KTsKICAgICBtX2xheW91
dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlvdXQ6OkxheW91dFN0YXRlPigqZG9jdW1lbnQoKSwgbV9s
YXlvdXRUcmVlLT5yb290KCkpOwogICAgIGF1dG8gbGF5b3V0Q29udGV4dCA9IExheW91dDo6TGF5
b3V0Q29udGV4dCB7ICptX2xheW91dFN0YXRlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3TGF5b3V0Q29udGV4dC5oCmluZGV4IDNiYzIwMDljOGIyNDVkYjFlOTQ2YWU0NzIyOTcw
M2U3OGJhYTdmZjAuLjZmOWViMWUwOTM4MjRlNmIxYjBmOWE1N2E3NTI1M2EzMjRmZWUxZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCkBAIC0xODgs
OCArMTg4LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3BhaW50T2Zmc2V0Q2FjaGVEaXNh
YmxlQ291bnQgeyAwIH07CiAgICAgTGF5b3V0U3RhdGVTdGFjayBtX2xheW91dFN0YXRlU3RhY2s7
CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgc3RkOjp1bmlxdWVf
cHRyPExheW91dDo6TGF5b3V0U3RhdGU+IG1fbGF5b3V0U3RhdGU7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPExheW91dDo6TGF5b3V0VHJlZT4gbV9sYXlvdXRUcmVlOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxMYXlvdXQ6OkxheW91dFN0YXRlPiBtX2xheW91dFN0YXRlOwogI2VuZGlmCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439345</attachid>
            <date>2021-09-27 04:46:04 -0700</date>
            <delta_ts>2021-09-27 09:07:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230821-20210927144602.patch</filename>
            <type>text/plain</type>
            <size>39436</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyNTJiYjM1ZmNiMTExZDFkZjc3NTRj
NjVjYjRkZjBjZmJjNTEyMWEuLmJkOTQ2OWM0NzJlMTQ1NDU4NjUyZDRmNjQ5MTQwYzAyZTU0MWFk
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMjcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdIFVzZSBDaGVja2VkUmVmL1B0ciBpbnN0ZWFk
IG9mIFdlYWtQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDgyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL0NoZWNrZWRSZWYuaDoKKyAgICAgICAgKFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJC
YXNlOjppbmNyZW1lbnRQdHJDb3VudCBjb25zdCk6CisgICAgICAgIChXVEY6OkNhbk1ha2VDaGVj
a2VkUHRyQmFzZTo6ZGVjcmVtZW50UHRyQ291bnQgY29uc3QpOgorICAgICAgICAoV1RGOjpDYW5N
YWtlQ2hlY2tlZFB0ckJhc2U6OmluY3JlbWVudFB0ckNvdW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJCYXNlOjpkZWNyZW1lbnRQdHJDb3VudCk6IERlbGV0ZWQu
CisKKyAgICAgICAgTWFrZSBjb25zdCBzbyBDaGVja2VkUHRyPGNvbnN0IEZvbz4gd29ya3MuCisK
IDIwMjEtMDktMjYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgzMDgzIGFuZCByMjgzMDg4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDEzNjg2MjlhNDFjNGVmOGU4OTViMTliNWI1ZmU5YzdiYzA4MWQ4YjAuLjliOWQ0YzUx
YWM1YTZkMDc0ZGViZTkyZjhhMzI3OTFhZjBiNWZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAyMS0wOS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0xGQ10gVXNlIENoZWNrZWRSZWYvUHRyIGluc3RlYWQgb2YgV2Vha1B0cgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vha1B0cnMgYXJlIHVz
ZWQgZm9yIGxheW91dCBib3hlcyBmb3Igc2FmZXR5IG9ubHkuIFJlcGxhY2Ugd2l0aCBzaW1wbGVy
LCBmYXN0ZXIgQ2hlY2tlZFB0ci4KKworICAgICAgICAqIGRpc3BsYXkvRGlzcGxheVRyZWVCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpidWlsZCk6
CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmFkZE91dE9mRmxvd0JveCk6CisgICAgICAgICogbGF5
b3V0L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3Rh
dGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6
OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1h
dHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3Rh
dGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L0xheW91
dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpyb290IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6Omhhc1Jvb3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmg6Cisg
ICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6RmxvYXRJdGVtOjpGbG9hdEl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1N0YXRlOjpGbG9hdGluZ1N0YXRlKToKKyAgICAg
ICAgKiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6RmxvYXRpbmdTdGF0ZTo6cm9vdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dDb250ZW50
KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpyb290IGNv
bnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9y
bWF0dGluZ1N0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uRm9yT3V0T2ZG
bG93Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGV2ZWxCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGV2ZWxC
b3g6OmxheW91dEJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxl
dmVsQm94OjpJbmxpbmVMZXZlbEJveCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5oOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpsYXlvdXRCb3ggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpCb3gpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VGFibGVHcmlkOjpDb2x1bW46OkNvbHVtbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlRhYmxlR3JpZDo6Um93OjpSb3cpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUdy
aWQ6OkNlbGw6OkNlbGwpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFi
bGUvVGFibGVHcmlkLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6Um93
Ojpib3ggY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkJveFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJv
eFRyZWU6OmJ1aWxkVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
Qm94VHJlZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OkJveFRyZWU6OmxheW91dEJveEZvclJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpCb3hUcmVlOjpyZW5kZXJlckZvckxheW91dEJveCk6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oOgorICAgICAg
ICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQ6Oklu
bGluZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGlu
ZUNvbnRlbnQ6OnJlbmRlcmVyRm9yTGF5b3V0Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50Ojpjb250YWluaW5nQmxvY2sgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQ6Omxp
bmVMYXlvdXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50OjpsaW5lTGF5b3V0IGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0Lmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRDYWNoZWRHZW9tZXRyeUZvckxheW91
dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaDoK
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5oOgorICAgICAg
ICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmg6CisKIDIwMjEtMDktMjYg
IEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBhcHBl
bmRpbmcgdG8gdGhlIHNvdXJjZSBidWZmZXIgd2lsbCBub3QgdGhyb3cgd2hlbiB0aGUgc291cmNl
IGJ1ZmZlciBpcyBmdWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5o
IGIvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5oCmluZGV4IGQyYmMxY2FjZTMzMjRhYTQzMzQ3
OTBmZjY5Y2I3NDRmZDc5ZWUyMmEuLjhiMjAzYjVhM2NlY2Q2NzIyN2JjN2E1ZWE5OTY1OTlkOGRi
ZmM4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRSZWYuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkUmVmLmgKQEAgLTIzMCwxMSArMjMwLDExIEBAIHB1YmxpYzoKICAg
ICB+Q2FuTWFrZUNoZWNrZWRQdHJCYXNlKCkgeyBSRUxFQVNFX0FTU0VSVCghbV9jb3VudCk7IH0K
IAogICAgIFB0ckNvdW50ZXJUeXBlIHB0ckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jb3VudDsg
fQotICAgIHZvaWQgaW5jcmVtZW50UHRyQ291bnQoKSB7ICsrbV9jb3VudDsgfQotICAgIHZvaWQg
ZGVjcmVtZW50UHRyQ291bnQoKSB7IEFTU0VSVChtX2NvdW50KTsgLS1tX2NvdW50OyB9CisgICAg
dm9pZCBpbmNyZW1lbnRQdHJDb3VudCgpIGNvbnN0IHsgKyttX2NvdW50OyB9CisgICAgdm9pZCBk
ZWNyZW1lbnRQdHJDb3VudCgpIGNvbnN0IHsgQVNTRVJUKG1fY291bnQpOyAtLW1fY291bnQ7IH0K
IAogcHJpdmF0ZToKLSAgICBTdG9yYWdlVHlwZSBtX2NvdW50IHsgMCB9OworICAgIG11dGFibGUg
U3RvcmFnZVR5cGUgbV9jb3VudCB7IDAgfTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBJbnRl
Z3JhbFR5cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5j
cHAKaW5kZXggYzdlZmQ2OGRkYjhkMGIzMDQ2YTlmNDQ5ZTY5ZjBiYWVlZGVjNzkzOC4uNWQ4YTUx
MThjMzA3OWMxNmY4MTI1Y2QzMjUzNjE4MTE4OWEyOThjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcApAQCAtMTE5LDggKzExOSw2IEBAIFRyZWVC
dWlsZGVyOjp+VHJlZUJ1aWxkZXIoKSA9IGRlZmF1bHQ7CiAKIHN0ZDo6dW5pcXVlX3B0cjxUcmVl
PiBUcmVlQnVpbGRlcjo6YnVpbGQoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUpCiB7Ci0gICAgQVNTRVJUKGxheW91dFN0YXRlLmhhc1Jvb3QoKSk7Ci0KICAgICBhdXRvJiBy
b290TGF5b3V0Qm94ID0gbGF5b3V0U3RhdGUucm9vdCgpOwogCiAjaWYgRU5BQkxFKFRSRUVfREVC
VUdHSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IDVjZTBk
M2JiMTVlNzcxN2FkMGM2YjliY2QzNTgyMGFkNDBhYzdjZTYuLjAyNDQwMDg0ZjUzYjI1Y2ZmYzMy
NmZlMzliYTUxNzkyYzc1NzY0ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0
YXRlLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJGb3JtYXR0aW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBM
YXlvdXQgewpAQCAtNjUsOCArNjQsOCBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFdlIG5lZWQg
dG8gZmluZCBhIHdheSB0byBsaW1pdCBhY2Nlc3MgdG8gbXV0YXRhYmxlIGdlb21ldHJ5LgogICAg
IEJveEdlb21ldHJ5JiBib3hHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCk7CiAgICAgLy8g
U2luY2Ugd2UgbGF5b3V0IHRoZSBvdXQtb2YtZmxvdyBib3hlcyBhdCB0aGUgZW5kIG9mIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQgbGF5b3V0LCBpdCdzIG9rYXkgdG8gc3RvcmUgdGhlbSBpbiB0aGUg
Zm9ybWF0dGluZyBzdGF0ZSAtYXMgb3Bwb3NlZCB0byB0aGUgY29udGFpbmluZyBibG9jayBsZXZl
bC4KLSAgICB1c2luZyBPdXRPZkZsb3dCb3hMaXN0ID0gVmVjdG9yPFdlYWtQdHI8Y29uc3QgQm94
Pj47Ci0gICAgdm9pZCBhZGRPdXRPZkZsb3dCb3goY29uc3QgQm94JiBvdXRPZkZsb3dCb3gpIHsg
bV9vdXRPZkZsb3dCb3hlcy5hcHBlbmQobWFrZVdlYWtQdHIob3V0T2ZGbG93Qm94KSk7IH0KKyAg
ICB1c2luZyBPdXRPZkZsb3dCb3hMaXN0ID0gVmVjdG9yPENoZWNrZWRSZWY8Y29uc3QgQm94Pj47
CisgICAgdm9pZCBhZGRPdXRPZkZsb3dCb3goY29uc3QgQm94JiBvdXRPZkZsb3dCb3gpIHsgbV9v
dXRPZkZsb3dCb3hlcy5hcHBlbmQob3V0T2ZGbG93Qm94KTsgfQogICAgIHZvaWQgcmVtb3ZlT3V0
T2ZGbG93Qm94KGNvbnN0IEJveCYpOwogICAgIGNvbnN0IE91dE9mRmxvd0JveExpc3QmIG91dE9m
Rmxvd0JveGVzKCkgY29uc3QgeyByZXR1cm4gbV9vdXRPZkZsb3dCb3hlczsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcAppbmRleCAwZDAyMWY0NDVkNTE1YmFlOTIzODdiYWE4
NDVmODM5MWYyNWRkMGJlLi45NmJkMTdmYTAxNDg2YTU2ZjFlNWJkOWJmZGU3N2FhOGE3ZGNlOTZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAg
bmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGF5b3V0U3Rh
dGUpOwogCiBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBDb250YWluZXJCb3gmIHJvb3RDb250YWluZXIpCi0gICAgOiBtX3Jvb3RDb250YWlu
ZXIobWFrZVdlYWtQdHIocm9vdENvbnRhaW5lcikpCisgICAgOiBtX3Jvb3RDb250YWluZXIocm9v
dENvbnRhaW5lcikKIHsKICAgICAvLyBJdCBtYWtlcyBhYnNvbHV0ZWx5IG5vIHNlbnNlIHRvIGNv
bnN0cnVjdCBhIGRlZGljYXRlZCBsYXlvdXQgc3RhdGUgZm9yIGEgbm9uLWZvcm1hdHRpbmcgY29u
dGV4dCByb290IChsYXlvdXQgd291bGQgYmUgYSBuby1vcCkuCiAgICAgQVNTRVJUKHJvb3QoKS5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwpAQCAtMTAxLDcgKzEwMSw3IEBAIEZvcm1h
dHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250
ZXh0KGNvbnN0IENvbnRhaW5lCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRp
b25FbmFibGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0g
bV9yb290Q29udGFpbmVyLmdldCgpKTsKKyAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4
dFJvb3QgPT0gbV9yb290Q29udGFpbmVyLnB0cigpKTsKICAgICAgICAgcmV0dXJuICptX3Jvb3RJ
bmxpbmVGb3JtYXR0aW5nU3RhdGVGb3JJbnRlZ3JhdGlvbjsKICAgICB9CiAKQEAgLTEyNSw3ICsx
MjUsNyBAQCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpmb3JtYXR0aW5nU3Rh
dGVGb3JJbmxpbmVGb3JtYXR0aW5nQ29udGV4dChjbwogICAgIEFTU0VSVChpbmxpbmVGb3JtYXR0
aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKTsKIAog
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxheW91dEZv
cm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCZp
bmxpbmVGb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0gbV9yb290Q29udGFpbmVyLmdldCgpKTsKKyAg
ICAgICAgQVNTRVJUKCZpbmxpbmVGb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0gbV9yb290Q29udGFp
bmVyLnB0cigpKTsKICAgICAgICAgcmV0dXJuICptX3Jvb3RJbmxpbmVGb3JtYXR0aW5nU3RhdGVG
b3JJbnRlZ3JhdGlvbjsKICAgICB9CiAKQEAgLTE3MSw3ICsxNzEsNyBAQCBJbmxpbmVGb3JtYXR0
aW5nU3RhdGUmIExheW91dFN0YXRlOjplbnN1cmVJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY29uc3Qg
Q29udGFpbmVyQgogCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkgewogICAg
ICAgICBpZiAoIW1fcm9vdElubGluZUZvcm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9uKSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWlu
ZXIuZ2V0KCkpOworICAgICAgICAgICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0g
bV9yb290Q29udGFpbmVyLnB0cigpKTsKICAgICAgICAgICAgIG1fcm9vdElubGluZUZvcm1hdHRp
bmdTdGF0ZUZvckludGVncmF0aW9uID0gY3JlYXRlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuICptX3Jvb3RJbmxpbmVGb3JtYXR0aW5nU3RhdGVGb3JJbnRlZ3JhdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dFN0YXRlLmgKaW5kZXggNTE0YmQ5NjAwNDMwMGJiMjIxM2E4Y2UwMTJkNGQw
NGUyZDc2M2RjNC4uY2E3ZDI5ZGIyZDAyMTgwNTg1OGRkMGYyMzJlMDg1MzlhOWQzNjFiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAgLTg0LDggKzg0LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaW5MaW1pdGVkUXVpcmtzTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVpcmtzTW9k
ZSA9PSBRdWlya3NNb2RlOjpMaW1pdGVkOyB9CiAgICAgYm9vbCBpblN0YW5kYXJkc01vZGUoKSBj
b25zdCB7IHJldHVybiBtX3F1aXJrc01vZGUgPT0gUXVpcmtzTW9kZTo6Tm87IH0KIAotICAgIGJv
b2wgaGFzUm9vdCgpIGNvbnN0IHsgcmV0dXJuICEhbV9yb290Q29udGFpbmVyOyB9Ci0gICAgY29u
c3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4gKm1fcm9vdENvbnRhaW5lcjsg
fQorICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENv
bnRhaW5lcjsgfQogCiAgICAgLy8gTEZDIGludGVncmF0aW9uIG9ubHkuIEZ1bGwgTEZDIGhhcyBw
cm9wZXIgSUNCIGFjY2Vzcy4KICAgICB2b2lkIHNldFZpZXdwb3J0U2l6ZShjb25zdCBMYXlvdXRT
aXplJik7CkBAIC0xMTMsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPGNvbnN0IEJv
eCosIHN0ZDo6dW5pcXVlX3B0cjxCb3hHZW9tZXRyeT4+IG1fbGF5b3V0Qm94VG9Cb3hHZW9tZXRy
eTsKICAgICBRdWlya3NNb2RlIG1fcXVpcmtzTW9kZSB7IFF1aXJrc01vZGU6Ok5vIH07CiAKLSAg
ICBXZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9yb290Q29udGFpbmVyOworICAgIENoZWNr
ZWRSZWY8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jvb3RDb250YWluZXI7CiAKICAgICAvLyBMRkMg
aW50ZWdyYXRpb24gb25seS4KICAgICBMYXlvdXRTaXplIG1fdmlld3BvcnRTaXplOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmgKaW5kZXggN2E2YWFlMDBiYzRk
MzQxZjE0MTQyNTNiZWU0NzgyYjg5ZmViNmZiNy4uZGM5MjRlOGJjNjIxMGQ4NWMxNTFlMDY5MzY5
MTNkNWFkZDdhZmM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9G
bG9hdEF2b2lkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZv
aWRlci5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNs
dWRlICJMYXlvdXRVbml0cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwCmluZGV4IGI5YmNkYTAwNmQ3MWM1
ZWZiMzdiY2MyZWEwNzIyOTkzM2M0MmI4YTEuLjY0ZmRmOTM4ZjI1NTBmNjU0MzdkNDQyMzdlMWU0
M2U2ZjQxZDVmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxv
YXRpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGlu
Z1N0YXRlLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChGbG9hdGluZ1N0YXRlKTsKIAogRmxvYXRpbmdTdGF0ZTo6Rmxv
YXRJdGVtOjpGbG9hdEl0ZW0oY29uc3QgQm94JiBsYXlvdXRCb3gsIEJveEdlb21ldHJ5IGFic29s
dXRlQm94R2VvbWV0cnkpCi0gICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0cihsYXlvdXRCb3gp
KQorICAgIDogbV9sYXlvdXRCb3gobGF5b3V0Qm94KQogICAgICwgbV9wb3NpdGlvbihsYXlvdXRC
b3guaXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCkgPyBQb3NpdGlvbjo6TGVmdCA6IFBvc2l0aW9u
OjpSaWdodCkKICAgICAsIG1fYWJzb2x1dGVCb3hHZW9tZXRyeShhYnNvbHV0ZUJveEdlb21ldHJ5
KQogewpAQCAtNTUsNyArNTUsNyBAQCBGbG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW06OkZsb2F0SXRl
bShQb3NpdGlvbiBwb3NpdGlvbiwgQm94R2VvbWV0cnkgYWJzb2x1dGVCb3hHZQogCiBGbG9hdGlu
Z1N0YXRlOjpGbG9hdGluZ1N0YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgQ29u
dGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiAgICAgOiBtX2xheW91dFN0YXRlKGxh
eW91dFN0YXRlKQotICAgICwgbV9mb3JtYXR0aW5nQ29udGV4dFJvb3QobWFrZVdlYWtQdHIoZm9y
bWF0dGluZ0NvbnRleHRSb290KSkKKyAgICAsIG1fZm9ybWF0dGluZ0NvbnRleHRSb290KGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRz
L0Zsb2F0aW5nU3RhdGUuaAppbmRleCBiNWM2ZmUxM2Y0YWUyMGI3MzU2YTA3Mzk2NWVmNzJjNThj
YWRlMmUwLi42NzM3Y2RhYjNkOWVlNjQxYzNhZjcwMDlkNzZkNTM1ZjlhNDc2OTdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaApAQCAtMzEsNyArMzEs
NiBAQAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw3ICs0OCw3IEBAIGNsYXNzIEZsb2F0aW5n
U3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGbG9hdGluZ1N0YXRlPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGUoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRl
LCBjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGbG9hdGluZ1N0YXRlKGxheW91dFN0YXRlLCBmb3JtYXR0aW5nQ29udGV4dFJv
b3QpKTsgfQogCi0gICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4g
Km1fZm9ybWF0dGluZ0NvbnRleHRSb290OyB9CisgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290
KCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7IH0KIAogICAgIGNsYXNz
IEZsb2F0SXRlbSB7CiAgICAgcHVibGljOgpAQCAtNzAsNyArNjksNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGNvbnN0IEJveCogZmxvYXRCb3goKSBjb25zdCB7IHJldHVybiBtX2xheW91dEJveC5nZXQo
KTsgfQogI2VuZGlmCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2Vha1B0cjxjb25zdCBCb3g+IG1f
bGF5b3V0Qm94OworICAgICAgICBDaGVja2VkUHRyPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7CiAg
ICAgICAgIFBvc2l0aW9uIG1fcG9zaXRpb247CiAgICAgICAgIEJveEdlb21ldHJ5IG1fYWJzb2x1
dGVCb3hHZW9tZXRyeTsKICAgICB9OwpAQCAtODcsNyArODYsNyBAQCBwcml2YXRlOgogICAgIExh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0U3RhdGU7IH0K
IAogICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOwotICAgIFdlYWtQdHI8Y29uc3QgQ29u
dGFpbmVyQm94PiBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdDsKKyAgICBDaGVja2VkUmVmPGNvbnN0
IENvbnRhaW5lckJveD4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7CiAgICAgRmxvYXRMaXN0IG1f
ZmxvYXRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA5ZGEzYjUzYTJm
YWM1ODI4MDUwNjQ5NDA2YzIwNTFiNzYxYzIyY2M4Li5mMTA0MjE0NDk1MTQxMTQ0OThhZGIyOTkz
YTdiZWM3MzFjNWQzYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNDksNyAr
NDksNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChG
b3JtYXR0aW5nQ29udGV4dCk7CiAKIEZvcm1hdHRpbmdDb250ZXh0OjpGb3JtYXR0aW5nQ29udGV4
dChjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgRm9ybWF0dGluZ1N0
YXRlJiBmb3JtYXR0aW5nU3RhdGUpCi0gICAgOiBtX3Jvb3QobWFrZVdlYWtQdHIoZm9ybWF0dGlu
Z0NvbnRleHRSb290KSkKKyAgICA6IG1fcm9vdChmb3JtYXR0aW5nQ29udGV4dFJvb3QpCiAgICAg
LCBtX2Zvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nU3RhdGUpCiB7CiAgICAgQVNTRVJUKGZvcm1h
dHRpbmdDb250ZXh0Um9vdC5oYXNDaGlsZCgpKTsKQEAgLTE0MSwyNyArMTQxLDI3IEBAIHZvaWQg
Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0NvbnRlbnQoY29uc3QgQ29uc3RyYWlu
dHNGb3JPdXRPZkZsb3dDb250CiAgICAgY29sbGVjdE91dE9mRmxvd0Rlc2NlbmRhbnRzSWZOZWVk
ZWQoKTsKIAogICAgIGF1dG8gY29uc3RyYWludHNGb3JMYXlvdXRCb3ggPSBbJl0gKGNvbnN0IGF1
dG8mIG91dE9mRmxvd0JveCkgewotICAgICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSBvdXRP
ZkZsb3dCb3guY29udGFpbmluZ0Jsb2NrKCk7CisgICAgICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9j
ayA9IG91dE9mRmxvd0JveC0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIHJldHVybiAmY29u
dGFpbmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6IGZvcm1hdHRpbmdHZW9tZXRy
eSgpLmNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudChjb250YWluaW5nQmxvY2spOwogICAg
IH07CiAKICAgICBmb3IgKGF1dG8mIG91dE9mRmxvd0JveCA6IGZvcm1hdHRpbmdTdGF0ZSgpLm91
dE9mRmxvd0JveGVzKCkpIHsKICAgICAgICAgQVNTRVJUKG91dE9mRmxvd0JveC0+ZXN0YWJsaXNo
ZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tDb25z
dHJhaW50cyA9IGNvbnN0cmFpbnRzRm9yTGF5b3V0Qm94KCpvdXRPZkZsb3dCb3gpOworICAgICAg
ICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzID0gY29uc3RyYWludHNGb3JMYXlvdXRC
b3gob3V0T2ZGbG93Qm94KTsKICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JC
b3JkZXJBbmRQYWRkaW5nID0gSG9yaXpvbnRhbENvbnN0cmFpbnRzIHsgY29udGFpbmluZ0Jsb2Nr
Q29uc3RyYWludHMuaG9yaXpvbnRhbC5sb2dpY2FsTGVmdCwgY29udGFpbmluZ0Jsb2NrQ29uc3Ry
YWludHMuYm9yZGVyQW5kUGFkZGluZ0NvbnN0cmFpbnRzIH07Ci0gICAgICAgIGNvbXB1dGVCb3Jk
ZXJBbmRQYWRkaW5nKCpvdXRPZkZsb3dCb3gsIGhvcml6b250YWxDb25zdHJhaW50c0ZvckJvcmRl
ckFuZFBhZGRpbmcpOworICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhvdXRPZkZsb3dC
b3gsIGhvcml6b250YWxDb25zdHJhaW50c0ZvckJvcmRlckFuZFBhZGRpbmcpOwogCi0gICAgICAg
IGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoKm91dE9mRmxvd0JveCwgY29udGFp
bmluZ0Jsb2NrQ29uc3RyYWludHMpOwotICAgICAgICBhdXRvIG91dE9mRmxvd0JveEhhc0NvbnRl
bnQgPSBpczxDb250YWluZXJCb3g+KCpvdXRPZkZsb3dCb3gpICYmIGRvd25jYXN0PENvbnRhaW5l
ckJveD4oKm91dE9mRmxvd0JveCkuaGFzQ2hpbGQoKTsKKyAgICAgICAgY29tcHV0ZU91dE9mRmxv
d0hvcml6b250YWxHZW9tZXRyeShvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgYXV0byBvdXRPZkZsb3dCb3hIYXNDb250ZW50ID0gaXM8Q29udGFpbmVy
Qm94PihvdXRPZkZsb3dCb3guZ2V0KCkpICYmIGRvd25jYXN0PENvbnRhaW5lckJveD4ob3V0T2ZG
bG93Qm94LmdldCgpKS5oYXNDaGlsZCgpOwogICAgICAgICBpZiAob3V0T2ZGbG93Qm94SGFzQ29u
dGVudCkgewotICAgICAgICAgICAgYXV0byYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFp
bmVyQm94Pigqb3V0T2ZGbG93Qm94KTsKKyAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9
IGRvd25jYXN0PENvbnRhaW5lckJveD4ob3V0T2ZGbG93Qm94LmdldCgpKTsKICAgICAgICAgICAg
IGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5n
Q29udGV4dChjb250YWluZXJCb3gsIGxheW91dFN0YXRlKCkpOwogICAgICAgICAgICAgaWYgKGNv
bnRhaW5lckJveC5oYXNJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKSkKICAgICAgICAgICAgICAgICBm
b3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0SW5GbG93Q29udGVudChmb3JtYXR0aW5nR2VvbWV0cnko
KS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmVyQm94KSk7CiAgICAgICAgICAg
ICBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb250YWluZXJCb3gsIGNvbnRhaW5p
bmdCbG9ja0NvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlv
dXRPdXRPZkZsb3dDb250ZW50KGZvcm1hdHRpbmdHZW9tZXRyeSgpLmNvbnN0cmFpbnRzRm9yT3V0
T2ZGbG93Q29udGVudChjb250YWluZXJCb3gpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSgqb3V0T2ZGbG93Qm94LCBjb250YWlu
aW5nQmxvY2tDb25zdHJhaW50cyk7CisgICAgICAgICAgICBjb21wdXRlT3V0T2ZGbG93VmVydGlj
YWxHZW9tZXRyeShvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKICAg
ICB9CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0g
PDwgIkVuZDogbGF5b3V0IG91dC1vZi1mbG93IGNvbnRlbnQgLT4gY29udGV4dDogIiA8PCAmbGF5
b3V0U3RhdGUoKSA8PCAiIHJvb3Q6ICIgPDwgJnJvb3QoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250
ZXh0LmgKaW5kZXggNDY1MmNhYjM0MDBhOWM3ZDY0M2VjYWZmNGQyZTlhZTVjOGVhMGNkZi4uMjI2
YzY0NGY4NDZhZDQwNTVhYWM1MTJiNWZjOWU4NGNhZTM1NjFjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0Nv
bnRleHQuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkxheW91dFVuaXQuaCIKICNpbmNs
dWRlICJMYXlvdXRVbml0cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYyLDcgKzYxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRl
ZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSA9IDA7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0
IHVzZWRDb250ZW50SGVpZ2h0KCkgY29uc3QgPSAwOwogCi0gICAgY29uc3QgQ29udGFpbmVyQm94
JiByb290KCkgY29uc3QgeyByZXR1cm4gKm1fcm9vdDsgfQorICAgIGNvbnN0IENvbnRhaW5lckJv
eCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdDsgfQogICAgIExheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSgpIGNvbnN0OwogICAgIGNvbnN0IEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEZvcm1hdHRpbmdHZW9tZXRyeSYgZm9ybWF0dGluZ0dlb21ldHJ5KCkgY29uc3QgPSAwOwpA
QCAtMTAxLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVy
dGljYWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0Nv
bnRlbnQmKTsKICAgICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29u
c3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50Jik7CiAKLSAgICBX
ZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9yb290OworICAgIENoZWNrZWRSZWY8Y29uc3Qg
Q29udGFpbmVyQm94PiBtX3Jvb3Q7CiAgICAgRm9ybWF0dGluZ1N0YXRlJiBtX2Zvcm1hdHRpbmdT
dGF0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nU3RhdGUuaAppbmRl
eCAxZTZjZDYxOWRkMzE2ZjU5YjNmNDA5YmYzNWQ3MDk2ZDlmYjdjOGIxLi4xZGM2Nzg4MjZkMWRm
OTg4OTdmNDYwYzhkODIxOWM0YTk4ODY2NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zv
cm1hdHRpbmdTdGF0ZS5oCkBAIC0yOCw4ICsyOCw4IEBACiAjaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCiAKICNpbmNsdWRlICJGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRlIDx3
dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91
dCB7CkBAIC00MSwxNyArNDEsMTcgQEAgcHVibGljOgogICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRl
KFJlZjxGbG9hdGluZ1N0YXRlPiYmLCBMYXlvdXRTdGF0ZSYpOwogICAgIH5CbG9ja0Zvcm1hdHRp
bmdTdGF0ZSgpOwogCi0gICAgdm9pZCBzZXRVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IFVzZWRWZXJ0aWNhbE1hcmdpbiYgdXNlZFZlcnRpY2FsTWFyZ2luKSB7
IG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5zZXQoJmxheW91dEJveCwgdXNlZFZlcnRpY2FsTWFyZ2lu
KTsgfQotICAgIFVzZWRWZXJ0aWNhbE1hcmdpbiB1c2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94
JiBsYXlvdXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5nZXQoJmxh
eW91dEJveCk7IH0KLSAgICBib29sIGhhc1VzZWRWZXJ0aWNhbE1hcmdpbihjb25zdCBCb3gmIGxh
eW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2VkVmVydGljYWxNYXJnaW5zLmNvbnRhaW5zKCZs
YXlvdXRCb3gpOyB9CisgICAgdm9pZCBzZXRVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IFVzZWRWZXJ0aWNhbE1hcmdpbiYgdXNlZFZlcnRpY2FsTWFyZ2luKSB7
IG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5zZXQobGF5b3V0Qm94LCB1c2VkVmVydGljYWxNYXJnaW4p
OyB9CisgICAgVXNlZFZlcnRpY2FsTWFyZ2luIHVzZWRWZXJ0aWNhbE1hcmdpbihjb25zdCBCb3gm
IGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2VkVmVydGljYWxNYXJnaW5zLmdldChsYXlv
dXRCb3gpOyB9CisgICAgYm9vbCBoYXNVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5jb250YWlucyhsYXlv
dXRCb3gpOyB9CiAKICAgICB2b2lkIHNldEhhc0NsZWFyYW5jZShjb25zdCBCb3gmIGxheW91dEJv
eCkgeyBtX2NsZWFyYW5jZVNldC5hZGQobGF5b3V0Qm94KTsgfQogICAgIHZvaWQgY2xlYXJIYXND
bGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRCb3gpIHsgbV9jbGVhcmFuY2VTZXQucmVtb3ZlKGxh
eW91dEJveCk7IH0KICAgICBib29sIGhhc0NsZWFyYW5jZShjb25zdCBCb3gmIGxheW91dEJveCkg
Y29uc3QgeyByZXR1cm4gbV9jbGVhcmFuY2VTZXQuY29udGFpbnMobGF5b3V0Qm94KTsgfQogCiBw
cml2YXRlOgotICAgIEhhc2hNYXA8Y29uc3QgQm94KiwgVXNlZFZlcnRpY2FsTWFyZ2luPiBtX3Vz
ZWRWZXJ0aWNhbE1hcmdpbnM7Ci0gICAgV2Vha0hhc2hTZXQ8Y29uc3QgQm94PiBtX2NsZWFyYW5j
ZVNldDsKKyAgICBIYXNoTWFwPENoZWNrZWRSZWY8Y29uc3QgQm94PiwgVXNlZFZlcnRpY2FsTWFy
Z2luPiBtX3VzZWRWZXJ0aWNhbE1hcmdpbnM7CisgICAgSGFzaFNldDxDaGVja2VkUmVmPGNvbnN0
IEJveD4+IG1fY2xlYXJhbmNlU2V0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGQwYTdiYmNlYmQwZTlkOTE1MTMxNWNk
MjEyNGZkYzA5MmZiNjdiNTQuLjhiMmJhN2QxZWI2ZmQ1ZWNlYTFmMjk2ZjhmNmYzODg1Y2I3Yzk3
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlU3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dDb250ZW50KGNvbnN0IEZvcgogICAgIGF1dG8m
IGJveGVzID0gZm9ybWF0dGluZ1N0YXRlLmJveGVzKCk7CiAKICAgICBmb3IgKGF1dG8mIG91dE9m
Rmxvd0JveCA6IG91dE9mRmxvd0JveGVzKSB7Ci0gICAgICAgIGF1dG8mIG91dE9mRmxvd0dlb21l
dHJ5ID0gZm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gpOworICAgICAg
ICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShv
dXRPZkZsb3dCb3gpOwogICAgICAgICAvLyBCb3RoIHByZXZpb3VzIGZsb2F0IGFuZCBvdXQtb2Yt
ZmxvdyBib3hlcyBhcmUgc2tpcHBlZCBoZXJlLiBBIHNlcmllcyBvZiBhZGpvaW5pbmcgb3V0LW9m
LWZsb3cgYm94ZXMgc2hvdWxkIGFsbCBiZSBwbGFjZWQKICAgICAgICAgLy8gYXQgdGhlIHNhbWUg
c3RhdGljIHBvc2l0aW9uICh0aGV5IGRvbid0IGFmZmVjdCBuZXh0LXNpYmxpbmcgcG9zaXRpb25z
KSBhbmQgd2hpbGUgZmxvYXRzIGRvIHBhcnRpY2lwYXRlIGluIHRoZSBpbmxpbmUgbGF5b3V0CiAg
ICAgICAgIC8vIHRoZWlyIHBvc2l0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiB0YWtlbiBpbnRvIGFj
Y291bnQgZHVyaW5nIHRoZSBpbmxpbmUgbGF5b3V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxldmVs
Qm94LmgKaW5kZXggZTIwNDUwMzQ0NzY3Y2UyNzNiNWY5OThiZjJkZjcwYjZjZDEwNDM0Zi4uMmVh
OWE1ZWE1MTg2ZjMyM2I4ZTY1NzA0ZThiZWY4YTA1N2MyYjc1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMZXZlbEJveC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiSW5saW5lUmVjdC5o
IgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCi0jaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExh
eW91dCB7CkBAIC05MCw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCi0gICAgY29uc3QgQm94JiBsYXlvdXRCb3goKSBj
b25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3g7IH0KKyAgICBjb25zdCBCb3gmIGxheW91dEJveCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94OyB9CiAKICAgICBJbmxpbmVMZXZlbEJveChjb25z
dCBCb3gmLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQs
IElubGluZUxheW91dFNpemUsIFR5cGUpOwogCkBAIC0xMTUsNyArMTE0LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldExheW91dEJvdW5kcyhjb25zdCBMYXlvdXRCb3VuZHMmIGxheW91dEJvdW5k
cykgeyBtX2xheW91dEJvdW5kcyA9IHsgSW5saW5lTGF5b3V0VW5pdChyb3VuZFRvSW50KGxheW91
dEJvdW5kcy5hc2NlbnQpKSwgSW5saW5lTGF5b3V0VW5pdChyb3VuZFRvSW50KGxheW91dEJvdW5k
cy5kZXNjZW50KSkgfTsgfQogCiBwcml2YXRlOgotICAgIFdlYWtQdHI8Y29uc3QgQm94PiBtX2xh
eW91dEJveDsKKyAgICBDaGVja2VkUmVmPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7CiAgICAgLy8g
VGhpcyBpcyB0aGUgY29tYmluYXRpb24gb2YgbWFyZ2luIGFuZCBib3JkZXIgYm94ZXMuIElubGlu
ZSBsZXZlbCBib3hlcyBhcmUgdmVydGljYWxseSBhbGlnbmVkIHVzaW5nIHRoZWlyIG1hcmdpbiBi
b3hlcy4KICAgICBJbmxpbmVSZWN0IG1fbG9naWNhbFJlY3Q7CiAgICAgTGF5b3V0Qm91bmRzIG1f
bGF5b3V0Qm91bmRzOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHByaXZhdGU6CiB9OwogCiBpbmxpbmUg
SW5saW5lTGV2ZWxCb3g6OklubGluZUxldmVsQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGlu
ZUxheW91dFNpemUgbG9naWNhbFNpemUsIFR5cGUgdHlwZSkKLSAgICA6IG1fbGF5b3V0Qm94KG1h
a2VXZWFrUHRyKGxheW91dEJveCkpCisgICAgOiBtX2xheW91dEJveChsYXlvdXRCb3gpCiAgICAg
LCBtX2xvZ2ljYWxSZWN0KHsgfSwgbG9naWNhbExlZnQsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxv
Z2ljYWxTaXplLmhlaWdodCgpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3N0eWxlKHsg
c3R5bGUuZm9udENhc2NhZGUoKS5wcmltYXJ5Rm9udCgpLmZvbnRNZXRyaWNzKCksIHN0eWxlLmxp
bmVIZWlnaHQoKSwgSW5saW5lTGF5b3V0VW5pdChzdHlsZS5mb250Q2FzY2FkZSgpLmZvbnREZXNj
cmlwdGlvbigpLmNvbXB1dGVkUGl4ZWxTaXplKCkpLCB7IH0gfSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCb3guaAppbmRleCBiNmQ4MDZmMzk1Y2EyNDUxOTBkNTQwOTgxMDk3YWE3ZTgzNjI2YmUz
Li45NGEzY2ZhMjgzOWNkMTU3ZjJjYjgzYjI1ZDIwZDFiYzFlNzMzMTNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJveC5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiSW5saW5lUmVj
dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIG5hbWVzcGFjZSBMYXlvdXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlCb3guaAppbmRleCA3MDU2ZTk3YzcyNGFlYmU2MGIwM2U4MjE1YzUzYzZiM2M5
MGFkY2QwLi5mY2NlNTg2YjFjNTljNzdlYmI5MzgzZWVlNWUwY2ZmZTBkYzg4ZGVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNw
bGF5L0lubGluZURpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaApAQCAtMTA3LDcg
KzEwNyw3IEBAIHN0cnVjdCBCb3ggewogICAgIH07CiAgICAgRXhwYW5zaW9uIGV4cGFuc2lvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9CiAKLSAgICBjb25zdCBMYXlvdXQ6OkJveCYg
bGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94OyB9CisgICAgY29uc3QgTGF5
b3V0OjpCb3gmIGxheW91dEJveCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Qm94OyB9CiAgICAg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZTsgfQogCiAg
ICAgc2l6ZV90IGxpbmVJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUluZGV4OyB9CkBAIC0x
MTUsNyArMTE1LDcgQEAgc3RydWN0IEJveCB7CiBwcml2YXRlOgogICAgIGNvbnN0IHNpemVfdCBt
X2xpbmVJbmRleCB7IDAgfTsKICAgICBjb25zdCBUeXBlIG1fdHlwZSB7IFR5cGU6OkdlbmVyaWNJ
bmxpbmVMZXZlbEJveCB9OwotICAgIFdlYWtQdHI8Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5b3V0
Qm94OworICAgIENoZWNrZWRSZWY8Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5b3V0Qm94OwogICAg
IGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOwogICAgIExheW91dDo6SW5saW5lUmVjdCBtX2xv
Z2ljYWxSZWN0OwogICAgIExheW91dDo6SW5saW5lUmVjdCBtX2lua092ZXJmbG93OwpAQCAtMTI3
LDcgKzEyNyw3IEBAIHByaXZhdGU6CiBpbmxpbmUgQm94OjpCb3goc2l6ZV90IGxpbmVJbmRleCwg
VHlwZSB0eXBlLCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgbG9naWNhbFJlY3QsIGNvbnN0IExh
eW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIEV4cGFuc2lvbiBleHBhbnNpb24sIHN0ZDo6
b3B0aW9uYWw8VGV4dD4gdGV4dCwgYm9vbCBoYXNDb250ZW50KQogICAgIDogbV9saW5lSW5kZXgo
bGluZUluZGV4KQogICAgICwgbV90eXBlKHR5cGUpCi0gICAgLCBtX2xheW91dEJveChtYWtlV2Vh
a1B0cihsYXlvdXRCb3gpKQorICAgICwgbV9sYXlvdXRCb3gobGF5b3V0Qm94KQogICAgICwgbV9z
dHlsZShzdHlsZSkKICAgICAsIG1fbG9naWNhbFJlY3QobG9naWNhbFJlY3QpCiAgICAgLCBtX2lu
a092ZXJmbG93KGlua092ZXJmbG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwCmluZGV4IDQwZDMy
NDNmNmI0YzY2YTNhMmZkNmRhMzk1NjFlMzg5MjA3NGVhOTIuLmJmNDMzMThjMThiNWMzZDYwNGE0
MGNhYWFhNmY4NmQ0NGFlYWEyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5jcHAKQEAgLTM2LDcg
KzM2LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
VGFibGVHcmlkKTsKIAogVGFibGVHcmlkOjpDb2x1bW46OkNvbHVtbihjb25zdCBDb250YWluZXJC
b3gqIGNvbHVtbkJveCkKLSAgICA6IG1fbGF5b3V0Qm94KG1ha2VXZWFrUHRyKGNvbHVtbkJveCkp
CisgICAgOiBtX2xheW91dEJveChjb2x1bW5Cb3gpCiB7CiB9CiAKQEAgLTU2LDEyICs1NiwxMiBA
QCB2b2lkIFRhYmxlR3JpZDo6Um93czo6YWRkUm93KGNvbnN0IENvbnRhaW5lckJveCYgcm93Qm94
KQogfQogCiBUYWJsZUdyaWQ6OlJvdzo6Um93KGNvbnN0IENvbnRhaW5lckJveCYgcm93Qm94KQot
ICAgIDogbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIocm93Qm94KSkKKyAgICA6IG1fbGF5b3V0Qm94
KHJvd0JveCkKIHsKIH0KIAogVGFibGVHcmlkOjpDZWxsOjpDZWxsKGNvbnN0IENvbnRhaW5lckJv
eCYgY2VsbEJveCwgU2xvdFBvc2l0aW9uIHBvc2l0aW9uLCBDZWxsU3BhbiBzcGFuKQotICAgIDog
bV9sYXlvdXRCb3gobWFrZVdlYWtQdHIoY2VsbEJveCkpCisgICAgOiBtX2xheW91dEJveChjZWxs
Qm94KQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fc3BhbihzcGFuKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJs
ZS9UYWJsZUdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
dGFibGUvVGFibGVHcmlkLmgKaW5kZXggNWZjODkxZDNjYjczMzhhNzU5MzFmNGQ5ZDU1YWUwYTYz
OGIwODEyMS4uNjkxZjIyOTU3ZDg1NGFlNmJiNDhlMzc2MWE5NzY3Y2NjYzdmYmU1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJs
ZUdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3Rh
YmxlL1RhYmxlR3JpZC5oCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgTGF5b3V0
VW5pdCBtX3VzZWRMb2dpY2FsV2lkdGg7CiAgICAgICAgIExheW91dFVuaXQgbV91c2VkTG9naWNh
bExlZnQ7CiAgICAgICAgIExlbmd0aCBtX2NvbXB1dGVkTG9naWNhbFdpZHRoOwotICAgICAgICBX
ZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNrZWRQ
dHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX2xheW91dEJveDsKIAogI2lmIEFTU0VSVF9FTkFCTEVE
CiAgICAgICAgIGJvb2wgbV9oYXNVc2VkV2lkdGggeyBmYWxzZSB9OwpAQCAtMTIwLDEzICsxMjAs
MTMgQEAgcHVibGljOgogICAgICAgICB2b2lkIHNldEJhc2VsaW5lKElubGluZUxheW91dFVuaXQg
YmFzZWxpbmUpIHsgbV9iYXNlbGluZSA9IGJhc2VsaW5lOyB9CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgYmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VsaW5lOyB9CiAKLSAgICAgICAg
Y29uc3QgQ29udGFpbmVyQm94JiBib3goKSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3guZ2V0
KCk7IH0KKyAgICAgICAgY29uc3QgQ29udGFpbmVyQm94JiBib3goKSBjb25zdCB7IHJldHVybiBt
X2xheW91dEJveDsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgTGF5b3V0VW5pdCBtX2xvZ2lj
YWxUb3A7CiAgICAgICAgIExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0OwogICAgICAgICBJbmxp
bmVMYXlvdXRVbml0IG1fYmFzZWxpbmUgeyAwIH07Ci0gICAgICAgIFdlYWtQdHI8Y29uc3QgQ29u
dGFpbmVyQm94PiBtX2xheW91dEJveDsKKyAgICAgICAgQ2hlY2tlZFJlZjxjb25zdCBDb250YWlu
ZXJCb3g+IG1fbGF5b3V0Qm94OwogICAgIH07CiAKICAgICBjbGFzcyBSb3dzIHsKQEAgLTE2Nyw3
ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IENvbnRhaW5lckJveCYgYm94KCkgY29u
c3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94LmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBXZWFrUHRyPGNvbnN0IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNr
ZWRQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX2xheW91dEJveDsKICAgICAgICAgU2xvdFBvc2l0
aW9uIG1fcG9zaXRpb247CiAgICAgICAgIENlbGxTcGFuIG1fc3BhbjsKICAgICAgICAgSW5saW5l
TGF5b3V0VW5pdCBtX2Jhc2VsaW5lIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcApp
bmRleCA2Mzc3MmM2MGIxMzYwN2YwMjgwZWFiMTdhZjViMzg5ZjUwYTY1MTUyLi4zYmRjMzJiYWZk
MDAwZDE0MjA2ODcwNjIyZWNjMWE4MDQ5YTNjZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVl
LmNwcApAQCAtMTE0LDE0ICsxMTQsMTQgQEAgdm9pZCBCb3hUcmVlOjpidWlsZFRyZWUoKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1dG8mIGNoaWxkUmVuZGVyZXIgPSAqd2Fsa2Vy
LmN1cnJlbnQoKTsKICAgICAgICAgYXV0byBjaGlsZEJveCA9IGNyZWF0ZUNoaWxkQm94KGNoaWxk
UmVuZGVyZXIpOwotICAgICAgICBhcHBlbmRDaGlsZChXVEZNb3ZlKGNoaWxkQm94KSwgY2hpbGRS
ZW5kZXJlcik7CisgICAgICAgIGFwcGVuZENoaWxkKG1ha2VVbmlxdWVSZWZGcm9tTm9uTnVsbFVu
aXF1ZVB0cihXVEZNb3ZlKGNoaWxkQm94KSksIGNoaWxkUmVuZGVyZXIpOwogICAgIH0KIH0KIAot
dm9pZCBCb3hUcmVlOjphcHBlbmRDaGlsZChzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0OjpCb3g+IGNo
aWxkQm94LCBSZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpCit2b2lkIEJveFRyZWU6OmFwcGVu
ZENoaWxkKFVuaXF1ZVJlZjxMYXlvdXQ6OkJveD4gY2hpbGRCb3gsIFJlbmRlck9iamVjdCYgY2hp
bGRSZW5kZXJlcikKIHsKICAgICBhdXRvJiBwYXJlbnRCb3ggPSBkb3duY2FzdDxMYXlvdXQ6OkNv
bnRhaW5lckJveD4obGF5b3V0Qm94Rm9yUmVuZGVyZXIoKmNoaWxkUmVuZGVyZXIucGFyZW50KCkp
KTsKLSAgICBwYXJlbnRCb3guYXBwZW5kQ2hpbGQoKmNoaWxkQm94KTsKKyAgICBwYXJlbnRCb3gu
YXBwZW5kQ2hpbGQoY2hpbGRCb3guZ2V0KCkpOwogCiAgICAgbV9ib3hlcy5hcHBlbmQoeyBXVEZN
b3ZlKGNoaWxkQm94KSwgJmNoaWxkUmVuZGVyZXIgfSk7CiAKQEAgLTE2MSw3ICsxNjEsNyBAQCBM
YXlvdXQ6OkJveCYgQm94VHJlZTo6bGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKICAgICAgICAgICAgIHJldHVybiBlbnRyeS5yZW5kZXJlciA9PSAmcmVu
ZGVyZXI7CiAgICAgICAgIH0pOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmRleCAhPSBub3RG
b3VuZCk7Ci0gICAgICAgIHJldHVybiAqbV9ib3hlc1tpbmRleF0uYm94OworICAgICAgICByZXR1
cm4gbV9ib3hlc1tpbmRleF0uYm94OwogICAgIH0KIAogICAgIHJldHVybiAqbV9yZW5kZXJlclRv
Qm94TWFwLmdldCgmcmVuZGVyZXIpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIFJlbmRlck9iamVjdCYg
Qm94VHJlZTo6cmVuZGVyZXJGb3JMYXlvdXRCb3goY29uc3QgTGF5b3V0OjpCb3gmIGJveCkKIAog
ICAgIGlmIChtX2JveGVzLnNpemUoKSA8PSBzbWFsbFRyZWVUaHJlc2hvbGQpIHsKICAgICAgICAg
YXV0byBpbmRleCA9IG1fYm94ZXMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiBlbnRyeSkgewotICAg
ICAgICAgICAgcmV0dXJuIGVudHJ5LmJveC5nZXQoKSA9PSAmYm94OworICAgICAgICAgICAgcmV0
dXJuIGVudHJ5LmJveC5wdHIoKSA9PSAmYm94OwogICAgICAgICB9KTsKICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoaW5kZXggIT0gbm90Rm91bmQpOwogICAgICAgICByZXR1cm4gKm1fYm94ZXNbaW5k
ZXhdLnJlbmRlcmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oCmluZGV4IDJjZDg1ZThjMGI5NDNi
YzJiY2I0Yzc5MTYxMDFiZTcyZTRiYjcyMmIuLjhlZmY4MDkxY2YyNzRlNmUwZWVjNmEwYjI1NDBi
MjFkOTI1MzE2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU5LDIxICs2MCwyMSBAQCBwdWJs
aWM6CiAgICAgc2l6ZV90IGJveENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9ib3hlcy5zaXplKCk7
IH0KIAogICAgIHN0cnVjdCBCb3hBbmRSZW5kZXJlciB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxMYXlvdXQ6OkJveD4gYm94OworICAgICAgICBVbmlxdWVSZWY8TGF5b3V0OjpCb3g+IGJveDsK
ICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciB7IG51bGxwdHIgfTsKICAgICB9OwogICAg
IGNvbnN0IGF1dG8mIGJveEFuZFJlbmRlcmVyTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fYm94ZXM7
IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGJ1aWxkVHJlZSgpOwotICAgIHZvaWQgYXBwZW5kQ2hp
bGQoc3RkOjp1bmlxdWVfcHRyPExheW91dDo6Qm94PiwgUmVuZGVyT2JqZWN0Jik7CisgICAgdm9p
ZCBhcHBlbmRDaGlsZChVbmlxdWVSZWY8TGF5b3V0OjpCb3g+LCBSZW5kZXJPYmplY3QmKTsKIAog
ICAgIFJlbmRlckJsb2NrRmxvdyYgbV9mbG93OwogICAgIExheW91dDo6SW5pdGlhbENvbnRhaW5p
bmdCbG9jayBtX3Jvb3Q7CiAgICAgVmVjdG9yPEJveEFuZFJlbmRlcmVyLCAxPiBtX2JveGVzOwog
Ci0gICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBMYXlvdXQ6OkJveCo+IG1fcmVuZGVy
ZXJUb0JveE1hcDsKLSAgICBIYXNoTWFwPGNvbnN0IExheW91dDo6Qm94KiwgUmVuZGVyT2JqZWN0
Kj4gbV9ib3hUb1JlbmRlcmVyTWFwOworICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0Kiwg
Q2hlY2tlZFJlZjxMYXlvdXQ6OkJveD4+IG1fcmVuZGVyZXJUb0JveE1hcDsKKyAgICBIYXNoTWFw
PENoZWNrZWRSZWY8Y29uc3QgTGF5b3V0OjpCb3g+LCBSZW5kZXJPYmplY3QqPiBtX2JveFRvUmVu
ZGVyZXJNYXA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
CmluZGV4IDk4MjljMzYyODE2YjRkNWM4YTNjN2Y1OTgxMDY4NGFmNWNjM2FlYmMuLjllZDdmMmUz
YTM5NjNiOTNjZjk2ZTEwMjkwMjJhZDBiMTdlODAyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bklubGluZUNvbnRlbnQuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CiAKIElubGluZUNvbnRlbnQ6OklubGluZUNv
bnRlbnQoY29uc3QgTGluZUxheW91dCYgbGluZUxheW91dCkKLSAgICA6IG1fbGluZUxheW91dCht
YWtlV2Vha1B0cihsaW5lTGF5b3V0KSkKKyAgICA6IG1fbGluZUxheW91dChsaW5lTGF5b3V0KQog
ewogfQogCkBAIC02MywxOSArNjMsMTQgQEAgSW5saW5lQ29udGVudDo6fklubGluZUNvbnRlbnQo
KQogICAgIH0KIH0KIAotY29uc3QgTGluZUxheW91dCYgSW5saW5lQ29udGVudDo6bGluZUxheW91
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICptX2xpbmVMYXlvdXQ7Ci19Ci0KIGNvbnN0IFJlbmRl
ck9iamVjdCYgSW5saW5lQ29udGVudDo6cmVuZGVyZXJGb3JMYXlvdXRCb3goY29uc3QgTGF5b3V0
OjpCb3gmIGxheW91dEJveCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9saW5lTGF5b3V0LT5yZW5k
ZXJlckZvckxheW91dEJveChsYXlvdXRCb3gpOworICAgIHJldHVybiBsaW5lTGF5b3V0KCkucmVu
ZGVyZXJGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKIH0KIAogY29uc3QgUmVuZGVyQmxvY2tGbG93
JiBJbmxpbmVDb250ZW50Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogewotICAgIHJldHVybiBt
X2xpbmVMYXlvdXQtPmZsb3coKTsKKyAgICByZXR1cm4gbGluZUxheW91dCgpLmZsb3coKTsKIH0K
IAogc2l6ZV90IElubGluZUNvbnRlbnQ6OmluZGV4Rm9yQm94KGNvbnN0IElubGluZURpc3BsYXk6
OkJveCYgYm94KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oCmluZGV4
IDJjZmNmMmI2NDk3ZjI1ZDkyMDlhNTRjZDVjZTcwNzI0OTc5OWEyY2UuLjBhNThiYTFkZjM0N2Zl
ZTI3NWMxYzQ2MjI5YmI4MGM1NDc3MmYyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVD
b250ZW50LmgKQEAgLTI5LDEwICsyOSw5IEBACiAKICNpbmNsdWRlICJJbmxpbmVEaXNwbGF5Qm94
LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSXRlcmF0b3JSYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY5LDcgKzY4LDcgQEAgc3RydWN0
IElubGluZUNvbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxJbmxpbmVDb250ZW50PiB7CiAgICAg
V1RGOjpJdGVyYXRvclJhbmdlPGNvbnN0IElubGluZURpc3BsYXk6OkJveCo+IGJveGVzRm9yUmVj
dChjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCi0g
ICAgY29uc3QgTGluZUxheW91dCYgbGluZUxheW91dCgpIGNvbnN0OworICAgIGNvbnN0IExpbmVM
YXlvdXQmIGxpbmVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2xpbmVMYXlvdXQ7IH0KICAgICBj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyRm9yTGF5b3V0Qm94KGNvbnN0IExheW91dDo6Qm94
JikgY29uc3Q7CiAgICAgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBj
b25zdDsKIApAQCAtODYsMTIgKzg1LDEyIEBAIHN0cnVjdCBJbmxpbmVDb250ZW50IDogcHVibGlj
IFJlZkNvdW50ZWQ8SW5saW5lQ29udGVudD4gewogcHJpdmF0ZToKICAgICBJbmxpbmVDb250ZW50
KGNvbnN0IExpbmVMYXlvdXQmKTsKIAotICAgIFdlYWtQdHI8Y29uc3QgTGluZUxheW91dD4gbV9s
aW5lTGF5b3V0OworICAgIENoZWNrZWRSZWY8Y29uc3QgTGluZUxheW91dD4gbV9saW5lTGF5b3V0
OwogCi0gICAgdXNpbmcgRmlyc3RCb3hJbmRleENhY2hlID0gV2Vha0hhc2hNYXA8TGF5b3V0OjpC
b3gsIHNpemVfdD47CisgICAgdXNpbmcgRmlyc3RCb3hJbmRleENhY2hlID0gSGFzaE1hcDxDaGVj
a2VkUmVmPGNvbnN0IExheW91dDo6Qm94Piwgc2l6ZV90PjsKICAgICBtdXRhYmxlIHN0ZDo6dW5p
cXVlX3B0cjxGaXJzdEJveEluZGV4Q2FjaGU+IG1fZmlyc3RCb3hJbmRleENhY2hlOwogCi0gICAg
dXNpbmcgSW5saW5lQm94SW5kZXhDYWNoZSA9IFdlYWtIYXNoTWFwPExheW91dDo6Qm94LCBWZWN0
b3I8c2l6ZV90Pj47CisgICAgdXNpbmcgSW5saW5lQm94SW5kZXhDYWNoZSA9IEhhc2hNYXA8Q2hl
Y2tlZFJlZjxjb25zdCBMYXlvdXQ6OkJveD4sIFZlY3RvcjxzaXplX3Q+PjsKICAgICBtdXRhYmxl
IHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVCb3hJbmRleENhY2hlPiBtX2lubGluZUJveEluZGV4Q2Fj
aGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IDhmN2MwMDdh
MTViZGJkNTMzZTg2ODIyYjQ1ODQ3ZjhmNTlkY2ExZGQuLmU1MTMzOTI5MGZlMjVmN2ZkZjE4MGMx
OGU2MDljMTIyYjkzODY4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBA
IC0yMzksNyArMjM5LDcgQEAgdm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KCkKIAog
ICAgIGF1dG8mIGJveEFuZFJlbmRlcmVyTGlzdCA9IG1fYm94VHJlZS5ib3hBbmRSZW5kZXJlckxp
c3QoKTsKICAgICBmb3IgKGF1dG8mIGJveEFuZFJlbmRlcmVyIDogYm94QW5kUmVuZGVyZXJMaXN0
KSB7Ci0gICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpib3hBbmRSZW5kZXJlci5ib3g7CisgICAg
ICAgIGF1dG8mIGxheW91dEJveCA9IGJveEFuZFJlbmRlcmVyLmJveC5nZXQoKTsKICAgICAgICAg
aWYgKCFsYXlvdXRCb3guaXNSZXBsYWNlZEJveCgpKQogICAgICAgICAgICAgY29udGludWU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaAppbmRleCBjYjc2YjUyZmFkMTgzZTdjNWYwZGYw
YmUwZGYwODMwNmJmMjM3MGQwLi5hNTU4MGIwMGU4YjRiYjlhNjFhZGU5M2NjNzRlMzU1NThjMTEx
N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCkBAIC0zNCw3ICszNCw3IEBACiAj
aW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1
ZGUgIlJlbmRlck9iamVjdEVudW1zLmgiCi0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvQ2hlY2tlZFB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU3LDcg
KzU3LDcgQEAgbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKIAogc3RydWN0IElubGluZUNv
bnRlbnQ7CiAKLWNsYXNzIExpbmVMYXlvdXQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TGluZUxh
eW91dD4geworY2xhc3MgTGluZUxheW91dCA6IHB1YmxpYyBDYW5NYWtlQ2hlY2tlZFB0ciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTGluZUxheW91dChSZW5k
ZXJCbG9ja0Zsb3cmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmgKaW5kZXggZjlkNmJmNTExODJlNjM3NDEwZDc4NjQ4ZjhmNTZlNjdlMDY3MWEyMS4uMzQy
NjE4OTBjMjFlOTUwMzE2ODA4YzUxYzViZmJjOWQxMWMzMWMyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTI5LDggKzI5LDggQEAKIAogI2lu
Y2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRl
IDx3dGYvQ2hlY2tlZFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgSW5pdGlhbENvbnRhaW5pbmdCbG9jazsKIGNsYXNzIExheW91dFN0YXRlOwogY2xh
c3MgVHJlZUJ1aWxkZXI7CiAKLWNsYXNzIEJveCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxCb3g+
IHsKK2NsYXNzIEJveCA6IHB1YmxpYyBDYW5NYWtlQ2hlY2tlZFB0ciB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChCb3gpOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgRWxlbWVudFR5cGUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVw
bGFjZWRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxh
Y2VkQm94LmgKaW5kZXggOGUxZmQzOTRhODVkMWNhMDcyNzExM2ZkMWJhZDY0YWYwMDU5OGY1YS4u
NDVmZTQ3NmQ3ZjBjOGM0ZTdiODcwNTkyMDZmZjYzZjUwZDlhYmZjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWRCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5oCkBAIC0z
Miw3ICszMiw2IEBACiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkxheW91dFVu
aXQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAppbmRl
eCA1MjVjZTYzYmJkZTEzMmVhYzRjZjY4Y2NmZDg1OGYzZjI2NmM2YjU5Li5iY2JmNDQyZjY5OTYz
NzdkNzAxYTc5NjU4MWU5NWQ1NWQ2Yjg3MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKQEAgLTI5LDcgKzI5LDYgQEAK
IAogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCmluZGV4
IDkwODg4ODc0ZTVlOTg2NGZkM2I4NGNkZWNhMzNiMmU2ZjliNjRmYjcuLjBhNWQzOWJlNGViMTY0
MjJjN2Y1MTMxZGU3MzMzOWE0OWM5YjY2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcApAQCAtNjIsNiArNjIsOSBAQCB2b2lkIEZyYW1lVmll
d0xheW91dENvbnRleHQ6OmxheW91dFVzaW5nRm9ybWF0dGluZ0NvbnRleHQoKQogICAgIGlmICht
X2Rpc2FibGVTZXROZWVkc0xheW91dENvdW50KQogICAgICAgICByZXR1cm47CiAKKyAgICBtX2xh
eW91dFN0YXRlID0gbnVsbHB0cjsKKyAgICBtX2xheW91dFRyZWUgPSBudWxscHRyOworCiAgICAg
YXV0byYgcmVuZGVyVmlldyA9ICp0aGlzLT5yZW5kZXJWaWV3KCk7CiAgICAgbV9sYXlvdXRUcmVl
ID0gTGF5b3V0OjpUcmVlQnVpbGRlcjo6YnVpbGRMYXlvdXRUcmVlKHJlbmRlclZpZXcpOwogICAg
IG1fbGF5b3V0U3RhdGUgPSBtYWtlVW5pcXVlPExheW91dDo6TGF5b3V0U3RhdGU+KCpkb2N1bWVu
dCgpLCBtX2xheW91dFRyZWUtPnJvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3TGF5b3V0Q29udGV4dC5oCmluZGV4IDNiYzIwMDljOGIyNDVkYjFlOTQ2YWU0NzIyOTcwM2U3
OGJhYTdmZjAuLjZmOWViMWUwOTM4MjRlNmIxYjBmOWE1N2E3NTI1M2EzMjRmZWUxZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCkBAIC0xODgsOCAr
MTg4LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3BhaW50T2Zmc2V0Q2FjaGVEaXNhYmxl
Q291bnQgeyAwIH07CiAgICAgTGF5b3V0U3RhdGVTdGFjayBtX2xheW91dFN0YXRlU3RhY2s7CiAj
aWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgc3RkOjp1bmlxdWVfcHRy
PExheW91dDo6TGF5b3V0U3RhdGU+IG1fbGF5b3V0U3RhdGU7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PExheW91dDo6TGF5b3V0VHJlZT4gbV9sYXlvdXRUcmVlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXlvdXQ6OkxheW91dFN0YXRlPiBtX2xheW91dFN0YXRlOwogI2VuZGlmCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439358</attachid>
            <date>2021-09-27 09:08:05 -0700</date>
            <delta_ts>2021-09-27 22:24:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230821-20210927190803.patch</filename>
            <type>text/plain</type>
            <size>40511</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyNTJiYjM1ZmNiMTExZDFkZjc3NTRj
NjVjYjRkZjBjZmJjNTEyMWEuLjM1OTYxMjIwYWRmMTk1YmMwODg1YzhkMTdjZDdiZmU2NWFjNTRi
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMjcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdIFVzZSBDaGVja2VkUmVmL1B0ciBpbnN0ZWFk
IG9mIFdlYWtQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDgyMQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsYW4gQnVqdGFzLgorCisgICAgICAg
ICogd3RmL0NoZWNrZWRSZWYuaDoKKyAgICAgICAgKFdURjo6Q2FuTWFrZUNoZWNrZWRQdHJCYXNl
OjppbmNyZW1lbnRQdHJDb3VudCBjb25zdCk6CisgICAgICAgIChXVEY6OkNhbk1ha2VDaGVja2Vk
UHRyQmFzZTo6ZGVjcmVtZW50UHRyQ291bnQgY29uc3QpOgorICAgICAgICAoV1RGOjpDYW5NYWtl
Q2hlY2tlZFB0ckJhc2U6OmluY3JlbWVudFB0ckNvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6Q2FuTWFrZUNoZWNrZWRQdHJCYXNlOjpkZWNyZW1lbnRQdHJDb3VudCk6IERlbGV0ZWQuCisK
KyAgICAgICAgTWFrZSBjb25zdCBzbyBDaGVja2VkUHRyPGNvbnN0IEZvbz4gd29ya3MuCisKIDIw
MjEtMDktMjYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgzMDgzIGFuZCByMjgzMDg4LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDEzNjg2MjlhNDFjNGVmOGU4OTViMTliNWI1ZmU5YzdiYzA4MWQ4YjAuLjQyOGUwOGM0M2Rl
YTIxMzlkMGE4M2NjZmVkMWVhMjliMTc1NDUxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBA
QAorMjAyMS0wOS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0xGQ10gVXNlIENoZWNrZWRSZWYvUHRyIGluc3RlYWQgb2YgV2Vha1B0cgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxhbiBCdWp0YXMuCisKKyAgICAgICAgV2Vha1B0cnMgYXJlIHVzZWQgZm9y
IGxheW91dCBib3hlcyBmb3Igc2FmZXR5IG9ubHkuIFJlcGxhY2Ugd2l0aCBzaW1wbGVyLCBmYXN0
ZXIgQ2hlY2tlZFB0ci4KKworICAgICAgICAqIGRpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpidWlsZCk6CisgICAg
ICAgICogZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6cmVwbGFjZSk6CisKKyAgICAgICAg
VGhpcyB3YXMgbGVhdmluZyBhIHRleHQgaXRlcmF0b3IgaW4gc3RhY2sgd2hpbGUgbXV0YXRpbmcg
dGhlIHJlbmRlciB0cmVlLgorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nU3RhdGU6OmFkZE91dE9mRmxvd0Jv
eCk6CisgICAgICAgICogbGF5b3V0L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdT
dGF0ZUZvcklubGluZUZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGF5b3V0U3RhdGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZSk6CisgICAg
ICAgICogbGF5b3V0L0xheW91dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxh
eW91dFN0YXRlOjpyb290IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0
U3RhdGU6Omhhc1Jvb3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9mbG9hdHMv
RmxvYXRBdm9pZGVyLmg6CisgICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6RmxvYXRJdGVtOjpG
bG9hdEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1N0YXRlOjpGbG9h
dGluZ1N0YXRlKToKKyAgICAgICAgKiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdTdGF0ZTo6cm9vdCBjb25zdCk6CisgICAg
ICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpGb3JtYXR0aW5nQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlv
dXRPdXRPZkZsb3dDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRp
bmdDb250ZXh0Ojpyb290IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRp
Y1Bvc2l0aW9uRm9yT3V0T2ZGbG93Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2ZWxCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lTGV2ZWxCb3g6OmxheW91dEJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OklubGluZUxldmVsQm94OjpJbmxpbmVMZXZlbEJveCk6CisgICAgICAgICogbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5oOgorICAgICAgICAq
IGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJv
eC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpsYXlvdXRCb3ggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpCb3gpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpDb2x1bW46OkNvbHVtbik6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6Um93OjpSb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpUYWJsZUdyaWQ6OkNlbGw6OkNlbGwpOgorICAgICAgICAqIGxheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OlRhYmxlR3JpZDo6Um93Ojpib3ggY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0SW50ZWdyYXRpb246OkJveFRyZWU6OmJ1aWxkVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6Qm94VHJlZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveFRyZWU6OmxheW91dEJveEZvclJlbmRlcmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpCb3hUcmVlOjpyZW5kZXJlckZvckxh
eW91dEJveCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
Qm94VHJlZS5oOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bklubGluZUNvbnRlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OklubGluZUNvbnRlbnQ6OklubGluZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQ6OnJlbmRlcmVyRm9yTGF5b3V0Qm94IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50Ojpjb250
YWluaW5nQmxvY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OklubGluZUNvbnRlbnQ6OmxpbmVMYXlvdXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50OjpsaW5lTGF5b3V0
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5l
TGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0Lmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRDYWNo
ZWRHZW9tZXRyeUZvckxheW91dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRCb3guaDoKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBs
YWNlZEJveC5oOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVy
Lmg6CisKIDIwMjEtMDktMjYgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTVNFXSBhcHBlbmRpbmcgdG8gdGhlIHNvdXJjZSBidWZmZXIgd2lsbCBub3QgdGhy
b3cgd2hlbiB0aGUgc291cmNlIGJ1ZmZlciBpcyBmdWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvQ2hlY2tlZFJlZi5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5oCmluZGV4IGQy
YmMxY2FjZTMzMjRhYTQzMzQ3OTBmZjY5Y2I3NDRmZDc5ZWUyMmEuLjhiMjAzYjVhM2NlY2Q2NzIy
N2JjN2E1ZWE5OTY1OTlkOGRiZmM4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NoZWNr
ZWRSZWYuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkUmVmLmgKQEAgLTIzMCwxMSArMjMw
LDExIEBAIHB1YmxpYzoKICAgICB+Q2FuTWFrZUNoZWNrZWRQdHJCYXNlKCkgeyBSRUxFQVNFX0FT
U0VSVCghbV9jb3VudCk7IH0KIAogICAgIFB0ckNvdW50ZXJUeXBlIHB0ckNvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV9jb3VudDsgfQotICAgIHZvaWQgaW5jcmVtZW50UHRyQ291bnQoKSB7ICsrbV9j
b3VudDsgfQotICAgIHZvaWQgZGVjcmVtZW50UHRyQ291bnQoKSB7IEFTU0VSVChtX2NvdW50KTsg
LS1tX2NvdW50OyB9CisgICAgdm9pZCBpbmNyZW1lbnRQdHJDb3VudCgpIGNvbnN0IHsgKyttX2Nv
dW50OyB9CisgICAgdm9pZCBkZWNyZW1lbnRQdHJDb3VudCgpIGNvbnN0IHsgQVNTRVJUKG1fY291
bnQpOyAtLW1fY291bnQ7IH0KIAogcHJpdmF0ZToKLSAgICBTdG9yYWdlVHlwZSBtX2NvdW50IHsg
MCB9OworICAgIG11dGFibGUgU3RvcmFnZVR5cGUgbV9jb3VudCB7IDAgfTsKIH07CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBJbnRlZ3JhbFR5cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
aXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rp
c3BsYXlUcmVlQnVpbGRlci5jcHAKaW5kZXggYzdlZmQ2OGRkYjhkMGIzMDQ2YTlmNDQ5ZTY5ZjBi
YWVlZGVjNzkzOC4uNWQ4YTUxMThjMzA3OWMxNmY4MTI1Y2QzMjUzNjE4MTE4OWEyOThjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcApAQCAtMTE5
LDggKzExOSw2IEBAIFRyZWVCdWlsZGVyOjp+VHJlZUJ1aWxkZXIoKSA9IGRlZmF1bHQ7CiAKIHN0
ZDo6dW5pcXVlX3B0cjxUcmVlPiBUcmVlQnVpbGRlcjo6YnVpbGQoY29uc3QgTGF5b3V0OjpMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUpCiB7Ci0gICAgQVNTRVJUKGxheW91dFN0YXRlLmhhc1Jvb3Qo
KSk7Ci0KICAgICBhdXRvJiByb290TGF5b3V0Qm94ID0gbGF5b3V0U3RhdGUucm9vdCgpOwogCiAj
aWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA1ZjJiMDY2NmNkYzQzZTk4
OGEwNzVhMTlhN2I4OTY0YjMyMGEwOTlkLi5mYzlkNzE1NTQzNzNmZGM3ODVkY2E0NmNmZDVlZGY4
YWYyYTUzNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmNwcApAQCAtNzkwLDggKzc5MCw4IEBAIGF1dG8gVGV4dE1hbmlw
dWxhdGlvbkNvbnRyb2xsZXI6OnJlcGxhY2UoY29uc3QgTWFuaXB1bGF0aW9uSXRlbURhdGEmIGl0
ZW0sIGNvbnN0CiAgICAgUmVmUHRyPE5vZGU+IGZpcnN0Q29udGVudE5vZGU7CiAgICAgUmVmUHRy
PE5vZGU+IGxhc3RDaGlsZE9mQ29tbW9uQW5jZXN0b3JJblJhbmdlOwogICAgIEhhc2hTZXQ8UmVm
PE5vZGU+PiBub2Rlc1RvUmVtb3ZlOwotICAgIFBhcmFncmFwaENvbnRlbnRJdGVyYXRvciBpdGVy
YXRvciB7IGl0ZW0uc3RhcnQsIGl0ZW0uZW5kIH07Ci0gICAgZm9yICg7ICFpdGVyYXRvci5hdEVu
ZCgpOyBpdGVyYXRvci5hZHZhbmNlKCkpIHsKKyAgICAKKyAgICBmb3IgKFBhcmFncmFwaENvbnRl
bnRJdGVyYXRvciBpdGVyYXRvciB7IGl0ZW0uc3RhcnQsIGl0ZW0uZW5kIH07ICFpdGVyYXRvci5h
dEVuZCgpOyBpdGVyYXRvci5hZHZhbmNlKCkpIHsKICAgICAgICAgYXV0byBjb250ZW50ID0gaXRl
cmF0b3IuY3VycmVudENvbnRlbnQoKTsKICAgICAgICAgQVNTRVJUKGNvbnRlbnQubm9kZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaAppbmRleCA1Y2UwZDNiYjE1ZTc3
MTdhZDBjNmI5YmNkMzU4MjBhZDQwYWM3Y2U2Li4wMjQ0MDA4NGY1M2IyNWNmZmMzMjZmZTM5YmE1
MTc5MmM3NTc2NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCkBA
IC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLSNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsK
QEAgLTY1LDggKzY0LDggQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGZpbmQg
YSB3YXkgdG8gbGltaXQgYWNjZXNzIHRvIG11dGF0YWJsZSBnZW9tZXRyeS4KICAgICBCb3hHZW9t
ZXRyeSYgYm94R2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gpOwogICAgIC8vIFNpbmNlIHdl
IGxheW91dCB0aGUgb3V0LW9mLWZsb3cgYm94ZXMgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybWF0dGlu
ZyBjb250ZXh0IGxheW91dCwgaXQncyBva2F5IHRvIHN0b3JlIHRoZW0gaW4gdGhlIGZvcm1hdHRp
bmcgc3RhdGUgLWFzIG9wcG9zZWQgdG8gdGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwuCi0gICAg
dXNpbmcgT3V0T2ZGbG93Qm94TGlzdCA9IFZlY3RvcjxXZWFrUHRyPGNvbnN0IEJveD4+OwotICAg
IHZvaWQgYWRkT3V0T2ZGbG93Qm94KGNvbnN0IEJveCYgb3V0T2ZGbG93Qm94KSB7IG1fb3V0T2ZG
bG93Qm94ZXMuYXBwZW5kKG1ha2VXZWFrUHRyKG91dE9mRmxvd0JveCkpOyB9CisgICAgdXNpbmcg
T3V0T2ZGbG93Qm94TGlzdCA9IFZlY3RvcjxDaGVja2VkUmVmPGNvbnN0IEJveD4+OworICAgIHZv
aWQgYWRkT3V0T2ZGbG93Qm94KGNvbnN0IEJveCYgb3V0T2ZGbG93Qm94KSB7IG1fb3V0T2ZGbG93
Qm94ZXMuYXBwZW5kKG91dE9mRmxvd0JveCk7IH0KICAgICB2b2lkIHJlbW92ZU91dE9mRmxvd0Jv
eChjb25zdCBCb3gmKTsKICAgICBjb25zdCBPdXRPZkZsb3dCb3hMaXN0JiBvdXRPZkZsb3dCb3hl
cygpIGNvbnN0IHsgcmV0dXJuIG1fb3V0T2ZGbG93Qm94ZXM7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggMGQwMjFmNDQ1ZDUxNWJhZTkyMzg3YmFhODQ1ZjgzOTFm
MjVkZDBiZS4uOTZiZDE3ZmEwMTQ4NmE1NmYxZTViZDliZmRlNzdhYThhN2RjZTk2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFj
ZSBMYXlvdXQgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKExheW91dFN0YXRlKTsKIAog
TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
Q29udGFpbmVyQm94JiByb290Q29udGFpbmVyKQotICAgIDogbV9yb290Q29udGFpbmVyKG1ha2VX
ZWFrUHRyKHJvb3RDb250YWluZXIpKQorICAgIDogbV9yb290Q29udGFpbmVyKHJvb3RDb250YWlu
ZXIpCiB7CiAgICAgLy8gSXQgbWFrZXMgYWJzb2x1dGVseSBubyBzZW5zZSB0byBjb25zdHJ1Y3Qg
YSBkZWRpY2F0ZWQgbGF5b3V0IHN0YXRlIGZvciBhIG5vbi1mb3JtYXR0aW5nIGNvbnRleHQgcm9v
dCAobGF5b3V0IHdvdWxkIGJlIGEgbm8tb3ApLgogICAgIEFTU0VSVChyb290KCkuZXN0YWJsaXNo
ZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKQEAgLTEwMSw3ICsxMDEsNyBAQCBGb3JtYXR0aW5nU3Rh
dGUmIExheW91dFN0YXRlOjpmb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29udGV4dChjb25z
dCBDb250YWluZQogewogICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNo
ZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxl
ZCgpKSB7Ci0gICAgICAgIEFTU0VSVCgmZm9ybWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9vdENv
bnRhaW5lci5nZXQoKSk7CisgICAgICAgIEFTU0VSVCgmZm9ybWF0dGluZ0NvbnRleHRSb290ID09
IG1fcm9vdENvbnRhaW5lci5wdHIoKSk7CiAgICAgICAgIHJldHVybiAqbV9yb290SW5saW5lRm9y
bWF0dGluZ1N0YXRlRm9ySW50ZWdyYXRpb247CiAgICAgfQogCkBAIC0xMjUsNyArMTI1LDcgQEAg
SW5saW5lRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9ySW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQoY28KICAgICBBU1NFUlQoaW5saW5lRm9ybWF0dGluZ0NvbnRl
eHRSb290LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSk7CiAKICAgICBpZiAo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5n
Q29udGV4dEludGVncmF0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgIEFTU0VSVCgmaW5saW5lRm9y
bWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9vdENvbnRhaW5lci5nZXQoKSk7CisgICAgICAgIEFT
U0VSVCgmaW5saW5lRm9ybWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9vdENvbnRhaW5lci5wdHIo
KSk7CiAgICAgICAgIHJldHVybiAqbV9yb290SW5saW5lRm9ybWF0dGluZ1N0YXRlRm9ySW50ZWdy
YXRpb247CiAgICAgfQogCkBAIC0xNzEsNyArMTcxLDcgQEAgSW5saW5lRm9ybWF0dGluZ1N0YXRl
JiBMYXlvdXRTdGF0ZTo6ZW5zdXJlSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5l
ckIKIAogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxh
eW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkKCkpIHsKICAgICAgICAgaWYg
KCFtX3Jvb3RJbmxpbmVGb3JtYXR0aW5nU3RhdGVGb3JJbnRlZ3JhdGlvbikgewotICAgICAgICAg
ICAgQVNTRVJUKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0gbV9yb290Q29udGFpbmVyLmdldCgp
KTsKKyAgICAgICAgICAgIEFTU0VSVCgmZm9ybWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9vdENv
bnRhaW5lci5wdHIoKSk7CiAgICAgICAgICAgICBtX3Jvb3RJbmxpbmVGb3JtYXR0aW5nU3RhdGVG
b3JJbnRlZ3JhdGlvbiA9IGNyZWF0ZSgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAqbV9y
b290SW5saW5lRm9ybWF0dGluZ1N0YXRlRm9ySW50ZWdyYXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRTdGF0ZS5oCmluZGV4IDUxNGJkOTYwMDQzMDBiYjIyMTNhOGNlMDEyZDRkMDRlMmQ3NjNk
YzQuLmNhN2QyOWRiMmQwMjE4MDU4NThkZDBmMjMyZTA4NTM5YTlkMzYxYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRTdGF0ZS5oCkBAIC04NCw4ICs4NCw3IEBAIHB1YmxpYzoKICAgICBib29s
IGluTGltaXRlZFF1aXJrc01vZGUoKSBjb25zdCB7IHJldHVybiBtX3F1aXJrc01vZGUgPT0gUXVp
cmtzTW9kZTo6TGltaXRlZDsgfQogICAgIGJvb2wgaW5TdGFuZGFyZHNNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9xdWlya3NNb2RlID09IFF1aXJrc01vZGU6Ok5vOyB9CiAKLSAgICBib29sIGhhc1Jv
b3QoKSBjb25zdCB7IHJldHVybiAhIW1fcm9vdENvbnRhaW5lcjsgfQotICAgIGNvbnN0IENvbnRh
aW5lckJveCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuICptX3Jvb3RDb250YWluZXI7IH0KKyAgICBj
b25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RDb250YWluZXI7
IH0KIAogICAgIC8vIExGQyBpbnRlZ3JhdGlvbiBvbmx5LiBGdWxsIExGQyBoYXMgcHJvcGVyIElD
QiBhY2Nlc3MuCiAgICAgdm9pZCBzZXRWaWV3cG9ydFNpemUoY29uc3QgTGF5b3V0U2l6ZSYpOwpA
QCAtMTEzLDcgKzExMiw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxjb25zdCBCb3gqLCBzdGQ6
OnVuaXF1ZV9wdHI8Qm94R2VvbWV0cnk+PiBtX2xheW91dEJveFRvQm94R2VvbWV0cnk7CiAgICAg
UXVpcmtzTW9kZSBtX3F1aXJrc01vZGUgeyBRdWlya3NNb2RlOjpObyB9OwogCi0gICAgV2Vha1B0
cjxjb25zdCBDb250YWluZXJCb3g+IG1fcm9vdENvbnRhaW5lcjsKKyAgICBDaGVja2VkUmVmPGNv
bnN0IENvbnRhaW5lckJveD4gbV9yb290Q29udGFpbmVyOwogCiAgICAgLy8gTEZDIGludGVncmF0
aW9uIG9ubHkuCiAgICAgTGF5b3V0U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5oCmluZGV4IDdhNmFhZTAwYmM0ZDM0MWYxNDE0
MjUzYmVlNDc4MmI4OWZlYjZmYjcuLmRjOTI0ZThiYzYyMTBkODVjMTUxZTA2OTM2OTEzZDVhZGQ3
YWZjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9p
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaApA
QCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5
b3V0VW5pdHMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmNwcAppbmRleCBiOWJjZGEwMDZkNzFjNWVmYjM3YmNj
MmVhMDcyMjk5MzNjNDJiOGExLi42NGZkZjkzOGYyNTUwZjY1NDM3ZDQ0MjM3ZTFlNDNlNmY0MWQ1
ZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3Rh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5j
cHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoRmxvYXRpbmdTdGF0ZSk7CiAKIEZsb2F0aW5nU3RhdGU6OkZsb2F0SXRlbTo6
RmxvYXRJdGVtKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBCb3hHZW9tZXRyeSBhYnNvbHV0ZUJveEdl
b21ldHJ5KQotICAgIDogbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKKyAgICA6
IG1fbGF5b3V0Qm94KGxheW91dEJveCkKICAgICAsIG1fcG9zaXRpb24obGF5b3V0Qm94LmlzTGVm
dEZsb2F0aW5nUG9zaXRpb25lZCgpID8gUG9zaXRpb246OkxlZnQgOiBQb3NpdGlvbjo6UmlnaHQp
CiAgICAgLCBtX2Fic29sdXRlQm94R2VvbWV0cnkoYWJzb2x1dGVCb3hHZW9tZXRyeSkKIHsKQEAg
LTU1LDcgKzU1LDcgQEAgRmxvYXRpbmdTdGF0ZTo6RmxvYXRJdGVtOjpGbG9hdEl0ZW0oUG9zaXRp
b24gcG9zaXRpb24sIEJveEdlb21ldHJ5IGFic29sdXRlQm94R2UKIAogRmxvYXRpbmdTdGF0ZTo6
RmxvYXRpbmdTdGF0ZShMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IENvbnRhaW5lckJv
eCYgZm9ybWF0dGluZ0NvbnRleHRSb290KQogICAgIDogbV9sYXlvdXRTdGF0ZShsYXlvdXRTdGF0
ZSkKLSAgICAsIG1fZm9ybWF0dGluZ0NvbnRleHRSb290KG1ha2VXZWFrUHRyKGZvcm1hdHRpbmdD
b250ZXh0Um9vdCkpCisgICAgLCBtX2Zvcm1hdHRpbmdDb250ZXh0Um9vdChmb3JtYXR0aW5nQ29u
dGV4dFJvb3QpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9h
dHMvRmxvYXRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGlu
Z1N0YXRlLmgKaW5kZXggYjVjNmZlMTNmNGFlMjBiNzM1NmEwNzM5NjVlZjcyYzU4Y2FkZTJlMC4u
NjczN2NkYWIzZDllZTY0MWMzYWY3MDA5ZDc2ZDUzNWY5YTQ3Njk3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ1N0YXRlLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDksNyArNDgsNyBAQCBjbGFzcyBGbG9hdGluZ1N0YXRlIDog
cHVibGljIFJlZkNvdW50ZWQ8RmxvYXRpbmdTdGF0ZT4gewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8RmxvYXRpbmdTdGF0ZT4gY3JlYXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3Qg
Q29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRmxvYXRpbmdTdGF0ZShsYXlvdXRTdGF0ZSwgZm9ybWF0dGluZ0NvbnRleHRSb290KSk7IH0K
IAotICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuICptX2Zvcm1h
dHRpbmdDb250ZXh0Um9vdDsgfQorICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgpIGNvbnN0
IHsgcmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRleHRSb290OyB9CiAKICAgICBjbGFzcyBGbG9hdEl0
ZW0gewogICAgIHB1YmxpYzoKQEAgLTcwLDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICBjb25z
dCBCb3gqIGZsb2F0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRCb3guZ2V0KCk7IH0KICNl
bmRpZgogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYWtQdHI8Y29uc3QgQm94PiBtX2xheW91dEJv
eDsKKyAgICAgICAgQ2hlY2tlZFB0cjxjb25zdCBCb3g+IG1fbGF5b3V0Qm94OwogICAgICAgICBQ
b3NpdGlvbiBtX3Bvc2l0aW9uOwogICAgICAgICBCb3hHZW9tZXRyeSBtX2Fic29sdXRlQm94R2Vv
bWV0cnk7CiAgICAgfTsKQEAgLTg3LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRTdGF0
ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2xheW91dFN0YXRlOyB9CiAKICAgICBM
YXlvdXRTdGF0ZSYgbV9sYXlvdXRTdGF0ZTsKLSAgICBXZWFrUHRyPGNvbnN0IENvbnRhaW5lckJv
eD4gbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7CisgICAgQ2hlY2tlZFJlZjxjb25zdCBDb250YWlu
ZXJCb3g+IG1fZm9ybWF0dGluZ0NvbnRleHRSb290OwogICAgIEZsb2F0TGlzdCBtX2Zsb2F0czsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggOWRhM2I1M2EyZmFjNTgyODA1
MDY0OTQwNmMyMDUxYjc2MWMyMmNjOC4uZjEwNDIxNDQ5NTE0MTE0NDk4YWRiMjk5M2E3YmVjNzMx
YzVkM2MyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
bmFtZXNwYWNlIExheW91dCB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRm9ybWF0dGlu
Z0NvbnRleHQpOwogCiBGb3JtYXR0aW5nQ29udGV4dDo6Rm9ybWF0dGluZ0NvbnRleHQoY29uc3Qg
Q29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIEZvcm1hdHRpbmdTdGF0ZSYgZm9y
bWF0dGluZ1N0YXRlKQotICAgIDogbV9yb290KG1ha2VXZWFrUHRyKGZvcm1hdHRpbmdDb250ZXh0
Um9vdCkpCisgICAgOiBtX3Jvb3QoZm9ybWF0dGluZ0NvbnRleHRSb290KQogICAgICwgbV9mb3Jt
YXR0aW5nU3RhdGUoZm9ybWF0dGluZ1N0YXRlKQogewogICAgIEFTU0VSVChmb3JtYXR0aW5nQ29u
dGV4dFJvb3QuaGFzQ2hpbGQoKSk7CkBAIC0xNDEsMjcgKzE0MSwyNyBAQCB2b2lkIEZvcm1hdHRp
bmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dDb250ZW50KGNvbnN0IENvbnN0cmFpbnRzRm9yT3V0
T2ZGbG93Q29udAogICAgIGNvbGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50c0lmTmVlZGVkKCk7CiAK
ICAgICBhdXRvIGNvbnN0cmFpbnRzRm9yTGF5b3V0Qm94ID0gWyZdIChjb25zdCBhdXRvJiBvdXRP
ZkZsb3dCb3gpIHsKLSAgICAgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gb3V0T2ZGbG93Qm94
LmNvbnRhaW5pbmdCbG9jaygpOworICAgICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSBvdXRP
ZkZsb3dCb3gtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICByZXR1cm4gJmNvbnRhaW5pbmdC
bG9jayA9PSAmcm9vdCgpID8gY29uc3RyYWludHMgOiBmb3JtYXR0aW5nR2VvbWV0cnkoKS5jb25z
dHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoY29udGFpbmluZ0Jsb2NrKTsKICAgICB9OwogCiAg
ICAgZm9yIChhdXRvJiBvdXRPZkZsb3dCb3ggOiBmb3JtYXR0aW5nU3RhdGUoKS5vdXRPZkZsb3dC
b3hlcygpKSB7CiAgICAgICAgIEFTU0VSVChvdXRPZkZsb3dCb3gtPmVzdGFibGlzaGVzRm9ybWF0
dGluZ0NvbnRleHQoKSk7Ci0gICAgICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrQ29uc3RyYWludHMg
PSBjb25zdHJhaW50c0ZvckxheW91dEJveCgqb3V0T2ZGbG93Qm94KTsKKyAgICAgICAgYXV0byBj
b250YWluaW5nQmxvY2tDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzRm9yTGF5b3V0Qm94KG91dE9m
Rmxvd0JveCk7CiAgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQm9yZGVyQW5k
UGFkZGluZyA9IEhvcml6b250YWxDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFp
bnRzLmhvcml6b250YWwubG9naWNhbExlZnQsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzLmJv
cmRlckFuZFBhZGRpbmdDb25zdHJhaW50cyB9OwotICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFk
ZGluZygqb3V0T2ZGbG93Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHNGb3JCb3JkZXJBbmRQYWRk
aW5nKTsKKyAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcob3V0T2ZGbG93Qm94LCBob3Jp
em9udGFsQ29uc3RyYWludHNGb3JCb3JkZXJBbmRQYWRkaW5nKTsKIAotICAgICAgICBjb21wdXRl
T3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9j
a0NvbnN0cmFpbnRzKTsKLSAgICAgICAgYXV0byBvdXRPZkZsb3dCb3hIYXNDb250ZW50ID0gaXM8
Q29udGFpbmVyQm94Pigqb3V0T2ZGbG93Qm94KSAmJiBkb3duY2FzdDxDb250YWluZXJCb3g+KCpv
dXRPZkZsb3dCb3gpLmhhc0NoaWxkKCk7CisgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9u
dGFsR2VvbWV0cnkob3V0T2ZGbG93Qm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyk7Cisg
ICAgICAgIGF1dG8gb3V0T2ZGbG93Qm94SGFzQ29udGVudCA9IGlzPENvbnRhaW5lckJveD4ob3V0
T2ZGbG93Qm94LmdldCgpKSAmJiBkb3duY2FzdDxDb250YWluZXJCb3g+KG91dE9mRmxvd0JveC5n
ZXQoKSkuaGFzQ2hpbGQoKTsKICAgICAgICAgaWYgKG91dE9mRmxvd0JveEhhc0NvbnRlbnQpIHsK
LSAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9IGRvd25jYXN0PENvbnRhaW5lckJveD4o
Km91dE9mRmxvd0JveCk7CisgICAgICAgICAgICBhdXRvJiBjb250YWluZXJCb3ggPSBkb3duY2Fz
dDxDb250YWluZXJCb3g+KG91dE9mRmxvd0JveC5nZXQoKSk7CiAgICAgICAgICAgICBhdXRvIGZv
cm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQo
Y29udGFpbmVyQm94LCBsYXlvdXRTdGF0ZSgpKTsKICAgICAgICAgICAgIGlmIChjb250YWluZXJC
b3guaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpCiAgICAgICAgICAgICAgICAgZm9ybWF0dGlu
Z0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoZm9ybWF0dGluZ0dlb21ldHJ5KCkuY29uc3Ry
YWludHNGb3JJbkZsb3dDb250ZW50KGNvbnRhaW5lckJveCkpOwogICAgICAgICAgICAgY29tcHV0
ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoY29udGFpbmVyQm94LCBjb250YWluaW5nQmxvY2tD
b25zdHJhaW50cyk7CiAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZG
bG93Q29udGVudChmb3JtYXR0aW5nR2VvbWV0cnkoKS5jb25zdHJhaW50c0Zvck91dE9mRmxvd0Nv
bnRlbnQoY29udGFpbmVyQm94KSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY29tcHV0
ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoKm91dE9mRmxvd0JveCwgY29udGFpbmluZ0Jsb2Nr
Q29uc3RyYWludHMpOworICAgICAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0
cnkob3V0T2ZGbG93Qm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyk7CiAgICAgfQogICAg
IExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJFbmQ6
IGxheW91dCBvdXQtb2YtZmxvdyBjb250ZW50IC0+IGNvbnRleHQ6ICIgPDwgJmxheW91dFN0YXRl
KCkgPDwgIiByb290OiAiIDw8ICZyb290KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oCmlu
ZGV4IDQ2NTJjYWIzNDAwYTljN2Q2NDNlY2FmZjRkMmU5YWU1YzhlYTBjZGYuLjIyNmM2NDRmODQ2
YWQ0MDU1YWFjNTEyYjVmYzllODRjYWUzNTYxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmgK
QEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJMYXlvdXRVbml0LmgiCiAjaW5jbHVkZSAiTGF5
b3V0VW5pdHMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Miw3ICs2MSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgY29tcHV0ZWRJbnRyaW5z
aWNXaWR0aENvbnN0cmFpbnRzKCkgPSAwOwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCB1c2VkQ29u
dGVudEhlaWdodCgpIGNvbnN0ID0gMDsKIAotICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgp
IGNvbnN0IHsgcmV0dXJuICptX3Jvb3Q7IH0KKyAgICBjb25zdCBDb250YWluZXJCb3gmIHJvb3Qo
KSBjb25zdCB7IHJldHVybiBtX3Jvb3Q7IH0KICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUo
KSBjb25zdDsKICAgICBjb25zdCBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9ybWF0dGluZ1N0YXRlOyB9CiAgICAgdmlydHVhbCBjb25zdCBGb3Jt
YXR0aW5nR2VvbWV0cnkmIGZvcm1hdHRpbmdHZW9tZXRyeSgpIGNvbnN0ID0gMDsKQEAgLTEwMSw3
ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2Vv
bWV0cnkoY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50Jik7
CiAgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0IEJveCYs
IGNvbnN0IENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCYpOwogCi0gICAgV2Vha1B0cjxj
b25zdCBDb250YWluZXJCb3g+IG1fcm9vdDsKKyAgICBDaGVja2VkUmVmPGNvbnN0IENvbnRhaW5l
ckJveD4gbV9yb290OwogICAgIEZvcm1hdHRpbmdTdGF0ZSYgbV9mb3JtYXR0aW5nU3RhdGU7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggMWU2Y2Q2
MTlkZDMxNmY1OWIzZjQwOWJmMzVkNzA5NmQ5ZmI3YzhiMS4uMWRjNjc4ODI2ZDFkZjk4ODk3ZjQ2
MGM4ZDgyMTljNGE5ODg2NjUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5n
U3RhdGUuaApAQCAtMjgsOCArMjgsOCBAQAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQogCiAjaW5jbHVkZSAiRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtI
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewpAQCAt
NDEsMTcgKzQxLDE3IEBAIHB1YmxpYzoKICAgICBCbG9ja0Zvcm1hdHRpbmdTdGF0ZShSZWY8Rmxv
YXRpbmdTdGF0ZT4mJiwgTGF5b3V0U3RhdGUmKTsKICAgICB+QmxvY2tGb3JtYXR0aW5nU3RhdGUo
KTsKIAotICAgIHZvaWQgc2V0VXNlZFZlcnRpY2FsTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBVc2VkVmVydGljYWxNYXJnaW4mIHVzZWRWZXJ0aWNhbE1hcmdpbikgeyBtX3VzZWRW
ZXJ0aWNhbE1hcmdpbnMuc2V0KCZsYXlvdXRCb3gsIHVzZWRWZXJ0aWNhbE1hcmdpbik7IH0KLSAg
ICBVc2VkVmVydGljYWxNYXJnaW4gdXNlZFZlcnRpY2FsTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0
Qm94KSBjb25zdCB7IHJldHVybiBtX3VzZWRWZXJ0aWNhbE1hcmdpbnMuZ2V0KCZsYXlvdXRCb3gp
OyB9Ci0gICAgYm9vbCBoYXNVc2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gp
IGNvbnN0IHsgcmV0dXJuIG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5jb250YWlucygmbGF5b3V0Qm94
KTsgfQorICAgIHZvaWQgc2V0VXNlZFZlcnRpY2FsTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBVc2VkVmVydGljYWxNYXJnaW4mIHVzZWRWZXJ0aWNhbE1hcmdpbikgeyBtX3VzZWRW
ZXJ0aWNhbE1hcmdpbnMuc2V0KGxheW91dEJveCwgdXNlZFZlcnRpY2FsTWFyZ2luKTsgfQorICAg
IFVzZWRWZXJ0aWNhbE1hcmdpbiB1c2VkVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRC
b3gpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZFZlcnRpY2FsTWFyZ2lucy5nZXQobGF5b3V0Qm94KTsg
fQorICAgIGJvb2wgaGFzVXNlZFZlcnRpY2FsTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBj
b25zdCB7IHJldHVybiBtX3VzZWRWZXJ0aWNhbE1hcmdpbnMuY29udGFpbnMobGF5b3V0Qm94KTsg
fQogCiAgICAgdm9pZCBzZXRIYXNDbGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRCb3gpIHsgbV9j
bGVhcmFuY2VTZXQuYWRkKGxheW91dEJveCk7IH0KICAgICB2b2lkIGNsZWFySGFzQ2xlYXJhbmNl
KGNvbnN0IEJveCYgbGF5b3V0Qm94KSB7IG1fY2xlYXJhbmNlU2V0LnJlbW92ZShsYXlvdXRCb3gp
OyB9CiAgICAgYm9vbCBoYXNDbGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0IHsg
cmV0dXJuIG1fY2xlYXJhbmNlU2V0LmNvbnRhaW5zKGxheW91dEJveCk7IH0KIAogcHJpdmF0ZToK
LSAgICBIYXNoTWFwPGNvbnN0IEJveCosIFVzZWRWZXJ0aWNhbE1hcmdpbj4gbV91c2VkVmVydGlj
YWxNYXJnaW5zOwotICAgIFdlYWtIYXNoU2V0PGNvbnN0IEJveD4gbV9jbGVhcmFuY2VTZXQ7Cisg
ICAgSGFzaE1hcDxDaGVja2VkUmVmPGNvbnN0IEJveD4sIFVzZWRWZXJ0aWNhbE1hcmdpbj4gbV91
c2VkVmVydGljYWxNYXJnaW5zOworICAgIEhhc2hTZXQ8Q2hlY2tlZFJlZjxjb25zdCBCb3g+PiBt
X2NsZWFyYW5jZVNldDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBkMGE3YmJjZWJkMGU5ZDkxNTEzMTVjZDIxMjRmZGMw
OTJmYjY3YjU0Li44YjJiYTdkMWViNmZkNWVjZWExZjI5NmY4ZjZmMzg4NWNiN2M5NzNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0y
NzAsNyArMjcwLDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRp
Y1Bvc2l0aW9uRm9yT3V0T2ZGbG93Q29udGVudChjb25zdCBGb3IKICAgICBhdXRvJiBib3hlcyA9
IGZvcm1hdHRpbmdTdGF0ZS5ib3hlcygpOwogCiAgICAgZm9yIChhdXRvJiBvdXRPZkZsb3dCb3gg
OiBvdXRPZkZsb3dCb3hlcykgewotICAgICAgICBhdXRvJiBvdXRPZkZsb3dHZW9tZXRyeSA9IGZv
cm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeSgqb3V0T2ZGbG93Qm94KTsKKyAgICAgICAgYXV0byYg
b3V0T2ZGbG93R2VvbWV0cnkgPSBmb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkob3V0T2ZGbG93
Qm94KTsKICAgICAgICAgLy8gQm90aCBwcmV2aW91cyBmbG9hdCBhbmQgb3V0LW9mLWZsb3cgYm94
ZXMgYXJlIHNraXBwZWQgaGVyZS4gQSBzZXJpZXMgb2YgYWRqb2luaW5nIG91dC1vZi1mbG93IGJv
eGVzIHNob3VsZCBhbGwgYmUgcGxhY2VkCiAgICAgICAgIC8vIGF0IHRoZSBzYW1lIHN0YXRpYyBw
b3NpdGlvbiAodGhleSBkb24ndCBhZmZlY3QgbmV4dC1zaWJsaW5nIHBvc2l0aW9ucykgYW5kIHdo
aWxlIGZsb2F0cyBkbyBwYXJ0aWNpcGF0ZSBpbiB0aGUgaW5saW5lIGxheW91dAogICAgICAgICAv
LyB0aGVpciBwb3NpdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gdGFrZW4gaW50byBhY2NvdW50IGR1
cmluZyB0aGUgaW5saW5lIGxheW91dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxldmVsQm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMZXZlbEJveC5oCmlu
ZGV4IGUyMDQ1MDM0NDc2N2NlMjczYjVmOTk4YmYyZGY3MGI2Y2QxMDQzNGYuLjJlYTlhNWVhNTE4
NmYzMjNiOGU2NTcwNGU4YmVmOGEwNTdjMmI3NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxldmVsQm94LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGV2
ZWxCb3guaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIklubGluZVJlY3QuaCIKICNpbmNs
dWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRlICJMYXlvdXRVbml0cy5oIgotI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewpA
QCAtOTAsNyArODksNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KIAotICAgIGNvbnN0IEJveCYgbGF5b3V0Qm94KCkgY29uc3QgeyBy
ZXR1cm4gKm1fbGF5b3V0Qm94OyB9CisgICAgY29uc3QgQm94JiBsYXlvdXRCb3goKSBjb25zdCB7
IHJldHVybiBtX2xheW91dEJveDsgfQogCiAgICAgSW5saW5lTGV2ZWxCb3goY29uc3QgQm94Jiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVM
YXlvdXRTaXplLCBUeXBlKTsKIApAQCAtMTE1LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRMYXlvdXRCb3VuZHMoY29uc3QgTGF5b3V0Qm91bmRzJiBsYXlvdXRCb3VuZHMpIHsgbV9s
YXlvdXRCb3VuZHMgPSB7IElubGluZUxheW91dFVuaXQocm91bmRUb0ludChsYXlvdXRCb3VuZHMu
YXNjZW50KSksIElubGluZUxheW91dFVuaXQocm91bmRUb0ludChsYXlvdXRCb3VuZHMuZGVzY2Vu
dCkpIH07IH0KIAogcHJpdmF0ZToKLSAgICBXZWFrUHRyPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7
CisgICAgQ2hlY2tlZFJlZjxjb25zdCBCb3g+IG1fbGF5b3V0Qm94OwogICAgIC8vIFRoaXMgaXMg
dGhlIGNvbWJpbmF0aW9uIG9mIG1hcmdpbiBhbmQgYm9yZGVyIGJveGVzLiBJbmxpbmUgbGV2ZWwg
Ym94ZXMgYXJlIHZlcnRpY2FsbHkgYWxpZ25lZCB1c2luZyB0aGVpciBtYXJnaW4gYm94ZXMuCiAg
ICAgSW5saW5lUmVjdCBtX2xvZ2ljYWxSZWN0OwogICAgIExheW91dEJvdW5kcyBtX2xheW91dEJv
dW5kczsKQEAgLTEzNCw3ICsxMzMsNyBAQCBwcml2YXRlOgogfTsKIAogaW5saW5lIElubGluZUxl
dmVsQm94OjpJbmxpbmVMZXZlbEJveChjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRT
aXplIGxvZ2ljYWxTaXplLCBUeXBlIHR5cGUpCi0gICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0
cihsYXlvdXRCb3gpKQorICAgIDogbV9sYXlvdXRCb3gobGF5b3V0Qm94KQogICAgICwgbV9sb2dp
Y2FsUmVjdCh7IH0sIGxvZ2ljYWxMZWZ0LCBsb2dpY2FsU2l6ZS53aWR0aCgpLCBsb2dpY2FsU2l6
ZS5oZWlnaHQoKSkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9zdHlsZSh7IHN0eWxlLmZv
bnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKS5mb250TWV0cmljcygpLCBzdHlsZS5saW5lSGVpZ2h0
KCksIElubGluZUxheW91dFVuaXQoc3R5bGUuZm9udENhc2NhZGUoKS5mb250RGVzY3JpcHRpb24o
KS5jb21wdXRlZFBpeGVsU2l6ZSgpKSwgeyB9IH0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94
LmgKaW5kZXggYjZkODA2ZjM5NWNhMjQ1MTkwZDU0MDk4MTA5N2FhN2U4MzYyNmJlMy4uOTRhM2Nm
YTI4MzljZDE1N2YyY2I4M2IyNWQyMGQxYmMxZTczMzEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCb3guaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIklubGluZVJlY3QuaCIKICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYu
aD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1l
c3BhY2UgTGF5b3V0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5Qm94LmgKaW5kZXggNzA1NmU5N2M3MjRhZWJlNjBiMDNlODIxNWM1M2M2YjNjOTBhZGNkMC4u
ZmNjZTU4NmIxYzU5Yzc3ZWJiOTM4M2VlZTVlMGNmZmUwZGM4OGRlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9Jbmxp
bmVEaXNwbGF5Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmgKQEAgLTEwNyw3ICsxMDcsNyBA
QCBzdHJ1Y3QgQm94IHsKICAgICB9OwogICAgIEV4cGFuc2lvbiBleHBhbnNpb24oKSBjb25zdCB7
IHJldHVybiBtX2V4cGFuc2lvbjsgfQogCi0gICAgY29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJv
eCgpIGNvbnN0IHsgcmV0dXJuICptX2xheW91dEJveDsgfQorICAgIGNvbnN0IExheW91dDo6Qm94
JiBsYXlvdXRCb3goKSBjb25zdCB7IHJldHVybiBtX2xheW91dEJveDsgfQogICAgIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGU7IH0KIAogICAgIHNpemVf
dCBsaW5lSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2xpbmVJbmRleDsgfQpAQCAtMTE1LDcgKzEx
NSw3IEBAIHN0cnVjdCBCb3ggewogcHJpdmF0ZToKICAgICBjb25zdCBzaXplX3QgbV9saW5lSW5k
ZXggeyAwIH07CiAgICAgY29uc3QgVHlwZSBtX3R5cGUgeyBUeXBlOjpHZW5lcmljSW5saW5lTGV2
ZWxCb3ggfTsKLSAgICBXZWFrUHRyPGNvbnN0IExheW91dDo6Qm94PiBtX2xheW91dEJveDsKKyAg
ICBDaGVja2VkUmVmPGNvbnN0IExheW91dDo6Qm94PiBtX2xheW91dEJveDsKICAgICBjb25zdCBS
ZW5kZXJTdHlsZSYgbV9zdHlsZTsKICAgICBMYXlvdXQ6OklubGluZVJlY3QgbV9sb2dpY2FsUmVj
dDsKICAgICBMYXlvdXQ6OklubGluZVJlY3QgbV9pbmtPdmVyZmxvdzsKQEAgLTEyNyw3ICsxMjcs
NyBAQCBwcml2YXRlOgogaW5saW5lIEJveDo6Qm94KHNpemVfdCBsaW5lSW5kZXgsIFR5cGUgdHlw
ZSwgY29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGxvZ2ljYWxSZWN0LCBjb25zdCBMYXlvdXQ6Oklu
bGluZVJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24gZXhwYW5zaW9uLCBzdGQ6Om9wdGlvbmFs
PFRleHQ+IHRleHQsIGJvb2wgaGFzQ29udGVudCkKICAgICA6IG1fbGluZUluZGV4KGxpbmVJbmRl
eCkKICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9sYXlvdXRCb3gobWFrZVdlYWtQdHIobGF5
b3V0Qm94KSkKKyAgICAsIG1fbGF5b3V0Qm94KGxheW91dEJveCkKICAgICAsIG1fc3R5bGUoc3R5
bGUpCiAgICAgLCBtX2xvZ2ljYWxSZWN0KGxvZ2ljYWxSZWN0KQogICAgICwgbV9pbmtPdmVyZmxv
dyhpbmtPdmVyZmxvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmNwcAppbmRleCA0MGQzMjQzZjZiNGM2
NmEzYTJmZDZkYTM5NTYxZTM4OTIwNzRlYTkyLi5iZjQzMzE4YzE4YjVjM2Q2MDRhNDBjYWFhYTZm
ODZkNDRhZWFhMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL3RhYmxlL1RhYmxlR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUdyaWQuY3BwCkBAIC0zNiw3ICszNiw3IEBA
IG5hbWVzcGFjZSBMYXlvdXQgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFRhYmxlR3Jp
ZCk7CiAKIFRhYmxlR3JpZDo6Q29sdW1uOjpDb2x1bW4oY29uc3QgQ29udGFpbmVyQm94KiBjb2x1
bW5Cb3gpCi0gICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0cihjb2x1bW5Cb3gpKQorICAgIDog
bV9sYXlvdXRCb3goY29sdW1uQm94KQogewogfQogCkBAIC01NiwxMiArNTYsMTIgQEAgdm9pZCBU
YWJsZUdyaWQ6OlJvd3M6OmFkZFJvdyhjb25zdCBDb250YWluZXJCb3gmIHJvd0JveCkKIH0KIAog
VGFibGVHcmlkOjpSb3c6OlJvdyhjb25zdCBDb250YWluZXJCb3gmIHJvd0JveCkKLSAgICA6IG1f
bGF5b3V0Qm94KG1ha2VXZWFrUHRyKHJvd0JveCkpCisgICAgOiBtX2xheW91dEJveChyb3dCb3gp
CiB7CiB9CiAKIFRhYmxlR3JpZDo6Q2VsbDo6Q2VsbChjb25zdCBDb250YWluZXJCb3gmIGNlbGxC
b3gsIFNsb3RQb3NpdGlvbiBwb3NpdGlvbiwgQ2VsbFNwYW4gc3BhbikKLSAgICA6IG1fbGF5b3V0
Qm94KG1ha2VXZWFrUHRyKGNlbGxCb3gpKQorICAgIDogbV9sYXlvdXRCb3goY2VsbEJveCkKICAg
ICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX3NwYW4oc3BhbikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVH
cmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1Rh
YmxlR3JpZC5oCmluZGV4IDVmYzg5MWQzY2I3MzM4YTc1OTMxZjRkOWQ1NWFlMGE2MzhiMDgxMjEu
LjY5MWYyMjk1N2Q4NTRhZTZiYjQ4ZTM3NjFhOTc2N2NjY2M3ZmJlNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVHcmlkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJs
ZUdyaWQuaApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgICAgIExheW91dFVuaXQgbV91
c2VkTG9naWNhbFdpZHRoOwogICAgICAgICBMYXlvdXRVbml0IG1fdXNlZExvZ2ljYWxMZWZ0Owog
ICAgICAgICBMZW5ndGggbV9jb21wdXRlZExvZ2ljYWxXaWR0aDsKLSAgICAgICAgV2Vha1B0cjxj
b25zdCBDb250YWluZXJCb3g+IG1fbGF5b3V0Qm94OworICAgICAgICBDaGVja2VkUHRyPGNvbnN0
IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgICAg
ICBib29sIG1faGFzVXNlZFdpZHRoIHsgZmFsc2UgfTsKQEAgLTEyMCwxMyArMTIwLDEzIEBAIHB1
YmxpYzoKICAgICAgICAgdm9pZCBzZXRCYXNlbGluZShJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5l
KSB7IG1fYmFzZWxpbmUgPSBiYXNlbGluZTsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGJh
c2VsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZTsgfQogCi0gICAgICAgIGNvbnN0IENv
bnRhaW5lckJveCYgYm94KCkgY29uc3QgeyByZXR1cm4gKm1fbGF5b3V0Qm94LmdldCgpOyB9Cisg
ICAgICAgIGNvbnN0IENvbnRhaW5lckJveCYgYm94KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRC
b3g7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIExheW91dFVuaXQgbV9sb2dpY2FsVG9wOwog
ICAgICAgICBMYXlvdXRVbml0IG1fbG9naWNhbEhlaWdodDsKICAgICAgICAgSW5saW5lTGF5b3V0
VW5pdCBtX2Jhc2VsaW5lIHsgMCB9OwotICAgICAgICBXZWFrUHRyPGNvbnN0IENvbnRhaW5lckJv
eD4gbV9sYXlvdXRCb3g7CisgICAgICAgIENoZWNrZWRSZWY8Y29uc3QgQ29udGFpbmVyQm94PiBt
X2xheW91dEJveDsKICAgICB9OwogCiAgICAgY2xhc3MgUm93cyB7CkBAIC0xNjcsNyArMTY3LDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBDb250YWluZXJCb3gmIGJveCgpIGNvbnN0IHsgcmV0
dXJuICptX2xheW91dEJveC5nZXQoKTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2Vha1B0
cjxjb25zdCBDb250YWluZXJCb3g+IG1fbGF5b3V0Qm94OworICAgICAgICBDaGVja2VkUHRyPGNv
bnN0IENvbnRhaW5lckJveD4gbV9sYXlvdXRCb3g7CiAgICAgICAgIFNsb3RQb3NpdGlvbiBtX3Bv
c2l0aW9uOwogICAgICAgICBDZWxsU3BhbiBtX3NwYW47CiAgICAgICAgIElubGluZUxheW91dFVu
aXQgbV9iYXNlbGluZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAKaW5kZXggNjM3
NzJjNjBiMTM2MDdmMDI4MGVhYjE3YWY1YjM4OWY1MGE2NTE1Mi4uM2JkYzMyYmFmZDAwMGQxNDIw
Njg3MDYyMmVjYzFhODA0OWEzY2Q1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAKQEAg
LTExNCwxNCArMTE0LDE0IEBAIHZvaWQgQm94VHJlZTo6YnVpbGRUcmVlKCkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBhdXRvJiBjaGlsZFJlbmRlcmVyID0gKndhbGtlci5jdXJyZW50
KCk7CiAgICAgICAgIGF1dG8gY2hpbGRCb3ggPSBjcmVhdGVDaGlsZEJveChjaGlsZFJlbmRlcmVy
KTsKLSAgICAgICAgYXBwZW5kQ2hpbGQoV1RGTW92ZShjaGlsZEJveCksIGNoaWxkUmVuZGVyZXIp
OworICAgICAgICBhcHBlbmRDaGlsZChtYWtlVW5pcXVlUmVmRnJvbU5vbk51bGxVbmlxdWVQdHIo
V1RGTW92ZShjaGlsZEJveCkpLCBjaGlsZFJlbmRlcmVyKTsKICAgICB9CiB9CiAKLXZvaWQgQm94
VHJlZTo6YXBwZW5kQ2hpbGQoc3RkOjp1bmlxdWVfcHRyPExheW91dDo6Qm94PiBjaGlsZEJveCwg
UmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVyKQordm9pZCBCb3hUcmVlOjphcHBlbmRDaGlsZChV
bmlxdWVSZWY8TGF5b3V0OjpCb3g+IGNoaWxkQm94LCBSZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVy
ZXIpCiB7CiAgICAgYXV0byYgcGFyZW50Qm94ID0gZG93bmNhc3Q8TGF5b3V0OjpDb250YWluZXJC
b3g+KGxheW91dEJveEZvclJlbmRlcmVyKCpjaGlsZFJlbmRlcmVyLnBhcmVudCgpKSk7Ci0gICAg
cGFyZW50Qm94LmFwcGVuZENoaWxkKCpjaGlsZEJveCk7CisgICAgcGFyZW50Qm94LmFwcGVuZENo
aWxkKGNoaWxkQm94LmdldCgpKTsKIAogICAgIG1fYm94ZXMuYXBwZW5kKHsgV1RGTW92ZShjaGls
ZEJveCksICZjaGlsZFJlbmRlcmVyIH0pOwogCkBAIC0xNjEsNyArMTYxLDcgQEAgTGF5b3V0OjpC
b3gmIEJveFRyZWU6OmxheW91dEJveEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVu
ZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4gZW50cnkucmVuZGVyZXIgPT0gJnJlbmRlcmVyOwog
ICAgICAgICB9KTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaW5kZXggIT0gbm90Rm91bmQpOwot
ICAgICAgICByZXR1cm4gKm1fYm94ZXNbaW5kZXhdLmJveDsKKyAgICAgICAgcmV0dXJuIG1fYm94
ZXNbaW5kZXhdLmJveDsKICAgICB9CiAKICAgICByZXR1cm4gKm1fcmVuZGVyZXJUb0JveE1hcC5n
ZXQoJnJlbmRlcmVyKTsKQEAgLTE3OSw3ICsxNzksNyBAQCBSZW5kZXJPYmplY3QmIEJveFRyZWU6
OnJlbmRlcmVyRm9yTGF5b3V0Qm94KGNvbnN0IExheW91dDo6Qm94JiBib3gpCiAKICAgICBpZiAo
bV9ib3hlcy5zaXplKCkgPD0gc21hbGxUcmVlVGhyZXNob2xkKSB7CiAgICAgICAgIGF1dG8gaW5k
ZXggPSBtX2JveGVzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYgZW50cnkpIHsKLSAgICAgICAgICAg
IHJldHVybiBlbnRyeS5ib3guZ2V0KCkgPT0gJmJveDsKKyAgICAgICAgICAgIHJldHVybiBlbnRy
eS5ib3gucHRyKCkgPT0gJmJveDsKICAgICAgICAgfSk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGluZGV4ICE9IG5vdEZvdW5kKTsKICAgICAgICAgcmV0dXJuICptX2JveGVzW2luZGV4XS5yZW5k
ZXJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvbkJveFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaAppbmRleCAyY2Q4NWU4YzBiOTQzYmMyYmNiNGM3
OTE2MTAxYmU3MmU0YmI3MjJiLi44ZWZmODA5MWNmMjc0ZTZlMGVlYzZhMGIyNTQwYjIxZDkyNTMx
NjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25Cb3hUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNs
dWRlICJMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OSwyMSArNjAsMjEgQEAgcHVibGljOgogICAg
IHNpemVfdCBib3hDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYm94ZXMuc2l6ZSgpOyB9CiAKICAg
ICBzdHJ1Y3QgQm94QW5kUmVuZGVyZXIgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0
OjpCb3g+IGJveDsKKyAgICAgICAgVW5pcXVlUmVmPExheW91dDo6Qm94PiBib3g7CiAgICAgICAg
IFJlbmRlck9iamVjdCogcmVuZGVyZXIgeyBudWxscHRyIH07CiAgICAgfTsKICAgICBjb25zdCBh
dXRvJiBib3hBbmRSZW5kZXJlckxpc3QoKSBjb25zdCB7IHJldHVybiBtX2JveGVzOyB9CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCBidWlsZFRyZWUoKTsKLSAgICB2b2lkIGFwcGVuZENoaWxkKHN0ZDo6
dW5pcXVlX3B0cjxMYXlvdXQ6OkJveD4sIFJlbmRlck9iamVjdCYpOworICAgIHZvaWQgYXBwZW5k
Q2hpbGQoVW5pcXVlUmVmPExheW91dDo6Qm94PiwgUmVuZGVyT2JqZWN0Jik7CiAKICAgICBSZW5k
ZXJCbG9ja0Zsb3cmIG1fZmxvdzsKICAgICBMYXlvdXQ6OkluaXRpYWxDb250YWluaW5nQmxvY2sg
bV9yb290OwogICAgIFZlY3RvcjxCb3hBbmRSZW5kZXJlciwgMT4gbV9ib3hlczsKIAotICAgIEhh
c2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0KiwgTGF5b3V0OjpCb3gqPiBtX3JlbmRlcmVyVG9Cb3hN
YXA7Ci0gICAgSGFzaE1hcDxjb25zdCBMYXlvdXQ6OkJveCosIFJlbmRlck9iamVjdCo+IG1fYm94
VG9SZW5kZXJlck1hcDsKKyAgICBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIENoZWNrZWRS
ZWY8TGF5b3V0OjpCb3g+PiBtX3JlbmRlcmVyVG9Cb3hNYXA7CisgICAgSGFzaE1hcDxDaGVja2Vk
UmVmPGNvbnN0IExheW91dDo6Qm94PiwgUmVuZGVyT2JqZWN0Kj4gbV9ib3hUb1JlbmRlcmVyTWFw
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmNwcAppbmRleCA5
ODI5YzM2MjgxNmI0ZDVjOGEzYzdmNTk4MTA2ODRhZjVjYzNhZWJjLi45ZWQ3ZjJlM2EzOTYzYjkz
Y2Y5NmUxMDI5MDIyYWQwYjE3ZTgwMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVD
b250ZW50LmNwcApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3Bh
Y2UgTGF5b3V0SW50ZWdyYXRpb24gewogCiBJbmxpbmVDb250ZW50OjpJbmxpbmVDb250ZW50KGNv
bnN0IExpbmVMYXlvdXQmIGxpbmVMYXlvdXQpCi0gICAgOiBtX2xpbmVMYXlvdXQobWFrZVdlYWtQ
dHIobGluZUxheW91dCkpCisgICAgOiBtX2xpbmVMYXlvdXQobGluZUxheW91dCkKIHsKIH0KIApA
QCAtNjMsMTkgKzYzLDE0IEBAIElubGluZUNvbnRlbnQ6On5JbmxpbmVDb250ZW50KCkKICAgICB9
CiB9CiAKLWNvbnN0IExpbmVMYXlvdXQmIElubGluZUNvbnRlbnQ6OmxpbmVMYXlvdXQoKSBjb25z
dAotewotICAgIHJldHVybiAqbV9saW5lTGF5b3V0OwotfQotCiBjb25zdCBSZW5kZXJPYmplY3Qm
IElubGluZUNvbnRlbnQ6OnJlbmRlcmVyRm9yTGF5b3V0Qm94KGNvbnN0IExheW91dDo6Qm94JiBs
YXlvdXRCb3gpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGluZUxheW91dC0+cmVuZGVyZXJGb3JM
YXlvdXRCb3gobGF5b3V0Qm94KTsKKyAgICByZXR1cm4gbGluZUxheW91dCgpLnJlbmRlcmVyRm9y
TGF5b3V0Qm94KGxheW91dEJveCk7CiB9CiAKIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgSW5saW5l
Q29udGVudDo6Y29udGFpbmluZ0Jsb2NrKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9saW5lTGF5
b3V0LT5mbG93KCk7CisgICAgcmV0dXJuIGxpbmVMYXlvdXQoKS5mbG93KCk7CiB9CiAKIHNpemVf
dCBJbmxpbmVDb250ZW50OjppbmRleEZvckJveChjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3gmIGJv
eCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaAppbmRleCAyY2ZjZjJi
NjQ5N2YyNWQ5MjA5YTU0Y2Q1Y2U3MDcyNDk3OTlhMmNlLi4wYTU4YmExZGYzNDdmZWUyNzVjMWM0
NjIyOWJiODBjNTQ3NzJmMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5o
CkBAIC0yOSwxMCArMjksOSBAQAogCiAjaW5jbHVkZSAiSW5saW5lRGlzcGxheUJveC5oIgogI2lu
Y2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0l0ZXJhdG9yUmFuZ2UuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
Ci0jaW5jbHVkZSA8d3RmL1dlYWtIYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02OSw3ICs2OCw3IEBAIHN0cnVjdCBJbmxpbmVD
b250ZW50IDogcHVibGljIFJlZkNvdW50ZWQ8SW5saW5lQ29udGVudD4gewogICAgIFdURjo6SXRl
cmF0b3JSYW5nZTxjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3gqPiBib3hlc0ZvclJlY3QoY29uc3Qg
TGF5b3V0UmVjdCYpIGNvbnN0OwogICAgIHZvaWQgc2hyaW5rVG9GaXQoKTsKIAotICAgIGNvbnN0
IExpbmVMYXlvdXQmIGxpbmVMYXlvdXQoKSBjb25zdDsKKyAgICBjb25zdCBMaW5lTGF5b3V0JiBs
aW5lTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9saW5lTGF5b3V0OyB9CiAgICAgY29uc3QgUmVu
ZGVyT2JqZWN0JiByZW5kZXJlckZvckxheW91dEJveChjb25zdCBMYXlvdXQ6OkJveCYpIGNvbnN0
OwogICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CiAK
QEAgLTg2LDEyICs4NSwxMiBAQCBzdHJ1Y3QgSW5saW5lQ29udGVudCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPElubGluZUNvbnRlbnQ+IHsKIHByaXZhdGU6CiAgICAgSW5saW5lQ29udGVudChjb25zdCBM
aW5lTGF5b3V0Jik7CiAKLSAgICBXZWFrUHRyPGNvbnN0IExpbmVMYXlvdXQ+IG1fbGluZUxheW91
dDsKKyAgICBDaGVja2VkUmVmPGNvbnN0IExpbmVMYXlvdXQ+IG1fbGluZUxheW91dDsKIAotICAg
IHVzaW5nIEZpcnN0Qm94SW5kZXhDYWNoZSA9IFdlYWtIYXNoTWFwPExheW91dDo6Qm94LCBzaXpl
X3Q+OworICAgIHVzaW5nIEZpcnN0Qm94SW5kZXhDYWNoZSA9IEhhc2hNYXA8Q2hlY2tlZFJlZjxj
b25zdCBMYXlvdXQ6OkJveD4sIHNpemVfdD47CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8
Rmlyc3RCb3hJbmRleENhY2hlPiBtX2ZpcnN0Qm94SW5kZXhDYWNoZTsKIAotICAgIHVzaW5nIElu
bGluZUJveEluZGV4Q2FjaGUgPSBXZWFrSGFzaE1hcDxMYXlvdXQ6OkJveCwgVmVjdG9yPHNpemVf
dD4+OworICAgIHVzaW5nIElubGluZUJveEluZGV4Q2FjaGUgPSBIYXNoTWFwPENoZWNrZWRSZWY8
Y29uc3QgTGF5b3V0OjpCb3g+LCBWZWN0b3I8c2l6ZV90Pj47CiAgICAgbXV0YWJsZSBzdGQ6OnVu
aXF1ZV9wdHI8SW5saW5lQm94SW5kZXhDYWNoZT4gbV9pbmxpbmVCb3hJbmRleENhY2hlOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRleCA4ZjdjMDA3YTE1YmRiZDUz
M2U4NjgyMmI0NTg0N2Y4ZjU5ZGNhMWRkLi5lNTEzMzkyOTBmZTI1ZjdmZGYxODBjMThlNjA5YzEy
MmI5Mzg2ODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtMjM5LDcg
KzIzOSw3IEBAIHZvaWQgTGluZUxheW91dDo6Y29uc3RydWN0Q29udGVudCgpCiAKICAgICBhdXRv
JiBib3hBbmRSZW5kZXJlckxpc3QgPSBtX2JveFRyZWUuYm94QW5kUmVuZGVyZXJMaXN0KCk7CiAg
ICAgZm9yIChhdXRvJiBib3hBbmRSZW5kZXJlciA6IGJveEFuZFJlbmRlcmVyTGlzdCkgewotICAg
ICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqYm94QW5kUmVuZGVyZXIuYm94OworICAgICAgICBhdXRv
JiBsYXlvdXRCb3ggPSBib3hBbmRSZW5kZXJlci5ib3guZ2V0KCk7CiAgICAgICAgIGlmICghbGF5
b3V0Qm94LmlzUmVwbGFjZWRCb3goKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmgKaW5kZXggY2I3NmI1MmZhZDE4M2U3YzVmMGRmMGJlMGRmMDgz
MDZiZjIzNzBkMC4uYTU1ODBiMDBlOGI0YmI5YTYxYWRlOTNjYzc0ZTM1NTU4YzExMTdmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uTGluZUxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUg
IkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKICNpbmNsdWRlICJSZW5k
ZXJPYmplY3RFbnVtcy5oIgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L0NoZWNrZWRQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Nyw3ICs1Nyw3IEBA
IG5hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CiAKIHN0cnVjdCBJbmxpbmVDb250ZW50Owog
Ci1jbGFzcyBMaW5lTGF5b3V0IDogcHVibGljIENhbk1ha2VXZWFrUHRyPExpbmVMYXlvdXQ+IHsK
K2NsYXNzIExpbmVMYXlvdXQgOiBwdWJsaWMgQ2FuTWFrZUNoZWNrZWRQdHIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIExpbmVMYXlvdXQoUmVuZGVyQmxvY2tG
bG93Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCmlu
ZGV4IGY5ZDZiZjUxMTgyZTYzNzQxMGQ3ODY0OGY4ZjU2ZTY3ZTA2NzFhMjEuLjM0MjYxODkwYzIx
ZTk1MDMxNjgwOGM1MWM1YmZiYzlkMTFjMzFjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCkBAIC0yOSw4ICsyOSw4IEBACiAKICNpbmNsdWRlICJM
YXlvdXRVbml0cy5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRQdHIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNz
IEluaXRpYWxDb250YWluaW5nQmxvY2s7CiBjbGFzcyBMYXlvdXRTdGF0ZTsKIGNsYXNzIFRyZWVC
dWlsZGVyOwogCi1jbGFzcyBCb3ggOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Qm94PiB7CitjbGFz
cyBCb3ggOiBwdWJsaWMgQ2FuTWFrZUNoZWNrZWRQdHIgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoQm94KTsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIEVsZW1lbnRUeXBlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxhY2VkQm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5o
CmluZGV4IDhlMWZkMzk0YTg1ZDFjYTA3MjcxMTNmZDFiYWQ2NGFmMDA1OThmNWEuLjQ1ZmU0NzZk
N2YwYzhjNGU3Yjg3MDU5MjA2ZmY2M2Y1MGQ5YWJmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxhY2VkQm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWRCb3guaApAQCAtMzIsNyArMzIs
NiBAQAogI2luY2x1ZGUgIkxheW91dFNpemUuaCIKICNpbmNsdWRlICJMYXlvdXRVbml0LmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKaW5kZXggNTI1Y2U2
M2JiZGUxMzJlYWM0Y2Y2OGNjZmQ4NThmM2YyNjZjNmI1OS4uYmNiZjQ0MmY2OTk2Mzc3ZDcwMWE3
OTY1ODFlOTVkNTVkNmI4NzBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNs
dWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0j
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCA5MDg4ODg3
NGU1ZTk4NjRmZDNiODRjZGVjYTMzYjJlNmY5YjY0ZmI3Li4wYTVkMzliZTRlYjE2NDIyYzdmNTEz
MWRlNzMzMzlhNDljOWI2NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
TGF5b3V0Q29udGV4dC5jcHAKQEAgLTYyLDYgKzYyLDkgQEAgdm9pZCBGcmFtZVZpZXdMYXlvdXRD
b250ZXh0OjpsYXlvdXRVc2luZ0Zvcm1hdHRpbmdDb250ZXh0KCkKICAgICBpZiAobV9kaXNhYmxl
U2V0TmVlZHNMYXlvdXRDb3VudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9sYXlvdXRTdGF0
ZSA9IG51bGxwdHI7CisgICAgbV9sYXlvdXRUcmVlID0gbnVsbHB0cjsKKwogICAgIGF1dG8mIHJl
bmRlclZpZXcgPSAqdGhpcy0+cmVuZGVyVmlldygpOwogICAgIG1fbGF5b3V0VHJlZSA9IExheW91
dDo6VHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0VHJlZShyZW5kZXJWaWV3KTsKICAgICBtX2xheW91
dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlvdXQ6OkxheW91dFN0YXRlPigqZG9jdW1lbnQoKSwgbV9s
YXlvdXRUcmVlLT5yb290KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXdMYXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuaAppbmRleCAzYmMyMDA5YzhiMjQ1ZGIxZTk0NmFlNDcyMjk3MDNlNzhiYWE3ZmYw
Li42ZjllYjFlMDkzODI0ZTZiMWIwZjlhNTdhNzUyNTNhMzI0ZmVlMWZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtMTg4LDggKzE4OCw4IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9wYWludE9mZnNldENhY2hlRGlzYWJsZUNvdW50IHsg
MCB9OwogICAgIExheW91dFN0YXRlU3RhY2sgbV9sYXlvdXRTdGF0ZVN0YWNrOwogI2lmIEVOQUJM
RShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6
OkxheW91dFN0YXRlPiBtX2xheW91dFN0YXRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6
OkxheW91dFRyZWU+IG1fbGF5b3V0VHJlZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0OjpM
YXlvdXRTdGF0ZT4gbV9sYXlvdXRTdGF0ZTsKICNlbmRpZgogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>