<?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>224095</bug_id>
          
          <creation_ts>2021-04-01 22:42:08 -0700</creation_ts>
          <short_desc>Allow wheel events to trigger high frequency DisplayLinks</short_desc>
          <delta_ts>2021-04-02 16:05:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1746396</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-01 22:42:08 -0700</bug_when>
    <thetext>Allow wheel events to trigger high frequency DisplayLinks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746397</commentid>
    <comment_count>1</comment_count>
      <attachid>424990</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-01 22:48:49 -0700</bug_when>
    <thetext>Created attachment 424990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746398</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-01 22:49:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/76138455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746399</commentid>
    <comment_count>3</comment_count>
      <attachid>424991</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-01 23:06:09 -0700</bug_when>
    <thetext>Created attachment 424991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746595</commentid>
    <comment_count>4</comment_count>
      <attachid>425037</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-02 12:07:57 -0700</bug_when>
    <thetext>Created attachment 425037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746668</commentid>
    <comment_count>5</comment_count>
      <attachid>425037</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-04-02 14:20:08 -0700</bug_when>
    <thetext>Comment on attachment 425037
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:824
&gt; +void WebProcessPool::setDisplayLinkForDisplayWantsFullSpeedUpdates(IPC::Connection&amp; connection, WebCore::PlatformDisplayID displayID, bool wantsFullSpeedUpdates)

I do not think this is right place for this, but it seems that ship has sailed since that is where the display links are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746715</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-02 16:02:01 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 425037 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746716</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-02 16:05:39 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/275440/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424990</attachid>
            <date>2021-04-01 22:48:49 -0700</date>
            <delta_ts>2021-04-01 23:07:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224095-20210401224848.patch</filename>
            <type>text/plain</type>
            <size>19339</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiOGJjZGQwZjFmMmFhY2I5
YWZlMWYwYmE1NmFlM2QyYjc1MDdhMTMuLmMxOTU0NTQ2MDJiMjgwNjdlYTdlNDg3NzVmMGE2NmEz
N2YzZWRmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMDQtMDEgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgd2hlZWwgZXZl
bnRzIHRvIHRyaWdnZXIgaGlnaCBmcmVxdWVuY3kgRGlzcGxheUxpbmtzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQwOTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB2aWEgd2hl
ZWwgZXZlbnRzLCB3ZSBtYXkgd2FudCB0byBkcml2ZSBzY3JvbGxpbmcgdHJlZSB1cGRhdGVzCisg
ICAgICAgICh3aGljaCBhcmUgZHJpdmVuIGJ5IEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1Jl
ZnJlc2hlZCgpKSBhdCBhIGhpZ2hlciByYXRlCisgICAgICAgIHRoYW4gdGhlIG1haW4gdGhyZWFk
IGRvZXMgcmVuZGVyaW5nIHVwZGF0ZXMuCisKKyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCBnaXZl
IERpc3BsYXlMaW5rIGEgY291bnQgb2YgImZ1bGwgc3BlZWQiIGNsaWVudHMsIGFuZCB3aGVuIHRo
aXMgY291bnQgaXMKKyAgICAgICAgZ3JlYXRlciB0aGFuIHplcm8sIGhhdmUgRGlzcGxheUxpbms6
Om5vdGlmeU9ic2VydmVyc0Rpc3BsYXlXYXNSZWZyZXNoZWQoKSBzZW5kCisgICAgICAgIEV2ZW50
RGlzcGF0Y2hlciBJUEMgYXQgZnVsbCBmcmFtZXJhdGUsIHdoaWxlIHBhc3NpbmcgYSBmbGFnIGJh
c2VkIG9uIHRoZSB1c3VhbAorICAgICAgICByZWxldmFudEZvclVwZGF0ZUZyZXF1ZW5jeSgpIGFi
b3V0IHdoZXRoZXIgdG8gdXBkYXRlIHRoZSBtYWluIHRocmVhZCBmb3IgYSBnaXZlbiB1cGRhdGUu
CisKKyAgICAgICAgVGhlICJmdWxsIHNwZWVkIiBjbGllbnQgY291bnQgaXMgbWFpbnRhaW5lZCBi
eSBhIEh5c3RlcmVzaXNBY3Rpdml0eSBvbiBXZWJQYWdlUHJveHksCisgICAgICAgIHdob3NlIGlt
cHVsc2UgaXMgd2hlZWwgZXZlbnRzLiBUaGlzIHJlcGxhY2VzIGEgc2luZ2xldG9uIEh5c3RlcmVz
aXNBY3Rpdml0eSB3aGljaAorICAgICAgICB3YXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBJ
UEMgZ29lcyB0byBFdmVudERpc3BhdGNoZXIgb3IgdGhlIG1haW4gdGhyZWFkIG9mCisgICAgICAg
IHRoZSB3ZWIgcHJvY2Vzcy4KKworICAgICAgICBXZWJQYWdlUHJveHkgbmVlZHMgdG8gdHJhY2sg
dGhlIFBsYXRmb3JtRGlzcGxheUlEIGZvciB0aGUgc2NyZWVuIHRoYXQgaXRzIHZpZXcgaXMgb24s
CisgICAgICAgIHNvIGl0IGtub3dzIHdoaWNoIERpc3BsYXlMaW5rIHRvIG1lc3NhZ2UuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldERpc3BsYXlMaW5rRm9yRGlzcGxheVdhbnRzRnVs
bFNwZWVkVXBkYXRlcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Om1fd2hlZWxFdmVudEFjdGl2aXR5SHlzdGVyZXNpcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2hlZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZW5kV2hlZWxFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6U2Nyb2xsaW5nT2JzZXJ2ZXI6OndpbGxTZW5kV2hlZWxFdmVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpTY3JvbGxpbmdPYnNlcnZlcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24pOiBE
ZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGlzcGxheUxpbms6OmFkZE9ic2VydmVyKToK
KyAgICAgICAgKFdlYktpdDo6RGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVyKToKKyAgICAgICAg
KFdlYktpdDo6RGlzcGxheUxpbms6OmluY3JlbWVudEZ1bGxTcGVlZFJlcXVlc3RDbGllbnRDb3Vu
dCk6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpkZWNyZW1lbnRGdWxsU3BlZWRSZXF1
ZXN0Q2xpZW50Q291bnQpOgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5TGluazo6c2V0UHJlZmVy
cmVkRnJhbWVzUGVyU2Vjb25kKToKKyAgICAgICAgKFdlYktpdDo6RGlzcGxheUxpbms6Om5vdGlm
eU9ic2VydmVyc0Rpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
RGlzcGxheUxpbmsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpub3RpZnlTY3JvbGxp
bmdUcmVlc0Rpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3Bh
dGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLm1lc3NhZ2VzLmluOgorCiAyMDIxLTAzLTMxICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZlZWQgcHJlZmVycmVkIGZyYW1lcyBwZXIg
c2Vjb25kIGJhY2sgdG8gdGhlIFVJIHByb2Nlc3MgZm9yIGVhY2ggRGlzcGxheVJlZnJlc2hNb25p
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQppbmRleCBkNGI4ZWZjOGQwYjQwYTVmMGZiY2JkM2M3MDc2NTkzZjA3NjE5NjUy
Li4yNWNlZWIxNDkxMjExMjJiY2E1ZTMwMzcwOGYyN2M0YmZkODRmMDY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAg
LTgyMCw2ICs4MjAsMjAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0RGlzcGxheUxpbmtQcmVm
ZXJyZWRGcmFtZXNQZXJTZWNvbmQoSVBDOjpDb25uZWN0aW9uJiBjb24KICAgICAgICAgfQogICAg
IH0KIH0KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0RGlzcGxheUxpbmtGb3JEaXNwbGF5V2Fu
dHNGdWxsU3BlZWRVcGRhdGVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBib29sIHdhbnRzRnVsbFNwZWVkVXBkYXRlcykK
K3sKKyAgICBmb3IgKGF1dG8mIGRpc3BsYXlMaW5rIDogbV9kaXNwbGF5TGlua3MpIHsKKyAgICAg
ICAgaWYgKGRpc3BsYXlMaW5rLT5kaXNwbGF5SUQoKSA9PSBkaXNwbGF5SUQpIHsKKyAgICAgICAg
ICAgIGlmICh3YW50c0Z1bGxTcGVlZFVwZGF0ZXMpCisgICAgICAgICAgICAgICAgZGlzcGxheUxp
bmstPmluY3JlbWVudEZ1bGxTcGVlZFJlcXVlc3RDbGllbnRDb3VudChjb25uZWN0aW9uKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkaXNwbGF5TGluay0+ZGVjcmVtZW50RnVs
bFNwZWVkUmVxdWVzdENsaWVudENvdW50KGNvbm5lY3Rpb24pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgfQorfQorCiAjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQog
CiAvLyBGSVhNRTogRGVwcmVjYXRlZC4gTGVmdCBoZXJlIHVudGlsIGEgZmluYWwgZGVjaXNpb24g
aXMgbWFkZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc1
OGEwZjM1YWE1OTc5MzkwN2E5MTEwNTg3ZTI5ZWNiOTliMWYxZjYuLjgxOWFiNWUxMDY4ZWNmMjRh
NTFiMGQ2ZGM5MWI5MDE0YTM5OWQ0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMTg1LDcgKzE4NSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9WYWxpZGF0
aW9uQnViYmxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgotI2luY2x1ZGUgPHBhbC9IeXN0ZXJlc2lz
QWN0aXZpdHkuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0Fn
Z3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTMyNCwzNSAr
MzIzLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIERFRklORV9ERUJVR19PTkxZX0dM
T0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgd2ViUGFnZVByb3h5Q291bnRlciwgKCJX
ZWJQYWdlUHJveHkiKSk7CiAKLSNpZiBIQVZFKENWRElTUExBWUxJTkspCi1jbGFzcyBTY3JvbGxp
bmdPYnNlcnZlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Nyb2xsaW5nT2JzZXJ2ZXIp
OwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIGZyaWVuZCBOZXZlckRlc3Ryb3ll
ZDxTY3JvbGxpbmdPYnNlcnZlcj47Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFNjcm9sbGluZ09ic2Vy
dmVyJiBzaW5nbGV0b24oKTsKLQotICAgIHZvaWQgd2lsbFNlbmRXaGVlbEV2ZW50KCkKLSAgICB7
Ci0gICAgICAgIG1faHlzdGVyZXNpcy5pbXB1bHNlKCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IFNjcm9sbGluZ09ic2VydmVyKCkKLSAgICAgICAgOiBtX2h5c3RlcmVzaXMoW10oUEFMOjpIeXN0
ZXJlc2lzU3RhdGUgc3RhdGUpIHsgRGlzcGxheUxpbms6OnNldFNob3VsZFNlbmRJUENPbkJhY2tn
cm91bmRRdWV1ZShzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZCk7IH0pCi0g
ICAgewotICAgIH0KLQotICAgIFBBTDo6SHlzdGVyZXNpc0FjdGl2aXR5IG1faHlzdGVyZXNpczsK
LX07Ci0KLVNjcm9sbGluZ09ic2VydmVyJiBTY3JvbGxpbmdPYnNlcnZlcjo6c2luZ2xldG9uKCkK
LXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2Nyb2xsaW5nT2JzZXJ2ZXI+IGRldGVjdG9y
OwotICAgIHJldHVybiBkZXRlY3RvcjsKLX0KLSNlbmRpZgotCiBjbGFzcyBTdG9yYWdlUmVxdWVz
dHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0b3JhZ2VSZXF1ZXN0cyk7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxTdG9yYWdlUmVxdWVz
dHM+OwpAQCAtNTEyLDYgKzQ4Miw5IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VD
bGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUmVmCiAgICAgLCBt
X2JhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgqdGhpcykpCiAgICAg
LCBtX3dhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3cobV9jb25maWd1cmF0aW9u
LT53YWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlkTW92ZVRvV2luZG93KCkpCiAgICAgLCBtX2hhc1J1
bm5pbmdQcm9jZXNzKHByb2Nlc3Muc3RhdGUoKSAhPSBXZWJQcm9jZXNzUHJveHk6OlN0YXRlOjpU
ZXJtaW5hdGVkKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKKyAgICAsIG1fd2hlZWxFdmVudEFj
dGl2aXR5SHlzdGVyZXNpcyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgd2hl
ZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKHN0YXRlKTsgfSkKKyNlbmRpZgogICAgICwgbV9jb250
cm9sbGVkQnlBdXRvbWF0aW9uKG1fY29uZmlndXJhdGlvbi0+aXNDb250cm9sbGVkQnlBdXRvbWF0
aW9uKCkpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLCBtX2lzU21hcnRJbnNlcnREZWxldGVF
bmFibGVkKFRleHRDaGVja2VyOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpKQpAQCAtMjcy
OSwxMCArMjcwMiwxOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlV2hlZWxFdmVudChjb25z
dCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojp3aGVlbEV2ZW50SHlzdGVyZXNpc1VwZGF0ZWQoUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3Rh
dGUpCit7CisgICAgaWYgKCFtX3Byb2Nlc3MtPmhhc0Nvbm5lY3Rpb24oKSB8fCAhbV9kaXNwbGF5
SUQpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgd2FudHNGdWxsU3BlZWRVcGRhdGVzID0g
c3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQ7CisgICAgcHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkuc2V0RGlzcGxheUxpbmtGb3JEaXNwbGF5V2FudHNGdWxsU3BlZWRVcGRhdGVz
KCptX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSwgKm1fZGlzcGxheUlELCB3YW50c0Z1bGxTcGVlZFVw
ZGF0ZXMpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZFdoZWVsRXZlbnQoY29uc3QgV2Vi
V2hlZWxFdmVudCYgZXZlbnQpCiB7CiAjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQotICAgIFNjcm9s
bGluZ09ic2VydmVyOjpzaW5nbGV0b24oKS53aWxsU2VuZFdoZWVsRXZlbnQoKTsKKyAgICBtX3do
ZWVsRXZlbnRBY3Rpdml0eUh5c3RlcmVzaXMuaW1wdWxzZSgpOwogI2VuZGlmCiAKICAgICBzZW5k
KApAQCAtMzc0OSw2ICszNzMxLDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEludHJpbnNpY0Rl
dmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgT3B0aW9u
YWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpCiB7CisgICAgbV9kaXNwbGF5SUQg
PSBkaXNwbGF5SUQ7CisKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJl
dHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlYTliMGMx
NGExZGM2ZGE4ODc0NGM2YWYwNjM3ZmU5NDEyNGYxM2ZjLi5kZTZlODIyNjM5OTU2ZDhkNjk5ZTJh
MjRiNjMxY2E0N2Q4NjVjN2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMTEyLDYgKzExMiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgog
I2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxwYWwvSHlzdGVyZXNpc0FjdGl2aXR5Lmg+CiAj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0
ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMjI5Niw2ICsyMjk3LDEwIEBAIHBy
aXZhdGU6CiAKICAgICBXZWJXaGVlbEV2ZW50Q29hbGVzY2VyJiB3aGVlbEV2ZW50Q29hbGVzY2Vy
KCk7CiAKKyNpZiBIQVZFKENWRElTUExBWUxJTkspCisgICAgdm9pZCB3aGVlbEV2ZW50SHlzdGVy
ZXNpc1VwZGF0ZWQoUEFMOjpIeXN0ZXJlc2lzU3RhdGUpOworI2VuZGlmCisKICNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgdXBkYXRlVG91Y2hFdmVudFRyYWNraW5nKGNvbnN0IFdl
YlRvdWNoRXZlbnQmKTsKICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgdG91Y2hFdmVudFRyYWNr
aW5nVHlwZShjb25zdCBXZWJUb3VjaEV2ZW50JikgY29uc3Q7CkBAIC0yNjUyLDYgKzI2NTcsMTEg
QEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJXaGVlbEV2ZW50Q29hbGVzY2Vy
PiBtX3doZWVsRXZlbnRDb2FsZXNjZXI7CiAKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpQbGF0Zm9y
bURpc3BsYXlJRD4gbV9kaXNwbGF5SUQ7CisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQorICAgIFBB
TDo6SHlzdGVyZXNpc0FjdGl2aXR5IG1fd2hlZWxFdmVudEFjdGl2aXR5SHlzdGVyZXNpczsKKyNl
bmRpZgorCiAgICAgRGVxdWU8TmF0aXZlV2ViTW91c2VFdmVudD4gbV9tb3VzZUV2ZW50UXVldWU7
CiAgICAgRGVxdWU8TmF0aXZlV2ViS2V5Ym9hcmRFdmVudD4gbV9rZXlFdmVudFF1ZXVlOwogI2lm
IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAppbmRleCAzMTMwMzAyMjVlOTVjMWYwNzU1NmVhYThiYjZmOGI5M2FmODAzNTU4
Li4wZTM5Yzc5ZGE4Mzc0NzJkOWQxZDUyYzc4ODNjY2U5MDU2ODVmNGE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTI0Myw2ICsyNDMsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdG9wRGlzcGxheUxpbmsoSVBDOjpDb25uZWN0aW9uJiwgRGlzcGxheUxpbmtP
YnNlcnZlcklELCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAgICAgdm9pZCBzZXREaXNw
bGF5TGlua1ByZWZlcnJlZEZyYW1lc1BlclNlY29uZChJUEM6OkNvbm5lY3Rpb24mLCBEaXNwbGF5
TGlua09ic2VydmVySUQsIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBXZWJDb3JlOjpGcmFt
ZXNQZXJTZWNvbmQpOwogICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24m
KTsKKworICAgIHZvaWQgc2V0RGlzcGxheUxpbmtGb3JEaXNwbGF5V2FudHNGdWxsU3BlZWRVcGRh
dGVzKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBib29sIHdh
bnRzRnVsbFNwZWVkVXBkYXRlcyk7CiAjZW5kaWYKIAogICAgIHZvaWQgYWRkU3VwcG9ydGVkUGx1
Z2luKFN0cmluZyYmIG1hdGNoaW5nRG9tYWluLCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmlu
Zz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3RyaW5nPiBleHRlbnNpb25zKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwCmluZGV4IDhiOGM5YzY5ZjNjZjg1ZWY1
MTdlMDE4OGVmNTEwYjM0Yjc1N2IxYjIuLjA1NjFlY2VjY2VkZWU5NWExZjg1YzhmMGJlZTMyMWQy
YjBmZDYzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5
TGluay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNw
cApAQCAtODksOCArODksOCBAQCB2b2lkIERpc3BsYXlMaW5rOjphZGRPYnNlcnZlcihJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRAogICAgIHsKICAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOwogICAgICAgICBtX29i
c2VydmVycy5lbnN1cmUoJmNvbm5lY3Rpb24sIFtdIHsKLSAgICAgICAgICAgIHJldHVybiBWZWN0
b3I8T2JzZXJ2ZXJJbmZvPiB7IH07Ci0gICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQo
eyBvYnNlcnZlcklELCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQgfSk7CisgICAgICAgICAgICBy
ZXR1cm4gQ29ubmVjdGlvbkNsaWVudEluZm8geyB9OworICAgICAgICB9KS5pdGVyYXRvci0+dmFs
dWUub2JzZXJ2ZXJzLmFwcGVuZCh7IG9ic2VydmVySUQsIHByZWZlcnJlZEZyYW1lc1BlclNlY29u
ZCB9KTsKICAgICB9CiAKICAgICBpZiAoIUNWRGlzcGxheUxpbmtJc1J1bm5pbmcobV9kaXNwbGF5
TGluaykpIHsKQEAgLTExMiwxMiArMTEyLDE2IEBAIHZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9i
c2VydmVyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGlzcGxheUxpbmtPYnNlcnZlCiAg
ICAgYXV0byBpdCA9IG1fb2JzZXJ2ZXJzLmZpbmQoJmNvbm5lY3Rpb24pOwogICAgIGlmIChpdCA9
PSBtX29ic2VydmVycy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGJvb2wgcmVtb3ZlZCA9
IGl0LT52YWx1ZS5yZW1vdmVGaXJzdE1hdGNoaW5nKFtvYnNlcnZlcklEXShjb25zdCBhdXRvJiB2
YWx1ZSkgeworCisgICAgYXV0byYgY29ubmVjdGlvbkluZm8gPSBpdC0+dmFsdWU7CisKKyAgICBi
b29sIHJlbW92ZWQgPSBjb25uZWN0aW9uSW5mby5vYnNlcnZlcnMucmVtb3ZlRmlyc3RNYXRjaGlu
Zyhbb2JzZXJ2ZXJJRF0oY29uc3QgYXV0byYgdmFsdWUpIHsKICAgICAgICAgcmV0dXJuIHZhbHVl
Lm9ic2VydmVySUQgPT0gb2JzZXJ2ZXJJRDsKICAgICB9KTsKICAgICBBU1NFUlRfVU5VU0VEKHJl
bW92ZWQsIHJlbW92ZWQpOwotICAgIGlmIChpdC0+dmFsdWUuaXNFbXB0eSgpKQotICAgICAgICBt
X29ic2VydmVycy5yZW1vdmUoaXQpOworCisgICAgLy8gS2VlcCB0aGUgY29ubmVjdGlvbkluZm8g
aW4gbV9vYnNlcnZlcnMgZm9yIHRoaXMgY29ubmVjdGlvbiwgYmVjYXVzZSB3ZSBuZWVkIHRvIG1h
aW50YWluCisgICAgLy8gZnVsbFNwZWVkVXBkYXRlc0NsaWVudENvdW50LgogCiAgICAgLy8gV2Ug
ZG8gbm90IHN0b3AgdGhlIGRpc3BsYXkgbGluayByaWdodCBhd2F5IHdoZW4gfG1fb2JzZXJ2ZXJz
fCBiZWNvbWVzIGVtcHR5LiBJbnN0ZWFkLCB3ZQogICAgIC8vIGxldCB0aGUgZGlzcGxheSBsaW5r
IGZpcmUgdXAgdG8gfG1heEZpcmVDb3VudFdpdGhvdXRPYnNlcnZlcnN8IHRpbWVzIHdpdGhvdXQg
b2JzZXJ2ZXJzIHRvIGF2b2lkCkBAIC0xMzYsNiArMTQwLDMwIEBAIHZvaWQgRGlzcGxheUxpbms6
OnJlbW92ZU9ic2VydmVycyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgLy8ga2ls
bGluZyAmIHJlc3RhcnRpbmcgdG9vIG1hbnkgdGhyZWFkcyB3aGVuIG9ic2VydmVycyBnZXRzIHJl
bW92ZWQgJiBhZGRlZCBpbiBxdWljayBzdWNjZXNzaW9uLgogfQogCit2b2lkIERpc3BsYXlMaW5r
OjppbmNyZW1lbnRGdWxsU3BlZWRSZXF1ZXN0Q2xpZW50Q291bnQoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2Nr
KTsKKworICAgIGF1dG8mIGNvbm5lY3Rpb25JbmZvID0gbV9vYnNlcnZlcnMuZW5zdXJlKCZjb25u
ZWN0aW9uLCBbXSB7CisgICAgICAgIHJldHVybiBDb25uZWN0aW9uQ2xpZW50SW5mbyB7IH07Cisg
ICAgfSkuaXRlcmF0b3ItPnZhbHVlOzsKKworICAgICsrY29ubmVjdGlvbkluZm8uZnVsbFNwZWVk
VXBkYXRlc0NsaWVudENvdW50OworfQorCit2b2lkIERpc3BsYXlMaW5rOjpkZWNyZW1lbnRGdWxs
U3BlZWRSZXF1ZXN0Q2xpZW50Q291bnQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorewor
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKworICAgIGF1dG8g
aXQgPSBtX29ic2VydmVycy5maW5kKCZjb25uZWN0aW9uKTsKKyAgICBpZiAoaXQgPT0gbV9vYnNl
cnZlcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGNvbm5lY3Rpb25JbmZv
ID0gaXQtPnZhbHVlOworICAgIEFTU0VSVChjb25uZWN0aW9uSW5mby5mdWxsU3BlZWRVcGRhdGVz
Q2xpZW50Q291bnQpOworICAgIC0tY29ubmVjdGlvbkluZm8uZnVsbFNwZWVkVXBkYXRlc0NsaWVu
dENvdW50OworfQorCiB2b2lkIERpc3BsYXlMaW5rOjpzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNv
bmQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEaXNwbGF5TGlua09ic2VydmVySUQgb2Jz
ZXJ2ZXJJRCwgV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIHByZWZlcnJlZEZyYW1lc1BlclNlY29u
ZCkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiW1VJIF0g
RGlzcGxheUxpbms6OnNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCAtIGRpc3BsYXkgIiA8PCBt
X2Rpc3BsYXlJRCA8PCAiIG9ic2VydmVyICIgPDwgb2JzZXJ2ZXJJRCA8PCAiIGZwcyAiIDw8IHBy
ZWZlcnJlZEZyYW1lc1BlclNlY29uZCk7CkBAIC0xNDYsMTIgKzE3NCwxMyBAQCB2b2lkIERpc3Bs
YXlMaW5rOjpzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBEaXNwbAogICAgIGlmIChpdCA9PSBtX29ic2VydmVycy5lbmQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXV0byBpbmRleCA9IGl0LT52YWx1ZS5maW5kTWF0Y2hpbmcoW29ic2Vy
dmVySURdKGNvbnN0IGF1dG8mIG9ic2VydmVyKSB7CisgICAgYXV0byYgY29ubmVjdGlvbkluZm8g
PSBpdC0+dmFsdWU7CisgICAgYXV0byBpbmRleCA9IGNvbm5lY3Rpb25JbmZvLm9ic2VydmVycy5m
aW5kTWF0Y2hpbmcoW29ic2VydmVySURdKGNvbnN0IGF1dG8mIG9ic2VydmVyKSB7CiAgICAgICAg
IHJldHVybiBvYnNlcnZlci5vYnNlcnZlcklEID09IG9ic2VydmVySUQ7CiAgICAgfSk7CiAKICAg
ICBpZiAoaW5kZXggIT0gbm90Rm91bmQpCi0gICAgICAgIGl0LT52YWx1ZVtpbmRleF0ucHJlZmVy
cmVkRnJhbWVzUGVyU2Vjb25kID0gcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kOworICAgICAgICBj
b25uZWN0aW9uSW5mby5vYnNlcnZlcnNbaW5kZXhdLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9
IHByZWZlcnJlZEZyYW1lc1BlclNlY29uZDsKIH0KIAogQ1ZSZXR1cm4gRGlzcGxheUxpbms6OmRp
c3BsYXlMaW5rQ2FsbGJhY2soQ1ZEaXNwbGF5TGlua1JlZiBkaXNwbGF5TGlua1JlZiwgY29uc3Qg
Q1ZUaW1lU3RhbXAqLCBjb25zdCBDVlRpbWVTdGFtcCosIENWT3B0aW9uRmxhZ3MsIENWT3B0aW9u
RmxhZ3MqLCB2b2lkKiBkYXRhKQpAQCAtMTgxLDE5ICsyMTAsMTkgQEAgdm9pZCBEaXNwbGF5TGlu
azo6bm90aWZ5T2JzZXJ2ZXJzRGlzcGxheVdhc1JlZnJlc2hlZCgpCiAgICAgICAgIHJldHVybiBv
YnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNvbmQ7CiAgICAgfTsKIAotICAgIGZvciAoYXV0byYgW2Nv
bm5lY3Rpb24sIG9ic2VydmVyc10gOiBtX29ic2VydmVycykgewotICAgICAgICBhdXRvIG9ic2Vy
dmVyc01heEZyYW1lc1BlclNlY29uZCA9IG1heEZyYW1lc1BlclNlY29uZChvYnNlcnZlcnMpOwot
ICAgICAgICBhdXRvIHVwZGF0ZUlzUmVsZXZhbnQgPSBtX2N1cnJlbnRVcGRhdGUucmVsZXZhbnRG
b3JVcGRhdGVGcmVxdWVuY3kob2JzZXJ2ZXJzTWF4RnJhbWVzUGVyU2Vjb25kLnZhbHVlT3IoV2Vi
Q29yZTo6RnVsbFNwZWVkRnJhbWVzUGVyU2Vjb25kKSk7CisgICAgZm9yIChhdXRvJiBbY29ubmVj
dGlvbiwgY29ubmVjdGlvbkluZm9dIDogbV9vYnNlcnZlcnMpIHsKKyAgICAgICAgaWYgKGNvbm5l
Y3Rpb25JbmZvLm9ic2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIltVSSBdIERpc3Bs
YXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwgIiAoZGlzcGxheSBmcHMgIiA8
PCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kIDw8ICIpIHVwZGF0ZSAiIDw8IG1fY3Vy
cmVudFVwZGF0ZSA8PCAiICIgPDwgb2JzZXJ2ZXJzLnNpemUoKQotICAgICAgICAgICAgPDwgIiBv
YnNlcnZlcnMsIG9uIGJhY2tncm91bmQgcXVldWUgIiA8PCBzaG91bGRTZW5kSVBDT25CYWNrZ3Jv
dW5kUXVldWUgPDwgIiBtYXhGcmFtZXNQZXJTZWNvbmQgIiA8PCBvYnNlcnZlcnNNYXhGcmFtZXNQ
ZXJTZWNvbmQgPDwgIiByZWxldmFudCAiIDw8IHVwZGF0ZUlzUmVsZXZhbnQpOworICAgICAgICBh
dXRvIG9ic2VydmVyc01heEZyYW1lc1BlclNlY29uZCA9IG1heEZyYW1lc1BlclNlY29uZChjb25u
ZWN0aW9uSW5mby5vYnNlcnZlcnMpOworICAgICAgICBhdXRvIG1haW5UaHJlYWRXYW50c1VwZGF0
ZSA9IG1fY3VycmVudFVwZGF0ZS5yZWxldmFudEZvclVwZGF0ZUZyZXF1ZW5jeShvYnNlcnZlcnNN
YXhGcmFtZXNQZXJTZWNvbmQudmFsdWVPcihXZWJDb3JlOjpGdWxsU3BlZWRGcmFtZXNQZXJTZWNv
bmQpKTsKIAotICAgICAgICBpZiAoIXVwZGF0ZUlzUmVsZXZhbnQpCi0gICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIltV
SSBdIERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwgIiAoZGlzcGxh
eSBmcHMgIiA8PCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kIDw8ICIpIHVwZGF0ZSAi
IDw8IG1fY3VycmVudFVwZGF0ZSA8PCAiICIgPDwgY29ubmVjdGlvbkluZm8ub2JzZXJ2ZXJzLnNp
emUoKQorICAgICAgICAgICAgPDwgIiBvYnNlcnZlcnMsIG9uIGJhY2tncm91bmQgcXVldWUgIiA8
PCBzaG91bGRTZW5kSVBDT25CYWNrZ3JvdW5kUXVldWUgPDwgIiBtYXhGcmFtZXNQZXJTZWNvbmQg
IiA8PCBvYnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNvbmQgPDwgIiBmdWxsIHNwZWVkIGNsaWVudHMg
IiA8PCBjb25uZWN0aW9uSW5mby5mdWxsU3BlZWRVcGRhdGVzQ2xpZW50Q291bnQgPDwgIiByZWxl
dmFudCAiIDw8IG1haW5UaHJlYWRXYW50c1VwZGF0ZSk7CiAKLSAgICAgICAgaWYgKHNob3VsZFNl
bmRJUENPbkJhY2tncm91bmRRdWV1ZSkKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6RGlzcGxheVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCwg
bV9jdXJyZW50VXBkYXRlKSwgMCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKGNvbm5lY3Rp
b25JbmZvLmZ1bGxTcGVlZFVwZGF0ZXNDbGllbnRDb3VudCkgeworICAgICAgICAgICAgY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpEaXNwbGF5V2FzUmVmcmVzaGVk
KG1fZGlzcGxheUlELCBtX2N1cnJlbnRVcGRhdGUsIG1haW5UaHJlYWRXYW50c1VwZGF0ZSksIDAp
OworICAgICAgICB9IGVsc2UgaWYgKG1haW5UaHJlYWRXYW50c1VwZGF0ZSkKICAgICAgICAgICAg
IGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRpc3BsYXlXYXNSZWZyZXNo
ZWQobV9kaXNwbGF5SUQsIG1fY3VycmVudFVwZGF0ZSksIDApOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaAppbmRleCA2YjY2OGZkY2IwZTM1OThiOTYx
NTc5YzFjNzNiNWUyODZkODdjNGVlLi45ZDBiNGZiZjUwODExOWZlNGFkMjM5N2JmMThmZDU1MjI1
M2RmZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxp
bmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaApAQCAt
NTEsNiArNTEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihJUEM6OkNvbm5l
Y3Rpb24mLCBEaXNwbGF5TGlua09ic2VydmVySUQpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXJz
KElQQzo6Q29ubmVjdGlvbiYpOwogCisgICAgdm9pZCBpbmNyZW1lbnRGdWxsU3BlZWRSZXF1ZXN0
Q2xpZW50Q291bnQoSVBDOjpDb25uZWN0aW9uJik7CisgICAgdm9pZCBkZWNyZW1lbnRGdWxsU3Bl
ZWRSZXF1ZXN0Q2xpZW50Q291bnQoSVBDOjpDb25uZWN0aW9uJik7CisKICAgICB2b2lkIHNldFBy
ZWZlcnJlZEZyYW1lc1BlclNlY29uZChJUEM6OkNvbm5lY3Rpb24mLCBEaXNwbGF5TGlua09ic2Vy
dmVySUQsIFdlYkNvcmU6OkZyYW1lc1BlclNlY29uZCk7CiAKICAgICBXZWJDb3JlOjpQbGF0Zm9y
bURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRDsgfQpAQCAt
NzEsMTAgKzc0LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCBv
YnNlcnZlcklEOwogICAgICAgICBXZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJh
bWVzUGVyU2Vjb25kOwogICAgIH07CisgICAgCisgICAgc3RydWN0IENvbm5lY3Rpb25DbGllbnRJ
bmZvIHsKKyAgICAgICAgdW5zaWduZWQgZnVsbFNwZWVkVXBkYXRlc0NsaWVudENvdW50IHsgMCB9
OworICAgICAgICBWZWN0b3I8T2JzZXJ2ZXJJbmZvPiBvYnNlcnZlcnM7CisgICAgfTsKIAogICAg
IENWRGlzcGxheUxpbmtSZWYgbV9kaXNwbGF5TGluayB7IG51bGxwdHIgfTsKICAgICBMb2NrIG1f
b2JzZXJ2ZXJzTG9jazsKLSAgICBIYXNoTWFwPFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBWZWN0
b3I8T2JzZXJ2ZXJJbmZvPj4gbV9vYnNlcnZlcnM7CisgICAgSGFzaE1hcDxSZWZQdHI8SVBDOjpD
b25uZWN0aW9uPiwgQ29ubmVjdGlvbkNsaWVudEluZm8+IG1fb2JzZXJ2ZXJzOwogICAgIFdlYkNv
cmU6OlBsYXRmb3JtRGlzcGxheUlEIG1fZGlzcGxheUlEOwogICAgIFdlYkNvcmU6OkZyYW1lc1Bl
clNlY29uZCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kIHsgMCB9OwogICAgIFdlYkNv
cmU6OkRpc3BsYXlVcGRhdGUgbV9jdXJyZW50VXBkYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggODZmOGYzZDgx
M2I2NDIxZjNlZGE3NzJkMWExZGQwY2E5ZTYxN2IxNS4uM2FmZDAwZTZjNDVkZTRiNzExMjk2MmE3
NzNjNDIwZDYwYTAwNmE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0yODksMTEgKzI4OSwxNCBAQCB2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6bm90aWZ5U2Nyb2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKFBs
YXRmb3JtRGlzcGxheUlECiB9CiAKICNpZiBIQVZFKENWRElTUExBWUxJTkspCi12b2lkIEV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUpCit2b2lkIEV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNv
bnN0IERpc3BsYXlVcGRhdGUmIGRpc3BsYXlVcGRhdGUsIGJvb2wgc2VuZFRvTWFpblRocmVhZCkK
IHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBub3RpZnlTY3JvbGxpbmdU
cmVlc0Rpc3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUlEKTsKIAorICAgIGlmICghc2VuZFRvTWFp
blRocmVhZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFtkaXNwbGF5SUQsIGRpc3BsYXlVcGRhdGVdKCkgewogICAgICAgICBEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZGlzcGxheVdhc1VwZGF0ZWQoZGlzcGxheUlE
LCBkaXNwbGF5VXBkYXRlKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggYTEzMGQ0NDM1YzdjOWVjMDk3N2U5
ZjE4MGFkODE2MmUzMjFiZWViMi4uYjJjY2I4NDRhYWM1NTdjMzFiZjYxMzEwNThiNjFmMmVlMThh
MGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShNQUMpCi0gICAgdm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVkKFdlYkNvcmU6OlBsYXRm
b3JtRGlzcGxheUlELCBjb25zdCBXZWJDb3JlOjpEaXNwbGF5VXBkYXRlJik7CisgICAgdm9pZCBk
aXNwbGF5V2FzUmVmcmVzaGVkKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBjb25zdCBXZWJD
b3JlOjpEaXNwbGF5VXBkYXRlJiwgYm9vbCBzZW5kVG9NYWluVGhyZWFkKTsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KaW5kZXgg
MGI1ZDI5MTJjZGE5NzFmM2UxOTE1YjhlMmFmMGM1ZjUwMDk4MTAzYy4uYWM3N2ZlMWNiYTk5YTQ2
MzQ5Y2NkNzViYzk2ZmJkMTVlMzczZGM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpAQCAt
MzAsNiArMzAsNiBAQCBtZXNzYWdlcyAtPiBFdmVudERpc3BhdGNoZXIgewogICAgIEdlc3R1cmVF
dmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViR2VzdHVyZUV2
ZW50IGV2ZW50KQogI2VuZGlmCiAjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQotICAgIERpc3BsYXlX
YXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlELCBzdHJ1Y3QgV2ViQ29yZTo6RGlzcGxheVVw
ZGF0ZSB1cGRhdGUpCisgICAgRGlzcGxheVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5SUQs
IHN0cnVjdCBXZWJDb3JlOjpEaXNwbGF5VXBkYXRlIHVwZGF0ZSwgYm9vbCBzZW5kVG9NYWluVGhy
ZWFkKQogI2VuZGlmCiB9Cg==
</data>
<flag name="commit-queue"
          id="444814"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424991</attachid>
            <date>2021-04-01 23:06:09 -0700</date>
            <delta_ts>2021-04-02 12:07:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224095-20210401230608.patch</filename>
            <type>text/plain</type>
            <size>19372</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiOGJjZGQwZjFmMmFhY2I5
YWZlMWYwYmE1NmFlM2QyYjc1MDdhMTMuLmMxOTU0NTQ2MDJiMjgwNjdlYTdlNDg3NzVmMGE2NmEz
N2YzZWRmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMDQtMDEgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgd2hlZWwgZXZl
bnRzIHRvIHRyaWdnZXIgaGlnaCBmcmVxdWVuY3kgRGlzcGxheUxpbmtzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQwOTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyB2aWEgd2hl
ZWwgZXZlbnRzLCB3ZSBtYXkgd2FudCB0byBkcml2ZSBzY3JvbGxpbmcgdHJlZSB1cGRhdGVzCisg
ICAgICAgICh3aGljaCBhcmUgZHJpdmVuIGJ5IEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1Jl
ZnJlc2hlZCgpKSBhdCBhIGhpZ2hlciByYXRlCisgICAgICAgIHRoYW4gdGhlIG1haW4gdGhyZWFk
IGRvZXMgcmVuZGVyaW5nIHVwZGF0ZXMuCisKKyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCBnaXZl
IERpc3BsYXlMaW5rIGEgY291bnQgb2YgImZ1bGwgc3BlZWQiIGNsaWVudHMsIGFuZCB3aGVuIHRo
aXMgY291bnQgaXMKKyAgICAgICAgZ3JlYXRlciB0aGFuIHplcm8sIGhhdmUgRGlzcGxheUxpbms6
Om5vdGlmeU9ic2VydmVyc0Rpc3BsYXlXYXNSZWZyZXNoZWQoKSBzZW5kCisgICAgICAgIEV2ZW50
RGlzcGF0Y2hlciBJUEMgYXQgZnVsbCBmcmFtZXJhdGUsIHdoaWxlIHBhc3NpbmcgYSBmbGFnIGJh
c2VkIG9uIHRoZSB1c3VhbAorICAgICAgICByZWxldmFudEZvclVwZGF0ZUZyZXF1ZW5jeSgpIGFi
b3V0IHdoZXRoZXIgdG8gdXBkYXRlIHRoZSBtYWluIHRocmVhZCBmb3IgYSBnaXZlbiB1cGRhdGUu
CisKKyAgICAgICAgVGhlICJmdWxsIHNwZWVkIiBjbGllbnQgY291bnQgaXMgbWFpbnRhaW5lZCBi
eSBhIEh5c3RlcmVzaXNBY3Rpdml0eSBvbiBXZWJQYWdlUHJveHksCisgICAgICAgIHdob3NlIGlt
cHVsc2UgaXMgd2hlZWwgZXZlbnRzLiBUaGlzIHJlcGxhY2VzIGEgc2luZ2xldG9uIEh5c3RlcmVz
aXNBY3Rpdml0eSB3aGljaAorICAgICAgICB3YXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBJ
UEMgZ29lcyB0byBFdmVudERpc3BhdGNoZXIgb3IgdGhlIG1haW4gdGhyZWFkIG9mCisgICAgICAg
IHRoZSB3ZWIgcHJvY2Vzcy4KKworICAgICAgICBXZWJQYWdlUHJveHkgbmVlZHMgdG8gdHJhY2sg
dGhlIFBsYXRmb3JtRGlzcGxheUlEIGZvciB0aGUgc2NyZWVuIHRoYXQgaXRzIHZpZXcgaXMgb24s
CisgICAgICAgIHNvIGl0IGtub3dzIHdoaWNoIERpc3BsYXlMaW5rIHRvIG1lc3NhZ2UuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldERpc3BsYXlMaW5rRm9yRGlzcGxheVdhbnRzRnVs
bFNwZWVkVXBkYXRlcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Om1fd2hlZWxFdmVudEFjdGl2aXR5SHlzdGVyZXNpcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2hlZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZW5kV2hlZWxFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6U2Nyb2xsaW5nT2JzZXJ2ZXI6OndpbGxTZW5kV2hlZWxFdmVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpTY3JvbGxpbmdPYnNlcnZlcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24pOiBE
ZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGlzcGxheUxpbms6OmFkZE9ic2VydmVyKToK
KyAgICAgICAgKFdlYktpdDo6RGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVyKToKKyAgICAgICAg
KFdlYktpdDo6RGlzcGxheUxpbms6OmluY3JlbWVudEZ1bGxTcGVlZFJlcXVlc3RDbGllbnRDb3Vu
dCk6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpkZWNyZW1lbnRGdWxsU3BlZWRSZXF1
ZXN0Q2xpZW50Q291bnQpOgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5TGluazo6c2V0UHJlZmVy
cmVkRnJhbWVzUGVyU2Vjb25kKToKKyAgICAgICAgKFdlYktpdDo6RGlzcGxheUxpbms6Om5vdGlm
eU9ic2VydmVyc0Rpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
RGlzcGxheUxpbmsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpub3RpZnlTY3JvbGxp
bmdUcmVlc0Rpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3Bh
dGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLm1lc3NhZ2VzLmluOgorCiAyMDIxLTAzLTMxICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZlZWQgcHJlZmVycmVkIGZyYW1lcyBwZXIg
c2Vjb25kIGJhY2sgdG8gdGhlIFVJIHByb2Nlc3MgZm9yIGVhY2ggRGlzcGxheVJlZnJlc2hNb25p
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQppbmRleCBkNGI4ZWZjOGQwYjQwYTVmMGZiY2JkM2M3MDc2NTkzZjA3NjE5NjUy
Li4yNWNlZWIxNDkxMjExMjJiY2E1ZTMwMzcwOGYyN2M0YmZkODRmMDY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAg
LTgyMCw2ICs4MjAsMjAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0RGlzcGxheUxpbmtQcmVm
ZXJyZWRGcmFtZXNQZXJTZWNvbmQoSVBDOjpDb25uZWN0aW9uJiBjb24KICAgICAgICAgfQogICAg
IH0KIH0KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0RGlzcGxheUxpbmtGb3JEaXNwbGF5V2Fu
dHNGdWxsU3BlZWRVcGRhdGVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBib29sIHdhbnRzRnVsbFNwZWVkVXBkYXRlcykK
K3sKKyAgICBmb3IgKGF1dG8mIGRpc3BsYXlMaW5rIDogbV9kaXNwbGF5TGlua3MpIHsKKyAgICAg
ICAgaWYgKGRpc3BsYXlMaW5rLT5kaXNwbGF5SUQoKSA9PSBkaXNwbGF5SUQpIHsKKyAgICAgICAg
ICAgIGlmICh3YW50c0Z1bGxTcGVlZFVwZGF0ZXMpCisgICAgICAgICAgICAgICAgZGlzcGxheUxp
bmstPmluY3JlbWVudEZ1bGxTcGVlZFJlcXVlc3RDbGllbnRDb3VudChjb25uZWN0aW9uKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkaXNwbGF5TGluay0+ZGVjcmVtZW50RnVs
bFNwZWVkUmVxdWVzdENsaWVudENvdW50KGNvbm5lY3Rpb24pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgfQorfQorCiAjZW5kaWYgLy8gSEFWRShDVkRJU1BMQVlMSU5LKQog
CiAvLyBGSVhNRTogRGVwcmVjYXRlZC4gTGVmdCBoZXJlIHVudGlsIGEgZmluYWwgZGVjaXNpb24g
aXMgbWFkZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc1
OGEwZjM1YWE1OTc5MzkwN2E5MTEwNTg3ZTI5ZWNiOTliMWYxZjYuLjgwZTk5NTZjNzhiNjcyNmRh
MTczNDNmMjdkM2NjZTZkYjMyZTFmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMTg1LDcgKzE4NSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9WYWxpZGF0
aW9uQnViYmxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgotI2luY2x1ZGUgPHBhbC9IeXN0ZXJlc2lz
QWN0aXZpdHkuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0Fn
Z3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTMyNCwzNSAr
MzIzLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIERFRklORV9ERUJVR19PTkxZX0dM
T0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgd2ViUGFnZVByb3h5Q291bnRlciwgKCJX
ZWJQYWdlUHJveHkiKSk7CiAKLSNpZiBIQVZFKENWRElTUExBWUxJTkspCi1jbGFzcyBTY3JvbGxp
bmdPYnNlcnZlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Nyb2xsaW5nT2JzZXJ2ZXIp
OwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIGZyaWVuZCBOZXZlckRlc3Ryb3ll
ZDxTY3JvbGxpbmdPYnNlcnZlcj47Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFNjcm9sbGluZ09ic2Vy
dmVyJiBzaW5nbGV0b24oKTsKLQotICAgIHZvaWQgd2lsbFNlbmRXaGVlbEV2ZW50KCkKLSAgICB7
Ci0gICAgICAgIG1faHlzdGVyZXNpcy5pbXB1bHNlKCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IFNjcm9sbGluZ09ic2VydmVyKCkKLSAgICAgICAgOiBtX2h5c3RlcmVzaXMoW10oUEFMOjpIeXN0
ZXJlc2lzU3RhdGUgc3RhdGUpIHsgRGlzcGxheUxpbms6OnNldFNob3VsZFNlbmRJUENPbkJhY2tn
cm91bmRRdWV1ZShzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZCk7IH0pCi0g
ICAgewotICAgIH0KLQotICAgIFBBTDo6SHlzdGVyZXNpc0FjdGl2aXR5IG1faHlzdGVyZXNpczsK
LX07Ci0KLVNjcm9sbGluZ09ic2VydmVyJiBTY3JvbGxpbmdPYnNlcnZlcjo6c2luZ2xldG9uKCkK
LXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U2Nyb2xsaW5nT2JzZXJ2ZXI+IGRldGVjdG9y
OwotICAgIHJldHVybiBkZXRlY3RvcjsKLX0KLSNlbmRpZgotCiBjbGFzcyBTdG9yYWdlUmVxdWVz
dHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0b3JhZ2VSZXF1ZXN0cyk7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxTdG9yYWdlUmVxdWVz
dHM+OwpAQCAtNTEyLDYgKzQ4Miw5IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VD
bGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUmVmCiAgICAgLCBt
X2JhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgqdGhpcykpCiAgICAg
LCBtX3dhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3cobV9jb25maWd1cmF0aW9u
LT53YWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlkTW92ZVRvV2luZG93KCkpCiAgICAgLCBtX2hhc1J1
bm5pbmdQcm9jZXNzKHByb2Nlc3Muc3RhdGUoKSAhPSBXZWJQcm9jZXNzUHJveHk6OlN0YXRlOjpU
ZXJtaW5hdGVkKQorI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKKyAgICAsIG1fd2hlZWxFdmVudEFj
dGl2aXR5SHlzdGVyZXNpcyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgd2hl
ZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKHN0YXRlKTsgfSkKKyNlbmRpZgogICAgICwgbV9jb250
cm9sbGVkQnlBdXRvbWF0aW9uKG1fY29uZmlndXJhdGlvbi0+aXNDb250cm9sbGVkQnlBdXRvbWF0
aW9uKCkpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLCBtX2lzU21hcnRJbnNlcnREZWxldGVF
bmFibGVkKFRleHRDaGVja2VyOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpKQpAQCAtMjcy
OSwxMCArMjcwMiwyMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlV2hlZWxFdmVudChjb25z
dCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKICAgICB9CiB9CiAKKyNpZiBIQVZFKENWRElT
UExBWUxJTkspCit2b2lkIFdlYlBhZ2VQcm94eTo6d2hlZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVk
KFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKQoreworICAgIGlmICghbV9wcm9jZXNzLT5oYXND
b25uZWN0aW9uKCkgfHwgIW1fZGlzcGxheUlEKQorICAgICAgICByZXR1cm47CisKKyAgICBib29s
IHdhbnRzRnVsbFNwZWVkVXBkYXRlcyA9IHN0YXRlID09IFBBTDo6SHlzdGVyZXNpc1N0YXRlOjpT
dGFydGVkOworICAgIHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnNldERpc3BsYXlMaW5rRm9yRGlz
cGxheVdhbnRzRnVsbFNwZWVkVXBkYXRlcygqbV9wcm9jZXNzLT5jb25uZWN0aW9uKCksICptX2Rp
c3BsYXlJRCwgd2FudHNGdWxsU3BlZWRVcGRhdGVzKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBh
Z2VQcm94eTo6c2VuZFdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgZXZlbnQpCiB7CiAj
aWYgSEFWRShDVkRJU1BMQVlMSU5LKQotICAgIFNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24o
KS53aWxsU2VuZFdoZWVsRXZlbnQoKTsKKyAgICBtX3doZWVsRXZlbnRBY3Rpdml0eUh5c3RlcmVz
aXMuaW1wdWxzZSgpOwogI2VuZGlmCiAKICAgICBzZW5kKApAQCAtMzc0OSw2ICszNzMzLDggQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNj
YWxlRmFjdG9yKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBs
YXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFt
ZXNQZXJTZWNvbmQpCiB7CisgICAgbV9kaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CisKICAgICBpZiAo
IWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlYTliMGMxNGExZGM2ZGE4ODc0NGM2YWYwNjM3ZmU5
NDEyNGYxM2ZjLi5kZTZlODIyNjM5OTU2ZDhkNjk5ZTJhMjRiNjMxY2E0N2Q4NjVjN2M0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEyLDYgKzExMiw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNs
dWRlIDxwYWwvSHlzdGVyZXNpc0FjdGl2aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgpAQCAtMjI5Niw2ICsyMjk3LDEwIEBAIHByaXZhdGU6CiAKICAgICBXZWJXaGVlbEV2
ZW50Q29hbGVzY2VyJiB3aGVlbEV2ZW50Q29hbGVzY2VyKCk7CiAKKyNpZiBIQVZFKENWRElTUExB
WUxJTkspCisgICAgdm9pZCB3aGVlbEV2ZW50SHlzdGVyZXNpc1VwZGF0ZWQoUEFMOjpIeXN0ZXJl
c2lzU3RhdGUpOworI2VuZGlmCisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQg
dXBkYXRlVG91Y2hFdmVudFRyYWNraW5nKGNvbnN0IFdlYlRvdWNoRXZlbnQmKTsKICAgICBXZWJD
b3JlOjpUcmFja2luZ1R5cGUgdG91Y2hFdmVudFRyYWNraW5nVHlwZShjb25zdCBXZWJUb3VjaEV2
ZW50JikgY29uc3Q7CkBAIC0yNjUyLDYgKzI2NTcsMTEgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJXaGVlbEV2ZW50Q29hbGVzY2VyPiBtX3doZWVsRXZlbnRDb2FsZXNjZXI7
CiAKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRD4gbV9kaXNwbGF5SUQ7
CisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQorICAgIFBBTDo6SHlzdGVyZXNpc0FjdGl2aXR5IG1f
d2hlZWxFdmVudEFjdGl2aXR5SHlzdGVyZXNpczsKKyNlbmRpZgorCiAgICAgRGVxdWU8TmF0aXZl
V2ViTW91c2VFdmVudD4gbV9tb3VzZUV2ZW50UXVldWU7CiAgICAgRGVxdWU8TmF0aXZlV2ViS2V5
Ym9hcmRFdmVudD4gbV9rZXlFdmVudFF1ZXVlOwogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAzMTMwMzAy
MjVlOTVjMWYwNzU1NmVhYThiYjZmOGI5M2FmODAzNTU4Li4wZTM5Yzc5ZGE4Mzc0NzJkOWQxZDUy
Yzc4ODNjY2U5MDU2ODVmNGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKQEAgLTI0Myw2ICsyNDMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wRGlzcGxheUxp
bmsoSVBDOjpDb25uZWN0aW9uJiwgRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXlJRCk7CiAgICAgdm9pZCBzZXREaXNwbGF5TGlua1ByZWZlcnJlZEZyYW1lc1Bl
clNlY29uZChJUEM6OkNvbm5lY3Rpb24mLCBEaXNwbGF5TGlua09ic2VydmVySUQsIFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheUlELCBXZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQpOwogICAgIHZvaWQg
c3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24mKTsKKworICAgIHZvaWQgc2V0RGlzcGxh
eUxpbmtGb3JEaXNwbGF5V2FudHNGdWxsU3BlZWRVcGRhdGVzKElQQzo6Q29ubmVjdGlvbiYsIFdl
YkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBib29sIHdhbnRzRnVsbFNwZWVkVXBkYXRlcyk7CiAj
ZW5kaWYKIAogICAgIHZvaWQgYWRkU3VwcG9ydGVkUGx1Z2luKFN0cmluZyYmIG1hdGNoaW5nRG9t
YWluLCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8
U3RyaW5nPiBleHRlbnNpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9EaXNwbGF5TGluay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxh
eUxpbmsuY3BwCmluZGV4IDhiOGM5YzY5ZjNjZjg1ZWY1MTdlMDE4OGVmNTEwYjM0Yjc1N2IxYjIu
LjA1NjFlY2VjY2VkZWU5NWExZjg1YzhmMGJlZTMyMWQyYjBmZDYzYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcApAQCAtODksOCArODksOCBAQCB2b2lk
IERpc3BsYXlMaW5rOjphZGRPYnNlcnZlcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIERp
c3BsYXlMaW5rT2JzZXJ2ZXJJRAogICAgIHsKICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX29ic2VydmVyc0xvY2spOwogICAgICAgICBtX29ic2VydmVycy5lbnN1cmUoJmNvbm5lY3Rp
b24sIFtdIHsKLSAgICAgICAgICAgIHJldHVybiBWZWN0b3I8T2JzZXJ2ZXJJbmZvPiB7IH07Ci0g
ICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoeyBvYnNlcnZlcklELCBwcmVmZXJyZWRG
cmFtZXNQZXJTZWNvbmQgfSk7CisgICAgICAgICAgICByZXR1cm4gQ29ubmVjdGlvbkNsaWVudElu
Zm8geyB9OworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUub2JzZXJ2ZXJzLmFwcGVuZCh7IG9i
c2VydmVySUQsIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCB9KTsKICAgICB9CiAKICAgICBpZiAo
IUNWRGlzcGxheUxpbmtJc1J1bm5pbmcobV9kaXNwbGF5TGluaykpIHsKQEAgLTExMiwxMiArMTEy
LDE2IEBAIHZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVyKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgRGlzcGxheUxpbmtPYnNlcnZlCiAgICAgYXV0byBpdCA9IG1fb2JzZXJ2ZXJz
LmZpbmQoJmNvbm5lY3Rpb24pOwogICAgIGlmIChpdCA9PSBtX29ic2VydmVycy5lbmQoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGJvb2wgcmVtb3ZlZCA9IGl0LT52YWx1ZS5yZW1vdmVGaXJzdE1h
dGNoaW5nKFtvYnNlcnZlcklEXShjb25zdCBhdXRvJiB2YWx1ZSkgeworCisgICAgYXV0byYgY29u
bmVjdGlvbkluZm8gPSBpdC0+dmFsdWU7CisKKyAgICBib29sIHJlbW92ZWQgPSBjb25uZWN0aW9u
SW5mby5vYnNlcnZlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbb2JzZXJ2ZXJJRF0oY29uc3QgYXV0
byYgdmFsdWUpIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLm9ic2VydmVySUQgPT0gb2JzZXJ2ZXJJ
RDsKICAgICB9KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJlbW92ZWQpOwotICAgIGlm
IChpdC0+dmFsdWUuaXNFbXB0eSgpKQotICAgICAgICBtX29ic2VydmVycy5yZW1vdmUoaXQpOwor
CisgICAgLy8gS2VlcCB0aGUgY29ubmVjdGlvbkluZm8gaW4gbV9vYnNlcnZlcnMgZm9yIHRoaXMg
Y29ubmVjdGlvbiwgYmVjYXVzZSB3ZSBuZWVkIHRvIG1haW50YWluCisgICAgLy8gZnVsbFNwZWVk
VXBkYXRlc0NsaWVudENvdW50LgogCiAgICAgLy8gV2UgZG8gbm90IHN0b3AgdGhlIGRpc3BsYXkg
bGluayByaWdodCBhd2F5IHdoZW4gfG1fb2JzZXJ2ZXJzfCBiZWNvbWVzIGVtcHR5LiBJbnN0ZWFk
LCB3ZQogICAgIC8vIGxldCB0aGUgZGlzcGxheSBsaW5rIGZpcmUgdXAgdG8gfG1heEZpcmVDb3Vu
dFdpdGhvdXRPYnNlcnZlcnN8IHRpbWVzIHdpdGhvdXQgb2JzZXJ2ZXJzIHRvIGF2b2lkCkBAIC0x
MzYsNiArMTQwLDMwIEBAIHZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVycyhJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgLy8ga2lsbGluZyAmIHJlc3RhcnRpbmcgdG9vIG1h
bnkgdGhyZWFkcyB3aGVuIG9ic2VydmVycyBnZXRzIHJlbW92ZWQgJiBhZGRlZCBpbiBxdWljayBz
dWNjZXNzaW9uLgogfQogCit2b2lkIERpc3BsYXlMaW5rOjppbmNyZW1lbnRGdWxsU3BlZWRSZXF1
ZXN0Q2xpZW50Q291bnQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKworICAgIGF1dG8mIGNvbm5lY3Rp
b25JbmZvID0gbV9vYnNlcnZlcnMuZW5zdXJlKCZjb25uZWN0aW9uLCBbXSB7CisgICAgICAgIHJl
dHVybiBDb25uZWN0aW9uQ2xpZW50SW5mbyB7IH07CisgICAgfSkuaXRlcmF0b3ItPnZhbHVlOzsK
KworICAgICsrY29ubmVjdGlvbkluZm8uZnVsbFNwZWVkVXBkYXRlc0NsaWVudENvdW50OworfQor
Cit2b2lkIERpc3BsYXlMaW5rOjpkZWNyZW1lbnRGdWxsU3BlZWRSZXF1ZXN0Q2xpZW50Q291bnQo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9vYnNlcnZlcnNMb2NrKTsKKworICAgIGF1dG8gaXQgPSBtX29ic2VydmVycy5maW5kKCZj
b25uZWN0aW9uKTsKKyAgICBpZiAoaXQgPT0gbV9vYnNlcnZlcnMuZW5kKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8mIGNvbm5lY3Rpb25JbmZvID0gaXQtPnZhbHVlOworICAgIEFTU0VS
VChjb25uZWN0aW9uSW5mby5mdWxsU3BlZWRVcGRhdGVzQ2xpZW50Q291bnQpOworICAgIC0tY29u
bmVjdGlvbkluZm8uZnVsbFNwZWVkVXBkYXRlc0NsaWVudENvdW50OworfQorCiB2b2lkIERpc3Bs
YXlMaW5rOjpzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBEaXNwbGF5TGlua09ic2VydmVySUQgb2JzZXJ2ZXJJRCwgV2ViQ29yZTo6RnJhbWVz
UGVyU2Vjb25kIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkKIHsKICAgICBMT0dfV0lUSF9TVFJF
QU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiW1VJIF0gRGlzcGxheUxpbms6OnNldFByZWZlcnJl
ZEZyYW1lc1BlclNlY29uZCAtIGRpc3BsYXkgIiA8PCBtX2Rpc3BsYXlJRCA8PCAiIG9ic2VydmVy
ICIgPDwgb2JzZXJ2ZXJJRCA8PCAiIGZwcyAiIDw8IHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCk7
CkBAIC0xNDYsMTIgKzE3NCwxMyBAQCB2b2lkIERpc3BsYXlMaW5rOjpzZXRQcmVmZXJyZWRGcmFt
ZXNQZXJTZWNvbmQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEaXNwbAogICAgIGlmIChp
dCA9PSBtX29ic2VydmVycy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBpbmRl
eCA9IGl0LT52YWx1ZS5maW5kTWF0Y2hpbmcoW29ic2VydmVySURdKGNvbnN0IGF1dG8mIG9ic2Vy
dmVyKSB7CisgICAgYXV0byYgY29ubmVjdGlvbkluZm8gPSBpdC0+dmFsdWU7CisgICAgYXV0byBp
bmRleCA9IGNvbm5lY3Rpb25JbmZvLm9ic2VydmVycy5maW5kTWF0Y2hpbmcoW29ic2VydmVySURd
KGNvbnN0IGF1dG8mIG9ic2VydmVyKSB7CiAgICAgICAgIHJldHVybiBvYnNlcnZlci5vYnNlcnZl
cklEID09IG9ic2VydmVySUQ7CiAgICAgfSk7CiAKICAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQp
Ci0gICAgICAgIGl0LT52YWx1ZVtpbmRleF0ucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0gcHJl
ZmVycmVkRnJhbWVzUGVyU2Vjb25kOworICAgICAgICBjb25uZWN0aW9uSW5mby5vYnNlcnZlcnNb
aW5kZXhdLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZlcnJlZEZyYW1lc1BlclNlY29u
ZDsKIH0KIAogQ1ZSZXR1cm4gRGlzcGxheUxpbms6OmRpc3BsYXlMaW5rQ2FsbGJhY2soQ1ZEaXNw
bGF5TGlua1JlZiBkaXNwbGF5TGlua1JlZiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBjb25zdCBDVlRp
bWVTdGFtcCosIENWT3B0aW9uRmxhZ3MsIENWT3B0aW9uRmxhZ3MqLCB2b2lkKiBkYXRhKQpAQCAt
MTgxLDE5ICsyMTAsMTkgQEAgdm9pZCBEaXNwbGF5TGluazo6bm90aWZ5T2JzZXJ2ZXJzRGlzcGxh
eVdhc1JlZnJlc2hlZCgpCiAgICAgICAgIHJldHVybiBvYnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNv
bmQ7CiAgICAgfTsKIAotICAgIGZvciAoYXV0byYgW2Nvbm5lY3Rpb24sIG9ic2VydmVyc10gOiBt
X29ic2VydmVycykgewotICAgICAgICBhdXRvIG9ic2VydmVyc01heEZyYW1lc1BlclNlY29uZCA9
IG1heEZyYW1lc1BlclNlY29uZChvYnNlcnZlcnMpOwotICAgICAgICBhdXRvIHVwZGF0ZUlzUmVs
ZXZhbnQgPSBtX2N1cnJlbnRVcGRhdGUucmVsZXZhbnRGb3JVcGRhdGVGcmVxdWVuY3kob2JzZXJ2
ZXJzTWF4RnJhbWVzUGVyU2Vjb25kLnZhbHVlT3IoV2ViQ29yZTo6RnVsbFNwZWVkRnJhbWVzUGVy
U2Vjb25kKSk7CisgICAgZm9yIChhdXRvJiBbY29ubmVjdGlvbiwgY29ubmVjdGlvbkluZm9dIDog
bV9vYnNlcnZlcnMpIHsKKyAgICAgICAgaWYgKGNvbm5lY3Rpb25JbmZvLm9ic2VydmVycy5pc0Vt
cHR5KCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERp
c3BsYXlMaW5rLCBzdHJlYW0gPDwgIltVSSBdIERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwg
bV9kaXNwbGF5SUQgPDwgIiAoZGlzcGxheSBmcHMgIiA8PCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVz
UGVyU2Vjb25kIDw8ICIpIHVwZGF0ZSAiIDw8IG1fY3VycmVudFVwZGF0ZSA8PCAiICIgPDwgb2Jz
ZXJ2ZXJzLnNpemUoKQotICAgICAgICAgICAgPDwgIiBvYnNlcnZlcnMsIG9uIGJhY2tncm91bmQg
cXVldWUgIiA8PCBzaG91bGRTZW5kSVBDT25CYWNrZ3JvdW5kUXVldWUgPDwgIiBtYXhGcmFtZXNQ
ZXJTZWNvbmQgIiA8PCBvYnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNvbmQgPDwgIiByZWxldmFudCAi
IDw8IHVwZGF0ZUlzUmVsZXZhbnQpOworICAgICAgICBhdXRvIG9ic2VydmVyc01heEZyYW1lc1Bl
clNlY29uZCA9IG1heEZyYW1lc1BlclNlY29uZChjb25uZWN0aW9uSW5mby5vYnNlcnZlcnMpOwor
ICAgICAgICBhdXRvIG1haW5UaHJlYWRXYW50c1VwZGF0ZSA9IG1fY3VycmVudFVwZGF0ZS5yZWxl
dmFudEZvclVwZGF0ZUZyZXF1ZW5jeShvYnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNvbmQudmFsdWVP
cihXZWJDb3JlOjpGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQpKTsKIAotICAgICAgICBpZiAoIXVw
ZGF0ZUlzUmVsZXZhbnQpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgTE9HX1dJVEhf
U1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIltVSSBdIERpc3BsYXlMaW5rIGZvciBkaXNw
bGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwgIiAoZGlzcGxheSBmcHMgIiA8PCBtX2Rpc3BsYXlOb21p
bmFsRnJhbWVzUGVyU2Vjb25kIDw8ICIpIHVwZGF0ZSAiIDw8IG1fY3VycmVudFVwZGF0ZSA8PCAi
ICIgPDwgY29ubmVjdGlvbkluZm8ub2JzZXJ2ZXJzLnNpemUoKQorICAgICAgICAgICAgPDwgIiBv
YnNlcnZlcnMsIG9uIGJhY2tncm91bmQgcXVldWUgIiA8PCBzaG91bGRTZW5kSVBDT25CYWNrZ3Jv
dW5kUXVldWUgPDwgIiBtYXhGcmFtZXNQZXJTZWNvbmQgIiA8PCBvYnNlcnZlcnNNYXhGcmFtZXNQ
ZXJTZWNvbmQgPDwgIiBmdWxsIHNwZWVkIGNsaWVudHMgIiA8PCBjb25uZWN0aW9uSW5mby5mdWxs
U3BlZWRVcGRhdGVzQ2xpZW50Q291bnQgPDwgIiByZWxldmFudCAiIDw8IG1haW5UaHJlYWRXYW50
c1VwZGF0ZSk7CiAKLSAgICAgICAgaWYgKHNob3VsZFNlbmRJUENPbkJhY2tncm91bmRRdWV1ZSkK
LSAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6
RGlzcGxheVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCwgbV9jdXJyZW50VXBkYXRlKSwgMCk7Ci0g
ICAgICAgIGVsc2UKKyAgICAgICAgaWYgKGNvbm5lY3Rpb25JbmZvLmZ1bGxTcGVlZFVwZGF0ZXND
bGllbnRDb3VudCkgeworICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6RXZl
bnREaXNwYXRjaGVyOjpEaXNwbGF5V2FzUmVmcmVzaGVkKG1fZGlzcGxheUlELCBtX2N1cnJlbnRV
cGRhdGUsIG1haW5UaHJlYWRXYW50c1VwZGF0ZSksIDApOworICAgICAgICB9IGVsc2UgaWYgKG1h
aW5UaHJlYWRXYW50c1VwZGF0ZSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkRpc3BsYXlXYXNSZWZyZXNoZWQobV9kaXNwbGF5SUQsIG1fY3VycmVu
dFVwZGF0ZSksIDApOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL0Rpc3BsYXlMaW5rLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxh
eUxpbmsuaAppbmRleCA2YjY2OGZkY2IwZTM1OThiOTYxNTc5YzFjNzNiNWUyODZkODdjNGVlLi45
ZDBiNGZiZjUwODExOWZlNGFkMjM5N2JmMThmZDU1MjI1M2RmZTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaApAQCAtNTEsNiArNTEsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZW1vdmVPYnNlcnZlcihJUEM6OkNvbm5lY3Rpb24mLCBEaXNwbGF5TGlua09ic2Vy
dmVySUQpOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXJzKElQQzo6Q29ubmVjdGlvbiYpOwogCisg
ICAgdm9pZCBpbmNyZW1lbnRGdWxsU3BlZWRSZXF1ZXN0Q2xpZW50Q291bnQoSVBDOjpDb25uZWN0
aW9uJik7CisgICAgdm9pZCBkZWNyZW1lbnRGdWxsU3BlZWRSZXF1ZXN0Q2xpZW50Q291bnQoSVBD
OjpDb25uZWN0aW9uJik7CisKICAgICB2b2lkIHNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZChJ
UEM6OkNvbm5lY3Rpb24mLCBEaXNwbGF5TGlua09ic2VydmVySUQsIFdlYkNvcmU6OkZyYW1lc1Bl
clNlY29uZCk7CiAKICAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBj
b25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRDsgfQpAQCAtNzEsMTAgKzc0LDE1IEBAIHByaXZhdGU6
CiAgICAgICAgIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCBvYnNlcnZlcklEOwogICAgICAgICBXZWJD
b3JlOjpGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kOwogICAgIH07Cisg
ICAgCisgICAgc3RydWN0IENvbm5lY3Rpb25DbGllbnRJbmZvIHsKKyAgICAgICAgdW5zaWduZWQg
ZnVsbFNwZWVkVXBkYXRlc0NsaWVudENvdW50IHsgMCB9OworICAgICAgICBWZWN0b3I8T2JzZXJ2
ZXJJbmZvPiBvYnNlcnZlcnM7CisgICAgfTsKIAogICAgIENWRGlzcGxheUxpbmtSZWYgbV9kaXNw
bGF5TGluayB7IG51bGxwdHIgfTsKICAgICBMb2NrIG1fb2JzZXJ2ZXJzTG9jazsKLSAgICBIYXNo
TWFwPFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBWZWN0b3I8T2JzZXJ2ZXJJbmZvPj4gbV9vYnNl
cnZlcnM7CisgICAgSGFzaE1hcDxSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwgQ29ubmVjdGlvbkNs
aWVudEluZm8+IG1fb2JzZXJ2ZXJzOwogICAgIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIG1f
ZGlzcGxheUlEOwogICAgIFdlYkNvcmU6OkZyYW1lc1BlclNlY29uZCBtX2Rpc3BsYXlOb21pbmFs
RnJhbWVzUGVyU2Vjb25kIHsgMCB9OwogICAgIFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUgbV9jdXJy
ZW50VXBkYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggODZmOGYzZDgxM2I2NDIxZjNlZGE3NzJkMWExZGQwY2E5
ZTYxN2IxNS4uM2FmZDAwZTZjNDVkZTRiNzExMjk2MmE3NzNjNDIwZDYwYTAwNmE1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
Y3BwCkBAIC0yODksMTEgKzI4OSwxNCBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6bm90aWZ5U2Ny
b2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRmb3JtRGlzcGxheUlECiB9CiAKICNp
ZiBIQVZFKENWRElTUExBWUxJTkspCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1Jl
ZnJlc2hlZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUm
IGRpc3BsYXlVcGRhdGUpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hl
ZChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpc3BsYXlVcGRhdGUmIGRpc3Bs
YXlVcGRhdGUsIGJvb2wgc2VuZFRvTWFpblRocmVhZCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKICAgICBub3RpZnlTY3JvbGxpbmdUcmVlc0Rpc3BsYXlXYXNSZWZyZXNoZWQo
ZGlzcGxheUlEKTsKIAorICAgIGlmICghc2VuZFRvTWFpblRocmVhZCkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtkaXNwbGF5SUQsIGRpc3BsYXlVcGRh
dGVdKCkgewogICAgICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkuZGlzcGxheVdhc1VwZGF0ZWQoZGlzcGxheUlELCBkaXNwbGF5VXBkYXRlKTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmgKaW5kZXggYTEzMGQ0NDM1YzdjOWVjMDk3N2U5ZjE4MGFkODE2MmUzMjFiZWViMi4uYjJj
Y2I4NDRhYWM1NTdjMzFiZjYxMzEwNThiNjFmMmVlMThhMGNjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTEwOCw3ICsx
MDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBk
aXNwbGF5V2FzUmVmcmVzaGVkKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBjb25zdCBXZWJD
b3JlOjpEaXNwbGF5VXBkYXRlJik7CisgICAgdm9pZCBkaXNwbGF5V2FzUmVmcmVzaGVkKFdlYkNv
cmU6OlBsYXRmb3JtRGlzcGxheUlELCBjb25zdCBXZWJDb3JlOjpEaXNwbGF5VXBkYXRlJiwgYm9v
bCBzZW5kVG9NYWluVGhyZWFkKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJF
QUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KaW5kZXggMGI1ZDI5MTJjZGE5NzFmM2UxOTE1Yjhl
MmFmMGM1ZjUwMDk4MTAzYy4uYWM3N2ZlMWNiYTk5YTQ2MzQ5Y2NkNzViYzk2ZmJkMTVlMzczZGM1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpAQCAtMzAsNiArMzAsNiBAQCBtZXNzYWdlcyAt
PiBFdmVudERpc3BhdGNoZXIgewogICAgIEdlc3R1cmVFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50IGV2ZW50KQogI2VuZGlmCiAjaWYg
SEFWRShDVkRJU1BMQVlMSU5LKQotICAgIERpc3BsYXlXYXNSZWZyZXNoZWQodWludDMyX3QgZGlz
cGxheUlELCBzdHJ1Y3QgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSB1cGRhdGUpCisgICAgRGlzcGxh
eVdhc1JlZnJlc2hlZCh1aW50MzJfdCBkaXNwbGF5SUQsIHN0cnVjdCBXZWJDb3JlOjpEaXNwbGF5
VXBkYXRlIHVwZGF0ZSwgYm9vbCBzZW5kVG9NYWluVGhyZWFkKQogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425037</attachid>
            <date>2021-04-02 12:07:57 -0700</date>
            <delta_ts>2021-04-02 16:02:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224095-20210402120756.patch</filename>
            <type>text/plain</type>
            <size>28654</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUzN2M5Yzg1ZTQ4ZTBl
ZDFjMTNkMjA3MzBhYTRiNTBlOWQzNTlhMy4uNGIxMzdiZjZiNTE5MGIxZDRjZDJmNmY3MGEyOGUx
YTJiYzhiMTViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHdoZWVs
IGV2ZW50cyB0byB0cmlnZ2VyIGhpZ2ggZnJlcXVlbmN5IERpc3BsYXlMaW5rcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MDk1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IHNvbWUgbG9nZ2lu
ZyBzbyBpdCdzIGNsZWFyIHdoaWNoIHByb2Nlc3MgY29kZSBpcyBydW5uaW5nIGluLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxheUxpbmtGaXJlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjplbnN1
cmVNb25pdG9yRm9yRGlzcGxheUlEKToKKwogMjAyMS0wMy0zMSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGZWVkIHByZWZlcnJlZCBmcmFtZXMgcGVy
IHNlY29uZCBiYWNrIHRvIHRoZSBVSSBwcm9jZXNzIGZvciBlYWNoIERpc3BsYXlSZWZyZXNoTW9u
aXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBhYjhiY2RkMGYxZjJhYWNiOWFmZTFmMGJhNTZhZTNkMmI3NTA3YTEz
Li5hM2Y0NGQ2Yzk4MTUxNTAyYzYwMDQ2NGY0ODBkYjM4N2M5MDMzM2Q5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDY2IEBACisyMDIxLTA0LTAxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIEFsbG93IHdoZWVsIGV2ZW50cyB0byB0cmlnZ2VyIGhpZ2ggZnJl
cXVlbmN5IERpc3BsYXlMaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiBzY3JvbGxpbmcgdmlhIHdoZWVsIGV2ZW50cywgd2UgbWF5IHdhbnQg
dG8gZHJpdmUgc2Nyb2xsaW5nIHRyZWUgdXBkYXRlcworICAgICAgICAod2hpY2ggYXJlIGRyaXZl
biBieSBFdmVudERpc3BhdGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNoZWQoKSkgYXQgYSBoaWdoZXIg
cmF0ZQorICAgICAgICB0aGFuIHRoZSBtYWluIHRocmVhZCBkb2VzIHJlbmRlcmluZyB1cGRhdGVz
LgorCisgICAgICAgIFRvIHN1cHBvcnQgdGhpcywgZ2l2ZSBEaXNwbGF5TGluayBhIGNvdW50IG9m
ICJmdWxsIHNwZWVkIiBjbGllbnRzLCBhbmQgd2hlbiB0aGlzIGNvdW50IGlzCisgICAgICAgIGdy
ZWF0ZXIgdGhhbiB6ZXJvLCBoYXZlIERpc3BsYXlMaW5rOjpub3RpZnlPYnNlcnZlcnNEaXNwbGF5
V2FzUmVmcmVzaGVkKCkgc2VuZAorICAgICAgICBFdmVudERpc3BhdGNoZXIgSVBDIGF0IGZ1bGwg
ZnJhbWVyYXRlLCB3aGlsZSBwYXNzaW5nIGEgZmxhZyBiYXNlZCBvbiB0aGUgdXN1YWwKKyAgICAg
ICAgcmVsZXZhbnRGb3JVcGRhdGVGcmVxdWVuY3koKSBhYm91dCB3aGV0aGVyIHRvIHVwZGF0ZSB0
aGUgbWFpbiB0aHJlYWQgZm9yIGEgZ2l2ZW4gdXBkYXRlLgorCisgICAgICAgIEFsbG93IERpc3Bs
YXlMaW5rIGNvbm5lY3Rpb24gaW5mbyBvYmplY3RzIHdpdGggbm9uLXplcm8gZnVsbFNwZWVkVXBk
YXRlc0NsaWVudENvdW50CisgICAgICAgIHRvIHN0aWNrIGFyb3VuZCwgYmVjYXVzZSB0aGF0IGZ1
bGxTcGVlZFVwZGF0ZXNDbGllbnRDb3VudCBuZWVkcyB0byBiZSBzdG9yZWQgZm9yCisgICAgICAg
IGNvbm5lY3Rpb25zIHRoYXQgbWF5IG5vdCB5ZXQgaGF2ZSBvYnNlcnZlcnMuCisKKyAgICAgICAg
U2luY2UgRGlzcGxheUxpbmsgbWlnaHQgaGF2ZSBpbmZvIGZvciBjb25uZWN0aW9ucyB3aXRoIG5v
IG9ic2VydmVycywgYWRqdXN0IHRoZSBsb2dpYyBpbgorICAgICAgICBEaXNwbGF5TGluazo6bm90
aWZ5T2JzZXJ2ZXJzRGlzcGxheVdhc1JlZnJlc2hlZCgpIHRvIGRvIHRoZSBDVkRpc3BsYXlMaW5r
U3RvcAorICAgICAgICBhZnRlciB0cmF2ZXJzaW5nIHRoZSBvYnNlcnZlcnMuCisKKyAgICAgICAg
VGhlICJmdWxsIHNwZWVkIiBjbGllbnQgY291bnQgaXMgbWFpbnRhaW5lZCBieSBhIEh5c3RlcmVz
aXNBY3Rpdml0eSBvbiBXZWJQYWdlUHJveHksCisgICAgICAgIHdob3NlIGltcHVsc2UgaXMgd2hl
ZWwgZXZlbnRzLiBUaGlzIHJlcGxhY2VzIGEgc2luZ2xldG9uIEh5c3RlcmVzaXNBY3Rpdml0eSB3
aGljaAorICAgICAgICB3YXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBJUEMgZ29lcyB0byBF
dmVudERpc3BhdGNoZXIgb3IgdGhlIG1haW4gdGhyZWFkIG9mCisgICAgICAgIHRoZSB3ZWIgcHJv
Y2Vzcy4KKworICAgICAgICBXZWJQYWdlUHJveHkgbmVlZHMgdG8gdHJhY2sgdGhlIFBsYXRmb3Jt
RGlzcGxheUlEIGZvciB0aGUgc2NyZWVuIHRoYXQgaXRzIHZpZXcgaXMgb24sCisgICAgICAgIHNv
IGl0IGtub3dzIHdoaWNoIERpc3BsYXlMaW5rIHRvIG1lc3NhZ2UuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnNldERpc3BsYXlMaW5rRm9yRGlzcGxheVdhbnRzRnVsbFNwZWVkVXBkYXRl
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fd2hlZWxFdmVudEFjdGl2aXR5SHlzdGVyZXNpcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6d2hlZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZW5kV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xs
aW5nT2JzZXJ2ZXI6OndpbGxTZW5kV2hlZWxFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OlNjcm9sbGluZ09ic2VydmVyOjpTY3JvbGxpbmdPYnNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OlNjcm9sbGluZ09ic2VydmVyOjpzaW5nbGV0b24pOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RGlzcGxheUxpbms6OkRpc3BsYXlMaW5rKToKKyAgICAgICAgKFdl
YktpdDo6RGlzcGxheUxpbms6On5EaXNwbGF5TGluayk6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlMaW5rOjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1v
dmVPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVJbmZvRm9y
Q29ubmVjdGlvbklmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5TGluazo6aW5j
cmVtZW50RnVsbFNwZWVkUmVxdWVzdENsaWVudENvdW50KToKKyAgICAgICAgKFdlYktpdDo6RGlz
cGxheUxpbms6OmRlY3JlbWVudEZ1bGxTcGVlZFJlcXVlc3RDbGllbnRDb3VudCk6CisgICAgICAg
IChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQpOgorICAg
ICAgICAoV2ViS2l0OjpEaXNwbGF5TGluazo6bm90aWZ5T2JzZXJ2ZXJzRGlzcGxheVdhc1JlZnJl
c2hlZCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpFdmVudERpc3BhdGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNoZWQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdGFydE5vdGlmaWNhdGlvbk1lY2hhbmlzbSk6
CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6YWRqdXN0UHJlZmVy
cmVkRnJhbWVzUGVyU2Vjb25kKToKKwogMjAyMS0wMy0zMSAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGZWVkIHByZWZlcnJlZCBmcmFtZXMgcGVyIHNl
Y29uZCBiYWNrIHRvIHRoZSBVSSBwcm9jZXNzIGZvciBlYWNoIERpc3BsYXlSZWZyZXNoTW9uaXRv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvci5jcHAKaW5kZXggNjg2N2Q5YzJjMjE4YTdiZTE3NGZiMzFjZjljMmMw
MWFiYjI0MmEwMS4uNzBkNDdhZjZiYmY0NTk4YjAzZjMwMTZmYzVjYTg3NmI3NjRmMTJlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5
UmVmcmVzaE1vbml0b3IuY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgdm9pZCBEaXNwbGF5UmVmcmVz
aE1vbml0b3I6OmRpc3BsYXlMaW5rRmlyZWQoY29uc3QgRGlzcGxheVVwZGF0ZSYgZGlzcGxheVVw
ZGF0ZSkKICAgICAgICAgaWYgKCFpc1ByZXZpb3VzRnJhbWVEb25lKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwg
IkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxheUxpbmtGaXJlZCBmb3IgZGlzcGxheSAiIDw8
IGRpc3BsYXlJRCgpIDw8ICIgLSBzY2hlZHVsZWQgIiA8PCBpc1NjaGVkdWxlZCgpIDw8ICIgdW5z
Y2hlZHVsZWRGaXJlQ291bnQgIiA8PCBtX3Vuc2NoZWR1bGVkRmlyZUNvdW50IDw8ICIgb2YgIiA8
PCBtX21heFVuc2NoZWR1bGVkRmlyZUNvdW50KTsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERp
c3BsYXlMaW5rLCBzdHJlYW0gPDwgIltXZWJdIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6ZGlzcGxh
eUxpbmtGaXJlZCBmb3IgZGlzcGxheSAiIDw8IGRpc3BsYXlJRCgpIDw8ICIgLSBzY2hlZHVsZWQg
IiA8PCBpc1NjaGVkdWxlZCgpIDw8ICIgdW5zY2hlZHVsZWRGaXJlQ291bnQgIiA8PCBtX3Vuc2No
ZWR1bGVkRmlyZUNvdW50IDw8ICIgb2YgIiA8PCBtX21heFVuc2NoZWR1bGVkRmlyZUNvdW50KTsK
ICAgICAgICAgaWYgKGZpcmVkQW5kUmVhY2hlZE1heFVuc2NoZWR1bGVkRmlyZUNvdW50KCkpIHsK
ICAgICAgICAgICAgIHN0b3BOb3RpZmljYXRpb25NZWNoYW5pc20oKTsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAKaW5kZXggODU3M2JkYjIyMjk3
NzAwNTViOWQwNjBlZjM4MmM2NGVlOTA4NDkzOC4uYWFmOGY0ZGQyY2ZlMGQ4YmFkODcyNDBmMTcz
ZjJmMzA4NWYwYzMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAKQEAgLTUw
LDcgKzUwLDcgQEAgRGlzcGxheVJlZnJlc2hNb25pdG9yKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YW5hZ2VyOjplbnN1cmVNb25pdG9yRm9yRGlzcGxheUlEKFAKICAgICBpZiAoIW1vbml0b3IpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5r
LCBzdHJlYW0gPDwgIkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OmVuc3VyZU1vbml0b3JG
b3JEaXNwbGF5SUQoKSAtIGNyZWF0ZWQgbW9uaXRvciAiIDw8IG1vbml0b3IuZ2V0KCkgPDwgIiBm
b3IgZGlzcGxheSAiIDw8IGRpc3BsYXlJRCk7CisgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlM
aW5rLCBzdHJlYW0gPDwgIltXZWJdIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OmVuc3Vy
ZU1vbml0b3JGb3JEaXNwbGF5SUQoKSAtIGNyZWF0ZWQgbW9uaXRvciAiIDw8IG1vbml0b3IuZ2V0
KCkgPDwgIiBmb3IgZGlzcGxheSAiIDw8IGRpc3BsYXlJRCk7CiAgICAgRGlzcGxheVJlZnJlc2hN
b25pdG9yKiByZXN1bHQgPSBtb25pdG9yLmdldCgpOwogICAgIG1fbW9uaXRvcnMuYXBwZW5kKHsg
V1RGTW92ZShtb25pdG9yKSB9KTsKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZDRi
OGVmYzhkMGI0MGE1ZjBmYmNiZDNjNzA3NjU5M2YwNzYxOTY1Mi4uMjVjZWViMTQ5MTIxMTIyYmNh
NWUzMDM3MDhmMjdjNGJmZDg0ZjA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC04MjAsNiArODIwLDIwIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnNldERpc3BsYXlMaW5rUHJlZmVycmVkRnJhbWVzUGVyU2Vjb25k
KElQQzo6Q29ubmVjdGlvbiYgY29uCiAgICAgICAgIH0KICAgICB9CiB9CisKK3ZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnNldERpc3BsYXlMaW5rRm9yRGlzcGxheVdhbnRzRnVsbFNwZWVkVXBkYXRlcyhJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCwgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXMpCit7CisgICAgZm9yIChhdXRvJiBk
aXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7CisgICAgICAgIGlmIChkaXNwbGF5TGluay0+
ZGlzcGxheUlEKCkgPT0gZGlzcGxheUlEKSB7CisgICAgICAgICAgICBpZiAod2FudHNGdWxsU3Bl
ZWRVcGRhdGVzKQorICAgICAgICAgICAgICAgIGRpc3BsYXlMaW5rLT5pbmNyZW1lbnRGdWxsU3Bl
ZWRSZXF1ZXN0Q2xpZW50Q291bnQoY29ubmVjdGlvbik7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgZGlzcGxheUxpbmstPmRlY3JlbWVudEZ1bGxTcGVlZFJlcXVlc3RDbGllbnRD
b3VudChjb25uZWN0aW9uKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
K30KKwogI2VuZGlmIC8vIEhBVkUoQ1ZESVNQTEFZTElOSykKIAogLy8gRklYTUU6IERlcHJlY2F0
ZWQuIExlZnQgaGVyZSB1bnRpbCBhIGZpbmFsIGRlY2lzaW9uIGlzIG1hZGUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3NThhMGYzNWFhNTk3OTM5MDdhOTEx
MDU4N2UyOWVjYjk5YjFmMWY2Li44MGU5OTU2Yzc4YjY3MjZkYTE3MzQzZjI3ZDNjY2U2ZGIzMmUx
ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE4NSw3
ICsxODUsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dyaXRpbmdE
aXJlY3Rpb24uaD4KLSNpbmNsdWRlIDxwYWwvSHlzdGVyZXNpc0FjdGl2aXR5Lmg+CiAjaW5jbHVk
ZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0zMjQsMzUgKzMyMyw2IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVk
TGVha0NvdW50ZXIsIHdlYlBhZ2VQcm94eUNvdW50ZXIsICgiV2ViUGFnZVByb3h5IikpOwogCi0j
aWYgSEFWRShDVkRJU1BMQVlMSU5LKQotY2xhc3MgU2Nyb2xsaW5nT2JzZXJ2ZXIgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFNjcm9sbGluZ09ic2VydmVyKTsKLSAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKLSAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8U2Nyb2xsaW5nT2JzZXJ2ZXI+
OwotcHVibGljOgotICAgIHN0YXRpYyBTY3JvbGxpbmdPYnNlcnZlciYgc2luZ2xldG9uKCk7Ci0K
LSAgICB2b2lkIHdpbGxTZW5kV2hlZWxFdmVudCgpCi0gICAgewotICAgICAgICBtX2h5c3RlcmVz
aXMuaW1wdWxzZSgpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBTY3JvbGxpbmdPYnNlcnZlcigp
Ci0gICAgICAgIDogbV9oeXN0ZXJlc2lzKFtdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7
IERpc3BsYXlMaW5rOjpzZXRTaG91bGRTZW5kSVBDT25CYWNrZ3JvdW5kUXVldWUoc3RhdGUgPT0g
UEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQpOyB9KQotICAgIHsKLSAgICB9Ci0KLSAgICBQ
QUw6Okh5c3RlcmVzaXNBY3Rpdml0eSBtX2h5c3RlcmVzaXM7Ci19OwotCi1TY3JvbGxpbmdPYnNl
cnZlciYgU2Nyb2xsaW5nT2JzZXJ2ZXI6OnNpbmdsZXRvbigpCi17Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFNjcm9sbGluZ09ic2VydmVyPiBkZXRlY3RvcjsKLSAgICByZXR1cm4gZGV0ZWN0
b3I7Ci19Ci0jZW5kaWYKLQogY2xhc3MgU3RvcmFnZVJlcXVlc3RzIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShTdG9yYWdlUmVxdWVzdHMpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8U3RvcmFnZVJlcXVlc3RzPjsKQEAgLTUxMiw2ICs0ODIs
OSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFJlZgogICAgICwgbV9iYWNrRm9yd2FyZExpc3QoV2Vi
QmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV93YWl0c0ZvclBhaW50QWZ0
ZXJWaWV3RGlkTW92ZVRvV2luZG93KG1fY29uZmlndXJhdGlvbi0+d2FpdHNGb3JQYWludEFmdGVy
Vmlld0RpZE1vdmVUb1dpbmRvdygpKQogICAgICwgbV9oYXNSdW5uaW5nUHJvY2Vzcyhwcm9jZXNz
LnN0YXRlKCkgIT0gV2ViUHJvY2Vzc1Byb3h5OjpTdGF0ZTo6VGVybWluYXRlZCkKKyNpZiBIQVZF
KENWRElTUExBWUxJTkspCisgICAgLCBtX3doZWVsRXZlbnRBY3Rpdml0eUh5c3RlcmVzaXMoW3Ro
aXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IHdoZWVsRXZlbnRIeXN0ZXJlc2lzVXBk
YXRlZChzdGF0ZSk7IH0pCisjZW5kaWYKICAgICAsIG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbiht
X2NvbmZpZ3VyYXRpb24tPmlzQ29udHJvbGxlZEJ5QXV0b21hdGlvbigpKQogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgICwgbV9pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChUZXh0Q2hlY2tlcjo6
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSkKQEAgLTI3MjksMTAgKzI3MDIsMjEgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVu
dCYgZXZlbnQpCiAgICAgfQogfQogCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQordm9pZCBXZWJQ
YWdlUHJveHk6OndoZWVsRXZlbnRIeXN0ZXJlc2lzVXBkYXRlZChQQUw6Okh5c3RlcmVzaXNTdGF0
ZSBzdGF0ZSkKK3sKKyAgICBpZiAoIW1fcHJvY2Vzcy0+aGFzQ29ubmVjdGlvbigpIHx8ICFtX2Rp
c3BsYXlJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0
ZXMgPSBzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZDsKKyAgICBwcm9jZXNz
KCkucHJvY2Vzc1Bvb2woKS5zZXREaXNwbGF5TGlua0ZvckRpc3BsYXlXYW50c0Z1bGxTcGVlZFVw
ZGF0ZXMoKm1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLCAqbV9kaXNwbGF5SUQsIHdhbnRzRnVsbFNw
ZWVkVXBkYXRlcyk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2
ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIGV2ZW50KQogewogI2lmIEhBVkUoQ1ZESVNQTEFZTElO
SykKLSAgICBTY3JvbGxpbmdPYnNlcnZlcjo6c2luZ2xldG9uKCkud2lsbFNlbmRXaGVlbEV2ZW50
KCk7CisgICAgbV93aGVlbEV2ZW50QWN0aXZpdHlIeXN0ZXJlc2lzLmltcHVsc2UoKTsKICNlbmRp
ZgogCiAgICAgc2VuZCgKQEAgLTM3NDksNiArMzczMyw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKIAogdm9pZCBX
ZWJQYWdlUHJveHk6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKQogeworICAg
IG1fZGlzcGxheUlEID0gZGlzcGxheUlEOworCiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vzcygp
KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggZWE5YjBjMTRhMWRjNmRhODg3NDRjNmFmMDYzN2ZlOTQxMjRmMTNmYy4uZGU2ZTgyMjYz
OTk1NmQ4ZDY5OWUyYTI0YjYzMWNhNDdkODY1YzdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTExMiw2ICsxMTIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRB
cmd1bWVudHMuaD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cGFsL0h5c3RlcmVzaXNB
Y3Rpdml0eS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTIyOTYsNiAr
MjI5NywxMCBAQCBwcml2YXRlOgogCiAgICAgV2ViV2hlZWxFdmVudENvYWxlc2NlciYgd2hlZWxF
dmVudENvYWxlc2NlcigpOwogCisjaWYgSEFWRShDVkRJU1BMQVlMSU5LKQorICAgIHZvaWQgd2hl
ZWxFdmVudEh5c3RlcmVzaXNVcGRhdGVkKFBBTDo6SHlzdGVyZXNpc1N0YXRlKTsKKyNlbmRpZgor
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICB2b2lkIHVwZGF0ZVRvdWNoRXZlbnRUcmFj
a2luZyhjb25zdCBXZWJUb3VjaEV2ZW50Jik7CiAgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIHRv
dWNoRXZlbnRUcmFja2luZ1R5cGUoY29uc3QgV2ViVG91Y2hFdmVudCYpIGNvbnN0OwpAQCAtMjY1
Miw2ICsyNjU3LDExIEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViV2hlZWxF
dmVudENvYWxlc2Nlcj4gbV93aGVlbEV2ZW50Q29hbGVzY2VyOwogCisgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6UGxhdGZvcm1EaXNwbGF5SUQ+IG1fZGlzcGxheUlEOworI2lmIEhBVkUoQ1ZESVNQTEFZ
TElOSykKKyAgICBQQUw6Okh5c3RlcmVzaXNBY3Rpdml0eSBtX3doZWVsRXZlbnRBY3Rpdml0eUh5
c3RlcmVzaXM7CisjZW5kaWYKKwogICAgIERlcXVlPE5hdGl2ZVdlYk1vdXNlRXZlbnQ+IG1fbW91
c2VFdmVudFF1ZXVlOwogICAgIERlcXVlPE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ+IG1fa2V5RXZl
bnRRdWV1ZTsKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMzEzMDMwMjI1ZTk1YzFmMDc1NTZlYWE4YmI2
ZjhiOTNhZjgwMzU1OC4uMGUzOWM3OWRhODM3NDcyZDlkMWQ1MmM3ODgzY2NlOTA1Njg1ZjRhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yNDMsNiArMjQz
LDggQEAgcHVibGljOgogICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rKElQQzo6Q29ubmVjdGlvbiYs
IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOwogICAg
IHZvaWQgc2V0RGlzcGxheUxpbmtQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoSVBDOjpDb25uZWN0
aW9uJiwgRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCwg
V2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kKTsKICAgICB2b2lkIHN0b3BEaXNwbGF5TGlua3MoSVBD
OjpDb25uZWN0aW9uJik7CisKKyAgICB2b2lkIHNldERpc3BsYXlMaW5rRm9yRGlzcGxheVdhbnRz
RnVsbFNwZWVkVXBkYXRlcyhJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXlJRCwgYm9vbCB3YW50c0Z1bGxTcGVlZFVwZGF0ZXMpOwogI2VuZGlmCiAKICAgICB2b2lkIGFk
ZFN1cHBvcnRlZFBsdWdpbihTdHJpbmcmJiBtYXRjaGluZ0RvbWFpbiwgU3RyaW5nJiYgbmFtZSwg
SGFzaFNldDxTdHJpbmc+JiYgbWltZVR5cGVzLCBIYXNoU2V0PFN0cmluZz4gZXh0ZW5zaW9ucyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcAppbmRleCA4Yjhj
OWM2OWYzY2Y4NWVmNTE3ZTAxODhlZjUxMGIzNGI3NTdiMWIyLi41YjcyODM3Yjg4YzJhMTRjOWEz
MTlhMWFjOWFkMTFjNzhmNjA4MWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvRGlzcGxheUxpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9E
aXNwbGF5TGluay5jcHAKQEAgLTYwLDEyICs2MCwxMiBAQCBEaXNwbGF5TGluazo6RGlzcGxheUxp
bmsoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogCiAgICAgbV9kaXNwbGF5
Tm9taW5hbEZyYW1lc1BlclNlY29uZCA9IG5vbWluYWxGcmFtZXNQZXJTZWNvbmRGcm9tRGlzcGxh
eUxpbmsobV9kaXNwbGF5TGluayk7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpbmss
IHN0cmVhbSA8PCAiW1VJIF0gQ3JlYXRpbmcgRGlzcGxheUxpbmsgZm9yIGRpc3BsYXkgIiA8PCBk
aXNwbGF5SUQgPDwgIiB3aXRoIG5vbWluYWwgZnBzICIgPDwgbV9kaXNwbGF5Tm9taW5hbEZyYW1l
c1BlclNlY29uZCk7CisgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwg
IltVSSBdIENyZWF0ZWQgRGlzcGxheUxpbmsgIiA8PCB0aGlzIDw8ICIgZm9yIGRpc3BsYXkgIiA8
PCBkaXNwbGF5SUQgPDwgIiB3aXRoIG5vbWluYWwgZnBzICIgPDwgbV9kaXNwbGF5Tm9taW5hbEZy
YW1lc1BlclNlY29uZCk7CiB9CiAKIERpc3BsYXlMaW5rOjp+RGlzcGxheUxpbmsoKQogewotICAg
IExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGluaywgc3RyZWFtIDw8ICJbVUkgXSBEZXN0cm95aW5n
IERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQpOworICAgIExPR19XSVRI
X1NUUkVBTShEaXNwbGF5TGluaywgc3RyZWFtIDw8ICJbVUkgXSBEZXN0cm95aW5nIERpc3BsYXlM
aW5rICIgPDwgdGhpcyA8PCAiIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQpOwogCiAgICAg
QVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNh
dGVXaXRoV2luZG93U2VydmVyKSk7CiAgICAgQVNTRVJUKG1fZGlzcGxheUxpbmspOwpAQCAtODYs
MTEgKzg2LDEzIEBAIHZvaWQgRGlzcGxheUxpbms6OmFkZE9ic2VydmVyKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgRGlzcGxheUxpbmtPYnNlcnZlcklECiB7CiAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKIAorICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGluaywgc3RyZWFt
IDw8ICJbVUkgXSBEaXNwbGF5TGluayAiIDw8IHRoaXMgPDwgIiBmb3IgZGlzcGxheSBkaXNwbGF5
ICIgPDwgbV9kaXNwbGF5SUQgPDwgIiBhZGQgb2JzZXJ2ZXIgIiA8PCBvYnNlcnZlcklEIDw8ICIg
ZnBzICIgPDwgcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKTsKKwogICAgIHsKICAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOwogICAgICAgICBtX29ic2VydmVy
cy5lbnN1cmUoJmNvbm5lY3Rpb24sIFtdIHsKLSAgICAgICAgICAgIHJldHVybiBWZWN0b3I8T2Jz
ZXJ2ZXJJbmZvPiB7IH07Ci0gICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoeyBvYnNl
cnZlcklELCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQgfSk7CisgICAgICAgICAgICByZXR1cm4g
Q29ubmVjdGlvbkNsaWVudEluZm8geyB9OworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUub2Jz
ZXJ2ZXJzLmFwcGVuZCh7IG9ic2VydmVySUQsIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCB9KTsK
ICAgICB9CiAKICAgICBpZiAoIUNWRGlzcGxheUxpbmtJc1J1bm5pbmcobV9kaXNwbGF5TGluaykp
IHsKQEAgLTExMiwxMiArMTE0LDE3IEBAIHZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVy
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGlzcGxheUxpbmtPYnNlcnZlCiAgICAgYXV0
byBpdCA9IG1fb2JzZXJ2ZXJzLmZpbmQoJmNvbm5lY3Rpb24pOwogICAgIGlmIChpdCA9PSBtX29i
c2VydmVycy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGJvb2wgcmVtb3ZlZCA9IGl0LT52
YWx1ZS5yZW1vdmVGaXJzdE1hdGNoaW5nKFtvYnNlcnZlcklEXShjb25zdCBhdXRvJiB2YWx1ZSkg
eworCisgICAgYXV0byYgY29ubmVjdGlvbkluZm8gPSBpdC0+dmFsdWU7CisKKyAgICBib29sIHJl
bW92ZWQgPSBjb25uZWN0aW9uSW5mby5vYnNlcnZlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbb2Jz
ZXJ2ZXJJRF0oY29uc3QgYXV0byYgdmFsdWUpIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLm9ic2Vy
dmVySUQgPT0gb2JzZXJ2ZXJJRDsKICAgICB9KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQs
IHJlbW92ZWQpOwotICAgIGlmIChpdC0+dmFsdWUuaXNFbXB0eSgpKQotICAgICAgICBtX29ic2Vy
dmVycy5yZW1vdmUoaXQpOworCisgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJl
YW0gPDwgIltVSSBdIERpc3BsYXlMaW5rICIgPDwgdGhpcyA8PCAiIGZvciBkaXNwbGF5ICIgPDwg
bV9kaXNwbGF5SUQgPDwgIiByZW1vdmUgb2JzZXJ2ZXIgIiA8PCBvYnNlcnZlcklEKTsKKworICAg
IHJlbW92ZUluZm9Gb3JDb25uZWN0aW9uSWZQb3NzaWJsZShjb25uZWN0aW9uKTsKIAogICAgIC8v
IFdlIGRvIG5vdCBzdG9wIHRoZSBkaXNwbGF5IGxpbmsgcmlnaHQgYXdheSB3aGVuIHxtX29ic2Vy
dmVyc3wgYmVjb21lcyBlbXB0eS4gSW5zdGVhZCwgd2UKICAgICAvLyBsZXQgdGhlIGRpc3BsYXkg
bGluayBmaXJlIHVwIHRvIHxtYXhGaXJlQ291bnRXaXRob3V0T2JzZXJ2ZXJzfCB0aW1lcyB3aXRo
b3V0IG9ic2VydmVycyB0byBhdm9pZApAQCAtMTM2LDkgKzE0Myw0NSBAQCB2b2lkIERpc3BsYXlM
aW5rOjpyZW1vdmVPYnNlcnZlcnMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgIC8v
IGtpbGxpbmcgJiByZXN0YXJ0aW5nIHRvbyBtYW55IHRocmVhZHMgd2hlbiBvYnNlcnZlcnMgZ2V0
cyByZW1vdmVkICYgYWRkZWQgaW4gcXVpY2sgc3VjY2Vzc2lvbi4KIH0KIAordm9pZCBEaXNwbGF5
TGluazo6cmVtb3ZlSW5mb0ZvckNvbm5lY3Rpb25JZlBvc3NpYmxlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKK3sKKyAgICBhdXRvIGl0ID0gbV9vYnNlcnZlcnMuZmluZCgmY29ubmVjdGlv
bik7CisgICAgaWYgKGl0ID09IG1fb2JzZXJ2ZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvJiBjb25uZWN0aW9uSW5mbyA9IGl0LT52YWx1ZTsKKyAgICBpZiAoY29ubmVjdGlv
bkluZm8ub2JzZXJ2ZXJzLmlzRW1wdHkoKSAmJiAhY29ubmVjdGlvbkluZm8uZnVsbFNwZWVkVXBk
YXRlc0NsaWVudENvdW50KQorICAgICAgICBtX29ic2VydmVycy5yZW1vdmUoaXQpOworfQorCit2
b2lkIERpc3BsYXlMaW5rOjppbmNyZW1lbnRGdWxsU3BlZWRSZXF1ZXN0Q2xpZW50Q291bnQoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9vYnNlcnZlcnNMb2NrKTsKKworICAgIGF1dG8mIGNvbm5lY3Rpb25JbmZvID0gbV9vYnNlcnZl
cnMuZW5zdXJlKCZjb25uZWN0aW9uLCBbXSB7CisgICAgICAgIHJldHVybiBDb25uZWN0aW9uQ2xp
ZW50SW5mbyB7IH07CisgICAgfSkuaXRlcmF0b3ItPnZhbHVlOzsKKworICAgICsrY29ubmVjdGlv
bkluZm8uZnVsbFNwZWVkVXBkYXRlc0NsaWVudENvdW50OworfQorCit2b2lkIERpc3BsYXlMaW5r
OjpkZWNyZW1lbnRGdWxsU3BlZWRSZXF1ZXN0Q2xpZW50Q291bnQoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2Nr
KTsKKworICAgIGF1dG8gaXQgPSBtX29ic2VydmVycy5maW5kKCZjb25uZWN0aW9uKTsKKyAgICBp
ZiAoaXQgPT0gbV9vYnNlcnZlcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8m
IGNvbm5lY3Rpb25JbmZvID0gaXQtPnZhbHVlOworICAgIEFTU0VSVChjb25uZWN0aW9uSW5mby5m
dWxsU3BlZWRVcGRhdGVzQ2xpZW50Q291bnQpOworICAgIC0tY29ubmVjdGlvbkluZm8uZnVsbFNw
ZWVkVXBkYXRlc0NsaWVudENvdW50OworICAgIHJlbW92ZUluZm9Gb3JDb25uZWN0aW9uSWZQb3Nz
aWJsZShjb25uZWN0aW9uKTsKK30KKwogdm9pZCBEaXNwbGF5TGluazo6c2V0UHJlZmVycmVkRnJh
bWVzUGVyU2Vjb25kKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGlzcGxheUxpbmtPYnNl
cnZlcklEIG9ic2VydmVySUQsIFdlYkNvcmU6OkZyYW1lc1BlclNlY29uZCBwcmVmZXJyZWRGcmFt
ZXNQZXJTZWNvbmQpCiB7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0g
PDwgIltVSSBdIERpc3BsYXlMaW5rOjpzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQgLSBkaXNw
bGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwgIiBvYnNlcnZlciAiIDw8IG9ic2VydmVySUQgPDwgIiBm
cHMgIiA8PCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQpOworICAgIExPR19XSVRIX1NUUkVBTShE
aXNwbGF5TGluaywgc3RyZWFtIDw8ICJbVUkgXSBEaXNwbGF5TGluayAiIDw8IHRoaXMgPDwgIiBz
ZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQgLSBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5SUQgPDwg
IiBvYnNlcnZlciAiIDw8IG9ic2VydmVySUQgPDwgIiBmcHMgIiA8PCBwcmVmZXJyZWRGcmFtZXNQ
ZXJTZWNvbmQpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2sp
OwogCkBAIC0xNDYsMTIgKzE4OSwxMyBAQCB2b2lkIERpc3BsYXlMaW5rOjpzZXRQcmVmZXJyZWRG
cmFtZXNQZXJTZWNvbmQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBEaXNwbAogICAgIGlm
IChpdCA9PSBtX29ic2VydmVycy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBp
bmRleCA9IGl0LT52YWx1ZS5maW5kTWF0Y2hpbmcoW29ic2VydmVySURdKGNvbnN0IGF1dG8mIG9i
c2VydmVyKSB7CisgICAgYXV0byYgY29ubmVjdGlvbkluZm8gPSBpdC0+dmFsdWU7CisgICAgYXV0
byBpbmRleCA9IGNvbm5lY3Rpb25JbmZvLm9ic2VydmVycy5maW5kTWF0Y2hpbmcoW29ic2VydmVy
SURdKGNvbnN0IGF1dG8mIG9ic2VydmVyKSB7CiAgICAgICAgIHJldHVybiBvYnNlcnZlci5vYnNl
cnZlcklEID09IG9ic2VydmVySUQ7CiAgICAgfSk7CiAKICAgICBpZiAoaW5kZXggIT0gbm90Rm91
bmQpCi0gICAgICAgIGl0LT52YWx1ZVtpbmRleF0ucHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kID0g
cHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kOworICAgICAgICBjb25uZWN0aW9uSW5mby5vYnNlcnZl
cnNbaW5kZXhdLnByZWZlcnJlZEZyYW1lc1BlclNlY29uZCA9IHByZWZlcnJlZEZyYW1lc1BlclNl
Y29uZDsKIH0KIAogQ1ZSZXR1cm4gRGlzcGxheUxpbms6OmRpc3BsYXlMaW5rQ2FsbGJhY2soQ1ZE
aXNwbGF5TGlua1JlZiBkaXNwbGF5TGlua1JlZiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBjb25zdCBD
VlRpbWVTdGFtcCosIENWT3B0aW9uRmxhZ3MsIENWT3B0aW9uRmxhZ3MqLCB2b2lkKiBkYXRhKQpA
QCAtMTY1LDE0ICsyMDksNiBAQCB2b2lkIERpc3BsYXlMaW5rOjpub3RpZnlPYnNlcnZlcnNEaXNw
bGF5V2FzUmVmcmVzaGVkKCkKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKLSAgICBpZiAobV9vYnNl
cnZlcnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmICgrK21fZmlyZUNvdW50V2l0aG91dE9ic2Vy
dmVycyA+PSBtYXhGaXJlQ291bnRXaXRob3V0T2JzZXJ2ZXJzKSB7Ci0gICAgICAgICAgICBMT0df
V0lUSF9TVFJFQU0oRGlzcGxheUxpbmssIHN0cmVhbSA8PCAiW1VJIF0gRGlzcGxheUxpbmsgZm9y
IGRpc3BsYXkgIiA8PCBtX2Rpc3BsYXlJRCA8PCAiIGZpcmVkICIgPDwgbV9maXJlQ291bnRXaXRo
b3V0T2JzZXJ2ZXJzIDw8ICIgdGltZXMgd2l0aCBubyBvYnNlcnZlcnM7IHN0b3BwaW5nIENWRGlz
cGxheUxpbmsiKTsKLSAgICAgICAgICAgIENWRGlzcGxheUxpbmtTdG9wKG1fZGlzcGxheUxpbmsp
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9maXJlQ291bnRXaXRo
b3V0T2JzZXJ2ZXJzID0gMDsKIAogICAgIGF1dG8gbWF4RnJhbWVzUGVyU2Vjb25kID0gW10oY29u
c3QgVmVjdG9yPE9ic2VydmVySW5mbz4mIG9ic2VydmVycykgewogICAgICAgICBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQ+IG9ic2VydmVyc01heEZyYW1lc1BlclNlY29uZDsKQEAg
LTE4MSwyMyArMjE3LDM1IEBAIHZvaWQgRGlzcGxheUxpbms6Om5vdGlmeU9ic2VydmVyc0Rpc3Bs
YXlXYXNSZWZyZXNoZWQoKQogICAgICAgICByZXR1cm4gb2JzZXJ2ZXJzTWF4RnJhbWVzUGVyU2Vj
b25kOwogICAgIH07CiAKLSAgICBmb3IgKGF1dG8mIFtjb25uZWN0aW9uLCBvYnNlcnZlcnNdIDog
bV9vYnNlcnZlcnMpIHsKLSAgICAgICAgYXV0byBvYnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNvbmQg
PSBtYXhGcmFtZXNQZXJTZWNvbmQob2JzZXJ2ZXJzKTsKLSAgICAgICAgYXV0byB1cGRhdGVJc1Jl
bGV2YW50ID0gbV9jdXJyZW50VXBkYXRlLnJlbGV2YW50Rm9yVXBkYXRlRnJlcXVlbmN5KG9ic2Vy
dmVyc01heEZyYW1lc1BlclNlY29uZC52YWx1ZU9yKFdlYkNvcmU6OkZ1bGxTcGVlZEZyYW1lc1Bl
clNlY29uZCkpOworICAgIGJvb2wgYW55Q29ubmVjdGlvbkhhZE9ic2VydmVycyA9IGZhbHNlOwor
ICAgIGZvciAoYXV0byYgW2Nvbm5lY3Rpb24sIGNvbm5lY3Rpb25JbmZvXSA6IG1fb2JzZXJ2ZXJz
KSB7CisgICAgICAgIGlmIChjb25uZWN0aW9uSW5mby5vYnNlcnZlcnMuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5r
LCBzdHJlYW0gPDwgIltVSSBdIERpc3BsYXlMaW5rIGZvciBkaXNwbGF5ICIgPDwgbV9kaXNwbGF5
SUQgPDwgIiAoZGlzcGxheSBmcHMgIiA8PCBtX2Rpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vjb25k
IDw8ICIpIHVwZGF0ZSAiIDw8IG1fY3VycmVudFVwZGF0ZSA8PCAiICIgPDwgb2JzZXJ2ZXJzLnNp
emUoKQotICAgICAgICAgICAgPDwgIiBvYnNlcnZlcnMsIG9uIGJhY2tncm91bmQgcXVldWUgIiA8
PCBzaG91bGRTZW5kSVBDT25CYWNrZ3JvdW5kUXVldWUgPDwgIiBtYXhGcmFtZXNQZXJTZWNvbmQg
IiA8PCBvYnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNvbmQgPDwgIiByZWxldmFudCAiIDw8IHVwZGF0
ZUlzUmVsZXZhbnQpOworICAgICAgICBhbnlDb25uZWN0aW9uSGFkT2JzZXJ2ZXJzID0gdHJ1ZTsK
IAotICAgICAgICBpZiAoIXVwZGF0ZUlzUmVsZXZhbnQpCi0gICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgYXV0byBvYnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNvbmQgPSBtYXhGcmFtZXNQZXJT
ZWNvbmQoY29ubmVjdGlvbkluZm8ub2JzZXJ2ZXJzKTsKKyAgICAgICAgYXV0byBtYWluVGhyZWFk
V2FudHNVcGRhdGUgPSBtX2N1cnJlbnRVcGRhdGUucmVsZXZhbnRGb3JVcGRhdGVGcmVxdWVuY3ko
b2JzZXJ2ZXJzTWF4RnJhbWVzUGVyU2Vjb25kLnZhbHVlT3IoV2ViQ29yZTo6RnVsbFNwZWVkRnJh
bWVzUGVyU2Vjb25kKSk7CisKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBz
dHJlYW0gPDwgIltVSSBdIERpc3BsYXlMaW5rICIgPDwgdGhpcyA8PCAiIGZvciBkaXNwbGF5ICIg
PDwgbV9kaXNwbGF5SUQgPDwgIiAoZGlzcGxheSBmcHMgIiA8PCBtX2Rpc3BsYXlOb21pbmFsRnJh
bWVzUGVyU2Vjb25kIDw8ICIpIHVwZGF0ZSAiIDw8IG1fY3VycmVudFVwZGF0ZSA8PCAiICIgPDwg
Y29ubmVjdGlvbkluZm8ub2JzZXJ2ZXJzLnNpemUoKQorICAgICAgICAgICAgPDwgIiBvYnNlcnZl
cnMsIG9uIGJhY2tncm91bmQgcXVldWUgIiA8PCBzaG91bGRTZW5kSVBDT25CYWNrZ3JvdW5kUXVl
dWUgPDwgIiBtYXhGcmFtZXNQZXJTZWNvbmQgIiA8PCBvYnNlcnZlcnNNYXhGcmFtZXNQZXJTZWNv
bmQgPDwgIiBmdWxsIHNwZWVkIGNsaWVudHMgIiA8PCBjb25uZWN0aW9uSW5mby5mdWxsU3BlZWRV
cGRhdGVzQ2xpZW50Q291bnQgPDwgIiByZWxldmFudCAiIDw8IG1haW5UaHJlYWRXYW50c1VwZGF0
ZSk7CiAKLSAgICAgICAgaWYgKHNob3VsZFNlbmRJUENPbkJhY2tncm91bmRRdWV1ZSkKLSAgICAg
ICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6RGlzcGxh
eVdhc1JlZnJlc2hlZChtX2Rpc3BsYXlJRCwgbV9jdXJyZW50VXBkYXRlKSwgMCk7Ci0gICAgICAg
IGVsc2UKKyAgICAgICAgaWYgKGNvbm5lY3Rpb25JbmZvLmZ1bGxTcGVlZFVwZGF0ZXNDbGllbnRD
b3VudCkgeworICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNw
YXRjaGVyOjpEaXNwbGF5V2FzUmVmcmVzaGVkKG1fZGlzcGxheUlELCBtX2N1cnJlbnRVcGRhdGUs
IG1haW5UaHJlYWRXYW50c1VwZGF0ZSksIDApOworICAgICAgICB9IGVsc2UgaWYgKG1haW5UaHJl
YWRXYW50c1VwZGF0ZSkKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkRpc3BsYXlXYXNSZWZyZXNoZWQobV9kaXNwbGF5SUQsIG1fY3VycmVudFVwZGF0
ZSksIDApOwogICAgIH0KIAogICAgIG1fY3VycmVudFVwZGF0ZSA9IG1fY3VycmVudFVwZGF0ZS5u
ZXh0VXBkYXRlKCk7CisKKyAgICBpZiAoIWFueUNvbm5lY3Rpb25IYWRPYnNlcnZlcnMpIHsKKyAg
ICAgICAgaWYgKCsrbV9maXJlQ291bnRXaXRob3V0T2JzZXJ2ZXJzID49IG1heEZpcmVDb3VudFdp
dGhvdXRPYnNlcnZlcnMpIHsKKyAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlu
aywgc3RyZWFtIDw8ICJbVUkgXSBEaXNwbGF5TGluayBmb3IgZGlzcGxheSAiIDw8IG1fZGlzcGxh
eUlEIDw8ICIgZmlyZWQgIiA8PCBtX2ZpcmVDb3VudFdpdGhvdXRPYnNlcnZlcnMgPDwgIiB0aW1l
cyB3aXRoIG5vIG9ic2VydmVyczsgc3RvcHBpbmcgQ1ZEaXNwbGF5TGluayIpOworICAgICAgICAg
ICAgQ1ZEaXNwbGF5TGlua1N0b3AobV9kaXNwbGF5TGluayk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBtX2ZpcmVDb3VudFdpdGhvdXRPYnNlcnZlcnMgPSAwOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9EaXNwbGF5TGluay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3Bs
YXlMaW5rLmgKaW5kZXggNmI2NjhmZGNiMGUzNTk4Yjk2MTU3OWMxYzczYjVlMjg2ZDg3YzRlZS4u
NjdkMTRlMTE0ZjhmYTk1NzE4OTZhZDc4NjdkOGI1OWM4Y2NiMDE0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKQEAgLTUxLDYgKzUxLDkgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoSVBDOjpDb25uZWN0aW9uJiwgRGlzcGxheUxpbmtPYnNl
cnZlcklEKTsKICAgICB2b2lkIHJlbW92ZU9ic2VydmVycyhJUEM6OkNvbm5lY3Rpb24mKTsKIAor
ICAgIHZvaWQgaW5jcmVtZW50RnVsbFNwZWVkUmVxdWVzdENsaWVudENvdW50KElQQzo6Q29ubmVj
dGlvbiYpOworICAgIHZvaWQgZGVjcmVtZW50RnVsbFNwZWVkUmVxdWVzdENsaWVudENvdW50KElQ
Qzo6Q29ubmVjdGlvbiYpOworCiAgICAgdm9pZCBzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQo
SVBDOjpDb25uZWN0aW9uJiwgRGlzcGxheUxpbmtPYnNlcnZlcklELCBXZWJDb3JlOjpGcmFtZXNQ
ZXJTZWNvbmQpOwogCiAgICAgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9kaXNwbGF5SUQ7IH0KQEAgLTY0LDE3ICs2NywyNCBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHN0YXRpYyBDVlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlz
cGxheUxpbmtSZWYsIGNvbnN0IENWVGltZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9w
dGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdzKiwgdm9pZCogZGF0YSk7CiAgICAgdm9pZCBub3RpZnlP
YnNlcnZlcnNEaXNwbGF5V2FzUmVmcmVzaGVkKCk7Ci0gICAgCisKKyAgICB2b2lkIHJlbW92ZUlu
Zm9Gb3JDb25uZWN0aW9uSWZQb3NzaWJsZShJUEM6OkNvbm5lY3Rpb24mKTsKKwogICAgIHN0YXRp
YyBXZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgbm9taW5hbEZyYW1lc1BlclNlY29uZEZyb21EaXNw
bGF5TGluayhDVkRpc3BsYXlMaW5rUmVmKTsKIAogICAgIHN0cnVjdCBPYnNlcnZlckluZm8gewog
ICAgICAgICBEaXNwbGF5TGlua09ic2VydmVySUQgb2JzZXJ2ZXJJRDsKICAgICAgICAgV2ViQ29y
ZTo6RnJhbWVzUGVyU2Vjb25kIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZDsKICAgICB9OworICAg
IAorICAgIHN0cnVjdCBDb25uZWN0aW9uQ2xpZW50SW5mbyB7CisgICAgICAgIHVuc2lnbmVkIGZ1
bGxTcGVlZFVwZGF0ZXNDbGllbnRDb3VudCB7IDAgfTsKKyAgICAgICAgVmVjdG9yPE9ic2VydmVy
SW5mbz4gb2JzZXJ2ZXJzOworICAgIH07CiAKICAgICBDVkRpc3BsYXlMaW5rUmVmIG1fZGlzcGxh
eUxpbmsgeyBudWxscHRyIH07CiAgICAgTG9jayBtX29ic2VydmVyc0xvY2s7Ci0gICAgSGFzaE1h
cDxSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwgVmVjdG9yPE9ic2VydmVySW5mbz4+IG1fb2JzZXJ2
ZXJzOworICAgIEhhc2hNYXA8UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIENvbm5lY3Rpb25DbGll
bnRJbmZvPiBtX29ic2VydmVyczsKICAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBtX2Rp
c3BsYXlJRDsKICAgICBXZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgbV9kaXNwbGF5Tm9taW5hbEZy
YW1lc1BlclNlY29uZCB7IDAgfTsKICAgICBXZWJDb3JlOjpEaXNwbGF5VXBkYXRlIG1fY3VycmVu
dFVwZGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwCmluZGV4IDg2ZjhmM2Q4MTNiNjQyMWYzZWRhNzcyZDFhMWRkMGNhOWU2
MTdiMTUuLjNhZmQwMGU2YzQ1ZGU0YjcxMTI5NjJhNzczYzQyMGQ2MGEwMDZhNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNw
cApAQCAtMjg5LDExICsyODksMTQgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6Om5vdGlmeVNjcm9s
bGluZ1RyZWVzRGlzcGxheVdhc1JlZnJlc2hlZChQbGF0Zm9ybURpc3BsYXlJRAogfQogCiAjaWYg
SEFWRShDVkRJU1BMQVlMSU5LKQotdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BsYXlXYXNSZWZy
ZXNoZWQoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBjb25zdCBEaXNwbGF5VXBkYXRlJiBk
aXNwbGF5VXBkYXRlKQordm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BsYXlXYXNSZWZyZXNoZWQo
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBjb25zdCBEaXNwbGF5VXBkYXRlJiBkaXNwbGF5
VXBkYXRlLCBib29sIHNlbmRUb01haW5UaHJlYWQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAgICAgbm90aWZ5U2Nyb2xsaW5nVHJlZXNEaXNwbGF5V2FzUmVmcmVzaGVkKGRp
c3BsYXlJRCk7CiAKKyAgICBpZiAoIXNlbmRUb01haW5UaHJlYWQpCisgICAgICAgIHJldHVybjsK
KwogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbZGlzcGxheUlELCBkaXNwbGF5VXBkYXRl
XSgpIHsKICAgICAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLmRpc3BsYXlXYXNVcGRhdGVkKGRpc3BsYXlJRCwgZGlzcGxheVVwZGF0ZSk7CiAgICAgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5oCmluZGV4IGExMzBkNDQzNWM3YzllYzA5NzdlOWYxODBhZDgxNjJlMzIxYmVlYjIuLmIyY2Ni
ODQ0YWFjNTU3YzMxYmY2MTMxMDU4YjYxZjJlZTE4YTBjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCkBAIC0xMDgsNyArMTA4
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgZGlz
cGxheVdhc1JlZnJlc2hlZChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCwgY29uc3QgV2ViQ29y
ZTo6RGlzcGxheVVwZGF0ZSYpOworICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZChXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXlJRCwgY29uc3QgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSYsIGJvb2wg
c2VuZFRvTWFpblRocmVhZCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCmluZGV4IDBiNWQyOTEyY2RhOTcxZjNlMTkxNWI4ZTJh
ZjBjNWY1MDA5ODEwM2MuLmFjNzdmZTFjYmE5OWE0NjM0OWNjZDc1YmM5NmZiZDE1ZTM3M2RjNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDYgQEAgbWVzc2FnZXMgLT4g
RXZlbnREaXNwYXRjaGVyIHsKICAgICBHZXN0dXJlRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBXZWJLaXQ6OldlYkdlc3R1cmVFdmVudCBldmVudCkKICNlbmRpZgogI2lmIEhB
VkUoQ1ZESVNQTEFZTElOSykKLSAgICBEaXNwbGF5V2FzUmVmcmVzaGVkKHVpbnQzMl90IGRpc3Bs
YXlJRCwgc3RydWN0IFdlYkNvcmU6OkRpc3BsYXlVcGRhdGUgdXBkYXRlKQorICAgIERpc3BsYXlX
YXNSZWZyZXNoZWQodWludDMyX3QgZGlzcGxheUlELCBzdHJ1Y3QgV2ViQ29yZTo6RGlzcGxheVVw
ZGF0ZSB1cGRhdGUsIGJvb2wgc2VuZFRvTWFpblRocmVhZCkKICNlbmRpZgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjLmNwcAppbmRleCA0NWYwMzc0NTAwOGVlNzA2ODIwNTVmMmE0YzY2
MGM5ODg0OTRiYzM1Li4yMGFlMzNiMzMzY2JkMWYyYzQxMWE3YzliMGIxYThlOTBiYmI0MDM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAtNzEsNyArNzEsNyBAQCBib29s
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3RhcnROb3RpZmljYXRpb25NZWNoYW5pc20oKQog
ICAgIGlmIChtX2Rpc3BsYXlMaW5rSXNBY3RpdmUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIkRpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYzo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjayAtIHN0YXJ0aW5nIik7CisgICAgTE9H
X1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIltXZWIgXSBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2sgZm9yIGRpc3BsYXkgIiA8PCBkaXNw
bGF5SUQoKSA8PCAiIC0gc3RhcnRpbmciKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OlN0YXJ0RGlzcGxheUxpbmsobV9vYnNlcnZlcklELCBkaXNwbGF5SUQoKSwgbWF4Q2xpZW50UHJl
ZmVycmVkRnJhbWVzUGVyU2Vjb25kKCkudmFsdWVPcihGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQp
KSwgMCk7CiAgICAgaWYgKCFtX3J1bkxvb3BPYnNlcnZlcikgewogICAgICAgICAvLyBUaGUgUnVu
TG9vcE9ic2VydmVyIHJlcGVhdHMuCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWM6OnN0b3BOb3RpZmljYXRpb25NZWNoYW5pc20oKQogCiB2b2lkIERpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6YWRqdXN0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKEZyYW1l
c1BlclNlY29uZCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQpCiB7Ci0gICAgTE9HX1dJVEhfU1RS
RUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6YWRq
dXN0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kIGZvciBkaXNwbGF5IGxpbmsgb24gZGlzcGxheSAi
IDw8IGRpc3BsYXlJRCgpIDw8ICIgdG8gIiA8PCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQpOwor
ICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGluaywgc3RyZWFtIDw8ICJbV2ViXSBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYWM6OmFkanVzdFByZWZlcnJlZEZyYW1lc1BlclNlY29uZCBmb3IgZGlz
cGxheSBsaW5rIG9uIGRpc3BsYXkgIiA8PCBkaXNwbGF5SUQoKSA8PCAiIHRvICIgPDwgcHJlZmVy
cmVkRnJhbWVzUGVyU2Vjb25kKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNldERp
c3BsYXlMaW5rUHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKG1fb2JzZXJ2ZXJJRCwgZGlzcGxheUlE
KCksIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCksIDApOwogCiB9Cg==
</data>
<flag name="review"
          id="444872"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="444898"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>