<?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>232536</bug_id>
          
          <creation_ts>2021-10-30 17:47:40 -0700</creation_ts>
          <short_desc>Simplify code that makes use of WheelEventDeltaFilter</short_desc>
          <delta_ts>2021-11-08 21:38:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=232865</see_also>
          <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>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810464</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-30 17:47:40 -0700</bug_when>
    <thetext>Simplify WheelEventDeltaFilter, and filter deltas for all wheel phases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810465</commentid>
    <comment_count>1</comment_count>
      <attachid>442922</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-30 18:06:41 -0700</bug_when>
    <thetext>Created attachment 442922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812062</commentid>
    <comment_count>2</comment_count>
      <attachid>443375</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-04 21:13:25 -0700</bug_when>
    <thetext>Created attachment 443375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812063</commentid>
    <comment_count>3</comment_count>
      <attachid>443375</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-04 21:19:54 -0700</bug_when>
    <thetext>Comment on attachment 443375
Patch

r=mews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812343</commentid>
    <comment_count>4</comment_count>
      <attachid>443474</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-05 20:57:40 -0700</bug_when>
    <thetext>Created attachment 443474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812358</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-05 23:58:33 -0700</bug_when>
    <thetext>Committed r285367 (243925@main): &lt;https://commits.webkit.org/243925@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443474.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812359</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-05 23:59:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/85097082&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442922</attachid>
            <date>2021-10-30 18:06:41 -0700</date>
            <delta_ts>2021-11-04 21:13:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232536-20211030180640.patch</filename>
            <type>text/plain</type>
            <size>29786</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRhNzg5NDVhOTM1NzEy
ZTczNWJkMmJhY2UwYWNjZGEzZTk2ZDYzMS4uNjllYWIzZGZiN2RiYTFkNDM0ZjhkN2Y5NmJkZmZm
ODc2ZjlkMGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEwLTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IFdo
ZWVsRXZlbnREZWx0YUZpbHRlciwgYW5kIGZpbHRlciBkZWx0YXMgZm9yIGFsbCB3aGVlbCBwaGFz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjUz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZp
b3VzbHkgb25seSB3aGVlbCBldmVudHMgaW4gdGhlIGFjdGl2ZSBwaGFzZSB3ZXJlIGdpdmVuIHRv
IHRoZSBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIsIHNvCisgICAgICAgIG1vbWVudHVtIGV2ZW50IHdl
cmUgbm90IGZpbHRlcmVkIChhbmQgdGhlcmUgaXMgY29kZSBpbiB2YXJpb3VzIG90aGVyIHBsYWNl
cyB0byBkbyBheGlzCisgICAgICAgIGxvY2tpbmcpLgorCisgICAgICAgIFdoZWVsRXZlbnREZWx0
YUZpbHRlck1hYyBjYW4gaGFuZGxlIGFsbCB0aGUgZXZlbnRzIGdpdmVuIHRvIGl0LCBkb2luZyB0
aGUgY29ycmVjdCBpbnRlcm5hbAorICAgICAgICByZXNldHRpbmcgZm9yIGRpZmZlcmVudCBwaGFz
ZXMsIHNvIGp1c3QgZ2l2ZSBldmVyeSB3aGVlbCBldmVudCB0byB0aGUgZmlsdGVyLCBhbmQgdXNl
IHRoZQorICAgICAgICBmaWx0ZXJlZCBkZWx0YSBhbmQgdmVsb2NpdHkgZm9yIGJvdGggYWN0aXZl
IGFuZCBtb21lbnR1bSBldmVudHMuCisKKyAgICAgICAgVGhpcyBoYXMgYSBiZWhhdmlvciBjaGFu
Z2UgdGVzdGVkIGJ5CisgICAgICAgIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFw
L3Njcm9sbC1zbmFwLW1hbmRhdG9yeS0yZC1vdmVyZmxvdy5odG1sOyB0aGUgbW9tZW50dW0KKyAg
ICAgICAgcGhhc2Ugbm93IGF4aXMtbG9ja3MganVzdCBsaWtlIHRoZSBhY3RpdmUgcGhhc2UsIHNv
IHlvdSBjYW4ndCBtb21lbnR1bSBkaWFnb25hbGx5IGluIGEgMkQKKyAgICAgICAgc25hcCBwb2lu
dHMgZ3JpZC4gVGhpcyBkb2VzIG1hdGNoIEFwcEtpdCBiZWhhdmlvciwgYnV0IGlzbid0IGlkZWFs
LiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYKKyAgICAgICAgb2J2aW91c2x5LWRpYWdvbmFsIHNjcm9s
bHMgZGlkbid0IGF4aXMgbG9jayBpbiBib3RoIGFjdGl2ZSBhbmQgbW9tZW50dW0gcGhhc2VzLiBG
aXhpbmcgdGhpcworICAgICAgICB3b3VsZCByZXF1aXJlIGFuIEFwcEtpdCBjaGFuZ2Ugb3IgbW92
aW5nIGF3YXkgZnJvbSBfTlNTY3JvbGxpbmdQcmVkb21pbmFudEF4aXNGaWx0ZXIuCisKKyAgICAg
ICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXJMYXRjaGVkU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpyZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIp
OiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICogcGFn
ZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNXaGVl
bEV2ZW50RGVsdGFGaWx0ZXI6OnVwZGF0ZUZyb21FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpC
YXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6dXBkYXRlV2l0aERlbHRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpyZXNldCk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6ZG9taW5hbnRBeGlzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YUZpbHRlcjo6aXNGaWx0ZXJpbmdEZWx0YXMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNXaGVlbEV2ZW50RGVsdGFG
aWx0ZXI6OnVwZGF0ZUZyb21EZWx0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpCYXNp
Y1doZWVsRXZlbnREZWx0YUZpbHRlcjo6YmVnaW5GaWx0ZXJpbmdEZWx0YXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmVuZEZpbHRlcmlu
Z0RlbHRhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpCYXNpY1doZWVsRXZlbnREZWx0
YUZpbHRlcjo6ZG9taW5hbnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9uIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oOgorICAgICAgICAqIHBhZ2Uv
bWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
ZGV0ZXJtaW5lV2hlZWxFdmVudFRhcmdldCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OnJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcik6IERlbGV0ZWQuCisgICAgICAgICog
cGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmg6CisgICAgICAgICogcGFnZS9tYWMv
V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVu
dERlbHRhRmlsdGVyTWFjOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMpOgorICAgICAgICAoV2Vi
Q29yZTo6V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjOjp1cGRhdGVGcm9tRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjOjpiZWdpbkZpbHRlcmluZ0RlbHRh
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6
OnVwZGF0ZUZyb21EZWx0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50
RGVsdGFGaWx0ZXJNYWM6OmVuZEZpbHRlcmluZ0RlbHRhcyk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bVdoZWVsRXZlbnQ6OmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkgY29uc3QpOgorCiAyMDIxLTEw
LTMwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNj
cm9sbCBhbmltYXRpb25zIHNob3VsZCBydW4gYXQgMTIwSHogb24gMTIwSHogZGlzcGxheXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYjE3MmZlMGMyZWQ0NjU2OWRkNzQxZjQ5YWMxNTJhMDg1ZjUyN2JjNy4uMjZiOGIx
YzM1ZmQ2MmMyYzM5NWE1NjU0NmM1NTcwMzc5NWIyN2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OCBAQAorMjAyMS0xMC0zMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KworICAgICAgICBTaW1wbGlmeSBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIsIGFuZCBmaWx0ZXIgZGVs
dGFzIGZvciBhbGwgd2hlZWwgcGhhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzI1MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcmV2aW91c2x5IG9ubHkgd2hlZWwgZXZlbnRzIGluIHRoZSBhY3Rp
dmUgcGhhc2Ugd2VyZSBnaXZlbiB0byB0aGUgV2hlZWxFdmVudERlbHRhRmlsdGVyLCBzbworICAg
ICAgICBtb21lbnR1bSBldmVudCB3ZXJlIG5vdCBmaWx0ZXJlZCAoYW5kIHRoZXJlIGlzIGNvZGUg
aW4gdmFyaW91cyBvdGhlciBwbGFjZXMgdG8gZG8gYXhpcworICAgICAgICBsb2NraW5nKS4KKwor
ICAgICAgICBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMgY2FuIGhhbmRsZSBhbGwgdGhlIGV2ZW50
cyBnaXZlbiB0byBpdCwgZG9pbmcgdGhlIGNvcnJlY3QgaW50ZXJuYWwKKyAgICAgICAgcmVzZXR0
aW5nIGZvciBkaWZmZXJlbnQgcGhhc2VzLCBzbyBqdXN0IGdpdmUgZXZlcnkgd2hlZWwgZXZlbnQg
dG8gdGhlIGZpbHRlciwgYW5kIHVzZSB0aGUKKyAgICAgICAgZmlsdGVyZWQgZGVsdGEgYW5kIHZl
bG9jaXR5IGZvciBib3RoIGFjdGl2ZSBhbmQgbW9tZW50dW0gZXZlbnRzLgorCisgICAgICAgIFRo
aXMgaGFzIGEgYmVoYXZpb3IgY2hhbmdlIHRlc3RlZCBieQorICAgICAgICB0aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktMmQtb3ZlcmZsb3cu
aHRtbDsgdGhlIG1vbWVudHVtCisgICAgICAgIHBoYXNlIG5vdyBheGlzLWxvY2tzIGp1c3QgbGlr
ZSB0aGUgYWN0aXZlIHBoYXNlLCBzbyB5b3UgY2FuJ3QgbW9tZW50dW0gZGlhZ29uYWxseSBpbiBh
IDJECisgICAgICAgIHNuYXAgcG9pbnRzIGdyaWQuIFRoaXMgZG9lcyBtYXRjaCBBcHBLaXQgYmVo
YXZpb3IsIGJ1dCBpc24ndCBpZGVhbC4gSXQgd291bGQgYmUgYmV0dGVyIGlmCisgICAgICAgIG9i
dmlvdXNseS1kaWFnb25hbCBzY3JvbGxzIGRpZG4ndCBheGlzIGxvY2sgaW4gYm90aCBhY3RpdmUg
YW5kIG1vbWVudHVtIHBoYXNlcy4gRml4aW5nIHRoaXMKKyAgICAgICAgd291bGQgcmVxdWlyZSBh
biBBcHBLaXQgY2hhbmdlIG9yIG1vdmluZyBhd2F5IGZyb20gX05TU2Nyb2xsaW5nUHJlZG9taW5h
bnRBeGlzRmlsdGVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCk6
CisKIDIwMjEtMTAtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgU2Nyb2xsIGFuaW1hdGlvbnMgc2hvdWxkIHJ1biBhdCAxMjBIeiBvbiAxMjBIeiBk
aXNwbGF5cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDU3YjMzNTdhMTU0
NjI5MjRjMDExOGVmMjc2ZTQ5OWMwMTI0NTQyMTEuLjlkMTRhYWQ0ZjQxNjE2YWRjNzc2ODQ2NmY2
MWYyYTEzMGY5ZTFjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI4
MTMsMTIgKzI4MTMsNiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGV0ZXJtaW5lV2hlZWxFdmVudFRh
cmdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBSZWZQdHI8RQogewogfQogCi12b2lkIEV2
ZW50SGFuZGxlcjo6cmVjb3JkV2hlZWxFdmVudEZvckRlbHRhRmlsdGVyKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgZXZlbnQpCi17Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2Uo
KSkKLSAgICAgICAgcGFnZS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPnVwZGF0ZUZyb21EZWx0
YShGbG9hdFNpemUoZXZlbnQuZGVsdGFYKCksIGV2ZW50LmRlbHRhWSgpKSk7Ci19Ci0KIGJvb2wg
RXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYsIE9wdGlv
blNldDxFdmVudEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQogewogICAgIFJlZjxGcmFtZT4gcHJv
dGVjdGVkRnJhbWUobV9mcmFtZSk7CkBAIC0yOTcyLDcgKzI5NjYsNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6aGFuZGxlV2hlZWxFdmVudEludGVybmFsKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIE9wdAogI2lmIEVOQUJMRShXSEVFTF9FVkVOVF9MQVRDSElORykKICAgICAgICAgbV9m
cmFtZS5wYWdlKCktPnNjcm9sbExhdGNoaW5nQ29udHJvbGxlcigpLnJlY2VpdmVkV2hlZWxFdmVu
dChldmVudCk7CiAjZW5kaWYKLSAgICAgICAgcmVjb3JkV2hlZWxFdmVudEZvckRlbHRhRmlsdGVy
KGV2ZW50KTsKKyAgICAgICAgbV9mcmFtZS5wYWdlKCktPndoZWVsRXZlbnREZWx0YUZpbHRlcigp
LT51cGRhdGVGcm9tRXZlbnQoZXZlbnQpOwogICAgIH0KIAogICAgIEhpdFRlc3RSZXF1ZXN0IHJl
cXVlc3Q7CkBAIC0zMDg2LDcgKzMwODAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hl
ZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2RlLCBjbwogICAg
ICAgICAgICAgYXV0byBwbGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZv
cm1FdmVudCgpOwogICAgICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5kbGVkOwogICAgICAg
ICAgICAgaWYgKHBsYXRmb3JtRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2
ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEud2lkdGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhlaWdodCgpLCBmaWx0
ZXJlZFZlbG9jaXR5KTsKKyAgICAgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50ID0gcGxhdGZv
cm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJlZFBsYXRmb3JtRGVsdGEs
IGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQg
PSBzY3JvbGxhYmxlQXJlYUNhbkhhbmRsZUV2ZW50KGNvcGllZEV2ZW50LCAqYm94U2Nyb2xsYWJs
ZUFyZWEpICYmIGhhbmRsZVdoZWVsRXZlbnRJblNjcm9sbGFibGVBcmVhKGNvcGllZEV2ZW50LCAq
Ym94U2Nyb2xsYWJsZUFyZWEsIGV2ZW50SGFuZGxpbmcpOwogICAgICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJs
ZUFyZWEoKmJveFNjcm9sbGFibGVBcmVhLCB3aGVlbEV2ZW50KTsKQEAgLTMxNTMsOCArMzE0Nyw2
IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhckxhdGNoZWRTdGF0ZSgpCiAgICAgaWYgKGF1dG8q
IHNjcm9sbExhdGNoaW5nQ29udHJvbGxlciA9IHBhZ2UtPnNjcm9sbExhdGNoaW5nQ29udHJvbGxl
cklmRXhpc3RzKCkpCiAgICAgICAgIHNjcm9sbExhdGNoaW5nQ29udHJvbGxlci0+cmVtb3ZlTGF0
Y2hpbmdTdGF0ZUZvckZyYW1lKG1fZnJhbWUpOwogI2VuZGlmCi0gICAgaWYgKGF1dG8qIGZpbHRl
ciA9IHBhZ2UtPndoZWVsRXZlbnREZWx0YUZpbHRlcigpKQotICAgICAgICBmaWx0ZXItPmVuZEZp
bHRlcmluZ0RlbHRhcygpOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFdoZWVsRXZl
bnRIYW5kbGVyKE5vZGUqIHN0YXJ0Tm9kZSwgV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKQEAgLTMx
NzUsMjEgKzMxNjcsMTcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRXaGVlbEV2ZW50SGFu
ZGxlcihOb2RlKiBzdGFydE5vZGUsIFdoZWVsRXZlbnQmIHdoZWVsRXYKIAogICAgIEZsb2F0U2l6
ZSBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEod2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxFdmVudC5k
ZWx0YVkoKSk7CiAgICAgRmxvYXRTaXplIGZpbHRlcmVkVmVsb2NpdHk7Ci0gICAgaWYgKGF1dG8g
cGxhdGZvcm1XaGVlbEV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgp
KSB7Ci0gICAgICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5zZXRXaWR0aChwbGF0Zm9ybVdoZWVs
RXZlbnQtPmRlbHRhWCgpKTsKLSAgICAgICAgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLnNldEhlaWdo
dChwbGF0Zm9ybVdoZWVsRXZlbnQtPmRlbHRhWSgpKTsKLSAgICB9CisgICAgaWYgKGF1dG8gcGxh
dGZvcm1XaGVlbEV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpKQor
ICAgICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEgPSBwbGF0Zm9ybVdoZWVsRXZlbnQtPmRlbHRh
KCk7CiAKICAgICBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZyA9IHsgRXZl
bnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NIH07CiAgICAgaWYgKHdoZWVsRXZlbnQuZGVmYXVs
dFByZXZlbnRlZCgpKQogICAgICAgICBldmVudEhhbmRsaW5nLmFkZChFdmVudEhhbmRsaW5nOjpE
ZWZhdWx0UHJldmVudGVkKTsKIAotI2lmIEVOQUJMRShXSEVFTF9FVkVOVF9MQVRDSElORykKLSAg
ICBpZiAobV9mcmFtZS5wYWdlKCktPndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5pc0ZpbHRlcmlu
Z0RlbHRhcygpKSB7Ci0gICAgICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YSA9IG1fZnJhbWUucGFn
ZSgpLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+ZmlsdGVyZWREZWx0YSgpOwotICAgICAgICBm
aWx0ZXJlZFZlbG9jaXR5ID0gbV9mcmFtZS5wYWdlKCktPndoZWVsRXZlbnREZWx0YUZpbHRlcigp
LT5maWx0ZXJlZFZlbG9jaXR5KCk7Ci0gICAgfQorICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YSA9
IG1fZnJhbWUucGFnZSgpLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+ZmlsdGVyZWREZWx0YSgp
OworICAgIGZpbHRlcmVkVmVsb2NpdHkgPSBtX2ZyYW1lLnBhZ2UoKS0+d2hlZWxFdmVudERlbHRh
RmlsdGVyKCktPmZpbHRlcmVkVmVsb2NpdHkoKTsKIAorI2lmIEVOQUJMRShXSEVFTF9FVkVOVF9M
QVRDSElORykKICAgICBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBsYXRjaGVkU2Nyb2xsZXI7CiAg
ICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkubGF0Y2hp
bmdBbGxvd3NTY3JvbGxpbmdJbkZyYW1lKG1fZnJhbWUsIGxhdGNoZWRTY3JvbGxlcikpCiAgICAg
ICAgIHJldHVybjsKQEAgLTMyMDEsNyArMzE4OSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZh
dWx0V2hlZWxFdmVudEhhbmRsZXIoTm9kZSogc3RhcnROb2RlLCBXaGVlbEV2ZW50JiB3aGVlbEV2
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocGxhdGZvcm1FdmVudCkgewotICAgICAgICAgICAg
YXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2Np
dHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5o
ZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CisgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50
ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJlZFBsYXRm
b3JtRGVsdGEsIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAgICAgICAgaWYgKGhhbmRsZVdoZWVs
RXZlbnRJblNjcm9sbGFibGVBcmVhKGNvcGllZEV2ZW50LCAqbGF0Y2hlZFNjcm9sbGVyLCBldmVu
dEhhbmRsaW5nKSkKICAgICAgICAgICAgICAgICB3aGVlbEV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRl
eCBhNTM5YmI3NzNlNzg4NWYxN2IxMzgzY2U5MGI4Zjk1ZWE1N2QwNTU0Li4zNmM4MDIzMGQyYjJl
NzYxYTBiNjY2Yzk0MzA2MWY5YjYyZjU0N2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKQEAgLTQ3MCw3ICs0NzAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVu
dEludGVybmFsKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzPiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+Jik7CiAgICAgYm9vbCBw
YXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYs
IE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPik7CiAgICAgdm9pZCBkZXRlcm1p
bmVXaGVlbEV2ZW50VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0cjxFbGVt
ZW50PiYgZXZlbnRUYXJnZXQsIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiwgYm9vbCYgaXNPdmVy
V2lkZ2V0KTsKLSAgICB2b2lkIHJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmKTsKICAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xs
aW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFy
ZWE+JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KTsKICAgICB2b2lkIHByb2Nlc3NXaGVlbEV2
ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXZWFrUHRy
PFNjcm9sbGFibGVBcmVhPiYpOwogICAgIGJvb2wgY29tcGxldGVXaWRnZXRXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8V2lkZ2V0PiYsIGNvbnN0IFdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZl
bnREZWx0YUZpbHRlci5jcHAKaW5kZXggMzA0ZDk0YTc1YmYzNjFkOGRkNDZmNmFmZmFmZTMxYzNl
ZjgyYTQ0Ny4uOWMyZjdhYzZlM2Y2ZGIwMDMzYTc2NGMyMWZiNWJiMDRiOWM5Mzk1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0
U3RyZWFtLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC00OSwxMSArNTAsNiBAQCBzdGQ6OnVu
aXF1ZV9wdHI8V2hlZWxFdmVudERlbHRhRmlsdGVyPiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmNy
ZWF0ZSgpCiAjZW5kaWYKIH0KIAotYm9vbCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmlzRmlsdGVy
aW5nRGVsdGFzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pc0ZpbHRlcmluZ0RlbHRhczsKLX0K
LQogRmxvYXRTaXplIFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6ZmlsdGVyZWREZWx0YSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fY3VycmVudEZpbHRlcmVkRGVsdGE7CkBAIC02OSwzNSArNjUsNTUg
QEAgQmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVy
KCkKIHsKIH0KIAotY29uc3Qgc2l6ZV90IGJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyV2luZG93
U2l6ZSA9IDM7Cit2b2lkIEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjp1cGRhdGVGcm9tRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKK3sKKyNpZiBFTkFCTEUoS0lORVRJ
Q19TQ1JPTExJTkcpCisgICAgc3dpdGNoIChldmVudC5waGFzZSgpKSB7CisgICAgY2FzZSBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2FuY2VsbGVkOgorICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2U6Ok1heUJlZ2luOgorICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OlN0
YXRpb25hcnk6CisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6RW5kZWQ6CisgICAg
ICAgIHJlc2V0KCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZl
bnRQaGFzZTo6Tm9uZToKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlOjpCZWdhbjoKKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDaGFu
Z2VkOgorICAgICAgICB1cGRhdGVXaXRoRGVsdGEoZXZlbnQuZGVsdGEoKSk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyNlbHNlCisgICAgbV9jdXJyZW50RmlsdGVyZWREZWx0YSA9IGV2ZW50LmRl
bHRhKCk7CisjZW5kaWYKK30KKworY29uc3RleHByIHNpemVfdCBiYXNpY1doZWVsRXZlbnREZWx0
YUZpbHRlcldpbmRvd1NpemUgPSAzOwogCi12b2lkIEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVy
Ojp1cGRhdGVGcm9tRGVsdGEoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKK3ZvaWQgQmFzaWNXaGVl
bEV2ZW50RGVsdGFGaWx0ZXI6OnVwZGF0ZVdpdGhEZWx0YShGbG9hdFNpemUgZGVsdGEpCiB7CiAg
ICAgbV9jdXJyZW50RmlsdGVyZWREZWx0YSA9IGRlbHRhOwotICAgIGlmICghbV9pc0ZpbHRlcmlu
Z0RlbHRhcykKLSAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgbV9yZWNlbnRXaGVlbEV2ZW50
RGVsdGFzLmFwcGVuZChkZWx0YSk7CiAgICAgaWYgKG1fcmVjZW50V2hlZWxFdmVudERlbHRhcy5z
aXplKCkgPiBiYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcldpbmRvd1NpemUpCiAgICAgICAgIG1f
cmVjZW50V2hlZWxFdmVudERlbHRhcy5yZW1vdmVGaXJzdCgpOwogICAgIAotICAgIERvbWluYW50
U2Nyb2xsR2VzdHVyZURpcmVjdGlvbiBzY3JvbGxEaXJlY3Rpb24gPSBkb21pbmFudFNjcm9sbEdl
c3R1cmVEaXJlY3Rpb24oKTsKLSAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uID09IERvbWluYW50U2Ny
b2xsR2VzdHVyZURpcmVjdGlvbjo6VmVydGljYWwpCisgICAgYXV0byBzY3JvbGxBeGlzID0gZG9t
aW5hbnRBeGlzKCk7CisgICAgaWYgKCFzY3JvbGxBeGlzKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoc2Nyb2xsQXhpcy52YWx1ZSgpID09IFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwpCiAg
ICAgICAgIG1fY3VycmVudEZpbHRlcmVkRGVsdGEuc2V0V2lkdGgoMCk7Ci0gICAgZWxzZSBpZiAo
c2Nyb2xsRGlyZWN0aW9uID09IERvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbjo6SG9yaXpv
bnRhbCkKKyAgICBlbHNlIGlmIChzY3JvbGxBeGlzLnZhbHVlKCkgPT0gU2Nyb2xsRXZlbnRBeGlz
OjpIb3Jpem9udGFsKQogICAgICAgICBtX2N1cnJlbnRGaWx0ZXJlZERlbHRhLnNldEhlaWdodCgw
KTsKIH0KIAotdm9pZCBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6YmVnaW5GaWx0ZXJpbmdE
ZWx0YXMoKQordm9pZCBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6cmVzZXQoKQogewogICAg
IG1fcmVjZW50V2hlZWxFdmVudERlbHRhcy5jbGVhcigpOwotICAgIG1faXNGaWx0ZXJpbmdEZWx0
YXMgPSB0cnVlOwotfQotCi12b2lkIEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjplbmRGaWx0
ZXJpbmdEZWx0YXMoKQotewotICAgIG1fY3VycmVudEZpbHRlcmVkRGVsdGEgPSBGbG9hdFNpemUo
MCwgMCk7Ci0gICAgbV9pc0ZpbHRlcmluZ0RlbHRhcyA9IGZhbHNlOworICAgIG1fY3VycmVudEZp
bHRlcmVkRGVsdGEgPSB7IH07CisgICAgbV9jdXJyZW50RmlsdGVyZWRWZWxvY2l0eSA9IHsgfTsK
IH0KIAogc3RhdGljIGlubGluZSBib29sIGRlbHRhSXNQcmVkb21pbmFudGx5VmVydGljYWwoY29u
c3QgRmxvYXRTaXplJiBkZWx0YSkKQEAgLTEwNSwyNCArMTIxLDI0IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBkZWx0YUlzUHJlZG9taW5hbnRseVZlcnRpY2FsKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEp
CiAgICAgcmV0dXJuIGZhYnMoZGVsdGEuaGVpZ2h0KCkpID4gZmFicyhkZWx0YS53aWR0aCgpKTsK
IH0KIAotRG9taW5hbnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9uIEJhc2ljV2hlZWxFdmVudERlbHRh
RmlsdGVyOjpkb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb24oKSBjb25zdAorc3RkOjpvcHRp
b25hbDxTY3JvbGxFdmVudEF4aXM+IEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpkb21pbmFu
dEF4aXMoKSBjb25zdAogewogICAgIGJvb2wgYWxsVmVydGljYWwgPSBtX3JlY2VudFdoZWVsRXZl
bnREZWx0YXMuc2l6ZSgpOwogICAgIGJvb2wgYWxsSG9yaXpvbnRhbCA9IG1fcmVjZW50V2hlZWxF
dmVudERlbHRhcy5zaXplKCk7Ci0gICAgCisKICAgICBmb3IgKGNvbnN0IGF1dG8mIGRlbHRhIDog
bV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFzKSB7CiAgICAgICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGRl
bHRhSXNQcmVkb21pbmFudGx5VmVydGljYWwoZGVsdGEpOwogICAgICAgICBhbGxWZXJ0aWNhbCAm
PSBpc1ZlcnRpY2FsOwogICAgICAgICBhbGxIb3Jpem9udGFsICY9ICFpc1ZlcnRpY2FsOwogICAg
IH0KLSAgICAKKwogICAgIGlmIChhbGxWZXJ0aWNhbCkKLSAgICAgICAgcmV0dXJuIERvbWluYW50
U2Nyb2xsR2VzdHVyZURpcmVjdGlvbjo6VmVydGljYWw7Ci0gICAgCisgICAgICAgIHJldHVybiBT
Y3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsOworCiAgICAgaWYgKGFsbEhvcml6b250YWwpCi0gICAg
ICAgIHJldHVybiBEb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb246Okhvcml6b250YWw7Ci0g
ICAgCi0gICAgcmV0dXJuIERvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbjo6Tm9uZTsKKyAg
ICAgICAgcmV0dXJuIFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbDsKKworICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiB9CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1do
ZWVsRXZlbnREZWx0YUZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVs
dGFGaWx0ZXIuaAppbmRleCAyMGI1NWNkN2ZlYThjMmZhNDcyMWU2YjM0NmVjMTQxMWE4OTVjN2Uw
Li5mMmVhOTJmZGNiNGJmNjVlNzg1M2Y4ZGIzOGMwY2YzMjJiMmUxYzhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQ1ICsyNiw0MSBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgog
I2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFBs
YXRmb3JtV2hlZWxFdmVudDsKKwogY2xhc3MgV2hlZWxFdmVudERlbHRhRmlsdGVyIHsKIHB1Ymxp
YzoKICAgICBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIoKTsKICAgICB2aXJ0dWFsIH5XaGVlbEV2ZW50
RGVsdGFGaWx0ZXIoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8V2hlZWxFdmVudERlbHRhRmlsdGVyPiBjcmVhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbURlbHRhKGNvbnN0IEZsb2F0U2l6ZSYpID0gMDsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgYmVnaW5GaWx0ZXJpbmdEZWx0YXMoKSA9IDA7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGVuZEZpbHRlcmluZ0RlbHRhcygpID0gMDsK
KworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgPSAwOworCiAgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRTaXpl
IGZpbHRlcmVkVmVsb2NpdHkoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzRmls
dGVyaW5nRGVsdGFzKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRTaXplIGZpbHRl
cmVkRGVsdGEoKSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIEZsb2F0U2l6ZSBtX2N1cnJlbnRG
aWx0ZXJlZERlbHRhOwogICAgIEZsb2F0U2l6ZSBtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5Owot
ICAgIGJvb2wgbV9pc0ZpbHRlcmluZ0RlbHRhcyB7IGZhbHNlIH07Ci19OwotCi1lbnVtIGNsYXNz
IERvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbiB7Ci0gICAgTm9uZSwKLSAgICBWZXJ0aWNh
bCwKLSAgICBIb3Jpem9udGFsCiB9OwogCiBjbGFzcyBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRl
ciBmaW5hbCA6IHB1YmxpYyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyKCk7
Ci0gICAgdm9pZCB1cGRhdGVGcm9tRGVsdGEoY29uc3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBiZWdpbkZpbHRlcmluZ0RlbHRhcygpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5kRmls
dGVyaW5nRGVsdGFzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVGcm9tRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgRG9taW5hbnRTY3Jv
bGxHZXN0dXJlRGlyZWN0aW9uIGRvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbigpIGNvbnN0
OworICAgIHN0ZDo6b3B0aW9uYWw8U2Nyb2xsRXZlbnRBeGlzPiBkb21pbmFudEF4aXMoKSBjb25z
dDsKKyAgICAKKyAgICB2b2lkIHJlc2V0KCk7CisgICAgdm9pZCB1cGRhdGVXaXRoRGVsdGEoRmxv
YXRTaXplKTsKIAogICAgIERlcXVlPEZsb2F0U2l6ZT4gbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFz
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCA1
N2Q1YTY0N2YwMzAyNDI1MWNmOTYxNmIyY2JmYTVhNGFmNzFlOWY1Li4xZWNkMGNjNzhlZDU1NTY0
ZjAzMmIzMGM5YzgzZWJmNTc0YWRlODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tCkBAIC04ODUsMzEgKzg4NSw5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpk
ZXRlcm1pbmVXaGVlbEV2ZW50VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxF
dmVuCiAgICAgaWYgKHdoZWVsRXZlbnQuc2hvdWxkUmVzZXRMYXRjaGluZygpIHx8IHdoZWVsRXZl
bnQuaXNOb25HZXN0dXJlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJh
bWUuaXNNYWluRnJhbWUoKSAmJiB3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCi0gICAgICAg
IHBhZ2UtPndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5iZWdpbkZpbHRlcmluZ0RlbHRhcygpOwot
CiAgICAgcGFnZS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkudXBkYXRlQW5kRmV0Y2hMYXRj
aGluZ1N0YXRlRm9yRnJhbWUobV9mcmFtZSwgd2hlZWxFdmVudCwgd2hlZWxFdmVudFRhcmdldCwg
c2Nyb2xsYWJsZUFyZWEsIGlzT3ZlcldpZGdldCk7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpy
ZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50KQotewotICAgIGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKLSAgICBpZiAo
IXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN3aXRjaCAod2hlZWxFdmVudC5waGFzZSgp
KSB7Ci0gICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW46Ci0gICAgICAgIHBh
Z2UtPndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5iZWdpbkZpbHRlcmluZ0RlbHRhcygpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpFbmRlZDoKLSAg
ICAgICAgcGFnZS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPmVuZEZpbHRlcmluZ0RlbHRhcygp
OwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9Ci0g
ICAgcGFnZS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPnVwZGF0ZUZyb21EZWx0YShGbG9hdFNp
emUod2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSkpOwotfQotCiBib29s
IEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYg
c2Nyb2xsYWJsZUFyZWEsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQog
ewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJFdmVudEhh
bmRsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nICIgPDwgd2hlZWxFdmVudCA8PCAi
IC0gc2Nyb2xsYWJsZUFyZWEgIiA8PCBWYWx1ZU9yTnVsbChzY3JvbGxhYmxlQXJlYS5nZXQoKSkg
PDwgIiB1c2UgbGF0Y2hlZCBlbGVtZW50ICIgPDwgd2hlZWxFdmVudC51c2VMYXRjaGVkRXZlbnRF
bGVtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVu
dERlbHRhRmlsdGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVs
dGFGaWx0ZXJNYWMuaAppbmRleCAyY2M5OGJmNzkxY2QyN2NhNWQ2Yjc3ZTBmNWE1YWRhYzQ1ZWEx
OWU5Li4yNGJhODFhZjAxYzI0ZmQxNTViMzc4OWQwY2JkNWZhY2Y4YjQ5NDI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaApAQCAt
NDAsMTMgKzQwLDExIEBAIGNsYXNzIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYyBmaW5hbCA6IHB1
YmxpYyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIgewogcHVibGljOgogICAgIFdoZWVsRXZlbnREZWx0
YUZpbHRlck1hYygpOwogCi0gICAgdm9pZCB1cGRhdGVGcm9tRGVsdGEoY29uc3QgRmxvYXRTaXpl
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBiZWdpbkZpbHRlcmluZ0RlbHRhcygpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZW5kRmlsdGVyaW5nRGVsdGFzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVG
cm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWw7CiAKIHByaXZhdGU6CiAg
ICAgUmV0YWluUHRyPF9OU1Njcm9sbGluZ1ByZWRvbWluYW50QXhpc0ZpbHRlcj4gbV9wcmVkb21p
bmFudEF4aXNGaWx0ZXI7Ci0gICAgTW9ub3RvbmljVGltZSBtX2JlZ2luRmlsdGVyaW5nRGVsdGFz
VGltZTsKKyAgICBXYWxsVGltZSBtX2luaXRpYWxXYWxsVGltZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZl
bnREZWx0YUZpbHRlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnRE
ZWx0YUZpbHRlck1hYy5tbQppbmRleCAyM2IxZWQ1Y2M5ZTRmNTRiNGFiMDA2YTUyZTQ3YTE0YmVk
MDU4ZDA5Li5iZjdmM2M0N2I3NTA0YTNjNDQ2NzMwNDdlMjkwM2M0ZjU3MzdhYmMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1t
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIldoZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oIgogCiAj
aW1wb3J0ICJGbG9hdFBvaW50LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNp
bXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsaW5nSW5wdXRGaWx0ZXJTUEkuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzYsMzMgKzM3LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdo
ZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjKCkKICAgICA6
IFdoZWVsRXZlbnREZWx0YUZpbHRlcigpCiAgICAgLCBtX3ByZWRvbWluYW50QXhpc0ZpbHRlcihh
ZG9wdE5TKFtbX05TU2Nyb2xsaW5nUHJlZG9taW5hbnRBeGlzRmlsdGVyIGFsbG9jXSBpbml0XSkp
CisgICAgLCBtX2luaXRpYWxXYWxsVGltZShXYWxsVGltZTo6bm93KCkpCiB7CiB9CiAKLXZvaWQg
V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjOjpiZWdpbkZpbHRlcmluZ0RlbHRhcygpCit2b2lkIFdo
ZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6dXBkYXRlRnJvbUV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgZXZlbnQpCiB7Ci0gICAgbV9iZWdpbkZpbHRlcmluZ0RlbHRhc1RpbWUgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKLSAgICBtX2lzRmlsdGVyaW5nRGVsdGFzID0gdHJ1ZTsKLX0KLQot
dm9pZCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OnVwZGF0ZUZyb21EZWx0YShjb25zdCBGbG9h
dFNpemUmIGRlbHRhKQotewotICAgIGlmICghbV9pc0ZpbHRlcmluZ0RlbHRhcykKLSAgICAgICAg
cmV0dXJuOwotCiAgICAgTlNQb2ludCBmaWx0ZXJlZERlbHRhUmVzdWx0OwogICAgIE5TUG9pbnQg
ZmlsdGVyZWRWZWxvY2l0eVJlc3VsdDsKLSAgICBbbV9wcmVkb21pbmFudEF4aXNGaWx0ZXIgZmls
dGVySW5wdXREZWx0YTpOU1BvaW50KEZsb2F0UG9pbnQoZGVsdGEud2lkdGgoKSwgZGVsdGEuaGVp
Z2h0KCkpKSB0aW1lc3RhbXA6KE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9iZWdpbkZpbHRlcmlu
Z0RlbHRhc1RpbWUpLnNlY29uZHMoKSBvdXRwdXREZWx0YTomZmlsdGVyZWREZWx0YVJlc3VsdCB2
ZWxvY2l0eTomZmlsdGVyZWRWZWxvY2l0eVJlc3VsdF07Ci0gICAgbV9jdXJyZW50RmlsdGVyZWRW
ZWxvY2l0eSA9IEZsb2F0U2l6ZShmaWx0ZXJlZFZlbG9jaXR5UmVzdWx0LngsIGZpbHRlcmVkVmVs
b2NpdHlSZXN1bHQueSk7Ci0gICAgbV9jdXJyZW50RmlsdGVyZWREZWx0YSA9IEZsb2F0U2l6ZShm
aWx0ZXJlZERlbHRhUmVzdWx0LngsIGZpbHRlcmVkRGVsdGFSZXN1bHQueSk7Ci19CiAKLXZvaWQg
V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjOjplbmRGaWx0ZXJpbmdEZWx0YXMoKQotewotICAgIG1f
Y3VycmVudEZpbHRlcmVkRGVsdGEgPSBGbG9hdFNpemUoMCwgMCk7Ci0gICAgbV9iZWdpbkZpbHRl
cmluZ0RlbHRhc1RpbWUgPSBNb25vdG9uaWNUaW1lKCk7Ci0gICAgW21fcHJlZG9taW5hbnRBeGlz
RmlsdGVyIHJlc2V0XTsKLSAgICBtX2lzRmlsdGVyaW5nRGVsdGFzID0gZmFsc2U7CisgICAgLy8g
VGhlIGFic29sdXRlIHZhbHVlIG9mIHRpbWVzdGFtcCBkb2Vzbid0IG1hdHRlcjsgdGhlIGZpbHRl
ciBsb29rcyBhdCBkZWx0YXMgZnJvbSB0aGUgcHJldmlvdXMgZXZlbnQuCisgICAgYXV0byB0aW1l
c3RhbXAgPSBldmVudC50aW1lc3RhbXAoKSAtIG1faW5pdGlhbFdhbGxUaW1lOworCisgICAgW21f
cHJlZG9taW5hbnRBeGlzRmlsdGVyIGZpbHRlcklucHV0RGVsdGE6dG9GbG9hdFBvaW50KGV2ZW50
LmRlbHRhKCkpIHRpbWVzdGFtcDp0aW1lc3RhbXAuc2Vjb25kcygpIG91dHB1dERlbHRhOiZmaWx0
ZXJlZERlbHRhUmVzdWx0IHZlbG9jaXR5OiZmaWx0ZXJlZFZlbG9jaXR5UmVzdWx0XTsKKyAgICBt
X2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5ID0gdG9GbG9hdFNpemUoZmlsdGVyZWRWZWxvY2l0eVJl
c3VsdCk7CisgICAgbV9jdXJyZW50RmlsdGVyZWREZWx0YSA9IHRvRmxvYXRTaXplKGZpbHRlcmVk
RGVsdGFSZXN1bHQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
V2hlZWxFdmVudC5oCmluZGV4IDcwNWU1ZGQ2MGQ5M2FlMDYzZjViMzFkZTUzNDc0N2NkODM3ZjQ2
OTUuLjMyZjk1ZWVhMGE2MzEzOTk1NzM0ZGEwZTk2OWExZTQ3YWVhMjdjMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0xMjAsMTEgKzEyMCwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBjb3B5OwogICAgIH0KIAotICAgIFBsYXRmb3Jt
V2hlZWxFdmVudCBjb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGZsb2F0IGRlbHRhWCwgZmxvYXQg
ZGVsdGFZLCBjb25zdCBGbG9hdFNpemUmIHZlbG9jaXR5KSBjb25zdAorICAgIFBsYXRmb3JtV2hl
ZWxFdmVudCBjb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KEZsb2F0U2l6ZSBkZWx0YSwgRmxvYXRT
aXplIHZlbG9jaXR5KSBjb25zdAogICAgIHsKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50IGNv
cHkgPSAqdGhpczsKLSAgICAgICAgY29weS5tX2RlbHRhWCA9IGRlbHRhWDsKLSAgICAgICAgY29w
eS5tX2RlbHRhWSA9IGRlbHRhWTsKKyAgICAgICAgY29weS5tX2RlbHRhWCA9IGRlbHRhLndpZHRo
KCk7CisgICAgICAgIGNvcHkubV9kZWx0YVkgPSBkZWx0YS5oZWlnaHQoKTsKICAgICAgICAgY29w
eS5tX3Njcm9sbGluZ1ZlbG9jaXR5ID0gdmVsb2NpdHk7CiAgICAgICAgIHJldHVybiBjb3B5Owog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50
RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwCmluZGV4IDZjOTVkMjg2MzcxMWQyZDNhNmQwMTk0NzUzNjQwMDU0N2YyYjUy
NzQuLjQ1MjNiNGQ4OWJhM2NiYWIxN2Q4YzYxYjNmYzQ0MjFiOWNkYTM3ZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApA
QCAtMTAzLDIyICsxMDMsMTAgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGUKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3dpdGNoICh3aGVlbEV2ZW50LnBoYXNlKCkpIHsKLSAg
ICBjYXNlIFdlYldoZWVsRXZlbnQ6OlBoYXNlQmVnYW46Ci0gICAgICAgIG1fcmVjZW50V2hlZWxF
dmVudERlbHRhRmlsdGVyLT5iZWdpbkZpbHRlcmluZ0RlbHRhcygpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQ6Ci0gICAgICAgIG1fcmVjZW50V2hl
ZWxFdmVudERlbHRhRmlsdGVyLT5lbmRGaWx0ZXJpbmdEZWx0YXMoKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKG1fcmVjZW50
V2hlZWxFdmVudERlbHRhRmlsdGVyLT5pc0ZpbHRlcmluZ0RlbHRhcygpKSB7Ci0gICAgICAgIG1f
cmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVyLT51cGRhdGVGcm9tRGVsdGEoRmxvYXRTaXplKHBs
YXRmb3JtV2hlZWxFdmVudC5kZWx0YVgoKSwgcGxhdGZvcm1XaGVlbEV2ZW50LmRlbHRhWSgpKSk7
Ci0gICAgICAgIEZsb2F0U2l6ZSBmaWx0ZXJlZERlbHRhID0gbV9yZWNlbnRXaGVlbEV2ZW50RGVs
dGFGaWx0ZXItPmZpbHRlcmVkRGVsdGEoKTsKLSAgICAgICAgcGxhdGZvcm1XaGVlbEV2ZW50ID0g
cGxhdGZvcm1XaGVlbEV2ZW50LmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWREZWx0
YS53aWR0aCgpLCBmaWx0ZXJlZERlbHRhLmhlaWdodCgpLCBtX3JlY2VudFdoZWVsRXZlbnREZWx0
YUZpbHRlci0+ZmlsdGVyZWRWZWxvY2l0eSgpKTsKLSAgICB9CisgICAgbV9yZWNlbnRXaGVlbEV2
ZW50RGVsdGFGaWx0ZXItPnVwZGF0ZUZyb21FdmVudChwbGF0Zm9ybVdoZWVsRXZlbnQpOworICAg
IGF1dG8gZmlsdGVyZWREZWx0YSA9IG1fcmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVyLT5maWx0
ZXJlZERlbHRhKCk7CisgICAgYXV0byBmaWx0ZXJlZFZlbG9jaXR5ID0gbV9yZWNlbnRXaGVlbEV2
ZW50RGVsdGFGaWx0ZXItPmZpbHRlcmVkVmVsb2NpdHkoKTsKKyAgICBwbGF0Zm9ybVdoZWVsRXZl
bnQgPSBwbGF0Zm9ybVdoZWVsRXZlbnQuY29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmaWx0ZXJl
ZERlbHRhLCBmaWx0ZXJlZFZlbG9jaXR5KTsKICNlbmRpZgogCiAgICAgYXV0byBwcm9jZXNzaW5n
U3RlcHMgPSBPcHRpb25TZXQ8V2ViQ29yZTo6V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4geyBX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNo
IH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMWUyNzQzMWNmMGNlNDFlOGNhYmNiYjdmZWRhYzhkYmI5ODI4ZDQ2OC4uYjU4
ZWNlZWMwNWYxMjRjOWU5ZGVhMmY0NzdjMGU2ZDY0NDcyNDcwOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIxLTEwLTMwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFNpbXBsaWZ5IFdoZWVsRXZlbnREZWx0YUZpbHRlciwgYW5kIGZpbHRlciBkZWx0
YXMgZm9yIGFsbCB3aGVlbCBwaGFzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMjUzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5IHRoYXQgd2hlZWwgZXZlbnRzIHNl
bnQgdG8gSlMgYXJlbid0IGFmZmVjdGVkIGJ5IHRoZSB3aGVlbCBldmVudAorICAgICAgICBkZWx0
YSBmaWx0ZXIuCisKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtZGVs
dGFzLWFyZS1ub3QtZmlsdGVyZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtZGVsdGFzLWFyZS1ub3QtZmlsdGVyZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFuZGF0b3J5LTJkLW92ZXJmbG93Lmh0bWw6CisgICAgICAgIEFkanVzdCB0aGUg
dGVzdCBmb3IgdGhlIGZhY3QgdGhhdCB0aGUgbW9tZW50dW0gcGhhc2UgaXMgbm93IGF4aXMtbG9j
a2VkLgorCiAyMDIxLTEwLTI4ICBBeXVtaSBLb2ppbWEgIDxheXVtaV9rb2ppbWFAYXBwbGUuY29t
PgogCiAgICAgICAgIFsgbWFjT1MgRGVidWddIExheW91dCBUZXN0IGZhc3Qvc2VsZWN0b3JzL21h
dGNoZXMtYmFja3RyYWNraW5nLmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWRlbHRhcy1hcmUtbm90
LWZpbHRlcmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93
aGVlbC1ldmVudC1kZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODg4NDUxOGEwZDE1MjBlYTI2MjU1NjExMzQ5Yzc5ZjUyZTA0ZTY3YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1kZWx0YXMt
YXJlLW5vdC1maWx0ZXJlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACistMTAgMTAKKy0x
MCAyMAorLTEwIDEwCistMTAgMjAKKy0yMCAzMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL21hYy93aGVlbC1ldmVudC1kZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWRlbHRhcy1hcmUtbm90LWZp
bHRlcmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNiOTkyZmJiOGIwZmNhNmM4ZTg0Zjk4MjlmNzM1ZGI1
NjBkMzJkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21h
Yy93aGVlbC1ldmVudC1kZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC5odG1sCkBAIC0wLDAgKzEsMzkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1
bmN0aW9uIGRpc3BhdGNoV2hlZWxFdmVudHMoKQorICAgICAgICB7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKDEwMCwgMTAwKTsKKworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDEsIC0xLCAiYmVnYW4iLCAibm9uZSIpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDEsIC0yLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgImVuZGVkIiwg
Im5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygxLCAtMSwgIm5vbmUiLCAiYmVnaW4iKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygxLCAtMiwg
Im5vbmUiLCAiY29udGludWUiKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygyLCAtMywgIm5vbmUiLCAiY29udGludWUiKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAibm9uZSIsICJlbmQiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LndhaXRGb3JTY3JvbGxDb21wbGV0aW9uKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkg
PT4geworCisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgICAgICBkZWJ1ZyhgJHtldmVudC5kZWx0YVh9ICR7ZXZlbnQu
ZGVsdGFZfWApCisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgZGlzcGF0Y2hXaGVlbEV2
ZW50cygpOworICAgICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICAKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktMmQtb3ZlcmZsb3cuaHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS0yZC1vdmVyZmxvdy5odG1sCmluZGV4
IDY0MzY5ZTI5MzYyZTAyNmZmNzFkMjc3NGQ2NWE5YmRkZDVmZTcyYjQuLjNhYTBmODViYTNkZjc0
MTI2MzY4MWRkOWI0ZWMzMjIyOTMwMTFiOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS0yZC1v
dmVyZmxvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS0yZC1vdmVyZmxvdy5odG1sCkBAIC05Niw4
ICs5Niw4IEBACiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbEds
aWRlKCkgewotICAgICAgICAgICAgLy8gVGhlIGRpdiBzaG91bGQgaGF2ZSBzY3JvbGxlZCAoZ2xp
ZGVkKSB0byB0aGUgbmV4dCBzbmFwIHBvaW50LgotICAgICAgICAgICAgaWYgKGRpdlRhcmdldC5z
Y3JvbGxUb3AgPT0gZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmVHbGlkZS55ICsgNDAwICYmIGRpdlRh
cmdldC5zY3JvbGxMZWZ0ID09IGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlR2xpZGUueCArIDQwMCkK
KyAgICAgICAgICAgIC8vIFRoZSBkaXYgc2hvdWxkIGhhdmUgc2Nyb2xsZWQgKGdsaWRlZCkgdG8g
dGhlIG5leHQgc25hcCBwb2ludC4gQXhpcyBsb2NraW5nIG1ha2VzIGl0IG9ubHkgc2Nyb2xsIHZl
cnRpY2FsbHkuCisgICAgICAgICAgICBpZiAoZGl2VGFyZ2V0LnNjcm9sbFRvcCA9PSBkaXZTY3Jv
bGxQb3NpdGlvbkJlZm9yZUdsaWRlLnkgKyA0MDAgJiYgZGl2VGFyZ2V0LnNjcm9sbExlZnQgPT0g
ZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmVHbGlkZS54KQogICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoImRpdiBzdWNjZXNzZnVsbHkgc2Nyb2xsZWQgZGlhZ29uYWxseS4iKTsKICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkaXYgZGlkIG5vdCBob25vciAyRCBz
bmFwIHBvaW50cy4gKGRpYWdvbmFsIGdsaWRlKSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443375</attachid>
            <date>2021-11-04 21:13:25 -0700</date>
            <delta_ts>2021-11-04 21:47:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232536-20211104211324.patch</filename>
            <type>text/plain</type>
            <size>29768</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU3NWQ4Yzg0NjhhMjgy
MjM0OWMxYTBkMmYwZWU1NzZiZTcyNTczYy4uNDVmYmUxZDRjZjQyZDU2NTk1NGY4YjIxOWQwMWFm
ZDY0OTI0OGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEwLTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IGNv
ZGUgdGhhdCBtYWtlcyB1c2Ugb2YgV2hlZWxFdmVudERlbHRhRmlsdGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI1MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdXNoIHRoZSBkZWNpc2lvbiBhYm91
dCB3aGljaCBraW5kcyBvZiB3aGVlbCBldmVudHMgdG8gYXBwbHkgZmlsdGVyaW5nIHRvIGRvd24g
aW50bworICAgICAgICBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIsIHdoaWNoIHNpbXBsaWZpZXMgY2Fs
bCBzaXRlcy4gV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjOjp1cGRhdGVGcm9tRXZlbnQoKQorICAg
ICAgICBub3cgZGV0ZXJtaW5lcyB3aGVuIHRvIGNhbGwgaW50byBtX3ByZWRvbWluYW50QXhpc0Zp
bHRlciBiYXNlZCBvbiB0aGUgZXZlbnQgcGhhc2UuIFdlCisgICAgICAgIGFsc28gc2ltcGxpZnkg
dGhlIHRpbWluZyBsb2dpYyBieSBjb21wdXRpbmcgV2FsbFRpbWUgZnJvbSB3aGVuIHRoZSBXaGVl
bEV2ZW50RGVsdGFGaWx0ZXJNYWMKKyAgICAgICAgaXMgY29uc3RydWN0ZWQuCisKKyAgICAgICAg
RXZlbnRIYW5kbGVyIGNvZGUgaXMgY2xlYW5lZCB1cCB0byBzaW1wbGlmeSB0aGUgbG9naWMgYSBs
aXR0bGUgYnV0IHRoZSBiZWhhdmlvciBzaG91bGQKKyAgICAgICAgYmUgdGhlIHNhbWUuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWRlbHRhcy1hcmUtbm90
LWZpbHRlcmVkLmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudEludGVybmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlh
dGVFbmNsb3NpbmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhckxh
dGNoZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRXaGVl
bEV2ZW50SGFuZGxlcik6IE1vdmUgdGhlIGZpbHRlcmluZyBjb2RlIG91dCBvZiB0aGUgbGF0Y2hp
bmcKKyAgICAgICAgI2lmZGVmLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpyZWNv
cmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmg6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudERlbHRhRmlsdGVyOjpzaG91bGRBcHBseUZpbHRl
cmluZ0ZvckV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YUZp
bHRlcjo6ZXZlbnRDb3B5V2l0aEZpbHRlcmVkRGVsdGFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjp1cGRhdGVGcm9tRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OnVwZGF0ZVdpdGhEZWx0YSk6
CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6cmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmRvbWluYW50QXhp
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmlzRmls
dGVyaW5nRGVsdGFzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljV2hl
ZWxFdmVudERlbHRhRmlsdGVyOjp1cGRhdGVGcm9tRGVsdGEpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6QmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmJlZ2luRmlsdGVyaW5nRGVsdGFz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVy
OjplbmRGaWx0ZXJpbmdEZWx0YXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNX
aGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmRvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbiBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaDoKKyAg
ICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpyZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oOgorICAgICAg
ICAqIHBhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OldoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjKToK
KyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6dXBkYXRlRnJvbUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6cmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjOjpiZWdpbkZpbHRl
cmluZ0RlbHRhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFG
aWx0ZXJNYWM6OnVwZGF0ZUZyb21EZWx0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpX
aGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OmVuZEZpbHRlcmluZ0RlbHRhcyk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OmNvcHlXaXRoRGVsdGFBbmRWZWxvY2l0eSBjb25zdCk6IFRh
a2UgYSBGbG9hdFNpemUgZm9yIHRoZSBkZWx0YS4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
V2hlZWxFdmVudDo6Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eSBjb25zdCk6IERlbGV0ZWQuCisK
IDIwMjEtMTEtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBSZW1vdmUgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQgYW5kIFlvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4ZDQ5NTA1YWVjMzZiZmFiNGViNDI3NWQ4YzU3
YzZjMWIyN2MwY2NjLi5kOTRmYWY4MmY2MDhiMmQwMjhmY2E0OWI5ZTc0MGQwMmM3NjlhMDY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTMwICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IGNvZGUgdGhhdCBtYWtlcyB1
c2Ugb2YgV2hlZWxFdmVudERlbHRhRmlsdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI1MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQdXNoIHRoZSBkZWNpc2lvbiBhYm91dCB3aGljaCBraW5kcyBv
ZiB3aGVlbCBldmVudHMgdG8gYXBwbHkgZmlsdGVyaW5nIHRvIGRvd24gaW50bworICAgICAgICBX
aGVlbEV2ZW50RGVsdGFGaWx0ZXIsIHdoaWNoIHNpbXBsaWZpZXMgY2FsbCBzaXRlcy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorCiAyMDIxLTExLTAzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gTWVkaWFTZXNz
aW9uIGNvb3JkaW5hdG9yIGVuYWJsZWQgaW4gVUlQcm9jZXNzLCBkaXNhYmxlZCBpbiBXZWJDb250
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNTdiMzM1N2ExNTQ2Mjky
NGMwMTE4ZWYyNzZlNDk5YzAxMjQ1NDIxMS4uMjgzOTQzMjNkMjgxYTc0NmIyZjhjOTA2YjIwNDdh
ZThjZmZiYThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjgxMywx
MiArMjgxMyw2IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZXRlcm1pbmVXaGVlbEV2ZW50VGFyZ2V0
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0cjxFCiB7CiB9CiAKLXZvaWQgRXZlbnRI
YW5kbGVyOjpyZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiBldmVudCkKLXsKLSAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQot
ICAgICAgICBwYWdlLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+dXBkYXRlRnJvbURlbHRhKEZs
b2F0U2l6ZShldmVudC5kZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpKTsKLX0KLQogYm9vbCBFdmVu
dEhhbmRsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgZXZlbnQsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiwgT3B0aW9uU2V0
PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0
ZWRGcmFtZShtX2ZyYW1lKTsKQEAgLTI5NzIsNyArMjk2Niw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVu
dCwgT3B0CiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX0xBVENISU5HKQogICAgICAgICBtX2ZyYW1l
LnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkucmVjZWl2ZWRXaGVlbEV2ZW50KGV2
ZW50KTsKICNlbmRpZgotICAgICAgICByZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIoZXZl
bnQpOworICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPnVw
ZGF0ZUZyb21FdmVudChldmVudCk7CiAgICAgfQogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVz
dDsKQEAgLTMwODYsNyArMzA4MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2
ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2RlKiBzdGFydE5vZGUsIGNvCiAgICAgICAg
ICAgICBhdXRvIHBsYXRmb3JtRXZlbnQgPSB3aGVlbEV2ZW50LnVuZGVybHlpbmdQbGF0Zm9ybUV2
ZW50KCk7CiAgICAgICAgICAgICBib29sIHNjcm9sbGluZ1dhc0hhbmRsZWQ7CiAgICAgICAgICAg
ICBpZiAocGxhdGZvcm1FdmVudCkgewotICAgICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQg
PSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGZpbHRlcmVkUGxhdGZv
cm1EZWx0YS53aWR0aCgpLCBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuaGVpZ2h0KCksIGZpbHRlcmVk
VmVsb2NpdHkpOworICAgICAgICAgICAgICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2
ZW50LT5jb3B5V2l0aERlbHRhQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLCBmaWx0
ZXJlZFZlbG9jaXR5KTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gc2Ny
b2xsYWJsZUFyZWFDYW5IYW5kbGVFdmVudChjb3BpZWRFdmVudCwgKmJveFNjcm9sbGFibGVBcmVh
KSAmJiBoYW5kbGVXaGVlbEV2ZW50SW5TY3JvbGxhYmxlQXJlYShjb3BpZWRFdmVudCwgKmJveFNj
cm9sbGFibGVBcmVhLCBldmVudEhhbmRsaW5nKTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBkaWRTY3JvbGxJblNjcm9sbGFibGVBcmVh
KCpib3hTY3JvbGxhYmxlQXJlYSwgd2hlZWxFdmVudCk7CkBAIC0zMTUzLDggKzMxNDcsNiBAQCB2
b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXJMYXRjaGVkU3RhdGUoKQogICAgIGlmIChhdXRvKiBzY3Jv
bGxMYXRjaGluZ0NvbnRyb2xsZXIgPSBwYWdlLT5zY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXJJZkV4
aXN0cygpKQogICAgICAgICBzY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXItPnJlbW92ZUxhdGNoaW5n
U3RhdGVGb3JGcmFtZShtX2ZyYW1lKTsKICNlbmRpZgotICAgIGlmIChhdXRvKiBmaWx0ZXIgPSBw
YWdlLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKSkKLSAgICAgICAgZmlsdGVyLT5lbmRGaWx0ZXJp
bmdEZWx0YXMoKTsKIH0KIAogdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRXaGVlbEV2ZW50SGFu
ZGxlcihOb2RlKiBzdGFydE5vZGUsIFdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCkBAIC0zMTc1LDIx
ICszMTY3LDIwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIo
Tm9kZSogc3RhcnROb2RlLCBXaGVlbEV2ZW50JiB3aGVlbEV2CiAKICAgICBGbG9hdFNpemUgZmls
dGVyZWRQbGF0Zm9ybURlbHRhKHdoZWVsRXZlbnQuZGVsdGFYKCksIHdoZWVsRXZlbnQuZGVsdGFZ
KCkpOwogICAgIEZsb2F0U2l6ZSBmaWx0ZXJlZFZlbG9jaXR5OwotICAgIGlmIChhdXRvIHBsYXRm
b3JtV2hlZWxFdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKSkgewot
ICAgICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEuc2V0V2lkdGgocGxhdGZvcm1XaGVlbEV2ZW50
LT5kZWx0YVgoKSk7Ci0gICAgICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5zZXRIZWlnaHQocGxh
dGZvcm1XaGVlbEV2ZW50LT5kZWx0YVkoKSk7Ci0gICAgfQorICAgIGlmIChwbGF0Zm9ybUV2ZW50
KQorICAgICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEgPSBwbGF0Zm9ybUV2ZW50LT5kZWx0YSgp
OwogCiAgICAgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcgPSB7IEV2ZW50
SGFuZGxpbmc6OkRpc3BhdGNoZWRUb0RPTSB9OwogICAgIGlmICh3aGVlbEV2ZW50LmRlZmF1bHRQ
cmV2ZW50ZWQoKSkKICAgICAgICAgZXZlbnRIYW5kbGluZy5hZGQoRXZlbnRIYW5kbGluZzo6RGVm
YXVsdFByZXZlbnRlZCk7CiAKLSNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCi0gICAg
aWYgKG1fZnJhbWUucGFnZSgpLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+aXNGaWx0ZXJpbmdE
ZWx0YXMoKSkgewotICAgICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEgPSBtX2ZyYW1lLnBhZ2Uo
KS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPmZpbHRlcmVkRGVsdGEoKTsKLSAgICAgICAgZmls
dGVyZWRWZWxvY2l0eSA9IG1fZnJhbWUucGFnZSgpLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+
ZmlsdGVyZWRWZWxvY2l0eSgpOworICAgIGF1dG8qIGRlbHRhRmlsdGVyID0gbV9mcmFtZS5wYWdl
KCktPndoZWVsRXZlbnREZWx0YUZpbHRlcigpOworICAgIGlmIChwbGF0Zm9ybUV2ZW50ICYmIGRl
bHRhRmlsdGVyICYmIGRlbHRhRmlsdGVyLT5zaG91bGRBcHBseUZpbHRlcmluZ0ZvckV2ZW50KCpw
bGF0Zm9ybUV2ZW50KSkgeworICAgICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEgPSBkZWx0YUZp
bHRlci0+ZmlsdGVyZWREZWx0YSgpOworICAgICAgICBmaWx0ZXJlZFZlbG9jaXR5ID0gZGVsdGFG
aWx0ZXItPmZpbHRlcmVkVmVsb2NpdHkoKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0hFRUxfRVZF
TlRfTEFUQ0hJTkcpCiAgICAgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4gbGF0Y2hlZFNjcm9sbGVy
OwogICAgIGlmICghbV9mcmFtZS5wYWdlKCktPnNjcm9sbExhdGNoaW5nQ29udHJvbGxlcigpLmxh
dGNoaW5nQWxsb3dzU2Nyb2xsaW5nSW5GcmFtZShtX2ZyYW1lLCBsYXRjaGVkU2Nyb2xsZXIpKQog
ICAgICAgICByZXR1cm47CkBAIC0zMjAxLDcgKzMxOTIsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
ZGVmYXVsdFdoZWVsRXZlbnRIYW5kbGVyKE5vZGUqIHN0YXJ0Tm9kZSwgV2hlZWxFdmVudCYgd2hl
ZWxFdgogICAgICAgICB9CiAKICAgICAgICAgaWYgKHBsYXRmb3JtRXZlbnQpIHsKLSAgICAgICAg
ICAgIGF1dG8gY29waWVkRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5jb3B5V2l0aERlbHRhc0FuZFZl
bG9jaXR5KGZpbHRlcmVkUGxhdGZvcm1EZWx0YS53aWR0aCgpLCBmaWx0ZXJlZFBsYXRmb3JtRGVs
dGEuaGVpZ2h0KCksIGZpbHRlcmVkVmVsb2NpdHkpOworICAgICAgICAgICAgYXV0byBjb3BpZWRF
dmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFBbmRWZWxvY2l0eShmaWx0ZXJlZFBs
YXRmb3JtRGVsdGEsIGZpbHRlcmVkVmVsb2NpdHkpOwogICAgICAgICAgICAgaWYgKGhhbmRsZVdo
ZWVsRXZlbnRJblNjcm9sbGFibGVBcmVhKGNvcGllZEV2ZW50LCAqbGF0Y2hlZFNjcm9sbGVyLCBl
dmVudEhhbmRsaW5nKSkKICAgICAgICAgICAgICAgICB3aGVlbEV2ZW50LnNldERlZmF1bHRIYW5k
bGVkKCk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApp
bmRleCBhNTM5YmI3NzNlNzg4NWYxN2IxMzgzY2U5MGI4Zjk1ZWE1N2QwNTU0Li4zNmM4MDIzMGQy
YjJlNzYxYTBiNjY2Yzk0MzA2MWY5YjYyZjU0N2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKQEAgLTQ3MCw3ICs0NzAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlV2hlZWxF
dmVudEludGVybmFsKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+Jik7CiAgICAgYm9v
bCBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdl
dCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPik7CiAgICAgdm9pZCBkZXRl
cm1pbmVXaGVlbEV2ZW50VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0cjxF
bGVtZW50PiYgZXZlbnRUYXJnZXQsIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiwgYm9vbCYgaXNP
dmVyV2lkZ2V0KTsKLSAgICB2b2lkIHJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKICAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Ny
b2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJs
ZUFyZWE+JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KTsKICAgICB2b2lkIHByb2Nlc3NXaGVl
bEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXZWFr
UHRyPFNjcm9sbGFibGVBcmVhPiYpOwogICAgIGJvb2wgY29tcGxldGVXaWRnZXRXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8V2lkZ2V0PiYsIGNvbnN0
IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnREZWx0YUZpbHRlci5jcHAKaW5kZXggMzA0ZDk0YTc1YmYzNjFkOGRkNDZmNmFmZmFmZTMx
YzNlZjgyYTQ0Ny4uYTBiNDY2YzZjOTUwMjc4NzQwNmJmMTE4Yjc5Mzc3NDFhZTY0YmJlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9U
ZXh0U3RyZWFtLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC00OSw5ICs1MCwxNiBAQCBzdGQ6
OnVuaXF1ZV9wdHI8V2hlZWxFdmVudERlbHRhRmlsdGVyPiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6
OmNyZWF0ZSgpCiAjZW5kaWYKIH0KIAotYm9vbCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmlzRmls
dGVyaW5nRGVsdGFzKCkgY29uc3QKK2Jvb2wgV2hlZWxFdmVudERlbHRhRmlsdGVyOjpzaG91bGRB
cHBseUZpbHRlcmluZ0ZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1faXNGaWx0ZXJpbmdEZWx0YXM7CisgICAgLy8gTWF5YmUgaXQn
cyBhIHBlci1wbGF0Zm9ybSBkZWNpc2lvbiBhYm91dCB3aGljaCBldmVudCBwaGFzZXMgZ2V0IGZp
bHRlcmVkLiBJZGVhbGx5IHdlJ2QgZmlsdGVyIG1vbWVudHVtIGV2ZW50cyB0b28gKGJ1dCB0aGF0
IGJyZWFrcyBzb21lIGRpYWdvbmFsIHNjcm9sbGluZyBjYXNlcykuCisgICAgYXV0byBwaGFzZSA9
IGV2ZW50LnBoYXNlKCk7CisgICAgcmV0dXJuIHBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBo
YXNlOjpCZWdhbiB8fCBwaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2hhbmdlZDsK
K30KKworUGxhdGZvcm1XaGVlbEV2ZW50IFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6ZXZlbnRDb3B5
V2l0aEZpbHRlcmVkRGVsdGFzKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGV2ZW50LmNvcHlXaXRoRGVsdGFBbmRWZWxvY2l0eShtX2N1cnJlbnRG
aWx0ZXJlZERlbHRhLCBtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5KTsKIH0KIAogRmxvYXRTaXpl
IFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6ZmlsdGVyZWREZWx0YSgpIGNvbnN0CkBAIC02OSwzNSAr
NzcsNTUgQEAgQmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OkJhc2ljV2hlZWxFdmVudERlbHRh
RmlsdGVyKCkKIHsKIH0KIAotY29uc3Qgc2l6ZV90IGJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVy
V2luZG93U2l6ZSA9IDM7Cit2b2lkIEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjp1cGRhdGVG
cm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKK3sKKyNpZiBFTkFCTEUo
S0lORVRJQ19TQ1JPTExJTkcpCisgICAgc3dpdGNoIChldmVudC5waGFzZSgpKSB7CisgICAgY2Fz
ZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6TWF5QmVnaW46CisgICAgY2FzZSBQbGF0Zm9ybVdo
ZWVsRXZlbnRQaGFzZTo6Q2FuY2VsbGVkOgorICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2U6OlN0YXRpb25hcnk6CisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6RW5kZWQ6
CisgICAgICAgIHJlc2V0KCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQbGF0Zm9ybVdo
ZWVsRXZlbnRQaGFzZTo6Tm9uZToKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBsYXRmb3Jt
V2hlZWxFdmVudFBoYXNlOjpCZWdhbjoKKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
OjpDaGFuZ2VkOgorICAgICAgICB1cGRhdGVXaXRoRGVsdGEoZXZlbnQuZGVsdGEoKSk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyNlbHNlCisgICAgbV9jdXJyZW50RmlsdGVyZWREZWx0YSA9IGV2
ZW50LmRlbHRhKCk7CisjZW5kaWYKK30KKworY29uc3RleHByIHNpemVfdCBiYXNpY1doZWVsRXZl
bnREZWx0YUZpbHRlcldpbmRvd1NpemUgPSAzOwogCi12b2lkIEJhc2ljV2hlZWxFdmVudERlbHRh
RmlsdGVyOjp1cGRhdGVGcm9tRGVsdGEoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKK3ZvaWQgQmFz
aWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OnVwZGF0ZVdpdGhEZWx0YShGbG9hdFNpemUgZGVsdGEp
CiB7CiAgICAgbV9jdXJyZW50RmlsdGVyZWREZWx0YSA9IGRlbHRhOwotICAgIGlmICghbV9pc0Zp
bHRlcmluZ0RlbHRhcykKLSAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgbV9yZWNlbnRXaGVl
bEV2ZW50RGVsdGFzLmFwcGVuZChkZWx0YSk7CiAgICAgaWYgKG1fcmVjZW50V2hlZWxFdmVudERl
bHRhcy5zaXplKCkgPiBiYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcldpbmRvd1NpemUpCiAgICAg
ICAgIG1fcmVjZW50V2hlZWxFdmVudERlbHRhcy5yZW1vdmVGaXJzdCgpOwogICAgIAotICAgIERv
bWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbiBzY3JvbGxEaXJlY3Rpb24gPSBkb21pbmFudFNj
cm9sbEdlc3R1cmVEaXJlY3Rpb24oKTsKLSAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uID09IERvbWlu
YW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbjo6VmVydGljYWwpCisgICAgYXV0byBzY3JvbGxBeGlz
ID0gZG9taW5hbnRBeGlzKCk7CisgICAgaWYgKCFzY3JvbGxBeGlzKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoc2Nyb2xsQXhpcy52YWx1ZSgpID09IFNjcm9sbEV2ZW50QXhpczo6VmVydGlj
YWwpCiAgICAgICAgIG1fY3VycmVudEZpbHRlcmVkRGVsdGEuc2V0V2lkdGgoMCk7Ci0gICAgZWxz
ZSBpZiAoc2Nyb2xsRGlyZWN0aW9uID09IERvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbjo6
SG9yaXpvbnRhbCkKKyAgICBlbHNlIGlmIChzY3JvbGxBeGlzLnZhbHVlKCkgPT0gU2Nyb2xsRXZl
bnRBeGlzOjpIb3Jpem9udGFsKQogICAgICAgICBtX2N1cnJlbnRGaWx0ZXJlZERlbHRhLnNldEhl
aWdodCgwKTsKIH0KIAotdm9pZCBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6YmVnaW5GaWx0
ZXJpbmdEZWx0YXMoKQordm9pZCBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6cmVzZXQoKQog
ewogICAgIG1fcmVjZW50V2hlZWxFdmVudERlbHRhcy5jbGVhcigpOwotICAgIG1faXNGaWx0ZXJp
bmdEZWx0YXMgPSB0cnVlOwotfQotCi12b2lkIEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpl
bmRGaWx0ZXJpbmdEZWx0YXMoKQotewotICAgIG1fY3VycmVudEZpbHRlcmVkRGVsdGEgPSBGbG9h
dFNpemUoMCwgMCk7Ci0gICAgbV9pc0ZpbHRlcmluZ0RlbHRhcyA9IGZhbHNlOworICAgIG1fY3Vy
cmVudEZpbHRlcmVkRGVsdGEgPSB7IH07CisgICAgbV9jdXJyZW50RmlsdGVyZWRWZWxvY2l0eSA9
IHsgfTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGRlbHRhSXNQcmVkb21pbmFudGx5VmVydGlj
YWwoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKQEAgLTEwNSwyNCArMTMzLDI0IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBkZWx0YUlzUHJlZG9taW5hbnRseVZlcnRpY2FsKGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEpCiAgICAgcmV0dXJuIGZhYnMoZGVsdGEuaGVpZ2h0KCkpID4gZmFicyhkZWx0YS53aWR0
aCgpKTsKIH0KIAotRG9taW5hbnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9uIEJhc2ljV2hlZWxFdmVu
dERlbHRhRmlsdGVyOjpkb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb24oKSBjb25zdAorc3Rk
OjpvcHRpb25hbDxTY3JvbGxFdmVudEF4aXM+IEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpk
b21pbmFudEF4aXMoKSBjb25zdAogewogICAgIGJvb2wgYWxsVmVydGljYWwgPSBtX3JlY2VudFdo
ZWVsRXZlbnREZWx0YXMuc2l6ZSgpOwogICAgIGJvb2wgYWxsSG9yaXpvbnRhbCA9IG1fcmVjZW50
V2hlZWxFdmVudERlbHRhcy5zaXplKCk7Ci0gICAgCisKICAgICBmb3IgKGNvbnN0IGF1dG8mIGRl
bHRhIDogbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFzKSB7CiAgICAgICAgIGJvb2wgaXNWZXJ0aWNh
bCA9IGRlbHRhSXNQcmVkb21pbmFudGx5VmVydGljYWwoZGVsdGEpOwogICAgICAgICBhbGxWZXJ0
aWNhbCAmPSBpc1ZlcnRpY2FsOwogICAgICAgICBhbGxIb3Jpem9udGFsICY9ICFpc1ZlcnRpY2Fs
OwogICAgIH0KLSAgICAKKwogICAgIGlmIChhbGxWZXJ0aWNhbCkKLSAgICAgICAgcmV0dXJuIERv
bWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbjo6VmVydGljYWw7Ci0gICAgCisgICAgICAgIHJl
dHVybiBTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsOworCiAgICAgaWYgKGFsbEhvcml6b250YWwp
Ci0gICAgICAgIHJldHVybiBEb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb246Okhvcml6b250
YWw7Ci0gICAgCi0gICAgcmV0dXJuIERvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbjo6Tm9u
ZTsKKyAgICAgICAgcmV0dXJuIFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbDsKKworICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2
ZW50RGVsdGFGaWx0ZXIuaAppbmRleCAyMGI1NWNkN2ZlYThjMmZhNDcyMWU2YjM0NmVjMTQxMWE4
OTVjN2UwLi4yZWJhMjdkMzY3YmIwYzFmOWQzY2M0MDhiM2U5ZjI4ZWI4MjhkNDdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQ1ICsyNiw0NCBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBl
cy5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIFBsYXRmb3JtV2hlZWxFdmVudDsKKwogY2xhc3MgV2hlZWxFdmVudERlbHRhRmlsdGVyIHsK
IHB1YmxpYzoKICAgICBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIoKTsKICAgICB2aXJ0dWFsIH5XaGVl
bEV2ZW50RGVsdGFGaWx0ZXIoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8V2hlZWxFdmVudERlbHRhRmlsdGVyPiBjcmVhdGUoKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbURlbHRhKGNvbnN0IEZsb2F0U2l6ZSYpID0gMDsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgYmVnaW5GaWx0ZXJpbmdEZWx0YXMoKSA9
IDA7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGVuZEZpbHRlcmluZ0RlbHRhcygp
ID0gMDsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgPSAwOworCisgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBzaG91bGRBcHBseUZpbHRlcmluZ0ZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtV2hlZWxFdmVudCBldmVudENvcHlX
aXRoRmlsdGVyZWREZWx0YXMoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Q7CisKICAg
ICBXRUJDT1JFX0VYUE9SVCBGbG9hdFNpemUgZmlsdGVyZWRWZWxvY2l0eSgpIGNvbnN0OwotICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNGaWx0ZXJpbmdEZWx0YXMoKSBjb25zdDsKICAgICBXRUJD
T1JFX0VYUE9SVCBGbG9hdFNpemUgZmlsdGVyZWREZWx0YSgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6
CiAgICAgRmxvYXRTaXplIG1fY3VycmVudEZpbHRlcmVkRGVsdGE7CiAgICAgRmxvYXRTaXplIG1f
Y3VycmVudEZpbHRlcmVkVmVsb2NpdHk7Ci0gICAgYm9vbCBtX2lzRmlsdGVyaW5nRGVsdGFzIHsg
ZmFsc2UgfTsKLX07Ci0KLWVudW0gY2xhc3MgRG9taW5hbnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9u
IHsKLSAgICBOb25lLAotICAgIFZlcnRpY2FsLAotICAgIEhvcml6b250YWwKIH07CiAKIGNsYXNz
IEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyIGZpbmFsIDogcHVibGljIFdoZWVsRXZlbnREZWx0
YUZpbHRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgQmFz
aWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXIoKTsKLSAgICB2b2lkIHVwZGF0ZUZyb21EZWx0YShjb25z
dCBGbG9hdFNpemUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGJlZ2luRmlsdGVyaW5nRGVsdGFzKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBlbmRGaWx0ZXJpbmdEZWx0YXMoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHVwZGF0ZUZyb21FdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbDsKIAog
cHJpdmF0ZToKLSAgICBEb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb24gZG9taW5hbnRTY3Jv
bGxHZXN0dXJlRGlyZWN0aW9uKCkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxTY3JvbGxFdmVu
dEF4aXM+IGRvbWluYW50QXhpcygpIGNvbnN0OworICAgIAorICAgIHZvaWQgcmVzZXQoKTsKKyAg
ICB2b2lkIHVwZGF0ZVdpdGhEZWx0YShGbG9hdFNpemUpOwogCiAgICAgRGVxdWU8RmxvYXRTaXpl
PiBtX3JlY2VudFdoZWVsRXZlbnREZWx0YXM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDU3ZDVhNjQ3ZjAzMDI0MjUxY2Y5NjE2YjJjYmZhNWE0
YWY3MWU5ZjUuLjFlY2QwY2M3OGVkNTU1NjRmMDMyYjMwYzljODNlYmY1NzRhZGU4MDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTg4NSwzMSArODg1
LDkgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW4KICAgICBpZiAod2hlZWxFdmVudC5zaG91bGRS
ZXNldExhdGNoaW5nKCkgfHwgd2hlZWxFdmVudC5pc05vbkdlc3R1cmVFdmVudCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpICYmIHdoZWVsRXZlbnQu
aXNHZXN0dXJlU3RhcnQoKSkKLSAgICAgICAgcGFnZS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCkt
PmJlZ2luRmlsdGVyaW5nRGVsdGFzKCk7Ci0KICAgICBwYWdlLT5zY3JvbGxMYXRjaGluZ0NvbnRy
b2xsZXIoKS51cGRhdGVBbmRGZXRjaExhdGNoaW5nU3RhdGVGb3JGcmFtZShtX2ZyYW1lLCB3aGVl
bEV2ZW50LCB3aGVlbEV2ZW50VGFyZ2V0LCBzY3JvbGxhYmxlQXJlYSwgaXNPdmVyV2lkZ2V0KTsK
IH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCi17Ci0gICAgYXV0byogcGFnZSA9
IG1fZnJhbWUucGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
c3dpdGNoICh3aGVlbEV2ZW50LnBoYXNlKCkpIHsKLSAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlOjpCZWdhbjoKLSAgICAgICAgcGFnZS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPmJl
Z2luRmlsdGVyaW5nRGVsdGFzKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGxhdGZvcm1X
aGVlbEV2ZW50UGhhc2U6OkVuZGVkOgotICAgICAgICBwYWdlLT53aGVlbEV2ZW50RGVsdGFGaWx0
ZXIoKS0+ZW5kRmlsdGVyaW5nRGVsdGFzKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBwYWdlLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIo
KS0+dXBkYXRlRnJvbURlbHRhKEZsb2F0U2l6ZSh3aGVlbEV2ZW50LmRlbHRhWCgpLCB3aGVlbEV2
ZW50LmRlbHRhWSgpKSk7Ci19Ci0KIGJvb2wgRXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVu
dEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGNvbnN0
IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiBzY3JvbGxhYmxlQXJlYSwgT3B0aW9uU2V0PEV2ZW50
SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbExh
dGNoaW5nLCBzdHJlYW0gPDwgIkV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3Jv
bGxpbmcgIiA8PCB3aGVlbEV2ZW50IDw8ICIgLSBzY3JvbGxhYmxlQXJlYSAiIDw8IFZhbHVlT3JO
dWxsKHNjcm9sbGFibGVBcmVhLmdldCgpKSA8PCAiIHVzZSBsYXRjaGVkIGVsZW1lbnQgIiA8PCB3
aGVlbEV2ZW50LnVzZUxhdGNoZWRFdmVudEVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oCmluZGV4IDJjYzk4YmY3OTFj
ZDI3Y2E1ZDZiNzdlMGY1YTVhZGFjNDVlYTE5ZTkuLjc1ZmFmYjMzYjM1MzBiZWY1ZGUxYmU2OWVj
YmQ2MDZkNDk1ZjkxNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVs
RXZlbnREZWx0YUZpbHRlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVs
RXZlbnREZWx0YUZpbHRlck1hYy5oCkBAIC00MCwxMyArNDAsMTMgQEAgY2xhc3MgV2hlZWxFdmVu
dERlbHRhRmlsdGVyTWFjIGZpbmFsIDogcHVibGljIFdoZWVsRXZlbnREZWx0YUZpbHRlciB7CiBw
dWJsaWM6CiAgICAgV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjKCk7CiAKLSAgICB2b2lkIHVwZGF0
ZUZyb21EZWx0YShjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGJlZ2luRmls
dGVyaW5nRGVsdGFzKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbmRGaWx0ZXJpbmdEZWx0YXMoKSBv
dmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZUZyb21FdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSBmaW5hbDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0KCk7CisKICAgICBSZXRhaW5Q
dHI8X05TU2Nyb2xsaW5nUHJlZG9taW5hbnRBeGlzRmlsdGVyPiBtX3ByZWRvbWluYW50QXhpc0Zp
bHRlcjsKLSAgICBNb25vdG9uaWNUaW1lIG1fYmVnaW5GaWx0ZXJpbmdEZWx0YXNUaW1lOworICAg
IFdhbGxUaW1lIG1faW5pdGlhbFdhbGxUaW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmls
dGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVy
TWFjLm1tCmluZGV4IDIzYjFlZDVjYzllNGY1NGI0YWIwMDZhNTJlNDdhMTRiZWQwNThkMDkuLjQx
YzExNWE3ODhhZjE1ODYwNjJkMDY2NTAwODJlMjBjNzdiNjA5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW0KQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjks
NyBAQAogI2ltcG9ydCAiV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmgiCiAKICNpbXBvcnQgIkZs
b2F0UG9pbnQuaCIKKyNpbXBvcnQgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNTY3JvbGxpbmdJbnB1dEZpbHRlclNQSS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0zNiwzMyArMzcsNDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV2hlZWxFdmVudERl
bHRhRmlsdGVyTWFjOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMoKQogICAgIDogV2hlZWxFdmVu
dERlbHRhRmlsdGVyKCkKICAgICAsIG1fcHJlZG9taW5hbnRBeGlzRmlsdGVyKGFkb3B0TlMoW1tf
TlNTY3JvbGxpbmdQcmVkb21pbmFudEF4aXNGaWx0ZXIgYWxsb2NdIGluaXRdKSkKKyAgICAsIG1f
aW5pdGlhbFdhbGxUaW1lKFdhbGxUaW1lOjpub3coKSkKIHsKIH0KIAotdm9pZCBXaGVlbEV2ZW50
RGVsdGFGaWx0ZXJNYWM6OmJlZ2luRmlsdGVyaW5nRGVsdGFzKCkKK3ZvaWQgV2hlZWxFdmVudERl
bHRhRmlsdGVyTWFjOjp1cGRhdGVGcm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBl
dmVudCkKIHsKLSAgICBtX2JlZ2luRmlsdGVyaW5nRGVsdGFzVGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpOwotICAgIG1faXNGaWx0ZXJpbmdEZWx0YXMgPSB0cnVlOwotfQotCi12b2lkIFdoZWVs
RXZlbnREZWx0YUZpbHRlck1hYzo6dXBkYXRlRnJvbURlbHRhKGNvbnN0IEZsb2F0U2l6ZSYgZGVs
dGEpCi17Ci0gICAgaWYgKCFtX2lzRmlsdGVyaW5nRGVsdGFzKQorICAgIGlmIChldmVudC5tb21l
bnR1bVBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6Ok5vbmUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIE5TUG9pbnQgZmlsdGVyZWREZWx0YVJlc3VsdDsKLSAgICBOU1BvaW50IGZp
bHRlcmVkVmVsb2NpdHlSZXN1bHQ7Ci0gICAgW21fcHJlZG9taW5hbnRBeGlzRmlsdGVyIGZpbHRl
cklucHV0RGVsdGE6TlNQb2ludChGbG9hdFBvaW50KGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdo
dCgpKSkgdGltZXN0YW1wOihNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fYmVnaW5GaWx0ZXJpbmdE
ZWx0YXNUaW1lKS5zZWNvbmRzKCkgb3V0cHV0RGVsdGE6JmZpbHRlcmVkRGVsdGFSZXN1bHQgdmVs
b2NpdHk6JmZpbHRlcmVkVmVsb2NpdHlSZXN1bHRdOwotICAgIG1fY3VycmVudEZpbHRlcmVkVmVs
b2NpdHkgPSBGbG9hdFNpemUoZmlsdGVyZWRWZWxvY2l0eVJlc3VsdC54LCBmaWx0ZXJlZFZlbG9j
aXR5UmVzdWx0LnkpOwotICAgIG1fY3VycmVudEZpbHRlcmVkRGVsdGEgPSBGbG9hdFNpemUoZmls
dGVyZWREZWx0YVJlc3VsdC54LCBmaWx0ZXJlZERlbHRhUmVzdWx0LnkpOworICAgIC8vIFRoZSBh
YnNvbHV0ZSB2YWx1ZSBvZiB0aW1lc3RhbXAgZG9lc24ndCBtYXR0ZXI7IHRoZSBmaWx0ZXIgbG9v
a3MgYXQgZGVsdGFzIGZyb20gdGhlIHByZXZpb3VzIGV2ZW50LgorICAgIGF1dG8gdGltZXN0YW1w
ID0gZXZlbnQudGltZXN0YW1wKCkgLSBtX2luaXRpYWxXYWxsVGltZTsKKworICAgIHN3aXRjaCAo
ZXZlbnQucGhhc2UoKSkgeworICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6Ok5vbmU6
CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVn
YW46CisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Q2hhbmdlZDogeworICAgICAg
ICBOU1BvaW50IGZpbHRlcmVkRGVsdGFSZXN1bHQ7CisgICAgICAgIE5TUG9pbnQgZmlsdGVyZWRW
ZWxvY2l0eVJlc3VsdDsKKworICAgICAgICBbbV9wcmVkb21pbmFudEF4aXNGaWx0ZXIgZmlsdGVy
SW5wdXREZWx0YTp0b0Zsb2F0UG9pbnQoZXZlbnQuZGVsdGEoKSkgdGltZXN0YW1wOnRpbWVzdGFt
cC5zZWNvbmRzKCkgb3V0cHV0RGVsdGE6JmZpbHRlcmVkRGVsdGFSZXN1bHQgdmVsb2NpdHk6JmZp
bHRlcmVkVmVsb2NpdHlSZXN1bHRdOworICAgICAgICBtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5
ID0gdG9GbG9hdFNpemUoZmlsdGVyZWRWZWxvY2l0eVJlc3VsdCk7CisgICAgICAgIG1fY3VycmVu
dEZpbHRlcmVkRGVsdGEgPSB0b0Zsb2F0U2l6ZShmaWx0ZXJlZERlbHRhUmVzdWx0KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6Ok1heUJl
Z2luOgorICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxlZDoKKyAgICBj
YXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpTdGF0aW9uYXJ5OgorICAgIGNhc2UgUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2U6OkVuZGVkOgorICAgICAgICByZXNldCgpOworICAgICAgICBicmVh
azsKKyAgICB9CiB9CiAKLXZvaWQgV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjOjplbmRGaWx0ZXJp
bmdEZWx0YXMoKQordm9pZCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OnJlc2V0KCkKIHsKLSAg
ICBtX2N1cnJlbnRGaWx0ZXJlZERlbHRhID0gRmxvYXRTaXplKDAsIDApOwotICAgIG1fYmVnaW5G
aWx0ZXJpbmdEZWx0YXNUaW1lID0gTW9ub3RvbmljVGltZSgpOwogICAgIFttX3ByZWRvbWluYW50
QXhpc0ZpbHRlciByZXNldF07Ci0gICAgbV9pc0ZpbHRlcmluZ0RlbHRhcyA9IGZhbHNlOworICAg
IG1fY3VycmVudEZpbHRlcmVkVmVsb2NpdHkgPSB7IH07CisgICAgbV9jdXJyZW50RmlsdGVyZWRE
ZWx0YSA9IHsgfTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdo
ZWVsRXZlbnQuaAppbmRleCA3MDVlNWRkNjBkOTNhZTA2M2Y1YjMxZGU1MzQ3NDdjZDgzN2Y0Njk1
Li4yYTExZmQ0YTkyOGYzNzE3YTkxZjA1NjdhY2MzMmI3NzQ1YTU4ZTg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApAQCAtMTIwLDExICsxMjAsMTEg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gY29weTsKICAgICB9CiAKLSAgICBQbGF0Zm9ybVdo
ZWVsRXZlbnQgY29weVdpdGhEZWx0YXNBbmRWZWxvY2l0eShmbG9hdCBkZWx0YVgsIGZsb2F0IGRl
bHRhWSwgY29uc3QgRmxvYXRTaXplJiB2ZWxvY2l0eSkgY29uc3QKKyAgICBQbGF0Zm9ybVdoZWVs
RXZlbnQgY29weVdpdGhEZWx0YUFuZFZlbG9jaXR5KEZsb2F0U2l6ZSBkZWx0YSwgRmxvYXRTaXpl
IHZlbG9jaXR5KSBjb25zdAogICAgIHsKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50IGNvcHkg
PSAqdGhpczsKLSAgICAgICAgY29weS5tX2RlbHRhWCA9IGRlbHRhWDsKLSAgICAgICAgY29weS5t
X2RlbHRhWSA9IGRlbHRhWTsKKyAgICAgICAgY29weS5tX2RlbHRhWCA9IGRlbHRhLndpZHRoKCk7
CisgICAgICAgIGNvcHkubV9kZWx0YVkgPSBkZWx0YS5oZWlnaHQoKTsKICAgICAgICAgY29weS5t
X3Njcm9sbGluZ1ZlbG9jaXR5ID0gdmVsb2NpdHk7CiAgICAgICAgIHJldHVybiBjb3B5OwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuY3BwCmluZGV4IDZjOTVkMjg2MzcxMWQyZDNhNmQwMTk0NzUzNjQwMDU0N2YyYjUyNzQu
LmU2Y2VmMTBkMjJkMzE5ODQwZGM0ZWIwODM1ZDBlYTI5ZmNjY2RjNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAt
OTgsMzQgKzk4LDE3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjppbml0aWFsaXplQ29ubmVjdGlv
bihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiAKIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3
aGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCwgUmVjdEVkZ2VzPGJvb2w+IHJ1YmJlckJhbmRhYmxlRWRnZXMpCiB7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQotICAgIFBsYXRmb3JtV2hl
ZWxFdmVudCBwbGF0Zm9ybVdoZWVsRXZlbnQgPSBwbGF0Zm9ybSh3aGVlbEV2ZW50KTsKLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3dpdGNoICh3aGVlbEV2ZW50LnBoYXNlKCkp
IHsKLSAgICBjYXNlIFdlYldoZWVsRXZlbnQ6OlBoYXNlQmVnYW46Ci0gICAgICAgIG1fcmVjZW50
V2hlZWxFdmVudERlbHRhRmlsdGVyLT5iZWdpbkZpbHRlcmluZ0RlbHRhcygpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFdlYldoZWVsRXZlbnQ6OlBoYXNlRW5kZWQ6Ci0gICAgICAgIG1fcmVj
ZW50V2hlZWxFdmVudERlbHRhRmlsdGVyLT5lbmRGaWx0ZXJpbmdEZWx0YXMoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKG1f
cmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVyLT5pc0ZpbHRlcmluZ0RlbHRhcygpKSB7Ci0gICAg
ICAgIG1fcmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVyLT51cGRhdGVGcm9tRGVsdGEoRmxvYXRT
aXplKHBsYXRmb3JtV2hlZWxFdmVudC5kZWx0YVgoKSwgcGxhdGZvcm1XaGVlbEV2ZW50LmRlbHRh
WSgpKSk7Ci0gICAgICAgIEZsb2F0U2l6ZSBmaWx0ZXJlZERlbHRhID0gbV9yZWNlbnRXaGVlbEV2
ZW50RGVsdGFGaWx0ZXItPmZpbHRlcmVkRGVsdGEoKTsKLSAgICAgICAgcGxhdGZvcm1XaGVlbEV2
ZW50ID0gcGxhdGZvcm1XaGVlbEV2ZW50LmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVy
ZWREZWx0YS53aWR0aCgpLCBmaWx0ZXJlZERlbHRhLmhlaWdodCgpLCBtX3JlY2VudFdoZWVsRXZl
bnREZWx0YUZpbHRlci0+ZmlsdGVyZWRWZWxvY2l0eSgpKTsKLSAgICB9Ci0jZW5kaWYKLQogICAg
IGF1dG8gcHJvY2Vzc2luZ1N0ZXBzID0gT3B0aW9uU2V0PFdlYkNvcmU6OldoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM+IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNj
cm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5n
RE9NRXZlbnREaXNwYXRjaCB9OwogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQogICAgIGRv
IHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2Nyb2xsaW5nVHJlZXNMb2NrIH07CisgICAg
ICAgIGF1dG8gcGxhdGZvcm1XaGVlbEV2ZW50ID0gcGxhdGZvcm0od2hlZWxFdmVudCk7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgICAgIG1fcmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVyLT51
cGRhdGVGcm9tRXZlbnQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKyAgICAgICAgaWYgKG1fcmVjZW50
V2hlZWxFdmVudERlbHRhRmlsdGVyLT5zaG91bGRBcHBseUZpbHRlcmluZ0ZvckV2ZW50KHBsYXRm
b3JtV2hlZWxFdmVudCkpCisgICAgICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQgPSBtX3JlY2Vu
dFdoZWVsRXZlbnREZWx0YUZpbHRlci0+ZXZlbnRDb3B5V2l0aEZpbHRlcmVkRGVsdGFzKHBsYXRm
b3JtV2hlZWxFdmVudCk7CisjZW5kaWYKIAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zY3Jv
bGxpbmdUcmVlc0xvY2sgfTsKICAgICAgICAgYXV0byBzY3JvbGxpbmdUcmVlID0gbV9zY3JvbGxp
bmdUcmVlcy5nZXQocGFnZUlEKTsKICAgICAgICAgaWYgKCFzY3JvbGxpbmdUcmVlKSB7CiAgICAg
ICAgICAgICBkaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKHBhZ2VJRCwgd2hlZWxFdmVu
dCwgcHJvY2Vzc2luZ1N0ZXBzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YWM4OGIzYzFlYTRlZWM0ODFmNDJiYzg2Y2Ix
MzkzZmQ2MGIyMzJlLi5mNjE0ZmVhMjFhZmZhYjM2YWNmNzRjNzIyNmNiZDBjNzAyNDUwYmRhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgY29kZSB0aGF0IG1ha2VzIHVzZSBv
ZiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMjUzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5IHRoYXQgd2hlZWwgZXZlbnRzIHNl
bnQgdG8gSlMgYXJlbid0IGFmZmVjdGVkIGJ5IHRoZSB3aGVlbCBldmVudAorICAgICAgICBkZWx0
YSBmaWx0ZXIuCisKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtZGVs
dGFzLWFyZS1ub3QtZmlsdGVyZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtZGVsdGFzLWFyZS1ub3QtZmlsdGVyZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFuZGF0b3J5LTJkLW92ZXJmbG93Lmh0bWw6CisgICAgICAgIEFkanVzdCB0aGUg
dGVzdCBmb3IgdGhlIGZhY3QgdGhhdCB0aGUgbW9tZW50dW0gcGhhc2UgaXMgbm93IGF4aXMtbG9j
a2VkLgorCiAyMDIxLTExLTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50IGFuZCBZ
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL21hYy93aGVlbC1ldmVudC1kZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtZGVsdGFzLWFy
ZS1ub3QtZmlsdGVyZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4ODQ1MThhMGQxNTIwZWEy
NjI1NTYxMTM0OWM3OWY1MmUwNGU2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtZGVsdGFzLWFyZS1ub3QtZmlsdGVyZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorLTEwIDEwCistMTAgMjAKKy0xMCAxMAorLTEwIDIw
CistMjAgMzAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZl
bnQtZGVsdGFzLWFyZS1ub3QtZmlsdGVyZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL21hYy93aGVlbC1ldmVudC1kZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZjYjk5MmZiYjhiMGZjYTZjOGU4NGY5ODI5ZjczNWRiNTYwZDMyZGEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtZGVsdGFz
LWFyZS1ub3QtZmlsdGVyZWQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBkaXNwYXRjaFdoZWVs
RXZlbnRzKCkKKyAgICAgICAgeworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVs
RXZlbnRzKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7
CisKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygxLCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygxLCAtMiwgImNoYW5n
ZWQiLCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25lIik7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMSwg
LTEsICJub25lIiwgImJlZ2luIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMSwgLTIsICJub25lIiwgImNvbnRpbnVlIik7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMiwgLTMsICJub25lIiwgImNvbnRpbnVlIik7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgIm5vbmUi
LCAiZW5kIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2Nyb2xsQ29tcGxl
dGlvbigpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKworICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgZGVidWcoYCR7ZXZlbnQuZGVsdGFYfSAke2V2ZW50LmRlbHRhWX1gKQorICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgIGRpc3BhdGNoV2hlZWxFdmVudHMoKTsKKyAgICAgICAgfSwg
ZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgCisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="468107"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
    <flag name="commit-queue"
          id="468108"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443474</attachid>
            <date>2021-11-05 20:57:40 -0700</date>
            <delta_ts>2021-11-05 23:58:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232536-20211105205739.patch</filename>
            <type>text/plain</type>
            <size>29827</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU3NWQ4Yzg0NjhhMjgy
MjM0OWMxYTBkMmYwZWU1NzZiZTcyNTczYy4uNjQ4ZTVjZjViYjcyMTQyZTMwNzI2ODZkNWNiYzg1
NjkxNmE0NzUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IGNv
ZGUgdGhhdCBtYWtlcyB1c2Ugb2YgV2hlZWxFdmVudERlbHRhRmlsdGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI1MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgUHVzaCB0aGUgZGVjaXNpb24gYWJvdXQg
d2hpY2gga2luZHMgb2Ygd2hlZWwgZXZlbnRzIHRvIGFwcGx5IGZpbHRlcmluZyB0byBkb3duIGlu
dG8KKyAgICAgICAgV2hlZWxFdmVudERlbHRhRmlsdGVyLCB3aGljaCBzaW1wbGlmaWVzIGNhbGwg
c2l0ZXMuIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6dXBkYXRlRnJvbUV2ZW50KCkKKyAgICAg
ICAgbm93IGRldGVybWluZXMgd2hlbiB0byBjYWxsIGludG8gbV9wcmVkb21pbmFudEF4aXNGaWx0
ZXIgYmFzZWQgb24gdGhlIGV2ZW50IHBoYXNlLiBXZQorICAgICAgICBhbHNvIHNpbXBsaWZ5IHRo
ZSB0aW1pbmcgbG9naWMgYnkgY29tcHV0aW5nIFdhbGxUaW1lIGZyb20gd2hlbiB0aGUgV2hlZWxF
dmVudERlbHRhRmlsdGVyTWFjCisgICAgICAgIGlzIGNvbnN0cnVjdGVkLgorCisgICAgICAgIEV2
ZW50SGFuZGxlciBjb2RlIGlzIGNsZWFuZWQgdXAgdG8gc2ltcGxpZnkgdGhlIGxvZ2ljIGEgbGl0
dGxlIGJ1dCB0aGUgYmVoYXZpb3Igc2hvdWxkCisgICAgICAgIGJlIHRoZSBzYW1lLgorCisgICAg
ICAgIFRlc3Q6IGZhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1kZWx0YXMtYXJlLW5vdC1m
aWx0ZXJlZC5odG1sCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbCk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRl
RW5jbG9zaW5nQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXJMYXRj
aGVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0V2hlZWxF
dmVudEhhbmRsZXIpOiBNb3ZlIHRoZSBmaWx0ZXJpbmcgY29kZSBvdXQgb2YgdGhlIGxhdGNoaW5n
CisgICAgICAgICNpZmRlZi4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cmVjb3Jk
V2hlZWxFdmVudEZvckRlbHRhRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YUZpbHRlcjo6c2hvdWxkQXBwbHlGaWx0ZXJp
bmdGb3JFdmVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFGaWx0
ZXI6OmV2ZW50Q29weVdpdGhGaWx0ZXJlZERlbHRhcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6dXBkYXRlRnJvbUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjp1cGRhdGVXaXRoRGVsdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OnJlc2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpkb21pbmFudEF4aXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudERlbHRhRmlsdGVyOjppc0ZpbHRl
cmluZ0RlbHRhcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpCYXNpY1doZWVs
RXZlbnREZWx0YUZpbHRlcjo6dXBkYXRlRnJvbURlbHRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpiZWdpbkZpbHRlcmluZ0RlbHRhcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6
ZW5kRmlsdGVyaW5nRGVsdGFzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljV2hl
ZWxFdmVudERlbHRhRmlsdGVyOjpkb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmg6CisgICAg
ICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpkZXRlcm1pbmVXaGVlbEV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6cmVjb3JkV2hlZWxFdmVudEZvckRlbHRhRmlsdGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaDoKKyAgICAgICAg
KiBwYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OldoZWVsRXZlbnREZWx0YUZpbHRlck1hYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OnVwZGF0ZUZyb21FdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OnJlc2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6YmVnaW5GaWx0ZXJp
bmdEZWx0YXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudERlbHRhRmls
dGVyTWFjOjp1cGRhdGVGcm9tRGVsdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2hl
ZWxFdmVudERlbHRhRmlsdGVyTWFjOjplbmRGaWx0ZXJpbmdEZWx0YXMpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1XaGVlbEV2ZW50Ojpjb3B5V2l0aERlbHRhQW5kVmVsb2NpdHkgY29uc3QpOiBUYWtl
IGEgRmxvYXRTaXplIGZvciB0aGUgZGVsdGEuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkgY29uc3QpOiBEZWxldGVkLgorCiAy
MDIxLTExLTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50IGFuZCBZb3VUdWJlUGx1
Z2luUmVwbGFjZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGQ0OTUwNWFlYzM2YmZhYjRlYjQyNzVkOGM1N2M2
YzFiMjdjMGNjYy4uN2E4OWRlMWZjOWVkYTdjZmU3NmEzNDgwNGRkNDBiNmM4YTliN2EyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBjb2RlIHRoYXQgbWFrZXMgdXNl
IG9mIFdoZWVsRXZlbnREZWx0YUZpbHRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhz
aWVoLgorCisgICAgICAgIFB1c2ggdGhlIGRlY2lzaW9uIGFib3V0IHdoaWNoIGtpbmRzIG9mIHdo
ZWVsIGV2ZW50cyB0byBhcHBseSBmaWx0ZXJpbmcgdG8gZG93biBpbnRvCisgICAgICAgIFdoZWVs
RXZlbnREZWx0YUZpbHRlciwgd2hpY2ggc2ltcGxpZmllcyBjYWxsIHNpdGVzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCk6CisKIDIwMjEtMTEtMDMgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBNZWRpYVNlc3Npb24g
Y29vcmRpbmF0b3IgZW5hYmxlZCBpbiBVSVByb2Nlc3MsIGRpc2FibGVkIGluIFdlYkNvbnRlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1N2IzMzU3YTE1NDYyOTI0YzAx
MThlZjI3NmU0OTljMDEyNDU0MjExLi4yODM5NDMyM2QyODFhNzQ2YjJmOGM5MDZiMjA0N2FlOGNm
ZmJhOGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yODEzLDEyICsy
ODEzLDYgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRldGVybWluZVdoZWVsRXZlbnRUYXJnZXQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPEUKIHsKIH0KIAotdm9pZCBFdmVudEhhbmRs
ZXI6OnJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGV2ZW50KQotewotICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCi0gICAg
ICAgIHBhZ2UtPndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT51cGRhdGVGcm9tRGVsdGEoRmxvYXRT
aXplKGV2ZW50LmRlbHRhWCgpLCBldmVudC5kZWx0YVkoKSkpOwotfQotCiBib29sIEV2ZW50SGFu
ZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiBldmVudCwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mLCBPcHRpb25TZXQ8RXZl
bnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZykKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZy
YW1lKG1fZnJhbWUpOwpAQCAtMjk3Miw3ICsyOTY2LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnRJbnRlcm5hbChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBP
cHQKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCiAgICAgICAgIG1fZnJhbWUucGFn
ZSgpLT5zY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIoKS5yZWNlaXZlZFdoZWVsRXZlbnQoZXZlbnQp
OwogI2VuZGlmCi0gICAgICAgIHJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihldmVudCk7
CisgICAgICAgIG1fZnJhbWUucGFnZSgpLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+dXBkYXRl
RnJvbUV2ZW50KGV2ZW50KTsKICAgICB9CiAKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0OwpA
QCAtMzA4Niw3ICszMDgwLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnRJ
bkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0YXJ0Tm9kZSwgY28KICAgICAgICAgICAg
IGF1dG8gcGxhdGZvcm1FdmVudCA9IHdoZWVsRXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQo
KTsKICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nV2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlm
IChwbGF0Zm9ybUV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBs
YXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURl
bHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxv
Y2l0eSk7CisgICAgICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQt
PmNvcHlXaXRoRGVsdGFBbmRWZWxvY2l0eShmaWx0ZXJlZFBsYXRmb3JtRGVsdGEsIGZpbHRlcmVk
VmVsb2NpdHkpOwogICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBzY3JvbGxh
YmxlQXJlYUNhbkhhbmRsZUV2ZW50KGNvcGllZEV2ZW50LCAqYm94U2Nyb2xsYWJsZUFyZWEpICYm
IGhhbmRsZVdoZWVsRXZlbnRJblNjcm9sbGFibGVBcmVhKGNvcGllZEV2ZW50LCAqYm94U2Nyb2xs
YWJsZUFyZWEsIGV2ZW50SGFuZGxpbmcpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICAgICAgc2Nyb2xsaW5nV2FzSGFuZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoKmJv
eFNjcm9sbGFibGVBcmVhLCB3aGVlbEV2ZW50KTsKQEAgLTMxNTMsOCArMzE0Nyw2IEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjpjbGVhckxhdGNoZWRTdGF0ZSgpCiAgICAgaWYgKGF1dG8qIHNjcm9sbExh
dGNoaW5nQ29udHJvbGxlciA9IHBhZ2UtPnNjcm9sbExhdGNoaW5nQ29udHJvbGxlcklmRXhpc3Rz
KCkpCiAgICAgICAgIHNjcm9sbExhdGNoaW5nQ29udHJvbGxlci0+cmVtb3ZlTGF0Y2hpbmdTdGF0
ZUZvckZyYW1lKG1fZnJhbWUpOwogI2VuZGlmCi0gICAgaWYgKGF1dG8qIGZpbHRlciA9IHBhZ2Ut
PndoZWVsRXZlbnREZWx0YUZpbHRlcigpKQotICAgICAgICBmaWx0ZXItPmVuZEZpbHRlcmluZ0Rl
bHRhcygpOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFdoZWVsRXZlbnRIYW5kbGVy
KE5vZGUqIHN0YXJ0Tm9kZSwgV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKQEAgLTMxNzUsMjEgKzMx
NjcsMjAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRXaGVlbEV2ZW50SGFuZGxlcihOb2Rl
KiBzdGFydE5vZGUsIFdoZWVsRXZlbnQmIHdoZWVsRXYKIAogICAgIEZsb2F0U2l6ZSBmaWx0ZXJl
ZFBsYXRmb3JtRGVsdGEod2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSk7
CiAgICAgRmxvYXRTaXplIGZpbHRlcmVkVmVsb2NpdHk7Ci0gICAgaWYgKGF1dG8gcGxhdGZvcm1X
aGVlbEV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpKSB7Ci0gICAg
ICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5zZXRXaWR0aChwbGF0Zm9ybVdoZWVsRXZlbnQtPmRl
bHRhWCgpKTsKLSAgICAgICAgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLnNldEhlaWdodChwbGF0Zm9y
bVdoZWVsRXZlbnQtPmRlbHRhWSgpKTsKLSAgICB9CisgICAgaWYgKHBsYXRmb3JtRXZlbnQpCisg
ICAgICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YSA9IHBsYXRmb3JtRXZlbnQtPmRlbHRhKCk7CiAK
ICAgICBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZyA9IHsgRXZlbnRIYW5k
bGluZzo6RGlzcGF0Y2hlZFRvRE9NIH07CiAgICAgaWYgKHdoZWVsRXZlbnQuZGVmYXVsdFByZXZl
bnRlZCgpKQogICAgICAgICBldmVudEhhbmRsaW5nLmFkZChFdmVudEhhbmRsaW5nOjpEZWZhdWx0
UHJldmVudGVkKTsKIAotI2lmIEVOQUJMRShXSEVFTF9FVkVOVF9MQVRDSElORykKLSAgICBpZiAo
bV9mcmFtZS5wYWdlKCktPndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5pc0ZpbHRlcmluZ0RlbHRh
cygpKSB7Ci0gICAgICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YSA9IG1fZnJhbWUucGFnZSgpLT53
aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+ZmlsdGVyZWREZWx0YSgpOwotICAgICAgICBmaWx0ZXJl
ZFZlbG9jaXR5ID0gbV9mcmFtZS5wYWdlKCktPndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5maWx0
ZXJlZFZlbG9jaXR5KCk7CisgICAgYXV0byogZGVsdGFGaWx0ZXIgPSBtX2ZyYW1lLnBhZ2UoKS0+
d2hlZWxFdmVudERlbHRhRmlsdGVyKCk7CisgICAgaWYgKHBsYXRmb3JtRXZlbnQgJiYgZGVsdGFG
aWx0ZXIgJiYgZGVsdGFGaWx0ZXItPnNob3VsZEFwcGx5RmlsdGVyaW5nRm9yRXZlbnQoKnBsYXRm
b3JtRXZlbnQpKSB7CisgICAgICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YSA9IGRlbHRhRmlsdGVy
LT5maWx0ZXJlZERlbHRhKCk7CisgICAgICAgIGZpbHRlcmVkVmVsb2NpdHkgPSBkZWx0YUZpbHRl
ci0+ZmlsdGVyZWRWZWxvY2l0eSgpOwogICAgIH0KIAorI2lmIEVOQUJMRShXSEVFTF9FVkVOVF9M
QVRDSElORykKICAgICBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBsYXRjaGVkU2Nyb2xsZXI7CiAg
ICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKS0+c2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyKCkubGF0Y2hp
bmdBbGxvd3NTY3JvbGxpbmdJbkZyYW1lKG1fZnJhbWUsIGxhdGNoZWRTY3JvbGxlcikpCiAgICAg
ICAgIHJldHVybjsKQEAgLTMyMDEsNyArMzE5Miw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZh
dWx0V2hlZWxFdmVudEhhbmRsZXIoTm9kZSogc3RhcnROb2RlLCBXaGVlbEV2ZW50JiB3aGVlbEV2
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocGxhdGZvcm1FdmVudCkgewotICAgICAgICAgICAg
YXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2Np
dHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5o
ZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7CisgICAgICAgICAgICBhdXRvIGNvcGllZEV2ZW50
ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YUFuZFZlbG9jaXR5KGZpbHRlcmVkUGxhdGZv
cm1EZWx0YSwgZmlsdGVyZWRWZWxvY2l0eSk7CiAgICAgICAgICAgICBpZiAoaGFuZGxlV2hlZWxF
dmVudEluU2Nyb2xsYWJsZUFyZWEoY29waWVkRXZlbnQsICpsYXRjaGVkU2Nyb2xsZXIsIGV2ZW50
SGFuZGxpbmcpKQogICAgICAgICAgICAgICAgIHdoZWVsRXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQo
KTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4
IGE1MzliYjc3M2U3ODg1ZjE3YjEzODNjZTkwYjhmOTVlYTU3ZDA1NTQuLjM2YzgwMjMwZDJiMmU3
NjFhMGI2NjZjOTQzMDYxZjliNjJmNTQ3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aApAQCAtNDcwLDcgKzQ3MCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50
SW50ZXJuYWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM+LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4mKTsKICAgICBib29sIHBh
c3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgV2lkZ2V0Jiwg
T3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+KTsKICAgICB2b2lkIGRldGVybWlu
ZVdoZWVsRXZlbnRUYXJnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPEVsZW1l
bnQ+JiBldmVudFRhcmdldCwgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mLCBib29sJiBpc092ZXJX
aWRnZXQpOwotICAgIHZvaWQgcmVjb3JkV2hlZWxFdmVudEZvckRlbHRhRmlsdGVyKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYpOwogICAgIGJvb2wgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxp
bmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJl
YT4mLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pOwogICAgIHZvaWQgcHJvY2Vzc1doZWVsRXZl
bnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8
U2Nyb2xsYWJsZUFyZWE+Jik7CiAgICAgYm9vbCBjb21wbGV0ZVdpZGdldFdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2Vha1B0cjxXaWRnZXQ+JiwgY29uc3QgV2Vh
a1B0cjxTY3JvbGxhYmxlQXJlYT4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVu
dERlbHRhRmlsdGVyLmNwcAppbmRleCAzMDRkOTRhNzViZjM2MWQ4ZGQ0NmY2YWZmYWZlMzFjM2Vm
ODJhNDQ3Li41ZmFhZGQ0YTk5MTU1NjMxMjdmNWY4OGI1NmU2NzU5ZGEyZjAzOGIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRT
dHJlYW0uaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTQ5LDkgKzUwLDIwIEBAIHN0ZDo6dW5p
cXVlX3B0cjxXaGVlbEV2ZW50RGVsdGFGaWx0ZXI+IFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6Y3Jl
YXRlKCkKICNlbmRpZgogfQogCi1ib29sIFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6aXNGaWx0ZXJp
bmdEZWx0YXMoKSBjb25zdAorYm9vbCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OnNob3VsZEFwcGx5
RmlsdGVyaW5nRm9yRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9pc0ZpbHRlcmluZ0RlbHRhczsKKyNpZiBFTkFCTEUoS0lORVRJQ19T
Q1JPTExJTkcpCisgICAgLy8gTWF5YmUgaXQncyBhIHBlci1wbGF0Zm9ybSBkZWNpc2lvbiBhYm91
dCB3aGljaCBldmVudCBwaGFzZXMgZ2V0IGZpbHRlcmVkLiBJZGVhbGx5IHdlJ2QgZmlsdGVyIG1v
bWVudHVtIGV2ZW50cyB0b28gKGJ1dCB0aGF0IGJyZWFrcyBzb21lIGRpYWdvbmFsIHNjcm9sbGlu
ZyBjYXNlcykuCisgICAgYXV0byBwaGFzZSA9IGV2ZW50LnBoYXNlKCk7CisgICAgcmV0dXJuIHBo
YXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpCZWdhbiB8fCBwaGFzZSA9PSBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZTo6Q2hhbmdlZDsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKK1BsYXRmb3JtV2hlZWxFdmVudCBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmV2ZW50
Q29weVdpdGhGaWx0ZXJlZERlbHRhcyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KSBj
b25zdAoreworICAgIHJldHVybiBldmVudC5jb3B5V2l0aERlbHRhQW5kVmVsb2NpdHkobV9jdXJy
ZW50RmlsdGVyZWREZWx0YSwgbV9jdXJyZW50RmlsdGVyZWRWZWxvY2l0eSk7CiB9CiAKIEZsb2F0
U2l6ZSBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmZpbHRlcmVkRGVsdGEoKSBjb25zdApAQCAtNjks
MzUgKzgxLDU1IEBAIEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpCYXNpY1doZWVsRXZlbnRE
ZWx0YUZpbHRlcigpCiB7CiB9CiAKLWNvbnN0IHNpemVfdCBiYXNpY1doZWVsRXZlbnREZWx0YUZp
bHRlcldpbmRvd1NpemUgPSAzOwordm9pZCBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlcjo6dXBk
YXRlRnJvbUV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCit7CisjaWYgRU5B
QkxFKEtJTkVUSUNfU0NST0xMSU5HKQorICAgIHN3aXRjaCAoZXZlbnQucGhhc2UoKSkgeworICAg
IGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6Ok1heUJlZ2luOgorICAgIGNhc2UgUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2U6OkNhbmNlbGxlZDoKKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlOjpTdGF0aW9uYXJ5OgorICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkVu
ZGVkOgorICAgICAgICByZXNldCgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2U6Ok5vbmU6CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW46CisgICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZTo6Q2hhbmdlZDoKKyAgICAgICAgdXBkYXRlV2l0aERlbHRhKGV2ZW50LmRlbHRhKCkpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisjZWxzZQorICAgIG1fY3VycmVudEZpbHRlcmVkRGVsdGEg
PSBldmVudC5kZWx0YSgpOworI2VuZGlmCit9CisKK2NvbnN0ZXhwciBzaXplX3QgYmFzaWNXaGVl
bEV2ZW50RGVsdGFGaWx0ZXJXaW5kb3dTaXplID0gMzsKIAotdm9pZCBCYXNpY1doZWVsRXZlbnRE
ZWx0YUZpbHRlcjo6dXBkYXRlRnJvbURlbHRhKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCit2b2lk
IEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjp1cGRhdGVXaXRoRGVsdGEoRmxvYXRTaXplIGRl
bHRhKQogewogICAgIG1fY3VycmVudEZpbHRlcmVkRGVsdGEgPSBkZWx0YTsKLSAgICBpZiAoIW1f
aXNGaWx0ZXJpbmdEZWx0YXMpCi0gICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIG1fcmVjZW50
V2hlZWxFdmVudERlbHRhcy5hcHBlbmQoZGVsdGEpOwogICAgIGlmIChtX3JlY2VudFdoZWVsRXZl
bnREZWx0YXMuc2l6ZSgpID4gYmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXJXaW5kb3dTaXplKQog
ICAgICAgICBtX3JlY2VudFdoZWVsRXZlbnREZWx0YXMucmVtb3ZlRmlyc3QoKTsKICAgICAKLSAg
ICBEb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb24gc2Nyb2xsRGlyZWN0aW9uID0gZG9taW5h
bnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9uKCk7Ci0gICAgaWYgKHNjcm9sbERpcmVjdGlvbiA9PSBE
b21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb246OlZlcnRpY2FsKQorICAgIGF1dG8gc2Nyb2xs
QXhpcyA9IGRvbWluYW50QXhpcygpOworICAgIGlmICghc2Nyb2xsQXhpcykKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHNjcm9sbEF4aXMudmFsdWUoKSA9PSBTY3JvbGxFdmVudEF4aXM6OlZl
cnRpY2FsKQogICAgICAgICBtX2N1cnJlbnRGaWx0ZXJlZERlbHRhLnNldFdpZHRoKDApOwotICAg
IGVsc2UgaWYgKHNjcm9sbERpcmVjdGlvbiA9PSBEb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rp
b246Okhvcml6b250YWwpCisgICAgZWxzZSBpZiAoc2Nyb2xsQXhpcy52YWx1ZSgpID09IFNjcm9s
bEV2ZW50QXhpczo6SG9yaXpvbnRhbCkKICAgICAgICAgbV9jdXJyZW50RmlsdGVyZWREZWx0YS5z
ZXRIZWlnaHQoMCk7CiB9CiAKLXZvaWQgQmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmJlZ2lu
RmlsdGVyaW5nRGVsdGFzKCkKK3ZvaWQgQmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OnJlc2V0
KCkKIHsKICAgICBtX3JlY2VudFdoZWVsRXZlbnREZWx0YXMuY2xlYXIoKTsKLSAgICBtX2lzRmls
dGVyaW5nRGVsdGFzID0gdHJ1ZTsKLX0KLQotdm9pZCBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRl
cjo6ZW5kRmlsdGVyaW5nRGVsdGFzKCkKLXsKLSAgICBtX2N1cnJlbnRGaWx0ZXJlZERlbHRhID0g
RmxvYXRTaXplKDAsIDApOwotICAgIG1faXNGaWx0ZXJpbmdEZWx0YXMgPSBmYWxzZTsKKyAgICBt
X2N1cnJlbnRGaWx0ZXJlZERlbHRhID0geyB9OworICAgIG1fY3VycmVudEZpbHRlcmVkVmVsb2Np
dHkgPSB7IH07CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBkZWx0YUlzUHJlZG9taW5hbnRseVZl
cnRpY2FsKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCkBAIC0xMDUsMjQgKzEzNywyNCBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgZGVsdGFJc1ByZWRvbWluYW50bHlWZXJ0aWNhbChjb25zdCBGbG9hdFNp
emUmIGRlbHRhKQogICAgIHJldHVybiBmYWJzKGRlbHRhLmhlaWdodCgpKSA+IGZhYnMoZGVsdGEu
d2lkdGgoKSk7CiB9CiAKLURvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVjdGlvbiBCYXNpY1doZWVs
RXZlbnREZWx0YUZpbHRlcjo6ZG9taW5hbnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9uKCkgY29uc3QK
K3N0ZDo6b3B0aW9uYWw8U2Nyb2xsRXZlbnRBeGlzPiBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRl
cjo6ZG9taW5hbnRBeGlzKCkgY29uc3QKIHsKICAgICBib29sIGFsbFZlcnRpY2FsID0gbV9yZWNl
bnRXaGVlbEV2ZW50RGVsdGFzLnNpemUoKTsKICAgICBib29sIGFsbEhvcml6b250YWwgPSBtX3Jl
Y2VudFdoZWVsRXZlbnREZWx0YXMuc2l6ZSgpOwotICAgIAorCiAgICAgZm9yIChjb25zdCBhdXRv
JiBkZWx0YSA6IG1fcmVjZW50V2hlZWxFdmVudERlbHRhcykgewogICAgICAgICBib29sIGlzVmVy
dGljYWwgPSBkZWx0YUlzUHJlZG9taW5hbnRseVZlcnRpY2FsKGRlbHRhKTsKICAgICAgICAgYWxs
VmVydGljYWwgJj0gaXNWZXJ0aWNhbDsKICAgICAgICAgYWxsSG9yaXpvbnRhbCAmPSAhaXNWZXJ0
aWNhbDsKICAgICB9Ci0gICAgCisKICAgICBpZiAoYWxsVmVydGljYWwpCi0gICAgICAgIHJldHVy
biBEb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb246OlZlcnRpY2FsOwotICAgIAorICAgICAg
ICByZXR1cm4gU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbDsKKwogICAgIGlmIChhbGxIb3Jpem9u
dGFsKQotICAgICAgICByZXR1cm4gRG9taW5hbnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9uOjpIb3Jp
em9udGFsOwotICAgIAotICAgIHJldHVybiBEb21pbmFudFNjcm9sbEdlc3R1cmVEaXJlY3Rpb246
Ok5vbmU7CisgICAgICAgIHJldHVybiBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWw7CisKKyAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hl
ZWxFdmVudERlbHRhRmlsdGVyLmgKaW5kZXggMjBiNTVjZDdmZWE4YzJmYTQ3MjFlNmIzNDZlYzE0
MTFhODk1YzdlMC4uMmViYTI3ZDM2N2JiMGMxZjlkM2NjNDA4YjNlOWYyOGViODI4ZDQ3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw0NSArMjYsNDQgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5jbHVkZSAiU2Nyb2xs
VHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBQbGF0Zm9ybVdoZWVsRXZlbnQ7CisKIGNsYXNzIFdoZWVsRXZlbnREZWx0YUZpbHRl
ciB7CiBwdWJsaWM6CiAgICAgV2hlZWxFdmVudERlbHRhRmlsdGVyKCk7CiAgICAgdmlydHVhbCB+
V2hlZWxFdmVudERlbHRhRmlsdGVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFdoZWVsRXZlbnREZWx0YUZpbHRlcj4gY3JlYXRlKCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21EZWx0YShjb25zdCBGbG9hdFNpemUmKSA9
IDA7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGJlZ2luRmlsdGVyaW5nRGVsdGFz
KCkgPSAwOwotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBlbmRGaWx0ZXJpbmdEZWx0
YXMoKSA9IDA7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpID0gMDsKKworICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgc2hvdWxkQXBwbHlGaWx0ZXJpbmdGb3JFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybVdoZWVsRXZlbnQgZXZlbnRD
b3B5V2l0aEZpbHRlcmVkRGVsdGFzKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0Owor
CiAgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRTaXplIGZpbHRlcmVkVmVsb2NpdHkoKSBjb25zdDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzRmlsdGVyaW5nRGVsdGFzKCkgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgRmxvYXRTaXplIGZpbHRlcmVkRGVsdGEoKSBjb25zdDsKIAogcHJvdGVj
dGVkOgogICAgIEZsb2F0U2l6ZSBtX2N1cnJlbnRGaWx0ZXJlZERlbHRhOwogICAgIEZsb2F0U2l6
ZSBtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5OwotICAgIGJvb2wgbV9pc0ZpbHRlcmluZ0RlbHRh
cyB7IGZhbHNlIH07Ci19OwotCi1lbnVtIGNsYXNzIERvbWluYW50U2Nyb2xsR2VzdHVyZURpcmVj
dGlvbiB7Ci0gICAgTm9uZSwKLSAgICBWZXJ0aWNhbCwKLSAgICBIb3Jpem9udGFsCiB9OwogCiBj
bGFzcyBCYXNpY1doZWVsRXZlbnREZWx0YUZpbHRlciBmaW5hbCA6IHB1YmxpYyBXaGVlbEV2ZW50
RGVsdGFGaWx0ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IEJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyKCk7Ci0gICAgdm9pZCB1cGRhdGVGcm9tRGVsdGEo
Y29uc3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBiZWdpbkZpbHRlcmluZ0RlbHRh
cygpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5kRmlsdGVyaW5nRGVsdGFzKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCB1cGRhdGVGcm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWw7
CiAKIHByaXZhdGU6Ci0gICAgRG9taW5hbnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9uIGRvbWluYW50
U2Nyb2xsR2VzdHVyZURpcmVjdGlvbigpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8U2Nyb2xs
RXZlbnRBeGlzPiBkb21pbmFudEF4aXMoKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIHJlc2V0KCk7
CisgICAgdm9pZCB1cGRhdGVXaXRoRGVsdGEoRmxvYXRTaXplKTsKIAogICAgIERlcXVlPEZsb2F0
U2l6ZT4gbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCA1N2Q1YTY0N2YwMzAyNDI1MWNmOTYxNmIyY2Jm
YTVhNGFmNzFlOWY1Li4xZWNkMGNjNzhlZDU1NTY0ZjAzMmIzMGM5YzgzZWJmNTc0YWRlODAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC04ODUsMzEg
Kzg4NSw5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZXRlcm1pbmVXaGVlbEV2ZW50VGFyZ2V0KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVuCiAgICAgaWYgKHdoZWVsRXZlbnQuc2hv
dWxkUmVzZXRMYXRjaGluZygpIHx8IHdoZWVsRXZlbnQuaXNOb25HZXN0dXJlRXZlbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSAmJiB3aGVlbEV2
ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCi0gICAgICAgIHBhZ2UtPndoZWVsRXZlbnREZWx0YUZpbHRl
cigpLT5iZWdpbkZpbHRlcmluZ0RlbHRhcygpOwotCiAgICAgcGFnZS0+c2Nyb2xsTGF0Y2hpbmdD
b250cm9sbGVyKCkudXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0YXRlRm9yRnJhbWUobV9mcmFtZSwg
d2hlZWxFdmVudCwgd2hlZWxFdmVudFRhcmdldCwgc2Nyb2xsYWJsZUFyZWEsIGlzT3ZlcldpZGdl
dCk7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0
ZXIoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQotewotICAgIGF1dG8qIHBh
Z2UgPSBtX2ZyYW1lLnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHN3aXRjaCAod2hlZWxFdmVudC5waGFzZSgpKSB7Ci0gICAgY2FzZSBQbGF0Zm9ybVdoZWVs
RXZlbnRQaGFzZTo6QmVnYW46Ci0gICAgICAgIHBhZ2UtPndoZWVsRXZlbnREZWx0YUZpbHRlcigp
LT5iZWdpbkZpbHRlcmluZ0RlbHRhcygpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlOjpFbmRlZDoKLSAgICAgICAgcGFnZS0+d2hlZWxFdmVudERlbHRh
RmlsdGVyKCktPmVuZEZpbHRlcmluZ0RlbHRhcygpOwotICAgICAgICBicmVhazsKLSAgICBkZWZh
dWx0OgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcGFnZS0+d2hlZWxFdmVudERlbHRhRmls
dGVyKCktPnVwZGF0ZUZyb21EZWx0YShGbG9hdFNpemUod2hlZWxFdmVudC5kZWx0YVgoKSwgd2hl
ZWxFdmVudC5kZWx0YVkoKSkpOwotfQotCiBib29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVs
RXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBj
b25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Nyb2xsYWJsZUFyZWEsIE9wdGlvblNldDxF
dmVudEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3Jv
bGxMYXRjaGluZywgc3RyZWFtIDw8ICJFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIC0gc2Nyb2xsYWJsZUFyZWEgIiA8PCBWYWx1
ZU9yTnVsbChzY3JvbGxhYmxlQXJlYS5nZXQoKSkgPDwgIiB1c2UgbGF0Y2hlZCBlbGVtZW50ICIg
PDwgd2hlZWxFdmVudC51c2VMYXRjaGVkRXZlbnRFbGVtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaAppbmRleCAyY2M5OGJm
NzkxY2QyN2NhNWQ2Yjc3ZTBmNWE1YWRhYzQ1ZWExOWU5Li43NWZhZmIzM2IzNTMwYmVmNWRlMWJl
NjllY2JkNjA2ZDQ5NWY5MTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9X
aGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9X
aGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaApAQCAtNDAsMTMgKzQwLDEzIEBAIGNsYXNzIFdoZWVs
RXZlbnREZWx0YUZpbHRlck1hYyBmaW5hbCA6IHB1YmxpYyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXIg
ewogcHVibGljOgogICAgIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYygpOwogCi0gICAgdm9pZCB1
cGRhdGVGcm9tRGVsdGEoY29uc3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBiZWdp
bkZpbHRlcmluZ0RlbHRhcygpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5kRmlsdGVyaW5nRGVsdGFz
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVGcm9tRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JikgZmluYWw7CiAKIHByaXZhdGU6CisgICAgdm9pZCByZXNldCgpOworCiAgICAgUmV0
YWluUHRyPF9OU1Njcm9sbGluZ1ByZWRvbWluYW50QXhpc0ZpbHRlcj4gbV9wcmVkb21pbmFudEF4
aXNGaWx0ZXI7Ci0gICAgTW9ub3RvbmljVGltZSBtX2JlZ2luRmlsdGVyaW5nRGVsdGFzVGltZTsK
KyAgICBXYWxsVGltZSBtX2luaXRpYWxXYWxsVGltZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0
YUZpbHRlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZp
bHRlck1hYy5tbQppbmRleCAyM2IxZWQ1Y2M5ZTRmNTRiNGFiMDA2YTUyZTQ3YTE0YmVkMDU4ZDA5
Li40MWMxMTVhNzg4YWYxNTg2MDYyZDA2NjUwMDgyZTIwYzc3YjYwOWUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbXBvcnQgIldoZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oIgogCiAjaW1wb3J0
ICJGbG9hdFBvaW50LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TU2Nyb2xsaW5nSW5wdXRGaWx0ZXJTUEkuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzYsMzMgKzM3LDQ2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdoZWVsRXZl
bnREZWx0YUZpbHRlck1hYzo6V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjKCkKICAgICA6IFdoZWVs
RXZlbnREZWx0YUZpbHRlcigpCiAgICAgLCBtX3ByZWRvbWluYW50QXhpc0ZpbHRlcihhZG9wdE5T
KFtbX05TU2Nyb2xsaW5nUHJlZG9taW5hbnRBeGlzRmlsdGVyIGFsbG9jXSBpbml0XSkpCisgICAg
LCBtX2luaXRpYWxXYWxsVGltZShXYWxsVGltZTo6bm93KCkpCiB7CiB9CiAKLXZvaWQgV2hlZWxF
dmVudERlbHRhRmlsdGVyTWFjOjpiZWdpbkZpbHRlcmluZ0RlbHRhcygpCit2b2lkIFdoZWVsRXZl
bnREZWx0YUZpbHRlck1hYzo6dXBkYXRlRnJvbUV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQpCiB7Ci0gICAgbV9iZWdpbkZpbHRlcmluZ0RlbHRhc1RpbWUgPSBNb25vdG9uaWNU
aW1lOjpub3coKTsKLSAgICBtX2lzRmlsdGVyaW5nRGVsdGFzID0gdHJ1ZTsKLX0KLQotdm9pZCBX
aGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OnVwZGF0ZUZyb21EZWx0YShjb25zdCBGbG9hdFNpemUm
IGRlbHRhKQotewotICAgIGlmICghbV9pc0ZpbHRlcmluZ0RlbHRhcykKKyAgICBpZiAoZXZlbnQu
bW9tZW50dW1QaGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpOb25lKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBOU1BvaW50IGZpbHRlcmVkRGVsdGFSZXN1bHQ7Ci0gICAgTlNQb2lu
dCBmaWx0ZXJlZFZlbG9jaXR5UmVzdWx0OwotICAgIFttX3ByZWRvbWluYW50QXhpc0ZpbHRlciBm
aWx0ZXJJbnB1dERlbHRhOk5TUG9pbnQoRmxvYXRQb2ludChkZWx0YS53aWR0aCgpLCBkZWx0YS5o
ZWlnaHQoKSkpIHRpbWVzdGFtcDooTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2JlZ2luRmlsdGVy
aW5nRGVsdGFzVGltZSkuc2Vjb25kcygpIG91dHB1dERlbHRhOiZmaWx0ZXJlZERlbHRhUmVzdWx0
IHZlbG9jaXR5OiZmaWx0ZXJlZFZlbG9jaXR5UmVzdWx0XTsKLSAgICBtX2N1cnJlbnRGaWx0ZXJl
ZFZlbG9jaXR5ID0gRmxvYXRTaXplKGZpbHRlcmVkVmVsb2NpdHlSZXN1bHQueCwgZmlsdGVyZWRW
ZWxvY2l0eVJlc3VsdC55KTsKLSAgICBtX2N1cnJlbnRGaWx0ZXJlZERlbHRhID0gRmxvYXRTaXpl
KGZpbHRlcmVkRGVsdGFSZXN1bHQueCwgZmlsdGVyZWREZWx0YVJlc3VsdC55KTsKKyAgICAvLyBU
aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGltZXN0YW1wIGRvZXNuJ3QgbWF0dGVyOyB0aGUgZmlsdGVy
IGxvb2tzIGF0IGRlbHRhcyBmcm9tIHRoZSBwcmV2aW91cyBldmVudC4KKyAgICBhdXRvIHRpbWVz
dGFtcCA9IGV2ZW50LnRpbWVzdGFtcCgpIC0gbV9pbml0aWFsV2FsbFRpbWU7CisKKyAgICBzd2l0
Y2ggKGV2ZW50LnBoYXNlKCkpIHsKKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpO
b25lOgorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6
OkJlZ2FuOgorICAgIGNhc2UgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQ6IHsKKyAg
ICAgICAgTlNQb2ludCBmaWx0ZXJlZERlbHRhUmVzdWx0OworICAgICAgICBOU1BvaW50IGZpbHRl
cmVkVmVsb2NpdHlSZXN1bHQ7CisKKyAgICAgICAgW21fcHJlZG9taW5hbnRBeGlzRmlsdGVyIGZp
bHRlcklucHV0RGVsdGE6dG9GbG9hdFBvaW50KGV2ZW50LmRlbHRhKCkpIHRpbWVzdGFtcDp0aW1l
c3RhbXAuc2Vjb25kcygpIG91dHB1dERlbHRhOiZmaWx0ZXJlZERlbHRhUmVzdWx0IHZlbG9jaXR5
OiZmaWx0ZXJlZFZlbG9jaXR5UmVzdWx0XTsKKyAgICAgICAgbV9jdXJyZW50RmlsdGVyZWRWZWxv
Y2l0eSA9IHRvRmxvYXRTaXplKGZpbHRlcmVkVmVsb2NpdHlSZXN1bHQpOworICAgICAgICBtX2N1
cnJlbnRGaWx0ZXJlZERlbHRhID0gdG9GbG9hdFNpemUoZmlsdGVyZWREZWx0YVJlc3VsdCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpN
YXlCZWdpbjoKKyAgICBjYXNlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDYW5jZWxsZWQ6Cisg
ICAgY2FzZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6U3RhdGlvbmFyeToKKyAgICBjYXNlIFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlOjpFbmRlZDoKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQogfQogCi12b2lkIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6ZW5kRmls
dGVyaW5nRGVsdGFzKCkKK3ZvaWQgV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjOjpyZXNldCgpCiB7
Ci0gICAgbV9jdXJyZW50RmlsdGVyZWREZWx0YSA9IEZsb2F0U2l6ZSgwLCAwKTsKLSAgICBtX2Jl
Z2luRmlsdGVyaW5nRGVsdGFzVGltZSA9IE1vbm90b25pY1RpbWUoKTsKICAgICBbbV9wcmVkb21p
bmFudEF4aXNGaWx0ZXIgcmVzZXRdOwotICAgIG1faXNGaWx0ZXJpbmdEZWx0YXMgPSBmYWxzZTsK
KyAgICBtX2N1cnJlbnRGaWx0ZXJlZFZlbG9jaXR5ID0geyB9OworICAgIG1fY3VycmVudEZpbHRl
cmVkRGVsdGEgPSB7IH07CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1XaGVlbEV2ZW50LmgKaW5kZXggNzA1ZTVkZDYwZDkzYWUwNjNmNWIzMWRlNTM0NzQ3Y2Q4Mzdm
NDY5NS4uMmExMWZkNGE5MjhmMzcxN2E5MWYwNTY3YWNjMzJiNzc0NWE1OGU4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTEyMCwxMSArMTIw
LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgfQogCi0gICAgUGxhdGZv
cm1XaGVlbEV2ZW50IGNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmxvYXQgZGVsdGFYLCBmbG9h
dCBkZWx0YVksIGNvbnN0IEZsb2F0U2l6ZSYgdmVsb2NpdHkpIGNvbnN0CisgICAgUGxhdGZvcm1X
aGVlbEV2ZW50IGNvcHlXaXRoRGVsdGFBbmRWZWxvY2l0eShGbG9hdFNpemUgZGVsdGEsIEZsb2F0
U2l6ZSB2ZWxvY2l0eSkgY29uc3QKICAgICB7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudCBj
b3B5ID0gKnRoaXM7Ci0gICAgICAgIGNvcHkubV9kZWx0YVggPSBkZWx0YVg7Ci0gICAgICAgIGNv
cHkubV9kZWx0YVkgPSBkZWx0YVk7CisgICAgICAgIGNvcHkubV9kZWx0YVggPSBkZWx0YS53aWR0
aCgpOworICAgICAgICBjb3B5Lm1fZGVsdGFZID0gZGVsdGEuaGVpZ2h0KCk7CiAgICAgICAgIGNv
cHkubV9zY3JvbGxpbmdWZWxvY2l0eSA9IHZlbG9jaXR5OwogICAgICAgICByZXR1cm4gY29weTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcAppbmRleCA2Yzk1ZDI4NjM3MTFkMmQzYTZkMDE5NDc1MzY0MDA1NDdmMmI1
Mjc0Li5lNmNlZjEwZDIyZDMxOTg0MGRjNGViMDgzNWQwZWEyOWZjY2NkYzViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAK
QEAgLTk4LDM0ICs5OCwxNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogCiB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQm
IHdoZWVsRXZlbnQsIFJlY3RFZGdlczxib29sPiBydWJiZXJCYW5kYWJsZUVkZ2VzKQogewotI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKLSAgICBQbGF0Zm9y
bVdoZWVsRXZlbnQgcGxhdGZvcm1XaGVlbEV2ZW50ID0gcGxhdGZvcm0od2hlZWxFdmVudCk7Ci0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN3aXRjaCAod2hlZWxFdmVudC5waGFz
ZSgpKSB7Ci0gICAgY2FzZSBXZWJXaGVlbEV2ZW50OjpQaGFzZUJlZ2FuOgotICAgICAgICBtX3Jl
Y2VudFdoZWVsRXZlbnREZWx0YUZpbHRlci0+YmVnaW5GaWx0ZXJpbmdEZWx0YXMoKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJXaGVlbEV2ZW50OjpQaGFzZUVuZGVkOgotICAgICAgICBt
X3JlY2VudFdoZWVsRXZlbnREZWx0YUZpbHRlci0+ZW5kRmlsdGVyaW5nRGVsdGFzKCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlm
IChtX3JlY2VudFdoZWVsRXZlbnREZWx0YUZpbHRlci0+aXNGaWx0ZXJpbmdEZWx0YXMoKSkgewot
ICAgICAgICBtX3JlY2VudFdoZWVsRXZlbnREZWx0YUZpbHRlci0+dXBkYXRlRnJvbURlbHRhKEZs
b2F0U2l6ZShwbGF0Zm9ybVdoZWVsRXZlbnQuZGVsdGFYKCksIHBsYXRmb3JtV2hlZWxFdmVudC5k
ZWx0YVkoKSkpOwotICAgICAgICBGbG9hdFNpemUgZmlsdGVyZWREZWx0YSA9IG1fcmVjZW50V2hl
ZWxFdmVudERlbHRhRmlsdGVyLT5maWx0ZXJlZERlbHRhKCk7Ci0gICAgICAgIHBsYXRmb3JtV2hl
ZWxFdmVudCA9IHBsYXRmb3JtV2hlZWxFdmVudC5jb3B5V2l0aERlbHRhc0FuZFZlbG9jaXR5KGZp
bHRlcmVkRGVsdGEud2lkdGgoKSwgZmlsdGVyZWREZWx0YS5oZWlnaHQoKSwgbV9yZWNlbnRXaGVl
bEV2ZW50RGVsdGFGaWx0ZXItPmZpbHRlcmVkVmVsb2NpdHkoKSk7Ci0gICAgfQotI2VuZGlmCi0K
ICAgICBhdXRvIHByb2Nlc3NpbmdTdGVwcyA9IE9wdGlvblNldDxXZWJDb3JlOjpXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzPiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRG
b3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9j
a2luZ0RPTUV2ZW50RGlzcGF0Y2ggfTsKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKICAg
ICBkbyB7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3Njcm9sbGluZ1RyZWVzTG9jayB9Owor
ICAgICAgICBhdXRvIHBsYXRmb3JtV2hlZWxFdmVudCA9IHBsYXRmb3JtKHdoZWVsRXZlbnQpOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBtX3JlY2VudFdoZWVsRXZlbnREZWx0YUZpbHRl
ci0+dXBkYXRlRnJvbUV2ZW50KHBsYXRmb3JtV2hlZWxFdmVudCk7CisgICAgICAgIGlmIChtX3Jl
Y2VudFdoZWVsRXZlbnREZWx0YUZpbHRlci0+c2hvdWxkQXBwbHlGaWx0ZXJpbmdGb3JFdmVudChw
bGF0Zm9ybVdoZWVsRXZlbnQpKQorICAgICAgICAgICAgcGxhdGZvcm1XaGVlbEV2ZW50ID0gbV9y
ZWNlbnRXaGVlbEV2ZW50RGVsdGFGaWx0ZXItPmV2ZW50Q29weVdpdGhGaWx0ZXJlZERlbHRhcyhw
bGF0Zm9ybVdoZWVsRXZlbnQpOworI2VuZGlmCiAKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1f
c2Nyb2xsaW5nVHJlZXNMb2NrIH07CiAgICAgICAgIGF1dG8gc2Nyb2xsaW5nVHJlZSA9IG1fc2Ny
b2xsaW5nVHJlZXMuZ2V0KHBhZ2VJRCk7CiAgICAgICAgIGlmICghc2Nyb2xsaW5nVHJlZSkgewog
ICAgICAgICAgICAgZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFpblRocmVhZChwYWdlSUQsIHdoZWVs
RXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGFjODhiM2MxZWE0ZWVjNDgxZjQyYmM4
NmNiMTM5M2ZkNjBiMjMyZS4uMDdiZTc1NjZhOWE2ODJhMjg4NjdiNDZiZmY3YzU0ZGM4NDNlOTZh
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTExLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IGNvZGUgdGhhdCBtYWtlcyB1
c2Ugb2YgV2hlZWxFdmVudERlbHRhRmlsdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI1MzYKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24g
SHNpZWguCisKKyAgICAgICAgQWRkIGEgdGVzdCB0byB2ZXJpZnkgdGhhdCB3aGVlbCBldmVudHMg
c2VudCB0byBKUyBhcmVuJ3QgYWZmZWN0ZWQgYnkgdGhlIHdoZWVsIGV2ZW50CisgICAgICAgIGRl
bHRhIGZpbHRlci4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1k
ZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1kZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC1tYW5kYXRvcnktMmQtb3ZlcmZsb3cuaHRtbDoKKyAgICAgICAgQWRqdXN0IHRo
ZSB0ZXN0IGZvciB0aGUgZmFjdCB0aGF0IHRoZSBtb21lbnR1bSBwaGFzZSBpcyBub3cgYXhpcy1s
b2NrZWQuCisKIDIwMjEtMTEtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQgYW5k
IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWRlbHRhcy1hcmUtbm90LWZpbHRlcmVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1kZWx0YXMt
YXJlLW5vdC1maWx0ZXJlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg4NDUxOGEwZDE1MjBl
YTI2MjU1NjExMzQ5Yzc5ZjUyZTA0ZTY3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1kZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACistMTAgMTAKKy0xMCAyMAorLTEwIDEwCistMTAg
MjAKKy0yMCAzMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1l
dmVudC1kZWx0YXMtYXJlLW5vdC1maWx0ZXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvbWFjL3doZWVsLWV2ZW50LWRlbHRhcy1hcmUtbm90LWZpbHRlcmVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmNiOTkyZmJiOGIwZmNhNmM4ZTg0Zjk4MjlmNzM1ZGI1NjBkMzJkYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1kZWx0
YXMtYXJlLW5vdC1maWx0ZXJlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoV2hl
ZWxFdmVudHMoKQorICAgICAgICB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hl
ZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAw
KTsKKworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDEsIC0xLCAiYmVnYW4iLCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDEsIC0yLCAiY2hh
bmdlZCIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgImVuZGVkIiwgIm5vbmUiKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygx
LCAtMSwgIm5vbmUiLCAiYmVnaW4iKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygxLCAtMiwgIm5vbmUiLCAiY29udGludWUi
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygyLCAtMywgIm5vbmUiLCAiY29udGludWUiKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAibm9u
ZSIsICJlbmQiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTY3JvbGxDb21w
bGV0aW9uKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworCisgICAgICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoZXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICBkZWJ1ZyhgJHtldmVudC5kZWx0YVh9ICR7ZXZlbnQuZGVsdGFZfWApCisgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgZGlzcGF0Y2hXaGVlbEV2ZW50cygpOworICAgICAgICB9
LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICAKKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>