<?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>234292</bug_id>
          
          <creation_ts>2021-12-14 02:00:25 -0800</creation_ts>
          <short_desc>[GTK][a11y] Register the wrappers tree when org.a11y.atspi.Cache.GetItems() is called</short_desc>
          <delta_ts>2021-12-14 02:43:22 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <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>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>1823938</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-12-14 02:00:25 -0800</bug_when>
    <thetext>This ensures wrappers always have a reference before being added to the cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823940</commentid>
    <comment_count>1</comment_count>
      <attachid>447118</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-12-14 02:12:04 -0800</bug_when>
    <thetext>Created attachment 447118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823947</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-12-14 02:43:22 -0800</bug_when>
    <thetext>Committed r287020 (245225@trunk): &lt;https://commits.webkit.org/245225@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447118</attachid>
            <date>2021-12-14 02:12:04 -0800</date>
            <delta_ts>2021-12-14 02:37:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-atspi-register-tree.diff</filename>
            <type>text/plain</type>
            <size>24362</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZjhiMDdjYjI4ZTcuLmM0OWE0MWRjZjYwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQxIEBACisyMDIxLTEyLTE0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVthMTF5XSBSZWdpc3RlciB0aGUgd3JhcHBlcnMg
dHJlZSB3aGVuIG9yZy5hMTF5LmF0c3BpLkNhY2hlLkdldEl0ZW1zKCkgaXMgY2FsbGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQyOTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGVuc3VyZXMg
d3JhcHBlcnMgYWx3YXlzIGhhdmUgYSByZWZlcmVuY2UgYmVmb3JlIGJlaW5nIGFkZGVkIHRvIHRo
ZSBjYWNoZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmplY3RDYWNoZUF0c3BpLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmF0dGFjaFdyYXBwZXIpOiBEZWZlciB0aGUgc2V0
IHBhcmVudCBjYWxsIHRvIG5leHQgY2FjaGUgdXBkYXRlLgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cGxhdGZvcm1QZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSk6IERvIHRoZSBz
ZXQgcGFyZW50IGNhbGwgaGVyZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vz
c2liaWxpdHlBdHNwaS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QXRzcGk6
OnJlZ2lzdGVyT2JqZWN0KTogRG8gbm90IGNhbGwgYWRkQWNjZXNzaWJsZSBmcm9tIGhlcmUsIHNp
bmNlIGl0IG5lZWRzIHRoZSBwYXRoLAorICAgICAgICBpdCdzIG5vdyBjYWxsZWQgZnJvbSB0aGUg
Y2FsbGVyIG9mIHJlZ2lzdGVyT2JqZWN0KCkuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5QXRzcGk6OnBhcmVudENoYW5nZWQpOiBOb3RpZnkgYWJvdXQgcGFyZW50IHByb3BlcnR5IGNo
YW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6Y2hpbGRyZW5DaGFu
Z2VkKTogQWx3YXlzIGVtaXQgQ2hpbGRyZW5DaGFuZ2VkIHdoZW4gdGhlIHRyZWUgaXMgcmVnaXN0
ZXJlZCBiZWNhdXNlCisgICAgICAgIHRoZSBhdHNwaSBjYWNoZSBhbHdheXMgY29uc3VtZXMgaXQu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QXRzcGk6OmFkZEFjY2Vzc2libGUpOiBX
ZSBubyBsb25nZXIgbmVlZCB0byBkaXNwYXRoIGFkZEFjY2Vzc2libGUgaW4gdGhlIG5leHQgcnVu
IGxvb3AgaXRlcmF0aW9uLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eUF0c3BpLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5
T2JqZWN0QXRzcGkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0
c3BpOjpyZWdpc3Rlck9iamVjdCk6IEhlbHBlciB0byByZWdpc3RlciB0aGUgb2JqZWN0IHdoZW4g
cGF0aCBpcyBub3QgbmVlZGVkLiBBbHNvCisgICAgICAgIGVuc3VyZSB0aGUgaXNvbGF0ZWQgdHJl
ZSBpcyBjcmVhdGVkIGJlZm9yZSByZWdpc3RlcmluZyB0aGUgb2JqZWN0LgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpwYXRoKTogQ2FsbCByZWdpc3Rlck9iamVj
dCgpLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpoeXBlcmxp
bmtSZWZlcmVuY2UpOiBVc2UgcmVnaXN0ZXJPYmplY3QoKSBpbnN0ZWFkIG9mIHBhdGgoKS4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6c2V0UGFyZW50KTogQ2Fs
bCBBY2Nlc3NpYmlsaXR5QXRzcGk6OnBhcmVudENoYW5nZWQoKSBpZiB0aGUgd3JhcHBlciBpcyBz
dGlsbAorICAgICAgICBhbmQgYXR0YWNoZWQgYW5kIG5vdCBpZ25vcmVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpwYXJlbnRSZWZlcmVuY2UgY29uc3QpOiBV
c2UgdGhlIHBhcmVudCBtZW1iZXIgaW5zdGVhZCBvZiBhc2tpbmcgdGhlIG1haW4KKyAgICAgICAg
dGhyZWFkIGFnYWluLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3Bp
Ojppc0RlZnVuY3QgY29uc3QpOiBSZXR1cm4gdHJ1ZSBpZiB3cmFwcGVyIGhhcyBiZWVuIGRldGFj
aGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpjaGlsZEFk
ZGVkKTogV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gZGlzcGF0Y2ggY2hpbGRyZW5DaGFuZ2VkIGluIG5l
eHQgcnVuIGxvb3AgaXRlcmF0aW9uLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNj
ZXNzaWJpbGl0eU9iamVjdEF0c3BpLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9B
Y2Nlc3NpYmlsaXR5Um9vdEF0c3BpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlZ2lzdGVyU3Vi
dHJlZSk6IEhlbHBlciB0byByZWdpc3RlciB0aGUgd3JhcHBlcnMgdHJlZSByZWN1cnNpdmVseS4K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSb290QXRzcGk6OnJlZ2lzdGVyVHJlZSk6
IFJlZ2lzdGVyIHRoZSB3cmFwcGVycyB0cmVlLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRz
cGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5oOgorCiAyMDIxLTEyLTEzICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVthMTF5XSBIYW5k
bGUgdGhlIEVtYmVkZGVkIG1ldGhvZCBzZW50IGJ5IEF0a1NvY2tldCBmcm9tIEFjY2Vzc2liaWxp
dHlSb290QXRzcGkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKaW5kZXggZGQ5YzljZGQyZTA2Li4wZjQzZDk0M2Y2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC01MjgsNiArNTI4LDkgQEAgcHJpdmF0
ZToKICAgICBMaXN0SGFzaFNldDxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fZGVmZXJy
ZWRBdHRhY2hlZFdyYXBwZXJPYmplY3RMaXN0OwogICAgIExpc3RIYXNoU2V0PEdSZWZQdHI8QWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+PiBtX2RlZmVycmVkRGV0YWNoZWRXcmFwcGVyTGlzdDsK
ICNlbmRpZgorI2lmIFVTRShBVFNQSSkKKyAgICBMaXN0SGFzaFNldDxSZWZQdHI8QVhDb3JlT2Jq
ZWN0Pj4gbV9kZWZlcnJlZFBhcmVudENoYW5nZWRMaXN0OworI2VuZGlmCiB9OwogCiBjbGFzcyBB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCmluZGV4IDRjNzgwNTU0ZDFi
NC4uMjY2NjU3NDg3Zjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0c3BpL0FYT2JqZWN0Q2FjaGVBdHNwaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwCkBAIC00MiwyMiArNDIsMzAgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFYQ29yZU9iamVjdCogYXhPYmplY3Qp
CiAgICAgYXV0byB3cmFwcGVyID0gQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpjcmVhdGUoYXhP
YmplY3QsICpyb290V3JhcHBlcik7CiAgICAgYXhPYmplY3QtPnNldFdyYXBwZXIod3JhcHBlci5w
dHIoKSk7CiAKLSAgICBhdXRvKiBheFBhcmVudCA9IGF4T2JqZWN0LT5wYXJlbnRPYmplY3RVbmln
bm9yZWQoKTsKLSAgICBpZiAoIWF4UGFyZW50KSB7Ci0gICAgICAgIGlmIChheE9iamVjdC0+aXNT
Y3JvbGxWaWV3KCkgJiYgYXhPYmplY3QtPnNjcm9sbFZpZXcoKSA9PSBkb2N1bWVudCgpLnZpZXco
KSkKLSAgICAgICAgICAgIHdyYXBwZXItPnNldFBhcmVudChudWxscHRyKTsgLy8gbnVsbHB0ciBw
YXJlbnQgbWVhbnMgcm9vdC4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8qIGF4
UGFyZW50V3JhcHBlciA9IGF4UGFyZW50LT53cmFwcGVyKCk7Ci0gICAgaWYgKCFheFBhcmVudFdy
YXBwZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIHdyYXBwZXItPnNldFBhcmVudChheFBhcmVu
dFdyYXBwZXIpOworICAgIG1fZGVmZXJyZWRQYXJlbnRDaGFuZ2VkTGlzdC5hZGQoYXhPYmplY3Qp
OwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3JtUGVyZm9ybURlZmVycmVkQ2FjaGVV
cGRhdGUoKQogeworICAgIGF1dG8gaGFuZGxlUGFyZW50Q2hhbmdlZCA9IFsmXShjb25zdCBBWENv
cmVPYmplY3QmIGF4T2JqZWN0KSB7CisgICAgICAgIGF1dG8qIHdyYXBwZXIgPSBheE9iamVjdC53
cmFwcGVyKCk7CisgICAgICAgIGlmICghd3JhcHBlcikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBhdXRvKiBheFBhcmVudCA9IGF4T2JqZWN0LnBhcmVudE9iamVjdFVuaWdub3JlZCgp
OworICAgICAgICBpZiAoIWF4UGFyZW50KSB7CisgICAgICAgICAgICBpZiAoYXhPYmplY3QuaXNT
Y3JvbGxWaWV3KCkgJiYgYXhPYmplY3Quc2Nyb2xsVmlldygpID09IGRvY3VtZW50KCkudmlldygp
KQorICAgICAgICAgICAgICAgIHdyYXBwZXItPnNldFBhcmVudChudWxscHRyKTsgLy8gbnVsbHB0
ciBwYXJlbnQgbWVhbnMgcm9vdC4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmIChhdXRvKiBheFBhcmVudFdyYXBwZXIgPSBheFBhcmVudC0+d3JhcHBlcigpKQor
ICAgICAgICAgICAgd3JhcHBlci0+c2V0UGFyZW50KGF4UGFyZW50V3JhcHBlcik7CisgICAgfTsK
KworICAgIGZvciAoY29uc3QgYXV0byYgYXhPYmplY3QgOiBtX2RlZmVycmVkUGFyZW50Q2hhbmdl
ZExpc3QpCisgICAgICAgIGhhbmRsZVBhcmVudENoYW5nZWQoKmF4T2JqZWN0KTsKKyAgICBtX2Rl
ZmVycmVkUGFyZW50Q2hhbmdlZExpc3QuY2xlYXIoKTsKIH0KIAogYm9vbCBBWE9iamVjdENhY2hl
Ojppc0lzb2xhdGVkVHJlZUVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuY3BwCmluZGV4IGMzZmQzNGRl
ZDI4OC4uMTQzOWE5ZjRkNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuY3BwCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSA8Z2lvL2dpby5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNp
bmNsdWRlIDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgogI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KQEAgLTEyMyw4ICsxMjQsNiBAQCBTdHJpbmcg
QWNjZXNzaWJpbGl0eUF0c3BpOjpyZWdpc3Rlck9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0QXRz
cGkmIGF0c3BpT2JqZWN0LAogICAgIH0KICAgICBtX2F0c3BpT2JqZWN0cy5hZGQoJmF0c3BpT2Jq
ZWN0LCBXVEZNb3ZlKHJlZ2lzdGVyZWRPYmplY3RzKSk7CiAKLSAgICBhZGRBY2Nlc3NpYmxlKGF0
c3BpT2JqZWN0LCBwYXRoKTsKLQogICAgIHJldHVybiBwYXRoOwogfQogCkBAIC0xNzAsNiArMTY5
LDI0IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5QXRzcGk6OnJlZ2lzdGVySHlwZXJsaW5rKEFjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaSYgYXRzcGlPYmplCiAgICAgcmV0dXJuIHBhdGg7CiB9CiAKK3Zv
aWQgQWNjZXNzaWJpbGl0eUF0c3BpOjpwYXJlbnRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3RB
dHNwaSYgYXRzcGlPYmplY3QpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBhdHNwaU9iamVjdCA9IFJlZiB7IGF0c3Bp
T2JqZWN0IH1dIHsKKyAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgLy8gQWx3YXlzIGVtaXQgcGFyZW50Q2hhbmdlZCB3aGVuIHRoZSB0cmVl
IGlzIHJlZ2lzdGVyZWQgYmVjYXVzZSB0aGUgYXRzcGkgY2FjaGUgYWx3YXlzIGNvbnN1bWVzIGl0
LgorICAgICAgICBpZiAoIWF0c3BpT2JqZWN0LT5yb290KCkuaXNUcmVlUmVnaXN0ZXJlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIFdlIGNhbGwgcGF0aCBoZXJlIHRvIGVu
c3VyZSBpdCBoYXBwZW5zIGJlZm9yZSBwYXJlbnRSZWZlcmVuY2UoKSBpbiBjYXNlIG9iamVjdHMg
YXJlIG5vdCByZWdpc3RlcmVkIHlldC4KKyAgICAgICAgYXV0byBwYXRoID0gYXRzcGlPYmplY3Qt
PnBhdGgoKTsKKyAgICAgICAgZ19kYnVzX2Nvbm5lY3Rpb25fZW1pdF9zaWduYWwobV9jb25uZWN0
aW9uLmdldCgpLCBudWxscHRyLCBwYXRoLnV0ZjgoKS5kYXRhKCksICJvcmcuYTExeS5hdHNwaS5F
dmVudC5PYmplY3QiLCAiUHJvcGVydHlDaGFuZ2UiLAorICAgICAgICAgICAgZ192YXJpYW50X25l
dygiKHNpaXZhe3N2fSkiLCAiYWNjZXNzaWJsZS1wYXJlbnQiLCAwLCAwLCBhdHNwaU9iamVjdC0+
cGFyZW50UmVmZXJlbmNlKCksIG51bGxwdHIpLCBudWxscHRyKTsKKyAgICB9KTsKK30KKwogdm9p
ZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OmNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGkmIGF0c3BpT2JqZWN0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkmIGNoaWxkLCBDaGls
ZHJlbkNoYW5nZWQgY2hhbmdlKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKQEAgLTE3Nyw2ICsxOTQsMTAgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OmNoaWxkcmVu
Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkmIGF0c3BpT2JqZWN0LAogICAgICAgICBp
ZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICAvLyBBbHdh
eXMgZW1pdCBDaGlsZHJlbkNoYW5nZWQgd2hlbiB0aGUgdHJlZSBpcyByZWdpc3RlcmVkIGJlY2F1
c2UgdGhlIGF0c3BpIGNhY2hlIGFsd2F5cyBjb25zdW1lcyBpdC4KKyAgICAgICAgaWYgKCFhdHNw
aU9iamVjdC0+cm9vdCgpLmlzVHJlZVJlZ2lzdGVyZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsK
KwogICAgICAgICBnX2RidXNfY29ubmVjdGlvbl9lbWl0X3NpZ25hbChtX2Nvbm5lY3Rpb24uZ2V0
KCksIG51bGxwdHIsIGF0c3BpT2JqZWN0LT5wYXRoKCkudXRmOCgpLmRhdGEoKSwgIm9yZy5hMTF5
LmF0c3BpLkV2ZW50Lk9iamVjdCIsICJDaGlsZHJlbkNoYW5nZWQiLAogICAgICAgICAgICAgZ192
YXJpYW50X25ldygiKHNpaXYoc28pKSIsIGNoYW5nZSA9PSBDaGlsZHJlbkNoYW5nZWQ6OkFkZGVk
ID8gImFkZCIgOiAicmVtb3ZlIiwgY2hpbGQtPmluZGV4SW5QYXJlbnRGb3JDaGlsZHJlbkNoYW5n
ZWQoY2hhbmdlKSwKICAgICAgICAgICAgIDAsIGdfdmFyaWFudF9uZXcoIihzbykiLCB1bmlxdWVO
YW1lKCksIGNoaWxkLT5wYXRoKCkudXRmOCgpLmRhdGEoKSksIHVuaXF1ZU5hbWUoKSwgYXRzcGlP
YmplY3QtPnBhdGgoKS51dGY4KCkuZGF0YSgpKSwgbnVsbHB0cik7CkBAIC00MTUsMTAgKzQzNiwx
MiBAQCBHREJ1c0ludGVyZmFjZVZUYWJsZSBBY2Nlc3NpYmlsaXR5QXRzcGk6OnNfY2FjaGVGdW5j
dGlvbnMgPSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAg
ICAgIGlmICghZ19zdHJjbXAwKG1ldGhvZE5hbWUsICJHZXRJdGVtcyIpKSB7CiAgICAgICAgICAg
ICBhdXRvJiBhdHNwaSA9ICpzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5QXRzcGkqPih1c2VyRGF0
YSk7CisgICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpbkdldEl0ZW1zKGF0c3BpLm1faW5H
ZXRJdGVtcywgdHJ1ZSk7CiAgICAgICAgICAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlciA9IEdf
VkFSSUFOVF9CVUlMREVSX0lOSVQoR19WQVJJQU5UX1RZUEUoIigiIEdFVF9JVEVNU19TSUdOQVRV
UkUgIikiKSk7CiAgICAgICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9vcGVuKCZidWlsZGVyLCBH
X1ZBUklBTlRfVFlQRShHRVRfSVRFTVNfU0lHTkFUVVJFKSk7Ci0gICAgICAgICAgICBmb3IgKGNv
bnN0IGF1dG8qIHJvb3RPYmplY3QgOiBhdHNwaS5tX3Jvb3RPYmplY3RzLmtleXMoKSkgeworICAg
ICAgICAgICAgZm9yIChhdXRvKiByb290T2JqZWN0IDogYXRzcGkubV9yb290T2JqZWN0cy5rZXlz
KCkpIHsKICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9vcGVuKCZidWlsZGVyLCBH
X1ZBUklBTlRfVFlQRSgiKCIgSVRFTV9TSUdOQVRVUkUgIikiKSk7CisgICAgICAgICAgICAgICAg
cm9vdE9iamVjdC0+cmVnaXN0ZXJUcmVlKCk7CiAgICAgICAgICAgICAgICAgcm9vdE9iamVjdC0+
c2VyaWFsaXplKCZidWlsZGVyKTsKICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9j
bG9zZSgmYnVpbGRlcik7CiAgICAgICAgICAgICB9CkBAIC00MjksNyArNDUyLDcgQEAgR0RCdXNJ
bnRlcmZhY2VWVGFibGUgQWNjZXNzaWJpbGl0eUF0c3BpOjpzX2NhY2hlRnVuY3Rpb25zID0gewog
ICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYXRoIDogcGF0aHMpIHsKICAgICAgICAgICAg
ICAgICBhdXRvIHdyYXBwZXIgPSBhdHNwaS5tX2NhY2hlLmdldChwYXRoKTsKICAgICAgICAgICAg
ICAgICB3cmFwcGVyLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKLSAgICAgICAgICAgICAgICBpZiAo
IWF0c3BpLm1fY2FjaGUuY29udGFpbnMocGF0aCkpCisgICAgICAgICAgICAgICAgaWYgKCFhdHNw
aS5tX2NhY2hlLmNvbnRhaW5zKHBhdGgpIHx8IHdyYXBwZXItPmlzRGVmdW5jdCgpKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9vcGVuKCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRSgiKCIgSVRFTV9TSUdOQVRVUkUgIikiKSk7
CiAgICAgICAgICAgICAgICAgd3JhcHBlci0+c2VyaWFsaXplKCZidWlsZGVyKTsKQEAgLTQ1OSwy
NyArNDgyLDIzIEBAIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjplbnN1cmVDYWNoZSgpCiAgICAg
bV9jYWNoZUlEID0gZ19kYnVzX2Nvbm5lY3Rpb25fcmVnaXN0ZXJfb2JqZWN0KG1fY29ubmVjdGlv
bi5nZXQoKSwgIi9vcmcvYTExeS9hdHNwaS9jYWNoZSIsIGNvbnN0X2Nhc3Q8R0RCdXNJbnRlcmZh
Y2VJbmZvKj4oJndlYmtpdF9jYWNoZV9pbnRlcmZhY2UpLCAmc19jYWNoZUZ1bmN0aW9ucywgdGhp
cywgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjphZGRB
Y2Nlc3NpYmxlKEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSYgYXRzcGlPYmplY3QsIGNvbnN0IFN0
cmluZyYgcGF0aCkKK3ZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjphZGRBY2Nlc3NpYmxlKEFjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaSYgYXRzcGlPYmplY3QpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYXV0byBhZGRSZXN1bHQgPSBtX2NhY2hlLmFkZChwYXRoLCAmYXRzcGlPYmplY3Qp
OworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9jYWNoZS5hZGQoYXRzcGlPYmplY3QucGF0aCgpLCAm
YXRzcGlPYmplY3QpOwogICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIEFkZEFjY2Vzc2libGUgbmVlZHMgdG8gYmUgZW1pdHRlZCBhZnRlciBD
aGlsZHJlbkNoYW5nZWQuCi0gICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBh
dHNwaU9iamVjdCA9IFJlZiB7IGF0c3BpT2JqZWN0IH0sIHBhdGggPSBwYXRoLmlzb2xhdGVkQ29w
eSgpXSB7Ci0gICAgICAgIGF0c3BpT2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKLSAgICAg
ICAgaWYgKCFtX2NhY2hlLmNvbnRhaW5zKHBhdGgpKQotICAgICAgICAgICAgcmV0dXJuOworICAg
IGlmIChtX2luR2V0SXRlbXMpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICBHVmFyaWFudEJ1
aWxkZXIgYnVpbGRlciA9IEdfVkFSSUFOVF9CVUlMREVSX0lOSVQoR19WQVJJQU5UX1RZUEUoIigi
IElURU1fU0lHTkFUVVJFICIpIikpOwotICAgICAgICBhdHNwaU9iamVjdC0+c2VyaWFsaXplKCZi
dWlsZGVyKTsKLSAgICAgICAgZ19kYnVzX2Nvbm5lY3Rpb25fZW1pdF9zaWduYWwobV9jb25uZWN0
aW9uLmdldCgpLCBudWxscHRyLCAiL29yZy9hMTF5L2F0c3BpL2NhY2hlIiwgIm9yZy5hMTF5LmF0
c3BpLkNhY2hlIiwgIkFkZEFjY2Vzc2libGUiLAotICAgICAgICAgICAgZ192YXJpYW50X25ldygi
KEAoIiBJVEVNX1NJR05BVFVSRSAiKSkiLCBnX3ZhcmlhbnRfYnVpbGRlcl9lbmQoJmJ1aWxkZXIp
KSwgbnVsbHB0cik7Ci0gICAgfSk7CisgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1aWxkZXIgPSBHX1ZB
UklBTlRfQlVJTERFUl9JTklUKEdfVkFSSUFOVF9UWVBFKCIoIiBJVEVNX1NJR05BVFVSRSAiKSIp
KTsKKyAgICBhdHNwaU9iamVjdC5zZXJpYWxpemUoJmJ1aWxkZXIpOworICAgIGdfZGJ1c19jb25u
ZWN0aW9uX2VtaXRfc2lnbmFsKG1fY29ubmVjdGlvbi5nZXQoKSwgbnVsbHB0ciwgIi9vcmcvYTEx
eS9hdHNwaS9jYWNoZSIsICJvcmcuYTExeS5hdHNwaS5DYWNoZSIsICJBZGRBY2Nlc3NpYmxlIiwK
KyAgICAgICAgZ192YXJpYW50X25ldygiKEAoIiBJVEVNX1NJR05BVFVSRSAiKSkiLCBnX3Zhcmlh
bnRfYnVpbGRlcl9lbmQoJmJ1aWxkZXIpKSwgbnVsbHB0cik7CiB9CiAKIHZvaWQgQWNjZXNzaWJp
bGl0eUF0c3BpOjpyZW1vdmVBY2Nlc3NpYmxlKEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSYgYXRz
cGlPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3Bp
L0FjY2Vzc2liaWxpdHlBdHNwaS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNw
aS9BY2Nlc3NpYmlsaXR5QXRzcGkuaAppbmRleCAzMDQzMmQ4YWY1NGQuLmRmMDQzYmM2MTQxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmls
aXR5QXRzcGkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vz
c2liaWxpdHlBdHNwaS5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVn
aXN0ZXJPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7CiAgICAgU3RyaW5nIHJlZ2lz
dGVySHlwZXJsaW5rKEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSYsIFZlY3RvcjxzdGQ6OnBhaXI8
R0RCdXNJbnRlcmZhY2VJbmZvKiwgR0RCdXNJbnRlcmZhY2VWVGFibGUqPj4mJik7CiAKKyAgICB2
b2lkIHBhcmVudENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7CiAgICAgZW51bSBj
bGFzcyBDaGlsZHJlbkNoYW5nZWQgeyBBZGRlZCwgUmVtb3ZlZCB9OwogICAgIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSYsIEFjY2Vzc2liaWxpdHlPYmplY3RB
dHNwaSYsIENoaWxkcmVuQ2hhbmdlZCk7CiAKQEAgLTcwLDkgKzcxLDEwIEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsb2NhbGl6ZWRSb2xlTmFtZShBY2Nlc3NpYmlsaXR5Um9s
ZSk7CiAKKyAgICB2b2lkIGFkZEFjY2Vzc2libGUoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7
CisKIHByaXZhdGU6CiAgICAgdm9pZCBlbnN1cmVDYWNoZSgpOwotICAgIHZvaWQgYWRkQWNjZXNz
aWJsZShBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IHJlbW92ZUFjY2Vzc2libGUoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7CiAKICAgICBzdGF0
aWMgR0RCdXNJbnRlcmZhY2VWVGFibGUgc19jYWNoZUZ1bmN0aW9uczsKQEAgLTg0LDYgKzg2LDcg
QEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSosIFZlY3Rv
cjx1bnNpZ25lZCwgMjA+PiBtX2F0c3BpSHlwZXJsaW5rczsKICAgICB1bnNpZ25lZCBtX2NhY2hl
SUQgeyAwIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSo+
IG1fY2FjaGU7CisgICAgYm9vbCBtX2luR2V0SXRlbXMgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwCmluZGV4IDY0NmY4
YWU3YzZmMC4uMGU0Y2NkNzIwZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwCkBA
IC00ODEsNDAgKzQ4MSw1NSBAQCBHREJ1c0ludGVyZmFjZVZUYWJsZSBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0QXRzcGk6OnNfYWNjZXNzaWJsZUZ1bmN0aW9ucyA9IHsKICAgICBudWxscHRyCiB9OwogCi1j
b25zdCBTdHJpbmcmIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6cGF0aCgpCitib29sIEFjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaTo6cmVnaXN0ZXJPYmplY3QoKQogewogICAgIFJFTEVBU0VfQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKG1fcGF0aC5pc051bGwoKSkgewotICAgICAg
ICBtX2lzUmVnaXN0ZXJlZC5zdG9yZSh0cnVlKTsKLQotICAgICAgICBWZWN0b3I8c3RkOjpwYWly
PEdEQnVzSW50ZXJmYWNlSW5mbyosIEdEQnVzSW50ZXJmYWNlVlRhYmxlKj4+IGludGVyZmFjZXM7
Ci0gICAgICAgIGlmIChtX2ludGVyZmFjZXMuY29udGFpbnMoSW50ZXJmYWNlOjpBY2Nlc3NpYmxl
KSkKLSAgICAgICAgICAgIGludGVyZmFjZXMuYXBwZW5kKHsgY29uc3RfY2FzdDxHREJ1c0ludGVy
ZmFjZUluZm8qPigmd2Via2l0X2FjY2Vzc2libGVfaW50ZXJmYWNlKSwgJnNfYWNjZXNzaWJsZUZ1
bmN0aW9ucyB9KTsKLSAgICAgICAgaWYgKG1faW50ZXJmYWNlcy5jb250YWlucyhJbnRlcmZhY2U6
OkNvbXBvbmVudCkpCi0gICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8
R0RCdXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF9jb21wb25lbnRfaW50ZXJmYWNlKSwgJnNfY29t
cG9uZW50RnVuY3Rpb25zIH0pOwotICAgICAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKElu
dGVyZmFjZTo6VGV4dCkpCi0gICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nh
c3Q8R0RCdXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF90ZXh0X2ludGVyZmFjZSksICZzX3RleHRG
dW5jdGlvbnMgfSk7Ci0gICAgICAgIGlmIChtX2ludGVyZmFjZXMuY29udGFpbnMoSW50ZXJmYWNl
OjpWYWx1ZSkpCi0gICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RC
dXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF92YWx1ZV9pbnRlcmZhY2UpLCAmc192YWx1ZUZ1bmN0
aW9ucyB9KTsKLSAgICAgICAgaWYgKG1faW50ZXJmYWNlcy5jb250YWlucyhJbnRlcmZhY2U6Okh5
cGVybGluaykpCi0gICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RC
dXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF9oeXBlcmxpbmtfaW50ZXJmYWNlKSwgJnNfaHlwZXJs
aW5rRnVuY3Rpb25zIH0pOwotICAgICAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVy
ZmFjZTo6SHlwZXJ0ZXh0KSkKLSAgICAgICAgICAgIGludGVyZmFjZXMuYXBwZW5kKHsgY29uc3Rf
Y2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X2h5cGVydGV4dF9pbnRlcmZhY2UpLCAm
c19oeXBlcnRleHRGdW5jdGlvbnMgfSk7Ci0gICAgICAgIGlmIChtX2ludGVyZmFjZXMuY29udGFp
bnMoSW50ZXJmYWNlOjpBY3Rpb24pKQotICAgICAgICAgICAgaW50ZXJmYWNlcy5hcHBlbmQoeyBj
b25zdF9jYXN0PEdEQnVzSW50ZXJmYWNlSW5mbyo+KCZ3ZWJraXRfYWN0aW9uX2ludGVyZmFjZSks
ICZzX2FjdGlvbkZ1bmN0aW9ucyB9KTsKLSAgICAgICAgaWYgKG1faW50ZXJmYWNlcy5jb250YWlu
cyhJbnRlcmZhY2U6OkRvY3VtZW50KSkKLSAgICAgICAgICAgIGludGVyZmFjZXMuYXBwZW5kKHsg
Y29uc3RfY2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X2RvY3VtZW50X2ludGVyZmFj
ZSksICZzX2RvY3VtZW50RnVuY3Rpb25zIH0pOwotICAgICAgICBpZiAobV9pbnRlcmZhY2VzLmNv
bnRhaW5zKEludGVyZmFjZTo6SW1hZ2UpKQotICAgICAgICAgICAgaW50ZXJmYWNlcy5hcHBlbmQo
eyBjb25zdF9jYXN0PEdEQnVzSW50ZXJmYWNlSW5mbyo+KCZ3ZWJraXRfaW1hZ2VfaW50ZXJmYWNl
KSwgJnNfaW1hZ2VGdW5jdGlvbnMgfSk7Ci0gICAgICAgIGlmIChtX2ludGVyZmFjZXMuY29udGFp
bnMoSW50ZXJmYWNlOjpTZWxlY3Rpb24pKQotICAgICAgICAgICAgaW50ZXJmYWNlcy5hcHBlbmQo
eyBjb25zdF9jYXN0PEdEQnVzSW50ZXJmYWNlSW5mbyo+KCZ3ZWJraXRfc2VsZWN0aW9uX2ludGVy
ZmFjZSksICZzX3NlbGVjdGlvbkZ1bmN0aW9ucyB9KTsKLSAgICAgICAgaWYgKG1faW50ZXJmYWNl
cy5jb250YWlucyhJbnRlcmZhY2U6OlRhYmxlKSkKLSAgICAgICAgICAgIGludGVyZmFjZXMuYXBw
ZW5kKHsgY29uc3RfY2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X3RhYmxlX2ludGVy
ZmFjZSksICZzX3RhYmxlRnVuY3Rpb25zIH0pOwotICAgICAgICBpZiAobV9pbnRlcmZhY2VzLmNv
bnRhaW5zKEludGVyZmFjZTo6VGFibGVDZWxsKSkKLSAgICAgICAgICAgIGludGVyZmFjZXMuYXBw
ZW5kKHsgY29uc3RfY2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X3RhYmxlX2NlbGxf
aW50ZXJmYWNlKSwgJnNfdGFibGVDZWxsRnVuY3Rpb25zIH0pOwotICAgICAgICBtX3BhdGggPSBt
X3Jvb3QuYXRzcGkoKS5yZWdpc3Rlck9iamVjdCgqdGhpcywgV1RGTW92ZShpbnRlcmZhY2VzKSk7
CisgICAgaWYgKCFtX3BhdGguaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IG1faXNSZWdpc3RlcmVkLnN0b3JlKHRydWUpOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8R0RCdXNJ
bnRlcmZhY2VJbmZvKiwgR0RCdXNJbnRlcmZhY2VWVGFibGUqPj4gaW50ZXJmYWNlczsKKyAgICBp
ZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFjZTo6QWNjZXNzaWJsZSkpCisgICAgICAg
IGludGVyZmFjZXMuYXBwZW5kKHsgY29uc3RfY2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Vi
a2l0X2FjY2Vzc2libGVfaW50ZXJmYWNlKSwgJnNfYWNjZXNzaWJsZUZ1bmN0aW9ucyB9KTsKKyAg
ICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFjZTo6Q29tcG9uZW50KSkKKyAgICAg
ICAgaW50ZXJmYWNlcy5hcHBlbmQoeyBjb25zdF9jYXN0PEdEQnVzSW50ZXJmYWNlSW5mbyo+KCZ3
ZWJraXRfY29tcG9uZW50X2ludGVyZmFjZSksICZzX2NvbXBvbmVudEZ1bmN0aW9ucyB9KTsKKyAg
ICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFjZTo6VGV4dCkpCisgICAgICAgIGlu
dGVyZmFjZXMuYXBwZW5kKHsgY29uc3RfY2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0
X3RleHRfaW50ZXJmYWNlKSwgJnNfdGV4dEZ1bmN0aW9ucyB9KTsKKyAgICBpZiAobV9pbnRlcmZh
Y2VzLmNvbnRhaW5zKEludGVyZmFjZTo6VmFsdWUpKQorICAgICAgICBpbnRlcmZhY2VzLmFwcGVu
ZCh7IGNvbnN0X2Nhc3Q8R0RCdXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF92YWx1ZV9pbnRlcmZh
Y2UpLCAmc192YWx1ZUZ1bmN0aW9ucyB9KTsKKyAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5z
KEludGVyZmFjZTo6SHlwZXJsaW5rKSkKKyAgICAgICAgaW50ZXJmYWNlcy5hcHBlbmQoeyBjb25z
dF9jYXN0PEdEQnVzSW50ZXJmYWNlSW5mbyo+KCZ3ZWJraXRfaHlwZXJsaW5rX2ludGVyZmFjZSks
ICZzX2h5cGVybGlua0Z1bmN0aW9ucyB9KTsKKyAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5z
KEludGVyZmFjZTo6SHlwZXJ0ZXh0KSkKKyAgICAgICAgaW50ZXJmYWNlcy5hcHBlbmQoeyBjb25z
dF9jYXN0PEdEQnVzSW50ZXJmYWNlSW5mbyo+KCZ3ZWJraXRfaHlwZXJ0ZXh0X2ludGVyZmFjZSks
ICZzX2h5cGVydGV4dEZ1bmN0aW9ucyB9KTsKKyAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5z
KEludGVyZmFjZTo6QWN0aW9uKSkKKyAgICAgICAgaW50ZXJmYWNlcy5hcHBlbmQoeyBjb25zdF9j
YXN0PEdEQnVzSW50ZXJmYWNlSW5mbyo+KCZ3ZWJraXRfYWN0aW9uX2ludGVyZmFjZSksICZzX2Fj
dGlvbkZ1bmN0aW9ucyB9KTsKKyAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFj
ZTo6RG9jdW1lbnQpKQorICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RC
dXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF9kb2N1bWVudF9pbnRlcmZhY2UpLCAmc19kb2N1bWVu
dEZ1bmN0aW9ucyB9KTsKKyAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFjZTo6
SW1hZ2UpKQorICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RCdXNJbnRl
cmZhY2VJbmZvKj4oJndlYmtpdF9pbWFnZV9pbnRlcmZhY2UpLCAmc19pbWFnZUZ1bmN0aW9ucyB9
KTsKKyAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFjZTo6U2VsZWN0aW9uKSkK
KyAgICAgICAgaW50ZXJmYWNlcy5hcHBlbmQoeyBjb25zdF9jYXN0PEdEQnVzSW50ZXJmYWNlSW5m
byo+KCZ3ZWJraXRfc2VsZWN0aW9uX2ludGVyZmFjZSksICZzX3NlbGVjdGlvbkZ1bmN0aW9ucyB9
KTsKKyAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFjZTo6VGFibGUpKQorICAg
ICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RCdXNJbnRlcmZhY2VJbmZvKj4o
JndlYmtpdF90YWJsZV9pbnRlcmZhY2UpLCAmc190YWJsZUZ1bmN0aW9ucyB9KTsKKyAgICBpZiAo
bV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFjZTo6VGFibGVDZWxsKSkKKyAgICAgICAgaW50
ZXJmYWNlcy5hcHBlbmQoeyBjb25zdF9jYXN0PEdEQnVzSW50ZXJmYWNlSW5mbyo+KCZ3ZWJraXRf
dGFibGVfY2VsbF9pbnRlcmZhY2UpLCAmc190YWJsZUNlbGxGdW5jdGlvbnMgfSk7CisgICAgaWYg
KCFtX2F4T2JqZWN0KSB7CisgICAgICAgIC8vIElzb2xhdGVkIHRyZWUgaGFzbid0IGJlZW4gY3Jl
YXRlZCB5ZXQsIGNhbGwgQWNjZXNzaWJpbGl0eVJvb3RBdHNwaTo6Y2hpbGQoKQorICAgICAgICAv
LyB0byBjcmVhdGUgaXQgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZSBvYmplY3QuCisgICAgICAgIEFj
Y2Vzc2liaWxpdHk6OnBlcmZvcm1GdW5jdGlvbk9uTWFpblRocmVhZChbdGhpc10geworICAgICAg
ICAgICAgbV9yb290LmNoaWxkKCk7CisgICAgICAgIH0pOwogICAgIH0KKyAgICBtX3BhdGggPSBt
X3Jvb3QuYXRzcGkoKS5yZWdpc3Rlck9iamVjdCgqdGhpcywgV1RGTW92ZShpbnRlcmZhY2VzKSk7
CisgICAgbV9yb290LmF0c3BpKCkuYWRkQWNjZXNzaWJsZSgqdGhpcyk7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KIAorY29uc3QgU3RyaW5nJiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnBhdGgo
KQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgcmVnaXN0ZXJP
YmplY3QoKTsKICAgICByZXR1cm4gbV9wYXRoOwogfQogCkBAIC01MjgsNyArNTQzLDcgQEAgR1Zh
cmlhbnQqIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6aHlwZXJsaW5rUmVmZXJlbmNlKCkKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIGlmIChtX2h5cGVybGlu
a1BhdGguaXNOdWxsKCkpIHsKLSAgICAgICAgcGF0aCgpOworICAgICAgICByZWdpc3Rlck9iamVj
dCgpOwogICAgICAgICBtX2h5cGVybGlua1BhdGggPSBtX3Jvb3QuYXRzcGkoKS5yZWdpc3Rlckh5
cGVybGluaygqdGhpcywgeyB7IGNvbnN0X2Nhc3Q8R0RCdXNJbnRlcmZhY2VJbmZvKj4oJndlYmtp
dF9oeXBlcmxpbmtfaW50ZXJmYWNlKSwgJnNfaHlwZXJsaW5rRnVuY3Rpb25zIH0gfSk7CiAgICAg
fQogCkBAIC01NDIsNiArNTU3LDEwIEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpz
ZXRQYXJlbnQoc3RkOjpvcHRpb25hbDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fcGFyZW50ID0gYXRzcGlQYXJlbnQ7CisgICAgaWYgKCFtX2NvcmVP
YmplY3QgfHwgbV9jb3JlT2JqZWN0LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcm9vdC5hdHNwaSgpLnBhcmVudENoYW5nZWQoKnRoaXMpOwogICAg
IGlmIChtX3BhcmVudCAmJiAqbV9wYXJlbnQpCiAgICAgICAgIG1fcGFyZW50LnZhbHVlKCktPmNo
aWxkQWRkZWQoKnRoaXMpOwogfQpAQCAtNTY0LDE0ICs1ODMsMTMgQEAgc3RkOjpvcHRpb25hbDxB
Y2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnBhcmVu
dCgpIGNvbnMKIAogR1ZhcmlhbnQqIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6cGFyZW50UmVm
ZXJlbmNlKCkgY29uc3QKIHsKLSAgICBhdXRvIHBhcmVudEF0c3BpID0gcGFyZW50KCk7Ci0gICAg
aWYgKCFwYXJlbnRBdHNwaSkKKyAgICBpZiAoIW1fcGFyZW50KQogICAgICAgICByZXR1cm4gbV9y
b290LmF0c3BpKCkubnVsbFJlZmVyZW5jZSgpOwogCi0gICAgaWYgKCFwYXJlbnRBdHNwaS52YWx1
ZSgpKQorICAgIGlmICghbV9wYXJlbnQudmFsdWUoKSkKICAgICAgICAgcmV0dXJuIG1fcm9vdC5y
ZWZlcmVuY2UoKTsKIAotICAgIHJldHVybiBwYXJlbnRBdHNwaS52YWx1ZSgpLT5yZWZlcmVuY2Uo
KTsKKyAgICByZXR1cm4gbV9wYXJlbnQudmFsdWUoKS0+cmVmZXJlbmNlKCk7CiB9CiAKIHVuc2ln
bmVkIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6Y2hpbGRDb3VudCgpIGNvbnN0CkBAIC04NDks
NiArODY3LDEzIEBAIHVpbnQ2NF90IEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6c3RhdGUoKSBj
b25zdAogICAgIH0pOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6aXNEZWZ1
bmN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZy
b21NYWluVGhyZWFkPGJvb2w+KFt0aGlzXSgpIC0+IGJvb2wgeworICAgICAgICByZXR1cm4gIW1f
Y29yZU9iamVjdDsKKyAgICB9KTsKK30KKwogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNw
aTo6aWQoKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAg
LTExODgsMTEgKzEyMTMsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6Y2hpbGRB
ZGRlZChBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkmIGNoaWxkKQogICAgIGlmICghbV9pc1JlZ2lz
dGVyZWQubG9hZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjaGlsZCA9IFJlZiB7
IGNoaWxkIH1dIHsKLSAgICAgICAgaWYgKCFtX2NvcmVPYmplY3QpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIG1fcm9vdC5hdHNwaSgpLmNoaWxkcmVuQ2hhbmdlZCgqdGhpcywgY2hpbGQs
IEFjY2Vzc2liaWxpdHlBdHNwaTo6Q2hpbGRyZW5DaGFuZ2VkOjpBZGRlZCk7Ci0gICAgfSk7Cisg
ICAgbV9yb290LmF0c3BpKCkuY2hpbGRyZW5DaGFuZ2VkKCp0aGlzLCBjaGlsZCwgQWNjZXNzaWJp
bGl0eUF0c3BpOjpDaGlsZHJlbkNoYW5nZWQ6OkFkZGVkKTsKIH0KIAogdm9pZCBBY2Nlc3NpYmls
aXR5T2JqZWN0QXRzcGk6OmNoaWxkUmVtb3ZlZChBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkmIGNo
aWxkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nl
c3NpYmlsaXR5T2JqZWN0QXRzcGkuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRz
cGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmgKaW5kZXggZTA0Yjg1OTlkMTRkLi42OTViYWY0
NGUyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNj
ZXNzaWJpbGl0eU9iamVjdEF0c3BpLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaApAQCAtNDEsNiArNDEsOCBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk+IGNyZWF0ZShBWENv
cmVPYmplY3QqLCBBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpJik7CiAgICAgfkFjY2Vzc2liaWxpdHlP
YmplY3RBdHNwaSgpID0gZGVmYXVsdDsKIAorICAgIGJvb2wgcmVnaXN0ZXJPYmplY3QoKTsKKwog
ICAgIGVudW0gY2xhc3MgSW50ZXJmYWNlIDogdWludDE2X3QgewogICAgICAgICBBY2Nlc3NpYmxl
ID0gMSA8PCAwLAogICAgICAgICBDb21wb25lbnQgPSAxIDw8IDEsCkBAIC02MCw2ICs2Miw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpJiByb290KCkgY29uc3Qg
eyByZXR1cm4gbV9yb290OyB9CiAgICAgdm9pZCBzZXRQYXJlbnQoc3RkOjpvcHRpb25hbDxBY2Nl
c3NpYmlsaXR5T2JqZWN0QXRzcGkqPik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25h
bDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPiBwYXJlbnQoKSBjb25zdDsKKyAgICBHVmFyaWFu
dCogcGFyZW50UmVmZXJlbmNlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRh
dGVCYWNraW5nU3RvcmUoKTsKIAogICAgIHZvaWQgYXR0YWNoKEFYQ29yZU9iamVjdCopOwpAQCAt
ODMsNiArODYsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk+PiBjaGlsZHJlbigpIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSogY2hpbGRBdCh1bnNpZ25lZCkgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdWludDY0X3Qgc3RhdGUoKSBjb25zdDsKKyAgICBib29sIGlz
RGVmdW5jdCgpIGNvbnN0OwogICAgIHZvaWQgc3RhdGVDaGFuZ2VkKGNvbnN0IGNoYXIqLCBib29s
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBhdHRyaWJ1dGVz
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGFzaE1hcDx1aW50MzJfdCwgVmVjdG9yPFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk+Pj4gcmVsYXRpb25NYXAoKSBjb25zdDsKQEAg
LTE1Nyw3ICsxNjEsNiBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5T2JqZWN0QXRzcGk+PiB3cmFwcGVyVmVjdG9yKGNvbnN0IFZlY3RvcjxSZWZQdHI8QVhDb3Jl
T2JqZWN0Pj4mKSBjb25zdDsKICAgICBpbnQgaW5kZXhJblBhcmVudCgpIGNvbnN0OwotICAgIEdW
YXJpYW50KiBwYXJlbnRSZWZlcmVuY2UoKSBjb25zdDsKICAgICB2b2lkIGNoaWxkQWRkZWQoQWNj
ZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7CiAgICAgdm9pZCBjaGlsZFJlbW92ZWQoQWNjZXNzaWJp
bGl0eU9iamVjdEF0c3BpJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuY3BwCmluZGV4IDFhZjQw
MjZjYmU3YS4uMWFlOGYxN2Y4MjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5jcHAKQEAgLTE4
Nyw2ICsxODcsMzEgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpOjp1bnJlZ2lzdGVyT2Jq
ZWN0KCkKICAgICAgICAgbV9wYWdlLT5zZXRBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChudWxscHRy
KTsKIH0KIAorc3RhdGljIHZvaWQgcmVnaXN0ZXJTdWJ0cmVlKEFjY2Vzc2liaWxpdHlPYmplY3RB
dHNwaSogYXRzcGlPYmplY3QpCit7CisgICAgaWYgKCFhdHNwaU9iamVjdCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKCFhdHNwaU9iamVjdC0+cmVnaXN0ZXJPYmplY3QoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXRzcGlPYmplY3QtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOworICAgIGZv
ciAoYXV0byYgY2hpbGQgOiBhdHNwaU9iamVjdC0+Y2hpbGRyZW4oKSkKKyAgICAgICAgcmVnaXN0
ZXJTdWJ0cmVlKGNoaWxkLmdldCgpKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5Um9vdEF0c3Bp
OjpyZWdpc3RlclRyZWUoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CisgICAgaWYgKG1fcGFyZW50VW5pcXVlTmFtZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcmVnaXN0ZXJTdWJ0cmVlKEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFp
blRocmVhZDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPihbdGhpc10oKSAtPiBBY2Nlc3NpYmls
aXR5T2JqZWN0QXRzcGkqIHsKKyAgICAgICAgcmV0dXJuIGNoaWxkKCk7CisgICAgfSkpOworICAg
IG1faXNUcmVlUmVnaXN0ZXJlZC5zdG9yZSh0cnVlKTsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5
Um9vdEF0c3BpOjpzZXRQYXRoKFN0cmluZyYmIHBhdGgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5Um9vdEF0c3BpLmgKaW5kZXggZTMxZWIxYTQxY2Mw
Li4xMDRlMzQzNzNmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5oCkBAIC0yMiw2ICsyMiw3IEBA
CiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpICYmIFVTRShBVFNQSSkKICNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5QXRzcGkuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSA8d3RmL0F0
b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC00MCw2ICs0
MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVnaXN0ZXJPYmplY3QoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyT2JqZWN0KCk7
CisgICAgdm9pZCByZWdpc3RlclRyZWUoKTsKKyAgICBib29sIGlzVHJlZVJlZ2lzdGVyZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzVHJlZVJlZ2lzdGVyZWQubG9hZCgpOyB9CiAgICAgdm9pZCBzZXRQ
YXRoKFN0cmluZyYmKTsKIAogICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGF0aDsgfQpAQCAtNjYsNiArNjksNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7
CiAgICAgU3RyaW5nIG1fcGFyZW50VW5pcXVlTmFtZTsKICAgICBTdHJpbmcgbV9wYXJlbnRQYXRo
OworICAgIEF0b21pYzxib29sPiBtX2lzVHJlZVJlZ2lzdGVyZWQgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="472665"
          type_id="1"
          status="+"
          setter="jdiggs"
    />
          </attachment>
      

    </bug>

</bugzilla>