<?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>184539</bug_id>
          
          <creation_ts>2018-04-12 08:25:25 -0700</creation_ts>
          <short_desc>[Web Animations] Ensure elements overlapping with elements animating also get composited</short_desc>
          <delta_ts>2018-04-12 10:42:07 -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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>jonlee</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1414013</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-04-12 08:25:25 -0700</bug_when>
    <thetext>[Web Animations] Ensure elements overlapping with elements animating also get composited</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414015</commentid>
    <comment_count>1</comment_count>
      <attachid>337797</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-04-12 08:32:45 -0700</bug_when>
    <thetext>Created attachment 337797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414042</commentid>
    <comment_count>2</comment_count>
      <attachid>337797</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2018-04-12 09:28:40 -0700</bug_when>
    <thetext>Comment on attachment 337797
Patch

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

&gt; Source/WebCore/animation/DocumentTimeline.h:62
&gt; +    // transform animation but we were unable to cheaply compute its affect on the extent.

effect*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414044</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-04-12 09:34:50 -0700</bug_when>
    <thetext>Committed r230578: &lt;https://trac.webkit.org/changeset/230578&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414045</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-12 09:35:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/39383567&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414057</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-04-12 10:12:35 -0700</bug_when>
    <thetext>(In reply to Antoine Quint from comment #3)
&gt; Committed r230578: &lt;https://trac.webkit.org/changeset/230578&gt;
This change broke the Windows build:

c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\animation\documenttimeline.cpp(208): error C2220: warning treated as error - no &apos;object&apos; file generated [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\animation\documenttimeline.cpp(208): warning C4701: potentially uninitialized local variable &apos;matchingEffect&apos; used [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\animation\documenttimeline.cpp(208): warning C4703: potentially uninitialized local pointer variable &apos;matchingEffect&apos; used [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]


https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/8766</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414078</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-04-12 10:42:07 -0700</bug_when>
    <thetext>Windows build should be fixed by https://trac.webkit.org/changeset/230582.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337797</attachid>
            <date>2018-04-12 08:32:45 -0700</date>
            <delta_ts>2018-04-12 09:28:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184539-20180412173243.patch</filename>
            <type>text/plain</type>
            <size>27590</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODZhOWFmMjBhNGZiZGRj
Zjc1ZmIxNDk3ZDliZmI1MjMyNTAzMDNhYi4uZTg4OGIzZWJjNjhmODBiMGNiZjkyMGU0OTcxMzRl
Nzg1YTFiYjdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA0LTEyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBFbnN1cmUgZWxlbWVudHMgb3ZlcmxhcHBpbmcgd2l0aCBlbGVtZW50cyBhbmltYXRpbmcgYWxz
byBnZXQgY29tcG9zaXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0NTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQSBudW1iZXIgb2YgY29tcG9zaXRpbmcgdGVzdHMgZmFpbGVkIGJlY2F1c2Ugd2Ug
ZGlkbid0IGNhbGwgaW50byB0aGUgV2ViIEFuaW1hdGlvbnMgZW5naW5lIHdoaWxlIHZhcmlvdXMg
Y2FsbHMKKyAgICAgICAgb24gUmVuZGVyTGF5ZXIgYW5kIFJlbmRlckxheWVyQmFja2luZyB3ZXJl
IG1hZGUuIFdlIGJyaW5nIHRoZSBmdW5jdGlvbmFsaXR5IG92ZXIgZnJvbSBDU1NBbmltYXRpb25D
b250cm9sbGVyIHRvCisgICAgICAgIERvY3VtZW50VGltZWxpbmUgYW5kIEtleWZyYW1lQW5pbWF0
aW9uIHRvIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkuCisKKyAgICAgICAgKiBhbmltYXRpb24vQW5p
bWF0aW9uVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVGltZWxpbmU6
OmFuaW1hdGlvbnNGb3JFbGVtZW50IGNvbnN0KTogVXBkYXRlIHRoaXMgbWV0aG9kJ3Mgc2lnbmF0
dXJlIHRvIGJlIGNvbnN0IHNpbmNlIGl0CisgICAgICAgIHNob3VsZCBiZSBjYWxsYWJsZSBieSBv
dGhlciBjb25zdCBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6
YW5pbWF0aW9uc0ZvckVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAqIGFuaW1hdGlvbi9Bbmlt
YXRpb25UaW1lbGluZS5oOgorICAgICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OmNvbXB1dGVFeHRlbnRPZkFu
aW1hdGlvbiBjb25zdCk6IEFkYXB0IHRoaXMgbWV0aG9kIGZyb20gQ1NTQW5pbWF0aW9uQ29udHJv
bGxlci4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGltZWxpbmU6OmlzUnVubmluZ0FuaW1h
dGlvbk9uUmVuZGVyZXIgY29uc3QpOiBBZGFwdCB0aGlzIG1ldGhvZCBmcm9tIENTU0FuaW1hdGlv
bkNvbnRyb2xsZXIuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjppc1J1bm5p
bmdBY2NlbGVyYXRlZEFuaW1hdGlvbk9uUmVuZGVyZXIgY29uc3QpOiBBZGFwdCB0aGlzIG1ldGhv
ZCBmcm9tIENTU0FuaW1hdGlvbkNvbnRyb2xsZXIuCisgICAgICAgICogYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25s
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdFJlYWRPbmx5Ojpjb21wdXRl
RXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24gY29uc3QpOiBCcmluZyB0aGlzIG1ldGhvZCBvdmVy
IGZyb20gS2V5ZnJhbWVBbmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpjb250YWluc1JvdGF0
aW9uKTogQnJpbmcgdGhpcyBtZXRob2Qgb3ZlciBmcm9tIEtleWZyYW1lQW5pbWF0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6Y29tcHV0ZVRyYW5zZm9ybWVk
RXh0ZW50VmlhVHJhbnNmb3JtTGlzdCBjb25zdCk6IEJyaW5nIHRoaXMgbWV0aG9kIG92ZXIgZnJv
bSBLZXlmcmFtZUFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0UmVh
ZE9ubHk6OmNvbXB1dGVUcmFuc2Zvcm1lZEV4dGVudFZpYU1hdHJpeCBjb25zdCk6IEJyaW5nIHRo
aXMgbWV0aG9kIG92ZXIgZnJvbSBLZXlmcmFtZUFuaW1hdGlvbi4KKyAgICAgICAgKiBhbmltYXRp
b24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5oOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVF
ZmZlY3RSZWFkT25seTo6YW5pbWF0ZWRQcm9wZXJ0aWVzIGNvbnN0KTogRG9jdW1lbnRUaW1lbGlu
ZTo6Y29tcHV0ZUV4dGVudE9mQW5pbWF0aW9uKCkgbmVlZHMgdG8gZ2V0IGEgbGlzdAorICAgICAg
ICBvZiBhbGwgYW5pbWF0ZWQgcHJvcGVydGllcyB0byBzZWUgaWYgYSB0cmFuc2Zvcm0gaXMgYW5p
bWF0ZWQsIHNvIHdlIG5vdyBleHBvc2Ugc3VjaCBhIGxpc3QuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJyZW50
VHJhbnNmb3JtIGNvbnN0KTogVXBkYXRlIHRoaXMgbWV0aG9kIHRvIGNhbGwgaW50byBEb2N1bWVu
dFRpbWVsaW5lIGlmIHRoZSBDU1MgQW5pbWF0aW9ucworICAgICAgICBhbmQgQ1NTIFRyYW5zaXRp
b25zIGFzIFdlYiBBbmltYXRpb25zIGZsYWcgaXMgb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzIGNvbnN0KTogVXBkYXRlIHRoaXMgbWV0aG9kIHRv
IGNhbGwgaW50byBEb2N1bWVudFRpbWVsaW5lIGlmIHRoZSBDU1MgQW5pbWF0aW9ucworICAgICAg
ICBhbmQgQ1NTIFRyYW5zaXRpb25zIGFzIFdlYiBBbmltYXRpb25zIGZsYWcgaXMgb24uCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KTogVXBkYXRlIHRoaXMgbWV0aG9k
IHRvIGNhbGwgaW50byBEb2N1bWVudFRpbWVsaW5lIGlmIHRoZSBDU1MgQW5pbWF0aW9ucworICAg
ICAgICBhbmQgQ1NTIFRyYW5zaXRpb25zIGFzIFdlYiBBbmltYXRpb25zIGZsYWcgaXMgb24uCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlv
biBjb25zdCk6IFVwZGF0ZSB0aGlzIG1ldGhvZCB0byBjYWxsIGludG8gRG9jdW1lbnRUaW1lbGlu
ZQorICAgICAgICBpZiB0aGUgQ1NTIEFuaW1hdGlvbnMgYW5kIENTUyBUcmFuc2l0aW9ucyBhcyBX
ZWIgQW5pbWF0aW9ucyBmbGFnIGlzIG9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6ZG9jdW1lbnRUaW1lbGluZSBj
b25zdCk6CisKIDIwMTgtMDQtMTEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEVuYWJsZSBzZWVraW5nIGZvciBoYXJkd2FyZSBh
bmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9u
VGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5l
LmNwcAppbmRleCBjZWY3YTU4MmNkZGFhYmIzOTM3NDVkNjNmNmI4YTNmYWE5ZGFjZjMzLi5jMzdm
Y2ZlOGM2Y2RlMTIwZTNlNDE1OTZiNmM5NDlhMWQyMDFiOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2
b2lkIEFuaW1hdGlvblRpbWVsaW5lOjphbmltYXRpb25XYXNSZW1vdmVkRnJvbUVsZW1lbnQoV2Vi
QW5pbWF0aW9uJiBhbmltYXRpb24sCiAgICAgICAgIG1hcC5yZW1vdmUoaXRlcmF0b3IpOwogfQog
Ci1WZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IEFuaW1hdGlvblRpbWVsaW5lOjphbmltYXRp
b25zRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQorVmVjdG9yPFJlZlB0cjxXZWJBbmltYXRp
b24+PiBBbmltYXRpb25UaW1lbGluZTo6YW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxl
bWVudCkgY29uc3QKIHsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGlv
bnM7CiAgICAgaWYgKG1fZWxlbWVudFRvQ1NTQW5pbWF0aW9uc01hcC5jb250YWlucygmZWxlbWVu
dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxp
bmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCmluZGV4
IGJmYjg2NDBjZWMxMjkyZDUyMTQyYTc4MmQ0OTY3Y2E4MThlMDU1YjYuLjFkMzVkMTQ4YzRhMmMy
NTljN2ZjYTZkMzQ0YmJmMjkxYzMxODA4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRpb25UaW1lbGluZS5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgdGltaW5nTW9kZWxEaWRDaGFuZ2UoKSB7IH07CiAKICAgICBjb25zdCBMaXN0SGFz
aFNldDxSZWZQdHI8V2ViQW5pbWF0aW9uPj4mIGFuaW1hdGlvbnMoKSBjb25zdCB7IHJldHVybiBt
X2FuaW1hdGlvbnM7IH0KLSAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGlv
bnNGb3JFbGVtZW50KEVsZW1lbnQmKTsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+
IGFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmKSBjb25zdDsKICAgICB2b2lkIGNhbmNlbEFu
aW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmKTsKICAgICB2b2lkIGFuaW1hdGlvbldhc0FkZGVk
VG9FbGVtZW50KFdlYkFuaW1hdGlvbiYsIEVsZW1lbnQmKTsKICAgICB2b2lkIGFuaW1hdGlvbldh
c1JlbW92ZWRGcm9tRWxlbWVudChXZWJBbmltYXRpb24mLCBFbGVtZW50Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKaW5kZXggNDEzNGE1OGJkNDFm
ZGZlZjYxMzdkMGFhYjZkYWNlNzVlZWE5ZjU5NS4uZmQzYzU2NjI1MGVkYmE3MThlZTgxNzJiNGQz
OGU5MTI5ZWZmMWQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcApAQCAtMTkwLDYgKzE5MCw2NCBAQCB2b2lkIERvY3VtZW50VGltZWxpbmU6OnVw
ZGF0ZUFuaW1hdGlvbnMoKQogICAgIHRpbWluZ01vZGVsRGlkQ2hhbmdlKCk7CiB9CiAKK2Jvb2wg
RG9jdW1lbnRUaW1lbGluZTo6Y29tcHV0ZUV4dGVudE9mQW5pbWF0aW9uKFJlbmRlckVsZW1lbnQm
IHJlbmRlcmVyLCBMYXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0Cit7CisgICAgaWYgKCFyZW5kZXJl
ci5lbGVtZW50KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgS2V5ZnJhbWVFZmZlY3RS
ZWFkT25seSogbWF0Y2hpbmdFZmZlY3Q7CisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24g
OiBhbmltYXRpb25zRm9yRWxlbWVudCgqcmVuZGVyZXIuZWxlbWVudCgpKSkgeworICAgICAgICBh
dXRvKiBlZmZlY3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOworICAgICAgICBpZiAoaXM8S2V5ZnJh
bWVFZmZlY3RSZWFkT25seT4oZWZmZWN0KSkgeworICAgICAgICAgICAgYXV0byoga2V5ZnJhbWVF
ZmZlY3QgPSBkb3duY2FzdDxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5PihlZmZlY3QpOworICAgICAg
ICAgICAgaWYgKGtleWZyYW1lRWZmZWN0LT5hbmltYXRlZFByb3BlcnRpZXMoKS5jb250YWlucyhD
U1NQcm9wZXJ0eVRyYW5zZm9ybSkpCisgICAgICAgICAgICAgICAgbWF0Y2hpbmdFZmZlY3QgPSBk
b3duY2FzdDxLZXlmcmFtZUVmZmVjdFJlYWRPbmx5PihlZmZlY3QpOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKG1hdGNoaW5nRWZmZWN0KQorICAgICAgICByZXR1cm4gbWF0Y2hpbmdFZmZl
Y3QtPmNvbXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFuaW1hdGlvbihib3VuZHMpOworCisgICAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgRG9jdW1lbnRUaW1lbGluZTo6aXNSdW5uaW5nQW5pbWF0aW9u
T25SZW5kZXJlcihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eSkgY29uc3QKK3sKKyAgICBpZiAoIXJlbmRlcmVyLmVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24gOiBhbmltYXRpb25zRm9y
RWxlbWVudCgqcmVuZGVyZXIuZWxlbWVudCgpKSkgeworICAgICAgICBhdXRvIHBsYXlTdGF0ZSA9
IGFuaW1hdGlvbi0+cGxheVN0YXRlKCk7CisgICAgICAgIGlmIChwbGF5U3RhdGUgIT0gV2ViQW5p
bWF0aW9uOjpQbGF5U3RhdGU6OlJ1bm5pbmcgJiYgcGxheVN0YXRlICE9IFdlYkFuaW1hdGlvbjo6
UGxheVN0YXRlOjpQYXVzZWQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byog
ZWZmZWN0ID0gYW5pbWF0aW9uLT5lZmZlY3QoKTsKKyAgICAgICAgaWYgKGlzPEtleWZyYW1lRWZm
ZWN0UmVhZE9ubHk+KGVmZmVjdCkgJiYgZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3RSZWFkT25seT4o
ZWZmZWN0KS0+YW5pbWF0ZWRQcm9wZXJ0aWVzKCkuY29udGFpbnMocHJvcGVydHkpKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IERvY3VtZW50VGltZWxpbmU6OmlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5kZXJl
cihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QK
K3sKKyAgICBpZiAoIXJlbmRlcmVyLmVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24gOiBhbmltYXRpb25zRm9yRWxlbWVudCgq
cmVuZGVyZXIuZWxlbWVudCgpKSkgeworICAgICAgICBhdXRvIHBsYXlTdGF0ZSA9IGFuaW1hdGlv
bi0+cGxheVN0YXRlKCk7CisgICAgICAgIGlmIChwbGF5U3RhdGUgIT0gV2ViQW5pbWF0aW9uOjpQ
bGF5U3RhdGU6OlJ1bm5pbmcgJiYgcGxheVN0YXRlICE9IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRl
OjpQYXVzZWQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byogZWZmZWN0ID0g
YW5pbWF0aW9uLT5lZmZlY3QoKTsKKyAgICAgICAgaWYgKGlzPEtleWZyYW1lRWZmZWN0UmVhZE9u
bHk+KGVmZmVjdCkpIHsKKyAgICAgICAgICAgIGF1dG8qIGtleWZyYW1lRWZmZWN0ID0gZG93bmNh
c3Q8S2V5ZnJhbWVFZmZlY3RSZWFkT25seT4oZWZmZWN0KTsKKyAgICAgICAgICAgIGlmIChrZXlm
cmFtZUVmZmVjdC0+aXNSdW5uaW5nQWNjZWxlcmF0ZWQoKSAmJiBrZXlmcmFtZUVmZmVjdC0+YW5p
bWF0ZWRQcm9wZXJ0aWVzKCkuY29udGFpbnMocHJvcGVydHkpKQorICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBz
dGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IERvY3VtZW50VGltZWxpbmU6OmFuaW1hdGVkU3R5
bGVGb3JSZW5kZXJlcihSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKIHsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVuZGVyU3R5bGU+IHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5oCmluZGV4IDM1YTg4ZGIwM2FmZmU4NGRkMmNjMmY5NjRiYjFlMzk2NTY3
YjBjZmQuLjZjZmI1OTFhMGZiMDJjNjRmYjI0YTAxZmYwNGE3ZjEzOWJjZDJlNTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaApAQCAtNTcsNyArNTcsMTMg
QEAgcHVibGljOgogICAgIHZvaWQgdGltaW5nTW9kZWxEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAg
ICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCk7CiAKKyAgICAv
LyBJZiBwb3NzaWJsZSwgY29tcHV0ZSB0aGUgdmlzdWFsIGV4dGVudCBvZiBhbnkgdHJhbnNmb3Jt
IGFuaW1hdGlvbiBvbiB0aGUgZ2l2ZW4gcmVuZGVyZXIKKyAgICAvLyB1c2luZyB0aGUgZ2l2ZW4g
cmVjdCwgcmV0dXJuaW5nIHRoZSByZXN1bHQgaW4gdGhlIHJlY3QuIFJldHVybiBmYWxzZSBpZiB0
aGVyZSBpcyBzb21lCisgICAgLy8gdHJhbnNmb3JtIGFuaW1hdGlvbiBidXQgd2Ugd2VyZSB1bmFi
bGUgdG8gY2hlYXBseSBjb21wdXRlIGl0cyBhZmZlY3Qgb24gdGhlIGV4dGVudC4KKyAgICBib29s
IGNvbXB1dGVFeHRlbnRPZkFuaW1hdGlvbihSZW5kZXJFbGVtZW50JiwgTGF5b3V0UmVjdCYpIGNv
bnN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gYW5pbWF0ZWRTdHlsZUZvclJl
bmRlcmVyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKTsKKyAgICBib29sIGlzUnVubmluZ0FuaW1h
dGlvbk9uUmVuZGVyZXIoUmVuZGVyRWxlbWVudCYsIENTU1Byb3BlcnR5SUQpIGNvbnN0OworICAg
IGJvb2wgaXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25PblJlbmRlcmVyKFJlbmRlckVsZW1l
bnQmLCBDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICB2b2lkIGFuaW1hdGlvbkFjY2VsZXJhdGVk
UnVubmluZ1N0YXRlRGlkQ2hhbmdlKFdlYkFuaW1hdGlvbiYpOwogICAgIHZvaWQgYXBwbHlQZW5k
aW5nQWNjZWxlcmF0ZWRBbmltYXRpb25zKCk7CiAgICAgYm9vbCBydW5uaW5nQW5pbWF0aW9uc0Zv
ckVsZW1lbnRBcmVBbGxBY2NlbGVyYXRlZChFbGVtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5jcHAKaW5kZXggODE4ZmMxNjQ4
ZDIzMzhlMTEzMmFkN2IzZGMyZDgwN2RiODBkNGJlMC4uN2U1YzYyOWVhZDI0Yzg4Y2VlZDdmNGQw
MjliZDM4NTFkMjRmNGU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0UmVhZE9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNT
U1RyYW5zaXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRm9udENhc2Nh
ZGUuaCIKKyNpbmNsdWRlICJHZW9tZXRyeVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkpTQ29tcG9z
aXRlT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNLZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmgiCiAj
aW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKQEAgLTEyNTcsNCArMTI1OCwxMDggQEAg
Y29uc3QgUmVuZGVyU3R5bGUmIEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OmN1cnJlbnRTdHlsZSgp
IGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlclN0eWxlOjpkZWZhdWx0U3R5bGUoKTsKIH0KIAorYm9v
bCBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5Ojpjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRp
b24oTGF5b3V0UmVjdCYgYm91bmRzKSBjb25zdAoreworICAgIEFTU0VSVChtX2JsZW5kaW5nS2V5
ZnJhbWVzLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlUcmFuc2Zvcm0pKTsKKworICAgIGlm
ICghaXM8UmVuZGVyQm94PihyZW5kZXJlcigpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7IC8vIE5v
bi1ib3hlcyBkb24ndCBnZXQgdHJhbnNmb3JtZWQ7CisKKyAgICBSZW5kZXJCb3gmIGJveCA9IGRv
d25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKCkpOworICAgIEZsb2F0UmVjdCByZW5kZXJlckJv
eCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm94LmJvcmRlckJveFJlY3QoKSwgYm94LmRvY3Vt
ZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisKKyAgICBGbG9hdFJlY3QgY3VtdWxhdGl2ZUJv
dW5kcyA9IGJvdW5kczsKKworICAgIGZvciAoY29uc3QgYXV0byYga2V5ZnJhbWUgOiBtX2JsZW5k
aW5nS2V5ZnJhbWVzLmtleWZyYW1lcygpKSB7CisgICAgICAgIC8vIEZJWE1FOiBtYXliZSBmb3Ig
ZGVjbGFyYXRpdmUgYW5pbWF0aW9ucyB3ZSBhbHdheXMgc2F5IGl0J3MgdHJ1ZSBmb3IgdGhlIGZp
cnN0IGFuZCBsYXN0IGtleWZyYW1lLgorICAgICAgICBpZiAoIWtleWZyYW1lLmNvbnRhaW5zUHJv
cGVydHkoQ1NTUHJvcGVydHlUcmFuc2Zvcm0pKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgTGF5b3V0UmVjdCBrZXlmcmFtZUJvdW5kcyA9IGJvdW5kczsKKworICAgICAgICBib29s
IGNhbkNvbXB1dGU7CisgICAgICAgIGlmICh0cmFuc2Zvcm1GdW5jdGlvbkxpc3RzTWF0Y2goKSkK
KyAgICAgICAgICAgIGNhbkNvbXB1dGUgPSBjb21wdXRlVHJhbnNmb3JtZWRFeHRlbnRWaWFUcmFu
c2Zvcm1MaXN0KHJlbmRlcmVyQm94LCAqa2V5ZnJhbWUuc3R5bGUoKSwga2V5ZnJhbWVCb3VuZHMp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYW5Db21wdXRlID0gY29tcHV0ZVRyYW5zZm9y
bWVkRXh0ZW50VmlhTWF0cml4KHJlbmRlcmVyQm94LCAqa2V5ZnJhbWUuc3R5bGUoKSwga2V5ZnJh
bWVCb3VuZHMpOworCisgICAgICAgIGlmICghY2FuQ29tcHV0ZSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICBjdW11bGF0aXZlQm91bmRzLnVuaXRlKGtleWZyYW1lQm91bmRz
KTsKKyAgICB9CisKKyAgICBib3VuZHMgPSBMYXlvdXRSZWN0KGN1bXVsYXRpdmVCb3VuZHMpOwor
ICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBjb250YWluc1JvdGF0aW9uKGNvbnN0
IFZlY3RvcjxSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPj4mIG9wZXJhdGlvbnMpCit7CisgICAg
Zm9yIChjb25zdCBhdXRvJiBvcGVyYXRpb24gOiBvcGVyYXRpb25zKSB7CisgICAgICAgIGlmIChv
cGVyYXRpb24tPnR5cGUoKSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgS2V5
ZnJhbWVFZmZlY3RSZWFkT25seTo6Y29tcHV0ZVRyYW5zZm9ybWVkRXh0ZW50VmlhVHJhbnNmb3Jt
TGlzdChjb25zdCBGbG9hdFJlY3QmIHJlbmRlcmVyQm94LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUsIExheW91dFJlY3QmIGJvdW5kcykgY29uc3QKK3sKKyAgICBGbG9hdFJlY3QgZmxvYXRCb3Vu
ZHMgPSBib3VuZHM7CisgICAgRmxvYXRQb2ludCB0cmFuc2Zvcm1PcmlnaW47CisKKyAgICBib29s
IGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gY29udGFpbnNSb3RhdGlvbihzdHlsZS50cmFuc2Zvcm0o
KS5vcGVyYXRpb25zKCkpIHx8IHN0eWxlLnRyYW5zZm9ybSgpLmFmZmVjdGVkQnlUcmFuc2Zvcm1P
cmlnaW4oKTsKKyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKKyAgICAgICAgdHJhbnNm
b3JtT3JpZ2luLnNldFgocmVuZGVyZXJCb3gueCgpICsgZmxvYXRWYWx1ZUZvckxlbmd0aChzdHls
ZS50cmFuc2Zvcm1PcmlnaW5YKCksIHJlbmRlcmVyQm94LndpZHRoKCkpKTsKKyAgICAgICAgdHJh
bnNmb3JtT3JpZ2luLnNldFkocmVuZGVyZXJCb3gueSgpICsgZmxvYXRWYWx1ZUZvckxlbmd0aChz
dHlsZS50cmFuc2Zvcm1PcmlnaW5ZKCksIHJlbmRlcmVyQm94LmhlaWdodCgpKSk7CisgICAgICAg
IC8vIElnbm9yZSB0cmFuc2Zvcm1PcmlnaW5aIGJlY2F1c2Ugd2UnbGwgYmFpbCBpZiB3ZSBlbmNv
dW50ZXIgYW55IDNEIHRyYW5zZm9ybXMuCisKKyAgICAgICAgZmxvYXRCb3VuZHMubW92ZUJ5KC10
cmFuc2Zvcm1PcmlnaW4pOworICAgIH0KKworICAgIGZvciAoY29uc3QgYXV0byYgb3BlcmF0aW9u
IDogc3R5bGUudHJhbnNmb3JtKCkub3BlcmF0aW9ucygpKSB7CisgICAgICAgIGlmIChvcGVyYXRp
b24tPnR5cGUoKSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURSkgeworICAgICAgICAgICAg
Ly8gRm9yIG5vdywganVzdCB0cmVhdCB0aGlzIGFzIGEgZnVsbCByb3RhdGlvbi4gVGhpcyBjb3Vs
ZCB0YWtlIGFuZ2xlIGludG8gYWNjb3VudCB0byByZWR1Y2UgaW5mbGF0aW9uLgorICAgICAgICAg
ICAgZmxvYXRCb3VuZHMgPSBib3VuZHNPZlJvdGF0aW5nUmVjdChmbG9hdEJvdW5kcyk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07
CisgICAgICAgICAgICBvcGVyYXRpb24tPmFwcGx5KHRyYW5zZm9ybSwgcmVuZGVyZXJCb3guc2l6
ZSgpKTsKKyAgICAgICAgICAgIGlmICghdHJhbnNmb3JtLmlzQWZmaW5lKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAob3BlcmF0aW9uLT50eXBlKCkg
PT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpNQVRSSVggfHwgb3BlcmF0aW9uLT50eXBlKCkgPT0gVHJh
bnNmb3JtT3BlcmF0aW9uOjpNQVRSSVhfM0QpIHsKKyAgICAgICAgICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6RGVjb21wb3NlZDJUeXBlIHRvRGVjb21wOworICAgICAgICAgICAgICAgIHRy
YW5zZm9ybS5kZWNvbXBvc2UyKHRvRGVjb21wKTsKKyAgICAgICAgICAgICAgICAvLyBBbnkgcm90
YXRpb24gcHJldmVudHMgdXMgZnJvbSB1c2luZyBhIHNpbXBsZSBzdGFydC9lbmQgcmVjdCB1bmlv
bi4KKyAgICAgICAgICAgICAgICBpZiAodG9EZWNvbXAuYW5nbGUpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmxvYXRCb3Vu
ZHMgPSB0cmFuc2Zvcm0ubWFwUmVjdChmbG9hdEJvdW5kcyk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pCisgICAgICAgIGZsb2F0Qm91bmRzLm1vdmVC
eSh0cmFuc2Zvcm1PcmlnaW4pOworCisgICAgYm91bmRzID0gTGF5b3V0UmVjdChmbG9hdEJvdW5k
cyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6
Y29tcHV0ZVRyYW5zZm9ybWVkRXh0ZW50VmlhTWF0cml4KGNvbnN0IEZsb2F0UmVjdCYgcmVuZGVy
ZXJCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgTGF5b3V0UmVjdCYgYm91bmRzKSBjb25z
dAoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKKyAgICBzdHlsZS5hcHBs
eVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHJlbmRlcmVyQm94LCBSZW5kZXJTdHlsZTo6SW5jbHVkZVRy
YW5zZm9ybU9yaWdpbik7CisgICAgaWYgKCF0cmFuc2Zvcm0uaXNBZmZpbmUoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXg6OkRlY29tcG9zZWQyVHlw
ZSBmcm9tRGVjb21wOworICAgIHRyYW5zZm9ybS5kZWNvbXBvc2UyKGZyb21EZWNvbXApOworICAg
IC8vIEFueSByb3RhdGlvbiBwcmV2ZW50cyB1cyBmcm9tIHVzaW5nIGEgc2ltcGxlIHN0YXJ0L2Vu
ZCByZWN0IHVuaW9uLgorICAgIGlmIChmcm9tRGVjb21wLmFuZ2xlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBib3VuZHMgPSBMYXlvdXRSZWN0KHRyYW5zZm9ybS5tYXBSZWN0KGJvdW5k
cykpOworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5o
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuaAppbmRl
eCAxOWZhMmVlY2M5YWVlZDE1ZDVkMzI1YTY3MGQwY2ZkZDg0YTJmMjZmLi5lMjQ4NjViN2U5ZWQ2
ZjhlNjVhNjE2M2VkYzkzMWNkMjI4ODE2YzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9LZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmgKQEAgLTExNiw2ICsxMTYsMTEgQEAgcHVi
bGljOgogICAgIHZvaWQgY29tcHV0ZUNTU1RyYW5zaXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7CiAg
ICAgYm9vbCBzdHlsZXNXb3VsZFlpZWxkTmV3Q1NTVHJhbnNpdGlvbnNCbGVuZGluZ0tleWZyYW1l
cyhjb25zdCBSZW5kZXJTdHlsZSYgb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHls
ZSkgY29uc3Q7CiAgICAgYm9vbCBoYXNCbGVuZGluZ0tleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJu
IG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyB9CisgICAgY29uc3QgSGFzaFNldDxDU1NQcm9w
ZXJ0eUlEPiYgYW5pbWF0ZWRQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9ibGVuZGluZ0tl
eWZyYW1lcy5wcm9wZXJ0aWVzKCk7IH0KKworICAgIGJvb2wgY29tcHV0ZUV4dGVudE9mVHJhbnNm
b3JtQW5pbWF0aW9uKExheW91dFJlY3QmKSBjb25zdDsKKyAgICBib29sIGNvbXB1dGVUcmFuc2Zv
cm1lZEV4dGVudFZpYVRyYW5zZm9ybUxpc3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVy
U3R5bGUmLCBMYXlvdXRSZWN0JikgY29uc3Q7CisgICAgYm9vbCBjb21wdXRlVHJhbnNmb3JtZWRF
eHRlbnRWaWFNYXRyaXgoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBMYXlv
dXRSZWN0JikgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGNvcHlQcm9wZXJ0aWVzRnJv
bVNvdXJjZShSZWY8S2V5ZnJhbWVFZmZlY3RSZWFkT25seT4mJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA3MWZiM2I1ZTU3NzY2ZTBlZWEzOTAyM2RjZWJh
ZjU1ZDMwMmEzMzYxLi5mYTBlNTdhMWFhYjA1YmY0ODQ4MzQ5YWQyZGYyMTY3MjFiNTA4OWYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTUzLDYgKzUzLDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5k
bGVyLmgiCiAjaW5jbHVkZSAiRkVDb2xvck1hdHJpeC5oIgpAQCAtMTA3LDYgKzEwOCw3IEBACiAj
aW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCkBAIC05OTksMTUgKzEw
MDEsMjkgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zv
cm0oUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3IKICAgICAKICAgICBSZW5kZXJCb3gqIGJv
eCA9IHJlbmRlckJveCgpOwogCi0gICAgaWYgKHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkuaXNSdW5u
aW5nQWNjZWxlcmF0ZWRBbmltYXRpb25PblJlbmRlcmVyKHJlbmRlcmVyKCksIENTU1Byb3BlcnR5
VHJhbnNmb3JtLCBBbmltYXRpb25CYXNlOjpSdW5uaW5nIHwgQW5pbWF0aW9uQmFzZTo6UGF1c2Vk
KSkgewotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyVHJhbnNmb3JtOwotICAgICAg
ICBGbG9hdFJlY3QgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhl
bHMoYm94LT5ib3JkZXJCb3hSZWN0KCksIGJveC0+ZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3Rv
cigpKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IHJlbmRl
cmVyKCkuYW5pbWF0aW9uKCkuYW5pbWF0ZWRTdHlsZUZvclJlbmRlcmVyKHJlbmRlcmVyKCkpOwot
ICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0oY3VyclRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVk
Qm9yZGVyUmVjdCwgYXBwbHlPcmlnaW4pOwotICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZShj
dXJyVHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7Ci0gICAgICAgIHJldHVybiBj
dXJyVHJhbnNmb3JtOworICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmNzc0FuaW1hdGlvbnNBbmRDU1NUcmFuc2l0aW9uc0JhY2tlZEJ5V2ViQW5pbWF0aW9u
c0VuYWJsZWQoKSkgeworICAgICAgICBpZiAoYXV0byogdGltZWxpbmUgPSByZW5kZXJlcigpLmRv
Y3VtZW50VGltZWxpbmUoKSkgeworICAgICAgICAgICAgaWYgKHRpbWVsaW5lLT5pc1J1bm5pbmdB
Y2NlbGVyYXRlZEFuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIoKSwgQ1NTUHJvcGVydHlUcmFu
c2Zvcm0pKSB7CisgICAgICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggY3VyclRyYW5z
Zm9ybTsKKyAgICAgICAgICAgICAgICBGbG9hdFJlY3QgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCA9
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm94LT5ib3JkZXJCb3hSZWN0KCksIGJveC0+ZG9jdW1l
bnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gdGltZWxpbmUtPmFuaW1hdGVkU3R5bGVGb3JSZW5kZXJl
cihyZW5kZXJlcigpKTsKKyAgICAgICAgICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0oY3Vy
clRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCwgYXBwbHlPcmlnaW4pOworICAgICAg
ICAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKGN1cnJUcmFuc2Zvcm0sIGNhblJlbmRlcjNE
VHJhbnNmb3JtcygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3VyclRyYW5zZm9ybTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChyZW5kZXJl
cigpLmFuaW1hdGlvbigpLmlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5kZXJlcihy
ZW5kZXJlcigpLCBDU1NQcm9wZXJ0eVRyYW5zZm9ybSwgQW5pbWF0aW9uQmFzZTo6UnVubmluZyB8
IEFuaW1hdGlvbkJhc2U6OlBhdXNlZCkpIHsKKyAgICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IGN1cnJUcmFuc2Zvcm07CisgICAgICAgICAgICBGbG9hdFJlY3QgcGl4ZWxTbmFwcGVkQm9y
ZGVyUmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm94LT5ib3JkZXJCb3hSZWN0KCksIGJv
eC0+ZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSByZW5kZXJlcigpLmFuaW1hdGlvbigpLmFuaW1h
dGVkU3R5bGVGb3JSZW5kZXJlcihyZW5kZXJlcigpKTsKKyAgICAgICAgICAgIHN0eWxlLT5hcHBs
eVRyYW5zZm9ybShjdXJyVHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCBhcHBseU9y
aWdpbik7CisgICAgICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZShjdXJyVHJhbnNmb3JtLCBj
YW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CisgICAgICAgICAgICByZXR1cm4gY3VyclRyYW5zZm9y
bTsKKyAgICAgICAgfQogICAgIH0KIAorCiAgICAgLy8gbV90cmFuc2Zvcm0gaW5jbHVkZXMgdHJh
bnNmb3JtLW9yaWdpbiwgc28gd2UgbmVlZCB0byByZWNvbXB1dGUgdGhlIHRyYW5zZm9ybSBoZXJl
LgogICAgIGlmIChhcHBseU9yaWdpbiA9PSBSZW5kZXJTdHlsZTo6RXhjbHVkZVRyYW5zZm9ybU9y
aWdpbikgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyVHJhbnNmb3JtOwpAQCAt
NTc3NSw5ICs1NzkxLDE4IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmdldE92ZXJsYXBCb3VuZHNJbmNs
dWRpbmdDaGlsZHJlbkFjY291bnRpbmdGb3JUcmFuc2Zvcm1BbmltYXRpCiAgICAgYm91bmRzID0g
Y2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgTGF5b3V0U2l6ZSgpLCBib3VuZHNGbGFncyk7CiAg
ICAgCiAgICAgTGF5b3V0UmVjdCBhbmltYXRlZEJvdW5kcyA9IGJvdW5kczsKLSAgICBpZiAocmVu
ZGVyZXIoKS5hbmltYXRpb24oKS5jb21wdXRlRXh0ZW50T2ZBbmltYXRpb24ocmVuZGVyZXIoKSwg
YW5pbWF0ZWRCb3VuZHMpKSB7Ci0gICAgICAgIGJvdW5kcyA9IGFuaW1hdGVkQm91bmRzOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5jc3NBbmltYXRpb25zQW5kQ1NTVHJhbnNpdGlvbnNCYWNrZWRCeVdlYkFuaW1h
dGlvbnNFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHRpbWVsaW5lID0gcmVuZGVyZXIo
KS5kb2N1bWVudFRpbWVsaW5lKCkpIHsKKyAgICAgICAgICAgIGlmICh0aW1lbGluZS0+Y29tcHV0
ZUV4dGVudE9mQW5pbWF0aW9uKHJlbmRlcmVyKCksIGFuaW1hdGVkQm91bmRzKSkgeworICAgICAg
ICAgICAgICAgIGJvdW5kcyA9IGFuaW1hdGVkQm91bmRzOworICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAg
aWYgKHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkuY29tcHV0ZUV4dGVudE9mQW5pbWF0aW9uKHJlbmRl
cmVyKCksIGFuaW1hdGVkQm91bmRzKSkgeworICAgICAgICAgICAgYm91bmRzID0gYW5pbWF0ZWRC
b3VuZHM7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KICAgICAK
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IDdmZmE2M2Y2NzVhN2UyMzhlYzZhZTY5YjBkNmNmNzU3MGQ3
ZmZhZGQuLjJkOGQwOWYwNzliZGNmZWM2YzAxYTFjNmQ1NTM5MjY2Y2JlZGZkNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNhY2hl
ZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUaW1lbGlu
ZS5oIgogI2luY2x1ZGUgIkZpbHRlckVmZmVjdFJlbmRlcmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTYxLDYgKzYyLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJNZWRpYS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZGVvLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJT
Y3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
U3R5bGVSZXNvbHZlci5oIgpAQCAtOTQ4LDggKzk1MCwxNyBAQCB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlR2VvbWV0cnkoKQogCiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlID0g
cmVuZGVyZXIoKS5zdHlsZSgpOwogCi0gICAgYm9vbCBpc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5z
Zm9ybUFuaW1hdGlvbiA9IHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkuaXNSdW5uaW5nQWNjZWxlcmF0
ZWRBbmltYXRpb25PblJlbmRlcmVyKHJlbmRlcmVyKCksIENTU1Byb3BlcnR5VHJhbnNmb3JtLCBB
bmltYXRpb25CYXNlOjpSdW5uaW5nIHwgQW5pbWF0aW9uQmFzZTo6UGF1c2VkKTsKLSAgICBib29s
IGlzUnVubmluZ0FjY2VsZXJhdGVkT3BhY2l0eUFuaW1hdGlvbiA9IHJlbmRlcmVyKCkuYW5pbWF0
aW9uKCkuaXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25PblJlbmRlcmVyKHJlbmRlcmVyKCks
IENTU1Byb3BlcnR5T3BhY2l0eSwgQW5pbWF0aW9uQmFzZTo6UnVubmluZyB8IEFuaW1hdGlvbkJh
c2U6OlBhdXNlZCk7CisgICAgYm9vbCBpc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybUFuaW1h
dGlvbiA9IGZhbHNlOworICAgIGJvb2wgaXNSdW5uaW5nQWNjZWxlcmF0ZWRPcGFjaXR5QW5pbWF0
aW9uID0gZmFsc2U7CisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuY3NzQW5pbWF0aW9uc0FuZENTU1RyYW5zaXRpb25zQmFja2VkQnlXZWJBbmltYXRpb25z
RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChhdXRvKiB0aW1lbGluZSA9IHJlbmRlcmVyKCkuZG9j
dW1lbnRUaW1lbGluZSgpKSB7CisgICAgICAgICAgICBpc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5z
Zm9ybUFuaW1hdGlvbiA9IHRpbWVsaW5lLT5pc1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbk9u
UmVuZGVyZXIocmVuZGVyZXIoKSwgQ1NTUHJvcGVydHlUcmFuc2Zvcm0pOworICAgICAgICAgICAg
aXNSdW5uaW5nQWNjZWxlcmF0ZWRPcGFjaXR5QW5pbWF0aW9uID0gdGltZWxpbmUtPmlzUnVubmlu
Z0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5kZXJlcihyZW5kZXJlcigpLCBDU1NQcm9wZXJ0eU9w
YWNpdHkpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaXNSdW5uaW5nQWNjZWxl
cmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24gPSByZW5kZXJlcigpLmFuaW1hdGlvbigpLmlzUnVubmlu
Z0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5kZXJlcihyZW5kZXJlcigpLCBDU1NQcm9wZXJ0eVRy
YW5zZm9ybSwgQW5pbWF0aW9uQmFzZTo6UnVubmluZyB8IEFuaW1hdGlvbkJhc2U6OlBhdXNlZCk7
CisgICAgICAgIGlzUnVubmluZ0FjY2VsZXJhdGVkT3BhY2l0eUFuaW1hdGlvbiA9IHJlbmRlcmVy
KCkuYW5pbWF0aW9uKCkuaXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25PblJlbmRlcmVyKHJl
bmRlcmVyKCksIENTU1Byb3BlcnR5T3BhY2l0eSwgQW5pbWF0aW9uQmFzZTo6UnVubmluZyB8IEFu
aW1hdGlvbkJhc2U6OlBhdXNlZCk7CisgICAgfQogCiAgICAgLy8gU2V0IHRyYW5zZm9ybSBwcm9w
ZXJ0eSwgaWYgaXQgaXMgbm90IGFuaW1hdGluZy4gV2UgaGF2ZSB0byBkbyB0aGlzIGhlcmUgYmVj
YXVzZSB0aGUgdHJhbnNmb3JtCiAgICAgLy8gaXMgYWZmZWN0ZWQgYnkgdGhlIGxheWVyIGRpbWVu
c2lvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCmluZGV4IDAwYjRmZmUzZTQzYTI1Mzg3YjA1ZGRkZDMwNTNlYzk2Njk2YjBkZmEu
LjFjNDA0N2RjODM5ODA0NWM5MWY3NjA4NzIyZGQ4ODJlYjM5NDMxZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNzE5
LDYgKzI3MTksMTMgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzUnVubmluZ1RyYW5z
Zm9ybUFuaW1hdGlvbihSZW5kZXJMYXllck1vZGVsT2JqZWN0JgogICAgIGlmICghKG1fY29tcG9z
aXRpbmdUcmlnZ2VycyAmIENocm9tZUNsaWVudDo6QW5pbWF0aW9uVHJpZ2dlcikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLmNzc0FuaW1hdGlvbnNBbmRDU1NUcmFuc2l0aW9uc0JhY2tlZEJ5V2ViQW5pbWF0
aW9uc0VuYWJsZWQoKSkgeworICAgICAgICBpZiAoYXV0byogZWxlbWVudCA9IHJlbmRlcmVyLmVs
ZW1lbnQoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHRpbWVsaW5lID0gZWxlbWVudC0+ZG9j
dW1lbnQoKS5leGlzdGluZ1RpbWVsaW5lKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRpbWVs
aW5lLT5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKHJlbmRlcmVyLCBDU1NQcm9wZXJ0eVRy
YW5zZm9ybSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICBy
ZXR1cm4gcmVuZGVyZXIuYW5pbWF0aW9uKCkuaXNSdW5uaW5nQW5pbWF0aW9uT25SZW5kZXJlcihy
ZW5kZXJlciwgQ1NTUHJvcGVydHlUcmFuc2Zvcm0sIEFuaW1hdGlvbkJhc2U6OlJ1bm5pbmcgfCBB
bmltYXRpb25CYXNlOjpQYXVzZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKaW5kZXggM2M0ZjE1YWE0ZjFiNDBkNmRiYmI5YWNhZGYxNDM2NDI3NTJkMGUwMC4u
NWQ1ZDgyZjY2Y2VkZjNjOGFkNDI0YTJjZmIwZjNhMjBlOTRmZTM2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBDU1NBbmlt
YXRpb25Db250cm9sbGVyOwogY2xhc3MgQ29sb3I7CiBjbGFzcyBDdXJzb3I7CiBjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIERvY3VtZW50VGltZWxpbmU7CiBjbGFzcyBIaXRUZXN0TG9jYXRpb247CiBj
bGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CkBAIC03NTQsNiArNzU1
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdl
UHRyLCBjb25zdCBJbnRSZWN0KiA9IG51bGxwdHIpIHsgfQogCiAgICAgQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlciYgYW5pbWF0aW9uKCkgY29uc3Q7CisgICAgRG9jdW1lbnRUaW1lbGluZSogZG9jdW1l
bnRUaW1lbGluZSgpIGNvbnN0OwogCiAgICAgLy8gTWFwIHBvaW50cyBhbmQgcXVhZHMgdGhyb3Vn
aCBlbGVtZW50cywgcG90ZW50aWFsbHkgdmlhIDNkIHRyYW5zZm9ybXMuIFlvdSBzaG91bGQgbmV2
ZXIgbmVlZCB0byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1c2UKICAgICAvLyBsb2NhbFRvQWJzb2x1
dGUvYWJzb2x1dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVhZC4KQEAgLTEwMDQsNiArMTAwNiwxMSBA
QCBpbmxpbmUgQ1NTQW5pbWF0aW9uQ29udHJvbGxlciYgUmVuZGVyT2JqZWN0OjphbmltYXRpb24o
KSBjb25zdAogICAgIHJldHVybiBmcmFtZSgpLmFuaW1hdGlvbigpOwogfQogCitpbmxpbmUgRG9j
dW1lbnRUaW1lbGluZSogUmVuZGVyT2JqZWN0Ojpkb2N1bWVudFRpbWVsaW5lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZG9jdW1lbnQoKS5leGlzdGluZ1RpbWVsaW5lKCk7Cit9CisKIGlubGluZSBi
b29sIFJlbmRlck9iamVjdDo6cmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gZG9jdW1lbnQoKS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5
ZGZjMGM2NWFkMDJiZGFhNmNiOThhZWY0YmU0ZjczZTc0YmUxYmJlLi45ZDUzODRiNDc4MDRmNzVk
ZmViYmM3NjI4ZjE5OWI2YmIzM2NlYmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDQt
MTIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFu
aW1hdGlvbnNdIEVuc3VyZSBlbGVtZW50cyBvdmVybGFwcGluZyB3aXRoIGVsZW1lbnRzIGFuaW1h
dGluZyBhbHNvIGdldCBjb21wb3NpdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODQ1MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPcHQgbW9yZSB0ZXN0cyBpbiB0aGUgQ1NTIEFuaW1hdGlvbnMgYW5k
IENTUyBUcmFuc2l0aW9ucyBhcyBXZWIgQW5pbWF0aW9ucyBydW50aW1lIGZsYWcgc2luY2UgdGhl
eSBub3cgcGFzcy4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2JhY2tpbmcvYmFja2ZhY2Utdmlz
aWJpbGl0eS1mbGlwLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24v
b3ZlcmxhcC1hbmltYXRpb24tY2xpcHBpbmcuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9s
YXllci1jcmVhdGlvbi9vdmVybGFwLWFuaW1hdGlvbi1jb250YWluZXIuaHRtbDoKKyAgICAgICAg
KiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLWFuaW1hdGlvbi5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3RyYW5zbGF0ZS1hbmltYXRpb24tb3Zl
cmxhcC5odG1sOgorCiAyMDE4LTA0LTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBFbmFibGUgc2Vla2luZyBmb3IgaGFyZHdh
cmUgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvYmFja2lu
Zy9iYWNrZmFjZS12aXNpYmlsaXR5LWZsaXAuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2JhY2tpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS1mbGlwLmh0bWwKaW5kZXggYWM0OTk3MTJjZDM5
Yzk2NGEyMTBhMzBkOGY3ODRlNzgxNmFjYWQyNC4uOWM0YmE3MGU2NGRjMWYzMWYwOGY1MTFjMWZj
ODBjZDM3ZDc0MDM1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvYmFja2lu
Zy9iYWNrZmFjZS12aXNpYmlsaXR5LWZsaXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9iYWNraW5nL2JhY2tmYWNlLXZpc2liaWxpdHktZmxpcC5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCFET0NUWVBFIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUNTU0FuaW1hdGlvbnNBbmRDU1NUcmFuc2l0aW9uc0JhY2tlZEJ5V2ViQW5pbWF0
aW9ucz10cnVlIF0gLS0+CiAKIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLWFuaW1hdGlvbi1jbGlwcGluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC1hbmlt
YXRpb24tY2xpcHBpbmcuaHRtbAppbmRleCBiMmEyY2YzYjViZjkzNzc1ODM1Mzk2YWEyZDVlZTFh
MTBmNTM0MWU1Li4yZTMxZTYzNjZiNTY3NzlhOTNjOWZiOTcwYmQxODdlNDJhMTBlNDk3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLWFu
aW1hdGlvbi1jbGlwcGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVy
LWNyZWF0aW9uL292ZXJsYXAtYW5pbWF0aW9uLWNsaXBwaW5nLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQ1NTQW5pbWF0aW9uc0FuZENTU1RyYW5zaXRpb25zQmFja2VkQnlXZWJBbmltYXRp
b25zPXRydWUgXSAtLT4KIAogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtYW5pbWF0aW9uLWNvbnRhaW5lci5o
dG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC1hbmlt
YXRpb24tY29udGFpbmVyLmh0bWwKaW5kZXggOTJmZWQxNWY2OGIxZGZhMjViMWU4NGUzMmZjYmJi
ZTk0MjQ0MDA2Yy4uOWMzM2ZlOTU5ZDEyZWJmMTAwZjVjMWE5NmFlOWU2MTU2MzdjYjgyNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC1h
bmltYXRpb24tY29udGFpbmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5
ZXItY3JlYXRpb24vb3ZlcmxhcC1hbmltYXRpb24tY29udGFpbmVyLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IURPQ1RZUEUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQ1NTQW5pbWF0aW9uc0FuZENTU1RyYW5zaXRpb25zQmFja2VkQnlXZWJBbmlt
YXRpb25zPXRydWUgXSAtLT4KIAogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtYW5pbWF0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLWFuaW1hdGlvbi5o
dG1sCmluZGV4IDcwOTcyZDg2NjBjZTFmYjI3N2E2NjQxZWUwMmNiOTdmODYzMDlkNmIuLmQxZTE0
ZWIzY2ExOTY4NzZlOGVjOTNjODA5NGJkZDg4NjliZDliZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtYW5pbWF0aW9uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC1hbmltYXRp
b24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0bWw+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVDU1NBbmltYXRpb25zQW5kQ1NTVHJhbnNp
dGlvbnNCYWNrZWRCeVdlYkFuaW1hdGlvbnM9dHJ1ZSBdIC0tPgogCiA8aHRtbD4KIDxoZWFkPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vdHJhbnNs
YXRlLWFuaW1hdGlvbi1vdmVybGFwLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXll
ci1jcmVhdGlvbi90cmFuc2xhdGUtYW5pbWF0aW9uLW92ZXJsYXAuaHRtbAppbmRleCBhMTYwY2Jl
ZGY5NDM2YTZhMmU0NTcyMmIxMDA0YzFhODdjNDYwNjU4Li4yODY2YzU5MmU4Y2UxZmEzM2VkMDMw
NDkxNWU2ZWVkNThkNmQ5MTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9s
YXllci1jcmVhdGlvbi90cmFuc2xhdGUtYW5pbWF0aW9uLW92ZXJsYXAuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi90cmFuc2xhdGUtYW5pbWF0aW9uLW92
ZXJsYXAuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPgorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVDU1NBbmltYXRpb25zQW5kQ1NTVHJh
bnNpdGlvbnNCYWNrZWRCeVdlYkFuaW1hdGlvbnM9dHJ1ZSBdIC0tPgogCiA8aHRtbD4KIDxoZWFk
Pgo=
</data>
<flag name="review"
          id="356151"
          type_id="1"
          status="+"
          setter="jonlee"
    />
          </attachment>
      

    </bug>

</bugzilla>