<?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>219550</bug_id>
          
          <creation_ts>2020-12-04 12:31:08 -0800</creation_ts>
          <short_desc>[JIT] Require value registers explicitly on emitValueProfilingSite</short_desc>
          <delta_ts>2020-12-11 14:57:41 -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>JavaScriptCore</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="Caio Lima">ticaiolima</reporter>
          <assigned_to name="Caio Lima">ticaiolima</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>smoley</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1712116</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-04 12:31:08 -0800</bug_when>
    <thetext>We had a couple of bugs on baseline operations and forcing this parameter helps to avoid such kind of error on future changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712127</commentid>
    <comment_count>1</comment_count>
      <attachid>415449</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-04 12:44:07 -0800</bug_when>
    <thetext>Created attachment 415449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712210</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-12-04 16:33:42 -0800</bug_when>
    <thetext>Can you take a look at debug build failure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712224</commentid>
    <comment_count>3</comment_count>
      <attachid>415449</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-12-04 17:41:43 -0800</bug_when>
    <thetext>Comment on attachment 415449
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=415449&amp;action=review

&gt; Source/JavaScriptCore/jit/JITCall.cpp:47
&gt; +    emitValueProfilingSite(bytecode.metadata(m_codeBlock), JSValueRegs(regT0));

can we have a version on 64-bit that just takes a GPRReg, and it constructs the JSValueRegs so not all call sites need to do this?

Alternatively, we can make the constructor implicit on 64-bit :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712435</commentid>
    <comment_count>4</comment_count>
      <attachid>415551</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-07 05:08:33 -0800</bug_when>
    <thetext>Created attachment 415551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712436</commentid>
    <comment_count>5</comment_count>
      <attachid>415552</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-07 05:10:22 -0800</bug_when>
    <thetext>Created attachment 415552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712437</commentid>
    <comment_count>6</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-07 05:14:23 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Can you take a look at debug build failure?

Build seems quite unrelated, since it was a failure caused by a missing header on code that I didn&apos;t change. I trigged a re-run and it then passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712438</commentid>
    <comment_count>7</comment_count>
      <attachid>415449</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-07 05:21:25 -0800</bug_when>
    <thetext>Comment on attachment 415449
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=415449&amp;action=review

Thank you very much for the review.

&gt;&gt; Source/JavaScriptCore/jit/JITCall.cpp:47
&gt;&gt; +    emitValueProfilingSite(bytecode.metadata(m_codeBlock), JSValueRegs(regT0));
&gt; 
&gt; can we have a version on 64-bit that just takes a GPRReg, and it constructs the JSValueRegs so not all call sites need to do this?
&gt; 
&gt; Alternatively, we can make the constructor implicit on 64-bit :-)

I went with the first proposal, since I don&apos;t quite understand the motivation behind the choice to turn `JSValueRegs(GPRReg)` explicit. Do you know why we declared it this way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712483</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-07 09:58:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/72051776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712764</commentid>
    <comment_count>9</comment_count>
      <attachid>415632</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-08 06:31:58 -0800</bug_when>
    <thetext>Created attachment 415632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712795</commentid>
    <comment_count>10</comment_count>
      <attachid>415632</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-08 08:01:06 -0800</bug_when>
    <thetext>Comment on attachment 415632
Patch

I&apos;m starting to believe that this patch is indeed inserting issues. I&apos;ll investigate it further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713898</commentid>
    <comment_count>11</comment_count>
      <attachid>415992</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-12-11 07:14:56 -0800</bug_when>
    <thetext>Created attachment 415992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714098</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-11 14:57:40 -0800</bug_when>
    <thetext>Committed r270711: &lt;https://trac.webkit.org/changeset/270711&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415992.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415449</attachid>
            <date>2020-12-04 12:44:07 -0800</date>
            <delta_ts>2020-12-07 05:08:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219550-20201204174405.patch</filename>
            <type>text/plain</type>
            <size>31529</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZmFkMDdkMmJlNGJkZDkzZmI0ZDc0NjliMDQ2ZDFiYzc3MmQ0ODBmLi5jODU0OWUzZmUzODU3OTk0
NjRiMTgzMzVhMWIzNDAxZTg0N2M0MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAyMC0xMi0wNCAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pJVF0gUmVxdWlyZSB2YWx1ZSByZWdpc3RlcnMgZXhwbGljaXRseSBvbiBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTk1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHJlbW92aW5nIHRoZSBkZWZhdWx0IHZhbHVlIGZv
ciBgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZWAKKyAgICAgICAgdG8gYXZvaWQgYnVncyBsaWtlIHIy
NzA0MjMgYW5kIHIyNzA0MzEuCisKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlV2l0aG91dExpbmtpbmcpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAg
ICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENhbGxS
ZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6CisgICAg
ICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENh
bGxSZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6Cisg
ICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjphcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSk6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9f
bnVtYmVyKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWVyaWMpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9fb2JqZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2NhdGNoKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2FyZ3VtZW50KToKKyAgICAgICAgKiBq
aXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251
bWJlcik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19udW1lcmljKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX3RvX29iamVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9jYXRjaCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKToK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJp
dmF0ZV9uYW1lKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X2J5X2lkX3dpdGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJv
bV9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9hcmd1bWVudHMp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKToKKyAgICAg
ICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9wcml2
YXRlX25hbWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfZGlyZWN0KToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9n
ZXRfYnlfaWRfd2l0aF90aGlzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9t
X3Njb3BlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX2FyZ3VtZW50cyk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfaW50ZXJuYWxfZmllbGQpOgorCiAyMDIw
LTEyLTA0ICBDYWlvIExpbWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAgICAgICBbSklU
XSBWYWx1ZSBwcm9maWxlIHN0b3JlcyB3cm9uZyB2YWx1ZSBpbiBCYXNlbGluZUpJVCBmb3Igc29t
ZSBvcGVyYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggY2U4N2M4NzY0Nzc1
ZmFmYjBjODc5ZjU5ZTlmOTRhMzkwOGY4NmNjMy4uMmE1ZmMyOTMwODMwZGM3NWNiYWVkYjMwNmE3
MWE2MjE4OGQ5ZTU1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNzU2LDEyICs3
NTYsMTQgQEAgdm9pZCBKSVQ6OmNvbXBpbGVXaXRob3V0TGlua2luZyhKSVRDb21waWxhdGlvbkVm
Zm9ydCBlZmZvcnQpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
ICAgIGludCBvZmZzZXQgPSBDYWxsRnJhbWU6OmFyZ3VtZW50T2Zmc2V0SW5jbHVkaW5nVGhpcyhh
cmd1bWVudCkgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpOwogI2lmIFVTRShK
U1ZBTFVFNjQpCi0gICAgICAgICAgICAgICAgbG9hZDY0KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0
ZXIsIG9mZnNldCksIHJlZ1QwKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworICAgICAgICAgICAgICAgIGxvYWQ2NChBZGRyZXNz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CiAj
ZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgICAgIGxvYWQzMihBZGRyZXNzKGNh
bGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMucGF5bG9hZCkpLCByZWdUMCk7Ci0gICAgICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoY2Fs
bEZyYW1lUmVnaXN0ZXIsIG9mZnNldCArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0
cy50YWcpKSwgcmVnVDEpOworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3Mg
PSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworICAgICAgICAgICAgICAgIGxvYWQzMihBZGRy
ZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXQgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwg
dS5hc0JpdHMucGF5bG9hZCkpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAg
ICAgICAgbG9hZDMyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCArIE9CSkVDVF9P
RkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgcmVzdWx0UmVncy50YWdHUFIoKSk7CiAj
ZW5kaWYKLSAgICAgICAgICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1fY29kZUJsb2Nr
LT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCkpOworICAgICAgICAgICAgICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUobV9jb2RlQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50
KGFyZ3VtZW50KSwgcmVzdWx0UmVncyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCAwN2E5NjA2YjBkOWUxMTg4MDkzMzNmMjBhYzdl
NWY3NjQ2MmFjZDNkLi4zNDE1NjdjNTZlNzJmYmNhNGQzMmRhZTMwODUwYTA3MmM3MmJmNjNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTM3NCwxMSArMzc0LDExIEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICAvLyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdmFsdWUgdG8gcHJvZmlsZSBp
cyBpbiByZWdUMCBhbmQgdGhhdCByZWdUMyBpcyBhdmFpbGFibGUgZm9yCiAgICAgICAgIC8vIHNj
cmF0Y2guCiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKFZhbHVlUHJvZmlsZSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJlZ3MgeyBy
ZWdUMCB9KTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJl
Z3MgeyByZWdUMCB9KTsKKyAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVl
UHJvZmlsZSYsIEpTVmFsdWVSZWdzKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRh
dGE+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzKTsK
ICNlbHNlCi0gICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2ZpbGUm
LCBKU1ZhbHVlUmVncyB2YWx1ZSA9IEpTVmFsdWVSZWdzIHsgcmVnVDEsIHJlZ1QwIH0pOwotICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKE1ldGFkYXRhJiwgSlNWYWx1ZVJlZ3MgdmFsdWUgPSBKU1ZhbHVlUmVncyB7IHJlZ1QxLCBy
ZWdUMCB9KTsKKyAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmls
ZSYsIEpTVmFsdWVSZWdzKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZv
aWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzKTsKICNlbmRp
ZgogCiAgICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUo
Li4uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCmluZGV4IDU1NjU3N2ViMGFj
OTc0OTM5Y2Y4ZmJiMzFlNmFkNjVmYTFkNGE2YWIuLmMzYjgxOWVkOTk1NDA2NTgzNWUwNDc2NzY1
YzQ5NjI1ZjNiNjM4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q2FsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcApAQCAt
NDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogdm9p
ZCBKSVQ6OmVtaXRQdXRDYWxsUmVzdWx0KGNvbnN0IE9wJiBieXRlY29kZSkKIHsKLSAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpT
VmFsdWVSZWdzKHJlZ1QwKSk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlv
bkZvcihieXRlY29kZSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSkudmlydHVhbFJlZ2lz
dGVyKCksIHJlZ1QwKTsKIH0KIApAQCAtNDA1LDcgKzQwNSw3IEBAIHZvaWQgSklUOjplbWl0X29w
X2l0ZXJhdG9yX29wZW4oY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgIGFkZFNs
b3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsK
IAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxv
Y2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDApKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVy
KGJ5dGVjb2RlLm1fbmV4dCk7CiAKICAgICBmYXN0Q2FzZS5saW5rKHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCmluZGV4IGQ2YTc1Y2U4NGU0YjUzMjM2
MDg5OTI4Y2NjMzljOWEyMTM3OGFlM2EuLmJlMzVmY2E5MmRlMTQ4NWY3NWQxZjMyZWZlZjJhOWFm
ZGJlMjg0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAK
QEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4K
IHZvaWQgSklUOjplbWl0UHV0Q2FsbFJlc3VsdChjb25zdCBPcCYgYnl0ZWNvZGUpCiB7Ci0gICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwor
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
LCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBlbWl0U3RvcmUoZGVzdGluYXRpb25G
b3IoYnl0ZWNvZGUsIG1fYnl0ZWNvZGVJbmRleC5jaGVja3BvaW50KCkpLnZpcnR1YWxSZWdpc3Rl
cigpLCByZWdUMSwgcmVnVDApOwogfQogCkBAIC00MDIsNiArNDAyLDggQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfaXRlcmF0b3Jfb3Blbihjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAg
R1BSUmVnIHRhZ05leHRHUFIgPSB0YWdJdGVyYXRvckdQUjsKICAgICBHUFJSZWcgcGF5bG9hZE5l
eHRHUFIgPSBwYXlsb2FkSXRlcmF0b3JHUFI7CiAKKyAgICBKU1ZhbHVlUmVncyBuZXh0UmVncyA9
IEpTVmFsdWVSZWdzKHRhZ05leHRHUFIsIHBheWxvYWROZXh0R1BSKTsKKwogICAgIEpJVEdldEJ5
SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywKICAgICAgICAgQ29kZU9yaWdp
bihtX2J5dGVjb2RlSW5kZXgpLApAQCAtNDA5LDE1ICs0MTEsMTUgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfaXRlcmF0b3Jfb3Blbihjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgICAg
IFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgQ2FjaGVh
YmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUltbW9ydGFsSWRlbnRpZmllcihpZGVudC0+aW1wbCgp
KSwKICAgICAgICAgSlNWYWx1ZVJlZ3ModGFnSXRlcmF0b3JHUFIsIHBheWxvYWRJdGVyYXRvckdQ
UiksCi0gICAgICAgIEpTVmFsdWVSZWdzKHRhZ05leHRHUFIsIHBheWxvYWROZXh0R1BSKSwKKyAg
ICAgICAgbmV4dFJlZ3MsCiAgICAgICAgIEFjY2Vzc1R5cGU6OkdldEJ5SWQpOwogICAgIAogICAg
IGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1Bh
dGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CiAKLSAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7Ci0gICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3RlcihieXRlY29kZS5tX25leHQsIEpTVmFsdWVSZWdzKHRhZ05leHRHUFIs
IHBheWxvYWROZXh0R1BSKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5t
ZXRhZGF0YShtX2NvZGVCbG9jayksIG5leHRSZWdzKTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGJ5dGVjb2RlLm1fbmV4dCwgbmV4dFJlZ3MpOwogCiAgICAgZmFzdENhc2UubGluayh0aGlz
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggM2FiYjFmNmYy
YzgxMDY3N2NlNzMxODY0NDc0ZmQyNGE3ODkxYjIyNi4uY2U0NDZhMjIyMzkwOTkwYmEyMGJjZDlk
YjM1YjQxOWM5ZWZkMmIyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
QEAgLTE1NywxMCArMTU3LDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPgogQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2tTZXRKU1ZhbHVlUmVzdWx0V2l0aFByb2ZpbGUoTWV0YWRhdGEmIG1ldGFkYXRhLCBjb25z
dCBGdW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBWaXJ0dWFsUmVnaXN0ZXIg
ZHN0KQogewogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKGZ1bmN0aW9uKTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFk
YXRhKTsKICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0
YWRhdGEsIEpTVmFsdWVSZWdzKHJldHVyblZhbHVlR1BSKSk7CiAgICAgZW1pdFB1dFZpcnR1YWxS
ZWdpc3Rlcihkc3QsIHJldHVyblZhbHVlR1BSKTsKICNlbHNlCisgICAgZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZShtZXRhZGF0YSwgSlNWYWx1ZVJlZ3MocmV0dXJuVmFsdWVHUFIyLCByZXR1cm5WYWx1
ZUdQUikpOwogICAgIGVtaXRTdG9yZShkc3QsIHJldHVyblZhbHVlR1BSMiwgcmV0dXJuVmFsdWVH
UFIpOwogI2VuZGlmCiAgICAgcmV0dXJuIGNhbGw7CkBAIC0zMjcsNyArMzI4LDExIEBAIGlubGlu
ZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2ZpbGUmIHZhbHVlUHJv
ZmlsZSwgSlNWYWx1ZVJlZ3MKIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogaW5saW5lIHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19zYW1lPGRlY2x0eXBlKE9wOjpNZXRhZGF0YTo6bV9wcm9maWxlKSwg
VmFsdWVQcm9maWxlPjo6dmFsdWUsIHZvaWQ+IEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlm
UHJvZmlsZWRPcGNvZGUoT3AgYnl0ZWNvZGUpCiB7Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayks
IEpTVmFsdWVSZWdzKHJlZ1QwKSk7CisjZWxzZQorICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
Ynl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDAp
KTsKKyNlbmRpZgogfQogCiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGVJ
ZlByb2ZpbGVkT3Bjb2RlKC4uLikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzLmNwcAppbmRleCA0NzU3YWM2ODI5NDA4YTJkZDNkMGFhNmIyZTY1ZGU2MjQ4NGFkMzIxLi5h
ZmFlYzQ2ZDAwZTBhZTk4NGYxOWM0ZTU1MWY3MmU2YmY3ZWJjMjVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTc3Nyw3ICs3NzcsNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF90b19udW1iZXIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICAKICAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdE51bWJlcihyZWdUMCkpOwogCi0gICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwor
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
LCBKU1ZhbHVlUmVncyhyZWdUMCkpOwogICAgIGlmIChzcmNWUmVnICE9IGRzdFZSZWcpCiAgICAg
ICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0VlJlZyk7CiB9CkBAIC03OTcsNyArNzk3LDcg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfdG9fbnVtZXJpYyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90TnVtYmVyKHJlZ1QwKSk7
CiAgICAgaXNCaWdJbnQubGluayh0aGlzKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
Ynl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDApKTsK
ICAgICBpZiAoc3JjVlJlZyAhPSBkc3RWUmVnKQogICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGRzdFZSZWcpOwogfQpAQCAtODI0LDcgKzgyNCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3Rv
X29iamVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGFkZFNs
b3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMCkpOwogICAgIGFkZFNsb3dDYXNlKGJyYW5jaElm
Tm90T2JqZWN0KHJlZ1QwKSk7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2Rl
Lm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRl
Y29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1QwKSk7CiAgICAgaWYg
KHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3RW
UmVnKTsKIH0KQEAgLTg3Myw3ICs4NzMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jYXRjaChjb25z
dCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBidWZmZXItPmZvckVh
Y2goWyZdIChWYWx1ZVByb2ZpbGVBbmRWaXJ0dWFsUmVnaXN0ZXImIHByb2ZpbGUpIHsKICAgICAg
ICAgICAgIEpTVmFsdWVSZWdzIHJlZ3MocmVnVDApOwogICAgICAgICAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3Rlcihwcm9maWxlLm1fb3BlcmFuZCwgcmVncyk7Ci0gICAgICAgICAgICBlbWl0VmFs
dWVQcm9maWxpbmdTaXRlKHN0YXRpY19jYXN0PFZhbHVlUHJvZmlsZSY+KHByb2ZpbGUpKTsKKyAg
ICAgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoc3RhdGljX2Nhc3Q8VmFsdWVQcm9maWxl
Jj4ocHJvZmlsZSksIHJlZ3MpOwogICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxF
KERGR19KSVQpCkBAIC0xNTM5LDcgKzE1MzksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZGly
ZWN0X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbG9h
ZDY0KEJhc2VJbmRleChyZWdUMCwgcmVnVDEsIFRpbWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9w
ZXJ0eSksIHJlZ1QwKTsKICAgICAKICAgICBkb25lLmxpbmsodGhpcyk7Ci0gICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1ZhbHVl
UmVncyhyZWdUMCkpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCByZWdUMCk7CiB9
CiAKQEAgLTE3NTksNyArMTc1OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9hcmd1bWVudChj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIG1vdmVWYWx1ZShqc1Vu
ZGVmaW5lZCgpLCByZXN1bHRSZWdzKTsKIAogICAgIGRvbmUubGluayh0aGlzKTsKLSAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJl
c3VsdFJlZ3MpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCByZXN1bHRSZWdzKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJf
NjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmlu
ZGV4IDA1MmMwZWQwM2E2NmEyMjI3YTdmNjNkY2ZjMGIxNmFhMGMwYjgzYTUuLmViZmMwYjY5MDFj
NTE0YWFlYTQ5ZWQxZDU1ZDZiODc3OTRhMzZmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTg2MCw3ICs4NjAsNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF90b19udW1iZXIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSkpOwogICAgIGlzSW50MzIubGluayh0aGlzKTsKIAotICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsK
KyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2Nr
KSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAgICAgaWYgKHNyYyAhPSBkc3QpCiAgICAg
ICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9CkBAIC04ODIsNyArODgyLDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfdG9fbnVtZXJpYyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90TnVtYmVyKGFyZ3VtZW50VmFs
dWVSZWdzLCByZWdUMikpOwogICAgIGlzQmlnSW50LmxpbmsodGhpcyk7CiAKLSAgICBlbWl0VmFs
dWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpTVmFs
dWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGlmIChzcmMgIT0gZHN0KQogICAgICAgICBlbWl0
U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQpAQCAtOTEzLDcgKzkxMyw3IEBAIHZvaWQgSklU
OjplbWl0X29wX3RvX29iamVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMSkpOwogICAgIGFkZFNsb3dD
YXNlKGJyYW5jaElmTm90T2JqZWN0KHJlZ1QwKSk7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1Qx
LCByZWdUMCkpOwogICAgIGlmIChzcmMgIT0gZHN0KQogICAgICAgICBlbWl0U3RvcmUoZHN0LCBy
ZWdUMSwgcmVnVDApOwogfQpAQCAtOTcwLDcgKzk3MCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2Nh
dGNoKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGJ1ZmZl
ci0+Zm9yRWFjaChbJl0gKFZhbHVlUHJvZmlsZUFuZFZpcnR1YWxSZWdpc3RlciYgcHJvZmlsZSkg
ewogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVncyhyZWdUMSwgcmVnVDApOwogICAgICAgICAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9maWxlLm1fb3BlcmFuZCwgcmVncyk7Ci0gICAg
ICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKHN0YXRpY19jYXN0PFZhbHVlUHJvZmlsZSY+
KHByb2ZpbGUpKTsKKyAgICAgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoc3RhdGljX2Nh
c3Q8VmFsdWVQcm9maWxlJj4ocHJvZmlsZSksIHJlZ3MpOwogICAgICAgICB9KTsKICAgICB9CiAj
ZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgbG9hZDMyKEJhc2VJbmRleChyZWdUMCwgcmVnVDIsIFRpbWVzRWlnaHQsIG9m
ZnNldE9mRmlyc3RQcm9wZXJ0eSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5w
YXlsb2FkKSksIHJlZ1QwKTsKICAgICAKICAgICBkb25lLmxpbmsodGhpcyk7Ci0gICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDAp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwCmluZGV4IDYxMmM0OGZmYTJiODgyODk3MjhlNmQ4MDkyZmE0MmZjNTNiNGM4NmIuLjgwNjhl
ZDJlNDM4MDhkY2I3MGJkZmJhODI3MWZlZTNhZDY5Yjc1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC02NCwxNiArNjQsMTggQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJh
c2UpOwogICAgICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJlZ1Qy
LCBwcm9maWxlKTsKIAorICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJl
Z3MocmVnVDApOworCiAgICAgICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKICAgICAgICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6R2V0QnlWYWwsIFJlZ2lzdGVyU2V0Ojpz
dHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1Qw
KSwgSlNWYWx1ZVJlZ3MocmVnVDEpLCBKU1ZhbHVlUmVncyhyZWdUMCkpOworICAgICAgICAgICAg
SlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSksIHJlc3VsdFJlZ3MpOwogICAg
ICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQogICAgICAgICAgICAgZ2Vu
LnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7CiAgICAgICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKICAgICAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgp
KTsKICAgICAgICAgbV9nZXRCeVZhbHMuYXBwZW5kKGdlbik7CiAKLSAgICAgICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgICAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVz
dWx0UmVncyk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICB9CiAK
QEAgLTExMCwxNCArMTEyLDE2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUo
Y29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRKdW1wU2xv
d0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworCiAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2Vu
KAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxs
U2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lLAot
ICAgICAgICBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIEpTVmFsdWVS
ZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eUdQUiksIEpTVmFsdWVSZWdzKHJlZ1Qw
KSk7CisgICAgICAgIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgSlNW
YWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BSKSwgcmVzdWx0UmVncyk7
CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5z
bG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeVZhbHMuYXBwZW5kKGdlbik7CiAKLSAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJl
c3VsdFJlZ3MpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKIH0KIApAQCAtNTcw
LDE0ICs1NzQsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90
SlNDZWxsKHJlZ1QwLCBiYXNlVlJlZyk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
SlNWYWx1ZVJlZ3MocmVnVDApOworCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVy
cygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93
bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwg
SlNWYWx1ZVJlZ3MocmVnVDApLCBBY2Nlc3NUeXBlOjpUcnlHZXRCeUlkKTsKKyAgICAgICAgQ2Fj
aGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1f
Y29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVncyhyZWdUMCksIHJlc3VsdFJlZ3MsIEFjY2Vz
c1R5cGU6OlRyeUdldEJ5SWQpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAg
ICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5k
KGdlbik7CiAgICAgCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0
YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdzKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKHJlc3VsdFZSZWcpOwogfQogCkBAIC02MDksMTQgKzYxNSwxNiBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9nZXRfYnlfaWRfZGlyZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2VWUmVnKTsK
IAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisKICAg
ICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmln
aW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdp
c3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlk
ZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9j
aywgKmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIEFjY2Vz
c1R5cGU6OkdldEJ5SWREaXJlY3QpOworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVh
dGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpT
VmFsdWVSZWdzKHJlZ1QwKSwgcmVzdWx0UmVncywgQWNjZXNzVHlwZTo6R2V0QnlJZERpcmVjdCk7
CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5z
bG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVz
dWx0UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHRWUmVnKTsKIH0KIApA
QCAtNjU1LDE0ICs2NjMsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG5vdEFycmF5TGVuZ3RoTW9k
ZS5saW5rKHRoaXMpOwogICAgIH0KIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMCk7CisKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAg
bV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleCht
X2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCks
Ci0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRC
eUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMCksIEFjY2Vzc1R5cGU6OkdldEJ5SWQpOworICAgICAgICBDYWNoZWFibGVJ
ZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxv
Y2ssICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgcmVzdWx0UmVncywgQWNjZXNzVHlwZTo6
R2V0QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dD
YXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKIAot
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
KTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJs
b2NrKSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHRWUmVn
KTsKIH0KIApAQCAtNjc5LDE0ICs2ODksMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lk
X3dpdGhfdGhpcyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZVZSZWcpOwogICAgIGVtaXRKdW1w
U2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMSwgdGhpc1ZSZWcpOwogCisgICAgSlNWYWx1ZVJlZ3Mg
cmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRXaXRoVGhp
c0dlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNv
ZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0
dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpj
cmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCks
IEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MSkpOworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93
bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIHJlc3VsdFJlZ3MsIEpTVmFsdWVS
ZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEpKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0
aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dl
dEJ5SWRzV2l0aFRoaXMuYXBwZW5kKGdlbik7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOwogICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0VlJlZyk7CiB9CiAKQEAgLTEwNzEsNyArMTA4Myw3
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGRzdCk7Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtZXRhZGF0YSk7
CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtZXRhZGF0YSwgSlNWYWx1ZVJlZ3MocmVnVDAp
KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9mcm9tX3Njb3BlKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImIGl0ZXIpCkBAIC0xMjUyLDcgKzEyNjQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZnJv
bV9hcmd1bWVudHMoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAK
ICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGFyZ3VtZW50cywgcmVnVDApOwogICAgIGxvYWQ2
NChBZGRyZXNzKHJlZ1QwLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQoKSArIGluZGV4
ICogc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikpLCByZWdUMCk7Ci0gICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1ZhbHVl
UmVncyhyZWdUMCkpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKIH0KIApAQCAt
MTMxOCw3ICsxMzMwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKGNv
bnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihiYXNlLCByZWdUMSk7CiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBKU0ludGVy
bmFsRmllbGRPYmplY3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChpbmRleCkpLCByZWdU
MCk7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhKTsKKyAgICBlbWl0VmFs
dWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCBKU1ZhbHVlUmVncyhyZWdUMCkpOwogICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggMzZhZTI5NjJhNGFiNThi
MTRjNmQwODIyOTYyMjhkMjQ2N2QwNzNiMy4uYjE0YTUwNjM0OTQ1MTU5MzgzZTdkMDlhYjViOWRl
NGMzNTBkZGU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0yNTQsMTYgKzI1NCwxOCBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAgICAgICAg
IGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDQsIHByb2ZpbGUpOwog
CisgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVn
VDApOworCiAgICAgICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKICAgICAgICAgICAgIG1f
Y29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9i
eXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6R2V0QnlWYWwsIFJlZ2lzdGVyU2V0OjpzdHViVW5h
dmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25s
eShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksIEpTVmFsdWVSZWdzKHJlZ1QxLCBy
ZWdUMCkpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNW
YWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwgcmVzdWx0UmVncyk7CiAgICAgICAgIGlmIChpc09wZXJh
bmRDb25zdGFudEludChwcm9wZXJ0eSkpCiAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJv
cGVydHlJc0ludDMyID0gdHJ1ZTsKICAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OwogICAgICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgICAgICBtX2dl
dEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdzKTsKICAgICAg
ICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKICAgICB9CiB9CkBAIC0zMDAsMTUgKzMw
MiwxNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJpdmF0ZV9uYW1lKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0Nl
bGwoYmFzZSwgcmVnVDEpOwogCisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QxLCByZWdUMCk7CisKICAgICBKSVRHZXRCeVZhbEdlbmVyYXRvciBnZW4oCiAgICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6R2V0UHJpdmF0ZU5hbWUsCi0gICAgICAg
IFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgYmFzZUdQUiwgcHJvcGVy
dHlHUFIsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOworICAgICAgICBSZWdpc3RlclNldDo6
c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGJhc2VHUFIsIHByb3BlcnR5R1BSLCByZXN1bHRS
ZWdzKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2Uo
Z2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsK
LSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworICAgIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdzKTsKKyAgICBl
bWl0U3RvcmUoZHN0LCByZXN1bHRSZWdzLnRhZ0dQUigpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIo
KSk7CiB9CiAKIApAQCAtNTc5LDE1ICs1ODMsMTcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dl
dF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRM
b2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxs
KGJhc2UsIHJlZ1QxKTsKIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMSwgcmVnVDApOworCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAg
IG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgo
bV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygp
LAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVk
QnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25s
eShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6OlRyeUdldEJ5
SWQpOworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93
bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzOjpwYXlsb2Fk
T25seShyZWdUMCksIHJlc3VsdFJlZ3MsIEFjY2Vzc1R5cGU6OlRyeUdldEJ5SWQpOwogICAgIGdl
bi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhK
dW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CiAgICAgCi0gICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwotICAgIGVtaXRT
dG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRl
Y29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOworICAgIGVtaXRTdG9yZShk
c3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIAog
dm9pZCBKSVQ6OmVtaXRTbG93X29wX3RyeV9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikK
QEAgLTYxOCwxNSArNjI0LDE3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3Qo
Y29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0TG9hZChiYXNl
LCByZWdUMSwgcmVnVDApOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCBy
ZWdUMSk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEs
IHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVC
bG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNv
ZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAg
ICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJs
b2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDAp
LCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nlc3NUeXBlOjpHZXRCeUlkRGlyZWN0KTsK
KyAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5
Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHko
cmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NUeXBlOjpHZXRCeUlkRGlyZWN0KTsKICAgICBnZW4u
Z2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVt
cCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwotICAgIGVtaXRTdG9yZShk
c3QsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5t
ZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJl
c3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIAogdm9pZCBK
SVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAg
LTY2NCwxNSArNjcyLDE2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBub3RBcnJheUxlbmd0aE1vZGUu
bGluayh0aGlzKTsKICAgICB9CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRl
eChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJz
KCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3du
ZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRP
bmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgQWNjZXNzVHlwZTo6R2V0QnlJ
ZCk7CisgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3du
ZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRP
bmx5KHJlZ1QwKSwgcmVzdWx0UmVncywgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAgICAgZ2VuLmdl
bmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAo
KSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0U3RvcmUoZHN0
LCByZWdUMSwgcmVnVDApOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdzKTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZXN1
bHRSZWdzLnRhZ0dQUigpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CiB9CiAKIHZvaWQgSklU
OjplbWl0U2xvd19vcF9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTcwNSwxNSAr
NzE0LDE3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF93aXRoX3RoaXMoY29uc3QgSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RK
U0NlbGwoYmFzZSwgcmVnVDEpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbCh0aGlz
VlJlZywgcmVnVDQpOwogCisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QxLCByZWdUMCk7CisKICAgICBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3IgZ2VuKAog
ICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0
ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdp
c3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZp
ZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVncyhyZWdU
MSwgcmVnVDApLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhy
ZWdUNCwgcmVnVDMpKTsKKyAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlk
ZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCByZXN1bHRSZWdz
LCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUNCwgcmVn
VDMpKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2Uo
Z2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzV2l0aFRoaXMuYXBwZW5kKGdlbik7
CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJs
b2NrKSk7Ci0gICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7
CisgICAgZW1pdFN0b3JlKGRzdCwgcmVzdWx0UmVncy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXls
b2FkR1BSKCkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X2lkX3dpdGhfdGhp
cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtMTA4Myw3ICsxMDk0LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICAgICAgZW1pdENvZGUocmVzb2x2ZVR5cGUsIGZhbHNlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRh
KG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAgICAgZW1pdFN0b3Jl
KGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KIApAQCAtMTI2MywxMiArMTI3NCwxNCBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfZnJvbV9hcmd1bWVudHMoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICBWaXJ0dWFsUmVnaXN0ZXIgZHN0ID0gYnl0ZWNvZGUubV9kc3Q7CiAg
ICAgVmlydHVhbFJlZ2lzdGVyIGFyZ3VtZW50cyA9IGJ5dGVjb2RlLm1fYXJndW1lbnRzOwogICAg
IGludCBpbmRleCA9IGJ5dGVjb2RlLm1faW5kZXg7CisKKyAgICBKU1ZhbHVlUmVncyByZXN1dGxS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICAKICAgICBlbWl0TG9hZFBheWxv
YWQoYXJndW1lbnRzLCByZWdUMCk7Ci0gICAgbG9hZDMyKEFkZHJlc3MocmVnVDAsIERpcmVjdEFy
Z3VtZW50czo6c3RvcmFnZU9mZnNldCgpICsgaW5kZXggKiBzaXplb2YoV3JpdGVCYXJyaWVyPFVu
a25vd24+KSArIFRhZ09mZnNldCksIHJlZ1QxKTsKLSAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwg
RGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRleCAqIHNpemVvZihXcml0ZUJh
cnJpZXI8VW5rbm93bj4pICsgUGF5bG9hZE9mZnNldCksIHJlZ1QwKTsKLSAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7Ci0gICAgZW1pdFN0
b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgRGlyZWN0
QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRleCAqIHNpemVvZihXcml0ZUJhcnJpZXI8
VW5rbm93bj4pICsgVGFnT2Zmc2V0KSwgcmVzdXRsUmVncy50YWdHUFIoKSk7CisgICAgbG9hZDMy
KEFkZHJlc3MocmVnVDAsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpICsgaW5kZXgg
KiBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSArIFBheWxvYWRPZmZzZXQpLCByZXN1dGxS
ZWdzLnBheWxvYWRHUFIoKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5t
ZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3V0bFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJl
c3V0bFJlZ3MudGFnR1BSKCksIHJlc3V0bFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIAogdm9pZCBK
SVQ6OmVtaXRfb3BfcHV0X3RvX2FyZ3VtZW50cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQpAQCAtMTI5NCwxMSArMTMwNywxMyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRf
aW50ZXJuYWxfZmllbGQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBWaXJ0dWFsUmVnaXN0ZXIgYmFzZSA9IGJ5dGVjb2RlLm1fYmFzZTsKICAgICB1bnNpZ25lZCBp
bmRleCA9IGJ5dGVjb2RlLm1faW5kZXg7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
SlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKwogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCBy
ZWdUMik7Ci0gICAgbG9hZDMyKEFkZHJlc3MocmVnVDIsIEpTSW50ZXJuYWxGaWVsZE9iamVjdElt
cGw8Pjo6b2Zmc2V0T2ZJbnRlcm5hbEZpZWxkKGluZGV4KSArIFRhZ09mZnNldCksIHJlZ1QxKTsK
LSAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMiwgSlNJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbDw+Ojpv
ZmZzZXRPZkludGVybmFsRmllbGQoaW5kZXgpICsgUGF5bG9hZE9mZnNldCksIHJlZ1QwKTsKLSAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhKTsKLSAgICBlbWl0U3RvcmUoZHN0LCBy
ZWdUMSwgcmVnVDApOworICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBKU0ludGVybmFsRmllbGRP
YmplY3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChpbmRleCkgKyBUYWdPZmZzZXQpLCBy
ZXN1bHRSZWdzLnRhZ0dQUigpKTsKKyAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMiwgSlNJbnRlcm5h
bEZpZWxkT2JqZWN0SW1wbDw+OjpvZmZzZXRPZkludGVybmFsRmllbGQoaW5kZXgpICsgUGF5bG9h
ZE9mZnNldCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKG1ldGFkYXRhLCByZXN1bHRSZWdzKTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZXN1bHRS
ZWdzLnRhZ0dQUigpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0X29wX3B1dF9pbnRlcm5hbF9maWVsZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415551</attachid>
            <date>2020-12-07 05:08:33 -0800</date>
            <delta_ts>2020-12-07 05:10:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219550-20201207100831.patch</filename>
            <type>text/plain</type>
            <size>32302</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZmFkMDdkMmJlNGJkZDkzZmI0ZDc0NjliMDQ2ZDFiYzc3MmQ0ODBmLi4zZjAwNGQyYTUxYThhYTdh
ZGZlNWZmMzZhNDBhZTc1ZTRhNTc1OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMC0xMi0wNyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pJVF0gUmVxdWlyZSB2YWx1ZSByZWdpc3RlcnMgZXhwbGljaXRseSBvbiBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTk1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHJlbW92aW5nIHRoZSBkZWZhdWx0IHZhbHVlIGZv
ciBgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZWAKKyAgICAgICAgdG8gYXZvaWQgYnVncyBsaWtlIHIy
NzA0MjMgYW5kIHIyNzA0MzEuCisKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlV2l0aG91dExpbmtpbmcpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAg
ICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENhbGxS
ZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6CisgICAg
ICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENh
bGxSZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6Cisg
ICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjphcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CisgICAgICAgICogaml0L0pJ
VE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9fbnVtYmVyKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWVyaWMpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfdG9fb2JqZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NhdGNoKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2FyZ3VtZW50KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWJlcik6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19udW1lcmljKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX3RvX29iamVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jYXRjaCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKToKKyAgICAgICAgKiBq
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJpdmF0ZV9uYW1lKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dp
dGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9hcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKToKKyAgICAgICAgKiBqaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfZGlyZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0
aF90aGlzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX2FyZ3VtZW50cyk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfaW50ZXJuYWxfZmllbGQpOgorCiAyMDIwLTEyLTA0ICBDYWlv
IExpbWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAgICAgICBbSklUXSBWYWx1ZSBwcm9m
aWxlIHN0b3JlcyB3cm9uZyB2YWx1ZSBpbiBCYXNlbGluZUpJVCBmb3Igc29tZSBvcGVyYXRpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggY2U4N2M4NzY0Nzc1ZmFmYjBjODc5ZjU5
ZTlmOTRhMzkwOGY4NmNjMy4uMmE1ZmMyOTMwODMwZGM3NWNiYWVkYjMwNmE3MWE2MjE4OGQ5ZTU1
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNzU2LDEyICs3NTYsMTQgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVXaXRob3V0TGlua2luZyhKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQp
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGludCBvZmZz
ZXQgPSBDYWxsRnJhbWU6OmFyZ3VtZW50T2Zmc2V0SW5jbHVkaW5nVGhpcyhhcmd1bWVudCkgKiBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0g
ICAgICAgICAgICAgICAgbG9hZDY0KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCks
IHJlZ1QwKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDApOworICAgICAgICAgICAgICAgIGxvYWQ2NChBZGRyZXNzKGNhbGxGcmFtZVJl
Z2lzdGVyLCBvZmZzZXQpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CiAjZWxpZiBVU0UoSlNW
QUxVRTMyXzY0KQotICAgICAgICAgICAgICAgIGxvYWQzMihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lz
dGVyLCBvZmZzZXQgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkp
LCByZWdUMCk7Ci0gICAgICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0
ZXIsIG9mZnNldCArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgcmVn
VDEpOworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMSwgcmVnVDApOworICAgICAgICAgICAgICAgIGxvYWQzMihBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyLCBvZmZzZXQgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5
bG9hZCkpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgbG9hZDMy
KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCArIE9CSkVDVF9PRkZTRVRPRihKU1Zh
bHVlLCB1LmFzQml0cy50YWcpKSwgcmVzdWx0UmVncy50YWdHUFIoKSk7CiAjZW5kaWYKLSAgICAg
ICAgICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1fY29kZUJsb2NrLT52YWx1ZVByb2Zp
bGVGb3JBcmd1bWVudChhcmd1bWVudCkpOworICAgICAgICAgICAgICAgIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUobV9jb2RlQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KSwg
cmVzdWx0UmVncyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAppbmRleCAwN2E5NjA2YjBkOWUxMTg4MDkzMzNmMjBhYzdlNWY3NjQ2MmFjZDNk
Li44ZDRiMmY1M2YzZDEwNTg0ODVmYTU1YTUzNjE1NGFlMzMyMjkwNDFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKQEAgLTM3NCwxMSArMzc0LDE0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAvLyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdmFsdWUgdG8gcHJvZmlsZSBpcyBpbiByZWdUMCBh
bmQgdGhhdCByZWdUMyBpcyBhdmFpbGFibGUgZm9yCiAgICAgICAgIC8vIHNjcmF0Y2guCiAjaWYg
VVNFKEpTVkFMVUU2NCkKLSAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVl
UHJvZmlsZSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJlZ3MgeyByZWdUMCB9KTsKLSAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJlZ3MgeyByZWdUMCB9
KTsKKworICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiwg
R1BSUmVnKTsKKyAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmls
ZSYsIEpTVmFsdWVSZWdzKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZv
aWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYsIEdQUlJlZyk7CisgICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0
YWRhdGEmLCBKU1ZhbHVlUmVncyk7CiAjZWxzZQotICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUoVmFsdWVQcm9maWxlJiwgSlNWYWx1ZVJlZ3MgdmFsdWUgPSBKU1ZhbHVlUmVncyB7
IHJlZ1QxLCByZWdUMCB9KTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZv
aWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzIHZhbHVlID0g
SlNWYWx1ZVJlZ3MgeyByZWdUMSwgcmVnVDAgfSk7CisgICAgICAgIHZvaWQgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZShWYWx1ZVByb2ZpbGUmLCBKU1ZhbHVlUmVncyk7CisgICAgICAgIHRlbXBsYXRl
PHR5cGVuYW1lIE1ldGFkYXRhPiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEm
LCBKU1ZhbHVlUmVncyk7CiAjZW5kaWYKIAogICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGVJZlByb2ZpbGVkT3Bjb2RlKC4uLik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxs
LmNwcAppbmRleCA1NTY1NzdlYjBhYzk3NDkzOWNmOGZiYjMxZTZhZDY1ZmExZDRhNmFiLi5kMTU5
NjNiZWFkMjUzNWFlNDlmMWIwNWQ1MDUxZjcxYjA1Mzg3NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ2FsbC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiB0ZW1w
bGF0ZTx0eXBlbmFtZSBPcD4KIHZvaWQgSklUOjplbWl0UHV0Q2FsbFJlc3VsdChjb25zdCBPcCYg
Ynl0ZWNvZGUpCiB7Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0
YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spLCByZWdUMCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihk
ZXN0aW5hdGlvbkZvcihieXRlY29kZSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSkudmly
dHVhbFJlZ2lzdGVyKCksIHJlZ1QwKTsKIH0KIApAQCAtNDA1LDcgKzQwNSw3IEBAIHZvaWQgSklU
OjplbWl0X29wX2l0ZXJhdG9yX29wZW4oY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQog
ICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBl
bmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEo
bV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSwgcmVnVDApOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoYnl0
ZWNvZGUubV9uZXh0KTsKIAogICAgIGZhc3RDYXNlLmxpbmsodGhpcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKaW5kZXggZDZhNzVjZTg0ZTRiNTMyMzYwODk5
MjhjY2MzOWM5YTIxMzc4YWUzYS4uYmUzNWZjYTkyZGUxNDg1Zjc1ZDFmMzJlZmVmMmE5YWZkYmUy
ODQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcApAQCAt
NTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogdm9p
ZCBKSVQ6OmVtaXRQdXRDYWxsUmVzdWx0KGNvbnN0IE9wJiBieXRlY29kZSkKIHsKLSAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGVtaXRTdG9yZShkZXN0aW5hdGlvbkZvcihi
eXRlY29kZSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSkudmlydHVhbFJlZ2lzdGVyKCks
IHJlZ1QxLCByZWdUMCk7CiB9CiAKQEAgLTQwMiw2ICs0MDIsOCBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9pdGVyYXRvcl9vcGVuKGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICBHUFJS
ZWcgdGFnTmV4dEdQUiA9IHRhZ0l0ZXJhdG9yR1BSOwogICAgIEdQUlJlZyBwYXlsb2FkTmV4dEdQ
UiA9IHBheWxvYWRJdGVyYXRvckdQUjsKIAorICAgIEpTVmFsdWVSZWdzIG5leHRSZWdzID0gSlNW
YWx1ZVJlZ3ModGFnTmV4dEdQUiwgcGF5bG9hZE5leHRHUFIpOworCiAgICAgSklUR2V0QnlJZEdl
bmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLAogICAgICAgICBDb2RlT3JpZ2luKG1f
Ynl0ZWNvZGVJbmRleCksCkBAIC00MDksMTUgKzQxMSwxNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9p
dGVyYXRvcl9vcGVuKGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAgICAgUmVn
aXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBDYWNoZWFibGVJ
ZGVudGlmaWVyOjpjcmVhdGVGcm9tSW1tb3J0YWxJZGVudGlmaWVyKGlkZW50LT5pbXBsKCkpLAog
ICAgICAgICBKU1ZhbHVlUmVncyh0YWdJdGVyYXRvckdQUiwgcGF5bG9hZEl0ZXJhdG9yR1BSKSwK
LSAgICAgICAgSlNWYWx1ZVJlZ3ModGFnTmV4dEdQUiwgcGF5bG9hZE5leHRHUFIpLAorICAgICAg
ICBuZXh0UmVncywKICAgICAgICAgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAgICAgCiAgICAgZ2Vu
LmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1
bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fbmV4dCwgSlNWYWx1ZVJlZ3ModGFnTmV4dEdQUiwgcGF5
bG9hZE5leHRHUFIpKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSwgbmV4dFJlZ3MpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
Ynl0ZWNvZGUubV9uZXh0LCBuZXh0UmVncyk7CiAKICAgICBmYXN0Q2FzZS5saW5rKHRoaXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCAzYWJiMWY2ZjJjODEw
Njc3Y2U3MzE4NjQ0NzRmZDI0YTc4OTFiMjI2Li5iZWQ1OTI1MGNkN2ZjYTg3MTlkYTFjMGRmMGZk
NzlkYThiZjljN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAt
MTU3LDEwICsxNTcsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+CiBBTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
a1NldEpTVmFsdWVSZXN1bHRXaXRoUHJvZmlsZShNZXRhZGF0YSYgbWV0YWRhdGEsIGNvbnN0IEZ1
bmN0aW9uUHRyPENGdW5jdGlvblB0clRhZz4gZnVuY3Rpb24sIFZpcnR1YWxSZWdpc3RlciBkc3Qp
CiB7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2soZnVuY3Rpb24pOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEp
OwogI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtZXRhZGF0
YSwgSlNWYWx1ZVJlZ3MocmV0dXJuVmFsdWVHUFIpKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGRzdCwgcmV0dXJuVmFsdWVHUFIpOwogI2Vsc2UKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKG1ldGFkYXRhLCBKU1ZhbHVlUmVncyhyZXR1cm5WYWx1ZUdQUjIsIHJldHVyblZhbHVlR1BS
KSk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmV0dXJuVmFsdWVHUFIyLCByZXR1cm5WYWx1ZUdQUik7
CiAjZW5kaWYKICAgICByZXR1cm4gY2FsbDsKQEAgLTMyNyw3ICszMjgsMTEgQEAgaW5saW5lIHZv
aWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYgdmFsdWVQcm9maWxl
LCBKU1ZhbHVlUmVncwogdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiBpbmxpbmUgc3RkOjplbmFibGVf
aWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoT3A6Ok1ldGFkYXRhOjptX3Byb2ZpbGUpLCBWYWx1
ZVByb2ZpbGU+Ojp2YWx1ZSwgdm9pZD4gSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9m
aWxlZE9wY29kZShPcCBieXRlY29kZSkKIHsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVn
VDApOworI2Vsc2UKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRh
KG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisjZW5kaWYKIH0KIAog
aW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSgu
Li4pIHsgfQpAQCAtMzQwLDYgKzM0NSwxOSBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoTWV0YWRhdGEmIG1ldGFkYXRhLCBKU1ZhbHVlUmVncyB2YWx1ZSkKICAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKHZhbHVlUHJvZmlsZUZvcihtZXRhZGF0YSwgbV9ieXRlY29k
ZUluZGV4LmNoZWNrcG9pbnQoKSksIHZhbHVlKTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFNjQpCitp
bmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiB2YWx1
ZVByb2ZpbGUsIEdQUlJlZyByZXN1bHRSZWcpCit7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZSh2YWx1ZVByb2ZpbGUsIEpTVmFsdWVSZWdzKHJlc3VsdFJlZykpOworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZSBNZXRhZGF0YT4KK2lubGluZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShNZXRhZGF0YSYgbWV0YWRhdGEsIEdQUlJlZyByZXN1bHRSZWcpCit7CisgICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShtZXRhZGF0YSwgcmVzdWx0UmVnKTsKK30KKyNlbmRpZgorCiBpbmxpbmUg
dm9pZCBKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklEIGNlbGws
IFJlZ2lzdGVySUQgaW5kZXhpbmdUeXBlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsK
ICAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAppbmRleCA0NzU3YWM2ODI5NDA4YTJkZDNkMGFhNmIyZTY1ZGU2MjQ4
NGFkMzIxLi5iYTEwYzg5YjU2NDY3ZTJlNTE2MGVhYjg1ZTAxZjdkY2VmNzMwODgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTc3Nyw3ICs3NzcsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF90b19udW1iZXIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAKICAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdE51bWJlcihyZWdUMCkp
OwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVC
bG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spLCByZWdUMCk7CiAgICAgaWYgKHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3RWUmVnKTsKIH0KQEAgLTc5Nyw3ICs3OTcsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF90b19udW1lcmljKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3ROdW1iZXIocmVnVDApKTsKICAg
ICBpc0JpZ0ludC5saW5rKHRoaXMpOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRl
Y29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
Ynl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZWdUMCk7CiAgICAgaWYgKHNyY1ZSZWcg
IT0gZHN0VlJlZykKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3RWUmVnKTsKIH0K
QEAgLTgyNCw3ICs4MjQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90b19vYmplY3QoY29uc3QgSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5v
dENlbGwocmVnVDApKTsKICAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdE9iamVjdChyZWdUMCkp
OwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVC
bG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spLCByZWdUMCk7CiAgICAgaWYgKHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3RWUmVnKTsKIH0KQEAgLTg3Myw3ICs4NzMsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9jYXRjaChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgICAgICBidWZmZXItPmZvckVhY2goWyZdIChWYWx1ZVByb2ZpbGVBbmRWaXJ0dWFs
UmVnaXN0ZXImIHByb2ZpbGUpIHsKICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlZ3MocmVnVDAp
OwogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9maWxlLm1fb3BlcmFuZCwg
cmVncyk7Ci0gICAgICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKHN0YXRpY19jYXN0PFZh
bHVlUHJvZmlsZSY+KHByb2ZpbGUpKTsKKyAgICAgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1Np
dGUoc3RhdGljX2Nhc3Q8VmFsdWVQcm9maWxlJj4ocHJvZmlsZSksIHJlZ3MpOwogICAgICAgICB9
KTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkBAIC0xNTM5LDcgKzE1MzksNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbG9hZDY0KEJhc2VJbmRleChyZWdUMCwgcmVnVDEsIFRp
bWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9wZXJ0eSksIHJlZ1QwKTsKICAgICAKICAgICBkb25l
LmxpbmsodGhpcyk7Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0
YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spLCByZWdUMCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihk
c3QsIHJlZ1QwKTsKIH0KIApAQCAtMTc1OSw3ICsxNzU5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
Z2V0X2FyZ3VtZW50KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
bW92ZVZhbHVlKGpzVW5kZWZpbmVkKCksIHJlc3VsdFJlZ3MpOwogCiAgICAgZG9uZS5saW5rKHRo
aXMpOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2Rl
QmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1f
Y29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3Qs
IHJlc3VsdFJlZ3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMzMl82NC5jcHAKaW5kZXggMDUyYzBlZDAzYTY2YTIyMjdhN2Y2M2RjZmMwYjE2YWEwYzBiODNh
NS4uZWJmYzBiNjkwMWM1MTRhYWVhNDllZDFkNTVkNmI4Nzc5NGEzNmZmMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtODYwLDcgKzg2MCw3
IEBAIHZvaWQgSklUOjplbWl0X29wX3RvX251bWJlcihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVn
VDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7CiAgICAgaXNJbnQzMi5saW5r
KHRoaXMpOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRh
dGEobV9jb2RlQmxvY2spLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBpZiAoc3Jj
ICE9IGRzdCkKICAgICAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KQEAgLTg4
Miw3ICs4ODIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90b19udW1lcmljKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3ROdW1i
ZXIoYXJndW1lbnRWYWx1ZVJlZ3MsIHJlZ1QyKSk7CiAgICAgaXNCaWdJbnQubGluayh0aGlzKTsK
IAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxv
Y2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAgICAgaWYgKHNyYyAhPSBkc3Qp
CiAgICAgICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9CkBAIC05MTMsNyArOTEz
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdG9fb2JqZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RDZWxsKHJlZ1QxKSk7
CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RPYmplY3QocmVnVDApKTsKIAotICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAgICAgaWYgKHNyYyAhPSBkc3QpCiAgICAgICAgIGVt
aXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9CkBAIC05NzAsNyArOTcwLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfY2F0Y2goY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICAgICAgYnVmZmVyLT5mb3JFYWNoKFsmXSAoVmFsdWVQcm9maWxlQW5kVmlydHVhbFJlZ2lz
dGVyJiBwcm9maWxlKSB7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZWdzKHJlZ1QxLCByZWdU
MCk7CiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb2ZpbGUubV9vcGVyYW5k
LCByZWdzKTsKLSAgICAgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoc3RhdGljX2Nhc3Q8
VmFsdWVQcm9maWxlJj4ocHJvZmlsZSkpOworICAgICAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShzdGF0aWNfY2FzdDxWYWx1ZVByb2ZpbGUmPihwcm9maWxlKSwgcmVncyk7CiAgICAgICAg
IH0pOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKQEAgLTEyOTgsNyArMTI5OCw3
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBsb2FkMzIoQmFzZUluZGV4KHJlZ1QwLCByZWdUMiwg
VGltZXNFaWdodCwgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFs
dWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgcmVnVDApOwogICAgIAogICAgIGRvbmUubGluayh0aGlz
KTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJs
b2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2Nv
ZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGVtaXRTdG9yZShkc3Qs
IHJlZ1QxLCByZWdUMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggNjEyYzQ4ZmZhMmI4ODI4OTcyOGU2ZDgwOTJmYTQyZmM1
M2I0Yzg2Yi4uNzUwMmU0ODBlYzM0NDU0N2MyYzVlYzE4NzkxN2JhMGY5M2U5NTE4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTY0
LDE2ICs2NCwxOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpT
Q2VsbChyZWdUMCwgYmFzZSk7CiAgICAgICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2Vs
bChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogCisgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJl
Z3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisKICAgICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3Ig
Z2VuKAogICAgICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4
KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwg
UmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSksIEpTVmFsdWVSZWdzKHJlZ1QwKSk7
CisgICAgICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSwgcmVz
dWx0UmVncyk7CiAgICAgICAgIGlmIChpc09wZXJhbmRDb25zdGFudEludChwcm9wZXJ0eSkpCiAg
ICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKICAgICAg
ICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgICAgICBhZGRTbG93Q2FzZShnZW4u
c2xvd1BhdGhKdW1wKCkpOwogICAgICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAg
ICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2Nr
KSk7CisgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spLCByZXN1bHRSZWdzKTsKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihk
c3QpOwogICAgIH0KIApAQCAtMTEwLDE0ICsxMTIsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X3ByaXZhdGVfbmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAg
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKIAorICAgIEpTVmFs
dWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisKICAgICBKSVRHZXRCeVZh
bEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNv
ZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6R2V0
UHJpdmF0ZU5hbWUsCi0gICAgICAgIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BSKSwgSlNW
YWx1ZVJlZ3MocmVnVDApKTsKKyAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJl
Z2lzdGVycygpLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlHUFIp
LCByZXN1bHRSZWdzKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRk
U2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2Vu
KTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2Rl
QmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1f
Y29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3Qp
OwogfQogCkBAIC01NzAsMTQgKzU3NCwxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5
X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0SnVt
cFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2VWUmVnKTsKIAorICAgIEpTVmFsdWVSZWdz
IHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisKICAgICBKSVRHZXRCeUlkR2VuZXJh
dG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4
KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZh
aWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZy
b21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1
ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIEFjY2Vzc1R5cGU6OlRyeUdldEJ5SWQp
OworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVk
QnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgcmVz
dWx0UmVncywgQWNjZXNzVHlwZTo6VHJ5R2V0QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBh
dGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9n
ZXRCeUlkcy5hcHBlbmQoZ2VuKTsKICAgICAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOwogICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0VlJlZyk7CiB9CiAKQEAgLTYwOSwxNCArNjE1LDE2IEBA
IHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdU
MCwgYmFzZVZSZWcpOwogCisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVC
bG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNv
ZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAg
ICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJs
b2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdz
KHJlZ1QwKSwgQWNjZXNzVHlwZTo6R2V0QnlJZERpcmVjdCk7CisgICAgICAgIENhY2hlYWJsZUlk
ZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9j
aywgKmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NUeXBlOjpH
ZXRCeUlkRGlyZWN0KTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRk
U2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4p
OwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVC
bG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spLCByZXN1bHRSZWdzKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3Vs
dFZSZWcpOwogfQogCkBAIC02NTUsMTQgKzY2MywxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRf
YnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbm90
QXJyYXlMZW5ndGhNb2RlLmxpbmsodGhpcyk7CiAgICAgfQogCisgICAgSlNWYWx1ZVJlZ3MgcmVz
dWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBD
YWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFi
bGVSZWdpc3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlk
ZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVn
cyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CisgICAg
ICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVC
bG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCByZXN1bHRSZWdz
LCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7
CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFw
cGVuZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0
YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdzKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKHJlc3VsdFZSZWcpOwogfQogCkBAIC02NzksMTQgKzY4OSwxNiBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9nZXRfYnlfaWRfd2l0aF90aGlzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlVlJlZyk7
CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QxLCB0aGlzVlJlZyk7CiAKKyAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworCiAgICAgSklU
R2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVP
cmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBS
ZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJs
ZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVC
bG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QxKSk7CisgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZy
b21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgcmVzdWx0
UmVncywgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSkpOwogICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1w
KCkpOwogICAgIG1fZ2V0QnlJZHNXaXRoVGhpcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0
UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHRWUmVnKTsKIH0KIApAQCAt
MTA3MSw3ICsxMDgzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKG1ldGFkYXRhKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCByZWdU
MCk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJiBpdGVyKQpAQCAtMTI1Miw3ICsxMjY0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zy
b21fYXJndW1lbnRzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihhcmd1bWVudHMsIHJlZ1QwKTsKICAgICBsb2Fk
NjQoQWRkcmVzcyhyZWdUMCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRl
eCAqIHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pKSwgcmVnVDApOwotICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVnVDAp
OwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKIH0KIApAQCAtMTMxOCw3ICsxMzMw
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNl
LCByZWdUMSk7CiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBKU0ludGVybmFsRmllbGRPYmpl
Y3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChpbmRleCkpLCByZWdUMCk7CiAKLSAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKG1ldGFkYXRhLCByZWdUMCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
czMyXzY0LmNwcAppbmRleCAzNmFlMjk2MmE0YWI1OGIxNGM2ZDA4MjI5NjIyOGQyNDY3ZDA3M2Iz
Li5iMTRhNTA2MzQ5NDUxNTkzODNlN2QwOWFiNWI5ZGU0YzM1MGRkZTgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAg
LTI1NCwxNiArMjU0LDE4IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKICAgICAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdp
dGhDZWxsKHJlZ1QwLCByZWdUNCwgcHJvZmlsZSk7CiAKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcmVz
dWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisKICAgICAgICAgSklUR2V0QnlW
YWxHZW5lcmF0b3IgZ2VuKAogICAgICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9i
eXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBl
OjpHZXRCeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVn
VDMsIHJlZ1QyKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisgICAgICAgICAgICBKU1Zh
bHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLCBy
ZXN1bHRSZWdzKTsKICAgICAgICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KHByb3BlcnR5KSkK
ICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOwogICAg
ICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgICAgIGFkZFNsb3dDYXNlKGdl
bi5zbG93UGF0aEp1bXAoKSk7CiAgICAgICAgIG1fZ2V0QnlWYWxzLmFwcGVuZChnZW4pOwogCi0g
ICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxv
Y2spKTsKKyAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOwogICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwg
cmVnVDApOwogICAgIH0KIH0KQEAgLTMwMCwxNSArMzAyLDE3IEBAIHZvaWQgSklUOjplbWl0X29w
X2dldF9wcml2YXRlX25hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
IAogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKKyAgICBK
U1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKwogICAg
IEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmln
aW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nl
c3NUeXBlOjpHZXRQcml2YXRlTmFtZSwKLSAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWls
YWJsZVJlZ2lzdGVycygpLCBiYXNlR1BSLCBwcm9wZXJ0eUdQUiwgSlNWYWx1ZVJlZ3MocmVnVDEs
IHJlZ1QwKSk7CisgICAgICAgIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMo
KSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHJlc3VsdFJlZ3MpOwogICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAg
IG1fZ2V0QnlWYWxzLmFwcGVuZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShi
eXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwotICAgIGVtaXRTdG9yZShkc3QsIHJlZ1Qx
LCByZWdUMCk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3Mu
dGFnR1BSKCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIAogCkBAIC01NzksMTUgKzU4
MywxNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsK
ICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCisgICAgSlNW
YWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisKICAgICBK
SVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4o
bV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3Rl
clNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50
aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywg
KmlkZW50KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVn
VDEsIHJlZ1QwKSwgQWNjZXNzVHlwZTo6VHJ5R2V0QnlJZCk7CisgICAgICAgIENhY2hlYWJsZUlk
ZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9j
aywgKmlkZW50KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgcmVzdWx0UmVncywg
QWNjZXNzVHlwZTo6VHJ5R2V0QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5h
cHBlbmQoZ2VuKTsKICAgICAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1l
dGFkYXRhKG1fY29kZUJsb2NrKSk7Ci0gICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsK
KyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2Nr
KSwgcmVzdWx0UmVncyk7CisgICAgZW1pdFN0b3JlKGRzdCwgcmVzdWx0UmVncy50YWdHUFIoKSwg
cmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdHJ5
X2dldF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtNjE4LDE1ICs2MjQsMTcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1p
dEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKIAorICAgIEpTVmFsdWVSZWdz
IHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworCiAgICAgSklUR2V0QnlJ
ZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNv
ZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0
dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpj
cmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCks
IEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCksIEFjY2Vzc1R5cGU6OkdldEJ5SWREaXJlY3QpOworICAgICAgICBDYWNoZWFibGVJZGVudGlm
aWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICpp
ZGVudCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIHJlc3VsdFJlZ3MsIEFjY2Vz
c1R5cGU6OkdldEJ5SWREaXJlY3QpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
ICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBw
ZW5kKGdlbik7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRh
KG1fY29kZUJsb2NrKSk7Ci0gICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVz
dWx0UmVncyk7CisgICAgZW1pdFN0b3JlKGRzdCwgcmVzdWx0UmVncy50YWdHUFIoKSwgcmVzdWx0
UmVncy5wYXlsb2FkR1BSKCkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X2lk
X2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtNjY0LDE1ICs2NzIsMTYgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgICAgIG5vdEFycmF5TGVuZ3RoTW9kZS5saW5rKHRoaXMpOwogICAgIH0KIAorICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAg
IEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdp
bihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lz
dGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxlSWRl
bnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2Nr
LCAqaWRlbnQpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhy
ZWdUMSwgcmVnVDApLCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsKKyAgICAgICAgQ2FjaGVhYmxlSWRl
bnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2Nr
LCAqaWRlbnQpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCByZXN1bHRSZWdzLCBB
Y2Nlc3NUeXBlOjpHZXRCeUlkKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAg
ICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVu
ZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jaykpOwotICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3Vs
dFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZChj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtNzA1LDE1ICs3MTQsMTcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAgICAg
ZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHRoaXNWUmVnLCByZWdUNCk7CiAKKyAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKwogICAgIEpJ
VEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwg
UmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBDYWNoZWFi
bGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2Rl
QmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzOjpw
YXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1Q0LCByZWdUMykpOworICAgICAgICBD
YWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2so
bV9jb2RlQmxvY2ssICppZGVudCksIHJlc3VsdFJlZ3MsIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25s
eShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1Q0LCByZWdUMykpOwogICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAg
IG1fZ2V0QnlJZHNXaXRoVGhpcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0U3RvcmUoZHN0
LCByZWdUMSwgcmVnVDApOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdzKTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZXN1
bHRSZWdzLnRhZ0dQUigpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CiB9CiAKIHZvaWQgSklU
OjplbWl0U2xvd19vcF9nZXRfYnlfaWRfd2l0aF90aGlzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBA
IC0xMDgzLDcgKzEwOTQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShjb25z
dCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBlbWl0Q29kZShyZXNv
bHZlVHlwZSwgZmFsc2UpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1ZhbHVlUmVn
cyhyZWdUMSwgcmVnVDApKTsKICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQog
CkBAIC0xMjYzLDEyICsxMjc0LDE0IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX2FyZ3Vt
ZW50cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIFZpcnR1YWxS
ZWdpc3RlciBkc3QgPSBieXRlY29kZS5tX2RzdDsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgYXJndW1l
bnRzID0gYnl0ZWNvZGUubV9hcmd1bWVudHM7CiAgICAgaW50IGluZGV4ID0gYnl0ZWNvZGUubV9p
bmRleDsKKworICAgIEpTVmFsdWVSZWdzIHJlc3V0bFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwg
cmVnVDApOwogICAgIAogICAgIGVtaXRMb2FkUGF5bG9hZChhcmd1bWVudHMsIHJlZ1QwKTsKLSAg
ICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkg
KyBpbmRleCAqIHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pICsgVGFnT2Zmc2V0KSwgcmVn
VDEpOwotICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VP
ZmZzZXQoKSArIGluZGV4ICogc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikgKyBQYXlsb2Fk
T2Zmc2V0KSwgcmVnVDApOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwor
ICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQo
KSArIGluZGV4ICogc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikgKyBUYWdPZmZzZXQpLCBy
ZXN1dGxSZWdzLnRhZ0dQUigpKTsKKyAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgRGlyZWN0QXJn
dW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRleCAqIHNpemVvZihXcml0ZUJhcnJpZXI8VW5r
bm93bj4pICsgUGF5bG9hZE9mZnNldCksIHJlc3V0bFJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVz
dXRsUmVncyk7CisgICAgZW1pdFN0b3JlKGRzdCwgcmVzdXRsUmVncy50YWdHUFIoKSwgcmVzdXRs
UmVncy5wYXlsb2FkR1BSKCkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfdG9fYXJndW1l
bnRzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0xMjk0LDExICsx
MzA3LDEzIEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9pbnRlcm5hbF9maWVsZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIFZpcnR1YWxSZWdpc3RlciBiYXNlID0g
Ynl0ZWNvZGUubV9iYXNlOwogICAgIHVuc2lnbmVkIGluZGV4ID0gYnl0ZWNvZGUubV9pbmRleDsK
IAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDAp
OworCiAgICAgZW1pdExvYWRQYXlsb2FkKGJhc2UsIHJlZ1QyKTsKLSAgICBsb2FkMzIoQWRkcmVz
cyhyZWdUMiwgSlNJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbDw+OjpvZmZzZXRPZkludGVybmFsRmll
bGQoaW5kZXgpICsgVGFnT2Zmc2V0KSwgcmVnVDEpOwotICAgIGxvYWQzMihBZGRyZXNzKHJlZ1Qy
LCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChpbmRl
eCkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDApOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
bWV0YWRhdGEpOwotICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgbG9hZDMy
KEFkZHJlc3MocmVnVDIsIEpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGw8Pjo6b2Zmc2V0T2ZJbnRl
cm5hbEZpZWxkKGluZGV4KSArIFRhZ09mZnNldCksIHJlc3VsdFJlZ3MudGFnR1BSKCkpOworICAg
IGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsPD46Om9mZnNl
dE9mSW50ZXJuYWxGaWVsZChpbmRleCkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVzdWx0UmVncy5wYXls
b2FkR1BSKCkpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEsIHJlc3VsdFJl
Z3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3Mu
cGF5bG9hZEdQUigpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2ludGVybmFsX2ZpZWxk
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415552</attachid>
            <date>2020-12-07 05:10:22 -0800</date>
            <delta_ts>2020-12-08 06:31:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219550-20201207101020.patch</filename>
            <type>text/plain</type>
            <size>32300</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZmFkMDdkMmJlNGJkZDkzZmI0ZDc0NjliMDQ2ZDFiYzc3MmQ0ODBmLi4zZjAwNGQyYTUxYThhYTdh
ZGZlNWZmMzZhNDBhZTc1ZTRhNTc1OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMC0xMi0wNyAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pJVF0gUmVxdWlyZSB2YWx1ZSByZWdpc3RlcnMgZXhwbGljaXRseSBvbiBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTk1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHJlbW92aW5nIHRoZSBkZWZhdWx0IHZhbHVlIGZv
ciBgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZWAKKyAgICAgICAgdG8gYXZvaWQgYnVncyBsaWtlIHIy
NzA0MjMgYW5kIHIyNzA0MzEuCisKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlV2l0aG91dExpbmtpbmcpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAg
ICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENhbGxS
ZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6CisgICAg
ICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENh
bGxSZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6Cisg
ICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjphcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CisgICAgICAgICogaml0L0pJ
VE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9fbnVtYmVyKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWVyaWMpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfdG9fb2JqZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NhdGNoKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2FyZ3VtZW50KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWJlcik6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19udW1lcmljKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX3RvX29iamVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jYXRjaCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKToKKyAgICAgICAgKiBq
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJpdmF0ZV9uYW1lKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dp
dGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9hcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKToKKyAgICAgICAgKiBqaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfZGlyZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0
aF90aGlzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX2FyZ3VtZW50cyk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfaW50ZXJuYWxfZmllbGQpOgorCiAyMDIwLTEyLTA0ICBDYWlv
IExpbWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAgICAgICBbSklUXSBWYWx1ZSBwcm9m
aWxlIHN0b3JlcyB3cm9uZyB2YWx1ZSBpbiBCYXNlbGluZUpJVCBmb3Igc29tZSBvcGVyYXRpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggY2U4N2M4NzY0Nzc1ZmFmYjBjODc5ZjU5
ZTlmOTRhMzkwOGY4NmNjMy4uMmE1ZmMyOTMwODMwZGM3NWNiYWVkYjMwNmE3MWE2MjE4OGQ5ZTU1
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNzU2LDEyICs3NTYsMTQgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVXaXRob3V0TGlua2luZyhKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQp
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGludCBvZmZz
ZXQgPSBDYWxsRnJhbWU6OmFyZ3VtZW50T2Zmc2V0SW5jbHVkaW5nVGhpcyhhcmd1bWVudCkgKiBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0g
ICAgICAgICAgICAgICAgbG9hZDY0KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCks
IHJlZ1QwKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1
ZVJlZ3MocmVnVDApOworICAgICAgICAgICAgICAgIGxvYWQ2NChBZGRyZXNzKGNhbGxGcmFtZVJl
Z2lzdGVyLCBvZmZzZXQpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CiAjZWxpZiBVU0UoSlNW
QUxVRTMyXzY0KQotICAgICAgICAgICAgICAgIGxvYWQzMihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lz
dGVyLCBvZmZzZXQgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkp
LCByZWdUMCk7Ci0gICAgICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0
ZXIsIG9mZnNldCArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgcmVn
VDEpOworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVn
cyhyZWdUMSwgcmVnVDApOworICAgICAgICAgICAgICAgIGxvYWQzMihBZGRyZXNzKGNhbGxGcmFt
ZVJlZ2lzdGVyLCBvZmZzZXQgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5
bG9hZCkpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICAgICAgbG9hZDMy
KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCArIE9CSkVDVF9PRkZTRVRPRihKU1Zh
bHVlLCB1LmFzQml0cy50YWcpKSwgcmVzdWx0UmVncy50YWdHUFIoKSk7CiAjZW5kaWYKLSAgICAg
ICAgICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1fY29kZUJsb2NrLT52YWx1ZVByb2Zp
bGVGb3JBcmd1bWVudChhcmd1bWVudCkpOworICAgICAgICAgICAgICAgIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUobV9jb2RlQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KSwg
cmVzdWx0UmVncyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAppbmRleCAwN2E5NjA2YjBkOWUxMTg4MDkzMzNmMjBhYzdlNWY3NjQ2MmFjZDNk
Li5hZmFiZDczNDAwZDdhMGZiYjVlZGMwNmJhYTU2NGFhZmZlNTQ1Y2I1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKQEAgLTM3NCwxMSArMzc0LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAvLyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdmFsdWUgdG8gcHJvZmlsZSBpcyBpbiByZWdUMCBh
bmQgdGhhdCByZWdUMyBpcyBhdmFpbGFibGUgZm9yCiAgICAgICAgIC8vIHNjcmF0Y2guCiAjaWYg
VVNFKEpTVkFMVUU2NCkKLSAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVl
UHJvZmlsZSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJlZ3MgeyByZWdUMCB9KTsKLSAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJlZ3MgeyByZWdUMCB9
KTsKKyAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYsIEdQ
UlJlZyk7CisgICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2ZpbGUm
LCBKU1ZhbHVlUmVncyk7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPiB2b2lk
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEmLCBHUFJSZWcpOworICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFk
YXRhJiwgSlNWYWx1ZVJlZ3MpOwogI2Vsc2UKLSAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKFZhbHVlUHJvZmlsZSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJlZ3MgeyBy
ZWdUMSwgcmVnVDAgfSk7Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPiB2b2lk
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEmLCBKU1ZhbHVlUmVncyB2YWx1ZSA9IEpT
VmFsdWVSZWdzIHsgcmVnVDEsIHJlZ1QwIH0pOworICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUoVmFsdWVQcm9maWxlJiwgSlNWYWx1ZVJlZ3MpOworICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNZXRhZGF0YT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwg
SlNWYWx1ZVJlZ3MpOwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlSWZQcm9maWxlZE9wY29kZSguLi4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDYWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5j
cHAKaW5kZXggNTU2NTc3ZWIwYWM5NzQ5MzljZjhmYmIzMWU2YWQ2NWZhMWQ0YTZhYi4uZDE1OTYz
YmVhZDI1MzVhZTQ5ZjFiMDVkNTA1MWY3MWIwNTM4NzU2OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENhbGwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogdGVtcGxh
dGU8dHlwZW5hbWUgT3A+CiB2b2lkIEpJVDo6ZW1pdFB1dENhbGxSZXN1bHQoY29uc3QgT3AmIGJ5
dGVjb2RlKQogewotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEo
bV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSwgcmVnVDApOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZGVz
dGluYXRpb25Gb3IoYnl0ZWNvZGUsIG1fYnl0ZWNvZGVJbmRleC5jaGVja3BvaW50KCkpLnZpcnR1
YWxSZWdpc3RlcigpLCByZWdUMCk7CiB9CiAKQEAgLTQwNSw3ICs0MDUsNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9pdGVyYXRvcl9vcGVuKGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAg
ICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5k
KGdlbik7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1f
Y29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0
YShtX2NvZGVCbG9jayksIHJlZ1QwKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGJ5dGVj
b2RlLm1fbmV4dCk7CiAKICAgICBmYXN0Q2FzZS5saW5rKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCmluZGV4IGQ2YTc1Y2U4NGU0YjUzMjM2MDg5OTI4
Y2NjMzljOWEyMTM3OGFlM2EuLmJlMzVmY2E5MmRlMTQ4NWY3NWQxZjMyZWZlZjJhOWFmZGJlMjg0
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKQEAgLTUy
LDcgKzUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KIHZvaWQg
SklUOjplbWl0UHV0Q2FsbFJlc3VsdChjb25zdCBPcCYgYnl0ZWNvZGUpCiB7Ci0gICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBlbWl0U3RvcmUoZGVzdGluYXRpb25Gb3IoYnl0
ZWNvZGUsIG1fYnl0ZWNvZGVJbmRleC5jaGVja3BvaW50KCkpLnZpcnR1YWxSZWdpc3RlcigpLCBy
ZWdUMSwgcmVnVDApOwogfQogCkBAIC00MDIsNiArNDAyLDggQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
aXRlcmF0b3Jfb3Blbihjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgR1BSUmVn
IHRhZ05leHRHUFIgPSB0YWdJdGVyYXRvckdQUjsKICAgICBHUFJSZWcgcGF5bG9hZE5leHRHUFIg
PSBwYXlsb2FkSXRlcmF0b3JHUFI7CiAKKyAgICBKU1ZhbHVlUmVncyBuZXh0UmVncyA9IEpTVmFs
dWVSZWdzKHRhZ05leHRHUFIsIHBheWxvYWROZXh0R1BSKTsKKwogICAgIEpJVEdldEJ5SWRHZW5l
cmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywKICAgICAgICAgQ29kZU9yaWdpbihtX2J5
dGVjb2RlSW5kZXgpLApAQCAtNDA5LDE1ICs0MTEsMTUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaXRl
cmF0b3Jfb3Blbihjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgICAgIFJlZ2lz
dGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgQ2FjaGVhYmxlSWRl
bnRpZmllcjo6Y3JlYXRlRnJvbUltbW9ydGFsSWRlbnRpZmllcihpZGVudC0+aW1wbCgpKSwKICAg
ICAgICAgSlNWYWx1ZVJlZ3ModGFnSXRlcmF0b3JHUFIsIHBheWxvYWRJdGVyYXRvckdQUiksCi0g
ICAgICAgIEpTVmFsdWVSZWdzKHRhZ05leHRHUFIsIHBheWxvYWROZXh0R1BSKSwKKyAgICAgICAg
bmV4dFJlZ3MsCiAgICAgICAgIEFjY2Vzc1R5cGU6OkdldEJ5SWQpOwogICAgIAogICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1w
KCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7Ci0gICAgZW1pdFB1dFZpcnR1
YWxSZWdpc3RlcihieXRlY29kZS5tX25leHQsIEpTVmFsdWVSZWdzKHRhZ05leHRHUFIsIHBheWxv
YWROZXh0R1BSKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0
YShtX2NvZGVCbG9jayksIG5leHRSZWdzKTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGJ5
dGVjb2RlLm1fbmV4dCwgbmV4dFJlZ3MpOwogCiAgICAgZmFzdENhc2UubGluayh0aGlzKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggM2FiYjFmNmYyYzgxMDY3
N2NlNzMxODY0NDc0ZmQyNGE3ODkxYjIyNi4uYmVkNTkyNTBjZDdmY2E4NzE5ZGExYzBkZjBmZDc5
ZGE4YmY5YzdhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTE1
NywxMCArMTU3LDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPgogQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tT
ZXRKU1ZhbHVlUmVzdWx0V2l0aFByb2ZpbGUoTWV0YWRhdGEmIG1ldGFkYXRhLCBjb25zdCBGdW5j
dGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBWaXJ0dWFsUmVnaXN0ZXIgZHN0KQog
ewogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKGZ1bmN0aW9uKTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhKTsK
ICNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEs
IEpTVmFsdWVSZWdzKHJldHVyblZhbHVlR1BSKSk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rl
cihkc3QsIHJldHVyblZhbHVlR1BSKTsKICNlbHNlCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShtZXRhZGF0YSwgSlNWYWx1ZVJlZ3MocmV0dXJuVmFsdWVHUFIyLCByZXR1cm5WYWx1ZUdQUikp
OwogICAgIGVtaXRTdG9yZShkc3QsIHJldHVyblZhbHVlR1BSMiwgcmV0dXJuVmFsdWVHUFIpOwog
I2VuZGlmCiAgICAgcmV0dXJuIGNhbGw7CkBAIC0zMjcsNyArMzI4LDExIEBAIGlubGluZSB2b2lk
IEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZSwg
SlNWYWx1ZVJlZ3MKIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogaW5saW5lIHN0ZDo6ZW5hYmxlX2lm
X3Q8c3RkOjppc19zYW1lPGRlY2x0eXBlKE9wOjpNZXRhZGF0YTo6bV9wcm9maWxlKSwgVmFsdWVQ
cm9maWxlPjo6dmFsdWUsIHZvaWQ+IEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmls
ZWRPcGNvZGUoT3AgYnl0ZWNvZGUpCiB7Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRl
Y29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlZ1Qw
KTsKKyNlbHNlCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOworI2VuZGlmCiB9CiAKIGlu
bGluZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUoLi4u
KSB7IH0KQEAgLTM0MCw2ICszNDUsMTkgQEAgaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKE1ldGFkYXRhJiBtZXRhZGF0YSwgSlNWYWx1ZVJlZ3MgdmFsdWUpCiAgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZSh2YWx1ZVByb2ZpbGVGb3IobWV0YWRhdGEsIG1fYnl0ZWNvZGVJ
bmRleC5jaGVja3BvaW50KCkpLCB2YWx1ZSk7CiB9CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQoraW5s
aW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYgdmFsdWVQ
cm9maWxlLCBHUFJSZWcgcmVzdWx0UmVnKQoreworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
dmFsdWVQcm9maWxlLCBKU1ZhbHVlUmVncyhyZXN1bHRSZWcpKTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgTWV0YWRhdGE+CitpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
TWV0YWRhdGEmIG1ldGFkYXRhLCBHUFJSZWcgcmVzdWx0UmVnKQoreworICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUobWV0YWRhdGEsIHJlc3VsdFJlZyk7Cit9CisjZW5kaWYKKwogaW5saW5lIHZv
aWQgSklUOjplbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoUmVnaXN0ZXJJRCBjZWxsLCBS
ZWdpc3RlcklEIGluZGV4aW5nVHlwZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAg
ICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAKaW5kZXggNDc1N2FjNjgyOTQwOGEyZGQzZDBhYTZiMmU2NWRlNjI0ODRh
ZDMyMS4uYmExMGM4OWI1NjQ2N2UyZTUxNjBlYWI4NWUwMWY3ZGNlZjczMDg4MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC03NzcsNyArNzc3LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfdG9fbnVtYmVyKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3ROdW1iZXIocmVnVDApKTsK
IAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxv
Y2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSwgcmVnVDApOwogICAgIGlmIChzcmNWUmVnICE9IGRzdFZSZWcpCiAgICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0VlJlZyk7CiB9CkBAIC03OTcsNyArNzk3LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfdG9fbnVtZXJpYyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90TnVtYmVyKHJlZ1QwKSk7CiAgICAg
aXNCaWdJbnQubGluayh0aGlzKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNv
ZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVnVDApOwogICAgIGlmIChzcmNWUmVnICE9
IGRzdFZSZWcpCiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0VlJlZyk7CiB9CkBA
IC04MjQsNyArODI0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdG9fb2JqZWN0KGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RD
ZWxsKHJlZ1QwKSk7CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RPYmplY3QocmVnVDApKTsK
IAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxv
Y2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSwgcmVnVDApOwogICAgIGlmIChzcmNWUmVnICE9IGRzdFZSZWcpCiAgICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0VlJlZyk7CiB9CkBAIC04NzMsNyArODczLDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfY2F0Y2goY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICAgICAgYnVmZmVyLT5mb3JFYWNoKFsmXSAoVmFsdWVQcm9maWxlQW5kVmlydHVhbFJl
Z2lzdGVyJiBwcm9maWxlKSB7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZWdzKHJlZ1QwKTsK
ICAgICAgICAgICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvZmlsZS5tX29wZXJhbmQsIHJl
Z3MpOwotICAgICAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShzdGF0aWNfY2FzdDxWYWx1
ZVByb2ZpbGUmPihwcm9maWxlKSk7CisgICAgICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KHN0YXRpY19jYXN0PFZhbHVlUHJvZmlsZSY+KHByb2ZpbGUpLCByZWdzKTsKICAgICAgICAgfSk7
CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpAQCAtMTUzOSw3ICsxNTM5LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2RpcmVjdF9wbmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIGxvYWQ2NChCYXNlSW5kZXgocmVnVDAsIHJlZ1QxLCBUaW1l
c0VpZ2h0LCBvZmZzZXRPZkZpcnN0UHJvcGVydHkpLCByZWdUMCk7CiAgICAgCiAgICAgZG9uZS5s
aW5rKHRoaXMpOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEo
bV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSwgcmVnVDApOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0
LCByZWdUMCk7CiB9CiAKQEAgLTE3NTksNyArMTc1OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dl
dF9hcmd1bWVudChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIG1v
dmVWYWx1ZShqc1VuZGVmaW5lZCgpLCByZXN1bHRSZWdzKTsKIAogICAgIGRvbmUubGluayh0aGlz
KTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJs
b2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2Nv
ZGVCbG9jayksIHJlc3VsdFJlZ3MpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCBy
ZXN1bHRSZWdzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwCmluZGV4IDA1MmMwZWQwM2E2NmEyMjI3YTdmNjNkY2ZjMGIxNmFhMGMwYjgzYTUu
LmViZmMwYjY5MDFjNTE0YWFlYTQ5ZWQxZDU1ZDZiODc3OTRhMzZmZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTg2MCw3ICs4NjAsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF90b19udW1iZXIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ1Qx
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSkpOwogICAgIGlzSW50MzIubGluayh0
aGlzKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRh
KG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAgICAgaWYgKHNyYyAh
PSBkc3QpCiAgICAgICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9CkBAIC04ODIs
NyArODgyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdG9fbnVtZXJpYyhjb25zdCBJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90TnVtYmVy
KGFyZ3VtZW50VmFsdWVSZWdzLCByZWdUMikpOwogICAgIGlzQmlnSW50LmxpbmsodGhpcyk7CiAK
LSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2Nr
KSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVC
bG9jayksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGlmIChzcmMgIT0gZHN0KQog
ICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQpAQCAtOTEzLDcgKzkxMyw3
IEBAIHZvaWQgSklUOjplbWl0X29wX3RvX29iamVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMSkpOwog
ICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90T2JqZWN0KHJlZ1QwKSk7CiAKLSAgICBlbWl0VmFs
dWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpTVmFs
dWVSZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGlmIChzcmMgIT0gZHN0KQogICAgICAgICBlbWl0
U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQpAQCAtOTcwLDcgKzk3MCw3IEBAIHZvaWQgSklU
OjplbWl0X29wX2NhdGNoKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgICAgIGJ1ZmZlci0+Zm9yRWFjaChbJl0gKFZhbHVlUHJvZmlsZUFuZFZpcnR1YWxSZWdpc3Rl
ciYgcHJvZmlsZSkgewogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVncyhyZWdUMSwgcmVnVDAp
OwogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9maWxlLm1fb3BlcmFuZCwg
cmVncyk7Ci0gICAgICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKHN0YXRpY19jYXN0PFZh
bHVlUHJvZmlsZSY+KHByb2ZpbGUpKTsKKyAgICAgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1Np
dGUoc3RhdGljX2Nhc3Q8VmFsdWVQcm9maWxlJj4ocHJvZmlsZSksIHJlZ3MpOwogICAgICAgICB9
KTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkBAIC0xMjk4LDcgKzEyOTgsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbG9hZDMyKEJhc2VJbmRleChyZWdUMCwgcmVnVDIsIFRp
bWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9wZXJ0eSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVl
LCB1LmFzQml0cy5wYXlsb2FkKSksIHJlZ1QwKTsKICAgICAKICAgICBkb25lLmxpbmsodGhpcyk7
Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9j
aykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2Rl
QmxvY2spLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBlbWl0U3RvcmUoZHN0LCBy
ZWdUMSwgcmVnVDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwCmluZGV4IDYxMmM0OGZmYTJiODgyODk3MjhlNmQ4MDkyZmE0MmZjNTNi
NGM4NmIuLjc1MDJlNDgwZWMzNDQ1NDdjMmM1ZWMxODc5MTdiYTBmOTNlOTUxOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC02NCwx
NiArNjQsMTggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0Nl
bGwocmVnVDAsIGJhc2UpOwogICAgICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwo
cmVnVDAsIHJlZ1QyLCBwcm9maWxlKTsKIAorICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDApOworCiAgICAgICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdl
bigKICAgICAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCks
IENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6R2V0QnlWYWwsIFJl
Z2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgICAgIEpTVmFs
dWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEpLCBKU1ZhbHVlUmVncyhyZWdUMCkpOwor
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSksIHJlc3Vs
dFJlZ3MpOwogICAgICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQocHJvcGVydHkpKQogICAg
ICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7CiAgICAgICAg
IGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNs
b3dQYXRoSnVtcCgpKTsKICAgICAgICAgbV9nZXRCeVZhbHMuYXBwZW5kKGdlbik7CiAKLSAgICAg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykp
OworICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSwgcmVzdWx0UmVncyk7CiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0
KTsKICAgICB9CiAKQEAgLTExMCwxNCArMTEyLDE2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9w
cml2YXRlX25hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAg
IGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CiAKKyAgICBKU1ZhbHVl
UmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworCiAgICAgSklUR2V0QnlWYWxH
ZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2Rl
SW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6OkdldFBy
aXZhdGVOYW1lLAotICAgICAgICBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJz
KCksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eUdQUiksIEpTVmFs
dWVSZWdzKHJlZ1QwKSk7CisgICAgICAgIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdp
c3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BSKSwg
cmVzdWx0UmVncyk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNs
b3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeVZhbHMuYXBwZW5kKGdlbik7
CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJs
b2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2Nv
ZGVCbG9jayksIHJlc3VsdFJlZ3MpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsK
IH0KIApAQCAtNTcwLDE0ICs1NzQsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9p
ZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgZW1pdEp1bXBT
bG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlVlJlZyk7CiAKKyAgICBKU1ZhbHVlUmVncyBy
ZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworCiAgICAgSklUR2V0QnlJZEdlbmVyYXRv
ciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCks
IENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWls
YWJsZVJlZ2lzdGVycygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9t
SWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVS
ZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBBY2Nlc3NUeXBlOjpUcnlHZXRCeUlkKTsK
KyAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5
Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVncyhyZWdUMCksIHJlc3Vs
dFJlZ3MsIEFjY2Vzc1R5cGU6OlRyeUdldEJ5SWQpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRo
KCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0
QnlJZHMuYXBwZW5kKGdlbik7CiAgICAgCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRl
Y29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
Ynl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdzKTsKICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKHJlc3VsdFZSZWcpOwogfQogCkBAIC02MDksMTQgKzYxNSwxNiBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfZGlyZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAs
IGJhc2VWUmVnKTsKIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhy
ZWdUMCk7CisKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxv
Y2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2Rl
SW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAg
IENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9j
ayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhy
ZWdUMCksIEFjY2Vzc1R5cGU6OkdldEJ5SWREaXJlY3QpOworICAgICAgICBDYWNoZWFibGVJZGVu
dGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ss
ICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgcmVzdWx0UmVncywgQWNjZXNzVHlwZTo6R2V0
QnlJZERpcmVjdCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNs
b3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsK
IAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxv
Y2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihyZXN1bHRW
UmVnKTsKIH0KIApAQCAtNjU1LDE0ICs2NjMsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5
X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG5vdEFy
cmF5TGVuZ3RoTW9kZS5saW5rKHRoaXMpOwogICAgIH0KIAorICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdl
bigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2Fs
bFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxl
UmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVu
dGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3Mo
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIEFjY2Vzc1R5cGU6OkdldEJ5SWQpOworICAgICAg
ICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxv
Y2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgcmVzdWx0UmVncywg
QWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwog
ICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBl
bmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEo
bV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rl
cihyZXN1bHRWUmVnKTsKIH0KIApAQCAtNjc5LDE0ICs2ODksMTYgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZVZSZWcpOwog
ICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMSwgdGhpc1ZSZWcpOwogCisgICAg
SlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKKwogICAgIEpJVEdl
dEJ5SWRXaXRoVGhpc0dlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3Jp
Z2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVn
aXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBDYWNoZWFibGVJ
ZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxv
Y2ssICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMSkpOworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9t
SWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIHJlc3VsdFJl
Z3MsIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEpKTsKICAgICBnZW4uZ2Vu
ZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgp
KTsKICAgICBtX2dldEJ5SWRzV2l0aFRoaXMuYXBwZW5kKGdlbik7CiAKLSAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJl
Z3MpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0VlJlZyk7CiB9CiAKQEAgLTEw
NzEsNyArMTA4Myw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShtZXRhZGF0YSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtZXRhZGF0YSwgcmVnVDAp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYgaXRlcikKQEAgLTEyNTIsNyArMTI2NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9t
X2FyZ3VtZW50cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAog
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCByZWdUMCk7CiAgICAgbG9hZDY0
KEFkZHJlc3MocmVnVDAsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpICsgaW5kZXgg
KiBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSksIHJlZ1QwKTsKLSAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlZ1QwKTsK
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKQEAgLTEzMTgsNyArMTMzMCw3
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9pbnRlcm5hbF9maWVsZChjb25zdCBJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZSwg
cmVnVDEpOwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgSlNJbnRlcm5hbEZpZWxkT2JqZWN0
SW1wbDw+OjpvZmZzZXRPZkludGVybmFsRmllbGQoaW5kZXgpKSwgcmVnVDApOwogCi0gICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShtZXRhZGF0YSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShtZXRhZGF0YSwgcmVnVDApOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
czMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAKaW5kZXggMzZhZTI5NjJhNGFiNThiMTRjNmQwODIyOTYyMjhkMjQ2N2QwNzNiMy4u
YjE0YTUwNjM0OTQ1MTU5MzgzZTdkMDlhYjViOWRlNGMzNTBkZGU4MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0y
NTQsMTYgKzI1NCwxOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChiYXNlLCByZWdUMSk7CiAgICAgICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRo
Q2VsbChyZWdUMCwgcmVnVDQsIHByb2ZpbGUpOwogCisgICAgICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworCiAgICAgICAgIEpJVEdldEJ5VmFs
R2VuZXJhdG9yIGdlbigKICAgICAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0
ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6
R2V0QnlWYWwsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAg
ICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1Qz
LCByZWdUMiksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOworICAgICAgICAgICAgSlNWYWx1
ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwgcmVz
dWx0UmVncyk7CiAgICAgICAgIGlmIChpc09wZXJhbmRDb25zdGFudEludChwcm9wZXJ0eSkpCiAg
ICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKICAgICAg
ICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgICAgICBhZGRTbG93Q2FzZShnZW4u
c2xvd1BhdGhKdW1wKCkpOwogICAgICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAg
ICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2Nr
KSk7CisgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spLCByZXN1bHRSZWdzKTsKICAgICAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJl
Z1QwKTsKICAgICB9CiB9CkBAIC0zMDAsMTUgKzMwMiwxNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfcHJpdmF0ZV9uYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAK
ICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCisgICAgSlNW
YWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisKICAgICBK
SVRHZXRCeVZhbEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2lu
KG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNz
VHlwZTo6R2V0UHJpdmF0ZU5hbWUsCi0gICAgICAgIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFi
bGVSZWdpc3RlcnMoKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIEpTVmFsdWVSZWdzKHJlZ1QxLCBy
ZWdUMCkpOworICAgICAgICBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCks
IGJhc2VHUFIsIHByb3BlcnR5R1BSLCByZXN1bHRSZWdzKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBt
X2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0
ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwg
cmVnVDApOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spLCByZXN1bHRSZWdzKTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZXN1bHRSZWdzLnRh
Z0dQUigpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CiB9CiAKIApAQCAtNTc5LDE1ICs1ODMs
MTcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAg
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKIAorICAgIEpTVmFs
dWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworCiAgICAgSklU
R2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1f
Ynl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJT
ZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlm
aWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICpp
ZGVudCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1Qx
LCByZWdUMCksIEFjY2Vzc1R5cGU6OlRyeUdldEJ5SWQpOworICAgICAgICBDYWNoZWFibGVJZGVu
dGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ss
ICppZGVudCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIHJlc3VsdFJlZ3MsIEFj
Y2Vzc1R5cGU6OlRyeUdldEJ5SWQpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
ICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBw
ZW5kKGdlbik7CiAgICAgCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRh
ZGF0YShtX2NvZGVCbG9jaykpOwotICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7Cisg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayks
IHJlc3VsdFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJl
c3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RyeV9n
ZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTYxOCwxNSArNjI0LDE3IEBAIHZvaWQg
SklUOjplbWl0X29wX2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICBlbWl0TG9hZChiYXNlLCByZWdUMSwgcmVnVDApOwogICAgIGVtaXRK
dW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKKyAgICBKU1ZhbHVlUmVncyBy
ZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRH
ZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2Rl
SW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHVi
VW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3Jl
YXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBK
U1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDAp
LCBBY2Nlc3NUeXBlOjpHZXRCeUlkRGlyZWN0KTsKKyAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmll
cjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRl
bnQpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NU
eXBlOjpHZXRCeUlkRGlyZWN0KTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAg
ICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVu
ZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jaykpOwotICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3Vs
dFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZF9k
aXJlY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTY2NCwxNSArNjcyLDE2IEBAIHZvaWQgSklU
OjplbWl0X29wX2dldF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgICAgICBub3RBcnJheUxlbmd0aE1vZGUubGluayh0aGlzKTsKICAgICB9CiAKKyAgICBK
U1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKICAgICBK
SVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4o
bV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3Rl
clNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50
aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywg
KmlkZW50KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVn
VDEsIHJlZ1QwKSwgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CisgICAgICAgIENhY2hlYWJsZUlkZW50
aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywg
KmlkZW50KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgcmVzdWx0UmVncywgQWNj
ZXNzVHlwZTo6R2V0QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAg
IGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQo
Z2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spKTsKLSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRS
ZWdzKTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZXN1bHRSZWdzLnRhZ0dQUigpLCByZXN1bHRSZWdz
LnBheWxvYWRHUFIoKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfaWQoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYgaXRlcikKQEAgLTcwNSwxNSArNzE0LDE3IEBAIHZvaWQgSklUOjplbWl0X29w
X2dldF9ieV9pZF93aXRoX3RoaXMoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbCh0aGlzVlJlZywgcmVnVDQpOwogCisgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisKICAgICBKSVRH
ZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9y
aWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJl
Z2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxl
SWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJs
b2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBKU1ZhbHVlUmVnczo6cGF5
bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUNCwgcmVnVDMpKTsKKyAgICAgICAgQ2Fj
aGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1f
Y29kZUJsb2NrLCAqaWRlbnQpLCByZXN1bHRSZWdzLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHko
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUNCwgcmVnVDMpKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBt
X2dldEJ5SWRzV2l0aFRoaXMuYXBwZW5kKGdlbik7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7Ci0gICAgZW1pdFN0b3JlKGRzdCwg
cmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CisgICAgZW1pdFN0b3JlKGRzdCwgcmVzdWx0
UmVncy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOwogfQogCiB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAt
MTA4Myw3ICsxMDk0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgZW1pdENvZGUocmVzb2x2
ZVR5cGUsIGZhbHNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKSk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KIApA
QCAtMTI2MywxMiArMTI3NCwxNCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9hcmd1bWVu
dHMoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBWaXJ0dWFsUmVn
aXN0ZXIgZHN0ID0gYnl0ZWNvZGUubV9kc3Q7CiAgICAgVmlydHVhbFJlZ2lzdGVyIGFyZ3VtZW50
cyA9IGJ5dGVjb2RlLm1fYXJndW1lbnRzOwogICAgIGludCBpbmRleCA9IGJ5dGVjb2RlLm1faW5k
ZXg7CisKKyAgICBKU1ZhbHVlUmVncyByZXN1dGxSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJl
Z1QwKTsKICAgICAKICAgICBlbWl0TG9hZFBheWxvYWQoYXJndW1lbnRzLCByZWdUMCk7Ci0gICAg
bG9hZDMyKEFkZHJlc3MocmVnVDAsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpICsg
aW5kZXggKiBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSArIFRhZ09mZnNldCksIHJlZ1Qx
KTsKLSAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zm
c2V0KCkgKyBpbmRleCAqIHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pICsgUGF5bG9hZE9m
ZnNldCksIHJlZ1QwKTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSk7Ci0gICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAg
ICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkg
KyBpbmRleCAqIHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pICsgVGFnT2Zmc2V0KSwgcmVz
dXRsUmVncy50YWdHUFIoKSk7CisgICAgbG9hZDMyKEFkZHJlc3MocmVnVDAsIERpcmVjdEFyZ3Vt
ZW50czo6c3RvcmFnZU9mZnNldCgpICsgaW5kZXggKiBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25v
d24+KSArIFBheWxvYWRPZmZzZXQpLCByZXN1dGxSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3V0
bFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJlc3V0bFJlZ3MudGFnR1BSKCksIHJlc3V0bFJl
Z3MucGF5bG9hZEdQUigpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX2FyZ3VtZW50
cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtMTI5NCwxMSArMTMw
NywxMyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfaW50ZXJuYWxfZmllbGQoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBWaXJ0dWFsUmVnaXN0ZXIgYmFzZSA9IGJ5
dGVjb2RlLm1fYmFzZTsKICAgICB1bnNpZ25lZCBpbmRleCA9IGJ5dGVjb2RlLm1faW5kZXg7CiAK
KyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsK
KwogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMik7Ci0gICAgbG9hZDMyKEFkZHJlc3Mo
cmVnVDIsIEpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGw8Pjo6b2Zmc2V0T2ZJbnRlcm5hbEZpZWxk
KGluZGV4KSArIFRhZ09mZnNldCksIHJlZ1QxKTsKLSAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMiwg
SlNJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbDw+OjpvZmZzZXRPZkludGVybmFsRmllbGQoaW5kZXgp
ICsgUGF5bG9hZE9mZnNldCksIHJlZ1QwKTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1l
dGFkYXRhKTsKLSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworICAgIGxvYWQzMihB
ZGRyZXNzKHJlZ1QyLCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsPD46Om9mZnNldE9mSW50ZXJu
YWxGaWVsZChpbmRleCkgKyBUYWdPZmZzZXQpLCByZXN1bHRSZWdzLnRhZ0dQUigpKTsKKyAgICBs
b2FkMzIoQWRkcmVzcyhyZWdUMiwgSlNJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbDw+OjpvZmZzZXRP
ZkludGVybmFsRmllbGQoaW5kZXgpICsgUGF5bG9hZE9mZnNldCksIHJlc3VsdFJlZ3MucGF5bG9h
ZEdQUigpKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCByZXN1bHRSZWdz
KTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZXN1bHRSZWdzLnRhZ0dQUigpLCByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9pbnRlcm5hbF9maWVsZChj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415632</attachid>
            <date>2020-12-08 06:31:58 -0800</date>
            <delta_ts>2020-12-11 07:14:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219550-20201208113156.patch</filename>
            <type>text/plain</type>
            <size>32281</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YTk1N2JiODIzZjJmODUyNjAyODkwYTI5MzgxZWEwZGUwZTAyZjRlLi42OWUxNWRmNjYwZDU1Nzdi
ZWI4N2VkYTk4MDc3MDM0ZmNhMWZhZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMC0xMi0wOCAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pJVF0gUmVxdWlyZSB2YWx1ZSByZWdpc3RlcnMgZXhwbGljaXRseSBvbiBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTk1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHJlbW92aW5nIHRoZSBkZWZhdWx0IHZhbHVlIGZv
ciBgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZWAKKyAgICAgICAgdG8gYXZvaWQgYnVncyBsaWtlIHIy
NzA0MjMgYW5kIHIyNzA0MzEuCisKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlV2l0aG91dExpbmtpbmcpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAg
ICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENhbGxS
ZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6CisgICAg
ICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENh
bGxSZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6Cisg
ICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjphcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CisgICAgICAgICogaml0L0pJ
VE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9fbnVtYmVyKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWVyaWMpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfdG9fb2JqZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NhdGNoKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2FyZ3VtZW50KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWJlcik6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19udW1lcmljKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX3RvX29iamVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jYXRjaCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKToKKyAgICAgICAgKiBq
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJpdmF0ZV9uYW1lKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dp
dGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9hcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKToKKyAgICAgICAgKiBqaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfZGlyZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0
aF90aGlzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX2FyZ3VtZW50cyk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfaW50ZXJuYWxfZmllbGQpOgorCiAyMDIwLTEyLTA3ICBEbWl0
cnkgQmV6aGV0c2tvdiAgPGRiZXpoZXRza292QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dBU00t
UmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIHRhYmxlLmNvcHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAppbmRleCBjZTg3Yzg3NjQ3NzVmYWZiMGM4NzlmNTllOWY5NGEzOTA4Zjg2Y2MzLi4y
YTVmYzI5MzA4MzBkYzc1Y2JhZWRiMzA2YTcxYTYyMTg4ZDllNTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCkBAIC03NTYsMTIgKzc1NiwxNCBAQCB2b2lkIEpJVDo6Y29tcGlsZVdpdGhv
dXRMaW5raW5nKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IENhbGxGcmFtZTo6YXJn
dW1lbnRPZmZzZXRJbmNsdWRpbmdUaGlzKGFyZ3VtZW50KSAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgICAgICBsb2Fk
NjQoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0KSwgcmVnVDApOworICAgICAgICAg
ICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CisgICAg
ICAgICAgICAgICAgbG9hZDY0KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCksIHJl
c3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAg
ICAgICAgICAgbG9hZDMyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCArIE9CSkVD
VF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHJlZ1QwKTsKLSAgICAgICAg
ICAgICAgICBsb2FkMzIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0ICsgT0JKRUNU
X09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMSk7CisgICAgICAgICAgICAg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7Cisg
ICAgICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCAr
IE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHJlc3VsdFJlZ3Mu
cGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBsb2FkMzIoQWRkcmVzcyhjYWxsRnJhbWVS
ZWdpc3Rlciwgb2Zmc2V0ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykp
LCByZXN1bHRSZWdzLnRhZ0dQUigpKTsKICNlbmRpZgotICAgICAgICAgICAgICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUobV9jb2RlQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3Vt
ZW50KSk7CisgICAgICAgICAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtX2NvZGVCbG9j
ay0+dmFsdWVQcm9maWxlRm9yQXJndW1lbnQoYXJndW1lbnQpLCByZXN1bHRSZWdzKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDA3
YTk2MDZiMGQ5ZTExODgwOTMzM2YyMGFjN2U1Zjc2NDYyYWNkM2QuLmFmYWJkNzM0MDBkN2EwZmJi
NWVkYzA2YmFhNTY0YWFmZmU1NDVjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMzc0
LDExICszNzQsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIFRoaXMgYXNzdW1lcyB0
aGF0IHRoZSB2YWx1ZSB0byBwcm9maWxlIGlzIGluIHJlZ1QwIGFuZCB0aGF0IHJlZ1QzIGlzIGF2
YWlsYWJsZSBmb3IKICAgICAgICAgLy8gc2NyYXRjaC4KICNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiwgSlNWYWx1ZVJl
Z3MgdmFsdWUgPSBKU1ZhbHVlUmVncyB7IHJlZ1QwIH0pOwotICAgICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBNZXRhZGF0YT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwgSlNW
YWx1ZVJlZ3MgdmFsdWUgPSBKU1ZhbHVlUmVncyB7IHJlZ1QwIH0pOworICAgICAgICB2b2lkIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiwgR1BSUmVnKTsKKyAgICAgICAgdm9p
ZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYsIEpTVmFsdWVSZWdzKTsKKyAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShNZXRhZGF0YSYsIEdQUlJlZyk7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1ldGFk
YXRhPiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEmLCBKU1ZhbHVlUmVncyk7
CiAjZWxzZQotICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxl
JiwgSlNWYWx1ZVJlZ3MgdmFsdWUgPSBKU1ZhbHVlUmVncyB7IHJlZ1QxLCByZWdUMCB9KTsKLSAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJlZ3MgeyByZWdUMSwg
cmVnVDAgfSk7CisgICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2Zp
bGUmLCBKU1ZhbHVlUmVncyk7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPiB2
b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEmLCBKU1ZhbHVlUmVncyk7CiAjZW5k
aWYKIAogICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGVJZlByb2ZpbGVkT3Bjb2Rl
KC4uLik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAppbmRleCA1NTY1NzdlYjBh
Yzk3NDkzOWNmOGZiYjMxZTZhZDY1ZmExZDRhNmFiLi5kMTU5NjNiZWFkMjUzNWFlNDlmMWIwNWQ1
MDUxZjcxYjA1Mzg3NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKQEAg
LTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KIHZv
aWQgSklUOjplbWl0UHV0Q2FsbFJlc3VsdChjb25zdCBPcCYgYnl0ZWNvZGUpCiB7Ci0gICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBy
ZWdUMCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlvbkZvcihieXRlY29k
ZSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSkudmlydHVhbFJlZ2lzdGVyKCksIHJlZ1Qw
KTsKIH0KIApAQCAtNDA1LDcgKzQwNSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9yX29w
ZW4oY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGdlbi5z
bG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVn
VDApOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoYnl0ZWNvZGUubV9uZXh0KTsKIAogICAg
IGZhc3RDYXNlLmxpbmsodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENhbGwzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwz
Ml82NC5jcHAKaW5kZXggZDZhNzVjZTg0ZTRiNTMyMzYwODk5MjhjY2MzOWM5YTIxMzc4YWUzYS4u
YmUzNWZjYTkyZGUxNDg1Zjc1ZDFmMzJlZmVmMmE5YWZkYmUyODQ2YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogdm9pZCBKSVQ6OmVtaXRQdXRDYWxsUmVz
dWx0KGNvbnN0IE9wJiBieXRlY29kZSkKIHsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCkpOwogICAgIGVtaXRTdG9yZShkZXN0aW5hdGlvbkZvcihieXRlY29kZSwgbV9ieXRlY29kZUlu
ZGV4LmNoZWNrcG9pbnQoKSkudmlydHVhbFJlZ2lzdGVyKCksIHJlZ1QxLCByZWdUMCk7CiB9CiAK
QEAgLTQwMiw2ICs0MDIsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9vcGVuKGNvbnN0
IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICBHUFJSZWcgdGFnTmV4dEdQUiA9IHRhZ0l0
ZXJhdG9yR1BSOwogICAgIEdQUlJlZyBwYXlsb2FkTmV4dEdQUiA9IHBheWxvYWRJdGVyYXRvckdQ
UjsKIAorICAgIEpTVmFsdWVSZWdzIG5leHRSZWdzID0gSlNWYWx1ZVJlZ3ModGFnTmV4dEdQUiwg
cGF5bG9hZE5leHRHUFIpOworCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAg
IG1fY29kZUJsb2NrLAogICAgICAgICBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksCkBAIC00
MDksMTUgKzQxMSwxNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9vcGVuKGNvbnN0IElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWls
YWJsZVJlZ2lzdGVycygpLAogICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9t
SW1tb3J0YWxJZGVudGlmaWVyKGlkZW50LT5pbXBsKCkpLAogICAgICAgICBKU1ZhbHVlUmVncyh0
YWdJdGVyYXRvckdQUiwgcGF5bG9hZEl0ZXJhdG9yR1BSKSwKLSAgICAgICAgSlNWYWx1ZVJlZ3Mo
dGFnTmV4dEdQUiwgcGF5bG9hZE5leHRHUFIpLAorICAgICAgICBuZXh0UmVncywKICAgICAgICAg
QWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRo
aXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlk
cy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2Rl
Lm1fbmV4dCwgSlNWYWx1ZVJlZ3ModGFnTmV4dEdQUiwgcGF5bG9hZE5leHRHUFIpKTsKKyAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgbmV4
dFJlZ3MpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoYnl0ZWNvZGUubV9uZXh0LCBuZXh0
UmVncyk7CiAKICAgICBmYXN0Q2FzZS5saW5rKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaAppbmRleCAzYWJiMWY2ZjJjODEwNjc3Y2U3MzE4NjQ0NzRmZDI0YTc4
OTFiMjI2Li5iZWQ1OTI1MGNkN2ZjYTg3MTlkYTFjMGRmMGZkNzlkYThiZjljN2EyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtMTU3LDEwICsxNTcsMTEgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+CiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHRXaXRo
UHJvZmlsZShNZXRhZGF0YSYgbWV0YWRhdGEsIGNvbnN0IEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0
clRhZz4gZnVuY3Rpb24sIFZpcnR1YWxSZWdpc3RlciBkc3QpCiB7CiAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soZnVuY3Rpb24pOwot
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEpOwogI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtZXRhZGF0YSwgSlNWYWx1ZVJlZ3MocmV0dXJu
VmFsdWVHUFIpKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCwgcmV0dXJuVmFsdWVH
UFIpOwogI2Vsc2UKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCBKU1ZhbHVl
UmVncyhyZXR1cm5WYWx1ZUdQUjIsIHJldHVyblZhbHVlR1BSKSk7CiAgICAgZW1pdFN0b3JlKGRz
dCwgcmV0dXJuVmFsdWVHUFIyLCByZXR1cm5WYWx1ZUdQUik7CiAjZW5kaWYKICAgICByZXR1cm4g
Y2FsbDsKQEAgLTMyNyw3ICszMjgsMTEgQEAgaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYgdmFsdWVQcm9maWxlLCBKU1ZhbHVlUmVncwogdGVtcGxh
dGU8dHlwZW5hbWUgT3A+CiBpbmxpbmUgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3NhbWU8ZGVj
bHR5cGUoT3A6Ok1ldGFkYXRhOjptX3Byb2ZpbGUpLCBWYWx1ZVByb2ZpbGU+Ojp2YWx1ZSwgdm9p
ZD4gSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZShPcCBieXRlY29k
ZSkKIHsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVnVDApOworI2Vsc2UKKyAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1
ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisjZW5kaWYKIH0KIAogaW5saW5lIHZvaWQgSklUOjplbWl0
VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSguLi4pIHsgfQpAQCAtMzQwLDYgKzM0
NSwxOSBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEm
IG1ldGFkYXRhLCBKU1ZhbHVlUmVncyB2YWx1ZSkKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KHZhbHVlUHJvZmlsZUZvcihtZXRhZGF0YSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSks
IHZhbHVlKTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFNjQpCitpbmxpbmUgdm9pZCBKSVQ6OmVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiB2YWx1ZVByb2ZpbGUsIEdQUlJlZyByZXN1
bHRSZWcpCit7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSh2YWx1ZVByb2ZpbGUsIEpTVmFs
dWVSZWdzKHJlc3VsdFJlZykpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4KK2lu
bGluZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYgbWV0YWRhdGEs
IEdQUlJlZyByZXN1bHRSZWcpCit7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtZXRhZGF0
YSwgcmVzdWx0UmVnKTsKK30KKyNlbmRpZgorCiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJheVBy
b2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklEIGNlbGwsIFJlZ2lzdGVySUQgaW5kZXhpbmdU
eXBlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAgICBpZiAoc2hvdWxkRW1pdFBy
b2ZpbGluZygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRl
eCA0NzU3YWM2ODI5NDA4YTJkZDNkMGFhNmIyZTY1ZGU2MjQ4NGFkMzIxLi5iYTEwYzg5YjU2NDY3
ZTJlNTE2MGVhYjg1ZTAxZjdkY2VmNzMwODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAKQEAgLTc3Nyw3ICs3NzcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90b19u
dW1iZXIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBh
ZGRTbG93Q2FzZShicmFuY2hJZk5vdE51bWJlcihyZWdUMCkpOwogCi0gICAgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZWdUMCk7CiAg
ICAgaWYgKHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rl
cihkc3RWUmVnKTsKIH0KQEAgLTc5Nyw3ICs3OTcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90b19u
dW1lcmljKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgYWRkU2xv
d0Nhc2UoYnJhbmNoSWZOb3ROdW1iZXIocmVnVDApKTsKICAgICBpc0JpZ0ludC5saW5rKHRoaXMp
OwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVC
bG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spLCByZWdUMCk7CiAgICAgaWYgKHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3RWUmVnKTsKIH0KQEAgLTgyNCw3ICs4MjQsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF90b19vYmplY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdENlbGwocmVnVDApKTsKICAgICBh
ZGRTbG93Q2FzZShicmFuY2hJZk5vdE9iamVjdChyZWdUMCkpOwogCi0gICAgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZWdUMCk7CiAg
ICAgaWYgKHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rl
cihkc3RWUmVnKTsKIH0KQEAgLTg3Myw3ICs4NzMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jYXRj
aChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBidWZmZXIt
PmZvckVhY2goWyZdIChWYWx1ZVByb2ZpbGVBbmRWaXJ0dWFsUmVnaXN0ZXImIHByb2ZpbGUpIHsK
ICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlZ3MocmVnVDApOwogICAgICAgICAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3Rlcihwcm9maWxlLm1fb3BlcmFuZCwgcmVncyk7Ci0gICAgICAgICAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKHN0YXRpY19jYXN0PFZhbHVlUHJvZmlsZSY+KHByb2ZpbGUp
KTsKKyAgICAgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoc3RhdGljX2Nhc3Q8VmFsdWVQ
cm9maWxlJj4ocHJvZmlsZSksIHJlZ3MpOwogICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYgLy8g
RU5BQkxFKERGR19KSVQpCkBAIC0xNTM5LDcgKzE1MzksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfZGlyZWN0X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgbG9hZDY0KEJhc2VJbmRleChyZWdUMCwgcmVnVDEsIFRpbWVzRWlnaHQsIG9mZnNldE9mRmly
c3RQcm9wZXJ0eSksIHJlZ1QwKTsKICAgICAKICAgICBkb25lLmxpbmsodGhpcyk7Ci0gICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBy
ZWdUMCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlZ1QwKTsKIH0KIApAQCAt
MTc1OSw3ICsxNzU5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2FyZ3VtZW50KGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbW92ZVZhbHVlKGpzVW5kZWZpbmVk
KCksIHJlc3VsdFJlZ3MpOwogCiAgICAgZG9uZS5saW5rKHRoaXMpOwotICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFs
dWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVn
cyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlc3VsdFJlZ3MpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggMDUy
YzBlZDAzYTY2YTIyMjdhN2Y2M2RjZmMwYjE2YWEwYzBiODNhNS4uZWJmYzBiNjkwMWM1MTRhYWVh
NDllZDFkNTVkNmI4Nzc5NGEzNmZmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcApAQCAtODYwLDcgKzg2MCw3IEBAIHZvaWQgSklUOjplbWl0X29w
X3RvX251bWJlcihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpMb3dlc3RUYWcpKSk7CiAgICAgaXNJbnQzMi5saW5rKHRoaXMpOwogCi0gICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBpZiAoc3JjICE9IGRzdCkKICAgICAgICAgZW1p
dFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KQEAgLTg4Miw3ICs4ODIsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF90b19udW1lcmljKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3ROdW1iZXIoYXJndW1lbnRWYWx1ZVJlZ3Ms
IHJlZ1QyKSk7CiAgICAgaXNCaWdJbnQubGluayh0aGlzKTsKIAotICAgIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKSk7CiAgICAgaWYgKHNyYyAhPSBkc3QpCiAgICAgICAgIGVtaXRTdG9yZShk
c3QsIHJlZ1QxLCByZWdUMCk7CiB9CkBAIC05MTMsNyArOTEzLDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfdG9fb2JqZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
YWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RDZWxsKHJlZ1QxKSk7CiAgICAgYWRkU2xvd0Nhc2UoYnJh
bmNoSWZOb3RPYmplY3QocmVnVDApKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0
ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1Qw
KSk7CiAgICAgaWYgKHNyYyAhPSBkc3QpCiAgICAgICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCBy
ZWdUMCk7CiB9CkBAIC05NzAsNyArOTcwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgYnVmZmVyLT5mb3JF
YWNoKFsmXSAoVmFsdWVQcm9maWxlQW5kVmlydHVhbFJlZ2lzdGVyJiBwcm9maWxlKSB7CiAgICAg
ICAgICAgICBKU1ZhbHVlUmVncyByZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgICAgICAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKHByb2ZpbGUubV9vcGVyYW5kLCByZWdzKTsKLSAgICAgICAgICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoc3RhdGljX2Nhc3Q8VmFsdWVQcm9maWxlJj4ocHJvZmls
ZSkpOworICAgICAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShzdGF0aWNfY2FzdDxWYWx1
ZVByb2ZpbGUmPihwcm9maWxlKSwgcmVncyk7CiAgICAgICAgIH0pOwogICAgIH0KICNlbmRpZiAv
LyBFTkFCTEUoREZHX0pJVCkKQEAgLTEyOTgsNyArMTI5OCw3IEBAIHZvaWQgSklUOjplbWl0X29w
X2dldF9kaXJlY3RfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICBsb2FkMzIoQmFzZUluZGV4KHJlZ1QwLCByZWdUMiwgVGltZXNFaWdodCwgb2Zmc2V0T2ZG
aXJzdFByb3BlcnR5ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQp
KSwgcmVnVDApOwogICAgIAogICAgIGRvbmUubGluayh0aGlzKTsKLSAgICBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpTVmFsdWVSZWdz
KHJlZ1QxLCByZWdUMCkpOwogICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5k
ZXggNjEyYzQ4ZmZhMmI4ODI4OTcyOGU2ZDgwOTJmYTQyZmM1M2I0Yzg2Yi4uNzUwMmU0ODBlYzM0
NDU0N2MyYzVlYzE4NzkxN2JhMGY5M2U5NTE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTY0LDE2ICs2NCwxOCBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CiAg
ICAgICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2Zp
bGUpOwogCisgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdU
MCk7CisKICAgICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAogICAgICAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2
YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMSksIEpTVmFsdWVSZWdzKHJlZ1QwKSk7CisgICAgICAgICAgICBKU1ZhbHVl
UmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSwgcmVzdWx0UmVncyk7CiAgICAgICAgIGlm
IChpc09wZXJhbmRDb25zdGFudEludChwcm9wZXJ0eSkpCiAgICAgICAgICAgICBnZW4uc3R1Yklu
Zm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKICAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBh
dGgoKnRoaXMpOwogICAgICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAg
ICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAgICAgICBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdz
KTsKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIH0KIApAQCAtMTEw
LDE0ICsxMTIsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3ByaXZhdGVfbmFtZShjb25zdCBJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBK
U1ZhbHVlUmVncyhyZWdUMCk7CisKICAgICBKSVRHZXRCeVZhbEdlbmVyYXRvciBnZW4oCiAgICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6R2V0UHJpdmF0ZU5hbWUsCi0gICAgICAg
IFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFz
ZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BSKSwgSlNWYWx1ZVJlZ3MocmVnVDApKTsKKyAg
ICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLCBKU1ZhbHVlUmVn
cyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlHUFIpLCByZXN1bHRSZWdzKTsKICAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRo
SnVtcCgpKTsKICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFs
dWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVn
cyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCkBAIC01NzAsMTQgKzU3
NCwxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwo
cmVnVDAsIGJhc2VWUmVnKTsKIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMCk7CisKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCi0g
ICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNv
ZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVl
UmVncyhyZWdUMCksIEFjY2Vzc1R5cGU6OlRyeUdldEJ5SWQpOworICAgICAgICBDYWNoZWFibGVJ
ZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxv
Y2ssICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgcmVzdWx0UmVncywgQWNjZXNzVHlwZTo6
VHJ5R2V0QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNs
b3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsK
ICAgICAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVz
dWx0VlJlZyk7CiB9CiAKQEAgLTYwOSwxNCArNjE1LDE2IEBAIHZvaWQgSklUOjplbWl0X29wX2dl
dF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAog
ICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZVZSZWcpOwogCisgICAg
SlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKKwogICAgIEpJVEdl
dEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5
dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0
OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmll
cjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRl
bnQpLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgQWNjZXNzVHlwZTo6
R2V0QnlJZERpcmVjdCk7CisgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21J
ZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJl
Z3MocmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NUeXBlOjpHZXRCeUlkRGlyZWN0KTsKICAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRo
SnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRSZWdz
KTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdFZSZWcpOwogfQogCkBAIC02NTUs
MTQgKzY2MywxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbm90QXJyYXlMZW5ndGhNb2RlLmxpbmso
dGhpcyk7CiAgICAgfQogCisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVC
bG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNv
ZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAg
ICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJs
b2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdz
KHJlZ1QwKSwgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CisgICAgICAgIENhY2hlYWJsZUlkZW50aWZp
ZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlk
ZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NUeXBlOjpHZXRCeUlk
KTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2Vu
LnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwogCi0gICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBy
ZXN1bHRSZWdzKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdFZSZWcpOwogfQog
CkBAIC02NzksMTQgKzY4OSwxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0aF90
aGlzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBT
bG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlVlJlZyk7CiAgICAgZW1pdEp1bXBTbG93Q2Fz
ZUlmTm90SlNDZWxsKHJlZ1QxLCB0aGlzVlJlZyk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworCiAgICAgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJh
dG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4
KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZh
aWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZy
b21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1
ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSk7Cisg
ICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNv
ZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgcmVzdWx0UmVncywgSlNWYWx1ZVJlZ3MocmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMSkpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlz
KTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHNX
aXRoVGhpcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNv
ZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFB1dFZp
cnR1YWxSZWdpc3RlcihyZXN1bHRWUmVnKTsKIH0KIApAQCAtMTA3MSw3ICsxMDgzLDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoZHN0KTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhKTsKKyAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCByZWdUMCk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtMTI1Miw3
ICsxMjY0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fYXJndW1lbnRzKGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3Rlcihhcmd1bWVudHMsIHJlZ1QwKTsKICAgICBsb2FkNjQoQWRkcmVzcyhyZWdUMCwgRGly
ZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRleCAqIHNpemVvZihXcml0ZUJhcnJp
ZXI8VW5rbm93bj4pKSwgcmVnVDApOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNv
ZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVnVDApOwogICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIoZHN0KTsKIH0KIApAQCAtMTMxOCw3ICsxMzMwLDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2ludGVybmFsX2ZpZWxkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMSk7CiAgICAgbG9hZFB0
cihBZGRyZXNzKHJlZ1QxLCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsPD46Om9mZnNldE9mSW50
ZXJuYWxGaWVsZChpbmRleCkpLCByZWdUMCk7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KG1ldGFkYXRhKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCByZWdUMCk7
CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCAzNmFl
Mjk2MmE0YWI1OGIxNGM2ZDA4MjI5NjIyOGQyNDY3ZDA3M2IzLi5iMTRhNTA2MzQ5NDUxNTkzODNl
N2QwOWFiNWI5ZGU0YzM1MGRkZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTI1NCwxNiArMjU0LDE4IEBAIHZv
aWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1Qx
KTsKICAgICAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUNCwg
cHJvZmlsZSk7CiAKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdz
KHJlZ1QxLCByZWdUMCk7CisKICAgICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAogICAg
ICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNp
dGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwgUmVnaXN0ZXJT
ZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICAgICAgSlNWYWx1ZVJlZ3M6
OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwgSlNWYWx1ZVJl
Z3MocmVnVDEsIHJlZ1QwKSk7CisgICAgICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHko
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLCByZXN1bHRSZWdzKTsKICAgICAgICAg
aWYgKGlzT3BlcmFuZENvbnN0YW50SW50KHByb3BlcnR5KSkKICAgICAgICAgICAgIGdlbi5zdHVi
SW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOwogICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aCgqdGhpcyk7CiAgICAgICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAg
ICAgICAgIG1fZ2V0QnlWYWxzLmFwcGVuZChnZW4pOwogCi0gICAgICAgIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICAgICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJl
Z3MpOwogICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogICAgIH0KIH0KQEAg
LTMwMCwxNSArMzAyLDE3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRKdW1wU2xvd0Nh
c2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9y
IGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwg
Q2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRQcml2YXRlTmFt
ZSwKLSAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLCBiYXNl
R1BSLCBwcm9wZXJ0eUdQUiwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisgICAgICAgIFJl
Z2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgYmFzZUdQUiwgcHJvcGVydHlH
UFIsIHJlc3VsdFJlZ3MpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBh
ZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlWYWxzLmFwcGVuZChn
ZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2Nv
ZGVCbG9jaykpOwotICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJl
Z3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3Mu
cGF5bG9hZEdQUigpKTsKIH0KIAogCkBAIC01NzksMTUgKzU4MywxNyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF90cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0SnVtcFNsb3dDYXNl
SWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9
IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdl
bigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2Fs
bFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxl
UmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVu
dGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3M6
OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgQWNjZXNzVHlw
ZTo6VHJ5R2V0QnlJZCk7CisgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21J
ZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJl
Z3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgcmVzdWx0UmVncywgQWNjZXNzVHlwZTo6VHJ5R2V0QnlJ
ZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdl
bi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKICAgICAKLSAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7
Ci0gICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CisgICAg
ZW1pdFN0b3JlKGRzdCwgcmVzdWx0UmVncy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BS
KCkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdHJ5X2dldF9ieV9pZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJiBpdGVyKQpAQCAtNjE4LDE1ICs2MjQsMTcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5
X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVt
aXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlND
ZWxsKGJhc2UsIHJlZ1QxKTsKIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVl
UmVncyhyZWdUMSwgcmVnVDApOworCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVy
cygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93
bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzOjpwYXlsb2Fk
T25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6OkdldEJ5
SWREaXJlY3QpOworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRp
Zmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzOjpw
YXlsb2FkT25seShyZWdUMCksIHJlc3VsdFJlZ3MsIEFjY2Vzc1R5cGU6OkdldEJ5SWREaXJlY3Qp
OwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4u
c2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CiAKLSAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7Ci0gICAg
ZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CisgICAgZW1pdFN0
b3JlKGRzdCwgcmVzdWx0UmVncy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOwog
fQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
JiBpdGVyKQpAQCAtNjY0LDE1ICs2NzIsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lk
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG5vdEFycmF5
TGVuZ3RoTW9kZS5saW5rKHRoaXMpOwogICAgIH0KIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJl
Z3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBD
YWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFi
bGVSZWdpc3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlk
ZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVn
czo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nlc3NU
eXBlOjpHZXRCeUlkKTsKKyAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlk
ZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVn
czo6cGF5bG9hZE9ubHkocmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsK
ICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNs
b3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwogCi0gICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwotICAgIGVt
aXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShi
eXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOworICAgIGVtaXRTdG9y
ZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0K
IAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpA
QCAtNzA1LDE1ICs3MTQsMTcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dpdGhfdGhp
cyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xv
d0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90
SlNDZWxsKHRoaXNWUmVnLCByZWdUNCk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
SlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVy
YXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRl
eCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2
YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVG
cm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFs
dWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1Q0LCByZWdUMykpOworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpj
cmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCks
IHJlc3VsdFJlZ3MsIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdz
KHJlZ1Q0LCByZWdUMykpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBh
ZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHNXaXRoVGhpcy5h
cHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRh
dGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBy
ZXN1bHRSZWdzKTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZXN1bHRSZWdzLnRhZ0dQUigpLCByZXN1
bHRSZWdzLnBheWxvYWRHUFIoKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlf
aWRfd2l0aF90aGlzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0xMDgzLDcgKzEwOTQsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgICAgICBlbWl0Q29kZShyZXNvbHZlVHlwZSwgZmFsc2UpOwogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5t
ZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNv
ZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAg
ICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQogCkBAIC0xMjYzLDEyICsxMjc0LDE0
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX2FyZ3VtZW50cyhjb25zdCBJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIFZpcnR1YWxSZWdpc3RlciBkc3QgPSBieXRlY29k
ZS5tX2RzdDsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgYXJndW1lbnRzID0gYnl0ZWNvZGUubV9hcmd1
bWVudHM7CiAgICAgaW50IGluZGV4ID0gYnl0ZWNvZGUubV9pbmRleDsKKworICAgIEpTVmFsdWVS
ZWdzIHJlc3V0bFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIAogICAgIGVt
aXRMb2FkUGF5bG9hZChhcmd1bWVudHMsIHJlZ1QwKTsKLSAgICBsb2FkMzIoQWRkcmVzcyhyZWdU
MCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRleCAqIHNpemVvZihXcml0
ZUJhcnJpZXI8VW5rbm93bj4pICsgVGFnT2Zmc2V0KSwgcmVnVDEpOwotICAgIGxvYWQzMihBZGRy
ZXNzKHJlZ1QwLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQoKSArIGluZGV4ICogc2l6
ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDApOwotICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsK
LSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworICAgIGxvYWQzMihBZGRyZXNzKHJl
Z1QwLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQoKSArIGluZGV4ICogc2l6ZW9mKFdy
aXRlQmFycmllcjxVbmtub3duPikgKyBUYWdPZmZzZXQpLCByZXN1dGxSZWdzLnRhZ0dQUigpKTsK
KyAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0
KCkgKyBpbmRleCAqIHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pICsgUGF5bG9hZE9mZnNl
dCksIHJlc3V0bFJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdXRsUmVncyk7CisgICAgZW1pdFN0
b3JlKGRzdCwgcmVzdXRsUmVncy50YWdHUFIoKSwgcmVzdXRsUmVncy5wYXlsb2FkR1BSKCkpOwog
fQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfdG9fYXJndW1lbnRzKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0xMjk0LDExICsxMzA3LDEzIEBAIHZvaWQgSklUOjpl
bWl0X29wX2dldF9pbnRlcm5hbF9maWVsZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogICAgIFZpcnR1YWxSZWdpc3RlciBiYXNlID0gYnl0ZWNvZGUubV9iYXNlOwogICAg
IHVuc2lnbmVkIGluZGV4ID0gYnl0ZWNvZGUubV9pbmRleDsKIAorICAgIEpTVmFsdWVSZWdzIHJl
c3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworCiAgICAgZW1pdExvYWRQYXls
b2FkKGJhc2UsIHJlZ1QyKTsKLSAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMiwgSlNJbnRlcm5hbEZp
ZWxkT2JqZWN0SW1wbDw+OjpvZmZzZXRPZkludGVybmFsRmllbGQoaW5kZXgpICsgVGFnT2Zmc2V0
KSwgcmVnVDEpOwotICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBKU0ludGVybmFsRmllbGRPYmpl
Y3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChpbmRleCkgKyBQYXlsb2FkT2Zmc2V0KSwg
cmVnVDApOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEpOwotICAgIGVtaXRT
dG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgbG9hZDMyKEFkZHJlc3MocmVnVDIsIEpTSW50
ZXJuYWxGaWVsZE9iamVjdEltcGw8Pjo6b2Zmc2V0T2ZJbnRlcm5hbEZpZWxkKGluZGV4KSArIFRh
Z09mZnNldCksIHJlc3VsdFJlZ3MudGFnR1BSKCkpOworICAgIGxvYWQzMihBZGRyZXNzKHJlZ1Qy
LCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChpbmRl
eCkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEsIHJlc3VsdFJlZ3MpOworICAgIGVtaXRTdG9yZShk
c3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0KIAog
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2ludGVybmFsX2ZpZWxkKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415992</attachid>
            <date>2020-12-11 07:14:56 -0800</date>
            <delta_ts>2020-12-11 14:57:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219550-20201211121454.patch</filename>
            <type>text/plain</type>
            <size>32284</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YzNiOTYzOGI5ZmU1MDRkMjU3ODdjOTAwNGNkYzk3Y2MxMjEyNTM3Li5lYTY2NmI3YTY5NTFlMjkx
ZDlmNmE3ZmM3NWM3YzNlZGQzZTNkNzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMC0xMi0xMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pJVF0gUmVxdWlyZSB2YWx1ZSByZWdpc3RlcnMgZXhwbGljaXRseSBvbiBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTk1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHJlbW92aW5nIHRoZSBkZWZhdWx0IHZhbHVlIGZv
ciBgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZWAKKyAgICAgICAgdG8gYXZvaWQgYnVncyBsaWtlIHIy
NzA0MjMgYW5kIHIyNzA0MzEuCisKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjpjb21waWxlV2l0aG91dExpbmtpbmcpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAg
ICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENhbGxS
ZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6CisgICAg
ICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENh
bGxSZXN1bHQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbik6Cisg
ICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjphcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CisgICAgICAgICogaml0L0pJ
VE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9fbnVtYmVyKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWVyaWMpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfdG9fb2JqZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NhdGNoKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2FyZ3VtZW50KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RvX251bWJlcik6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19udW1lcmljKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX3RvX29iamVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jYXRjaCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKToKKyAgICAgICAgKiBq
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJpdmF0ZV9uYW1lKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dp
dGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9hcmd1bWVudHMpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKToKKyAgICAgICAgKiBqaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdHJ5X2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfZGlyZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2dldF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0
aF90aGlzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX2FyZ3VtZW50cyk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfaW50ZXJuYWxfZmllbGQpOgorCiAyMDIwLTEyLTEwICBUYWRl
dSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92aW5nIHVubmVj
ZXNzYXJ5IGxvY2tpbmcgZnJvbSBKU1ZhbHVlIEFQSSBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcAppbmRleCBjZTg3Yzg3NjQ3NzVmYWZiMGM4NzlmNTllOWY5NGEzOTA4Zjg2Y2Mz
Li4yYTVmYzI5MzA4MzBkYzc1Y2JhZWRiMzA2YTcxYTYyMTg4ZDllNTU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwCkBAIC03NTYsMTIgKzc1NiwxNCBAQCB2b2lkIEpJVDo6Y29tcGlsZVdp
dGhvdXRMaW5raW5nKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IENhbGxGcmFtZTo6
YXJndW1lbnRPZmZzZXRJbmNsdWRpbmdUaGlzKGFyZ3VtZW50KSAqIHN0YXRpY19jYXN0PGludD4o
c2l6ZW9mKFJlZ2lzdGVyKSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgICAgICBs
b2FkNjQoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0KSwgcmVnVDApOworICAgICAg
ICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMCk7Cisg
ICAgICAgICAgICAgICAgbG9hZDY0KEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCks
IHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAg
ICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldCArIE9C
SkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHJlZ1QwKTsKLSAgICAg
ICAgICAgICAgICBsb2FkMzIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0ICsgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMSk7CisgICAgICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7
CisgICAgICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNl
dCArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBsb2FkMzIoQWRkcmVzcyhjYWxsRnJh
bWVSZWdpc3Rlciwgb2Zmc2V0ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRh
ZykpLCByZXN1bHRSZWdzLnRhZ0dQUigpKTsKICNlbmRpZgotICAgICAgICAgICAgICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUobV9jb2RlQmxvY2stPnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFy
Z3VtZW50KSk7CisgICAgICAgICAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtX2NvZGVC
bG9jay0+dmFsdWVQcm9maWxlRm9yQXJndW1lbnQoYXJndW1lbnQpLCByZXN1bHRSZWdzKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4
IDA3YTk2MDZiMGQ5ZTExODgwOTMzM2YyMGFjN2U1Zjc2NDYyYWNkM2QuLmFmYWJkNzM0MDBkN2Ew
ZmJiNWVkYzA2YmFhNTY0YWFmZmU1NDVjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAt
Mzc0LDExICszNzQsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIFRoaXMgYXNzdW1l
cyB0aGF0IHRoZSB2YWx1ZSB0byBwcm9maWxlIGlzIGluIHJlZ1QwIGFuZCB0aGF0IHJlZ1QzIGlz
IGF2YWlsYWJsZSBmb3IKICAgICAgICAgLy8gc2NyYXRjaC4KICNpZiBVU0UoSlNWQUxVRTY0KQot
ICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiwgSlNWYWx1
ZVJlZ3MgdmFsdWUgPSBKU1ZhbHVlUmVncyB7IHJlZ1QwIH0pOwotICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNZXRhZGF0YT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwg
SlNWYWx1ZVJlZ3MgdmFsdWUgPSBKU1ZhbHVlUmVncyB7IHJlZ1QwIH0pOworICAgICAgICB2b2lk
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiwgR1BSUmVnKTsKKyAgICAgICAg
dm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYsIEpTVmFsdWVSZWdzKTsK
KyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZShNZXRhZGF0YSYsIEdQUlJlZyk7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1l
dGFkYXRhPiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEmLCBKU1ZhbHVlUmVn
cyk7CiAjZWxzZQotICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9m
aWxlJiwgSlNWYWx1ZVJlZ3MgdmFsdWUgPSBKU1ZhbHVlUmVncyB7IHJlZ1QxLCByZWdUMCB9KTsK
LSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzIHZhbHVlID0gSlNWYWx1ZVJlZ3MgeyByZWdU
MSwgcmVnVDAgfSk7CisgICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVBy
b2ZpbGUmLCBKU1ZhbHVlUmVncyk7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRh
PiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEmLCBKU1ZhbHVlUmVncyk7CiAj
ZW5kaWYKIAogICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGVJZlByb2ZpbGVkT3Bj
b2RlKC4uLik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcAppbmRleCA1NTY1Nzdl
YjBhYzk3NDkzOWNmOGZiYjMxZTZhZDY1ZmExZDRhNmFiLi5kMTU5NjNiZWFkMjUzNWFlNDlmMWIw
NWQ1MDUxZjcxYjA1Mzg3NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVENhbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAK
QEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4K
IHZvaWQgSklUOjplbWl0UHV0Q2FsbFJlc3VsdChjb25zdCBPcCYgYnl0ZWNvZGUpCiB7Ci0gICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwor
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
LCByZWdUMCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlvbkZvcihieXRl
Y29kZSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSkudmlydHVhbFJlZ2lzdGVyKCksIHJl
Z1QwKTsKIH0KIApAQCAtNDA1LDcgKzQwNSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2l0ZXJhdG9y
X29wZW4oY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgIGFkZFNsb3dDYXNlKGdl
bi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwg
cmVnVDApOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoYnl0ZWNvZGUubV9uZXh0KTsKIAog
ICAgIGZhc3RDYXNlLmxpbmsodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENh
bGwzMl82NC5jcHAKaW5kZXggZDZhNzVjZTg0ZTRiNTMyMzYwODk5MjhjY2MzOWM5YTIxMzc4YWUz
YS4uYmUzNWZjYTkyZGUxNDg1Zjc1ZDFmMzJlZmVmMmE5YWZkYmUyODQ2YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcApAQCAtNTIsNyArNTIsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE9wPgogdm9pZCBKSVQ6OmVtaXRQdXRDYWxs
UmVzdWx0KGNvbnN0IE9wJiBieXRlY29kZSkKIHsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpTVmFsdWVSZWdzKHJlZ1QxLCBy
ZWdUMCkpOwogICAgIGVtaXRTdG9yZShkZXN0aW5hdGlvbkZvcihieXRlY29kZSwgbV9ieXRlY29k
ZUluZGV4LmNoZWNrcG9pbnQoKSkudmlydHVhbFJlZ2lzdGVyKCksIHJlZ1QxLCByZWdUMCk7CiB9
CiAKQEAgLTQwMiw2ICs0MDIsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9vcGVuKGNv
bnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICBHUFJSZWcgdGFnTmV4dEdQUiA9IHRh
Z0l0ZXJhdG9yR1BSOwogICAgIEdQUlJlZyBwYXlsb2FkTmV4dEdQUiA9IHBheWxvYWRJdGVyYXRv
ckdQUjsKIAorICAgIEpTVmFsdWVSZWdzIG5leHRSZWdzID0gSlNWYWx1ZVJlZ3ModGFnTmV4dEdQ
UiwgcGF5bG9hZE5leHRHUFIpOworCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAg
ICAgIG1fY29kZUJsb2NrLAogICAgICAgICBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksCkBA
IC00MDksMTUgKzQxMSwxNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pdGVyYXRvcl9vcGVuKGNvbnN0
IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2
YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVG
cm9tSW1tb3J0YWxJZGVudGlmaWVyKGlkZW50LT5pbXBsKCkpLAogICAgICAgICBKU1ZhbHVlUmVn
cyh0YWdJdGVyYXRvckdQUiwgcGF5bG9hZEl0ZXJhdG9yR1BSKSwKLSAgICAgICAgSlNWYWx1ZVJl
Z3ModGFnTmV4dEdQUiwgcGF5bG9hZE5leHRHUFIpLAorICAgICAgICBuZXh0UmVncywKICAgICAg
ICAgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgo
KnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRC
eUlkcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUu
bWV0YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGJ5dGVj
b2RlLm1fbmV4dCwgSlNWYWx1ZVJlZ3ModGFnTmV4dEdQUiwgcGF5bG9hZE5leHRHUFIpKTsKKyAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwg
bmV4dFJlZ3MpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoYnl0ZWNvZGUubV9uZXh0LCBu
ZXh0UmVncyk7CiAKICAgICBmYXN0Q2FzZS5saW5rKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaAppbmRleCAzYWJiMWY2ZjJjODEwNjc3Y2U3MzE4NjQ0NzRmZDI0
YTc4OTFiMjI2Li5jODQxMTZlMzcwNDFmZTM3MDJlNWZjNzc3N2Q2YjJiYzgyNWI3YmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtMTU3LDEwICsxNTcsMTEgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+CiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHRX
aXRoUHJvZmlsZShNZXRhZGF0YSYgbWV0YWRhdGEsIGNvbnN0IEZ1bmN0aW9uUHRyPENGdW5jdGlv
blB0clRhZz4gZnVuY3Rpb24sIFZpcnR1YWxSZWdpc3RlciBkc3QpCiB7CiAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soZnVuY3Rpb24p
OwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEpOwogI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShtZXRhZGF0YSwgcmV0dXJuVmFsdWVHUFIp
OwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0LCByZXR1cm5WYWx1ZUdQUik7CiAjZWxz
ZQorICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEsIEpTVmFsdWVSZWdzKHJldHVy
blZhbHVlR1BSMiwgcmV0dXJuVmFsdWVHUFIpKTsKICAgICBlbWl0U3RvcmUoZHN0LCByZXR1cm5W
YWx1ZUdQUjIsIHJldHVyblZhbHVlR1BSKTsKICNlbmRpZgogICAgIHJldHVybiBjYWxsOwpAQCAt
MzI3LDcgKzMyOCwxMSBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
VmFsdWVQcm9maWxlJiB2YWx1ZVByb2ZpbGUsIEpTVmFsdWVSZWdzCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBPcD4KIGlubGluZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxkZWNsdHlwZShPcDo6
TWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvZmlsZT46OnZhbHVlLCB2b2lkPiBKSVQ6OmVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGVJZlByb2ZpbGVkT3Bjb2RlKE9wIGJ5dGVjb2RlKQogewotICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUu
bWV0YWRhdGEobV9jb2RlQmxvY2spLCByZWdUMCk7CisjZWxzZQorICAgIGVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1ZhbHVlUmVncyhyZWdU
MSwgcmVnVDApKTsKKyNlbmRpZgogfQogCiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGVJZlByb2ZpbGVkT3Bjb2RlKC4uLikgeyB9CkBAIC0zNDAsNiArMzQ1LDE5IEBAIGlu
bGluZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYgbWV0YWRhdGEs
IEpTVmFsdWVSZWdzIHZhbHVlKQogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUodmFsdWVQcm9m
aWxlRm9yKG1ldGFkYXRhLCBtX2J5dGVjb2RlSW5kZXguY2hlY2twb2ludCgpKSwgdmFsdWUpOwog
fQogCisjaWYgVVNFKEpTVkFMVUU2NCkKK2lubGluZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZShWYWx1ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZSwgR1BSUmVnIHJlc3VsdFJlZykKK3sK
KyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKHZhbHVlUHJvZmlsZSwgSlNWYWx1ZVJlZ3MocmVz
dWx0UmVnKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPgoraW5saW5lIHZvaWQg
SklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiBtZXRhZGF0YSwgR1BSUmVnIHJl
c3VsdFJlZykKK3sKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCBKU1ZhbHVl
UmVncyhyZXN1bHRSZWcpKTsKK30KKyNlbmRpZgorCiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklEIGNlbGwsIFJlZ2lzdGVySUQgaW5kZXhp
bmdUeXBlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAgICBpZiAoc2hvdWxkRW1p
dFByb2ZpbGluZygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApp
bmRleCA0NzU3YWM2ODI5NDA4YTJkZDNkMGFhNmIyZTY1ZGU2MjQ4NGFkMzIxLi5iYTEwYzg5YjU2
NDY3ZTJlNTE2MGVhYjg1ZTAxZjdkY2VmNzMwODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTc3Nyw3ICs3NzcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90
b19udW1iZXIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAg
ICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdE51bWJlcihyZWdUMCkpOwogCi0gICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZWdUMCk7
CiAgICAgaWYgKHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3Rlcihkc3RWUmVnKTsKIH0KQEAgLTc5Nyw3ICs3OTcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90
b19udW1lcmljKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgYWRk
U2xvd0Nhc2UoYnJhbmNoSWZOb3ROdW1iZXIocmVnVDApKTsKICAgICBpc0JpZ0ludC5saW5rKHRo
aXMpOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2Nv
ZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEo
bV9jb2RlQmxvY2spLCByZWdUMCk7CiAgICAgaWYgKHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3RWUmVnKTsKIH0KQEAgLTgyNCw3ICs4MjQsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF90b19vYmplY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdENlbGwocmVnVDApKTsKICAg
ICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdE9iamVjdChyZWdUMCkpOwogCi0gICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZWdUMCk7
CiAgICAgaWYgKHNyY1ZSZWcgIT0gZHN0VlJlZykKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3Rlcihkc3RWUmVnKTsKIH0KQEAgLTg3Myw3ICs4NzMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9j
YXRjaChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBidWZm
ZXItPmZvckVhY2goWyZdIChWYWx1ZVByb2ZpbGVBbmRWaXJ0dWFsUmVnaXN0ZXImIHByb2ZpbGUp
IHsKICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlZ3MocmVnVDApOwogICAgICAgICAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3Rlcihwcm9maWxlLm1fb3BlcmFuZCwgcmVncyk7Ci0gICAgICAgICAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKHN0YXRpY19jYXN0PFZhbHVlUHJvZmlsZSY+KHByb2Zp
bGUpKTsKKyAgICAgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoc3RhdGljX2Nhc3Q8VmFs
dWVQcm9maWxlJj4ocHJvZmlsZSksIHJlZ3MpOwogICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYg
Ly8gRU5BQkxFKERGR19KSVQpCkBAIC0xNTM5LDcgKzE1MzksNyBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9nZXRfZGlyZWN0X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgbG9hZDY0KEJhc2VJbmRleChyZWdUMCwgcmVnVDEsIFRpbWVzRWlnaHQsIG9mZnNldE9m
Rmlyc3RQcm9wZXJ0eSksIHJlZ1QwKTsKICAgICAKICAgICBkb25lLmxpbmsodGhpcyk7Ci0gICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwor
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
LCByZWdUMCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlZ1QwKTsKIH0KIApA
QCAtMTc1OSw3ICsxNzU5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2FyZ3VtZW50KGNvbnN0
IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbW92ZVZhbHVlKGpzVW5kZWZp
bmVkKCksIHJlc3VsdFJlZ3MpOwogCiAgICAgZG9uZS5saW5rKHRoaXMpOwotICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0
UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlc3VsdFJlZ3MpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXgg
MDUyYzBlZDAzYTY2YTIyMjdhN2Y2M2RjZmMwYjE2YWEwYzBiODNhNS4uZWJmYzBiNjkwMWM1MTRh
YWVhNDllZDFkNTVkNmI4Nzc5NGEzNmZmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtODYwLDcgKzg2MCw3IEBAIHZvaWQgSklUOjplbWl0
X29wX3RvX251bWJlcihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IGFkZFNsb3dDYXNlKGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpMb3dlc3RUYWcpKSk7CiAgICAgaXNJbnQzMi5saW5rKHRoaXMpOwogCi0gICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBK
U1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBpZiAoc3JjICE9IGRzdCkKICAgICAgICAg
ZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KQEAgLTg4Miw3ICs4ODIsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF90b19udW1lcmljKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3ROdW1iZXIoYXJndW1lbnRWYWx1ZVJl
Z3MsIHJlZ1QyKSk7CiAgICAgaXNCaWdJbnQubGluayh0aGlzKTsKIAotICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFs
dWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJl
Z3MocmVnVDEsIHJlZ1QwKSk7CiAgICAgaWYgKHNyYyAhPSBkc3QpCiAgICAgICAgIGVtaXRTdG9y
ZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9CkBAIC05MTMsNyArOTEzLDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfdG9fb2JqZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RDZWxsKHJlZ1QxKSk7CiAgICAgYWRkU2xvd0Nhc2Uo
YnJhbmNoSWZOb3RPYmplY3QocmVnVDApKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
Ynl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJl
Z1QwKSk7CiAgICAgaWYgKHNyYyAhPSBkc3QpCiAgICAgICAgIGVtaXRTdG9yZShkc3QsIHJlZ1Qx
LCByZWdUMCk7CiB9CkBAIC05NzAsNyArOTcwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2go
Y29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgYnVmZmVyLT5m
b3JFYWNoKFsmXSAoVmFsdWVQcm9maWxlQW5kVmlydHVhbFJlZ2lzdGVyJiBwcm9maWxlKSB7CiAg
ICAgICAgICAgICBKU1ZhbHVlUmVncyByZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgICAgICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb2ZpbGUubV9vcGVyYW5kLCByZWdzKTsKLSAgICAgICAg
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoc3RhdGljX2Nhc3Q8VmFsdWVQcm9maWxlJj4ocHJv
ZmlsZSkpOworICAgICAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShzdGF0aWNfY2FzdDxW
YWx1ZVByb2ZpbGUmPihwcm9maWxlKSwgcmVncyk7CiAgICAgICAgIH0pOwogICAgIH0KICNlbmRp
ZiAvLyBFTkFCTEUoREZHX0pJVCkKQEAgLTEyOTgsNyArMTI5OCw3IEBAIHZvaWQgSklUOjplbWl0
X29wX2dldF9kaXJlY3RfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICBsb2FkMzIoQmFzZUluZGV4KHJlZ1QwLCByZWdUMiwgVGltZXNFaWdodCwgb2Zmc2V0
T2ZGaXJzdFByb3BlcnR5ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxv
YWQpKSwgcmVnVDApOwogICAgIAogICAgIGRvbmUubGluayh0aGlzKTsKLSAgICBlbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIEpTVmFsdWVS
ZWdzKHJlZ1QxLCByZWdUMCkpOwogICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
aW5kZXggNjEyYzQ4ZmZhMmI4ODI4OTcyOGU2ZDgwOTJmYTQyZmM1M2I0Yzg2Yi4uNzUwMmU0ODBl
YzM0NDU0N2MyYzVlYzE4NzkxN2JhMGY5M2U5NTE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTY0LDE2ICs2NCwxOCBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7
CiAgICAgICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHBy
b2ZpbGUpOwogCisgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhy
ZWdUMCk7CisKICAgICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAogICAgICAgICAgICAg
bV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleCht
X2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwgUmVnaXN0ZXJTZXQ6OnN0dWJV
bmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBK
U1ZhbHVlUmVncyhyZWdUMSksIEpTVmFsdWVSZWdzKHJlZ1QwKSk7CisgICAgICAgICAgICBKU1Zh
bHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSwgcmVzdWx0UmVncyk7CiAgICAgICAg
IGlmIChpc09wZXJhbmRDb25zdGFudEludChwcm9wZXJ0eSkpCiAgICAgICAgICAgICBnZW4uc3R1
YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKICAgICAgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgoKnRoaXMpOwogICAgICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwog
ICAgICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAgICAgICBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRS
ZWdzKTsKICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIH0KIApAQCAt
MTEwLDE0ICsxMTIsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3ByaXZhdGVfbmFtZShjb25z
dCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgZW1pdEp1bXBTbG93Q2Fz
ZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3Mg
PSBKU1ZhbHVlUmVncyhyZWdUMCk7CisKICAgICBKSVRHZXRCeVZhbEdlbmVyYXRvciBnZW4oCiAg
ICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRl
SW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6R2V0UHJpdmF0ZU5hbWUsCi0gICAg
ICAgIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3Mo
YmFzZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BSKSwgSlNWYWx1ZVJlZ3MocmVnVDApKTsK
KyAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLCBKU1ZhbHVl
UmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlHUFIpLCByZXN1bHRSZWdzKTsKICAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0
UmVncyk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCkBAIC01NzAsMTQg
KzU3NCwxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0Nl
bGwocmVnVDAsIGJhc2VWUmVnKTsKIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMCk7CisKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKICAgICAgICAg
bV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleCht
X2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCks
Ci0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRC
eUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMCksIEFjY2Vzc1R5cGU6OlRyeUdldEJ5SWQpOworICAgICAgICBDYWNoZWFi
bGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2Rl
QmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgcmVzdWx0UmVncywgQWNjZXNzVHlw
ZTo6VHJ5R2V0QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFk
ZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2Vu
KTsKICAgICAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1f
Y29kZUJsb2NrKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0
YShtX2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
cmVzdWx0VlJlZyk7CiB9CiAKQEAgLTYwOSwxNCArNjE1LDE2IEBAIHZvaWQgSklUOjplbWl0X29w
X2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
IAogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZVZSZWcpOwogCisg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVSZWdzKHJlZ1QwKTsKKwogICAgIEpJ
VEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbiht
X2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVy
U2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxlSWRlbnRp
Zmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAq
aWRlbnQpLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgQWNjZXNzVHlw
ZTo6R2V0QnlJZERpcmVjdCk7CisgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZy
b21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1
ZVJlZ3MocmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NUeXBlOjpHZXRCeUlkRGlyZWN0KTsKICAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwogCi0gICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCByZXN1bHRS
ZWdzKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdFZSZWcpOwogfQogCkBAIC02
NTUsMTQgKzY2MywxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgbm90QXJyYXlMZW5ndGhNb2RlLmxp
bmsodGhpcyk7CiAgICAgfQogCisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2Nv
ZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0
ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKLSAg
ICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29k
ZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVS
ZWdzKHJlZ1QwKSwgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CisgICAgICAgIENhY2hlYWJsZUlkZW50
aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywg
KmlkZW50KSwgSlNWYWx1ZVJlZ3MocmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NUeXBlOjpHZXRC
eUlkKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2Uo
Z2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwogCi0gICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwor
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
LCByZXN1bHRSZWdzKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdFZSZWcpOwog
fQogCkBAIC02NzksMTQgKzY4OSwxNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWRfd2l0
aF90aGlzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1
bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlVlJlZyk7CiAgICAgZW1pdEp1bXBTbG93
Q2FzZUlmTm90SlNDZWxsKHJlZ1QxLCB0aGlzVlJlZyk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1
bHRSZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDApOworCiAgICAgSklUR2V0QnlJZFdpdGhUaGlzR2Vu
ZXJhdG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUlu
ZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVu
YXZhaWxhYmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0
ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNW
YWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxKSk7
CisgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRC
eUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgcmVzdWx0UmVncywgSlNWYWx1ZVJlZ3Mo
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSkpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0
aGlzKTsKICAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJ
ZHNXaXRoVGhpcy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0
ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CiAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3RlcihyZXN1bHRWUmVnKTsKIH0KIApAQCAtMTA3MSw3ICsxMDgzLDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIoZHN0KTsKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhKTsKKyAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCByZWdUMCk7CiB9CiAKIHZvaWQgSklU
OjplbWl0U2xvd19vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtMTI1
Miw3ICsxMjY0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fYXJndW1lbnRzKGNvbnN0
IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3Rlcihhcmd1bWVudHMsIHJlZ1QwKTsKICAgICBsb2FkNjQoQWRkcmVzcyhyZWdUMCwg
RGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRleCAqIHNpemVvZihXcml0ZUJh
cnJpZXI8VW5rbm93bj4pKSwgcmVnVDApOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0
ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVnVDApOwogICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIoZHN0KTsKIH0KIApAQCAtMTMxOCw3ICsxMzMwLDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfZ2V0X2ludGVybmFsX2ZpZWxkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMSk7CiAgICAgbG9h
ZFB0cihBZGRyZXNzKHJlZ1QxLCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsPD46Om9mZnNldE9m
SW50ZXJuYWxGaWVsZChpbmRleCkpLCByZWdUMCk7CiAKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKG1ldGFkYXRhKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKG1ldGFkYXRhLCByZWdU
MCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCAz
NmFlMjk2MmE0YWI1OGIxNGM2ZDA4MjI5NjIyOGQyNDY3ZDA3M2IzLi5iMTRhNTA2MzQ5NDUxNTkz
ODNlN2QwOWFiNWI5ZGU0YzM1MGRkZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTI1NCwxNiArMjU0LDE4IEBA
IHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJl
Z1QxKTsKICAgICAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdU
NCwgcHJvZmlsZSk7CiAKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IEpTVmFsdWVS
ZWdzKHJlZ1QxLCByZWdUMCk7CisKICAgICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAog
ICAgICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2Fs
bFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwgUmVnaXN0
ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICAgICAgSlNWYWx1ZVJl
Z3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwgSlNWYWx1
ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisgICAgICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9u
bHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLCByZXN1bHRSZWdzKTsKICAgICAg
ICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KHByb3BlcnR5KSkKICAgICAgICAgICAgIGdlbi5z
dHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOwogICAgICAgICBnZW4uZ2VuZXJhdGVG
YXN0UGF0aCgqdGhpcyk7CiAgICAgICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7
CiAgICAgICAgIG1fZ2V0QnlWYWxzLmFwcGVuZChnZW4pOwogCi0gICAgICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICAgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3Vs
dFJlZ3MpOwogICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogICAgIH0KIH0K
QEAgLTMwMCwxNSArMzAyLDE3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9wcml2YXRlX25hbWUo
Y29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRKdW1wU2xv
d0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5VmFsR2VuZXJh
dG9yIGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4
KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRQcml2YXRl
TmFtZSwKLSAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLCBi
YXNlR1BSLCBwcm9wZXJ0eUdQUiwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisgICAgICAg
IFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgYmFzZUdQUiwgcHJvcGVy
dHlHUFIsIHJlc3VsdFJlZ3MpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAg
ICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlWYWxzLmFwcGVu
ZChnZW4pOwogCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jaykpOwotICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3Vs
dFJlZ3MpOworICAgIGVtaXRTdG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpKTsKIH0KIAogCkBAIC01NzksMTUgKzU4MywxNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0SnVtcFNsb3dD
YXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwogCisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVn
cyA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CisKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9y
IGdlbigKICAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwg
Q2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxh
YmxlUmVnaXN0ZXJzKCksCi0gICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21J
ZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1ZVJl
Z3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgQWNjZXNz
VHlwZTo6VHJ5R2V0QnlJZCk7CisgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZy
b21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2NvZGVCbG9jaywgKmlkZW50KSwgSlNWYWx1
ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgcmVzdWx0UmVncywgQWNjZXNzVHlwZTo6VHJ5R2V0
QnlJZCk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNl
KGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRCeUlkcy5hcHBlbmQoZ2VuKTsKICAgICAK
LSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2Nr
KSk7Ci0gICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7Cisg
ICAgZW1pdFN0b3JlKGRzdCwgcmVzdWx0UmVncy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXlsb2Fk
R1BSKCkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdHJ5X2dldF9ieV9pZChjb25zdCBJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQpAQCAtNjE4LDE1ICs2MjQsMTcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90
SlNDZWxsKGJhc2UsIHJlZ1QxKTsKIAorICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApOworCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAg
ICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRl
SW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lz
dGVycygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmll
ck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdzOjpwYXls
b2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEFjY2Vzc1R5cGU6Okdl
dEJ5SWREaXJlY3QpOworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRl
bnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpTVmFsdWVSZWdz
OjpwYXlsb2FkT25seShyZWdUMCksIHJlc3VsdFJlZ3MsIEFjY2Vzc1R5cGU6OkdldEJ5SWREaXJl
Y3QpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAgICBhZGRTbG93Q2FzZShn
ZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHMuYXBwZW5kKGdlbik7CiAKLSAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7Ci0g
ICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdWx0UmVncyk7CisgICAgZW1p
dFN0b3JlKGRzdCwgcmVzdWx0UmVncy50YWdHUFIoKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJiBpdGVyKQpAQCAtNjY0LDE1ICs2NzIsMTYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5
X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIG5vdEFy
cmF5TGVuZ3RoTW9kZS5saW5rKHRoaXMpOwogICAgIH0KIAorICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIEpJVEdldEJ5SWRHZW5lcmF0
b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgp
LCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFp
bGFibGVSZWdpc3RlcnMoKSwKLSAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJv
bUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVl
UmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBBY2Nl
c3NUeXBlOjpHZXRCeUlkKTsKKyAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJv
bUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1fY29kZUJsb2NrLCAqaWRlbnQpLCBKU1ZhbHVl
UmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCByZXN1bHRSZWdzLCBBY2Nlc3NUeXBlOjpHZXRCeUlk
KTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2Vu
LnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwogCi0gICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwotICAg
IGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIHJlc3VsdFJlZ3MpOworICAgIGVtaXRT
dG9yZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsK
IH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV9pZChjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQpAQCAtNzA1LDE1ICs3MTQsMTcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dpdGhf
dGhpcyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1w
U2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SlNDZWxsKHRoaXNWUmVnLCByZWdUNCk7CiAKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKTsKKwogICAgIEpJVEdldEJ5SWRXaXRoVGhpc0dl
bmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJ
bmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJV
bmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVh
dGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVudCksIEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCks
IEpTVmFsdWVSZWdzKHJlZ1Q0LCByZWdUMykpOworICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVy
OjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2RlQmxvY2sobV9jb2RlQmxvY2ssICppZGVu
dCksIHJlc3VsdFJlZ3MsIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVS
ZWdzKHJlZ1Q0LCByZWdUMykpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKICAg
ICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIG1fZ2V0QnlJZHNXaXRoVGhp
cy5hcHBlbmQoZ2VuKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwor
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
LCByZXN1bHRSZWdzKTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZXN1bHRSZWdzLnRhZ0dQUigpLCBy
ZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRf
YnlfaWRfd2l0aF90aGlzKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZl
Y3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0xMDgzLDcgKzEwOTQsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgICAgICBlbWl0Q29kZShyZXNvbHZlVHlwZSwgZmFsc2UpOwog
ICAgICAgICBicmVhazsKICAgICB9Ci0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29k
ZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0
ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsK
ICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQogCkBAIC0xMjYzLDEyICsxMjc0
LDE0IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX2FyZ3VtZW50cyhjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIFZpcnR1YWxSZWdpc3RlciBkc3QgPSBieXRl
Y29kZS5tX2RzdDsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgYXJndW1lbnRzID0gYnl0ZWNvZGUubV9h
cmd1bWVudHM7CiAgICAgaW50IGluZGV4ID0gYnl0ZWNvZGUubV9pbmRleDsKKworICAgIEpTVmFs
dWVSZWdzIHJlc3V0bFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIAogICAg
IGVtaXRMb2FkUGF5bG9hZChhcmd1bWVudHMsIHJlZ1QwKTsKLSAgICBsb2FkMzIoQWRkcmVzcyhy
ZWdUMCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCkgKyBpbmRleCAqIHNpemVvZihX
cml0ZUJhcnJpZXI8VW5rbm93bj4pICsgVGFnT2Zmc2V0KSwgcmVnVDEpOwotICAgIGxvYWQzMihB
ZGRyZXNzKHJlZ1QwLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQoKSArIGluZGV4ICog
c2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDApOwot
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
KTsKLSAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworICAgIGxvYWQzMihBZGRyZXNz
KHJlZ1QwLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQoKSArIGluZGV4ICogc2l6ZW9m
KFdyaXRlQmFycmllcjxVbmtub3duPikgKyBUYWdPZmZzZXQpLCByZXN1dGxSZWdzLnRhZ0dQUigp
KTsKKyAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zm
c2V0KCkgKyBpbmRleCAqIHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pICsgUGF5bG9hZE9m
ZnNldCksIHJlc3V0bFJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgcmVzdXRsUmVncyk7CisgICAgZW1p
dFN0b3JlKGRzdCwgcmVzdXRsUmVncy50YWdHUFIoKSwgcmVzdXRsUmVncy5wYXlsb2FkR1BSKCkp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfdG9fYXJndW1lbnRzKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0xMjk0LDExICsxMzA3LDEzIEBAIHZvaWQgSklU
OjplbWl0X29wX2dldF9pbnRlcm5hbF9maWVsZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIFZpcnR1YWxSZWdpc3RlciBiYXNlID0gYnl0ZWNvZGUubV9iYXNlOwog
ICAgIHVuc2lnbmVkIGluZGV4ID0gYnl0ZWNvZGUubV9pbmRleDsKIAorICAgIEpTVmFsdWVSZWdz
IHJlc3VsdFJlZ3MgPSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOworCiAgICAgZW1pdExvYWRQ
YXlsb2FkKGJhc2UsIHJlZ1QyKTsKLSAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMiwgSlNJbnRlcm5h
bEZpZWxkT2JqZWN0SW1wbDw+OjpvZmZzZXRPZkludGVybmFsRmllbGQoaW5kZXgpICsgVGFnT2Zm
c2V0KSwgcmVnVDEpOwotICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBKU0ludGVybmFsRmllbGRP
YmplY3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChpbmRleCkgKyBQYXlsb2FkT2Zmc2V0
KSwgcmVnVDApOwotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEpOwotICAgIGVt
aXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgbG9hZDMyKEFkZHJlc3MocmVnVDIsIEpT
SW50ZXJuYWxGaWVsZE9iamVjdEltcGw8Pjo6b2Zmc2V0T2ZJbnRlcm5hbEZpZWxkKGluZGV4KSAr
IFRhZ09mZnNldCksIHJlc3VsdFJlZ3MudGFnR1BSKCkpOworICAgIGxvYWQzMihBZGRyZXNzKHJl
Z1QyLCBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsPD46Om9mZnNldE9mSW50ZXJuYWxGaWVsZChp
bmRleCkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUobWV0YWRhdGEsIHJlc3VsdFJlZ3MpOworICAgIGVtaXRTdG9y
ZShkc3QsIHJlc3VsdFJlZ3MudGFnR1BSKCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKIH0K
IAogdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2ludGVybmFsX2ZpZWxkKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>