<?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>290117</bug_id>
          
          <creation_ts>2025-03-20 12:47:18 -0700</creation_ts>
          <short_desc>[Cleanup] Move functions from RenderObject to RenderElement (cont...)</short_desc>
          <delta_ts>2025-03-21 05:10:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2104722</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-03-20 12:47:18 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2104723</commentid>
    <comment_count>1</comment_count>
      <attachid>474648</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-03-20 12:48:42 -0700</bug_when>
    <thetext>Created attachment 474648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2104812</commentid>
    <comment_count>2</comment_count>
      <attachid>474657</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-03-20 17:16:01 -0700</bug_when>
    <thetext>Created attachment 474657
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2104939</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-03-21 05:09:22 -0700</bug_when>
    <thetext>Committed 292469@main (24ae3c3a7501): &lt;https://commits.webkit.org/292469@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 474657.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2104940</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-03-21 05:10:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/147573029&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>474648</attachid>
            <date>2025-03-20 12:48:42 -0700</date>
            <delta_ts>2025-03-20 17:16:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-290117-20250320124841.patch</filename>
            <type>text/plain</type>
            <size>19246</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1ODQ2ODJhOTc5OGRhNGMxMmExNzE3MGIwZGUyZWMxNTVjNTEwN2JlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjAgTWFyIDIwMjUgMTI6NDc6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gTW92ZSBmdW5jdGlvbnMgZnJvbSBSZW5kZXJPYmplY3QgdG8gUmVuZGVyRWxlbWVudAogKGNv
bnQuLi4pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAxMTcKClJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c2hvdWxkR2V0VGV4dEZyb21Ob2RlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcDoKKFdlYkNvcmU6
Okluc3BlY3RvckxheWVyVHJlZUFnZW50OjpidWlsZE9iamVjdEZvckxheWVyKToKKiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxBbmNob3JpbmdDb250cm9sbGVyLmNwcDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CihXZWJDb3JlOjpSZW5k
ZXJFbGVtZW50Ojppc0JlZm9yZUNvbnRlbnQpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6aXNB
ZnRlckNvbnRlbnQpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6aXNCZWZvcmVPckFmdGVyQ29u
dGVudCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKFdlYkNv
cmU6OlJlbmRlckVsZW1lbnQ6OmlzRml4ZWRQb3NpdGlvbmVkIGNvbnN0KToKKFdlYkNvcmU6OlJl
bmRlckVsZW1lbnQ6OmlzQWJzb2x1dGVseVBvc2l0aW9uZWQgY29uc3QpOgooV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6aXNWaWV3VHJhbnNpdGlvbkNvbnRhaW5lciBjb25zdCk6CihXZWJDb3JlOjpS
ZW5kZXJFbGVtZW50Ojppc1ZpZXdUcmFuc2l0aW9uUHNldWRvIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaDoKKFdlYkNvcmU6OlJlbmRlckVs
ZW1lbnQ6Omhhc1BvdGVudGlhbGx5U2Nyb2xsYWJsZU92ZXJmbG93IGNvbnN0KToKKFdlYkNvcmU6
OlJlbmRlckVsZW1lbnQ6OmlzQmVmb3JlQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJF
bGVtZW50Ojppc0FmdGVyQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojpp
c0JlZm9yZU9yQWZ0ZXJDb250ZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVj
dDo6c2hvdWxkVXNlUG9zaXRpb25lZENsaXBwaW5nIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6b3V0cHV0
UmVuZGVyT2JqZWN0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0Lmg6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUmVuZGVyRnJhZ21lbnRDb250YWluZXIg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc091dE9mRmxvd1Bvc2l0aW9uZWQgY29u
c3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1N0aWNraWx5UG9zaXRpb25lZCBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzVmlld1RyYW5zaXRpb25Db250YWluZXIgY29uc3Qp
OiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1ZpZXdUcmFuc2l0aW9uUHNldWRv
IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNCZWZvcmVDb250ZW50
KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNBZnRlckNvbnRlbnQpOiBEZWxl
dGVkLgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0JlZm9yZU9yQWZ0ZXJDb250ZW50KTogRGVs
ZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNGaXhlZFBvc2l0aW9uZWQgY29uc3QpOiBE
ZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0Fic29sdXRlbHlQb3NpdGlvbmVkIGNv
bnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hvdWxkVXNlUG9zaXRpb25l
ZENsaXBwaW5nIGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNCZWZv
cmVDb250ZW50IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNBZnRl
ckNvbnRlbnQgY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0JlZm9y
ZU9yQWZ0ZXJDb250ZW50IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
aGFzUG90ZW50aWFsbHlTY3JvbGxhYmxlT3ZlcmZsb3cgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHA6
CihXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6SW5saW5lOjphdHRhY2hJZ25vcmluZ0NvbnRp
bnVhdGlvbik6Ci0tLQogLi4uL0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgICAgICAg
ICAgIHwgIDIgKy0KIC4uLi9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwICAgICAg
ICB8IDExICsrKy0tCiAuLi4vc2Nyb2xsaW5nL1Njcm9sbEFuY2hvcmluZ0NvbnRyb2xsZXIuY3Bw
ICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwICAg
IHwgMTUgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oICAg
ICAgfCAxNSArKysrKysKIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5l
cy5oICB8IDMyICsrKysrKysrKysrKysKIC4uLi9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdC5oICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmggICAgICAgfCA0NyAtLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXJJbmxpbmUuY3BwICAgICAgfCAgMiArLQogMTAgZmlsZXMgY2hhbmdlZCwgNzQgaW5z
ZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggNGY1
NWIzYWJiZDZhLi5lOTZmMDg4NzM1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNzMxLDcg
KzczMSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2hvdWxkR2V0VGV4dEZy
b21Ob2RlKGNvbnN0IFRleHRVbmRlckVsZW1lbnRNb2RlCiAKICAgICAvLyBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KCkgY2FsbHMgcmFuZ2VPZkNvbnRlbnRzKCkg
dG8gY3JlYXRlIHRoZSB0ZXh0CiAgICAgLy8gcmFuZ2UuIHJhbmdlT2ZDb250ZW50cygpIGRvZXMg
bm90IGluY2x1ZGUgQ1NTLWdlbmVyYXRlZCBjb250ZW50LgotICAgIGlmIChtX3JlbmRlcmVyLT5p
c0JlZm9yZU9yQWZ0ZXJDb250ZW50KCkpCisgICAgaWYgKENoZWNrZWRQdHIgcmVuZGVyRWxlbWVu
dCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJFbGVtZW50PihtX3JlbmRlcmVyLmdldCgpKTsgcmVu
ZGVyRWxlbWVudCAmJiByZW5kZXJFbGVtZW50LT5pc0JlZm9yZU9yQWZ0ZXJDb250ZW50KCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9k
ZSgpKSB7CiAgICAgICAgIE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5wc2V1ZG9Bd2FyZUZpcnN0
Q2hpbGQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggZjU1NzQxYzg1ZWJiLi40N2E2ZWJl
ZTVhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5k
ZXJDaGlsZEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudElubGluZXMuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgpAQCAtMTU2LDkgKzE1Nyw5IEBAIHZv
aWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmdhdGhlckxheWVyc1VzaW5nUmVuZGVyTGF5ZXJI
aWVyYXJjaHkoUmVuZGVyTGF5ZXIqCiAKIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpMYXllclRy
ZWU6OkxheWVyPiBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6YnVpbGRPYmplY3RGb3JMYXllcihS
ZW5kZXJMYXllciogcmVuZGVyTGF5ZXIpCiB7Ci0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
ICZyZW5kZXJMYXllci0+cmVuZGVyZXIoKTsKKyAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlciA9
ICZyZW5kZXJMYXllci0+cmVuZGVyZXIoKTsKICAgICBSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tp
bmcgPSByZW5kZXJMYXllci0+YmFja2luZygpOwotICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+
bm9kZSgpOworICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+ZWxlbWVudCgpOwogCiAgICAgYm9v
bCBpc1JlZmxlY3Rpb24gPSByZW5kZXJMYXllci0+aXNSZWZsZWN0aW9uKCk7CiAgICAgYm9vbCBp
c0dlbmVyYXRlZCA9IChpc1JlZmxlY3Rpb24gPyByZW5kZXJlci0+cGFyZW50KCkgOiByZW5kZXJl
ciktPmlzQmVmb3JlT3JBZnRlckNvbnRlbnQoKTsKQEAgLTE2OSw3ICsxNzAsNyBAQCBSZWY8SW5z
cGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpMYXllcj4gSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQ6OmJ1aWxkT2JqZWN0RgogICAgIGVsc2UgaWYgKGlzUmVmbGVjdGlvbiAmJiBpc0dlbmVyYXRl
ZCkKICAgICAgICAgbm9kZSA9IHJlbmRlcmVyLT5wYXJlbnQoKS0+Z2VuZXJhdGluZ0VsZW1lbnQo
KTsKICAgICBlbHNlIGlmIChpc0dlbmVyYXRlZCkKLSAgICAgICAgbm9kZSA9IHJlbmRlcmVyLT5n
ZW5lcmF0aW5nTm9kZSgpOworICAgICAgICBub2RlID0gcmVuZGVyZXItPmdlbmVyYXRpbmdFbGVt
ZW50KCk7CiAgICAgZWxzZSBpZiAoaXNSZWZsZWN0aW9uIHx8IGlzQW5vbnltb3VzKQogICAgICAg
ICBub2RlID0gcmVuZGVyZXItPnBhcmVudCgpLT5lbGVtZW50KCk7CiAKQEAgLTE5Myw3ICsxOTQs
NyBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpMYXllcj4gSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0RgogICAgICAgICBpZiAoaXNSZWZsZWN0aW9uKQog
ICAgICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+cGFyZW50KCk7CiAgICAgICAgIGxheWVy
T2JqZWN0LT5zZXRJc0dlbmVyYXRlZENvbnRlbnQodHJ1ZSk7Ci0gICAgICAgIGxheWVyT2JqZWN0
LT5zZXRQc2V1ZG9FbGVtZW50SWQoYmluZFBzZXVkb0VsZW1lbnQoZG93bmNhc3Q8UHNldWRvRWxl
bWVudD4ocmVuZGVyZXItPm5vZGUoKSkpKTsKKyAgICAgICAgbGF5ZXJPYmplY3QtPnNldFBzZXVk
b0VsZW1lbnRJZChiaW5kUHNldWRvRWxlbWVudChkb3duY2FzdDxQc2V1ZG9FbGVtZW50PihyZW5k
ZXJlci0+ZWxlbWVudCgpKSkpOwogICAgICAgICBpZiAocmVuZGVyZXItPmlzQmVmb3JlQ29udGVu
dCgpKQogICAgICAgICAgICAgbGF5ZXJPYmplY3QtPnNldFBzZXVkb0VsZW1lbnQoImJlZm9yZSJf
cyk7CiAgICAgICAgIGVsc2UgaWYgKHJlbmRlcmVyLT5pc0FmdGVyQ29udGVudCgpKQpAQCAtMjAz
LDcgKzIwNCw3IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpMYXllclRyZWU6OkxheWVyPiBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6YnVpbGRPYmplY3RGCiAgICAgLy8gRklYTUU6IFJlbmRl
clZpZXcgaXMgbm93IHJlYWxseSBhbm9ueW1vdXMgYnV0IGRvbid0IHRlbGwgYWJvdXQgaXQgdG8g
dGhlIGZyb250ZW5kIGJlZm9yZSBtYWtpbmcgc3VyZSBpdCBjYW4gaGFuZGxlIGl0LgogICAgIGlm
IChpc0Fub255bW91cyAmJiAhcmVuZGVyZXItPmlzUmVuZGVyVmlldygpKSB7CiAgICAgICAgIGxh
eWVyT2JqZWN0LT5zZXRJc0Fub255bW91cyh0cnVlKTsKLSAgICAgICAgYXV0byYgc3R5bGUgPSBk
b3duY2FzdDxSZW5kZXJFbGVtZW50PigqcmVuZGVyZXIpLnN0eWxlKCk7CisgICAgICAgIGF1dG8m
IHN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CiAgICAgICAgIGlmIChzdHlsZS5wc2V1ZG9FbGVt
ZW50VHlwZSgpID09IFBzZXVkb0lkOjpGaXJzdExldHRlcikKICAgICAgICAgICAgIGxheWVyT2Jq
ZWN0LT5zZXRQc2V1ZG9FbGVtZW50KCJmaXJzdC1sZXR0ZXIiX3MpOwogICAgICAgICBlbHNlIGlm
IChzdHlsZS5wc2V1ZG9FbGVtZW50VHlwZSgpID09IFBzZXVkb0lkOjpGaXJzdExpbmUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxBbmNob3JpbmdDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbEFuY2hvcmlu
Z0NvbnRyb2xsZXIuY3BwCmluZGV4IDAwMzI3MmM5Yzg0OS4uNWYwZDg0MTIwZjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxBbmNob3JpbmdDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxBbmNob3Jp
bmdDb250cm9sbGVyLmNwcApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgIkxvY2FsRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgorI2lu
Y2x1ZGUgIlJlbmRlckVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYS5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdElubGluZXMuaCIKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiVHlwZWRFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9y
SW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9UWm9uZU1hbGxvY0lubGluZXMuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA2ZjUwNjJiZWFjYTkuLjc1
OGFkMjY2ZDFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cApAQCAtMjI3Myw2ICsyMjczLDIxIEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6aGFzVmlld1RyYW5z
aXRpb25OYW1lKCkgY29uc3QKICAgICByZXR1cm4gIXN0eWxlKCkudmlld1RyYW5zaXRpb25OYW1l
KCkuaXNOb25lKCk7CiB9CiAKK2Jvb2wgUmVuZGVyRWxlbWVudDo6aXNCZWZvcmVDb250ZW50KGNv
bnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKQoreworICAgIHJldHVybiByZW5kZXJlciAmJiBy
ZW5kZXJlci0+aXNCZWZvcmVDb250ZW50KCk7Cit9CisKK2Jvb2wgUmVuZGVyRWxlbWVudDo6aXNB
ZnRlckNvbnRlbnQoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCit7CisgICAgcmV0dXJu
IHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0FmdGVyQ29udGVudCgpOworfQorCitib29sIFJlbmRl
ckVsZW1lbnQ6OmlzQmVmb3JlT3JBZnRlckNvbnRlbnQoY29uc3QgUmVuZGVyRWxlbWVudCogcmVu
ZGVyZXIpCit7CisgICAgcmV0dXJuIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0JlZm9yZU9yQWZ0
ZXJDb250ZW50KCk7Cit9CisKIGJvb2wgUmVuZGVyRWxlbWVudDo6cmVxdWlyZXNSZW5kZXJpbmdD
b25zb2xpZGF0aW9uRm9yVmlld1RyYW5zaXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBoYXNW
aWV3VHJhbnNpdGlvbk5hbWUoKSB8fCBjYXB0dXJlZEluVmlld1RyYW5zaXRpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IDI5NjE5OWFhNDEzOS4uN2I2
ZGU3Zjc2OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAg
LTMxNyw2ICszMTcsMjEgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdGhlIHJlbmRlcmVyIHdo
aWNoIHdhcyBtYXBwZWQgdG8gKGNvbnRhaW5lciBvciBhbmNlc3RvclRvU3RvcEF0KS4KICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlckVsZW1lbnQqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlN
YXAmKSBjb25zdDsKIAorICAgIGJvb2wgaXNGaXhlZFBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVy
biBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBzdHlsZSgpLnBvc2l0aW9uKCkgPT0gUG9zaXRp
b25UeXBlOjpGaXhlZDsgfQorICAgIGJvb2wgaXNBYnNvbHV0ZWx5UG9zaXRpb25lZCgpIGNvbnN0
IHsgcmV0dXJuIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIHN0eWxlKCkucG9zaXRpb24oKSA9
PSBQb3NpdGlvblR5cGU6OkFic29sdXRlOyB9CisKKyAgICBib29sIGlzVmlld1RyYW5zaXRpb25D
b250YWluZXIoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLnBzZXVkb0VsZW1lbnRUeXBlKCkgPT0g
UHNldWRvSWQ6OlZpZXdUcmFuc2l0aW9uIHx8IHN0eWxlKCkucHNldWRvRWxlbWVudFR5cGUoKSA9
PSBQc2V1ZG9JZDo6Vmlld1RyYW5zaXRpb25Hcm91cCB8fCBzdHlsZSgpLnBzZXVkb0VsZW1lbnRU
eXBlKCkgPT0gUHNldWRvSWQ6OlZpZXdUcmFuc2l0aW9uSW1hZ2VQYWlyOyB9CisgICAgYm9vbCBp
c1ZpZXdUcmFuc2l0aW9uUHNldWRvKCkgY29uc3QgeyByZXR1cm4gaXNSZW5kZXJWaWV3VHJhbnNp
dGlvbkNhcHR1cmUoKSB8fCBpc1ZpZXdUcmFuc2l0aW9uQ29udGFpbmVyKCk7IH0KKworICAgIGlu
bGluZSBib29sIGhhc1BvdGVudGlhbGx5U2Nyb2xsYWJsZU92ZXJmbG93KCkgY29uc3Q7CisKKyAg
ICBpbmxpbmUgYm9vbCBpc0JlZm9yZUNvbnRlbnQoKSBjb25zdDsKKyAgICBpbmxpbmUgYm9vbCBp
c0FmdGVyQ29udGVudCgpIGNvbnN0OworICAgIGlubGluZSBib29sIGlzQmVmb3JlT3JBZnRlckNv
bnRlbnQoKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBpc0JlZm9yZUNvbnRlbnQoY29uc3QgUmVu
ZGVyRWxlbWVudCopOworICAgIHN0YXRpYyBib29sIGlzQWZ0ZXJDb250ZW50KGNvbnN0IFJlbmRl
ckVsZW1lbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBpc0JlZm9yZU9yQWZ0ZXJDb250ZW50KGNvbnN0
IFJlbmRlckVsZW1lbnQqKTsKKwogcHJvdGVjdGVkOgogICAgIFJlbmRlckVsZW1lbnQoVHlwZSwg
RWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIE9wdGlvblNldDxUeXBlRmxhZz4sIFR5cGVTcGVjaWZp
Y0ZsYWdzKTsKICAgICBSZW5kZXJFbGVtZW50KFR5cGUsIERvY3VtZW50JiwgUmVuZGVyU3R5bGUm
JiwgT3B0aW9uU2V0PFR5cGVGbGFnPiwgVHlwZVNwZWNpZmljRmxhZ3MpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnRJbmxpbmVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaAppbmRleCAyYzUyMDVmZDU1
YmUuLjE3YTMwMGFiMmFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnRJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnRJbmxpbmVzLmgKQEAgLTEyNSw2ICsxMjUsMzggQEAgaW5saW5lIGJvb2wgUmVuZGVy
RWxlbWVudDo6Y3JlYXRlc0dyb3VwRm9yU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQog
ICAgICAgICB8fCBzdHlsZS5oYXNCbGVuZE1vZGUoKTsKIH0KIAoraW5saW5lIGJvb2wgUmVuZGVy
RWxlbWVudDo6aGFzUG90ZW50aWFsbHlTY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdAoreworICAg
IC8vIFdlIG9ubHkgbmVlZCB0byB0ZXN0IG9uZSBvdmVyZmxvdyBkaW1lbnNpb24gc2luY2UgJ3Zp
c2libGUnIGFuZCAnY2xpcCcgYWx3YXlzIGdldCBhY2NvbXBhbmllZAorICAgIC8vIHdpdGggJ2Ns
aXAnIG9yICd2aXNpYmxlJyBpbiB0aGUgb3RoZXIgZGltZW5zaW9uIChzZWUgU3R5bGU6OkFkanVz
dGVyOjphZGp1c3QpLgorICAgIHJldHVybiBoYXNOb25WaXNpYmxlT3ZlcmZsb3coKSAmJiBzdHls
ZSgpLm92ZXJmbG93WCgpICE9IE92ZXJmbG93OjpDbGlwICYmIHN0eWxlKCkub3ZlcmZsb3dYKCkg
IT0gT3ZlcmZsb3c6OlZpc2libGU7Cit9CisKK2lubGluZSBib29sIFJlbmRlckVsZW1lbnQ6Omlz
QmVmb3JlQ29udGVudCgpIGNvbnN0Cit7CisgICAgLy8gVGV4dCBub2RlcyBkb24ndCBoYXZlIHRo
ZWlyIG93biBzdHlsZXMsIHNvIGlnbm9yZSB0aGUgc3R5bGUgb24gYSB0ZXh0IG5vZGUuCisgICAg
Ly8gaWYgKGlzUmVuZGVyVGV4dCgpKQorICAgIC8vICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KHN0eWxlKCkucHNldWRvRWxlbWVudFR5cGUoKSAhPSBQc2V1ZG9JZDo6QmVmb3JlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIFJlbmRl
ckVsZW1lbnQ6OmlzQWZ0ZXJDb250ZW50KCkgY29uc3QKK3sKKyAgICAvLyBUZXh0IG5vZGVzIGRv
bid0IGhhdmUgdGhlaXIgb3duIHN0eWxlcywgc28gaWdub3JlIHRoZSBzdHlsZSBvbiBhIHRleHQg
bm9kZS4KKyAgICAvLyBpZiAoaXNSZW5kZXJUZXh0KCkpCisgICAgLy8gICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoc3R5bGUoKS5wc2V1ZG9FbGVtZW50VHlwZSgpICE9IFBzZXVkb0lkOjpBZnRl
cikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitpbmxpbmUg
Ym9vbCBSZW5kZXJFbGVtZW50Ojppc0JlZm9yZU9yQWZ0ZXJDb250ZW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gaXNCZWZvcmVDb250ZW50KCkgfHwgaXNBZnRlckNvbnRlbnQoKTsKK30KKwogaW5s
aW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlBbnlDb250YWlubWVudCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSB8fCBzaG91bGRB
cHBseVNpemVDb250YWlubWVudCgpIHx8IHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50
KCkgfHwgc2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KCkgfHwgc2hvdWxkQXBwbHlQYWludENv
bnRhaW5tZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuaAppbmRleCBmNGFlMjJlOGE3OWMuLjU1YTM2NWY0ZWU3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC0x
MTgsNiArMTE4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0
JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25P
cHRpb24+KSBjb25zdCA9IDA7CiAgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCkgY29uc3Q7CiAKKyAgICBib29sIHNob3VsZFVzZVBvc2l0aW9uZWRDbGlwcGluZygpIGNvbnN0
IHsgcmV0dXJuIGlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSB8fCBpc1JlbmRlclNWR0ZvcmVpZ25P
YmplY3QoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChUeXBl
LCBFbGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgT3B0aW9uU2V0PFR5cGVGbGFnPiwgVHlwZVNwZWNp
ZmljRmxhZ3MpOwogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QoVHlwZSwgRG9jdW1lbnQmLCBS
ZW5kZXJTdHlsZSYmLCBPcHRpb25TZXQ8VHlwZUZsYWc+LCBUeXBlU3BlY2lmaWNGbGFncyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDVjM2Y0NTQ5YTUx
NS4uM2MwMjk1YTc4MTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcApAQCAtMTI5Myw3ICsxMjkzLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6Om91dHB1dFJlbmRl
ck9iamVjdChUZXh0U3RyZWFtJiBzdHJlYW0sIGJvb2wgbWFyaywgaW50IGRlcHRoKQogICAgICAg
ICBlbHNlIGlmIChpc1N0aWNraWx5UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgc3RyZWFtIDw8
ICJLIjsKICAgICAgICAgZWxzZSBpZiAoaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAg
ICAgICAgIGlmIChpc0Fic29sdXRlbHlQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICBpZiAoZG93
bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnRoaXMpLmlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSkKICAg
ICAgICAgICAgICAgICBzdHJlYW0gPDwgIkEiOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIHN0cmVhbSA8PCAiWCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKaW5kZXggMzQ5ZGRmMGJmNmRjLi4wNGI1YzcyOTI2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTQ1OCw3ICs0NTgsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1JlbmRlck1vZGVsKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6Ok1vZGVsOyB9
CiAjZW5kaWYKICAgICBib29sIGlzUmVuZGVyRnJhZ21lbnRDb250YWluZXIoKSBjb25zdCB7IHJl
dHVybiBpc1JlbmRlckJsb2NrRmxvdygpICYmIG1fdHlwZVNwZWNpZmljRmxhZ3MuYmxvY2tGbG93
RmxhZ3MoKS5jb250YWlucyhCbG9ja0Zsb3dGbGFnOjpJc0ZyYWdtZW50Q29udGFpbmVyKTsgfQot
ICAgIGJvb2wgaXNWaWV3VHJhbnNpdGlvbkNvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIHN0eWxl
KCkucHNldWRvRWxlbWVudFR5cGUoKSA9PSBQc2V1ZG9JZDo6Vmlld1RyYW5zaXRpb24gfHwgc3R5
bGUoKS5wc2V1ZG9FbGVtZW50VHlwZSgpID09IFBzZXVkb0lkOjpWaWV3VHJhbnNpdGlvbkdyb3Vw
IHx8IHN0eWxlKCkucHNldWRvRWxlbWVudFR5cGUoKSA9PSBQc2V1ZG9JZDo6Vmlld1RyYW5zaXRp
b25JbWFnZVBhaXI7IH0KICAgICBib29sIGlzUmVuZGVyUmVwbGljYSgpIGNvbnN0IHsgcmV0dXJu
IHR5cGUoKSA9PSBUeXBlOjpSZXBsaWNhOyB9CiAKICAgICBib29sIGlzUmVuZGVyU2xpZGVyKCkg
Y29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OlNsaWRlcjsgfQpAQCAtNDk5LDE1ICs0OTgs
NiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVGFibGVQYXJ0KCkgY29uc3QgeyByZXR1cm4gaXNS
ZW5kZXJUYWJsZUNlbGwoKSB8fCBpc1JlbmRlclRhYmxlQ29sKCkgfHwgaXNSZW5kZXJUYWJsZUNh
cHRpb24oKSB8fCBpc1JlbmRlclRhYmxlUm93KCkgfHwgaXNSZW5kZXJUYWJsZVNlY3Rpb24oKTsg
fQogCi0gICAgYm9vbCBpc1ZpZXdUcmFuc2l0aW9uUHNldWRvKCkgY29uc3QgeyByZXR1cm4gaXNS
ZW5kZXJWaWV3VHJhbnNpdGlvbkNhcHR1cmUoKSB8fCBpc1ZpZXdUcmFuc2l0aW9uQ29udGFpbmVy
KCk7IH0KLQotICAgIGlubGluZSBib29sIGlzQmVmb3JlQ29udGVudCgpIGNvbnN0OwotICAgIGlu
bGluZSBib29sIGlzQWZ0ZXJDb250ZW50KCkgY29uc3Q7Ci0gICAgaW5saW5lIGJvb2wgaXNCZWZv
cmVPckFmdGVyQ29udGVudCgpIGNvbnN0OwotICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0JlZm9y
ZUNvbnRlbnQoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmotPmlz
QmVmb3JlQ29udGVudCgpOyB9Ci0gICAgc3RhdGljIGlubGluZSBib29sIGlzQWZ0ZXJDb250ZW50
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqKSB7IHJldHVybiBvYmogJiYgb2JqLT5pc0FmdGVyQ29u
dGVudCgpOyB9Ci0gICAgc3RhdGljIGlubGluZSBib29sIGlzQmVmb3JlT3JBZnRlckNvbnRlbnQo
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmotPmlzQmVmb3JlT3JB
ZnRlckNvbnRlbnQoKTsgfQotCiAgICAgYm9vbCBiZWluZ0Rlc3Ryb3llZCgpIGNvbnN0IHsgcmV0
dXJuIG1fc3RhdGVCaXRmaWVsZHMuaGFzRmxhZyhTdGF0ZUZsYWc6OkJlaW5nRGVzdHJveWVkKTsg
fQogCiAgICAgYm9vbCBldmVySGFkTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJpdGZp
ZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6RXZlckhhZExheW91dCk7IH0KQEAgLTY1NywxMSArNjQ3
LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9z
dGF0ZUJpdGZpZWxkcy5pc1Bvc2l0aW9uZWQoKTsgfQogICAgIGJvb2wgaXNJbkZsb3dQb3NpdGlv
bmVkKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJpdGZpZWxkcy5pc1JlbGF0aXZlbHlQb3NpdGlv
bmVkKCkgfHwgbV9zdGF0ZUJpdGZpZWxkcy5pc1N0aWNraWx5UG9zaXRpb25lZCgpOyB9CiAgICAg
Ym9vbCBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlQml0Zmll
bGRzLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpOyB9IC8vIGFic29sdXRlIG9yIGZpeGVkIHBvc2l0
aW9uaW5nCi0gICAgYm9vbCBpc0ZpeGVkUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIGlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpICYmIHN0eWxlKCkucG9zaXRpb24oKSA9PSBQb3NpdGlvblR5cGU6
OkZpeGVkOyB9Ci0gICAgYm9vbCBpc0Fic29sdXRlbHlQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1
cm4gaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUoKS5wb3NpdGlvbigpID09IFBvc2l0
aW9uVHlwZTo6QWJzb2x1dGU7IH0KICAgICBib29sIGlzUmVsYXRpdmVseVBvc2l0aW9uZWQoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlQml0ZmllbGRzLmlzUmVsYXRpdmVseVBvc2l0aW9uZWQoKTsg
fQogICAgIGJvb2wgaXNTdGlja2lseVBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRl
Qml0ZmllbGRzLmlzU3RpY2tpbHlQb3NpdGlvbmVkKCk7IH0KLSAgICBib29sIHNob3VsZFVzZVBv
c2l0aW9uZWRDbGlwcGluZygpIGNvbnN0IHsgcmV0dXJuIGlzQWJzb2x1dGVseVBvc2l0aW9uZWQo
KSB8fCBpc1JlbmRlclNWR0ZvcmVpZ25PYmplY3QoKTsgfQogCiAgICAgYm9vbCBpc1JlbmRlclRl
eHQoKSBjb25zdCB7IHJldHVybiBtX3R5cGVGbGFncy5jb250YWlucyhUeXBlRmxhZzo6SXNUZXh0
KTsgfQogICAgIGJvb2wgaXNSZW5kZXJMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiB0eXBlKCkg
PT0gVHlwZTo6TGluZUJyZWFrOyB9CkBAIC03MTQsOCArNzAxLDYgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBoYXNOb25WaXNpYmxlT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX3N0YXRlQml0Zmll
bGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpIYXNOb25WaXNpYmxlT3ZlcmZsb3cpOyB9CiAKLSAgICBi
b29sIGhhc1BvdGVudGlhbGx5U2Nyb2xsYWJsZU92ZXJmbG93KCkgY29uc3Q7Ci0KICAgICBib29s
IGhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVCaXRm
aWVsZHMuaGFzRmxhZyhTdGF0ZUZsYWc6Okhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSk7IH0g
Ly8gVHJhbnNmb3JtLCBwZXJzcGVjdGl2ZSBvciB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNk
LgogICAgIGlubGluZSBib29sIGlzVHJhbnNmb3JtZWQoKSBjb25zdDsKICAgICBpbmxpbmUgYm9v
bCBoYXNUcmFuc2Zvcm1PclBlcnNwZWN0aXZlKCkgY29uc3Q7CkBAIC0xMzU0LDMxICsxMzM5LDYg
QEAgaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpyZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBj
b25zdAogICAgIHJldHVybiBkb2N1bWVudCgpLnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpOwog
fQogCi1pbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OmlzQmVmb3JlQ29udGVudCgpIGNvbnN0Ci17
Ci0gICAgLy8gVGV4dCBub2RlcyBkb24ndCBoYXZlIHRoZWlyIG93biBzdHlsZXMsIHNvIGlnbm9y
ZSB0aGUgc3R5bGUgb24gYSB0ZXh0IG5vZGUuCi0gICAgaWYgKGlzUmVuZGVyVGV4dCgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlKCkucHNldWRvRWxlbWVudFR5cGUoKSAh
PSBQc2V1ZG9JZDo6QmVmb3JlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRy
dWU7Ci19Ci0KLWlubGluZSBib29sIFJlbmRlck9iamVjdDo6aXNBZnRlckNvbnRlbnQoKSBjb25z
dAotewotICAgIC8vIFRleHQgbm9kZXMgZG9uJ3QgaGF2ZSB0aGVpciBvd24gc3R5bGVzLCBzbyBp
Z25vcmUgdGhlIHN0eWxlIG9uIGEgdGV4dCBub2RlLgotICAgIGlmIChpc1JlbmRlclRleHQoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChzdHlsZSgpLnBzZXVkb0VsZW1lbnRUeXBl
KCkgIT0gUHNldWRvSWQ6OkFmdGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLWlubGluZSBib29sIFJlbmRlck9iamVjdDo6aXNCZWZvcmVPckFmdGVyQ29u
dGVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzQmVmb3JlQ29udGVudCgpIHx8IGlzQWZ0ZXJD
b250ZW50KCk7Ci19Ci0KIGlubGluZSB2b2lkIFJlbmRlck9iamVjdDo6c2V0TmVlZHNMYXlvdXQo
TWFya2luZ0JlaGF2aW9yIG1hcmtQYXJlbnRzKQogewogICAgIEFTU0VSVCghaXNTZXROZWVkc0xh
eW91dEZvcmJpZGRlbigpKTsKQEAgLTE1MzEsMTMgKzE0OTEsNiBAQCBpbmxpbmUgUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJPYmplY3Q6Om5leHRJbkZsb3dTaWJsaW5nKCkgY29uc3QKICAgICByZXR1cm4g
bmV4dFNpYmxpbmc7CiB9CiAKLWlubGluZSBib29sIFJlbmRlck9iamVjdDo6aGFzUG90ZW50aWFs
bHlTY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdAotewotICAgIC8vIFdlIG9ubHkgbmVlZCB0byB0
ZXN0IG9uZSBvdmVyZmxvdyBkaW1lbnNpb24gc2luY2UgJ3Zpc2libGUnIGFuZCAnY2xpcCcgYWx3
YXlzIGdldCBhY2NvbXBhbmllZAotICAgIC8vIHdpdGggJ2NsaXAnIG9yICd2aXNpYmxlJyBpbiB0
aGUgb3RoZXIgZGltZW5zaW9uIChzZWUgU3R5bGU6OkFkanVzdGVyOjphZGp1c3QpLgotICAgIHJl
dHVybiBoYXNOb25WaXNpYmxlT3ZlcmZsb3coKSAmJiBzdHlsZSgpLm92ZXJmbG93WCgpICE9IE92
ZXJmbG93OjpDbGlwICYmIHN0eWxlKCkub3ZlcmZsb3dYKCkgIT0gT3ZlcmZsb3c6OlZpc2libGU7
Ci19Ci0KICNpZiBFTkFCTEUoTUFUSE1MKQogaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0Ojppc1Jl
bmRlck1hdGhNTFJvdygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVySW5saW5lLmNwcAppbmRleCAx
NjQwOGY2NjI3YmMuLmIzNDE2ODhmYWM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJJbmxpbmUuY3BwCkBA
IC0xNzgsNyArMTc4LDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6SW5saW5lOjppbnNlcnRD
aGlsZFRvQ29udGludWF0aW9uKFJlbmRlcklubGluZSYgcGFyZW50LAogdm9pZCBSZW5kZXJUcmVl
QnVpbGRlcjo6SW5saW5lOjphdHRhY2hJZ25vcmluZ0NvbnRpbnVhdGlvbihSZW5kZXJJbmxpbmUm
IHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVm
b3JlQ2hpbGQpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IGFwcGVuZCB0aGluZ3MgYWZ0
ZXIgOmFmdGVyLWdlbmVyYXRlZCBjb250ZW50IGlmIHdlIGhhdmUgaXQuCi0gICAgaWYgKCFiZWZv
cmVDaGlsZCAmJiBwYXJlbnQuaXNBZnRlckNvbnRlbnQocGFyZW50Lmxhc3RDaGlsZCgpKSkKKyAg
ICBpZiAoIWJlZm9yZUNoaWxkICYmIFJlbmRlckVsZW1lbnQ6OmlzQWZ0ZXJDb250ZW50KGR5bmFt
aWNEb3duY2FzdDxSZW5kZXJFbGVtZW50PihwYXJlbnQubGFzdENoaWxkKCkpKSkKICAgICAgICAg
YmVmb3JlQ2hpbGQgPSBwYXJlbnQubGFzdENoaWxkKCk7CiAKICAgICBib29sIGNoaWxkSW5saW5l
ID0gbmV3Q2hpbGRJc0lubGluZShwYXJlbnQsICpjaGlsZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>474657</attachid>
            <date>2025-03-20 17:16:01 -0700</date>
            <delta_ts>2025-03-21 05:09:22 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-290117-20250320171600.patch</filename>
            <type>text/plain</type>
            <size>18504</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhYTliYmZkMTAwMGVkNTExM2EyY2MzNjY0MmEwNzk3ODI1N2ExNDdhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjAgTWFyIDIwMjUgMTc6MTQ6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gTW92ZSBmdW5jdGlvbnMgZnJvbSBSZW5kZXJPYmplY3QgdG8gUmVuZGVyRWxlbWVudAogKGNv
bnQuLi4pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAxMTcKClJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c2hvdWxkR2V0VGV4dEZyb21Ob2RlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcDoKKFdlYkNvcmU6
Okluc3BlY3RvckxheWVyVHJlZUFnZW50OjpidWlsZE9iamVjdEZvckxheWVyKToKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CihXZWJDb3JlOjpSZW5kZXJFbGVt
ZW50Ojppc0JlZm9yZUNvbnRlbnQpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6aXNBZnRlckNv
bnRlbnQpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6aXNCZWZvcmVPckFmdGVyQ29udGVudCk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKFdlYkNvcmU6OlJl
bmRlckVsZW1lbnQ6OmlzRml4ZWRQb3NpdGlvbmVkIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckVs
ZW1lbnQ6OmlzQWJzb2x1dGVseVBvc2l0aW9uZWQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyRWxl
bWVudDo6aXNWaWV3VHJhbnNpdGlvbkNvbnRhaW5lciBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJF
bGVtZW50Ojppc1ZpZXdUcmFuc2l0aW9uUHNldWRvIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6
Omhhc1BvdGVudGlhbGx5U2Nyb2xsYWJsZU92ZXJmbG93IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRl
ckVsZW1lbnQ6OmlzQmVmb3JlQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50
Ojppc0FmdGVyQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojppc0JlZm9y
ZU9yQWZ0ZXJDb250ZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hv
dWxkVXNlUG9zaXRpb25lZENsaXBwaW5nIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVy
T2JqZWN0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6
CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUmVuZGVyRnJhZ21lbnRDb250YWluZXIgY29uc3Qp
OgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc091dE9mRmxvd1Bvc2l0aW9uZWQgY29uc3QpOgoo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1N0aWNraWx5UG9zaXRpb25lZCBjb25zdCk6CihXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmlzVmlld1RyYW5zaXRpb25Db250YWluZXIgY29uc3QpOiBEZWxl
dGVkLgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1ZpZXdUcmFuc2l0aW9uUHNldWRvIGNvbnN0
KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNCZWZvcmVDb250ZW50KTogRGVs
ZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNBZnRlckNvbnRlbnQpOiBEZWxldGVkLgoo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0JlZm9yZU9yQWZ0ZXJDb250ZW50KTogRGVsZXRlZC4K
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNGaXhlZFBvc2l0aW9uZWQgY29uc3QpOiBEZWxldGVk
LgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0Fic29sdXRlbHlQb3NpdGlvbmVkIGNvbnN0KTog
RGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hvdWxkVXNlUG9zaXRpb25lZENsaXBw
aW5nIGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNCZWZvcmVDb250
ZW50IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNBZnRlckNvbnRl
bnQgY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0JlZm9yZU9yQWZ0
ZXJDb250ZW50IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aGFzUG90
ZW50aWFsbHlTY3JvbGxhYmxlT3ZlcmZsb3cgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHA6CihXZWJD
b3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6SW5saW5lOjphdHRhY2hJZ25vcmluZ0NvbnRpbnVhdGlv
bik6Ci0tLQogLi4uL0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgICAgICAgICAgIHwg
IDIgKy0KIC4uLi9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwICAgICAgICB8IDEx
ICsrKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgICAgfCAx
NSArKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggICAgICB8
IDE1ICsrKysrKwogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnRJbmxpbmVzLmgg
IHwgMzIgKysrKysrKysrKysrKwogLi4uL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0
LmggICAgICAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAg
ICAgICB8IDQ3IC0tLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi91cGRhdGluZy9SZW5kZXJUcmVlQnVp
bGRlcklubGluZS5jcHAgICAgICB8ICAyICstCiA5IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlv
bnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGRiOTIwMWU0
OTg4Ni4uMzcyZWFmNzQ2YTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTczMSw3ICs3MzEs
NyBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNob3VsZEdldFRleHRGcm9tTm9k
ZShjb25zdCBUZXh0VW5kZXJFbGVtZW50TW9kZQogCiAgICAgLy8gQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCgpIGNhbGxzIHJhbmdlT2ZDb250ZW50cygpIHRvIGNy
ZWF0ZSB0aGUgdGV4dAogICAgIC8vIHJhbmdlLiByYW5nZU9mQ29udGVudHMoKSBkb2VzIG5vdCBp
bmNsdWRlIENTUy1nZW5lcmF0ZWQgY29udGVudC4KLSAgICBpZiAobV9yZW5kZXJlci0+aXNCZWZv
cmVPckFmdGVyQ29udGVudCgpKQorICAgIGlmIChDaGVja2VkUHRyIHJlbmRlckVsZW1lbnQgPSBk
eW5hbWljRG93bmNhc3Q8UmVuZGVyRWxlbWVudD4obV9yZW5kZXJlci5nZXQoKSk7IHJlbmRlckVs
ZW1lbnQgJiYgcmVuZGVyRWxlbWVudC0+aXNCZWZvcmVPckFmdGVyQ29udGVudCgpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUoKSkg
ewogICAgICAgICBOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+cHNldWRvQXdhcmVGaXJzdENoaWxk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGY1NTc0MWM4NWViYi4uNDdhNmViZWU1YTNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvckxh
eWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckxheWVyVHJlZUFnZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIklu
dFJlY3QuaCIKICNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hp
bGRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNpbmNs
dWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKQEAgLTE1Niw5ICsxNTcsOSBAQCB2b2lkIElu
c3BlY3RvckxheWVyVHJlZUFnZW50OjpnYXRoZXJMYXllcnNVc2luZ1JlbmRlckxheWVySGllcmFy
Y2h5KFJlbmRlckxheWVyKgogCiBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpM
YXllcj4gSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTGF5ZXIoUmVuZGVy
TGF5ZXIqIHJlbmRlckxheWVyKQogewotICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSAmcmVu
ZGVyTGF5ZXItPnJlbmRlcmVyKCk7CisgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSAmcmVu
ZGVyTGF5ZXItPnJlbmRlcmVyKCk7CiAgICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nID0g
cmVuZGVyTGF5ZXItPmJhY2tpbmcoKTsKLSAgICBOb2RlKiBub2RlID0gcmVuZGVyZXItPm5vZGUo
KTsKKyAgICBOb2RlKiBub2RlID0gcmVuZGVyZXItPmVsZW1lbnQoKTsKIAogICAgIGJvb2wgaXNS
ZWZsZWN0aW9uID0gcmVuZGVyTGF5ZXItPmlzUmVmbGVjdGlvbigpOwogICAgIGJvb2wgaXNHZW5l
cmF0ZWQgPSAoaXNSZWZsZWN0aW9uID8gcmVuZGVyZXItPnBhcmVudCgpIDogcmVuZGVyZXIpLT5p
c0JlZm9yZU9yQWZ0ZXJDb250ZW50KCk7CkBAIC0xNjksNyArMTcwLDcgQEAgUmVmPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6TGF5ZXI+IEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojpi
dWlsZE9iamVjdEYKICAgICBlbHNlIGlmIChpc1JlZmxlY3Rpb24gJiYgaXNHZW5lcmF0ZWQpCiAg
ICAgICAgIG5vZGUgPSByZW5kZXJlci0+cGFyZW50KCktPmdlbmVyYXRpbmdFbGVtZW50KCk7CiAg
ICAgZWxzZSBpZiAoaXNHZW5lcmF0ZWQpCi0gICAgICAgIG5vZGUgPSByZW5kZXJlci0+Z2VuZXJh
dGluZ05vZGUoKTsKKyAgICAgICAgbm9kZSA9IHJlbmRlcmVyLT5nZW5lcmF0aW5nRWxlbWVudCgp
OwogICAgIGVsc2UgaWYgKGlzUmVmbGVjdGlvbiB8fCBpc0Fub255bW91cykKICAgICAgICAgbm9k
ZSA9IHJlbmRlcmVyLT5wYXJlbnQoKS0+ZWxlbWVudCgpOwogCkBAIC0xOTMsNyArMTk0LDcgQEAg
UmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6TGF5ZXI+IEluc3BlY3RvckxheWVy
VHJlZUFnZW50OjpidWlsZE9iamVjdEYKICAgICAgICAgaWYgKGlzUmVmbGVjdGlvbikKICAgICAg
ICAgICAgIHJlbmRlcmVyID0gcmVuZGVyZXItPnBhcmVudCgpOwogICAgICAgICBsYXllck9iamVj
dC0+c2V0SXNHZW5lcmF0ZWRDb250ZW50KHRydWUpOwotICAgICAgICBsYXllck9iamVjdC0+c2V0
UHNldWRvRWxlbWVudElkKGJpbmRQc2V1ZG9FbGVtZW50KGRvd25jYXN0PFBzZXVkb0VsZW1lbnQ+
KHJlbmRlcmVyLT5ub2RlKCkpKSk7CisgICAgICAgIGxheWVyT2JqZWN0LT5zZXRQc2V1ZG9FbGVt
ZW50SWQoYmluZFBzZXVkb0VsZW1lbnQoZG93bmNhc3Q8UHNldWRvRWxlbWVudD4ocmVuZGVyZXIt
PmVsZW1lbnQoKSkpKTsKICAgICAgICAgaWYgKHJlbmRlcmVyLT5pc0JlZm9yZUNvbnRlbnQoKSkK
ICAgICAgICAgICAgIGxheWVyT2JqZWN0LT5zZXRQc2V1ZG9FbGVtZW50KCJiZWZvcmUiX3MpOwog
ICAgICAgICBlbHNlIGlmIChyZW5kZXJlci0+aXNBZnRlckNvbnRlbnQoKSkKQEAgLTIwMyw3ICsy
MDQsNyBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpMYXllcj4gSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQ6OmJ1aWxkT2JqZWN0RgogICAgIC8vIEZJWE1FOiBSZW5kZXJWaWV3
IGlzIG5vdyByZWFsbHkgYW5vbnltb3VzIGJ1dCBkb24ndCB0ZWxsIGFib3V0IGl0IHRvIHRoZSBm
cm9udGVuZCBiZWZvcmUgbWFraW5nIHN1cmUgaXQgY2FuIGhhbmRsZSBpdC4KICAgICBpZiAoaXNB
bm9ueW1vdXMgJiYgIXJlbmRlcmVyLT5pc1JlbmRlclZpZXcoKSkgewogICAgICAgICBsYXllck9i
amVjdC0+c2V0SXNBbm9ueW1vdXModHJ1ZSk7Ci0gICAgICAgIGF1dG8mIHN0eWxlID0gZG93bmNh
c3Q8UmVuZGVyRWxlbWVudD4oKnJlbmRlcmVyKS5zdHlsZSgpOworICAgICAgICBhdXRvJiBzdHls
ZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwogICAgICAgICBpZiAoc3R5bGUucHNldWRvRWxlbWVudFR5
cGUoKSA9PSBQc2V1ZG9JZDo6Rmlyc3RMZXR0ZXIpCiAgICAgICAgICAgICBsYXllck9iamVjdC0+
c2V0UHNldWRvRWxlbWVudCgiZmlyc3QtbGV0dGVyIl9zKTsKICAgICAgICAgZWxzZSBpZiAoc3R5
bGUucHNldWRvRWxlbWVudFR5cGUoKSA9PSBQc2V1ZG9JZDo6Rmlyc3RMaW5lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDY5ZTM2ZjkzMDZjNS4uM2Jm
NGMyYWJiZjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3Bw
CkBAIC0yMjgwLDYgKzIyODAsMjEgQEAgYm9vbCBSZW5kZXJFbGVtZW50OjpoYXNWaWV3VHJhbnNp
dGlvbk5hbWUoKSBjb25zdAogICAgIHJldHVybiAhc3R5bGUoKS52aWV3VHJhbnNpdGlvbk5hbWUo
KS5pc05vbmUoKTsKIH0KIAorYm9vbCBSZW5kZXJFbGVtZW50Ojppc0JlZm9yZUNvbnRlbnQoY29u
c3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCit7CisgICAgcmV0dXJuIHJlbmRlcmVyICYmIHJl
bmRlcmVyLT5pc0JlZm9yZUNvbnRlbnQoKTsKK30KKworYm9vbCBSZW5kZXJFbGVtZW50Ojppc0Fm
dGVyQ29udGVudChjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKK3sKKyAgICByZXR1cm4g
cmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzQWZ0ZXJDb250ZW50KCk7Cit9CisKK2Jvb2wgUmVuZGVy
RWxlbWVudDo6aXNCZWZvcmVPckFmdGVyQ29udGVudChjb25zdCBSZW5kZXJFbGVtZW50KiByZW5k
ZXJlcikKK3sKKyAgICByZXR1cm4gcmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzQmVmb3JlT3JBZnRl
ckNvbnRlbnQoKTsKK30KKwogYm9vbCBSZW5kZXJFbGVtZW50OjpyZXF1aXJlc1JlbmRlcmluZ0Nv
bnNvbGlkYXRpb25Gb3JWaWV3VHJhbnNpdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc1Zp
ZXdUcmFuc2l0aW9uTmFtZSgpIHx8IGNhcHR1cmVkSW5WaWV3VHJhbnNpdGlvbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggMjk2MTk5YWE0MTM5Li43YjZk
ZTdmNzY5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApAQCAt
MzE3LDYgKzMxNywyMSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUgcmVuZGVyZXIgd2hp
Y2ggd2FzIG1hcHBlZCB0byAoY29udGFpbmVyIG9yIGFuY2VzdG9yVG9TdG9wQXQpLgogICAgIHZp
cnR1YWwgY29uc3QgUmVuZGVyRWxlbWVudCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0OwogCisgICAgYm9vbCBpc0ZpeGVkUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJu
IGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIHN0eWxlKCkucG9zaXRpb24oKSA9PSBQb3NpdGlv
blR5cGU6OkZpeGVkOyB9CisgICAgYm9vbCBpc0Fic29sdXRlbHlQb3NpdGlvbmVkKCkgY29uc3Qg
eyByZXR1cm4gaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUoKS5wb3NpdGlvbigpID09
IFBvc2l0aW9uVHlwZTo6QWJzb2x1dGU7IH0KKworICAgIGJvb2wgaXNWaWV3VHJhbnNpdGlvbkNv
bnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkucHNldWRvRWxlbWVudFR5cGUoKSA9PSBQ
c2V1ZG9JZDo6Vmlld1RyYW5zaXRpb24gfHwgc3R5bGUoKS5wc2V1ZG9FbGVtZW50VHlwZSgpID09
IFBzZXVkb0lkOjpWaWV3VHJhbnNpdGlvbkdyb3VwIHx8IHN0eWxlKCkucHNldWRvRWxlbWVudFR5
cGUoKSA9PSBQc2V1ZG9JZDo6Vmlld1RyYW5zaXRpb25JbWFnZVBhaXI7IH0KKyAgICBib29sIGlz
Vmlld1RyYW5zaXRpb25Qc2V1ZG8oKSBjb25zdCB7IHJldHVybiBpc1JlbmRlclZpZXdUcmFuc2l0
aW9uQ2FwdHVyZSgpIHx8IGlzVmlld1RyYW5zaXRpb25Db250YWluZXIoKTsgfQorCisgICAgaW5s
aW5lIGJvb2wgaGFzUG90ZW50aWFsbHlTY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdDsKKworICAg
IGlubGluZSBib29sIGlzQmVmb3JlQ29udGVudCgpIGNvbnN0OworICAgIGlubGluZSBib29sIGlz
QWZ0ZXJDb250ZW50KCkgY29uc3Q7CisgICAgaW5saW5lIGJvb2wgaXNCZWZvcmVPckFmdGVyQ29u
dGVudCgpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGlzQmVmb3JlQ29udGVudChjb25zdCBSZW5k
ZXJFbGVtZW50Kik7CisgICAgc3RhdGljIGJvb2wgaXNBZnRlckNvbnRlbnQoY29uc3QgUmVuZGVy
RWxlbWVudCopOworICAgIHN0YXRpYyBib29sIGlzQmVmb3JlT3JBZnRlckNvbnRlbnQoY29uc3Qg
UmVuZGVyRWxlbWVudCopOworCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyRWxlbWVudChUeXBlLCBF
bGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgT3B0aW9uU2V0PFR5cGVGbGFnPiwgVHlwZVNwZWNpZmlj
RmxhZ3MpOwogICAgIFJlbmRlckVsZW1lbnQoVHlwZSwgRG9jdW1lbnQmLCBSZW5kZXJTdHlsZSYm
LCBPcHRpb25TZXQ8VHlwZUZsYWc+LCBUeXBlU3BlY2lmaWNGbGFncyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oCmluZGV4IDJjNTIwNWZkNTVi
ZS4uMTdhMzAwYWIyYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudElubGluZXMuaApAQCAtMTI1LDYgKzEyNSwzOCBAQCBpbmxpbmUgYm9vbCBSZW5kZXJF
bGVtZW50OjpjcmVhdGVzR3JvdXBGb3JTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAg
ICAgICAgIHx8IHN0eWxlLmhhc0JsZW5kTW9kZSgpOwogfQogCitpbmxpbmUgYm9vbCBSZW5kZXJF
bGVtZW50OjpoYXNQb3RlbnRpYWxseVNjcm9sbGFibGVPdmVyZmxvdygpIGNvbnN0Cit7CisgICAg
Ly8gV2Ugb25seSBuZWVkIHRvIHRlc3Qgb25lIG92ZXJmbG93IGRpbWVuc2lvbiBzaW5jZSAndmlz
aWJsZScgYW5kICdjbGlwJyBhbHdheXMgZ2V0IGFjY29tcGFuaWVkCisgICAgLy8gd2l0aCAnY2xp
cCcgb3IgJ3Zpc2libGUnIGluIHRoZSBvdGhlciBkaW1lbnNpb24gKHNlZSBTdHlsZTo6QWRqdXN0
ZXI6OmFkanVzdCkuCisgICAgcmV0dXJuIGhhc05vblZpc2libGVPdmVyZmxvdygpICYmIHN0eWxl
KCkub3ZlcmZsb3dYKCkgIT0gT3ZlcmZsb3c6OkNsaXAgJiYgc3R5bGUoKS5vdmVyZmxvd1goKSAh
PSBPdmVyZmxvdzo6VmlzaWJsZTsKK30KKworaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6aXNC
ZWZvcmVDb250ZW50KCkgY29uc3QKK3sKKyAgICAvLyBUZXh0IG5vZGVzIGRvbid0IGhhdmUgdGhl
aXIgb3duIHN0eWxlcywgc28gaWdub3JlIHRoZSBzdHlsZSBvbiBhIHRleHQgbm9kZS4KKyAgICAv
LyBpZiAoaXNSZW5kZXJUZXh0KCkpCisgICAgLy8gICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
c3R5bGUoKS5wc2V1ZG9FbGVtZW50VHlwZSgpICE9IFBzZXVkb0lkOjpCZWZvcmUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgUmVuZGVy
RWxlbWVudDo6aXNBZnRlckNvbnRlbnQoKSBjb25zdAoreworICAgIC8vIFRleHQgbm9kZXMgZG9u
J3QgaGF2ZSB0aGVpciBvd24gc3R5bGVzLCBzbyBpZ25vcmUgdGhlIHN0eWxlIG9uIGEgdGV4dCBu
b2RlLgorICAgIC8vIGlmIChpc1JlbmRlclRleHQoKSkKKyAgICAvLyAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmIChzdHlsZSgpLnBzZXVkb0VsZW1lbnRUeXBlKCkgIT0gUHNldWRvSWQ6OkFmdGVy
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBi
b29sIFJlbmRlckVsZW1lbnQ6OmlzQmVmb3JlT3JBZnRlckNvbnRlbnQoKSBjb25zdAoreworICAg
IHJldHVybiBpc0JlZm9yZUNvbnRlbnQoKSB8fCBpc0FmdGVyQ29udGVudCgpOworfQorCiBpbmxp
bmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUFueUNvbnRhaW5tZW50KCkgY29uc3QK
IHsKICAgICByZXR1cm4gc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpIHx8IHNob3VsZEFw
cGx5U2l6ZUNvbnRhaW5tZW50KCkgfHwgc2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQo
KSB8fCBzaG91bGRBcHBseVN0eWxlQ29udGFpbm1lbnQoKSB8fCBzaG91bGRBcHBseVBhaW50Q29u
dGFpbm1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5oCmluZGV4IGY0YWUyMmU4YTc5Yy4uNTVhMzY1ZjRlZTdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKQEAgLTEx
OCw2ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9w
dGlvbj4pIGNvbnN0ID0gMDsKICAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
KSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkVXNlUG9zaXRpb25lZENsaXBwaW5nKCkgY29uc3Qg
eyByZXR1cm4gaXNBYnNvbHV0ZWx5UG9zaXRpb25lZCgpIHx8IGlzUmVuZGVyU1ZHRm9yZWlnbk9i
amVjdCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KFR5cGUs
IEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBPcHRpb25TZXQ8VHlwZUZsYWc+LCBUeXBlU3BlY2lm
aWNGbGFncyk7CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChUeXBlLCBEb2N1bWVudCYsIFJl
bmRlclN0eWxlJiYsIE9wdGlvblNldDxUeXBlRmxhZz4sIFR5cGVTcGVjaWZpY0ZsYWdzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggYTY3MzRhYTBlYjBj
Li4zM2JmOWVlYmEyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCkBAIC0xMjkzLDcgKzEyOTMsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVy
T2JqZWN0KFRleHRTdHJlYW0mIHN0cmVhbSwgYm9vbCBtYXJrLCBpbnQgZGVwdGgpCiAgICAgICAg
IGVsc2UgaWYgKGlzU3RpY2tpbHlQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBzdHJlYW0gPDwg
IksiOwogICAgICAgICBlbHNlIGlmIChpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAg
ICAgICAgaWYgKGlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgIGlmIChkb3du
Y2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykuaXNBYnNvbHV0ZWx5UG9zaXRpb25lZCgpKQogICAg
ICAgICAgICAgICAgIHN0cmVhbSA8PCAiQSI7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgc3RyZWFtIDw8ICJYIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAppbmRleCAzNDlkZGYwYmY2ZGMuLjA0YjVjNzI5MjYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtNDU4LDcgKzQ1OCw2IEBAIHB1YmxpYzoKICAgICBib29s
IGlzUmVuZGVyTW9kZWwoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6TW9kZWw7IH0K
ICNlbmRpZgogICAgIGJvb2wgaXNSZW5kZXJGcmFnbWVudENvbnRhaW5lcigpIGNvbnN0IHsgcmV0
dXJuIGlzUmVuZGVyQmxvY2tGbG93KCkgJiYgbV90eXBlU3BlY2lmaWNGbGFncy5ibG9ja0Zsb3dG
bGFncygpLmNvbnRhaW5zKEJsb2NrRmxvd0ZsYWc6OklzRnJhZ21lbnRDb250YWluZXIpOyB9Ci0g
ICAgYm9vbCBpc1ZpZXdUcmFuc2l0aW9uQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gc3R5bGUo
KS5wc2V1ZG9FbGVtZW50VHlwZSgpID09IFBzZXVkb0lkOjpWaWV3VHJhbnNpdGlvbiB8fCBzdHls
ZSgpLnBzZXVkb0VsZW1lbnRUeXBlKCkgPT0gUHNldWRvSWQ6OlZpZXdUcmFuc2l0aW9uR3JvdXAg
fHwgc3R5bGUoKS5wc2V1ZG9FbGVtZW50VHlwZSgpID09IFBzZXVkb0lkOjpWaWV3VHJhbnNpdGlv
bkltYWdlUGFpcjsgfQogICAgIGJvb2wgaXNSZW5kZXJSZXBsaWNhKCkgY29uc3QgeyByZXR1cm4g
dHlwZSgpID09IFR5cGU6OlJlcGxpY2E7IH0KIAogICAgIGJvb2wgaXNSZW5kZXJTbGlkZXIoKSBj
b25zdCB7IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6U2xpZGVyOyB9CkBAIC00OTksMTUgKzQ5OCw2
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNUYWJsZVBhcnQoKSBjb25zdCB7IHJldHVybiBpc1Jl
bmRlclRhYmxlQ2VsbCgpIHx8IGlzUmVuZGVyVGFibGVDb2woKSB8fCBpc1JlbmRlclRhYmxlQ2Fw
dGlvbigpIHx8IGlzUmVuZGVyVGFibGVSb3coKSB8fCBpc1JlbmRlclRhYmxlU2VjdGlvbigpOyB9
CiAKLSAgICBib29sIGlzVmlld1RyYW5zaXRpb25Qc2V1ZG8oKSBjb25zdCB7IHJldHVybiBpc1Jl
bmRlclZpZXdUcmFuc2l0aW9uQ2FwdHVyZSgpIHx8IGlzVmlld1RyYW5zaXRpb25Db250YWluZXIo
KTsgfQotCi0gICAgaW5saW5lIGJvb2wgaXNCZWZvcmVDb250ZW50KCkgY29uc3Q7Ci0gICAgaW5s
aW5lIGJvb2wgaXNBZnRlckNvbnRlbnQoKSBjb25zdDsKLSAgICBpbmxpbmUgYm9vbCBpc0JlZm9y
ZU9yQWZ0ZXJDb250ZW50KCkgY29uc3Q7Ci0gICAgc3RhdGljIGlubGluZSBib29sIGlzQmVmb3Jl
Q29udGVudChjb25zdCBSZW5kZXJPYmplY3QqIG9iaikgeyByZXR1cm4gb2JqICYmIG9iai0+aXNC
ZWZvcmVDb250ZW50KCk7IH0KLSAgICBzdGF0aWMgaW5saW5lIGJvb2wgaXNBZnRlckNvbnRlbnQo
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmotPmlzQWZ0ZXJDb250
ZW50KCk7IH0KLSAgICBzdGF0aWMgaW5saW5lIGJvb2wgaXNCZWZvcmVPckFmdGVyQ29udGVudChj
b25zdCBSZW5kZXJPYmplY3QqIG9iaikgeyByZXR1cm4gb2JqICYmIG9iai0+aXNCZWZvcmVPckFm
dGVyQ29udGVudCgpOyB9Ci0KICAgICBib29sIGJlaW5nRGVzdHJveWVkKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZUJpdGZpZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6QmVpbmdEZXN0cm95ZWQpOyB9
CiAKICAgICBib29sIGV2ZXJIYWRMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlQml0Zmll
bGRzLmhhc0ZsYWcoU3RhdGVGbGFnOjpFdmVySGFkTGF5b3V0KTsgfQpAQCAtNjU3LDExICs2NDcs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlQml0ZmllbGRzLmlzUG9zaXRpb25lZCgpOyB9CiAgICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9u
ZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlQml0ZmllbGRzLmlzUmVsYXRpdmVseVBvc2l0aW9u
ZWQoKSB8fCBtX3N0YXRlQml0ZmllbGRzLmlzU3RpY2tpbHlQb3NpdGlvbmVkKCk7IH0KICAgICBi
b29sIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVCaXRmaWVs
ZHMuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0gLy8gYWJzb2x1dGUgb3IgZml4ZWQgcG9zaXRp
b25pbmcKLSAgICBib29sIGlzRml4ZWRQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUoKS5wb3NpdGlvbigpID09IFBvc2l0aW9uVHlwZTo6
Rml4ZWQ7IH0KLSAgICBib29sIGlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVy
biBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBzdHlsZSgpLnBvc2l0aW9uKCkgPT0gUG9zaXRp
b25UeXBlOjpBYnNvbHV0ZTsgfQogICAgIGJvb2wgaXNSZWxhdGl2ZWx5UG9zaXRpb25lZCgpIGNv
bnN0IHsgcmV0dXJuIG1fc3RhdGVCaXRmaWVsZHMuaXNSZWxhdGl2ZWx5UG9zaXRpb25lZCgpOyB9
CiAgICAgYm9vbCBpc1N0aWNraWx5UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVC
aXRmaWVsZHMuaXNTdGlja2lseVBvc2l0aW9uZWQoKTsgfQotICAgIGJvb2wgc2hvdWxkVXNlUG9z
aXRpb25lZENsaXBwaW5nKCkgY29uc3QgeyByZXR1cm4gaXNBYnNvbHV0ZWx5UG9zaXRpb25lZCgp
IHx8IGlzUmVuZGVyU1ZHRm9yZWlnbk9iamVjdCgpOyB9CiAKICAgICBib29sIGlzUmVuZGVyVGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZUZsYWdzLmNvbnRhaW5zKFR5cGVGbGFnOjpJc1RleHQp
OyB9CiAgICAgYm9vbCBpc1JlbmRlckxpbmVCcmVhaygpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9
PSBUeXBlOjpMaW5lQnJlYWs7IH0KQEAgLTcxNCw4ICs3MDEsNiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGhhc05vblZpc2libGVPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVCaXRmaWVs
ZHMuaGFzRmxhZyhTdGF0ZUZsYWc6Okhhc05vblZpc2libGVPdmVyZmxvdyk7IH0KIAotICAgIGJv
b2wgaGFzUG90ZW50aWFsbHlTY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdDsKLQogICAgIGJvb2wg
aGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZUJpdGZp
ZWxkcy5oYXNGbGFnKFN0YXRlRmxhZzo6SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KTsgfSAv
LyBUcmFuc2Zvcm0sIHBlcnNwZWN0aXZlIG9yIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Qu
CiAgICAgaW5saW5lIGJvb2wgaXNUcmFuc2Zvcm1lZCgpIGNvbnN0OwogICAgIGlubGluZSBib29s
IGhhc1RyYW5zZm9ybU9yUGVyc3BlY3RpdmUoKSBjb25zdDsKQEAgLTEzNTQsMzEgKzEzMzksNiBA
QCBpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OnJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpIGNv
bnN0CiAgICAgcmV0dXJuIGRvY3VtZW50KCkucmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCk7CiB9
CiAKLWlubGluZSBib29sIFJlbmRlck9iamVjdDo6aXNCZWZvcmVDb250ZW50KCkgY29uc3QKLXsK
LSAgICAvLyBUZXh0IG5vZGVzIGRvbid0IGhhdmUgdGhlaXIgb3duIHN0eWxlcywgc28gaWdub3Jl
IHRoZSBzdHlsZSBvbiBhIHRleHQgbm9kZS4KLSAgICBpZiAoaXNSZW5kZXJUZXh0KCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoc3R5bGUoKS5wc2V1ZG9FbGVtZW50VHlwZSgpICE9
IFBzZXVkb0lkOjpCZWZvcmUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0Ojppc0FmdGVyQ29udGVudCgpIGNvbnN0
Ci17Ci0gICAgLy8gVGV4dCBub2RlcyBkb24ndCBoYXZlIHRoZWlyIG93biBzdHlsZXMsIHNvIGln
bm9yZSB0aGUgc3R5bGUgb24gYSB0ZXh0IG5vZGUuCi0gICAgaWYgKGlzUmVuZGVyVGV4dCgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlKCkucHNldWRvRWxlbWVudFR5cGUo
KSAhPSBQc2V1ZG9JZDo6QWZ0ZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0Ojppc0JlZm9yZU9yQWZ0ZXJDb250
ZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNCZWZvcmVDb250ZW50KCkgfHwgaXNBZnRlckNv
bnRlbnQoKTsKLX0KLQogaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXROZWVkc0xheW91dChN
YXJraW5nQmVoYXZpb3IgbWFya1BhcmVudHMpCiB7CiAgICAgQVNTRVJUKCFpc1NldE5lZWRzTGF5
b3V0Rm9yYmlkZGVuKCkpOwpAQCAtMTUzMSwxMyArMTQ5MSw2IEBAIGlubGluZSBSZW5kZXJPYmpl
Y3QqIFJlbmRlck9iamVjdDo6bmV4dEluRmxvd1NpYmxpbmcoKSBjb25zdAogICAgIHJldHVybiBu
ZXh0U2libGluZzsKIH0KIAotaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpoYXNQb3RlbnRpYWxs
eVNjcm9sbGFibGVPdmVyZmxvdygpIGNvbnN0Ci17Ci0gICAgLy8gV2Ugb25seSBuZWVkIHRvIHRl
c3Qgb25lIG92ZXJmbG93IGRpbWVuc2lvbiBzaW5jZSAndmlzaWJsZScgYW5kICdjbGlwJyBhbHdh
eXMgZ2V0IGFjY29tcGFuaWVkCi0gICAgLy8gd2l0aCAnY2xpcCcgb3IgJ3Zpc2libGUnIGluIHRo
ZSBvdGhlciBkaW1lbnNpb24gKHNlZSBTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdCkuCi0gICAgcmV0
dXJuIGhhc05vblZpc2libGVPdmVyZmxvdygpICYmIHN0eWxlKCkub3ZlcmZsb3dYKCkgIT0gT3Zl
cmZsb3c6OkNsaXAgJiYgc3R5bGUoKS5vdmVyZmxvd1goKSAhPSBPdmVyZmxvdzo6VmlzaWJsZTsK
LX0KLQogI2lmIEVOQUJMRShNQVRITUwpCiBpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OmlzUmVu
ZGVyTWF0aE1MUm93KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJJbmxpbmUuY3BwCmluZGV4IDE2
NDA4ZjY2MjdiYy4uYjM0MTY4OGZhYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHAKQEAg
LTE3OCw3ICsxNzgsNyBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpJbmxpbmU6Omluc2VydENo
aWxkVG9Db250aW51YXRpb24oUmVuZGVySW5saW5lJiBwYXJlbnQsCiB2b2lkIFJlbmRlclRyZWVC
dWlsZGVyOjpJbmxpbmU6OmF0dGFjaElnbm9yaW5nQ29udGludWF0aW9uKFJlbmRlcklubGluZSYg
cGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZv
cmVDaGlsZCkKIHsKICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgYXBwZW5kIHRoaW5ncyBhZnRl
ciA6YWZ0ZXItZ2VuZXJhdGVkIGNvbnRlbnQgaWYgd2UgaGF2ZSBpdC4KLSAgICBpZiAoIWJlZm9y
ZUNoaWxkICYmIHBhcmVudC5pc0FmdGVyQ29udGVudChwYXJlbnQubGFzdENoaWxkKCkpKQorICAg
IGlmICghYmVmb3JlQ2hpbGQgJiYgUmVuZGVyRWxlbWVudDo6aXNBZnRlckNvbnRlbnQoZHluYW1p
Y0Rvd25jYXN0PFJlbmRlckVsZW1lbnQ+KHBhcmVudC5sYXN0Q2hpbGQoKSkpKQogICAgICAgICBi
ZWZvcmVDaGlsZCA9IHBhcmVudC5sYXN0Q2hpbGQoKTsKIAogICAgIGJvb2wgY2hpbGRJbmxpbmUg
PSBuZXdDaGlsZElzSW5saW5lKHBhcmVudCwgKmNoaWxkKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>