<?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>129769</bug_id>
          
          <creation_ts>2014-03-05 18:56:15 -0800</creation_ts>
          <short_desc>REGRESSION(r165141): Breaks things (Requested by andersca on #webkit).</short_desc>
          <delta_ts>2014-03-05 19:21:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>129519</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>987484</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-05 18:56:15 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/165141 broke the build:
Breaks things (Requested by andersca on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987486</commentid>
    <comment_count>1</comment_count>
      <attachid>225935</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-05 18:56:31 -0800</bug_when>
    <thetext>Created attachment 225935
ROLLOUT of r165141

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987498</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-05 19:17:55 -0800</bug_when>
    <thetext>I thought I&apos;ve already fixed this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987499</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-05 19:21:23 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/165157 and http://trac.webkit.org/changeset/165158 fixed this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225935</attachid>
            <date>2014-03-05 18:56:31 -0800</date>
            <delta_ts>2014-03-05 19:21:32 -0800</delta_ts>
            <desc>ROLLOUT of r165141</desc>
            <filename>bug-129769-20140305185631.patch</filename>
            <type>text/plain</type>
            <size>63166</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YTRhMDEzZmU1ZjI2NmJmZjk2OTcwNjM4NTAzZmZiNTk4NjM3OGExLi5iMDgzZDQwNTZkYzQ2MDNj
N2EyMWMxN2QyZTAzNGRmNmIwMTU3MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4OSBAQAorMjAxNC0wMy0wNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NTE0MS4KKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY1MTQxCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk3NjkKKworICAgICAgICBCcmVh
a3MgdGhpbmdzIChSZXF1ZXN0ZWQgYnkgYW5kZXJzY2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5
dGVjb2RlL1BvbHltb3JwaGljUHV0QnlJZExpc3QuY3BwOgorICAgICAgICAoSlNDOjpQdXRCeUlk
QWNjZXNzOjp2aXNpdFdlYWspOgorICAgICAgICAoSlNDOjpQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0
OjpQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0KToKKyAgICAgICAgKEpTQzo6UG9seW1vcnBoaWNQdXRC
eUlkTGlzdDo6ZnJvbSk6CisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNQdXRCeUlkTGlz
dC5oOgorICAgICAgICAoSlNDOjpQdXRCeUlkQWNjZXNzOjp0cmFuc2l0aW9uKToKKyAgICAgICAg
KEpTQzo6UHV0QnlJZEFjY2Vzczo6cmVwbGFjZSk6CisgICAgICAgIChKU0M6OlB1dEJ5SWRBY2Nl
c3M6Om9sZFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlB1dEJ5SWRBY2Nlc3M6OmNoYWluKToK
KyAgICAgICAgKEpTQzo6UHV0QnlJZEFjY2Vzczo6c3R1YlJvdXRpbmUpOgorICAgICAgICAqIGJ5
dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3RhdHVzOjpjb21wdXRl
Rm9yKToKKyAgICAgICAgKEpTQzo6UHV0QnlJZFN0YXR1czo6ZHVtcCk6CisgICAgICAgICogYnl0
ZWNvZGUvUHV0QnlJZFN0YXR1cy5oOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3RhdHVzOjpQdXRC
eUlkU3RhdHVzKToKKyAgICAgICAgKEpTQzo6UHV0QnlJZFN0YXR1czo6dGFrZXNTbG93UGF0aCk6
CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaDoKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OmVtaXRQdXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlUHV0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29tbW9uLmg6
CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAgICAgICog
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZp
eHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNJZGVudGlmaWVyKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAg
ICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAq
IGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNo
ZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0
QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAg
ICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNo
ZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRH
ZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlk
R2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaDoKKyAg
ICAgICAgKEpTQzo6SklUR2V0QnlJZEdlbmVyYXRvcjo6SklUR2V0QnlJZEdlbmVyYXRvcik6Cisg
ICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRp
b25zLmg6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9w
dXRfYnlfaWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9wdXRfYnlfaWQpOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAgICAg
KEpTQzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6dHJ5QnVpbGRHZXRCeUlETGlz
dCk6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAgIChKU0M6OnRyeUJ1
aWxkUHV0QnlJZExpc3QpOgorICAgICAgICAqIGppdC9TcGlsbFJlZ2lzdGVyc01vZGUuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6
OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9Mb29rdXAu
aDoKKyAgICAgICAgKEpTQzo6cHV0RW50cnkpOgorICAgICAgICAqIHJ1bnRpbWUvUHV0UHJvcGVy
dHlTbG90Lmg6CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6aXNDYWNoZWFibGUpOgor
ICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6OmNhY2hlZE9mZnNldCk6CisKIDIwMTQtMDMt
MDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQW5vdGhlciBi
dWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMTY1MTQxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRlODY1ZGI0YWFk
ODFjNGU0NzgzOGJiMmI2NjllMDgyZDZhMDEyY2UuLjUzMzQ1ZTZkYTgxNDkzMGI4OWVmZWJiMmFl
MmMyODg5YWJhNjc4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMy0wNSAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjE2NTE0MS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTY1MTQxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjk3NjkKKworICAgICAgICBCcmVha3MgdGhpbmdzIChSZXF1ZXN0ZWQgYnkg
YW5kZXJzY2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9qaXQv
U3BpbGxSZWdpc3RlcnNNb2RlLmg6IFJlbW92ZWQuCisKIDIwMTQtMDMtMDUgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01TRV0gQ3Jhc2ggaW4gU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSgpIC0gcmVjZWl2ZWQgc2Ft
cGxlcyBhZnRlciBTb3VyY2VCdWZmZXIgd2FzIHJlbW92ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDA5ZTViZTZiNTEwNGFhMWJkNmNmNGFjOGJmMjMxMDE3YzA1MGU5MTQuLjc1
MmRmMTUxZmJmNmY2ZTRiMDIwZTUxOTdiODlkZDUwNjhlOWEyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMTYyLDcgKzExNjIsNiBAQAogCQlBNzg0QTI2NDExRDE2NjIyMDA1
Nzc2QUMgLyogU3ludGF4Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdBN0VFNzcxMUI5OEI4RDAwNjVBMTRGIC8qIFN5bnRheENoZWNrZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzg1
MDdENjE3Q0JDNkZEMDAxMUY2RTcgLyogTWFwRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg1MDdENDE3Q0JDNkZEMDAxMUY2RTcgLyogTWFw
RGF0YS5jcHAgKi87IH07CiAJCUE3ODUwN0Q3MTdDQkM2RkQwMDExRjZFNyAvKiBNYXBEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg1MDdENTE3
Q0JDNkZEMDAxMUY2RTcgLyogTWFwRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCUE3ODVGNkJDMThDNTUzRkUwMEYxMDYyNiAvKiBTcGlsbFJl
Z2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3RkY2NDdBMThDNTJFODUwMEI1NTMwNyAvKiBTcGlsbFJlZ2lzdGVyc01vZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzg4NTNGOTE3
OTcyNjI5MDAxNDQwRTQgLyogSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg4NTNGNzE3OTcyNjI5MDAxNDQw
RTQgLyogSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5jcHAgKi87IH07CiAJCUE3ODg1M0ZBMTc5NzI2
MjkwMDE0NDBFNCAvKiBJbnRlbmRlZFN0cnVjdHVyZUNoYWluLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg4NTNGODE3OTcyNjI5MDAxNDQwRTQgLyog
SW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUE3OEE5Nzc0MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGYWlsZWRG
aW5hbGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc4QTk3NkMxNzk3MzhCODAwOURGNzQ0IC8qIERGR0ZhaWxlZEZpbmFsaXplci5jcHAgKi87
IH07CkBAIC0yODAyLDcgKzI4MDEsNiBAQAogCQlBN0ZCNjA0QjEwM0Y1RUFCMDAxN0EyODYgLyog
UHJvcGVydHlEZXNjcmlwdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
b3BlcnR5RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0ZCNjBB
MzEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3BlcnR5RGVzY3JpcHRvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RkNDMjZDMTdBMEI2QUEwMDc4NkQxQSAvKiBGVExTd2l0
Y2hDYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFN3aXRjaENhc2Uu
aDsgcGF0aCA9IGZ0bC9GVExTd2l0Y2hDYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE3RkY2NDdBMThDNTJFODUwMEI1NTMwNyAvKiBTcGlsbFJlZ2lzdGVyc01vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BpbGxSZWdpc3RlcnNNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4QTQ3NDhEMTUxQTgzMDYwMDQxMjNGRiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBs
aWJXVEYuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQThFODk0MzEw
Q0QwNjAyNDAwMzY3MTc5IC8qIEpTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEU4OTQzMzBDRDA2MDNGMDAzNjcxNzkgLyogSlNH
bG9iYWxPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9iYWxP
YmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NzEsNyArMzQ2OSw2IEBA
CiAJCQkJQTczODY1NTIxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5jcHAgKi8s
CiAJCQkJQTczODY1NTMxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5oICovLAog
CQkJCTY1OTg3RjJGMTY4MjhBN0UwMDNDMkY4RCAvKiBVbnVzZWRQb2ludGVyLmggKi8sCi0JCQkJ
QTdGRjY0N0ExOEM1MkU4NTAwQjU1MzA3IC8qIFNwaWxsUmVnaXN0ZXJzTW9kZS5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSBqaXQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTUyNiw3
ICs1NTIzLDYgQEAKIAkJCQk4NjE1OEFCMzE1NUM4QjQwMDBCNDVDOUMgLyogUHJvcGVydHlOYW1l
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1NDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVy
dHlOYW1lQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcxNjhDMTVBM0IyMzUwMDhGNURB
QSAvKiBQcm9wZXJ0eU9mZnNldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTc4NUY2QkMxOEM1NTNG
RTAwRjEwNjI2IC8qIFNwaWxsUmVnaXN0ZXJzTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0NTUwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3BlcnR5U2xvdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZCN0YzOUMxNUVEOEU0NjAwRjE2N0IyIC8qIFByb3BlcnR5U3RvcmFnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0NTYwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3RlY3QuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHlt
b3JwaGljUHV0QnlJZExpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHltb3JwaGljUHV0QnlJZExpc3QuY3BwCmluZGV4IGExZTUzZjZjM2JmMmJmOWVmMGUzMTBlOGNj
YjRhNGQ3NzVmNDVlOTAuLmZkM2Q5YTYzY2EwOWRlOGE1OWJiNzA5NzE2ODAwYTAwMjVhZDVjNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY1B1
dEJ5SWRMaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1v
cnBoaWNQdXRCeUlkTGlzdC5jcHAKQEAgLTc3LDEyICs3Nyw2IEBAIGJvb2wgUHV0QnlJZEFjY2Vz
czo6dmlzaXRXZWFrKCkgY29uc3QKICAgICAgICAgaWYgKCFIZWFwOjppc01hcmtlZChtX2NoYWlu
LmdldCgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBDdXN0b21TZXR0ZXI6Ci0gICAgICAgIGlmICghSGVhcDo6aXNNYXJrZWQobV9vbGRTdHJ1
Y3R1cmUuZ2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAobV9j
aGFpbiAmJiAhSGVhcDo6aXNNYXJrZWQobV9jaGFpbi5nZXQoKSkpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTk0LDggKzg4
LDcgQEAgUG9seW1vcnBoaWNQdXRCeUlkTGlzdDo6UG9seW1vcnBoaWNQdXRCeUlkTGlzdCgKICAg
ICBQdXRLaW5kIHB1dEtpbmQsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKICAgICA6IG1f
a2luZChwdXRLaW5kKQogewotICAgIGlmIChzdHViSW5mby5hY2Nlc3NUeXBlICE9IGFjY2Vzc191
bnNldCkKLSAgICAgICAgbV9saXN0LmFwcGVuZChQdXRCeUlkQWNjZXNzOjpmcm9tU3RydWN0dXJl
U3R1YkluZm8oc3R1YkluZm8pKTsKKyAgICBtX2xpc3QuYXBwZW5kKFB1dEJ5SWRBY2Nlc3M6OmZy
b21TdHJ1Y3R1cmVTdHViSW5mbyhzdHViSW5mbykpOwogfQogCiBQb2x5bW9ycGhpY1B1dEJ5SWRM
aXN0KiBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0Ojpmcm9tKApAQCAtMTA1LDkgKzk4LDggQEAgUG9s
eW1vcnBoaWNQdXRCeUlkTGlzdCogUG9seW1vcnBoaWNQdXRCeUlkTGlzdDo6ZnJvbSgKICAgICAg
ICAgcmV0dXJuIHN0dWJJbmZvLnUucHV0QnlJZExpc3QubGlzdDsKICAgICAKICAgICBBU1NFUlQo
c3R1YkluZm8uYWNjZXNzVHlwZSA9PSBhY2Nlc3NfcHV0X2J5X2lkX3JlcGxhY2UKLSAgICAgICAg
fHwgc3R1YkluZm8uYWNjZXNzVHlwZSA9PSBhY2Nlc3NfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9y
bWFsCi0gICAgICAgIHx8IHN0dWJJbmZvLmFjY2Vzc1R5cGUgPT0gYWNjZXNzX3B1dF9ieV9pZF90
cmFuc2l0aW9uX2RpcmVjdAotICAgICAgICB8fCBzdHViSW5mby5hY2Nlc3NUeXBlID09IGFjY2Vz
c191bnNldCk7CisgICAgICAgICAgIHx8IHN0dWJJbmZvLmFjY2Vzc1R5cGUgPT0gYWNjZXNzX3B1
dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbAorICAgICAgICAgICB8fCBzdHViSW5mby5hY2Nlc3NU
eXBlID09IGFjY2Vzc19wdXRfYnlfaWRfdHJhbnNpdGlvbl9kaXJlY3QpOwogICAgIAogICAgIFBv
bHltb3JwaGljUHV0QnlJZExpc3QqIHJlc3VsdCA9CiAgICAgICAgIG5ldyBQb2x5bW9ycGhpY1B1
dEJ5SWRMaXN0KHB1dEtpbmQsIHN0dWJJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNQdXRCeUlkTGlzdC5oCmluZGV4IGY5ZGIyNmFh
ZGUxNTU4YjRhNWMzNDhiNTFhYmUxMzBiYTU5NjVhNGIuLjMyZTQ5ODg1ZmQzMjQ4OWIzNmVjYzhj
YTM1MTE2NTI5NTE2ZWU4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Qb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1BvbHltb3JwaGljUHV0QnlJZExpc3QuaApAQCAtMzIsNyArMzIsNiBAQAogI2lu
Y2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAi
UHV0S2luZC5oIgotI2luY2x1ZGUgIlB1dFByb3BlcnR5U2xvdC5oIgogI2luY2x1ZGUgIlN0cnVj
dHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDYsOCArNDUsNyBAQCBwdWJs
aWM6CiAgICAgZW51bSBBY2Nlc3NUeXBlIHsKICAgICAgICAgSW52YWxpZCwKICAgICAgICAgVHJh
bnNpdGlvbiwKLSAgICAgICAgUmVwbGFjZSwKLSAgICAgICAgQ3VzdG9tU2V0dGVyCisgICAgICAg
IFJlcGxhY2UKICAgICB9OwogICAgIAogICAgIFB1dEJ5SWRBY2Nlc3MoKQpAQCAtNjgsMTEgKzY2
LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmVzdWx0Lm1fb2xkU3RydWN0dXJlLnNldCh2bSwgb3du
ZXIsIG9sZFN0cnVjdHVyZSk7CiAgICAgICAgIHJlc3VsdC5tX25ld1N0cnVjdHVyZS5zZXQodm0s
IG93bmVyLCBuZXdTdHJ1Y3R1cmUpOwogICAgICAgICByZXN1bHQubV9jaGFpbi5zZXQodm0sIG93
bmVyLCBjaGFpbik7Ci0gICAgICAgIHJlc3VsdC5tX2N1c3RvbVNldHRlciA9IDA7CiAgICAgICAg
IHJlc3VsdC5tX3N0dWJSb3V0aW5lID0gc3R1YlJvdXRpbmU7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQotCisgICAgCiAgICAgc3RhdGljIFB1dEJ5SWRBY2Nlc3MgcmVwbGFjZSgKICAg
ICAgICAgVk0mIHZtLAogICAgICAgICBKU0NlbGwqIG93bmVyLApAQCAtODIsMjYgKzc5LDYgQEAg
cHVibGljOgogICAgICAgICBQdXRCeUlkQWNjZXNzIHJlc3VsdDsKICAgICAgICAgcmVzdWx0Lm1f
dHlwZSA9IFJlcGxhY2U7CiAgICAgICAgIHJlc3VsdC5tX29sZFN0cnVjdHVyZS5zZXQodm0sIG93
bmVyLCBzdHJ1Y3R1cmUpOwotICAgICAgICByZXN1bHQubV9jdXN0b21TZXR0ZXIgPSAwOwotICAg
ICAgICByZXN1bHQubV9zdHViUm91dGluZSA9IHN0dWJSb3V0aW5lOwotICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgIH0KLQotCi0gICAgc3RhdGljIFB1dEJ5SWRBY2Nlc3MgY3VzdG9tU2V0dGVy
KAotICAgICAgICBWTSYgdm0sCi0gICAgICAgIEpTQ2VsbCogb3duZXIsCi0gICAgICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlLAotICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4sCi0gICAgICAg
IFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlciwKLSAgICAgICAgUGFz
c1JlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmUpCi0gICAgewotICAgICAgICBQdXRC
eUlkQWNjZXNzIHJlc3VsdDsKLSAgICAgICAgcmVzdWx0Lm1fb2xkU3RydWN0dXJlLnNldCh2bSwg
b3duZXIsIHN0cnVjdHVyZSk7Ci0gICAgICAgIHJlc3VsdC5tX3R5cGUgPSBDdXN0b21TZXR0ZXI7
Ci0gICAgICAgIGlmIChjaGFpbikKLSAgICAgICAgICAgIHJlc3VsdC5tX2NoYWluLnNldCh2bSwg
b3duZXIsIGNoYWluKTsKLSAgICAgICAgcmVzdWx0Lm1fY3VzdG9tU2V0dGVyID0gY3VzdG9tU2V0
dGVyOwogICAgICAgICByZXN1bHQubV9zdHViUm91dGluZSA9IHN0dWJSb3V0aW5lOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTExNSwxMyArOTIsMTIgQEAgcHVibGljOgogICAg
IAogICAgIGJvb2wgaXNUcmFuc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRyYW5z
aXRpb247IH0KICAgICBib29sIGlzUmVwbGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBS
ZXBsYWNlOyB9Ci0gICAgYm9vbCBpc0N1c3RvbSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBD
dXN0b21TZXR0ZXI7IH0KICAgICAKICAgICBTdHJ1Y3R1cmUqIG9sZFN0cnVjdHVyZSgpIGNvbnN0
CiAgICAgewogICAgICAgICAvLyBVc2luZyB0aGlzIGluc3RlYWQgb2YgaXNTZXQoKSB0byBtYWtl
IHRoaXMgYXNzZXJ0aW9uIHJvYnVzdCBhZ2FpbnN0IHRoZSBwb3NzaWJpbGl0eQogICAgICAgICAv
LyBvZiBhZGRpdGlvbmFsIGFjY2VzcyB0eXBlcyBiZWluZyBhZGRlZC4KLSAgICAgICAgQVNTRVJU
KGlzVHJhbnNpdGlvbigpIHx8IGlzUmVwbGFjZSgpIHx8IGlzQ3VzdG9tKCkpOworICAgICAgICBB
U1NFUlQoaXNUcmFuc2l0aW9uKCkgfHwgaXNSZXBsYWNlKCkpOwogICAgICAgICAKICAgICAgICAg
cmV0dXJuIG1fb2xkU3RydWN0dXJlLmdldCgpOwogICAgIH0KQEAgLTE0MCwxOCArMTE2LDE2IEBA
IHB1YmxpYzoKICAgICAKICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4oKSBjb25zdAogICAgIHsK
LSAgICAgICAgQVNTRVJUKGlzVHJhbnNpdGlvbigpIHx8IGlzQ3VzdG9tKCkpOworICAgICAgICBB
U1NFUlQoaXNUcmFuc2l0aW9uKCkpOwogICAgICAgICByZXR1cm4gbV9jaGFpbi5nZXQoKTsKICAg
ICB9CiAgICAgCiAgICAgSklUU3R1YlJvdXRpbmUqIHN0dWJSb3V0aW5lKCkgY29uc3QKICAgICB7
Ci0gICAgICAgIEFTU0VSVChpc1RyYW5zaXRpb24oKSB8fCBpc1JlcGxhY2UoKSB8fCBpc0N1c3Rv
bSgpKTsKKyAgICAgICAgQVNTRVJUKGlzVHJhbnNpdGlvbigpIHx8IGlzUmVwbGFjZSgpKTsKICAg
ICAgICAgcmV0dXJuIG1fc3R1YlJvdXRpbmUuZ2V0KCk7CiAgICAgfQotCi0gICAgUHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmMgY3VzdG9tU2V0dGVyKCkgY29uc3QgeyBBU1NFUlQoaXNDdXN0
b20oKSk7IHJldHVybiBtX2N1c3RvbVNldHRlcjsgfQotCisgICAgCiAgICAgYm9vbCB2aXNpdFdl
YWsoKSBjb25zdDsKICAgICAKIHByaXZhdGU6CkBAIC0xNjEsNyArMTM1LDYgQEAgcHJpdmF0ZToK
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX29sZFN0cnVjdHVyZTsKICAgICBXcml0ZUJh
cnJpZXI8U3RydWN0dXJlPiBtX25ld1N0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlQ2hhaW4+IG1fY2hhaW47Ci0gICAgUHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmMgbV9j
dXN0b21TZXR0ZXI7CiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBtX3N0dWJSb3V0aW5lOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRT
dGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMu
Y3BwCmluZGV4IDE3NTA0YTY3MTFiYzcwMDViOWQxOGQ0MDhiZmMxMDQxMDg2MmZlMTEuLmJmZmJk
ZTkwNTQ3Mzc4Yjk0YWNlZjY2MjNlZDk0YWI5ODdlNzMwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKQEAgLTIwNSw4ICsyMDUsNiBA
QCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgQ29kZQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHV0
QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgUHV0QnlJZEFjY2Vzczo6Q3VzdG9tU2V0dGVyOgot
ICAgICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKE1ha2VzQ2FsbHMpOwogCiAgICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRh
a2VzU2xvd1BhdGgpOwpAQCAtMjY3LDkgKzI2NSw2IEBAIFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0
YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
CiAgICAgSlNDZWxsKiBzcGVjaWZpY1ZhbHVlOwogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9
IHN0cnVjdHVyZS0+Z2V0Q29uY3VycmVudGx5KHZtLCB1aWQsIGF0dHJpYnV0ZXMsIHNwZWNpZmlj
VmFsdWUpOwogICAgIGlmIChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpIHsKLSAgICAgICAgaWYgKGF0
dHJpYnV0ZXMgJiBDdXN0b21BY2Nlc3NvcikKLSAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3Rh
dHVzKE1ha2VzQ2FsbHMpOwotCiAgICAgICAgIGlmIChhdHRyaWJ1dGVzICYgKEFjY2Vzc29yIHwg
UmVhZE9ubHkpKQogICAgICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0
aCk7CiAgICAgICAgIGlmIChzcGVjaWZpY1ZhbHVlKSB7CkBAIC0zNDcsOSArMzQyLDYgQEAgdm9p
ZCBQdXRCeUlkU3RhdHVzOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgY2FzZSBU
YWtlc1Nsb3dQYXRoOgogICAgICAgICBvdXQucHJpbnQoIihUYWtlc1Nsb3dQYXRoKSIpOwogICAg
ICAgICByZXR1cm47Ci0gICAgY2FzZSBNYWtlc0NhbGxzOgotICAgICAgICBvdXQucHJpbnQoIihN
YWtlc0NhbGxzKSIpOwotICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1B1dEJ5SWRTdGF0dXMuaAppbmRleCBkMmRiN2E2ZjQzZmY1NDY1ZjhmNTVlOTQ2Y2NlOWJjZTNm
NzczNWY5Li4yMzI5Mzg2MDVkZTg2NTNlNTE3YzQ0NjBhNTdjOTNiZTQ0YjNmYTJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgKQEAgLTQ3LDkg
KzQ3LDcgQEAgcHVibGljOgogICAgICAgICAvLyBJdCdzIGNhY2hlZCBhcyBhIHNpbXBsZSBzdG9y
ZSBvZiBzb21lIGtpbmQuCiAgICAgICAgIFNpbXBsZSwKICAgICAgICAgLy8gSXQncyBrbm93biB0
byBvZnRlbiB0YWtlIHNsb3cgcGF0aC4KLSAgICAgICAgVGFrZXNTbG93UGF0aCwKLSAgICAgICAg
Ly8gSXQncyBrbm93biB0byB0YWtlIHBhdGhzIHRoYXQgbWFrZSBjYWxscy4KLSAgICAgICAgTWFr
ZXNDYWxscworICAgICAgICBUYWtlc1Nsb3dQYXRoCiAgICAgfTsKICAgICAKICAgICBQdXRCeUlk
U3RhdHVzKCkKQEAgLTYwLDcgKzU4LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFB1dEJ5SWRT
dGF0dXMoU3RhdGUgc3RhdGUpCiAgICAgICAgIDogbV9zdGF0ZShzdGF0ZSkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3N0YXRlID09IE5vSW5mb3JtYXRpb24gfHwgbV9zdGF0ZSA9PSBUYWtlc1Ns
b3dQYXRoIHx8IG1fc3RhdGUgPT0gTWFrZXNDYWxscyk7CisgICAgICAgIEFTU0VSVChtX3N0YXRl
ID09IE5vSW5mb3JtYXRpb24gfHwgbV9zdGF0ZSA9PSBUYWtlc1Nsb3dQYXRoKTsKICAgICB9CiAg
ICAgCiAgICAgUHV0QnlJZFN0YXR1cyhjb25zdCBQdXRCeUlkVmFyaWFudCYgdmFyaWFudCkKQEAg
LTc5LDggKzc3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBt
X3N0YXRlICE9IE5vSW5mb3JtYXRpb247IH0KICAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhdGUgPT0gTm9JbmZvcm1hdGlvbjsgfQogICAgIGJvb2wgaXNTaW1wbGUoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlID09IFNpbXBsZTsgfQotICAgIGJvb2wgdGFrZXNTbG93UGF0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0gVGFrZXNTbG93UGF0aCB8fCBtX3N0YXRlID09
IE1ha2VzQ2FsbHM7IH0KLSAgICBib29sIG1ha2VzQ2FsbHMoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlID09IE1ha2VzQ2FsbHM7IH0KKyAgICBib29sIHRha2VzU2xvd1BhdGgoKSBjb25zdCB7IHJl
dHVybiBtX3N0YXRlID09IFRha2VzU2xvd1BhdGg7IH0KICAgICAKICAgICBzaXplX3QgbnVtVmFy
aWFudHMoKSBjb25zdCB7IHJldHVybiBtX3ZhcmlhbnRzLnNpemUoKTsgfQogICAgIGNvbnN0IFZl
Y3RvcjxQdXRCeUlkVmFyaWFudCwgMT4mIHZhcmlhbnRzKCkgY29uc3QgeyByZXR1cm4gbV92YXJp
YW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uaAppbmRleCA1MmIzZWQwM2I4NjM5MDE0MTY1MTFmMGQzNGUzZDI1OTllZTAzYTEx
Li45NTEzNWYzYTRhZDkxZTRmMjk1ZmI2NmZlNjU4MWE4OWQ2MDlmMWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMzMs
NyArMzMsNiBAQAogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBvbHltb3JwaGljQWNj
ZXNzU3RydWN0dXJlTGlzdC5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCi0jaW5jbHVkZSAi
U3BpbGxSZWdpc3RlcnNNb2RlLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAi
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KQEAgLTE5NCw3ICsxOTMsNyBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewogICAgIENv
ZGVPcmlnaW4gY29kZU9yaWdpbjsKIAogICAgIHN0cnVjdCB7Ci0gICAgICAgIFNwaWxsUmVnaXN0
ZXJzTW9kZSBzcGlsbE1vZGUgOiA4OworICAgICAgICBpbnQ4X3QgcmVnaXN0ZXJzRmx1c2hlZDsK
ICAgICAgICAgaW50OF90IGJhc2VHUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAg
aW50OF90IHZhbHVlVGFnR1BSOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGY3N2RiMWI2MjkxMzVi
MzFhNjk1YzIyZThmMWQxNDAyNTlhN2U1MTAuLmRiZjg4ZmZiNTU3Zjg3ZjJmMGQyNjNlMjBkMmVl
M2JhNmE0MWU0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTE3MzcsNyArMTczNyw2IEBAIGJv
b2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3Rz
KHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIFB1dEJ5SWQ6
Ci0gICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgogICAgICAg
ICBub2RlLT5zZXRDYW5FeGl0KHRydWUpOwogICAgICAgICBpZiAoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5iZXN0UHJvdmVuU3RydWN0dXJlKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXgg
NDI0MWM3Mzc2NjlhYWMzMGRhMzE5NDY3YTJlYzZjN2NjZDA4MzcyOC4uYjViMjUyMWZiNjVkYjE0
OGQxNzI0NGU2Mzg3MTlhODNjNzZlZWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTE4MCw3ICsxODAsNyBAQCBwcml2YXRlOgog
ICAgICAgICBpbnQgZGVzdGluYXRpb25PcGVyYW5kLCBTcGVjdWxhdGVkVHlwZSwgTm9kZSogYmFz
ZSwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwKICAgICAgICAgY29uc3QgR2V0QnlJZFN0YXR1
cyYpOwogICAgIHZvaWQgZW1pdFB1dEJ5SWQoCi0gICAgICAgIE5vZGUqIGJhc2UsIHVuc2lnbmVk
IGlkZW50aWZpZXJOdW1iZXIsIE5vZGUqIHZhbHVlLCAgY29uc3QgUHV0QnlJZFN0YXR1cyYsIGJv
b2wgaXNEaXJlY3QpOworICAgICAgICBOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVt
YmVyLCBOb2RlKiB2YWx1ZSwgYm9vbCBpc0RpcmVjdCk7CiAgICAgdm9pZCBoYW5kbGVQdXRCeUlk
KAogICAgICAgICBOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBOb2RlKiB2
YWx1ZSwgY29uc3QgUHV0QnlJZFN0YXR1cyYsCiAgICAgICAgIGJvb2wgaXNEaXJlY3QpOwpAQCAt
MTk0MywxMiArMTk0MywxMiBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKAog
fQogCiB2b2lkIEJ5dGVDb2RlUGFyc2VyOjplbWl0UHV0QnlJZCgKLSAgICBOb2RlKiBiYXNlLCB1
bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBOb2RlKiB2YWx1ZSwgY29uc3QgUHV0QnlJZFN0YXR1
cyYgcHV0QnlJZFN0YXR1cywgYm9vbCBpc0RpcmVjdCkKKyAgICBOb2RlKiBiYXNlLCB1bnNpZ25l
ZCBpZGVudGlmaWVyTnVtYmVyLCBOb2RlKiB2YWx1ZSwgYm9vbCBpc0RpcmVjdCkKIHsKICAgICBp
ZiAoaXNEaXJlY3QpCiAgICAgICAgIGFkZFRvR3JhcGgoUHV0QnlJZERpcmVjdCwgT3BJbmZvKGlk
ZW50aWZpZXJOdW1iZXIpLCBiYXNlLCB2YWx1ZSk7CiAgICAgZWxzZQotICAgICAgICBhZGRUb0dy
YXBoKHB1dEJ5SWRTdGF0dXMubWFrZXNDYWxscygpID8gUHV0QnlJZEZsdXNoIDogUHV0QnlJZCwg
T3BJbmZvKGlkZW50aWZpZXJOdW1iZXIpLCBiYXNlLCB2YWx1ZSk7CisgICAgICAgIGFkZFRvR3Jh
cGgoUHV0QnlJZCwgT3BJbmZvKGlkZW50aWZpZXJOdW1iZXIpLCBiYXNlLCB2YWx1ZSk7CiB9CiAK
IHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQoCkBAIC0xOTU4LDEzICsxOTU4LDEz
IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQoCiAgICAgaWYgKCFwdXRCeUlk
U3RhdHVzLmlzU2ltcGxlKCkpIHsKICAgICAgICAgaWYgKCFwdXRCeUlkU3RhdHVzLmlzU2V0KCkp
CiAgICAgICAgICAgICBhZGRUb0dyYXBoKEZvcmNlT1NSRXhpdCk7Ci0gICAgICAgIGVtaXRQdXRC
eUlkKGJhc2UsIGlkZW50aWZpZXJOdW1iZXIsIHZhbHVlLCBwdXRCeUlkU3RhdHVzLCBpc0RpcmVj
dCk7CisgICAgICAgIGVtaXRQdXRCeUlkKGJhc2UsIGlkZW50aWZpZXJOdW1iZXIsIHZhbHVlLCBp
c0RpcmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgaWYgKHB1dEJ5SWRT
dGF0dXMubnVtVmFyaWFudHMoKSA+IDEpIHsKICAgICAgICAgaWYgKCFpc0ZUTChtX2dyYXBoLm1f
cGxhbi5tb2RlKSkgewotICAgICAgICAgICAgZW1pdFB1dEJ5SWQoYmFzZSwgaWRlbnRpZmllck51
bWJlciwgdmFsdWUsIHB1dEJ5SWRTdGF0dXMsIGlzRGlyZWN0KTsKKyAgICAgICAgICAgIGVtaXRQ
dXRCeUlkKGJhc2UsIGlkZW50aWZpZXJOdW1iZXIsIHZhbHVlLCBpc0RpcmVjdCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0yMDAxLDEzICsyMDAxLDkgQEAg
dm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlUHV0QnlJZCgKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICAKLSAgICBpZiAodmFyaWFudC5raW5kKCkgIT0gUHV0QnlJZFZhcmlhbnQ6OlRyYW5z
aXRpb24pIHsKLSAgICAgICAgZW1pdFB1dEJ5SWQoYmFzZSwgaWRlbnRpZmllck51bWJlciwgdmFs
dWUsIHB1dEJ5SWRTdGF0dXMsIGlzRGlyZWN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQor
ICAgIEFTU0VSVCh2YXJpYW50LmtpbmQoKSA9PSBQdXRCeUlkVmFyaWFudDo6VHJhbnNpdGlvbik7
CiAgICAgaWYgKHZhcmlhbnQuc3RydWN0dXJlQ2hhaW4oKSAmJiAhdmFyaWFudC5zdHJ1Y3R1cmVD
aGFpbigpLT5pc1N0aWxsVmFsaWQoKSkgewotICAgICAgICBlbWl0UHV0QnlJZChiYXNlLCBpZGVu
dGlmaWVyTnVtYmVyLCB2YWx1ZSwgcHV0QnlJZFN0YXR1cywgaXNEaXJlY3QpOworICAgICAgICBl
bWl0UHV0QnlJZChiYXNlLCBpZGVudGlmaWVyTnVtYmVyLCB2YWx1ZSwgaXNEaXJlY3QpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaAppbmRleCAwYWYyYmRhYjc4ZjdhZmFjNDM5NjllZGYzNmIwOGNlMzY2NDZhZmJl
Li5jYTM3YzkyYzhlMWE0NzY4NzU5N2Q2YTc2MTJiM2E1NzdmY2VmMWZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTk2LDcgKzE5Niw2IEBAIHZvaWQg
Y2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIFJlYWRGdW5jdG9yJiByZWFkLCBX
cml0ZUZ1bmN0b3ImIHdyaXRlCiAgICAgY2FzZSBHZXRCeUlkOgogICAgIGNhc2UgR2V0QnlJZEZs
dXNoOgogICAgIGNhc2UgUHV0QnlJZDoKLSAgICBjYXNlIFB1dEJ5SWRGbHVzaDoKICAgICBjYXNl
IFB1dEJ5SWREaXJlY3Q6CiAgICAgY2FzZSBBcnJheVB1c2g6CiAgICAgY2FzZSBBcnJheVBvcDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCmluZGV4IDk3NzgyNTIzYzMzODIwOWI4
ZDFmMTVhMTdjNWFkODI2MDFkY2QxNjguLmVkODJjMWMwNTgwMGRiNzY0OWJlNWZhYjcxOTVmOWEw
YWRjYjMyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaApAQCAtOTYsNiAr
OTYsOCBAQCBpbmxpbmUgYm9vbCBlbmFibGVJbnQ1MigpCiAjZW5kaWYKIH0KIAorZW51bSBTcGls
bFJlZ2lzdGVyc01vZGUgeyBOZWVkVG9TcGlsbCwgRG9udFNwaWxsIH07CisKIGVudW0gTm9SZXN1
bHRUYWcgeyBOb1Jlc3VsdCB9OwogCiBlbnVtIE9wdGltaXphdGlvbkZpeHBvaW50U3RhdGUgeyBC
ZWZvcmVGaXhwb2ludCwgRml4cG9pbnROb3RDb252ZXJnZWQsIEZpeHBvaW50Q29udmVyZ2VkIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGlu
Z1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwCmluZGV4IGNhN2QzZmVjNDM0ZDQ2YjY0YWY2YTkxN2UxMjU5OWRlMDJkZTg3OTMu
LjQ0ZDQxMzZjMDBlNTNmZDQxMDcxOTc2NGI4ODZkNzkwNDg4Zjg1MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBA
IC0yMjQsNyArMjI0LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGNhc2UgUHV0QnlJZDoKLSAgICAgICAgICAgIGNhc2UgUHV0QnlJZEZs
dXNoOgogICAgICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OiB7CiAgICAgICAgICAgICAgICAg
Tm9kZU9yaWdpbiBvcmlnaW4gPSBub2RlLT5vcmlnaW47CiAgICAgICAgICAgICAgICAgRWRnZSBj
aGlsZEVkZ2UgPSBub2RlLT5jaGlsZDEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCmluZGV4IDgyNDRhNGY1YWRjNzcxMDQ5ZWZhOWFjM2RiODY0NTYyM2Uw
NzdkNjEuLjVjMGFhNDIwYzc0YjIxMDFjMGRjZTM3OTdhZDEwODA3MzRlOTg2MDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtODUxLDcgKzg1MSw2
IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIFB1dEJ5
SWQ6Ci0gICAgICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgICAgICBjYXNlIFB1dEJ5SWREaXJl
Y3Q6IHsKICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAg
ICAgICAgICAgaW5zZXJ0U3RvcmVCYXJyaWVyKG1faW5kZXhJbkJsb2NrLCBub2RlLT5jaGlsZDEo
KSwgbm9kZS0+Y2hpbGQyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBl
NDczMGUxNTRhNWEyMjZmNGY3YmQ1MjJjYTBkYzQyNjcwYzNkZDFjLi5iNWI5NTkwNjY4ZGQ5MzAz
YWI5OTU2NWU0M2YwOGRiZjZlMTdlMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aApAQCAtNjU0LDcgKzY1NCw2IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBHZXRCeUlk
OgogICAgICAgICBjYXNlIEdldEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBQdXRCeUlkOgotICAg
ICAgICBjYXNlIFB1dEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggODRhMjNlNDZlOWYzZGZjMzdkOWZiNGQzNTI3MDc3
ZDE4MGNkZGY3NS4uY2U0M2QxYWNlZmZlY2ZjM2QxMWMyM2M4MzRmMDU5OTViOGQ4YjFhNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMTQ2LDcgKzE0Niw2IEBA
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhHZXRCeUlkLCBOb2Rl
UmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUNsb2JiZXJzV29ybGQpIFwKICAgICBt
YWNybyhHZXRCeUlkRmx1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2Rl
Q2xvYmJlcnNXb3JsZCkgXAogICAgIG1hY3JvKFB1dEJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUgfCBO
b2RlQ2xvYmJlcnNXb3JsZCkgXAotICAgIG1hY3JvKFB1dEJ5SWRGbHVzaCwgTm9kZU11c3RHZW5l
cmF0ZSB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAogICAgIG1hY3Jv
KFB1dEJ5SWREaXJlY3QsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlQ2xvYmJlcnNXb3JsZCkgXAog
ICAgIG1hY3JvKENoZWNrU3RydWN0dXJlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8o
Q2hlY2tFeGVjdXRhYmxlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3Bw
CmluZGV4IDM1MDRmZDkzOTNjMzNiOTUxMjFjMzc1MjkzNWFlZWRhNDBlYTY5NmMuLjI4YzgwZTQw
ZDFmODk0MGUwOTI2NWRjNWJkOGYyYzU2MWI3OTA3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3Bw
CkBAIC01NTAsNyArNTUwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBSZXR1cm46CiAgICAg
ICAgIGNhc2UgVGhyb3c6CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKLSAgICAgICAgY2FzZSBQdXRC
eUlkRmx1c2g6CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICAgICAgY2FzZSBQdXRC
eU9mZnNldDoKICAgICAgICAgY2FzZSBNdWx0aVB1dEJ5T2Zmc2V0OgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCBkODNiOTNhNTlhMzNmZjU2ZDg2
NmYzZDZhYmRiZmVmOTE4NzlhYWU2Li4wNmMwZDQwZTk0ZDM2OTk5NmJlOTgwN2UzN2MxZmZhNGVj
ZjUxM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aApAQCAtMTU1LDcgKzE1NSw2IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlw
ZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldEJ5SWQ6CiAg
ICAgY2FzZSBHZXRCeUlkRmx1c2g6CiAgICAgY2FzZSBQdXRCeUlkOgotICAgIGNhc2UgUHV0QnlJ
ZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICBjYXNlIENoZWNrU3RydWN0dXJl
OgogICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA5ODQxMDE1MzczYjM4ODlmZGE1NGE3MTJm
NDIwMzY1Njc5Zjg4N2UyLi4wOTA2YjAxZDRhZDYzYWYwMjJiN2MzNGRmMTM0MmRkZjY3ZjM4MDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cApAQCAtODgwLDcgKzg4MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbihOb2Rl
KiBub2RlKQogICAgICAgICAgICAgc3R1YkluZm8tPnBhdGNoLmJhc2VHUFIgPSBzdGF0aWNfY2Fz
dDxpbnQ4X3Q+KGJhc2VHUFIpOwogICAgICAgICAgICAgc3R1YkluZm8tPnBhdGNoLnZhbHVlR1BS
ID0gc3RhdGljX2Nhc3Q8aW50OF90PihyZXN1bHRHUFIpOwogICAgICAgICAgICAgc3R1YkluZm8t
PnBhdGNoLnVzZWRSZWdpc3RlcnMgPSB1c2VkUmVnaXN0ZXJzKCk7Ci0gICAgICAgICAgICBzdHVi
SW5mby0+cGF0Y2guc3BpbGxNb2RlID0gTmVlZFRvU3BpbGw7CisgICAgICAgICAgICBzdHViSW5m
by0+cGF0Y2gucmVnaXN0ZXJzRmx1c2hlZCA9IGZhbHNlOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBtX2ppdC5hZGRJbihJblJlY29yZChqdW1wLCBkb25lLCBzbG93UGF0aC5nZXQoKSwgc3R1
YkluZm8pKTsKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoLnJlbGVh
c2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
aW5kZXggZjM4ZWU4OWE1OGM4OTUxYTExZjY2NTllZDk3ODEzZmFiMjI1N2VlNC4uMDJiZGFjNzI5
NTZkMGE1ZjMxMDE0NzMyMzE3MDNkZGJmZjBmYzI1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzE3LDEwICs3MTcsMTAgQEAgcHVibGlj
OgogCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdp
biwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJO
dW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1
bXAoKSwgU3BpbGxSZWdpc3RlcnNNb2RlID0gTmVlZFRvU3BpbGwpOwotICAgIHZvaWQgY2FjaGVk
UHV0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZSwgR1BSUmVnIHZhbHVlLCBHUFJSZWcgc2Ny
YXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCwgSklUQ29tcGlsZXI6
Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpLCBTcGlsbFJlZ2lzdGVy
c01vZGUgPSBOZWVkVG9TcGlsbCk7CisgICAgdm9pZCBjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4s
IEdQUlJlZyBiYXNlLCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBp
ZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdl
dCA9IEpJVENvbXBpbGVyOjpKdW1wKCkpOwogI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICB2
b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQ
UlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBh
eWxvYWRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNs
b3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSwgU3BpbGxSZWdpc3RlcnNNb2RlID0g
TmVlZFRvU3BpbGwpOwotICAgIHZvaWQgY2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcg
YmFzZVBheWxvYWRHUFIsIEdQUlJlZyB2YWx1ZVRhZ0dQUiwgR1BSUmVnIHZhbHVlUGF5bG9hZEdQ
UiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQs
IEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSwg
U3BpbGxSZWdpc3RlcnNNb2RlID0gTmVlZFRvU3BpbGwpOworICAgIHZvaWQgY2FjaGVkUHV0QnlJ
ZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyB2YWx1ZVRhZ0dQUiwg
R1BSUmVnIHZhbHVlUGF5bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2lnbmVkIGlkZW50
aWZpZXJOdW1iZXIsIFB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0g
SklUQ29tcGlsZXI6Okp1bXAoKSk7CiAjZW5kaWYKICAgICAKICAgICB2b2lkIGNvbXBpbGVJbihO
b2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAppbmRleCBjZmUyYjBiMGZlNGE4N2NlOWQyZTgyMTcyNDAxYmIzYTc2Yjgx
OTQ0Li5mNjVjOTU1MGM2OWM1MTE4ZjRhOWEyNGU4NWFhMjA0MTEzOTgzNWU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
QEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENv
ZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbgogICAgIEpJVEdldEJ5
SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwg
dXNlZFJlZ2lzdGVycygpLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBi
YXNlUGF5bG9hZEdQUiksCi0gICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0
UGF5bG9hZEdQUiksIHNwaWxsTW9kZSk7CisgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQ
UiwgcmVzdWx0UGF5bG9hZEdQUiksIHNwaWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CiAgICAgCiAg
ICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwogICAgIApAQCAtMjAxLDEyICsyMDEsMTIg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmln
aW4sIEdQUlJlZyBiYXNlVGFnR1BST3JOb24KICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93
UGF0aC5yZWxlYXNlKCkpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlk
KENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdmFs
dWVUYWdHUFIsIEdQUlJlZyB2YWx1ZVBheWxvYWRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNp
Z25lZCBpZGVudGlmaWVyTnVtYmVyLCBQdXRLaW5kIHB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1w
IHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlKQordm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBi
YXNlUGF5bG9hZEdQUiwgR1BSUmVnIHZhbHVlVGFnR1BSLCBHUFJSZWcgdmFsdWVQYXlsb2FkR1BS
LCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCBw
dXRLaW5kLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCkKIHsKICAgICBKSVRQdXRC
eUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4s
IHVzZWRSZWdpc3RlcnMoKSwKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VQ
YXlsb2FkR1BSKSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksCi0g
ICAgICAgIHNjcmF0Y2hHUFIsIHNwaWxsTW9kZSwgbV9qaXQuZWNtYU1vZGVGb3IoY29kZU9yaWdp
biksIHB1dEtpbmQpOworICAgICAgICBzY3JhdGNoR1BSLCBmYWxzZSwgbV9qaXQuZWNtYU1vZGVG
b3IoY29kZU9yaWdpbiksIHB1dEtpbmQpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRo
KG1faml0KTsKICAgICAKQEAgLTM5MTgsMjMgKzM5MTgsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwogICAgICAgICBi
cmVhazsKICAgICB9Ci0KLSAgICBjYXNlIFB1dEJ5SWRGbHVzaDogewotICAgICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICBHUFJUZW1wb3Jh
cnkgc2NyYXRjaCh0aGlzKTsKLQotICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7
Ci0gICAgICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwotICAgICAgICBH
UFJSZWcgdmFsdWVQYXlsb2FkR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOwotICAgICAgICBHUFJS
ZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7Ci0gICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7
Ci0KLSAgICAgICAgY2FjaGVkUHV0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIs
IHZhbHVlVGFnR1BSLCB2YWx1ZVBheWxvYWRHUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmlkZW50aWZp
ZXJOdW1iZXIoKSwgTm90RGlyZWN0LCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpLCBEb250U3BpbGwp
OwotCi0gICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAg
ICAgIAogICAgIGNhc2UgUHV0QnlJZDogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBi
YXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDNiOWMxMDc3YzI1NTRjODc1ODA1Mzgy
NWFjM2ExMzhmNTQxYTMzNDguLjU0ZTQ5MWY2MjkxMjM0NWI1ODcyYjRjNGRjODk2NDQzNGQ5MGQz
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVk
ZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgotI2luY2x1ZGUg
IlNwaWxsUmVnaXN0ZXJzTW9kZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKQEAgLTE5Miw3ICsxOTEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlk
KENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZwogewogICAgIEpJ
VEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9y
aWdpbiwgdXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwKLSAgICAgICAgSlNW
YWx1ZVJlZ3MocmVzdWx0R1BSKSwgc3BpbGxNb2RlKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVz
dWx0R1BSKSwgc3BpbGxNb2RlICE9IE5lZWRUb1NwaWxsKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aChtX2ppdCk7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsK
QEAgLTIwOCwxMiArMjA3LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQo
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnCiAgICAgYWRkU2xv
d1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGgucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BS
LCBHUFJSZWcgdmFsdWVHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVy
TnVtYmVyLCBQdXRLaW5kIHB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0
LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2Fj
aGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcg
dmFsdWVHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQ
dXRLaW5kIHB1dEtpbmQsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0KQogewogICAg
IEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29k
ZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwKLSAgICAgICAg
SlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNoR1BSLCBzcGlsbE1vZGUsIG1faml0LmVjbWFN
b2RlRm9yKGNvZGVPcmlnaW4pLCBwdXRLaW5kKTsKLQorICAgICAgICBKU1ZhbHVlUmVncyh2YWx1
ZUdQUiksIHNjcmF0Y2hHUFIsIGZhbHNlLCBtX2ppdC5lY21hTW9kZUZvcihjb2RlT3JpZ2luKSwg
cHV0S2luZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwogICAgIAogICAgIEpJ
VENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CkBAIC00MjUwLDIyICs0MjQ4LDYgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBub1Jlc3VsdChu
b2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAgY2FzZSBQdXRCeUlkRmx1c2g6IHsK
LSAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLSAg
ICAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7Ci0KLSAgICAgICAgR1BSUmVnIGJhc2VH
UFIgPSBiYXNlLmdwcigpOwotICAgICAgICBHUFJSZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsK
LSAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwotICAgICAgICBmbHVz
aFJlZ2lzdGVycygpOwotCi0gICAgICAgIGNhY2hlZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBiYXNlR1BSLCB2YWx1ZUdQUiwgc2NyYXRjaEdQUiwgbm9kZS0+aWRlbnRpZmllck51bWJl
cigpLCBOb3REaXJlY3QsIE1hY3JvQXNzZW1ibGVyOjpKdW1wKCksIERvbnRTcGlsbCk7Ci0KLSAg
ICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICAgICAgCiAg
ICAgY2FzZSBQdXRCeUlkOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DQ2FsbEhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJz
LmgKaW5kZXggMGY5ZjVkYzk3NDE0YWI4YWM2ZjJkMDVkNmVlNTgyMTBjYWEyMDQ2Yi4uZGI4MmI5
M2Q2MTNiN2FhOTNjZjI2MGQ1NGNhN2Q3MTIyZDU1ZTgyMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0NDYWxsSGVscGVycy5oCkBAIC0zNzIsMTcgKzM3Miw2IEBAIHB1YmxpYzoKICAgICAg
ICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOwogICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnNCk7
CiAgICAgfQotICAgIAotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoVHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbTMyIGFy
ZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSkKLSAgICB7Ci0gICAgICAgIHJlc2V0Q2FsbEFy
Z3VtZW50cygpOwotICAgICAgICBhZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIpOwotICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMSk7Ci0gICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmcyKTsKLSAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOwotICAgICAgICBh
ZGRDYWxsQXJndW1lbnQoYXJnNCk7Ci0gICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc1KTsKLSAg
ICB9CiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIFRydXN0ZWRJbW0zMiBhcmczLCBHUFJS
ZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCBmOGVkNTFmYmEzNjcy
MzMwMTFhNjkyYmI3YjVjNzlhOTgxZjhjNDMyLi5iMmYyMTI3MDNjYzQwODUxZjkxZGE4NWRjMDRl
NjM3N2E4YzM1ZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZUNhY2hlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmNwcApAQCAtNDksMTIgKzQ5LDEyIEBAIEpJVElubGluZUNh
Y2hlR2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9j
aywgQ29kZU9yaWdpCiAKIEpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0
ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCi0gICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3Mg
dmFsdWUsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUpCisgICAgSlNWYWx1ZVJlZ3MgYmFz
ZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCkKICAgICA6IEpJVElu
bGluZUNhY2hlR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbikKICAgICAsIG1fYmFzZShi
YXNlKQogICAgICwgbV92YWx1ZSh2YWx1ZSkKIHsKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC5zcGls
bE1vZGUgPSBzcGlsbE1vZGU7CisgICAgbV9zdHViSW5mby0+cGF0Y2gucmVnaXN0ZXJzRmx1c2hl
ZCA9IHJlZ2lzdGVyc0ZsdXNoZWQ7CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVy
cyA9IHVzZWRSZWdpc3RlcnM7CiAgICAgCiAgICAgLy8gVGhpcyBpcyBhIGNvbnZlbmllbmNlIC0g
aW4gY2FzZXMgd2hlcmUgdGhlIG9ubHkgcmVnaXN0ZXJzIHlvdSdyZSB1c2luZyBhcmUgYmFzZS92
YWx1ZSwKQEAgLTEyOSw5ICsxMjksOSBAQCB2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKIAogSklUUHV0QnlJZEdlbmVyYXRvcjo6
SklUUHV0QnlJZEdlbmVyYXRvcigKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKLSAgICBKU1Zh
bHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIFNwaWxsUmVn
aXN0ZXJzTW9kZSBzcGlsbE1vZGUsCisgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3Mg
dmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQsCiAgICAgRUNNQU1v
ZGUgZWNtYU1vZGUsIFB1dEtpbmQgcHV0S2luZCkKLSAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoY29k
ZUJsb2NrLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzLCBiYXNlLCB2YWx1ZSwgc3BpbGxNb2Rl
KQorICAgIDogSklUQnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdp
c3RlcnMsIGJhc2UsIHZhbHVlLCByZWdpc3RlcnNGbHVzaGVkKQogICAgICwgbV9zY3JhdGNoKHNj
cmF0Y2gpCiAgICAgLCBtX2VjbWFNb2RlKGVjbWFNb2RlKQogICAgICwgbV9wdXRLaW5kKHB1dEtp
bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hl
R2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2Vu
ZXJhdG9yLmgKaW5kZXggYjhhNWUwOGZkNmUyYmEzNGI1NDMwZTFiZjMxOWI3MDUxZmE3ZTExZC4u
MGU0NDZlOTA3MjViMDVmMjRhZjg1ZGQ2MmYxNjhmMTkzNzZmNzJiMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaApAQCAtNTcs
NyArNTcsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBKSVRCeUlkR2VuZXJhdG9yKAogICAgICAgICBD
b2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYsIEpTVmFsdWVSZWdzIGJh
c2UsIEpTVmFsdWVSZWdzIHZhbHVlLAotICAgICAgICBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxN
b2RlKTsKKyAgICAgICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkKTsKICAgICAKIHB1YmxpYzoKICAg
ICB2b2lkIHJlcG9ydFNsb3dQYXRoQ2FsbChNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc2xvd1BhdGhC
ZWdpbiwgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCkKQEAgLTk1LDkgKzk1LDkgQEAgcHVibGlj
OgogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0
b3IoCi0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29u
c3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCi0gICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgdmFsdWUsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUpCi0gICAgOiBKSVRC
eUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwg
dmFsdWUsIHNwaWxsTW9kZSkKKyAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVPcmln
aW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCisgICAgICAg
IEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNo
ZWQpCisgICAgICAgIDogSklUQnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVz
ZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCByZWdpc3RlcnNGbHVzaGVkKQogICAgIHsKICAgICB9
CiAgICAgCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgogCiAgICAgSklUUHV0QnlJZEdlbmVy
YXRvcigKICAgICAgICAgQ29kZUJsb2NrKiwgQ29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQm
IHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzIGJhc2UsCi0gICAgICAgIEpTVmFsdWVSZWdzLCBH
UFJSZWcgc2NyYXRjaCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSwgRUNNQU1vZGUsIFB1
dEtpbmQpOworICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIGJvb2wg
cmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAogICAgIHZvaWQgZ2Vu
ZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggZThjOTlhNzk4NjdiZTM5YmIyOTYwMGYw
OGEwMjBjNzM2NGY5ZjdmZS4uMzM2YTRhZWVkMDNiNGI2NmQxNjJiZDQ1M2JhYjJmMjRkMGJmMTM4
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0x
NzMwLDcgKzE3MzAsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0VG9TY29wZShF
eGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiBieXRlY29kZVBDKQogCiAgICAgLy8gQ292ZXJz
IGltcGxpY2l0IGdsb2JhbHMuIFNpbmNlIHRoZXkgZG9uJ3QgZXhpc3QgdW50aWwgdGhleSBmaXJz
dCBleGVjdXRlLCB3ZSBkaWRuJ3Qga25vdyBob3cgdG8gY2FjaGUgdGhlbSBhdCBjb21waWxlIHRp
bWUuCiAgICAgaWYgKG1vZGVBbmRUeXBlLnR5cGUoKSA9PSBHbG9iYWxQcm9wZXJ0eSB8fCBtb2Rl
QW5kVHlwZS50eXBlKCkgPT0gR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKSB7
Ci0gICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlUHV0KCkgJiYgc2xvdC5iYXNlKCkgPT0gc2Nv
cGUgJiYgc2NvcGUtPnN0cnVjdHVyZSgpLT5wcm9wZXJ0eUFjY2Vzc2VzQXJlQ2FjaGVhYmxlKCkp
IHsKKyAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGUoKSAmJiBzbG90LmJhc2UoKSA9PSBzY29w
ZSAmJiBzY29wZS0+c3RydWN0dXJlKCktPnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKSkg
ewogICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xv
Y2spOwogICAgICAgICAgICAgcGNbNV0udS5zdHJ1Y3R1cmUuc2V0KGV4ZWMtPnZtKCksIGNvZGVC
bG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHNjb3BlLT5zdHJ1Y3R1cmUoKSk7CiAgICAgICAgICAg
ICBwY1s2XS51Lm9wZXJhbmQgPSBzbG90LmNhY2hlZE9mZnNldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCBiODkzMTdkYjljNDI0NTU2ZmJjOWVlZDUx
ZWUzNjI3ZTE0ZTgxYTNkLi41NzI3ZWNiMDZmZTgwZDA5OWY4YjAzNjgzZjdlZGQyZDg1NTE5Y2I4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMzUsMTEg
KzM1LDkgQEAKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJs
ZXIuaCIKICNpbmNsdWRlICJQdXRLaW5kLmgiCi0jaW5jbHVkZSAiU3BpbGxSZWdpc3RlcnNNb2Rl
LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKICNpbmNsdWRlICJWYXJpYWJsZVdh
dGNocG9pbnRTZXQuaCIKIAotCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKaW5kZXggOGUxNzBkZjY4NTFjOGVmMWVmMGY1NDZjN2NkZjUxMDMzZDhhODE5Mi4u
YWJhYzBhYWM4ODk1ZDNkZDhjZWIxYjE0YTg0ZDZhZDU2NTQ2Y2Q0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTUyMSw3ICs1MjEs
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVC
bG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxS
ZWdpc3RlcnMoKSwKLSAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MCksIERvbnRTcGlsbCk7CisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDApLCB0cnVlKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRk
U2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4p
OwpAQCAtNTY3LDcgKzU2Nyw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV9pZChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4o
CiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdp
c3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCks
IEpTVmFsdWVSZWdzKHJlZ1QxKSwgcmVnVDIsIERvbnRTcGlsbCwgbV9jb2RlQmxvY2stPmVjbWFN
b2RlKCksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEpLCBy
ZWdUMiwgdHJ1ZSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksCiAgICAgICAgIGRpcmVjdCA/IERp
cmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
czMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAKaW5kZXggYjIyNTNjN2UxYjg0YTg0NDA4YjY0MTFhOGY3NmI4MWIxOTJmZDRlYS4u
ZGFmNmQyYTBjNjdmZjBmOTM5MjMyNmNlMTFmMzg2M2RlMWY5YTcxZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC00
NzgsNyArNDc4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0
OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShy
ZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIERvbnRTcGlsbCk7CisgICAgICAgIEpT
VmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCks
IHRydWUpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2Fz
ZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CkBAIC01
MjcsNyArNTI3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAg
IG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6
c3BlY2lhbFJlZ2lzdGVycygpLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLAotICAgICAgICByZWdUMSwgRG9udFNwaWxs
LCBtX2NvZGVCbG9jay0+ZWNtYU1vZGUoKSwgZGlyZWN0ID8gRGlyZWN0IDogTm90RGlyZWN0KTsK
KyAgICAgICAgcmVnVDEsIHRydWUsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLCBkaXJlY3QgPyBE
aXJlY3QgOiBOb3REaXJlY3QpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlz
KTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXggODkzOTAxNmU1ZDM4MzU0NWM2MWFlNDg3YjllY2MzMTJl
YTFmYmUyMy4uY2NlMDhlNzFkMmRkYjM4Y2E2NGJjNmZlYTYxMTI4YWUxNTYyZjM2OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCkBAIC00NDksNyArNDQ5LDcgQEAgc3RhdGlj
IGJvb2wgdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUs
IGNvbnN0IElkZW50aWZpZXIKICAgICBpZiAoc3RydWN0dXJlLT5pc0RpY3Rpb25hcnkoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHN0dWJJbmZvLnBhdGNoLnNwaWxsTW9kZSA9
PSBOZWVkVG9TcGlsbCkgeworICAgIGlmICghc3R1YkluZm8ucGF0Y2gucmVnaXN0ZXJzRmx1c2hl
ZCkgewogICAgICAgICAvLyBXZSBjYW5ub3QgZG8gYXMgbXVjaCBpbmxpbmUgY2FjaGluZyBpZiB0
aGUgcmVnaXN0ZXJzIHdlcmUgbm90IGZsdXNoZWQgcHJpb3IgdG8gdGhpcyBHZXRCeUlkLiBJbiBw
YXJ0aWN1bGFyLAogICAgICAgICAvLyBub24tVmFsdWUgY2FjaGVkIHByb3BlcnRpZXMgcmVxdWly
ZSBwbGFudGluZyBjYWxscywgd2hpY2ggcmVxdWlyZXMgcmVnaXN0ZXJzIHRvIGhhdmUgYmVlbiBm
bHVzaGVkLiBUaHVzLAogICAgICAgICAvLyBpZiByZWdpc3RlcnMgd2VyZSBub3QgZmx1c2hlZCwg
ZG9uJ3QgZG8gbm9uLVZhbHVlIGNhY2hpbmcuCkBAIC01NTEsNyArNTUxLDcgQEAgc3RhdGljIGJv
b2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVl
LCBjb25zdCBJZGVudGkKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VDZWxsLT5zdHJ1
Y3R1cmUoKTsKICAgICAKICAgICBpZiAoc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1ZSkgewot
ICAgICAgICBpZiAoc3R1YkluZm8ucGF0Y2guc3BpbGxNb2RlID09IE5lZWRUb1NwaWxsKSB7Cisg
ICAgICAgIGlmICghc3R1YkluZm8ucGF0Y2gucmVnaXN0ZXJzRmx1c2hlZCkgewogICAgICAgICAg
ICAgLy8gV2UgY2Fubm90IGRvIGFzIG11Y2ggaW5saW5lIGNhY2hpbmcgaWYgdGhlIHJlZ2lzdGVy
cyB3ZXJlIG5vdCBmbHVzaGVkIHByaW9yIHRvIHRoaXMgR2V0QnlJZC4gSW4gcGFydGljdWxhciwK
ICAgICAgICAgICAgIC8vIG5vbi1WYWx1ZSBjYWNoZWQgcHJvcGVydGllcyByZXF1aXJlIHBsYW50
aW5nIGNhbGxzLCB3aGljaCByZXF1aXJlcyByZWdpc3RlcnMgdG8gaGF2ZSBiZWVuIGZsdXNoZWQu
IFRodXMsCiAgICAgICAgICAgICAvLyBpZiByZWdpc3RlcnMgd2VyZSBub3QgZmx1c2hlZCwgZG9u
J3QgZG8gbm9uLVZhbHVlIGNhY2hpbmcuCkBAIC03MDIsNyArNzAyLDcgQEAgc3RhdGljIGJvb2wg
dHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBj
b25zdCBJZGVudGkKICAgICAgICAgfHwgYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+
aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBpZiAoc3R1
YkluZm8ucGF0Y2guc3BpbGxNb2RlID09IE5lZWRUb1NwaWxsKSB7CisgICAgaWYgKCFzdHViSW5m
by5wYXRjaC5yZWdpc3RlcnNGbHVzaGVkKSB7CiAgICAgICAgIC8vIFdlIGNhbm5vdCBkbyBhcyBt
dWNoIGlubGluZSBjYWNoaW5nIGlmIHRoZSByZWdpc3RlcnMgd2VyZSBub3QgZmx1c2hlZCBwcmlv
ciB0byB0aGlzIEdldEJ5SWQuIEluIHBhcnRpY3VsYXIsCiAgICAgICAgIC8vIG5vbi1WYWx1ZSBj
YWNoZWQgcHJvcGVydGllcyByZXF1aXJlIHBsYW50aW5nIGNhbGxzLCB3aGljaCByZXF1aXJlcyBy
ZWdpc3RlcnMgdG8gaGF2ZSBiZWVuIGZsdXNoZWQuIFRodXMsCiAgICAgICAgIC8vIGlmIHJlZ2lz
dGVycyB3ZXJlIG5vdCBmbHVzaGVkLCBkb24ndCBkbyBub24tVmFsdWUgY2FjaGluZy4KQEAgLTEx
MjksNzEgKzExMjksNiBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJhbnNpdGlvblN0dWIoCiAgICAg
ICAgICAgICBzdHJ1Y3R1cmUpOwogfQogCi1zdGF0aWMgdm9pZCBlbWl0Q3VzdG9tU2V0dGVyU3R1
YihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYgc2xvdCwKLSAgICBTdHJ1
Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJ1Y3R1cmVD
aGFpbiogcHJvdG90eXBlQ2hhaW4sCi0gICAgQ29kZUxvY2F0aW9uTGFiZWwgZmFpbHVyZUxhYmVs
LCBSZWZQdHI8SklUU3R1YlJvdXRpbmU+JiBzdHViUm91dGluZSkKLXsKLSAgICBWTSogdm0gPSAm
ZXhlYy0+dm0oKTsKLSAgICBBU1NFUlQoc3R1YkluZm8ucGF0Y2guc3BpbGxNb2RlID09IERvbnRT
cGlsbCk7Ci0gICAgR1BSUmVnIGJhc2VHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZv
LnBhdGNoLmJhc2VHUFIpOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgR1BSUmVnIHZhbHVl
VGFnR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRhZ0dQUik7
Ci0jZW5kaWYKLSAgICBHUFJSZWcgdmFsdWVHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJ
bmZvLnBhdGNoLnZhbHVlR1BSKTsKLSAgICBUZW1wUmVnaXN0ZXJTZXQgdGVtcFJlZ2lzdGVycyhz
dHViSW5mby5wYXRjaC51c2VkUmVnaXN0ZXJzKTsKLQotICAgIENDYWxsSGVscGVycyBzdHViSml0
KHZtKTsKLSAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHRlbXBSZWdpc3RlcnMuZ2V0RnJlZUdQUigp
OwotICAgIFJFTEVBU0VfQVNTRVJUKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7Ci0gICAg
UkVMRUFTRV9BU1NFUlQoc2NyYXRjaEdQUiAhPSBiYXNlR1BSKTsKLSAgICBSRUxFQVNFX0FTU0VS
VChzY3JhdGNoR1BSICE9IHZhbHVlR1BSKTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qg
ZmFpbHVyZUNhc2VzOwotICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKHN0
dWJKaXQsCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwKLSAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwK
LSAgICAgICAgc3RydWN0dXJlKSk7Ci0gICAgCi0gICAgaWYgKHByb3RvdHlwZUNoYWluKSB7Ci0g
ICAgICAgIGZvciAoV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4qIGl0ID0gcHJvdG90eXBlQ2hhaW4t
PmhlYWQoKTsgKml0OyArK2l0KQotICAgICAgICAgICAgYWRkU3RydWN0dXJlVHJhbnNpdGlvbkNo
ZWNrKCgqaXQpLT5zdG9yZWRQcm90b3R5cGUoKSwgZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZv
LCBzdHViSml0LCBmYWlsdXJlQ2FzZXMsIHNjcmF0Y2hHUFIpOwotICAgIH0KLQotICAgIC8vIHR5
cGVkZWYgdm9pZCAoKlB1dFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgSlNPYmplY3QqIGJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKTsKLSNpZiBVU0Uo
SlNWQUxVRTY0KQotICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHNsb3QuYmFzZSgpKSwgYmFzZUdQUiwgdmFsdWVHUFIp
OwotI2Vsc2UKLSAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzbG90LmJhc2UoKSksIGJhc2VHUFIsIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQ
Uik7Ci0jZW5kaWYKLQotICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbmV2ZXIgdGhp
cyBjYWxsIGlzIG1hZGUgaW4gdGhlIGZ1dHVyZSwgd2UgcmVtZW1iZXIgdGhlCi0gICAgLy8gcGxh
Y2UgdGhhdCB3ZSBtYWRlIGl0IGZyb20uIEl0IGp1c3Qgc28gaGFwcGVucyB0byBiZSB0aGUgcGxh
Y2UgdGhhdCB3ZSBhcmUgYXQKLSAgICAvLyByaWdodCBub3chCi0gICAgc3R1YkppdC5zdG9yZTMy
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoZXhlYy0+bG9jYXRpb25Bc1Jhd0JpdHMoKSks
Ci0gICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rl
cj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICBzdHViSml0LnN0b3JlUHRyKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7Ci0KLSAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBzZXR0ZXJDYWxsID0gc3R1YkppdC5jYWxsKCk7Ci0gICAgCi0gICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzcyA9IHN0dWJKaXQuZW1pdEV4Y2VwdGlvbkNoZWNrKEND
YWxsSGVscGVyczo6SW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7Ci0KLSAgICBzdHViSml0LnNldHVw
QXJndW1lbnRzKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bSksIEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyKTsKLQotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGhhbmRsZXJDYWxsID0g
c3R1YkppdC5jYWxsKCk7Ci0KLSAgICBzdHViSml0Lmp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsK
LSAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwgJnN0dWJKaXQsIGV4ZWMtPmNvZGVCbG9j
aygpKTsKLQotICAgIHBhdGNoQnVmZmVyLmxpbmsoc3VjY2Vzcywgc3R1YkluZm8uY2FsbFJldHVy
bkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoc3R1YkluZm8ucGF0Y2guZGVsdGFDYWxsVG9Eb25lKSk7
Ci0gICAgcGF0Y2hCdWZmZXIubGluayhmYWlsdXJlQ2FzZXMsIGZhaWx1cmVMYWJlbCk7Ci0gICAg
cGF0Y2hCdWZmZXIubGluayhzZXR0ZXJDYWxsLCBGdW5jdGlvblB0cihzbG90LmN1c3RvbVNldHRl
cigpKSk7Ci0gICAgcGF0Y2hCdWZmZXIubGluayhoYW5kbGVyQ2FsbCwgbG9va3VwRXhjZXB0aW9u
SGFuZGxlcik7Ci0KLSAgICBzdHViUm91dGluZSA9IGNyZWF0ZUpJVFN0dWJSb3V0aW5lKAotICAg
ICAgICBGSU5BTElaRV9DT0RFX0ZPUihleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hCdWZmZXIsICgi
UHV0QnlJZCBjdXN0b20gc2V0dGVyIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAotICAg
ICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9u
ZSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpLCAqdm0sIGV4ZWMtPmNvZGVCbG9jaygpLT5vd25lckV4
ZWN1dGFibGUoKSwgc3RydWN0dXJlKTsKLX0KLQotCiBzdGF0aWMgYm9vbCB0cnlDYWNoZVB1dEJ5
SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYg
aWRlbnQsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8mIHN0
dWJJbmZvLCBQdXRLaW5kIHB1dEtpbmQpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBl
eGVjLT5jb2RlQmxvY2soKTsKQEAgLTEyMDUsMTMgKzExNDAsMTMgQEAgc3RhdGljIGJvb2wgdHJ5
Q2FjaGVQdXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElk
ZW50aWZpZXIKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VDZWxsLT5zdHJ1Y3R1cmUo
KTsKICAgICBTdHJ1Y3R1cmUqIG9sZFN0cnVjdHVyZSA9IHN0cnVjdHVyZS0+cHJldmlvdXNJRCgp
OwogICAgIAotICAgIGlmICghc2xvdC5pc0NhY2hlYWJsZVB1dCgpICYmICFzbG90LmlzQ2FjaGVh
YmxlQ3VzdG9tUHJvcGVydHkoKSkKKyAgICBpZiAoIXNsb3QuaXNDYWNoZWFibGUoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghc3RydWN0dXJlLT5wcm9wZXJ0eUFjY2Vzc2VzQXJl
Q2FjaGVhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE9wdGltaXplIHNl
bGYgYWNjZXNzLgotICAgIGlmIChzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUgJiYgc2xvdC5pc0Nh
Y2hlYWJsZVB1dCgpKSB7CisgICAgaWYgKHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkgewogICAg
ICAgICBpZiAoc2xvdC50eXBlKCkgPT0gUHV0UHJvcGVydHlTbG90OjpOZXdQcm9wZXJ0eSkgewog
ICAgICAgICAgICAgaWYgKHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTI1OCwzMyArMTE5Myw2IEBAIHN0YXRpYyBib29sIHRyeUNh
Y2hlUHV0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVu
dGlmaWVyCiAgICAgICAgIHN0dWJJbmZvLmluaXRQdXRCeUlkUmVwbGFjZSgqdm0sIGNvZGVCbG9j
ay0+b3duZXJFeGVjdXRhYmxlKCksIHN0cnVjdHVyZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KLSAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUN1c3RvbVByb3BlcnR5KCkgJiYgc3R1Yklu
Zm8ucGF0Y2guc3BpbGxNb2RlID09IERvbnRTcGlsbCkgewotICAgICAgICBSZWZQdHI8SklUU3R1
YlJvdXRpbmU+IHN0dWJSb3V0aW5lOwotCi0gICAgICAgIFN0cnVjdHVyZUNoYWluKiBwcm90b3R5
cGVDaGFpbiA9IDA7Ci0gICAgICAgIGlmIChiYXNlVmFsdWUgIT0gc2xvdC5iYXNlKCkpIHsKLSAg
ICAgICAgICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldElnbm9yZWQ7Ci0gICAgICAgICAgICBpZiAo
bm9ybWFsaXplUHJvdG90eXBlQ2hhaW5Gb3JDaGFpbkFjY2VzcyhleGVjLCBiYXNlQ2VsbCwgc2xv
dC5iYXNlKCksIGlkZW50LCBvZmZzZXRJZ25vcmVkKSA9PSBJbnZhbGlkUHJvdG90eXBlQ2hhaW4p
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgICAgICBwcm90b3R5cGVD
aGFpbiA9IHN0cnVjdHVyZS0+cHJvdG90eXBlQ2hhaW4oZXhlYyk7Ci0gICAgICAgIH0KLSAgICAg
ICAgUG9seW1vcnBoaWNQdXRCeUlkTGlzdCogbGlzdDsKLSAgICAgICAgbGlzdCA9IFBvbHltb3Jw
aGljUHV0QnlJZExpc3Q6OmZyb20ocHV0S2luZCwgc3R1YkluZm8pOwotCi0gICAgICAgIGVtaXRD
dXN0b21TZXR0ZXJTdHViKGV4ZWMsIHNsb3QsIHN0dWJJbmZvLAotICAgICAgICAgICAgc3RydWN0
dXJlLCBwcm90b3R5cGVDaGFpbiwKLSAgICAgICAgICAgIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2Nh
dGlvbi5sYWJlbEF0T2Zmc2V0KHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvU2xvd0Nhc2UpLAot
ICAgICAgICAgICAgc3R1YlJvdXRpbmUpOwotCi0gICAgICAgIGxpc3QtPmFkZEFjY2VzcyhQdXRC
eUlkQWNjZXNzOjpjdXN0b21TZXR0ZXIoKnZtLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgp
LCBzdHJ1Y3R1cmUsIHByb3RvdHlwZUNoYWluLCBzbG90LmN1c3RvbVNldHRlcigpLCBzdHViUm91
dGluZSkpOwotCi0gICAgICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2RlQmxvY2sp
OwotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRp
b24uanVtcEF0T2Zmc2V0KHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvSnVtcCksIENvZGVMb2Nh
dGlvbkxhYmVsKHN0dWJSb3V0aW5lLT5jb2RlKCkuY29kZSgpKSk7Ci0gICAgICAgIHJlcGF0Y2hD
YWxsKHJlcGF0Y2hCdWZmZXIsIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgYXBwcm9wcmlh
dGVMaXN0QnVpbGRpbmdQdXRCeUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOwotICAgICAgICBS
RUxFQVNFX0FTU0VSVCghbGlzdC0+aXNGdWxsKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0xMzA5LDE1ICsxMjE3LDEzIEBAIHN0YXRp
YyBib29sIHRyeUJ1aWxkUHV0QnlJZExpc3QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgY29uc3QgSWRlbnRpCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+
c3RydWN0dXJlKCk7CiAgICAgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUgPSBzdHJ1Y3R1cmUtPnBy
ZXZpb3VzSUQoKTsKICAgICAKLSAgICAKLSAgICBpZiAoIXNsb3QuaXNDYWNoZWFibGVQdXQoKSAm
JiAhc2xvdC5pc0NhY2hlYWJsZUN1c3RvbVByb3BlcnR5KCkpCisgICAgaWYgKCFzbG90LmlzQ2Fj
aGVhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIGlmICghc3RydWN0dXJlLT5w
cm9wZXJ0eUFjY2Vzc2VzQXJlQ2FjaGVhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIE9wdGltaXplIHNlbGYgYWNjZXNzLgotICAgIGlmIChzbG90LmJhc2UoKSA9PSBiYXNl
VmFsdWUgJiYgc2xvdC5pc0NhY2hlYWJsZVB1dCgpKSB7CisgICAgaWYgKHNsb3QuYmFzZSgpID09
IGJhc2VWYWx1ZSkgewogICAgICAgICBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0KiBsaXN0OwogICAg
ICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOwogICAgICAgICAKQEAgLTEz
NzksMzMgKzEyODUsNiBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZFB1dEJ5SWRMaXN0KEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUN1c3RvbVByb3BlcnR5KCkg
JiYgc3R1YkluZm8ucGF0Y2guc3BpbGxNb2RlID09IERvbnRTcGlsbCkgewotICAgICAgICBSZWZQ
dHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOwotICAgICAgICBTdHJ1Y3R1cmVDaGFpbiog
cHJvdG90eXBlQ2hhaW4gPSAwOwotICAgICAgICBpZiAoYmFzZVZhbHVlICE9IHNsb3QuYmFzZSgp
KSB7Ci0gICAgICAgICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXRJZ25vcmVkOwotICAgICAgICAg
ICAgaWYgKG5vcm1hbGl6ZVByb3RvdHlwZUNoYWluRm9yQ2hhaW5BY2Nlc3MoZXhlYywgYmFzZUNl
bGwsIHNsb3QuYmFzZSgpLCBwcm9wZXJ0eU5hbWUsIG9mZnNldElnbm9yZWQpID09IEludmFsaWRQ
cm90b3R5cGVDaGFpbikKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAg
ICAgIHByb3RvdHlwZUNoYWluID0gc3RydWN0dXJlLT5wcm90b3R5cGVDaGFpbihleGVjKTsKLSAg
ICAgICAgfQotICAgICAgICBQb2x5bW9ycGhpY1B1dEJ5SWRMaXN0KiBsaXN0OwotICAgICAgICBs
aXN0ID0gUG9seW1vcnBoaWNQdXRCeUlkTGlzdDo6ZnJvbShwdXRLaW5kLCBzdHViSW5mbyk7Ci0K
LSAgICAgICAgZW1pdEN1c3RvbVNldHRlclN0dWIoZXhlYywgc2xvdCwgc3R1YkluZm8sCi0gICAg
ICAgICAgICBzdHJ1Y3R1cmUsIHByb3RvdHlwZUNoYWluLAotICAgICAgICAgICAgQ29kZUxvY2F0
aW9uTGFiZWwobGlzdC0+Y3VycmVudFNsb3dQYXRoVGFyZ2V0KCkpLAotICAgICAgICAgICAgc3R1
YlJvdXRpbmUpOwotCi0gICAgICAgIGxpc3QtPmFkZEFjY2VzcyhQdXRCeUlkQWNjZXNzOjpjdXN0
b21TZXR0ZXIoKnZtLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBzdHJ1Y3R1cmUsIHBy
b3RvdHlwZUNoYWluLCBzbG90LmN1c3RvbVNldHRlcigpLCBzdHViUm91dGluZSkpOwotCi0gICAg
ICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2RlQmxvY2spOwotICAgICAgICByZXBh
dGNoQnVmZmVyLnJlbGluayhzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24uanVtcEF0T2Zmc2V0
KHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvSnVtcCksIENvZGVMb2NhdGlvbkxhYmVsKHN0dWJS
b3V0aW5lLT5jb2RlKCkuY29kZSgpKSk7Ci0gICAgICAgIGlmIChsaXN0LT5pc0Z1bGwoKSkKLSAg
ICAgICAgICAgIHJlcGF0Y2hDYWxsKHJlcGF0Y2hCdWZmZXIsIHN0dWJJbmZvLmNhbGxSZXR1cm5M
b2NhdGlvbiwgYXBwcm9wcmlhdGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQp
KTsKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwaWxsUmVnaXN0ZXJzTW9k
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGlsbFJlZ2lzdGVyc01vZGUuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTYwZGYyYzJlNjNjNjc1ZWE1ODdmZjMyODA2OTg3
ZmEwNThiZjM3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwaWxsUmVnaXN0ZXJzTW9kZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgU3BpbGxSZWdpc3RlcnNNb2RlX2gKLSNkZWZpbmUgU3BpbGxS
ZWdpc3RlcnNNb2RlX2gKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWVudW0gU3BpbGxSZWdpc3RlcnNN
b2RlIHsgTmVlZFRvU3BpbGwsIERvbnRTcGlsbCB9OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggNWJlMmFhYTBm
N2NjZmYyNmIyZjg4OTZjNGQwYjQzZTA3OTQ4MjUwOS4uYjMyMWNkNDlmZmVhMjg0Njg4MjgyZDA1
ZDdjYWU0YjRlNjYxMjUzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwCkBAIC02MjgsNyArNjI4LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX3B1dF9ieV9pZCkKICAgICAKICAgICBpZiAoIUxMSU5UX0FMV0FZU19BQ0NFU1Nf
U0xPVwogICAgICAgICAmJiBiYXNlVmFsdWUuaXNDZWxsKCkKLSAgICAgICAgJiYgc2xvdC5pc0Nh
Y2hlYWJsZVB1dCgpKSB7CisgICAgICAgICYmIHNsb3QuaXNDYWNoZWFibGUoKSkgewogICAgICAg
ICAKICAgICAgICAgSlNDZWxsKiBiYXNlQ2VsbCA9IGJhc2VWYWx1ZS5hc0NlbGwoKTsKICAgICAg
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7CkBAIC0xNDEw
LDcgKzE0MTAsNyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X3RvX3Njb3Bl
KQogCiAgICAgLy8gQ292ZXJzIGltcGxpY2l0IGdsb2JhbHMuIFNpbmNlIHRoZXkgZG9uJ3QgZXhp
c3QgdW50aWwgdGhleSBmaXJzdCBleGVjdXRlLCB3ZSBkaWRuJ3Qga25vdyBob3cgdG8gY2FjaGUg
dGhlbSBhdCBjb21waWxlIHRpbWUuCiAgICAgaWYgKG1vZGVBbmRUeXBlLnR5cGUoKSA9PSBHbG9i
YWxQcm9wZXJ0eSB8fCBtb2RlQW5kVHlwZS50eXBlKCkgPT0gR2xvYmFsUHJvcGVydHlXaXRoVmFy
SW5qZWN0aW9uQ2hlY2tzKSB7Ci0gICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlUHV0KCkgJiYg
c2xvdC5iYXNlKCkgPT0gc2NvcGUgJiYgc2NvcGUtPnN0cnVjdHVyZSgpLT5wcm9wZXJ0eUFjY2Vz
c2VzQXJlQ2FjaGVhYmxlKCkpIHsKKyAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGUoKSAmJiBz
bG90LmJhc2UoKSA9PSBzY29wZSAmJiBzY29wZS0+c3RydWN0dXJlKCktPnByb3BlcnR5QWNjZXNz
ZXNBcmVDYWNoZWFibGUoKSkgewogICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2Nr
ZXIoY29kZUJsb2NrLT5tX2xvY2spOwogICAgICAgICAgICAgcGNbNV0udS5zdHJ1Y3R1cmUuc2V0
KGV4ZWMtPnZtKCksIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHNjb3BlLT5zdHJ1Y3R1
cmUoKSk7CiAgICAgICAgICAgICBwY1s2XS51Lm9wZXJhbmQgPSBzbG90LmNhY2hlZE9mZnNldCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCBiNWFiOTk4NDc0YmVj
YjdjYTU3MmQyOWI4ZGE0MTU5MmVkOGZlNGI5Li5kYmEzODllOWUyNDNkZDBlY2IyYmE5OGYzOTRk
NDA3OWY5ZGVhOTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9M
b29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAt
MzA2LDcgKzMwNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPnB1dERpcmVjdChleGVjLT52bSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKICAgICAgICAg
fSBlbHNlIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBSZWFkT25seSkpIHsKICAgICAgICAg
ICAgIGVudHJ5LT5wcm9wZXJ0eVB1dHRlcigpKGV4ZWMsIGJhc2UsIEpTVmFsdWU6OmVuY29kZShz
bG90LnRoaXNWYWx1ZSgpKSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7Ci0gICAgICAgICAgICBz
bG90LnNldENhY2hlYWJsZUN1c3RvbVByb3BlcnR5KGJhc2UsIGVudHJ5LT5wcm9wZXJ0eVB1dHRl
cigpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tUHJvcGVydHkoYmFzZSwgZW50cnktPnBy
b3BlcnR5UHV0dGVyKCkpOwogICAgICAgICB9IGVsc2UgaWYgKHNsb3QuaXNTdHJpY3RNb2RlKCkp
CiAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVhZG9ubHlQcm9w
ZXJ0eVdyaXRlRXJyb3IpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1B1dFByb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHV0UHJvcGVydHlTbG90LmgKaW5kZXggNmE1MDVlOGY1ZmQyMzg5MzA4NWU2ODRiNzY1MDlm
NGI3NWRiYWJhMS4uMjAwNGI0NTFhNWY4MjI1YTU2Nzg2MTU3OWY3MmRjNTFhMTFjZTgwMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKQEAg
LTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgCiAgICAgY2xhc3MgUHV0UHJvcGVy
dHlTbG90IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0gVHlwZSB7IFVuY2FjaGFibGUsIEV4
aXN0aW5nUHJvcGVydHksIE5ld1Byb3BlcnR5LCBDdXN0b21Qcm9wZXJ0eSwgQ2FjaGVhYmxlQ3Vz
dG9tUHJvcGVydHkgfTsKKyAgICAgICAgZW51bSBUeXBlIHsgVW5jYWNoYWJsZSwgRXhpc3RpbmdQ
cm9wZXJ0eSwgTmV3UHJvcGVydHksIEN1c3RvbVByb3BlcnR5IH07CiAgICAgICAgIGVudW0gQ29u
dGV4dCB7IFVua25vd25Db250ZXh0LCBQdXRCeUlkLCBQdXRCeUlkRXZhbCB9OwogICAgICAgICB0
eXBlZGVmIHZvaWQgKCpQdXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSk7CiAKQEAgLTcy
LDE1ICs3Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV9iYXNlID0gYmFzZTsK
ICAgICAgICAgICAgIG1fcHV0RnVuY3Rpb24gPSBmdW5jdGlvbjsKICAgICAgICAgfQotCi0gICAg
ICAgIHZvaWQgc2V0Q2FjaGVhYmxlQ3VzdG9tUHJvcGVydHkoSlNPYmplY3QqIGJhc2UsIFB1dFZh
bHVlRnVuYyBmdW5jdGlvbikKLSAgICAgICAgewotICAgICAgICAgICAgbV90eXBlID0gQ2FjaGVh
YmxlQ3VzdG9tUHJvcGVydHk7Ci0gICAgICAgICAgICBtX2Jhc2UgPSBiYXNlOwotICAgICAgICAg
ICAgbV9wdXRGdW5jdGlvbiA9IGZ1bmN0aW9uOwotICAgICAgICB9Ci0gICAgICAgIFB1dFZhbHVl
RnVuYyBjdXN0b21TZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX3B1dEZ1bmN0aW9uOyB9Ci0KKyAg
ICAgICAgCiAgICAgICAgIENvbnRleHQgY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PENvbnRleHQ+KG1fY29udGV4dCk7IH0KIAogICAgICAgICBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KQEAgLTg4LDEyICs4MCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgSlNWYWx1ZSB0aGlzVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3RoaXNWYWx1ZTsgfQog
CiAgICAgICAgIGJvb2wgaXNTdHJpY3RNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pc1N0cmljdE1v
ZGU7IH0KLSAgICAgICAgYm9vbCBpc0NhY2hlYWJsZVB1dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBOZXdQcm9wZXJ0eSB8fCBtX3R5cGUgPT0gRXhpc3RpbmdQcm9wZXJ0eTsgfQotICAgICAg
ICBib29sIGlzQ2FjaGVhYmxlQ3VzdG9tUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX3R5cGUg
PT0gQ2FjaGVhYmxlQ3VzdG9tUHJvcGVydHk7IH0KLQorICAgICAgICBib29sIGlzQ2FjaGVhYmxl
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IFVuY2FjaGFibGUgJiYgbV90eXBlICE9IEN1c3Rv
bVByb3BlcnR5OyB9CiAgICAgICAgIFByb3BlcnR5T2Zmc2V0IGNhY2hlZE9mZnNldCgpIGNvbnN0
CiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChpc0NhY2hlYWJsZVB1dCgpKTsKKyAgICAg
ICAgICAgIEFTU0VSVChpc0NhY2hlYWJsZSgpKTsKICAgICAgICAgICAgIHJldHVybiBtX29mZnNl
dDsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9qaXQvU3BpbGxSZWdpc3RlcnNNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9qaXQvU3BpbGxSZWdpc3RlcnNNb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGZmZTIyNDk1ZDVhNWRhMGNmNDIwNzc2YWM1YmY3MWU0MjUzNDUzYTUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvaml0L1NwaWxsUmVnaXN0ZXJzTW9kZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi0jaWZuZGVmIFdlYkNvcmVfRldEX0pJVENvZGVfaAotI2RlZmluZSBXZWJD
b3JlX0ZXRF9KSVRDb2RlX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TcGlsbFJlZ2lzdGVy
c01vZGUuaD4KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlhNDNkMWQxNTUzYmJlYzA4N2UxMGVkYTdmOGRmY2Zl
ZmNhN2ZlY2YuLjkyNWJjN2Y1MjRiMjNhMjE3MTNlOTU5MmEzNTA1MDg2ZGY5NjE0MjIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxNC0wMy0wNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NTE0MS4K
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY1MTQxCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk3NjkKKworICAgICAg
ICBCcmVha3MgdGhpbmdzIChSZXF1ZXN0ZWQgYnkgYW5kZXJzY2Egb24gI3dlYmtpdCkuCisKKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3Jw
aGljLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2Fzc2lnbi1j
dXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVn
cmVzcy9hc3NpZ24tY3VzdG9tLXNldHRlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Fzc2lnbi1jdXN0b20t
c2V0dGVyLmpzOiBSZW1vdmVkLgorCiAyMDE0LTAzLTA1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBh
cHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBjYWNoaW5nIG9mIGN1c3RvbSBzZXR0ZXJzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjgzMDU0MTlhOTAx
M2FhNzNhMmZjMDQwMmQ1NDg1ZDJiNDIzODM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXNzaWduLWN1c3RvbS1z
ZXR0ZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdy
ZXNzL2Fzc2lnbi1jdXN0b20tc2V0dGVyCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1vcnBoaWMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNDZjZjM1NjNiMTllMjBhNjlkMTBi
YzcwMjllOTFmNDhjYzUxNWJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9s
eW1vcnBoaWMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNS
ZWdyZXNzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3JwaGljLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3ZGM2MjZiZGI3ZDdkOWVhM2I0ZGE1
ZDBjODE2NWY2MTFjNmM2Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9hc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5
bW9ycGhpYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1v
cnBoaWMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9hc3NpZ24tY3VzdG9tLXNldHRlci5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9hc3NpZ24tY3VzdG9tLXNldHRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyOTE2ZDZlZDFhYzAyMjVkZmM2YmNkNmNjN2RmM2Q2NjE4NmVjZTBjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvYXNzaWduLWN1c3RvbS1zZXR0ZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAg
QEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Fzc2lnbi1jdXN0
b20tc2V0dGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Fzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHltb3Jw
aGljLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYXNzaWduLWN1c3Rv
bS1zZXR0ZXItcG9seW1vcnBoaWMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFj
MDk2YjZjNDA0ZDdjNWI4ZTQ1YjdmOTQxOTlmNmVhMWU0ZDdkMjcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvYXNzaWduLWN1c3RvbS1zZXR0ZXItcG9seW1vcnBoaWMuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwyNiArMCwwIEBACi0KLW8gPSBSZWdFeHA7Ci1qID0gMDsKLWwgPSAyOwoteiA9IDA7
Ci1mdW5jdGlvbiB0ZXN0KG8sIHopIHsKLSAgICB2YXIgayA9IGFyZ3VtZW50c1soKChqIDw8IDEg
fCBsKSA+PiAxKSBeIDEpICYgKHogKj0gMSldOwotICAgIGsuaW5wdXQgPSAwOwotICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMjUwMDA7IGkrKykgewotICAgICAgICBrLmlucHV0ID0gImZvbyI7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIGsuaW5wdXQ7Ci19Ci12YXIgcmVzdWx0ID0gdGVzdCh7X19wcm90
b19fOiB7YmFyOiJ3aWJibGUiLCBpbnB1dDoiZm9vIn19KTsKLXZhciByZXN1bHQgPSB0ZXN0KHtp
bnB1dDoiZm9vIn0pOwotdmFyIHJlc3VsdCA9IHRlc3QobykKLWZvciAodmFyIGsgPSAwOyBrIDwg
NjsgaysrKSB7Ci0gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGU7Ci0gICAgdmFyIG5ld1Jlc3VsdCA9
IHRlc3QobykKLSAgICB2YXIgZW5kID0gbmV3IERhdGU7Ci0gICAgaWYgKG5ld1Jlc3VsdCAhPSBy
ZXN1bHQpCi0gICAgICAgIHRocm93ICJGYWlsZWQgYXQgIiArIGsgKyAid2l0aCAiICsgbmV3UmVz
dWx0ICsgIiB2cy4gIiArIHJlc3VsdAotICAgIHJlc3VsdCA9IG5ld1Jlc3VsdDsKLSAgICBvID0g
e19fcHJvdG9fXyA6IG8gfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvYXNzaWduLWN1c3RvbS1zZXR0ZXIuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9hc3NpZ24tY3VzdG9tLXNldHRlci5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjNhOGM5MDNhYjE2MjU4ZjI0Njc1NDlhNzZmYzFmMTBhZDA5YzdhZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9hc3NpZ24tY3VzdG9tLXNldHRlci5qcworKysgL2Rl
di9udWxsCkBAIC0xLDI0ICswLDAgQEAKLS8vIFJlZ0V4cC5pbnB1dCBpcyBhIGhhbmR5IHNldHRl
cgotCi12YXIgbyA9IFJlZ0V4cDsKLWZ1bmN0aW9uIHRlc3QobykgewotICAgIHZhciBrID0gMDsK
LSAgICBvLmlucHV0ID0gImJhciI7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzMDAwMDsgaSsr
KQotICAgICAgICBvLmlucHV0ID0gImZvbyI7Ci0KLSAgICByZXR1cm4gby5pbnB1dDsKLX0KLQot
dmFyIHJlc3VsdCA9IHRlc3Qobyk7Ci0KLWZvciAodmFyIGsgPSAwOyBrIDwgOTsgaysrKSB7Ci0g
ICAgdmFyIHN0YXJ0ID0gbmV3IERhdGU7Ci0gICAgdmFyIG5ld1Jlc3VsdCA9IHRlc3QobykKLSAg
ICB2YXIgZW5kID0gbmV3IERhdGU7Ci0gICAgaWYgKG5ld1Jlc3VsdCAhPSByZXN1bHQpCi0gICAg
ICAgIHRocm93ICJGYWlsZWQgYXQgIiArIGsgKyAid2l0aCAiICtuZXdSZXN1bHQgKyAiIHZzLiAi
ICsgcmVzdWx0Ci0gICAgcmVzdWx0ID0gbmV3UmVzdWx0OyAKLSAgICBvID0ge19fcHJvdG9fXyA6
IG8gfQotfQotCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>