<?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>234781</bug_id>
          
          <creation_ts>2022-01-01 02:48:02 -0800</creation_ts>
          <short_desc>[GTK][a11y] Unregister objects and clear cache when last client disconnect with ATSPI</short_desc>
          <delta_ts>2022-01-14 04:09:09 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>234740</dependson>
          <blocked>230253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>aperez</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827415</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-01 02:48:02 -0800</bug_when>
    <thetext>We currently register objects when there are clients asking for cached items or connect event listeners. We could unregister the objects and clear the cache if all the clients are disconnected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827416</commentid>
    <comment_count>1</comment_count>
      <attachid>448152</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-01 02:57:45 -0800</bug_when>
    <thetext>Created attachment 448152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830516</commentid>
    <comment_count>2</comment_count>
      <attachid>449047</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-13 04:43:26 -0800</bug_when>
    <thetext>Created attachment 449047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830866</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-01-14 04:09:09 -0800</bug_when>
    <thetext>Committed r288013 (?): &lt;https://commits.webkit.org/r288013&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448152</attachid>
            <date>2022-01-01 02:57:45 -0800</date>
            <delta_ts>2022-01-13 04:43:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-atspi-clear-cache.diff</filename>
            <type>text/plain</type>
            <size>14633</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNzY1NjVkNTFlZDAuLmNiOGM4NzY3NjNiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDIyLTAxLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVthMTF5XSBVbnJlZ2lzdGVyIG9iamVjdHMgYW5k
IGNsZWFyIGNhY2hlIHdoZW4gbGFzdCBjbGllbnQgZGlzY29ubmVjdCB3aXRoIEFUU1BJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBjdXJyZW50bHkg
cmVnaXN0ZXIgb2JqZWN0cyB3aGVuIHRoZXJlIGFyZSBjbGllbnRzIGFza2luZyBmb3IgY2FjaGVk
IGl0ZW1zIG9yIGNvbm5lY3QgZXZlbnQgbGlzdGVuZXJzLiBXZQorICAgICAgICBjb3VsZCB1bnJl
Z2lzdGVyIHRoZSBvYmplY3RzIGFuZCBjbGVhciB0aGUgY2FjaGUgaWYgYWxsIHRoZSBjbGllbnRz
IGFyZSBkaXNjb25uZWN0ZWQuIFRoaXMgcGF0Y2ggYWRkcyBhIGxvdworICAgICAgICBwcmlvcml0
eSB0aW1lciB0byBjbGVhciB0aGUgY2FjaGUgYW5kIHVucmVnaXN0ZXIgdGhlIG9iamVjdHMgaWYg
dGhlcmUgYXJlbid0IG5ldyBjbGllbnRzIGFmdGVyIDEwIHNlY29uZHMKKyAgICAgICAgc2luY2Ug
dGhlIGxhc3QgY2xpZW50IGRpc2Nvbm5lY3RlZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
YXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlBdHNwaTo6aW5pdGlhbGl6ZVJlZ2lzdHJ5KTogUmVtb3ZlIHRoZSBjYWxscyB0byByZWdp
c3RlclRyZWVzKCksIHNpbmNlIGl0J3Mgbm93IGRvbmUgYnkKKyAgICAgICAgYWRkQ2xpZW50KCkg
d2hlbiB0aGUgZmlyc3QgY2xpZW50IGlzIGFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eUF0c3BpOjphZGRFdmVudExpc3RlbmVyKTogQ2FsbCBhZGRDbGllbnQoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6YWRkQ2xpZW50KTogUmVnaXN0ZXIgdGhl
IHRyZWVzIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGNsaWVudC4gQWRkIHRoZSBjbGllbnQgdG8gdGhl
CisgICAgICAgIG1hcCBhbmQgc3Vic2NyaWJlIHRvIE5hbWVPd25lckNoYW5nZWQgdG8gcmVtb3Zl
IHRoZSBjbGllbnQgd2hlbiBpdCdzIGRpc2Nvbm5lY3RlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlBdHNwaTo6cmVtb3ZlQ2xpZW50KTogUmVtb3ZlIHRoZSBjbGllbnQgYW5kIHN0
YXJ0IHRoZSBjbGVhciBjYWNoZSB0aW1lciBpZiB0aGUgY2xpZW50cworICAgICAgICBtYXAgaXMg
ZW1wdHkuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QXRzcGk6OmNhY2hlQ2xlYXJU
aW1lckZpcmVkKTogVW5yZWdpc3RlciBhbGwgdGhlIG9iamVjdHMgYW5kIGNsZWFyIHRoZSBjYWNo
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6cmVnaXN0ZXJUcmVlcyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmls
aXR5QXRzcGkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6aGFzQ2xp
ZW50cyBjb25zdCk6IFJldHVybiB3aGV0aGVyIHRoZXJlIGFyZSBjbGllbnRzIGNvbm5lY3RlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6aGFzRXZlbnRMaXN0ZW5lcnMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdEF0c3BpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaTo6ZGlkVW5yZWdpc3Rlck9iamVjdCk6IE9iamVjdCB3YXMgdW5yZWdpc3RlcmVkIGJ5
IHRoZSBjbGVhciBjYWNoZSB0aW1lciwKKyAgICAgICAgcmVzZXQgdGhlIHBhdGggYW5kIGlzUmVn
aXN0ZXJlZCBtZW1iZXJzLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdEF0c3BpLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3Np
YmlsaXR5Um9vdEF0c3BpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSb290
QXRzcGk6OnJlZ2lzdGVyVHJlZSk6IFJldHVybiBlYXJseSBpZiBhbHJlYWR5IHJlZ2lzdGVyZWQu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpOjpkaWRVbnJlZ2lzdGVy
VHJlZSk6IFRyZWUgd2FzIHVucmVnaXN0ZXJlZCBieSB0aGUgY2xlYXIgY2FjZWggdGltZXIsIHJl
c2V0IHRoZQorICAgICAgICB0cmVlSXNSZWdpc3RlcmVkIG1lbWJlci4KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSb290QXRzcGk6OmVtYmVkZGVkKTogQ2hlY2sgaWYgdGhlcmUgYXJl
IGNsaWVudHMuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5Um9v
dEF0c3BpLmg6CisKIDIwMjEtMTItMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW2ExMXldIFRha2UgaW50byBhY2NvdW50IHRoZSBh
Y3RpdmUgZGVzY2VuZGFudCB3aGVuIHNldHRpbmcgZm9jdXMgcmVsYXRlZCBzdGF0ZXMgd2l0aCBB
VFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nl
c3NpYmlsaXR5QXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9B
Y2Nlc3NpYmlsaXR5QXRzcGkuY3BwCmluZGV4IDEyM2U2YjFjOWU3NC4uYmMzM2I2ZjdjNDEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxp
dHlBdHNwaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nl
c3NpYmlsaXR5QXRzcGkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KICNpbmNsdWRlIDx3dGYv
VVVJRC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDE1ICs3MSw2IEBAIEFjY2Vzc2liaWxpdHlBdHNw
aSYgQWNjZXNzaWJpbGl0eUF0c3BpOjpjdXJyZW50KCkKICAgICByZXR1cm4gKnNfY3VycmVudEF0
c3BpOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlBdHNwaTo6cmVnaXN0ZXJUcmVlcygpIGNvbnN0
Ci17Ci0gICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBmb3IgKGF1dG8q
IHJvb3RPYmplY3QgOiBtX3Jvb3RPYmplY3RzLmtleXMoKSkgewotICAgICAgICBpZiAoIXJvb3RP
YmplY3QtPmlzVHJlZVJlZ2lzdGVyZWQoKSkKLSAgICAgICAgICAgIHJvb3RPYmplY3QtPnJlZ2lz
dGVyVHJlZSgpOwotICAgIH0KLX0KLQogdm9pZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OmluaXRpYWxp
emVSZWdpc3RyeSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKQEAg
LTk3LDcgKzg5LDYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OmluaXRpYWxpemVSZWdpc3Ry
eSgpCiAgICAgICAgIGlmICghZ19zdHJjbXAwKHNpZ25hbCwgIkV2ZW50TGlzdGVuZXJSZWdpc3Rl
cmVkIikpIHsKICAgICAgICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1ldGVycywgIigmcyZzQGFz
KSIsICZkYnVzTmFtZSwgJmV2ZW50TmFtZSwgbnVsbHB0cik7CiAgICAgICAgICAgICBhdHNwaS0+
YWRkRXZlbnRMaXN0ZW5lcihkYnVzTmFtZSwgZXZlbnROYW1lKTsKLSAgICAgICAgICAgIGF0c3Bp
LT5yZWdpc3RlclRyZWVzKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMChzaWduYWws
ICJFdmVudExpc3RlbmVyRGVyZWdpc3RlcmVkIikpIHsKICAgICAgICAgICAgIGdfdmFyaWFudF9n
ZXQocGFyYW1ldGVycywgIigmcyZzKSIsICZkYnVzTmFtZSwgJmV2ZW50TmFtZSk7CiAgICAgICAg
ICAgICBhdHNwaS0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihkYnVzTmFtZSwgZXZlbnROYW1lKTsKQEAg
LTExMywxNCArMTA0LDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjppbml0aWFsaXplUmVn
aXN0cnkoKQogICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IGV2ZW50czsKICAgICBnX3ZhcmlhbnRfZ2V0
KHJlc3VsdC5nZXQoKSwgIihAYShzcykpIiwgJmV2ZW50cy5vdXRQdHIoKSk7CiAgICAgR1Zhcmlh
bnRJdGVyIGl0ZXI7Ci0gICAgYXV0byBldmVudENvdW50ID0gZ192YXJpYW50X2l0ZXJfaW5pdCgm
aXRlciwgZXZlbnRzLmdldCgpKTsKKyAgICBnX3ZhcmlhbnRfaXRlcl9pbml0KCZpdGVyLCBldmVu
dHMuZ2V0KCkpOwogICAgIGNvbnN0IGNoYXIqIGRidXNOYW1lOwogICAgIGNvbnN0IGNoYXIqIGV2
ZW50TmFtZTsKICAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbG9vcCgmaXRlciwgIigmcyZzKSIs
ICZkYnVzTmFtZSwgJmV2ZW50TmFtZSkpCiAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoZGJ1c05h
bWUsIGV2ZW50TmFtZSk7Ci0KLSAgICBpZiAoZXZlbnRDb3VudCkKLSAgICAgICAgcmVnaXN0ZXJU
cmVlcygpOwogfQogCiBzdGF0aWMgR1VuaXF1ZVB0cjxjaGFyKj4gZXZlbnRDb252ZXJ0aW5nRGV0
YWlsVG9Ob25DYW1lbENhc2UoY29uc3QgY2hhciogZXZlbnROYW1lKQpAQCAtMTU2LDYgKzE0NCw3
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjphZGRFdmVudExpc3RlbmVyKGNvbnN0IGNoYXIq
IGRidXNOYW1lLCBjb25zdCBjaGFyKiBldmVuCiAgICAgICAgIHJldHVybiBWZWN0b3I8R1VuaXF1
ZVB0cjxjaGFyKj4+IHsgfTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiAgICAgbGlzdGVuZXJz
LmFwcGVuZChldmVudENvbnZlcnRpbmdEZXRhaWxUb05vbkNhbWVsQ2FzZShldmVudE5hbWUpKTsK
KyAgICBhZGRDbGllbnQoZGJ1c05hbWUpOwogfQogCiBzdGF0aWMgYm9vbCBldmVudElzU3VidHlw
ZShjaGFyKiogbmVlZGxlLCBjaGFyKiogaGF5c3RhY2spCkBAIC0xOTEsNiArMTgwLDU1IEBAIHZv
aWQgQWNjZXNzaWJpbGl0eUF0c3BpOjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IGNoYXIqIGRi
dXNOYW1lLCBjb25zdCBjaGFyKiBlCiAgICAgICAgIG1fZXZlbnRMaXN0ZW5lcnMucmVtb3ZlKGl0
KTsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OmFkZENsaWVudChjb25zdCBjaGFyKiBk
YnVzTmFtZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIGlm
IChtX2NsaWVudHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAoYXV0byogcm9vdE9iamVjdCA6
IG1fcm9vdE9iamVjdHMua2V5cygpKQorICAgICAgICAgICAgcm9vdE9iamVjdC0+cmVnaXN0ZXJU
cmVlKCk7CisgICAgfQorCisgICAgYXV0byBhZGRSZXN1bHQgPSBtX2NsaWVudHMuYWRkKGRidXNO
YW1lLCAwKTsKKyAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2NhY2hlQ2xlYXJUaW1lciA9IG51bGxwdHI7CisKKyAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlID0gZ19kYnVzX2Nvbm5lY3Rpb25fc2lnbmFsX3N1YnNjcmliZShtX2Nvbm5l
Y3Rpb24uZ2V0KCksIG51bGxwdHIsICJvcmcuZnJlZWRlc2t0b3AuREJ1cyIsICJOYW1lT3duZXJD
aGFuZ2VkIiwgbnVsbHB0ciwgZGJ1c05hbWUsCisgICAgICAgIEdfREJVU19TSUdOQUxfRkxBR1Nf
TUFUQ0hfQVJHMF9OQU1FU1BBQ0UsIFtdKEdEQnVzQ29ubmVjdGlvbiosIGNvbnN0IGdjaGFyKiwg
Y29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciosIGNvbnN0IGdjaGFyKiwgR1ZhcmlhbnQqIHBhcmFt
ZXRlcnMsIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgICAgICBhdXRvJiBhdHNwaSA9ICpz
dGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5QXRzcGkqPih1c2VyRGF0YSk7CisgICAgICAgICAgICBj
b25zdCBjaGFyKiBpbnRlcmZhY2U7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBvbGROYW1lOwor
ICAgICAgICAgICAgY29uc3QgY2hhciogbmV3TmFtZTsKKyAgICAgICAgICAgIGdfdmFyaWFudF9n
ZXQocGFyYW1ldGVycywgIigmcyZzJnMpIiwgJmludGVyZmFjZSwgJm9sZE5hbWUsICZuZXdOYW1l
KTsKKyAgICAgICAgICAgIGlmICgqb2xkTmFtZSAhPSAnXDAnICYmICpuZXdOYW1lID09ICdcMCcp
CisgICAgICAgICAgICAgICAgYXRzcGkucmVtb3ZlQ2xpZW50KG9sZE5hbWUpOworICAgICAgICB9
LCB0aGlzLCBudWxscHRyKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OnJlbW92ZUNs
aWVudChjb25zdCBjaGFyKiBkYnVzTmFtZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworICAgIGF1dG8gaWQgPSBtX2NsaWVudHMudGFrZShkYnVzTmFtZSk7CisgICAg
aWYgKCFpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19kYnVzX2Nvbm5lY3Rpb25fc2lnbmFs
X3Vuc3Vic2NyaWJlKG1fY29ubmVjdGlvbi5nZXQoKSwgaWQpOworCisgICAgaWYgKCFtX2NsaWVu
dHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NhY2hlVXBkYXRlTGlzdC5j
bGVhcigpOworICAgIG1fY2FjaGVVcGRhdGVUaW1lci0+c3RvcCgpOworCisgICAgaWYgKCFtX2Nh
Y2hlQ2xlYXJUaW1lcikgeworICAgICAgICBtX2NhY2hlQ2xlYXJUaW1lciA9IG1ha2VVbmlxdWU8
UnVuTG9vcDo6VGltZXI8QWNjZXNzaWJpbGl0eUF0c3BpPj4oUnVuTG9vcDo6Y3VycmVudCgpLCB0
aGlzLCAmQWNjZXNzaWJpbGl0eUF0c3BpOjpjYWNoZUNsZWFyVGltZXJGaXJlZCk7CisgICAgICAg
IG1fY2FjaGVDbGVhclRpbWVyLT5zZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OlJl
bGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lcik7CisgICAgfQorCisgICAgbV9jYWNoZUNsZWFyVGlt
ZXItPnN0YXJ0T25lU2hvdCgxMF9zKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5QXRzcGk6OnNo
b3VsZEVtaXRTaWduYWwoY29uc3QgY2hhciogaW50ZXJmYWNlLCBjb25zdCBjaGFyKiBuYW1lLCBj
b25zdCBjaGFyKiBkZXRhaWwpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKQEAgLTcxNCwxNSArNzUyLDE1IEBAIGNvbnN0IGNoYXIqIEFjY2Vzc2liaWxpdHlBdHNwaTo6
bG9jYWxpemVkUm9sZU5hbWUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKIAogR0RCdXNJbnRlcmZh
Y2VWVGFibGUgQWNjZXNzaWJpbGl0eUF0c3BpOjpzX2NhY2hlRnVuY3Rpb25zID0gewogICAgIC8v
IG1ldGhvZF9jYWxsCi0gICAgW10oR0RCdXNDb25uZWN0aW9uKiwgY29uc3QgZ2NoYXIqLCBjb25z
dCBnY2hhciosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqIG1ldGhvZE5hbWUsIEdWYXJpYW50
KiwgR0RCdXNNZXRob2RJbnZvY2F0aW9uKiBpbnZvY2F0aW9uLCBncG9pbnRlciB1c2VyRGF0YSkg
eworICAgIFtdKEdEQnVzQ29ubmVjdGlvbiosIGNvbnN0IGdjaGFyKiBzZW5kZXIsIGNvbnN0IGdj
aGFyKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciogbWV0aG9kTmFtZSwgR1ZhcmlhbnQqLCBH
REJ1c01ldGhvZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2ludGVyIHVzZXJEYXRhKSB7CiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIGlmICghZ19z
dHJjbXAwKG1ldGhvZE5hbWUsICJHZXRJdGVtcyIpKSB7CiAgICAgICAgICAgICBhdXRvJiBhdHNw
aSA9ICpzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5QXRzcGkqPih1c2VyRGF0YSk7CisgICAgICAg
ICAgICBhdHNwaS5hZGRDbGllbnQoc2VuZGVyKTsKICAgICAgICAgICAgIEdWYXJpYW50QnVpbGRl
ciBidWlsZGVyID0gR19WQVJJQU5UX0JVSUxERVJfSU5JVChHX1ZBUklBTlRfVFlQRSgiKCIgR0VU
X0lURU1TX1NJR05BVFVSRSAiKSIpKTsKICAgICAgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX29w
ZW4oJmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKEdFVF9JVEVNU19TSUdOQVRVUkUpKTsKICAgICAg
ICAgICAgIGZvciAoYXV0byogcm9vdE9iamVjdCA6IGF0c3BpLm1fcm9vdE9iamVjdHMua2V5cygp
KSB7CiAgICAgICAgICAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfb3BlbigmYnVpbGRlciwgR19W
QVJJQU5UX1RZUEUoIigiIElURU1fU0lHTkFUVVJFICIpIikpOwotICAgICAgICAgICAgICAgIHJv
b3RPYmplY3QtPnJlZ2lzdGVyVHJlZSgpOwogICAgICAgICAgICAgICAgIHJvb3RPYmplY3QtPnNl
cmlhbGl6ZSgmYnVpbGRlcik7CiAgICAgICAgICAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfY2xv
c2UoJmJ1aWxkZXIpOwogICAgICAgICAgICAgfQpAQCAtODI3LDYgKzg2NSwzMSBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlBdHNwaTo6cmVtb3ZlQWNjZXNzaWJsZShBY2Nlc3NpYmlsaXR5T2JqZWN0QXRz
cGkmIGF0c3BpT2JqZWN0KQogICAgICAgICBnX3ZhcmlhbnRfbmV3KCIoKHNvKSkiLCB1bmlxdWVO
YW1lKCksIHBhdGgudXRmOCgpLmRhdGEoKSksIG51bGxwdHIpOwogfQogCit2b2lkIEFjY2Vzc2li
aWxpdHlBdHNwaTo6Y2FjaGVDbGVhclRpbWVyRmlyZWQoKQoreworICAgIGZvciAoY29uc3QgYXV0
byYgcmVnaXN0ZXJlZE9iamVjdHMgOiBtX2F0c3BpSHlwZXJsaW5rcy52YWx1ZXMoKSkgeworICAg
ICAgICBmb3IgKGF1dG8gaWQgOiByZWdpc3RlcmVkT2JqZWN0cykKKyAgICAgICAgICAgIGdfZGJ1
c19jb25uZWN0aW9uX3VucmVnaXN0ZXJfb2JqZWN0KG1fY29ubmVjdGlvbi5nZXQoKSwgaWQpOwor
ICAgIH0KKyAgICBtX2F0c3BpSHlwZXJsaW5rcy5jbGVhcigpOworICAgIGZvciAoY29uc3QgYXV0
byYgaXQgOiBtX2F0c3BpT2JqZWN0cykgeworICAgICAgICBmb3IgKGF1dG8gaWQgOiBpdC52YWx1
ZSkKKyAgICAgICAgICAgIGdfZGJ1c19jb25uZWN0aW9uX3VucmVnaXN0ZXJfb2JqZWN0KG1fY29u
bmVjdGlvbi5nZXQoKSwgaWQpOworCisgICAgICAgIGl0LmtleS0+ZGlkVW5yZWdpc3Rlck9iamVj
dCgpOworICAgIH0KKyAgICBtX2F0c3BpT2JqZWN0cy5jbGVhcigpOworCisgICAgZm9yIChhdXRv
KiByb290T2JqZWN0IDogbV9yb290T2JqZWN0cy5rZXlzKCkpCisgICAgICAgIHJvb3RPYmplY3Qt
PmRpZFVucmVnaXN0ZXJUcmVlKCk7CisKKyAgICBtX2NhY2hlLmNsZWFyKCk7CisKKyAgICBSRUxF
QVNFX0FTU0VSVChtX2NhY2hlVXBkYXRlTGlzdC5pc0VtcHR5KCkpOworICAgIG1fY2FjaGVVcGRh
dGVUaW1lciA9IG51bGxwdHI7CisgICAgbV9jYWNoZUNsZWFyVGltZXIgPSBudWxscHRyOworfQor
CiBuYW1lc3BhY2UgQWNjZXNzaWJpbGl0eSB7CiAKIFBsYXRmb3JtUm9sZU1hcCBjcmVhdGVQbGF0
Zm9ybVJvbGVNYXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmgKaW5kZXggYzBlY2Q4ZTUwMTgwLi4xZjBjMTBkMmZj
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNz
aWJpbGl0eUF0c3BpLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9B
Y2Nlc3NpYmlsaXR5QXRzcGkuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
Y2hhciogdW5pcXVlTmFtZSgpIGNvbnN0OwogICAgIEdWYXJpYW50KiBudWxsUmVmZXJlbmNlKCkg
Y29uc3Q7CiAgICAgR1ZhcmlhbnQqIGFwcGxpY2F0aW9uUmVmZXJlbmNlKCkgY29uc3Q7Ci0gICAg
Ym9vbCBoYXNFdmVudExpc3RlbmVycygpIGNvbnN0IHsgcmV0dXJuICFtX2V2ZW50TGlzdGVuZXJz
LmlzRW1wdHkoKTsgfQorICAgIGJvb2wgaGFzQ2xpZW50cygpIGNvbnN0IHsgcmV0dXJuICFtX2Ns
aWVudHMuaXNFbXB0eSgpOyB9CiAKICAgICB2b2lkIHJlZ2lzdGVyUm9vdChBY2Nlc3NpYmlsaXR5
Um9vdEF0c3BpJiwgVmVjdG9yPHN0ZDo6cGFpcjxHREJ1c0ludGVyZmFjZUluZm8qLCBHREJ1c0lu
dGVyZmFjZVZUYWJsZSo+PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYp
PiYmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJSb290KEFjY2Vzc2liaWxpdHlSb290QXRzcGkmKTsK
QEAgLTkyLDE1ICs5MiwxNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lk
IHJlZ2lzdGVyVHJlZXMoKSBjb25zdDsKICAgICB2b2lkIGluaXRpYWxpemVSZWdpc3RyeSgpOwog
ICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBjaGFyKiBkYnVzTmFtZSwgY29uc3QgY2hh
ciogZXZlbnROYW1lKTsKICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgY2hhciog
ZGJ1c05hbWUsIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSk7CisgICAgdm9pZCBhZGRDbGllbnQoY29u
c3QgY2hhciogZGJ1c05hbWUpOworICAgIHZvaWQgcmVtb3ZlQ2xpZW50KGNvbnN0IGNoYXIqIGRi
dXNOYW1lKTsKIAogICAgIHZvaWQgZW5zdXJlQ2FjaGUoKTsKICAgICB2b2lkIHJlbW92ZUFjY2Vz
c2libGUoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7CiAgICAgdm9pZCBzY2hlZHVsZUNhY2hl
VXBkYXRlKCk7CiAgICAgdm9pZCBjYWNoZVVwZGF0ZVRpbWVyRmlyZWQoKTsKKyAgICB2b2lkIGNh
Y2hlQ2xlYXJUaW1lckZpcmVkKCk7CiAKICAgICBib29sIHNob3VsZEVtaXRTaWduYWwoY29uc3Qg
Y2hhciogaW50ZXJmYWNlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBkZXRhaWwgPSAi
Iik7CiAKQEAgLTEyMywxMCArMTI1LDEyIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxBY2Nlc3Np
YmlsaXR5Um9vdEF0c3BpKiwgVmVjdG9yPHVuc2lnbmVkLCAyPj4gbV9yb290T2JqZWN0czsKICAg
ICBIYXNoTWFwPEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSosIFZlY3Rvcjx1bnNpZ25lZCwgMjA+
PiBtX2F0c3BpT2JqZWN0czsKICAgICBIYXNoTWFwPEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSos
IFZlY3Rvcjx1bnNpZ25lZCwgMjA+PiBtX2F0c3BpSHlwZXJsaW5rczsKKyAgICBIYXNoTWFwPENT
dHJpbmcsIHVuc2lnbmVkPiBtX2NsaWVudHM7CiAgICAgdW5zaWduZWQgbV9jYWNoZUlEIHsgMCB9
OwogICAgIEhhc2hNYXA8U3RyaW5nLCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPiBtX2NhY2hl
OwogICAgIExpc3RIYXNoU2V0PFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk+PiBtX2Nh
Y2hlVXBkYXRlTGlzdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGltZXI8QWNjZXNz
aWJpbGl0eUF0c3BpPj4gbV9jYWNoZVVwZGF0ZVRpbWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxS
dW5Mb29wOjpUaW1lcjxBY2Nlc3NpYmlsaXR5QXRzcGk+PiBtX2NhY2hlQ2xlYXJUaW1lcjsKICNp
ZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCiAgICAgSGFzaE1hcDx2b2lkKiwgTm90aWZpY2F0aW9u
T2JzZXJ2ZXI+IG1fbm90aWZpY2F0aW9uT2JzZXJ2ZXJzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNw
aS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlP
YmplY3RBdHNwaS5jcHAKaW5kZXggOTAwMzIwMTk1YzUxLi4yY2QzNjlkY2U2NTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVj
dEF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaS5jcHAKQEAgLTU0Myw2ICs1NDMsMTIgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0QXRzcGk6OnJlZ2lzdGVyT2JqZWN0KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmRpZFVucmVnaXN0ZXJPYmplY3QoKQor
eworICAgIG1faXNSZWdpc3RlcmVkLnN0b3JlKGZhbHNlKTsKKyAgICBtX3BhdGggPSB7IH07Cit9
CisKIGNvbnN0IFN0cmluZyYgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpwYXRoKCkKIHsKICAg
ICBSRUxFQVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3Bp
LmgKaW5kZXggZDIzOWY3NzAxNWExLi41NWI5OTNkMDU0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGkuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHJlZ2lzdGVyT2Jq
ZWN0KCk7CiAgICAgYm9vbCBpc1RyZWVSZWdpc3RlcmVkKCkgY29uc3Q7CisgICAgdm9pZCBkaWRV
bnJlZ2lzdGVyT2JqZWN0KCk7CiAKICAgICBlbnVtIGNsYXNzIEludGVyZmFjZSA6IHVpbnQxNl90
IHsKICAgICAgICAgQWNjZXNzaWJsZSA9IDEgPDwgMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuY3Bw
CmluZGV4IGI0Yzc2NTE2N2M1NC4uYmVlMzYwZTkzODg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNw
aS5jcHAKQEAgLTIwNSwxMiArMjA1LDIwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJvb3RBdHNwaTo6
cmVnaXN0ZXJUcmVlKCkKICAgICBpZiAobV9wYXJlbnRVbmlxdWVOYW1lLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm47CiAKKyAgICBpZiAobV9pc1RyZWVSZWdpc3RlcmVkLmxvYWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgcmVnaXN0ZXJTdWJ0cmVlKEFjY2Vzc2liaWxpdHk6OnJldHJpZXZl
VmFsdWVGcm9tTWFpblRocmVhZDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPihbdGhpc10oKSAt
PiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqIHsKICAgICAgICAgcmV0dXJuIGNoaWxkKCk7CiAg
ICAgfSkpOwogICAgIG1faXNUcmVlUmVnaXN0ZXJlZC5zdG9yZSh0cnVlKTsKIH0KIAordm9pZCBB
Y2Nlc3NpYmlsaXR5Um9vdEF0c3BpOjpkaWRVbnJlZ2lzdGVyVHJlZSgpCit7CisgICAgbV9pc1Ry
ZWVSZWdpc3RlcmVkLnN0b3JlKGZhbHNlKTsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5Um9vdEF0
c3BpOjpzZXRQYXRoKFN0cmluZyYmIHBhdGgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKQEAgLTIyMyw3ICsyMzEsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSb290QXRz
cGk6OmVtYmVkZGVkKGNvbnN0IGNoYXIqIHBhcmVudFVuaXF1ZU5hbWUsIGNvbnN0IGNoYXIqCiAg
ICAgbV9wYXJlbnRVbmlxdWVOYW1lID0gcGFyZW50VW5pcXVlTmFtZTsKICAgICBtX3BhcmVudFBh
dGggPSBwYXJlbnRQYXRoOwogICAgIEFjY2Vzc2liaWxpdHlBdHNwaTo6Y3VycmVudCgpLnBhcmVu
dENoYW5nZWQoKnRoaXMpOwotICAgIGlmICghbV9pc1RyZWVSZWdpc3RlcmVkLmxvYWQoKSAmJiBB
Y2Nlc3NpYmlsaXR5QXRzcGk6OmN1cnJlbnQoKS5oYXNFdmVudExpc3RlbmVycygpKQorICAgIGlm
IChBY2Nlc3NpYmlsaXR5QXRzcGk6OmN1cnJlbnQoKS5oYXNDbGllbnRzKCkpCiAgICAgICAgIHJl
Z2lzdGVyVHJlZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5oCmluZGV4IGYyMWQ4ODY2ODQy
Zi4uNDA3ZTcxNGQ0MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuaApAQCAtNDIsNiArNDIsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rlck9iamVjdChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJPYmplY3QoKTsKICAgICB2
b2lkIHJlZ2lzdGVyVHJlZSgpOworICAgIHZvaWQgZGlkVW5yZWdpc3RlclRyZWUoKTsKICAgICBi
b29sIGlzVHJlZVJlZ2lzdGVyZWQoKSBjb25zdCB7IHJldHVybiBtX2lzVHJlZVJlZ2lzdGVyZWQu
bG9hZCgpOyB9CiAgICAgdm9pZCBzZXRQYXRoKFN0cmluZyYmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449047</attachid>
            <date>2022-01-13 04:43:26 -0800</date>
            <delta_ts>2022-01-14 03:57:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-atspi-unregister.diff</filename>
            <type>text/plain</type>
            <size>14705</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MGUzMTg2Nzc0ZjcuLjQyMTcyMWZmNGFjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDIyLTAxLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVthMTF5XSBVbnJlZ2lzdGVyIG9iamVjdHMgYW5k
IGNsZWFyIGNhY2hlIHdoZW4gbGFzdCBjbGllbnQgZGlzY29ubmVjdCB3aXRoIEFUU1BJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBjdXJyZW50bHkg
cmVnaXN0ZXIgb2JqZWN0cyB3aGVuIHRoZXJlIGFyZSBjbGllbnRzIGFza2luZyBmb3IgY2FjaGVk
IGl0ZW1zIG9yIGNvbm5lY3QgZXZlbnQgbGlzdGVuZXJzLiBXZQorICAgICAgICBjb3VsZCB1bnJl
Z2lzdGVyIHRoZSBvYmplY3RzIGFuZCBjbGVhciB0aGUgY2FjaGUgaWYgYWxsIHRoZSBjbGllbnRz
IGFyZSBkaXNjb25uZWN0ZWQuIFRoaXMgcGF0Y2ggYWRkcyBhIGxvdworICAgICAgICBwcmlvcml0
eSB0aW1lciB0byBjbGVhciB0aGUgY2FjaGUgYW5kIHVucmVnaXN0ZXIgdGhlIG9iamVjdHMgaWYg
dGhlcmUgYXJlbid0IG5ldyBjbGllbnRzIGFmdGVyIDEwIHNlY29uZHMKKyAgICAgICAgc2luY2Ug
dGhlIGxhc3QgY2xpZW50IGRpc2Nvbm5lY3RlZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
YXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlBdHNwaTo6aW5pdGlhbGl6ZVJlZ2lzdHJ5KTogUmVtb3ZlIHRoZSBjYWxscyB0byByZWdp
c3RlclRyZWVzKCksIHNpbmNlIGl0J3Mgbm93IGRvbmUgYnkKKyAgICAgICAgYWRkQ2xpZW50KCkg
d2hlbiB0aGUgZmlyc3QgY2xpZW50IGlzIGFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eUF0c3BpOjphZGRFdmVudExpc3RlbmVyKTogQ2FsbCBhZGRDbGllbnQoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6YWRkQ2xpZW50KTogUmVnaXN0ZXIgdGhl
IHRyZWVzIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGNsaWVudC4gQWRkIHRoZSBjbGllbnQgdG8gdGhl
CisgICAgICAgIG1hcCBhbmQgc3Vic2NyaWJlIHRvIE5hbWVPd25lckNoYW5nZWQgdG8gcmVtb3Zl
IHRoZSBjbGllbnQgd2hlbiBpdCdzIGRpc2Nvbm5lY3RlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlBdHNwaTo6cmVtb3ZlQ2xpZW50KTogUmVtb3ZlIHRoZSBjbGllbnQgYW5kIHN0
YXJ0IHRoZSBjbGVhciBjYWNoZSB0aW1lciBpZiB0aGUgY2xpZW50cworICAgICAgICBtYXAgaXMg
ZW1wdHkuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QXRzcGk6OmNhY2hlQ2xlYXJU
aW1lckZpcmVkKTogVW5yZWdpc3RlciBhbGwgdGhlIG9iamVjdHMgYW5kIGNsZWFyIHRoZSBjYWNo
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6cmVnaXN0ZXJUcmVlcyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmls
aXR5QXRzcGkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6aGFzQ2xp
ZW50cyBjb25zdCk6IFJldHVybiB3aGV0aGVyIHRoZXJlIGFyZSBjbGllbnRzIGNvbm5lY3RlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6aGFzRXZlbnRMaXN0ZW5lcnMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdEF0c3BpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaTo6ZGlkVW5yZWdpc3Rlck9iamVjdCk6IE9iamVjdCB3YXMgdW5yZWdpc3RlcmVkIGJ5
IHRoZSBjbGVhciBjYWNoZSB0aW1lciwKKyAgICAgICAgcmVzZXQgdGhlIHBhdGggYW5kIGlzUmVn
aXN0ZXJlZCBtZW1iZXJzLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdEF0c3BpLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3Np
YmlsaXR5Um9vdEF0c3BpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSb290
QXRzcGk6OnJlZ2lzdGVyVHJlZSk6IFJldHVybiBlYXJseSBpZiBhbHJlYWR5IHJlZ2lzdGVyZWQu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpOjpkaWRVbnJlZ2lzdGVy
VHJlZSk6IFRyZWUgd2FzIHVucmVnaXN0ZXJlZCBieSB0aGUgY2xlYXIgY2FjZWggdGltZXIsIHJl
c2V0IHRoZQorICAgICAgICB0cmVlSXNSZWdpc3RlcmVkIG1lbWJlci4KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSb290QXRzcGk6OmVtYmVkZGVkKTogQ2hlY2sgaWYgdGhlcmUgYXJl
IGNsaWVudHMuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5Um9v
dEF0c3BpLmg6CisKIDIwMjItMDEtMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW2ExMXldIERlZmVyIHRoZSBlbWlzc2lvbiBvZiBB
ZGRBY2Nlc3NpYmxlIHNpZ25hbCB3aXRoIEFUU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAKaW5kZXggMjk0
YTk5OTBhNDRkLi4xYmQ4YjJkZTE0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU29y
dGVkQXJyYXlNYXAuaD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYz
LDE1ICs2NCw2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjpjb25uZWN0KGNvbnN0IFN0cmlu
ZyYgYnVzQWRkcmVzcykKICAgICB9KTsKIH0KIAotdm9pZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OnJl
Z2lzdGVyVHJlZXMoKSBjb25zdAotewotICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7Ci0gICAgZm9yIChhdXRvKiByb290T2JqZWN0IDogbV9yb290T2JqZWN0cy5rZXlzKCkpIHsK
LSAgICAgICAgaWYgKCFyb290T2JqZWN0LT5pc1RyZWVSZWdpc3RlcmVkKCkpCi0gICAgICAgICAg
ICByb290T2JqZWN0LT5yZWdpc3RlclRyZWUoKTsKLSAgICB9Ci19Ci0KIHZvaWQgQWNjZXNzaWJp
bGl0eUF0c3BpOjppbml0aWFsaXplUmVnaXN0cnkoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CkBAIC05MCw3ICs4Miw2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3Bp
Ojppbml0aWFsaXplUmVnaXN0cnkoKQogICAgICAgICBpZiAoIWdfc3RyY21wMChzaWduYWwsICJF
dmVudExpc3RlbmVyUmVnaXN0ZXJlZCIpKSB7CiAgICAgICAgICAgICBnX3ZhcmlhbnRfZ2V0KHBh
cmFtZXRlcnMsICIoJnMmc0BhcykiLCAmZGJ1c05hbWUsICZldmVudE5hbWUsIG51bGxwdHIpOwog
ICAgICAgICAgICAgYXRzcGktPmFkZEV2ZW50TGlzdGVuZXIoZGJ1c05hbWUsIGV2ZW50TmFtZSk7
Ci0gICAgICAgICAgICBhdHNwaS0+cmVnaXN0ZXJUcmVlcygpOwogICAgICAgICB9IGVsc2UgaWYg
KCFnX3N0cmNtcDAoc2lnbmFsLCAiRXZlbnRMaXN0ZW5lckRlcmVnaXN0ZXJlZCIpKSB7CiAgICAg
ICAgICAgICBnX3ZhcmlhbnRfZ2V0KHBhcmFtZXRlcnMsICIoJnMmcykiLCAmZGJ1c05hbWUsICZl
dmVudE5hbWUpOwogICAgICAgICAgICAgYXRzcGktPnJlbW92ZUV2ZW50TGlzdGVuZXIoZGJ1c05h
bWUsIGV2ZW50TmFtZSk7CkBAIC0xMDYsMTQgKzk3LDExIEBAIHZvaWQgQWNjZXNzaWJpbGl0eUF0
c3BpOjppbml0aWFsaXplUmVnaXN0cnkoKQogICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IGV2ZW50czsK
ICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIihAYShzcykpIiwgJmV2ZW50cy5vdXRQ
dHIoKSk7CiAgICAgR1ZhcmlhbnRJdGVyIGl0ZXI7Ci0gICAgYXV0byBldmVudENvdW50ID0gZ192
YXJpYW50X2l0ZXJfaW5pdCgmaXRlciwgZXZlbnRzLmdldCgpKTsKKyAgICBnX3ZhcmlhbnRfaXRl
cl9pbml0KCZpdGVyLCBldmVudHMuZ2V0KCkpOwogICAgIGNvbnN0IGNoYXIqIGRidXNOYW1lOwog
ICAgIGNvbnN0IGNoYXIqIGV2ZW50TmFtZTsKICAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbG9v
cCgmaXRlciwgIigmcyZzKSIsICZkYnVzTmFtZSwgJmV2ZW50TmFtZSkpCiAgICAgICAgIGFkZEV2
ZW50TGlzdGVuZXIoZGJ1c05hbWUsIGV2ZW50TmFtZSk7Ci0KLSAgICBpZiAoZXZlbnRDb3VudCkK
LSAgICAgICAgcmVnaXN0ZXJUcmVlcygpOwogfQogCiBzdGF0aWMgR1VuaXF1ZVB0cjxjaGFyKj4g
ZXZlbnRDb252ZXJ0aW5nRGV0YWlsVG9Ob25DYW1lbENhc2UoY29uc3QgY2hhciogZXZlbnROYW1l
KQpAQCAtMTQ5LDYgKzEzNyw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjphZGRFdmVudExp
c3RlbmVyKGNvbnN0IGNoYXIqIGRidXNOYW1lLCBjb25zdCBjaGFyKiBldmVuCiAgICAgICAgIHJl
dHVybiBWZWN0b3I8R1VuaXF1ZVB0cjxjaGFyKj4+IHsgfTsKICAgICB9KS5pdGVyYXRvci0+dmFs
dWU7CiAgICAgbGlzdGVuZXJzLmFwcGVuZChldmVudENvbnZlcnRpbmdEZXRhaWxUb05vbkNhbWVs
Q2FzZShldmVudE5hbWUpKTsKKyAgICBhZGRDbGllbnQoZGJ1c05hbWUpOwogfQogCiBzdGF0aWMg
Ym9vbCBldmVudElzU3VidHlwZShjaGFyKiogbmVlZGxlLCBjaGFyKiogaGF5c3RhY2spCkBAIC0x
ODQsNiArMTczLDU1IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjpyZW1vdmVFdmVudExpc3Rl
bmVyKGNvbnN0IGNoYXIqIGRidXNOYW1lLCBjb25zdCBjaGFyKiBlCiAgICAgICAgIG1fZXZlbnRM
aXN0ZW5lcnMucmVtb3ZlKGl0KTsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OmFkZENs
aWVudChjb25zdCBjaGFyKiBkYnVzTmFtZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAo
YXV0byogcm9vdE9iamVjdCA6IG1fcm9vdE9iamVjdHMua2V5cygpKQorICAgICAgICAgICAgcm9v
dE9iamVjdC0+cmVnaXN0ZXJUcmVlKCk7CisgICAgfQorCisgICAgYXV0byBhZGRSZXN1bHQgPSBt
X2NsaWVudHMuYWRkKGRidXNOYW1lLCAwKTsKKyAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NhY2hlQ2xlYXJUaW1lciA9IG51bGxwdHI7CisK
KyAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gZ19kYnVzX2Nvbm5lY3Rpb25fc2lnbmFs
X3N1YnNjcmliZShtX2Nvbm5lY3Rpb24uZ2V0KCksIG51bGxwdHIsICJvcmcuZnJlZWRlc2t0b3Au
REJ1cyIsICJOYW1lT3duZXJDaGFuZ2VkIiwgbnVsbHB0ciwgZGJ1c05hbWUsCisgICAgICAgIEdf
REJVU19TSUdOQUxfRkxBR1NfTUFUQ0hfQVJHMF9OQU1FU1BBQ0UsIFtdKEdEQnVzQ29ubmVjdGlv
biosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciosIGNvbnN0IGdjaGFy
KiwgR1ZhcmlhbnQqIHBhcmFtZXRlcnMsIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgICAg
ICBhdXRvJiBhdHNwaSA9ICpzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5QXRzcGkqPih1c2VyRGF0
YSk7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBpbnRlcmZhY2U7CisgICAgICAgICAgICBjb25z
dCBjaGFyKiBvbGROYW1lOworICAgICAgICAgICAgY29uc3QgY2hhciogbmV3TmFtZTsKKyAgICAg
ICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1ldGVycywgIigmcyZzJnMpIiwgJmludGVyZmFjZSwg
Jm9sZE5hbWUsICZuZXdOYW1lKTsKKyAgICAgICAgICAgIGlmICgqb2xkTmFtZSAhPSAnXDAnICYm
ICpuZXdOYW1lID09ICdcMCcpCisgICAgICAgICAgICAgICAgYXRzcGkucmVtb3ZlQ2xpZW50KG9s
ZE5hbWUpOworICAgICAgICB9LCB0aGlzLCBudWxscHRyKTsKK30KKwordm9pZCBBY2Nlc3NpYmls
aXR5QXRzcGk6OnJlbW92ZUNsaWVudChjb25zdCBjaGFyKiBkYnVzTmFtZSkKK3sKKyAgICBSRUxF
QVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8gaWQgPSBtX2NsaWVudHMudGFr
ZShkYnVzTmFtZSk7CisgICAgaWYgKCFpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19kYnVz
X2Nvbm5lY3Rpb25fc2lnbmFsX3Vuc3Vic2NyaWJlKG1fY29ubmVjdGlvbi5nZXQoKSwgaWQpOwor
CisgICAgaWYgKCFtX2NsaWVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2NhY2hlVXBkYXRlTGlzdC5jbGVhcigpOworICAgIG1fY2FjaGVVcGRhdGVUaW1lci0+c3RvcCgp
OworCisgICAgaWYgKCFtX2NhY2hlQ2xlYXJUaW1lcikgeworICAgICAgICBtX2NhY2hlQ2xlYXJU
aW1lciA9IG1ha2VVbmlxdWU8UnVuTG9vcDo6VGltZXI8QWNjZXNzaWJpbGl0eUF0c3BpPj4oUnVu
TG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmQWNjZXNzaWJpbGl0eUF0c3BpOjpjYWNoZUNsZWFyVGlt
ZXJGaXJlZCk7CisgICAgICAgIG1fY2FjaGVDbGVhclRpbWVyLT5zZXRQcmlvcml0eShSdW5Mb29w
U291cmNlUHJpb3JpdHk6OlJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lcik7CisgICAgfQorCisg
ICAgbV9jYWNoZUNsZWFyVGltZXItPnN0YXJ0T25lU2hvdCgxMF9zKTsKK30KKwogYm9vbCBBY2Nl
c3NpYmlsaXR5QXRzcGk6OnNob3VsZEVtaXRTaWduYWwoY29uc3QgY2hhciogaW50ZXJmYWNlLCBj
b25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBkZXRhaWwpCiB7CiAgICAgUkVMRUFTRV9BU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKQEAgLTcyNCwxNSArNzYyLDE1IEBAIGNvbnN0IGNoYXIqIEFj
Y2Vzc2liaWxpdHlBdHNwaTo6bG9jYWxpemVkUm9sZU5hbWUoQWNjZXNzaWJpbGl0eVJvbGUgcm9s
ZSkKIAogR0RCdXNJbnRlcmZhY2VWVGFibGUgQWNjZXNzaWJpbGl0eUF0c3BpOjpzX2NhY2hlRnVu
Y3Rpb25zID0gewogICAgIC8vIG1ldGhvZF9jYWxsCi0gICAgW10oR0RCdXNDb25uZWN0aW9uKiwg
Y29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqIG1l
dGhvZE5hbWUsIEdWYXJpYW50KiwgR0RCdXNNZXRob2RJbnZvY2F0aW9uKiBpbnZvY2F0aW9uLCBn
cG9pbnRlciB1c2VyRGF0YSkgeworICAgIFtdKEdEQnVzQ29ubmVjdGlvbiosIGNvbnN0IGdjaGFy
KiBzZW5kZXIsIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciogbWV0aG9k
TmFtZSwgR1ZhcmlhbnQqLCBHREJ1c01ldGhvZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2lu
dGVyIHVzZXJEYXRhKSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CiAgICAgICAgIGlmICghZ19zdHJjbXAwKG1ldGhvZE5hbWUsICJHZXRJdGVtcyIpKSB7CiAgICAg
ICAgICAgICBhdXRvJiBhdHNwaSA9ICpzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5QXRzcGkqPih1
c2VyRGF0YSk7CisgICAgICAgICAgICBhdHNwaS5hZGRDbGllbnQoc2VuZGVyKTsKICAgICAgICAg
ICAgIEdWYXJpYW50QnVpbGRlciBidWlsZGVyID0gR19WQVJJQU5UX0JVSUxERVJfSU5JVChHX1ZB
UklBTlRfVFlQRSgiKCIgR0VUX0lURU1TX1NJR05BVFVSRSAiKSIpKTsKICAgICAgICAgICAgIGdf
dmFyaWFudF9idWlsZGVyX29wZW4oJmJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKEdFVF9JVEVNU19T
SUdOQVRVUkUpKTsKICAgICAgICAgICAgIGZvciAoYXV0byogcm9vdE9iamVjdCA6IGF0c3BpLm1f
cm9vdE9iamVjdHMua2V5cygpKSB7CiAgICAgICAgICAgICAgICAgZ192YXJpYW50X2J1aWxkZXJf
b3BlbigmYnVpbGRlciwgR19WQVJJQU5UX1RZUEUoIigiIElURU1fU0lHTkFUVVJFICIpIikpOwot
ICAgICAgICAgICAgICAgIHJvb3RPYmplY3QtPnJlZ2lzdGVyVHJlZSgpOwogICAgICAgICAgICAg
ICAgIHJvb3RPYmplY3QtPnNlcmlhbGl6ZSgmYnVpbGRlcik7CiAgICAgICAgICAgICAgICAgZ192
YXJpYW50X2J1aWxkZXJfY2xvc2UoJmJ1aWxkZXIpOwogICAgICAgICAgICAgfQpAQCAtODQxLDYg
Kzg3OSwzMSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlBdHNwaTo6cmVtb3ZlQWNjZXNzaWJsZShBY2Nl
c3NpYmlsaXR5T2JqZWN0QXRzcGkmIGF0c3BpT2JqZWN0KQogICAgICAgICBnX3ZhcmlhbnRfbmV3
KCIoKHNvKSkiLCB1bmlxdWVOYW1lKCksIHBhdGgudXRmOCgpLmRhdGEoKSksIG51bGxwdHIpOwog
fQogCit2b2lkIEFjY2Vzc2liaWxpdHlBdHNwaTo6Y2FjaGVDbGVhclRpbWVyRmlyZWQoKQorewor
ICAgIGZvciAoY29uc3QgYXV0byYgcmVnaXN0ZXJlZE9iamVjdHMgOiBtX2F0c3BpSHlwZXJsaW5r
cy52YWx1ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8gaWQgOiByZWdpc3RlcmVkT2JqZWN0cykK
KyAgICAgICAgICAgIGdfZGJ1c19jb25uZWN0aW9uX3VucmVnaXN0ZXJfb2JqZWN0KG1fY29ubmVj
dGlvbi5nZXQoKSwgaWQpOworICAgIH0KKyAgICBtX2F0c3BpSHlwZXJsaW5rcy5jbGVhcigpOwor
ICAgIGZvciAoY29uc3QgYXV0byYgaXQgOiBtX2F0c3BpT2JqZWN0cykgeworICAgICAgICBmb3Ig
KGF1dG8gaWQgOiBpdC52YWx1ZSkKKyAgICAgICAgICAgIGdfZGJ1c19jb25uZWN0aW9uX3VucmVn
aXN0ZXJfb2JqZWN0KG1fY29ubmVjdGlvbi5nZXQoKSwgaWQpOworCisgICAgICAgIGl0LmtleS0+
ZGlkVW5yZWdpc3Rlck9iamVjdCgpOworICAgIH0KKyAgICBtX2F0c3BpT2JqZWN0cy5jbGVhcigp
OworCisgICAgZm9yIChhdXRvKiByb290T2JqZWN0IDogbV9yb290T2JqZWN0cy5rZXlzKCkpCisg
ICAgICAgIHJvb3RPYmplY3QtPmRpZFVucmVnaXN0ZXJUcmVlKCk7CisKKyAgICBtX2NhY2hlLmNs
ZWFyKCk7CisKKyAgICBSRUxFQVNFX0FTU0VSVChtX2NhY2hlVXBkYXRlTGlzdC5pc0VtcHR5KCkp
OworICAgIG1fY2FjaGVVcGRhdGVUaW1lciA9IG51bGxwdHI7CisgICAgbV9jYWNoZUNsZWFyVGlt
ZXIgPSBudWxscHRyOworfQorCiBuYW1lc3BhY2UgQWNjZXNzaWJpbGl0eSB7CiAKIFBsYXRmb3Jt
Um9sZU1hcCBjcmVhdGVQbGF0Zm9ybVJvbGVNYXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmgKaW5kZXggMzI3NWYx
M2VkOWYxLi5mNWQzZDc2Y2YxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuaApAQCAtNTMsNyArNTMsNyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgY2hhciogdW5pcXVlTmFtZSgpIGNvbnN0OwogICAgIEdWYXJpYW50
KiBudWxsUmVmZXJlbmNlKCkgY29uc3Q7CiAgICAgR1ZhcmlhbnQqIGFwcGxpY2F0aW9uUmVmZXJl
bmNlKCkgY29uc3Q7Ci0gICAgYm9vbCBoYXNFdmVudExpc3RlbmVycygpIGNvbnN0IHsgcmV0dXJu
ICFtX2V2ZW50TGlzdGVuZXJzLmlzRW1wdHkoKTsgfQorICAgIGJvb2wgaGFzQ2xpZW50cygpIGNv
bnN0IHsgcmV0dXJuICFtX2NsaWVudHMuaXNFbXB0eSgpOyB9CiAKICAgICB2b2lkIHJlZ2lzdGVy
Um9vdChBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpJiwgVmVjdG9yPHN0ZDo6cGFpcjxHREJ1c0ludGVy
ZmFjZUluZm8qLCBHREJ1c0ludGVyZmFjZVZUYWJsZSo+PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJSb290KEFjY2Vzc2li
aWxpdHlSb290QXRzcGkmKTsKQEAgLTk0LDEwICs5NCwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEFjY2Vzc2liaWxpdHlBdHNwaSgpOwogCi0gICAgdm9pZCByZWdpc3RlclRyZWVzKCkgY29u
c3Q7CiAgICAgdm9pZCBpbml0aWFsaXplUmVnaXN0cnkoKTsKICAgICB2b2lkIGFkZEV2ZW50TGlz
dGVuZXIoY29uc3QgY2hhciogZGJ1c05hbWUsIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSk7CiAgICAg
dm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IGNoYXIqIGRidXNOYW1lLCBjb25zdCBjaGFy
KiBldmVudE5hbWUpOworICAgIHZvaWQgYWRkQ2xpZW50KGNvbnN0IGNoYXIqIGRidXNOYW1lKTsK
KyAgICB2b2lkIHJlbW92ZUNsaWVudChjb25zdCBjaGFyKiBkYnVzTmFtZSk7CiAKICAgICB2b2lk
IGVuc3VyZUNhY2hlKCk7CiAgICAgdm9pZCBhZGRUb0NhY2hlSWZOZWVkZWQoQWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpJik7CkBAIC0xMDUsNiArMTA2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJl
bW92ZUFjY2Vzc2libGUoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7CiAgICAgdm9pZCBzY2hl
ZHVsZUNhY2hlVXBkYXRlKCk7CiAgICAgdm9pZCBjYWNoZVVwZGF0ZVRpbWVyRmlyZWQoKTsKKyAg
ICB2b2lkIGNhY2hlQ2xlYXJUaW1lckZpcmVkKCk7CiAKICAgICBib29sIHNob3VsZEVtaXRTaWdu
YWwoY29uc3QgY2hhciogaW50ZXJmYWNlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBk
ZXRhaWwgPSAiIik7CiAKQEAgLTEyNywxMCArMTI5LDEyIEBAIHByaXZhdGU6CiAgICAgSGFzaE1h
cDxBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpKiwgVmVjdG9yPHVuc2lnbmVkLCAyPj4gbV9yb290T2Jq
ZWN0czsKICAgICBIYXNoTWFwPEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSosIFZlY3Rvcjx1bnNp
Z25lZCwgMjA+PiBtX2F0c3BpT2JqZWN0czsKICAgICBIYXNoTWFwPEFjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaSosIFZlY3Rvcjx1bnNpZ25lZCwgMjA+PiBtX2F0c3BpSHlwZXJsaW5rczsKKyAgICBI
YXNoTWFwPENTdHJpbmcsIHVuc2lnbmVkPiBtX2NsaWVudHM7CiAgICAgdW5zaWduZWQgbV9jYWNo
ZUlEIHsgMCB9OwogICAgIEhhc2hNYXA8U3RyaW5nLCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkq
PiBtX2NhY2hlOwogICAgIExpc3RIYXNoU2V0PFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRz
cGk+PiBtX2NhY2hlVXBkYXRlTGlzdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGlt
ZXI8QWNjZXNzaWJpbGl0eUF0c3BpPj4gbV9jYWNoZVVwZGF0ZVRpbWVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxSdW5Mb29wOjpUaW1lcjxBY2Nlc3NpYmlsaXR5QXRzcGk+PiBtX2NhY2hlQ2xlYXJU
aW1lcjsKICNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCiAgICAgSGFzaE1hcDx2b2lkKiwgTm90
aWZpY2F0aW9uT2JzZXJ2ZXI+IG1fbm90aWZpY2F0aW9uT2JzZXJ2ZXJzOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlP
YmplY3RBdHNwaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaS5jcHAKaW5kZXggMmM5NmYwNWVhNTkzLi5iZDc3MDIzNjZjOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdEF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKQEAgLTU0MSw2ICs1NDEsMTIgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnJlZ2lzdGVyT2JqZWN0KCkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmRpZFVucmVnaXN0ZXJP
YmplY3QoKQoreworICAgIG1faXNSZWdpc3RlcmVkLnN0b3JlKGZhbHNlKTsKKyAgICBtX3BhdGgg
PSB7IH07Cit9CisKIGNvbnN0IFN0cmluZyYgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpwYXRo
KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRz
cGkuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpLmgKaW5kZXggZDUzMmI4M2U0ODA2Li4wNDgzODZhODM5MWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0
c3BpLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmls
aXR5T2JqZWN0QXRzcGkuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHJl
Z2lzdGVyT2JqZWN0KCk7CiAgICAgYm9vbCBpc1RyZWVSZWdpc3RlcmVkKCkgY29uc3Q7CisgICAg
dm9pZCBkaWRVbnJlZ2lzdGVyT2JqZWN0KCk7CiAKICAgICBlbnVtIGNsYXNzIEludGVyZmFjZSA6
IHVpbnQxNl90IHsKICAgICAgICAgQWNjZXNzaWJsZSA9IDEgPDwgMCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290
QXRzcGkuY3BwCmluZGV4IGI2Y2I0MWQ2YWI3Zi4uMWNhYjRjMTg1ZThjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0
eVJvb3RBdHNwaS5jcHAKQEAgLTIwNSwxMiArMjA1LDIwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJv
b3RBdHNwaTo6cmVnaXN0ZXJUcmVlKCkKICAgICBpZiAobV9wYXJlbnRVbmlxdWVOYW1lLmlzTnVs
bCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAobV9pc1RyZWVSZWdpc3RlcmVkLmxvYWQo
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgcmVnaXN0ZXJTdWJ0cmVlKEFjY2Vzc2liaWxpdHk6
OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPihb
dGhpc10oKSAtPiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqIHsKICAgICAgICAgcmV0dXJuIGNo
aWxkKCk7CiAgICAgfSkpOwogICAgIG1faXNUcmVlUmVnaXN0ZXJlZC5zdG9yZSh0cnVlKTsKIH0K
IAordm9pZCBBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpOjpkaWRVbnJlZ2lzdGVyVHJlZSgpCit7Cisg
ICAgbV9pc1RyZWVSZWdpc3RlcmVkLnN0b3JlKGZhbHNlKTsKK30KKwogdm9pZCBBY2Nlc3NpYmls
aXR5Um9vdEF0c3BpOjpzZXRQYXRoKFN0cmluZyYmIHBhdGgpCiB7CiAgICAgUkVMRUFTRV9BU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKQEAgLTIyMyw3ICsyMzEsNyBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlSb290QXRzcGk6OmVtYmVkZGVkKGNvbnN0IGNoYXIqIHBhcmVudFVuaXF1ZU5hbWUsIGNvbnN0
IGNoYXIqCiAgICAgbV9wYXJlbnRVbmlxdWVOYW1lID0gcGFyZW50VW5pcXVlTmFtZTsKICAgICBt
X3BhcmVudFBhdGggPSBwYXJlbnRQYXRoOwogICAgIEFjY2Vzc2liaWxpdHlBdHNwaTo6c2luZ2xl
dG9uKCkucGFyZW50Q2hhbmdlZCgqdGhpcyk7Ci0gICAgaWYgKCFtX2lzVHJlZVJlZ2lzdGVyZWQu
bG9hZCgpICYmIEFjY2Vzc2liaWxpdHlBdHNwaTo6c2luZ2xldG9uKCkuaGFzRXZlbnRMaXN0ZW5l
cnMoKSkKKyAgICBpZiAoQWNjZXNzaWJpbGl0eUF0c3BpOjpzaW5nbGV0b24oKS5oYXNDbGllbnRz
KCkpCiAgICAgICAgIHJlZ2lzdGVyVHJlZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5oCmlu
ZGV4IDVmZmM1ODZlZTA2MC4uYzY0OGJiOTRkNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuaApA
QCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rlck9iamVjdChDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJP
YmplY3QoKTsKICAgICB2b2lkIHJlZ2lzdGVyVHJlZSgpOworICAgIHZvaWQgZGlkVW5yZWdpc3Rl
clRyZWUoKTsKICAgICBib29sIGlzVHJlZVJlZ2lzdGVyZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
VHJlZVJlZ2lzdGVyZWQubG9hZCgpOyB9CiAgICAgdm9pZCBzZXRQYXRoKFN0cmluZyYmKTsKIAo=
</data>
<flag name="review"
          id="475034"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>