<?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>160289</bug_id>
          
          <creation_ts>2016-07-28 03:11:06 -0700</creation_ts>
          <short_desc>Frequent animation lags when interacting with Safari (sidebar, tab switching, etc.)</short_desc>
          <delta_ts>2016-07-28 14:21:04 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>cying</cc>
    
    <cc>james.savage</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1215191</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-28 03:11:06 -0700</bug_when>
    <thetext>Frequent animation lags when interacting with Safari (sidebar, tab switching, etc.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215192</commentid>
    <comment_count>1</comment_count>
      <attachid>284768</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-28 03:12:39 -0700</bug_when>
    <thetext>Created attachment 284768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215193</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-28 03:13:13 -0700</bug_when>
    <thetext>Will write changelog and post for review tomorrow, just wanted to get EWS going.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215299</commentid>
    <comment_count>3</comment_count>
      <attachid>284795</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-28 11:28:16 -0700</bug_when>
    <thetext>Created attachment 284795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215300</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-28 11:29:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/27553464&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215356</commentid>
    <comment_count>5</comment_count>
      <attachid>284795</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-07-28 13:21:35 -0700</bug_when>
    <thetext>Comment on attachment 284795
Patch

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

&gt; Source/WebKit2/Platform/IPC/Connection.cpp:391
&gt; +std::chrono::milliseconds Connection::timeoutRespectingIgnoreTimeoutsForTesting(std::chrono::milliseconds timeout) const
&gt; +{
&gt; +    return m_ignoreTimeoutsForTesting ? std::chrono::milliseconds::max() : timeout;
&gt; +}

I thought we are moving away from std::chrono.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215366</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-28 13:27:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 284795 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284795&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Platform/IPC/Connection.cpp:391
&gt; &gt; +std::chrono::milliseconds Connection::timeoutRespectingIgnoreTimeoutsForTesting(std::chrono::milliseconds timeout) const
&gt; &gt; +{
&gt; &gt; +    return m_ignoreTimeoutsForTesting ? std::chrono::milliseconds::max() : timeout;
&gt; &gt; +}
&gt; 
&gt; I thought we are moving away from std::chrono.

Sure, but this code is full of it still.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215388</commentid>
    <comment_count>7</comment_count>
      <attachid>284795</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-07-28 14:09:38 -0700</bug_when>
    <thetext>Comment on attachment 284795
Patch

+1. My code was assuming message ordering, which is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215393</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-28 14:21:04 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/203842</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284768</attachid>
            <date>2016-07-28 03:12:39 -0700</date>
            <delta_ts>2016-07-28 11:28:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160289-20160728031127.patch</filename>
            <type>text/plain</type>
            <size>29202</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzIxZGMxZTE0NDg3M2Uz
ZmU1NzRjZjA4MzJmNGEzOGY1MzZlODQzOC4uODA0MTcxMzM0MDc4ZmQzMjdmMjdjYTk1OTBhMzA5
MGJjNzNkNjA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE2LTA3LTI4ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEZyZXF1ZW50IGFu
aW1hdGlvbiBsYWdzIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCBTYWZhcmkgKHNpZGViYXIsIHRhYiBz
d2l0Y2hpbmcsIGV0Yy4pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjAyODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3NTUzNDY0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFQSSBUZXN0czogV2Vi
S2l0Mi5BbmltYXRlZFJlc2l6ZURvZXNOb3RIYW5nLCBXZWJLaXQyLlJlc2l6ZVdpdGhIaWRkZW5D
b250ZW50RG9lc05vdEhhbmcKKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6dGltZW91dFJlc3BlY3RpbmdJZ25vcmVUaW1l
b3V0c0ZvclRlc3RpbmcpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp3YWl0Rm9yTWVzc2Fn
ZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRh
cnlUaHJlYWQpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KToK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjppZ25vcmVUaW1lb3V0c0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExheWVyVHJlZTpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gaWdu
b3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmddKToKKyAgICAgICAgKC1b
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldElnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5n
VGltZW91dHNGb3JUZXN0aW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRGlkRmluaXNo
TGF1bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzeW5jaHJvbml6ZUR5bmFtaWNWaWV3cG9y
dFVwZGF0ZSk6CisKIDIwMTYtMDctMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggbV9pc0luQmFja2dyb3VuZCBpbml0aWFsaXphdGlvbiBmb3IgU2FmYXJp
IFZpZXcgU2VydmljZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cAppbmRleCAyZDczMjhiOTQyM2E4YTI1NzAxMmYzZTUxMjU5MDUyNTMyZmVmNzVjLi4yNjJkNWI3
MzRmY2E3NGNlZjg5MjA0Y2Q1MTRhODVlMWE2NzEwZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0zODUsMTAgKzM4NSwxNyBAQCBib29sIENvbm5l
Y3Rpb246OnNlbmRTeW5jUmVwbHkoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNv
ZGVyKQogICAgIHJldHVybiBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpKTsKIH0KIAorc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyBDb25uZWN0aW9uOjp0aW1lb3V0UmVzcGVjdGluZ0lnbm9y
ZVRpbWVvdXRzRm9yVGVzdGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1faWdub3JlVGltZW91dHNGb3JUZXN0aW5nID8gc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kczo6bWF4KCkgOiB0aW1lb3V0OworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKFN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5z
aWduZWQgd2FpdEZvck1lc3NhZ2VGbGFncykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogCisgICAgdGltZW91dCA9IHRpbWVvdXRSZXNwZWN0aW5nSWdub3JlVGltZW91dHNGb3JU
ZXN0aW5nKHRpbWVvdXQpOworCiAgICAgYm9vbCBoYXNJbmNvbWluZ1N5bmNocm9ub3VzTWVzc2Fn
ZSA9IGZhbHNlOwogCiAgICAgLy8gRmlyc3QsIGNoZWNrIGlmIHRoaXMgbWVzc2FnZSBpcyBhbHJl
YWR5IGluIHRoZSBpbmNvbWluZyBtZXNzYWdlcyBxdWV1ZS4KQEAgLTUzMiw2ICs1MzksNyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2Fn
ZUZyb21TZWNvbmRhcnlUaHJlYWQodQogCiAgICAgc2VuZE1lc3NhZ2UoV1RGTW92ZShlbmNvZGVy
KSwgMCwgdHJ1ZSk7CiAKKyAgICB0aW1lb3V0ID0gdGltZW91dFJlc3BlY3RpbmdJZ25vcmVUaW1l
b3V0c0ZvclRlc3RpbmcodGltZW91dCk7CiAgICAgcGVuZGluZ1JlcGx5LnNlbWFwaG9yZS53YWl0
KGN1cnJlbnRUaW1lKCkgKyAodGltZW91dC5jb3VudCgpIC8gMTAwMC4wKSk7CiAKICAgICAvLyBG
aW5hbGx5LCBwb3AgdGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1hdGlvbi4KQEAgLTU0Niw2
ICs1NTQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNl
bmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQodQogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZURlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1Jl
cXVlc3RJRCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCBzeW5j
U2VuZEZsYWdzKQogeworICAgIHRpbWVvdXQgPSB0aW1lb3V0UmVzcGVjdGluZ0lnbm9yZVRpbWVv
dXRzRm9yVGVzdGluZyh0aW1lb3V0KTsKICAgICBkb3VibGUgYWJzb2x1dGVUaW1lID0gY3VycmVu
dFRpbWUoKSArICh0aW1lb3V0LmNvdW50KCkgLyAxMDAwLjApOwogCiAgICAgd2lsbFNlbmRTeW5j
TWVzc2FnZShzeW5jU2VuZEZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5oCmluZGV4IGYzZmM5YjI4ZDM3NDM2ZjdiMWFhODY1NTNmNzE3NjNlNmI5YjQzYjEuLjkz
ZmM2NGFhZTZjOTQ4MTM4ZGVjYzJmNDE2YTFjNWI2MTY3MGNiZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaApAQCAtMjA1LDYgKzIwNSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgYWxsb3dGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKSB7IG1fZnVsbHlT
eW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nID0gdHJ1ZTsgfQogCisgICAgdm9pZCBp
Z25vcmVUaW1lb3V0c0ZvclRlc3RpbmcoKSB7IG1faWdub3JlVGltZW91dHNGb3JUZXN0aW5nID0g
dHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1Nl
cnZlciwgQ2xpZW50Jik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoSWRlbnRpZmllcik7
CkBAIC0yMzksNiArMjQxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgd2lsbFNlbmRTeW5jTWVz
c2FnZSh1bnNpZ25lZCBzeW5jU2VuZEZsYWdzKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUmVw
bHkodW5zaWduZWQgc3luY1NlbmRGbGFncyk7CisKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIHRpbWVvdXRSZXNwZWN0aW5nSWdub3JlVGltZW91dHNGb3JUZXN0aW5nKHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMpIGNvbnN0OwogICAgIAogICAgIENsaWVudCogbV9jbGllbnQ7CiAgICAg
Ym9vbCBtX2lzU2VydmVyOwpAQCAtMjU4LDYgKzI2Miw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWdu
ZWQgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHlDb3VudDsKICAgICB1bnNpZ25lZCBtX2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkVG9Vc2VGdWxs
eVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcgeyAwIH07CiAgICAgYm9vbCBtX2Z1bGx5U3luY2hy
b25vdXNNb2RlSXNBbGxvd2VkRm9yVGVzdGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lnbm9y
ZVRpbWVvdXRzRm9yVGVzdGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2RpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZTsKIAogICAgIC8vIEluY29taW5nIG1lc3NhZ2VzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uY3BwCmluZGV4IGI1ODIyMDVkYzJhN2E2ZjVjMjY1YmM3ZmU1YmUxMTc2YTU2NDc0NzEuLjFj
YjBkZWIwNzU0OGZlMDRmYjgzOGFjY2U1ZTJkYjlhYWQ0Zjc2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5jcHAKQEAgLTEwOSw2ICsxMDksNyBAQCBSZWY8UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
PiBQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGNvcHktPm1fY2FjaGVQYXJ0
aXRpb25lZFVSTFNjaGVtZXMgPSB0aGlzLT5tX2NhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwog
ICAgIGNvcHktPm1fYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzID0gdGhpcy0+bV9hbHdheXNS
ZXZhbGlkYXRlZFVSTFNjaGVtZXM7CiAgICAgY29weS0+bV9mdWxseVN5bmNocm9ub3VzTW9kZUlz
QWxsb3dlZEZvclRlc3RpbmcgPSB0aGlzLT5tX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2Vk
Rm9yVGVzdGluZzsKKyAgICBjb3B5LT5tX2lnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91
dHNGb3JUZXN0aW5nID0gdGhpcy0+bV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRz
Rm9yVGVzdGluZzsKICAgICBjb3B5LT5tX292ZXJyaWRlTGFuZ3VhZ2VzID0gdGhpcy0+bV9vdmVy
cmlkZUxhbmd1YWdlczsKICAgICAKICAgICByZXR1cm4gY29weTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5o
CmluZGV4IGYwOWQ0OGJhMjlkMWMzMGQ4MDg2MjgyMmFjNDM2ZTM0OTcxYjdjMGQuLjk2ZTU0NzUx
N2I2MWIzM2VkN2U1NTNmMWQyNGIwN2VjMTg2YzMxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApA
QCAtOTYsNiArOTYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBmdWxseVN5bmNocm9ub3VzTW9kZUlz
QWxsb3dlZEZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2Z1bGx5U3luY2hyb25vdXNNb2Rl
SXNBbGxvd2VkRm9yVGVzdGluZzsgfQogICAgIHZvaWQgc2V0RnVsbHlTeW5jaHJvbm91c01vZGVJ
c0FsbG93ZWRGb3JUZXN0aW5nKGJvb2wgYWxsb3dlZCkgeyBtX2Z1bGx5U3luY2hyb25vdXNNb2Rl
SXNBbGxvd2VkRm9yVGVzdGluZyA9IGFsbG93ZWQ7IH0KIAorICAgIGJvb2wgaWdub3JlU3luY2hy
b25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2lnbm9y
ZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nOyB9CisgICAgdm9pZCBzZXRJ
Z25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyhib29sIGFsbG93ZWQp
IHsgbV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyA9IGFsbG93
ZWQ7IH0KKwogICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIG92ZXJyaWRlTGFuZ3VhZ2Vz
KCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZUxhbmd1YWdlczsgfQogICAgIHZvaWQgc2V0T3Zl
cnJpZGVMYW5ndWFnZXMoVmVjdG9yPFdURjo6U3RyaW5nPiYmIGxhbmd1YWdlcykgeyBtX292ZXJy
aWRlTGFuZ3VhZ2VzID0gV1RGTW92ZShsYW5ndWFnZXMpOyB9CiAKQEAgLTEyMCw2ICsxMjMsNyBA
QCBwcml2YXRlOgogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9jYWNoZVBhcnRpdGlvbmVkVVJM
U2NoZW1lczsKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fYWx3YXlzUmV2YWxpZGF0ZWRVUkxT
Y2hlbWVzOwogICAgIGJvb2wgbV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRlc3Rp
bmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVv
dXRzRm9yVGVzdGluZyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX292ZXJy
aWRlTGFuZ3VhZ2VzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQppbmRleCAzZGM2ZWY5MjkzY2EwYTAyYzdiNTQ2NThmNDFmMzg2NDg1
ZDY0YjE5Li5hN2M5MDMwMWMwNDljZjBhM2ZhOTk2OWZhM2E2Yzg5ZTZlOWRlMzRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjM1
LDcgKzIzNSw3IEBAIFdLV2ViVmlldyogZnJvbVdlYlBhZ2VQcm94eShXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYgcGFnZSkKICAgICB1aW50NjRfdCBfZmlyc3RQYWludEFmdGVyQ29tbWl0TG9hZFRyYW5z
YWN0aW9uSUQ7CiAgICAgRHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSBfZHluYW1pY1ZpZXdwb3J0
VXBkYXRlTW9kZTsKICAgICBDQVRyYW5zZm9ybTNEIF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1B
ZGp1c3RtZW50czsKLSAgICB1aW50NjRfdCBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3JtVHJhbnNh
Y3Rpb25JRDsKKyAgICBPcHRpb25hbDx1aW50NjRfdD4gX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9y
bVRyYW5zYWN0aW9uSUQ7CiAgICAgUmV0YWluUHRyPFVJVmlldz4gX3Jlc2l6ZUFuaW1hdGlvblZp
ZXc7CiAgICAgQ0dGbG9hdCBfbGFzdEFkanVzdG1lbnRGb3JTY3JvbGxlcjsKICAgICBPcHRpb25h
bDxDR1JlY3Q+IF9mcm96ZW5WaXNpYmxlQ29udGVudFJlY3Q7CkBAIC0xMjM2LDcgKzEyMzYsOCBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYikKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRh
dGVNb2RlICE9IER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKSB7Ci0gICAg
ICAgIGlmIChsYXllclRyZWVUcmFuc2FjdGlvbi50cmFuc2FjdGlvbklEKCkgPj0gX3Jlc2l6ZUFu
aW1hdGlvblRyYW5zZm9ybVRyYW5zYWN0aW9uSUQpIHsKKyAgICAgICAgaWYgKF9yZXNpemVBbmlt
YXRpb25UcmFuc2Zvcm1UcmFuc2FjdGlvbklEICYmIGxheWVyVHJlZVRyYW5zYWN0aW9uLnRyYW5z
YWN0aW9uSUQoKSA+PSBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3JtVHJhbnNhY3Rpb25JRC52YWx1
ZSgpKSB7CisgICAgICAgICAgICBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3JtVHJhbnNhY3Rpb25J
RCA9IE51bGxvcHQ7CiAgICAgICAgICAgICBbX3Jlc2l6ZUFuaW1hdGlvblZpZXcgbGF5ZXJdLnN1
YmxheWVyVHJhbnNmb3JtID0gX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzOwog
ICAgICAgICAgICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlID09IER5bmFtaWNWaWV3
cG9ydFVwZGF0ZU1vZGU6OlJlc2l6aW5nV2l0aERvY3VtZW50SGlkZGVuKSB7CiAgICAgICAgICAg
ICAgICAgW19jb250ZW50VmlldyBzZXRIaWRkZW46Tk9dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmgKaW5kZXggMzM0YmM5YzZhYTY3MDhlY2JmMzhkY2JlZDY0OWM0MmY3NTBlNjc2Ni4u
YzdiMzc0YjJlODFiMmViODdkNGM0MWNhZWY1MzY2Y2Q1Njc0YmYwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oCkBAIC0zNyw2ICszNyw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0Fy
cmF5ICpjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5KSBOU0FycmF5PE5TU3RyaW5nICo+ICphbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBkaXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdU
aW1lb3V0c0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bQppbmRleCAxNTExMDdmNDgxMDliYTI2ZThmMGQxZDc2NGNhNGRlY2QwMDMwMTQ4Li4yOTljOTJm
YjhjM2Y0OGM3ODYwYWUwMGYwMDliMTUxZmY1Zjk4YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5tbQpAQCAtOTIsNiArOTIsMTYgQEAKICAgICBfcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLT5zZXREaXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkKGVuYWJsZWQp
OwogfQogCistIChCT09MKWlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0
aW5nCit7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPmlnbm9yZVN5bmNo
cm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nKCk7Cit9CisKKy0gKHZvaWQpc2V0SWdu
b3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3Rpbmc6KEJPT0wpaWdub3JlU3lu
Y2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcKK3sKKyAgICBfcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLT5zZXRJZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVz
dGluZyhpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyk7Cit9CisK
IC0gKE5TQXJyYXkgKiljYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcwogewogICAgIGF1dG8gc2No
ZW1lcyA9IF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPmNhY2hlUGFydGl0aW9uZWRVUkxTY2hl
bWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRl
eCBmYzFmOGQ2MjBiODA3NTJlNmMxYzI5OTFkMmI5M2E3YWY4NzZmMjk3Li41ZDcxYzBkNTVlMDRm
N2RjZDAxODc5NTVlZGMxMWY1Yzg4ZDNiOTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTczMCw2ICs3MzAsOSBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcykK
ICAgICBpZiAobV9jb25maWd1cmF0aW9uLT5mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZv
clRlc3RpbmcoKSkKICAgICAgICAgcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5hbGxvd0Z1bGx5U3lu
Y2hyb25vdXNNb2RlRm9yVGVzdGluZygpOwogCisgICAgaWYgKG1fY29uZmlndXJhdGlvbi0+aWdu
b3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcoKSkKKyAgICAgICAgcHJv
Y2Vzcy0+Y29ubmVjdGlvbigpLT5pZ25vcmVUaW1lb3V0c0ZvclRlc3RpbmcoKTsKKwogICAgIG1f
Y29ubmVjdGlvbkNsaWVudC5kaWRDcmVhdGVDb25uZWN0aW9uKHRoaXMsIHByb2Nlc3MtPndlYkNv
bm5lY3Rpb24oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KaW5kZXggYTAyYjJjNzVlOGI3ZWIxMjNlNjJlZjljNDFjMjdhMDQ3YjRl
NDBhNC4uOTMwZWQ5ZjIyYTY5ZTk5YjIwNzczNjcxNGQwMjczNDUyN2NjMDdhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTMwMSw5
ICszMDEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3luY2hyb25pemVEeW5hbWljVmlld3BvcnRV
cGRhdGUoKQogICAgIH0KIAogICAgIC8vIElmIG1fZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZVdh
aXRpbmdGb3JUYXJnZXQgaXMgZmFsc2UsIHdlIGFyZSB3YWl0aW5nIGZvciB0aGUgbmV4dCB2YWxp
ZCBmcmFtZSB3aXRoIHRoZSBob3BlIGl0IGlzIHRoZSBvbmUgZm9yIHRoZSBuZXcgdGFyZ2V0Lgot
ICAgIC8vIElmIG1fZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZVdhaXRpbmdGb3JUYXJnZXQgaXMg
c3RpbGwgdHJ1ZSwgdGhpcyBpcyBhIGRlc2VzcGVyYXRlIGF0dGVtcHQgdG8gZ2V0IHRoZSB2YWxp
ZCBmcmFtZSBiZWZvcmUgZmluaXNoaW5nIHRoZSBhbmltYXRpb24uCisgICAgLy8gSWYgbV9keW5h
bWljVmlld3BvcnRTaXplVXBkYXRlV2FpdGluZ0ZvclRhcmdldCBpcyBzdGlsbCB0cnVlLCB0aGlz
IGlzIGEgZGVzcGVyYXRlIGF0dGVtcHQgdG8gZ2V0IHRoZSB2YWxpZCBmcmFtZSBiZWZvcmUgZmlu
aXNoaW5nIHRoZSBhbmltYXRpb24uCiAgICAgaWYgKG1fZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZVdhaXRpbmdGb3JMYXllclRyZWVDb21taXQpCi0gICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlv
bigpLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eTo6Q29tbWl0TGF5ZXJUcmVlPihtX3BhZ2VJRCwgc3RkOjpjaHJv
bm86OnNlY29uZHMoMSksIElQQzo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVz
KTsKKyAgICAgICAgbV9kcmF3aW5nQXJlYS0+d2FpdEZvckRpZFVwZGF0ZVZpZXdTdGF0ZSgpOwog
CiAgICAgbV9keW5hbWljVmlld3BvcnRTaXplVXBkYXRlV2FpdGluZ0ZvclRhcmdldCA9IGZhbHNl
OwogICAgIG1fZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZVdhaXRpbmdGb3JMYXllclRyZWVDb21t
aXQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBhZTNlNTUyNzE4N2NkM2E2NmQ3ZTgzNzYzNWNiYWQ1ZjVlMGFhZmYyLi5mYzliYmRm
MTg0NTg4ODRhNGZhZDI5YmFkMjBmMmU1ODM4NWJhNjQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYtMDctMjgg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRnJlcXVl
bnQgYW5pbWF0aW9uIGxhZ3Mgd2hlbiBpbnRlcmFjdGluZyB3aXRoIFNhZmFyaSAoc2lkZWJhciwg
dGFiIHN3aXRjaGluZywgZXRjLikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MDI4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc1NTM0NjQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25maWc6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQW5pbWF0ZWRSZXNpemUu
bW06IEFkZGVkLgorICAgICAgICAoLVtBbmltYXRlZFJlc2l6ZU5hdmlnYXRpb25EZWxlZ2F0ZSBf
d2ViVmlldzpyZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bQW5pbWF0
ZWRSZXNpemVXZWJWaWV3IF9lbmRBbmltYXRlZFJlc2l6ZV0pOgorICAgICAgICAoYW5pbWF0ZWRS
ZXNpemVXZWJWaWV3KToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2JsaW5raW5nLWRpdi5odG1sOiBBZGRlZC4KKwogMjAxNi0wNy0y
NyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxl
IFdlYkNvcmVOU1VSTFNlc3Npb25UZXN0IEFQSSB0ZXN0cyBvbiBpb3Mtc2ltdWxhdG9yCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEku
eGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRB
UEkueGNjb25maWcKaW5kZXggODIxOGEzN2JkMWY3MDk5NjAxZTUzOTc3NDJkN2JmOWMxMWNiN2Fk
My4uYWIzMmQ4MjNmNjI3NGViYjg2YWE2OGE3ODI4OTNhOGYxYTA2YmVlMCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmln
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54
Y2NvbmZpZwpAQCAtMzIsNiArMzIsNiBAQCBPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQo
VU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUykgLWxndGVzdCAtZm9yY2VfbG9hZCAkKAogT1RIRVJf
TERGTEFHU19QTEFURk9STVtzZGs9bWFjb3N4Kl0gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdv
cmsgQ2FyYm9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4g
SW5zdGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0
aW9uLgotT1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25lKl0gPSAtZnJhbWV3b3JrIFdl
YkNvcmUgLWZyYW1ld29yayBDb3JlR3JhcGhpY3M7CitPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nk
az1pcGhvbmUqXSA9IC1mcmFtZXdvcmsgV2ViQ29yZSAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAt
ZnJhbWV3b3JrIFVJS2l0OwogCiBMRF9SVU5QQVRIX1NFQVJDSF9QQVRIUyA9ICJAbG9hZGVyX3Bh
dGgiOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZTk3ODY0Mjc1N2JlNzZjNmIxZGVmZmUz
MDYyMjdiYWIyODkzYWZkLi44YzE4NmU2OGExMDJkM2E2Mzc2N2NhYTgzMmM5MjdlMDY1YTIwZjM1
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTIsMTIgKzUyLDE0IEBACiAJCTJENTFBMEM3
MUM4QkYwMEMwMDc2NUM0NSAvKiBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENTFBMEM1MUM4QkYwMDQw
MDc2NUM0NSAvKiBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbSAqLzsgfTsKIAkJMkRDNENG
NzcxRDJEOUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyog
RGF0YURldGVjdGlvbi5tbSAqLzsgfTsKIAkJMkREN0QzQUYxNzgyMjdCMzAwMjZFMUUzIC8qIGxv
dHMtb2YtdGV4dC12ZXJ0aWNhbC1sci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBsb3Rz
LW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCAqLzsgfTsKKwkJMkRFNzFBRkUxRDQ5QzBCRDAwOTA0
MDk0IC8qIEFuaW1hdGVkUmVzaXplLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRFNzFBRkQxRDQ5QzBCRDAwOTA0MDk0IC8qIEFuaW1hdGVkUmVzaXpl
Lm1tICovOyB9OworCQkyREU3MUIwMDFENDlDM0VEMDA5MDQwOTQgLyogYmxpbmtpbmctZGl2Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRFNzFBRkYxRDQ5QzJGMDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sICovOyB9OwogCQky
RTE0QTUyOTFEM0ZFOTZCMDAxMEYzNUIgLyogYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFMTRBNTI4MUQzRkU4QjgwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlv
Lmh0bWwgKi87IH07CiAJCTJFMUI3QjAwMUQ0MUFCQTcwMDc1NThCNCAvKiBsYXJnZS12aWRlby1z
ZWVrLWFmdGVyLWVuZGluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFMUI3QUZGMUQ0MUE5NUYwMDc1NThCNCAvKiBsYXJnZS12aWRl
by1zZWVrLWFmdGVyLWVuZGluZy5odG1sICovOyB9OwogCQkyRTFCN0IwMjFENDFCMUI5MDA3NTU4
QjQgLyogbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFC
N0IwMTFENDFCMUIzMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXIt
c2Vlay10by1lbmQuaHRtbCAqLzsgfTsKLQkJMkUxREZERjExRDQyRTFFNDAwNzE0QTAwIC8qIGxh
cmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURG
REYwMUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQt
cGxheS1hZnRlci1lbmRpbmcuaHRtbCAqLzsgfTsKIAkJMkUxREZERUQxRDQyQTUxMTAwNzE0QTAw
IC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxREZERUMxRDQyQTQxQzAwNzE0QTAwIC8q
IGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwgKi87IH07CiAJCTJFMURGREVGMUQ0MkE2RjIw
MDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURGREVFMUQ0
MkE2RUIwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sICov
OyB9OworCQkyRTFERkRGMTFENDJFMUU0MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1i
ZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxREZERjAxRDQyRTE0NDAwNzE0QTAw
IC8qIGxhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5o
dG1sICovOyB9OwogCQkyRTc3NjVDRDE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzc2NUNDMTZDNEQ4
MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tICovOyB9OwogCQkyRTc3NjVDRjE2QzREODExMDBCQTJC
QjEgLyogbWFpbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFNzc2NUNFMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tICovOyB9OwogCQkz
M0JFNUFGOTEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCRTVBRjgx
MzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLzsgfTsK
QEAgLTUwOSw2ICs1MTEsNyBAQAogCQkJCTJFMURGREVGMUQ0MkE2RjIwMDcxNEEwMCAvKiBsYXJn
ZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTJFMURGREVEMUQ0MkE1MTEwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVDOUU1OTQxMUQzRUI1QUMwMEUzQzYyRSAv
KiBBcHBsaWNhdGlvbkNhY2hlLmRiIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTJERTcxQjAw
MUQ0OUMzRUQwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1QzlFNTk0MjFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGljYXRpb25DYWNoZS5kYi1z
aG0gaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNUM5RTU5NDMxRDNFQjVBQzAwRTNDNjJFIC8q
IEFwcGxpY2F0aW9uQ2FjaGUuZGItd2FsIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFMTRB
NTI5MUQzRkU5NkIwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC03MDcsMTIgKzcxMCwxNCBAQAogCQkyREQzNTUzNTFC
RDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91dEludGVncmF0aW9uLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b0xheW91dEludGVncmF0aW9uLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREQ3RDNBOTE3ODIwNUQwMDAyNkUxRTMgLyogUmVz
aXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyREQ3RDNBRTE3ODIyN0FDMDAyNkUxRTMgLyogbG90cy1vZi10
ZXh0LXZlcnRpY2FsLWxyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibG90cy1vZi10ZXh0LXZlcnRpY2FsLWxy
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREU3MUFGRDFENDlDMEJEMDA5
MDQwOTQgLyogQW5pbWF0ZWRSZXNpemUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBBbmltYXRlZFJlc2l6ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkRFNzFBRkYxRDQ5QzJGMDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gImJsaW5raW5nLWRpdi5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkUxNEE1MjgxRDNGRThCODAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdXRvcGxh
eWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRTFCN0FGRjFENDFBOTVGMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRp
bmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1zZWVrLWFm
dGVyLWVuZGluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdCMDEx
RDQxQjFCMzAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWst
dG8tZW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8taGlk
ZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTJFMURGREYwMUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRv
LWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1l
bmRpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMURGREVDMUQ0MkE0
MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2Utdmlk
ZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkUxREZERjAxRDQyRTE0NDAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvLXNl
ZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFm
dGVyLWVuZGluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NzY1Q0Mx
NkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBtYWluSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RTc3NjVDRTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IG1haW5NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJldmVudEVtcHR5VXNl
ckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMjYsNiArMTIzMSw3
IEBACiAJCQkJQTE2RjY2QjgxQzQwRTlFMTAwQkQ0RDI0IC8qIFJlc291cmNlcyAqLywKIAkJCQk3
Q0VGQTk2NDFBQzBCOUUyMDBCOTEwRkQgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5t
bSAqLywKIAkJCQlBMURGNzQzMDFDNDFCNjU4MDBBMkY0RDAgLyogQWx3YXlzUmV2YWxpZGF0ZWRV
UkxTY2hlbWVzLm1tICovLAorCQkJCTJERTcxQUZEMUQ0OUMwQkQwMDkwNDA5NCAvKiBBbmltYXRl
ZFJlc2l6ZS5tbSAqLywKIAkJCQkyREQzNTUzNTFCRDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91
dEludGVncmF0aW9uLm1tICovLAogCQkJCUExM0VCQkFDMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5k
bGVQYXJhbWV0ZXJzLm1tICovLAogCQkJCUExM0VCQkFFMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5k
bGVQYXJhbWV0ZXJzUGx1Z0luLm1tICovLApAQCAtMTM1OCw2ICsxMzY0LDcgQEAKIAkJCQk1QzlF
NTk0MDFEM0VCMURFMDBFM0M2MkUgLyogQXBwbGljYXRpb25DYWNoZS5kYi13YWwgKi8sCiAJCQkJ
MkUxNEE1MjgxRDNGRThCODAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8u
aHRtbCAqLywKIAkJCQk5M0NGQTg2NjFDRUI5REUxMDAwNTY1QTggLyogYXV0b2ZvY3VzZWQtdGV4
dC1pbnB1dC5odG1sICovLAorCQkJCTJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2lu
Zy1kaXYuaHRtbCAqLywKIAkJCQlBMTZGNjZCOTFDNDBFQTIwMDBCRDREMjQgLyogQ29udGVudEZp
bHRlcmluZy5odG1sICovLAogCQkJCTU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBEb3dubG9h
ZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovLAogCQkJCTU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFD
OCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLywKQEAgLTIyMTgsNiArMjIy
NSw3IEBACiAJCQkJN0NDRTdGMjQxQTQxMUFGNjAwNDQ3QzRDIC8qIE5hdmlnYXRpb24ubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBMTRGQzU4ODFCODk5MUJGMDBEMTA3RUIgLyogQ29udGVudEZpbHRl
cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjAyMUE0MTFBRTYwMDQ0N0M0QyAvKiBO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRF
NzFBRkUxRDQ5QzBCRDAwOTA0MDk0IC8qIEFuaW1hdGVkUmVzaXplLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vz
c0tpbGwubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YwMzFBNDExQUU2MDA0NDdDNEMgLyog
TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdGMDQxQTQxMUFFNjAwNDQ3QzRDIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZvckltYWdlcy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0FuaW1hdGVkUmVzaXplLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQW5pbWF0ZWRSZXNpemUubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjQ1YjBlNmQ4ZTgwMDQ0NGYwZjY4YzVmMzA4NjAwNjdhMGU2ZDQxNQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0FuaW1hdGVkUmVz
aXplLm1tCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLTmF2
aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXMu
aD4KKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlldy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShJT1MpCisKK3N0YXRpYyBib29sIGRp
ZExheW91dDsKK3N0YXRpYyBib29sIGRpZEVuZEFuaW1hdGVkUmVzaXplOworCitAaW50ZXJmYWNl
IEFuaW1hdGVkUmVzaXplTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlv
bkRlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gQW5pbWF0ZWRSZXNpemVOYXZpZ2F0
aW9uRGVsZWdhdGUKKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZW5k
ZXJpbmdQcm9ncmVzc0RpZENoYW5nZTooX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMpcHJvZ3Jl
c3NFdmVudHMKK3sKKyAgICBpZiAocHJvZ3Jlc3NFdmVudHMgJiBfV0tSZW5kZXJpbmdQcm9ncmVz
c0V2ZW50Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KQorICAgICAgICBkaWRMYXlvdXQgPSB0
cnVlOworfQorCitAZW5kCisKK0BpbnRlcmZhY2UgQW5pbWF0ZWRSZXNpemVXZWJWaWV3IDogV0tX
ZWJWaWV3CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEFuaW1hdGVkUmVzaXplV2ViVmlldwor
CistICh2b2lkKV9lbmRBbmltYXRlZFJlc2l6ZQoreworICAgIFtzdXBlciBfZW5kQW5pbWF0ZWRS
ZXNpemVdOworCisgICAgZGlkRW5kQW5pbWF0ZWRSZXNpemUgPSB0cnVlOworfQorCitAZW5kCisK
K3N0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiBhbmltYXRlZFJlc2l6ZVdlYlZpZXcoKQorewor
ICAgIFJldGFpblB0cjxfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiA9IFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XTsK
KyAgICBbcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldElnbm9yZVN5bmNocm9ub3VzTWVzc2Fn
aW5nVGltZW91dHNGb3JUZXN0aW5nOllFU107CisgICAgUmV0YWluUHRyPFdLUHJvY2Vzc1Bvb2w+
IHByb2Nlc3NQb29sID0gW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV07CisKKyAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3Q29uZmlndXJhdGlvbj4gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQ
cm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3
PiB3ZWJWaWV3ID0gYWRvcHROUyhbW0FuaW1hdGVkUmVzaXplV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdD
b25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBBbmltYXRlZFJlc2l6ZU5hdmlnYXRpb25EZWxl
Z2F0ZSAqbmF2aWdhdGlvbkRlbGVnYXRlID0gW1tBbmltYXRlZFJlc2l6ZU5hdmlnYXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF07CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5h
dmlnYXRpb25EZWxlZ2F0ZV07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJibGlua2luZy1kaXYiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKworICAgIHJldHVybiB3ZWJWaWV3OworfQorCitURVNUKFdlYktpdDIsIFJlc2l6ZVdp
dGhIaWRkZW5Db250ZW50RG9lc05vdEhhbmcpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYW5pbWF0
ZWRSZXNpemVXZWJWaWV3KCk7CisgICAgUmV0YWluUHRyPFVJV2luZG93PiB3aW5kb3cgPSBhZG9w
dE5TKFtbVUlXaW5kb3cgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAs
IDYwMCldKTsKKyAgICBbd2luZG93IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisgICAgW3dp
bmRvdyBzZXRIaWRkZW46Tk9dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRM
YXlvdXQpOworICAgIGRpZExheW91dCA9IGZhbHNlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IDUwOyBpKyspIHsKKyAgICAgICAgW3dlYlZpZXcgX3Jlc2l6ZVdoaWxlSGlkaW5nQ29u
dGVudFdpdGhVcGRhdGVzOl57CisgICAgICAgICAgICBbd2ViVmlldyBzZXRGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIFt3ZWJWaWV3IGZyYW1lXS5zaXplLndpZHRoICsgMTAwLCA0MDApXTsKKyAgICAg
ICAgfV07CisKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFbmRBbmltYXRl
ZFJlc2l6ZSk7CisgICAgICAgIGRpZEVuZEFuaW1hdGVkUmVzaXplID0gZmFsc2U7CisgICAgfQor
fQorCitURVNUKFdlYktpdDIsIEFuaW1hdGVkUmVzaXplRG9lc05vdEhhbmcpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gYW5pbWF0ZWRSZXNpemVXZWJWaWV3KCk7CisgICAgUmV0YWluUHRyPFVJV2lu
ZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbVUlXaW5kb3cgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2luZG93IGFkZFN1YnZpZXc6d2ViVmll
dy5nZXQoKV07CisgICAgW3dpbmRvdyBzZXRIaWRkZW46Tk9dOworCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkaWRMYXlvdXQpOworICAgIGRpZExheW91dCA9IGZhbHNlOworCisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDUwOyBpKyspIHsKKyAgICAgICAgW3dlYlZpZXcgX2Jl
Z2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczpeeworICAgICAgICAgICAgW3dlYlZpZXcgc2V0
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBbd2ViVmlldyBmcmFtZV0uc2l6ZS53aWR0aCArIDEwMCwg
NDAwKV07CisgICAgICAgIH1dOworCisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgICAgICBbd2ViVmlldyBfZW5kQW5pbWF0ZWRSZXNp
emVdOworICAgICAgICB9KTsKKworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZEVuZEFuaW1hdGVkUmVzaXplKTsKKyAgICAgICAgZGlkRW5kQW5pbWF0ZWRSZXNpemUgPSBmYWxz
ZTsKKyAgICB9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvYmxpbmtpbmctZGl2Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9ibGlua2luZy1kaXYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGYyN2Fh
YjcyMmM5NTZiOWEyNjhjNTc0ZjMyNWY0YzZhOWJkY2IwCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYmxpbmtpbmctZGl2Lmh0bWwKQEAg
LTAsMCArMSwyMyBAQAorPGh0bWw+CisgICAgPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbiAoKSB7CisgICAgc2V0SW50ZXJ2YWwoYmxpbmssIDApOworfQorCit2YXIgYSA9IDA7CisK
K2Z1bmN0aW9uIGJsaW5rKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGluayIp
LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGEgPyAiYmx1ZSIgOiAiZ3JlZW4iOworICAgIGEgPSAh
YTsKK30KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisjYmxpbmsgeworICAgIHdpZHRoOiAy
MDBweDsgaGVpZ2h0OiAyMDBweDsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CisgICAg
PC9zdHlsZT4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0iYmxpbmsiPjwvZGl2PgorICAg
IDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284795</attachid>
            <date>2016-07-28 11:28:16 -0700</date>
            <delta_ts>2016-07-28 13:51:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160289-20160728112704.patch</filename>
            <type>text/plain</type>
            <size>30564</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzIxZGMxZTE0NDg3M2Uz
ZmU1NzRjZjA4MzJmNGEzOGY1MzZlODQzOC4uYjJlOGM0MmZhOTcxZTNhOGIxZmQ1NGZkYjE1ZTll
NGRkYjQyY2U0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTA3LTI4ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEZyZXF1ZW50IGFu
aW1hdGlvbiBsYWdzIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCBTYWZhcmkgKHNpZGViYXIsIHRhYiBz
d2l0Y2hpbmcsIGV0Yy4pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjAyODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3NTUzNDY0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFQSSBUZXN0czogV2Vi
S2l0Mi5BbmltYXRlZFJlc2l6ZURvZXNOb3RIYW5nLCBXZWJLaXQyLlJlc2l6ZVdpdGhIaWRkZW5D
b250ZW50RG9lc05vdEhhbmcKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExheWVyVHJlZTpdKToKKyAg
ICAgICAgQXZvaWQgY2FsbGluZyBfZW5kQW5pbWF0ZWRSZXNpemUgd2hlbiBhIGNvbW1pdCBjb21l
cyBpbiB3aGVuIHdlIGhhdmVuJ3QgeWV0IHJlY2VpdmVkCisgICAgICAgIGEgZHluYW1pYyB2aWV3
cG9ydCB1cGRhdGUgcmVwbHkgKGFuZCB0aHVzIGRvbid0IGhhdmUgYSB0cmFuc2FjdGlvbiBJRCB0
byB3YWl0IG9uKS4KKyAgICAgICAgUHJldmlvdXNseSwgaW4gdGhpcyBjYXNlLCBfcmVzaXplQW5p
bWF0aW9uVHJhbnNmb3JtVHJhbnNhY3Rpb25JRCB3b3VsZCBiZSAwLAorICAgICAgICBhbmQgKmFu
eSogY29tbWl0IHdvdWxkIGNhdXNlIF9lbmRBbmltYXRlZFJlc2l6ZSB0byBiZSBjYWxsZWQsIGNh
dXNpbmcgdXMgdG8gYWx3YXlzCisgICAgICAgIGZhbGwgaW50byB0aGUgd29yc3QtY2FzZSBzeW5j
IHdhaXQuCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN5bmNocm9uaXplRHluYW1pY1Zp
ZXdwb3J0VXBkYXRlKToKKyAgICAgICAgTWFrZSB1c2Ugb2Ygd2FpdEZvckRpZFVwZGF0ZVZpZXdT
dGF0ZSBpbnN0ZWFkIG9mIGhhdmluZyBhIHNlcGFyYXRlIHdhaXRGb3JBbmREaXNwYXRjaEltbWVk
aWF0ZWx5CisgICAgICAgIGhlcmUsIGJlY2F1c2UgaXQga25vd3MgdG8gZG8gdGhpbmdzIGxpa2Ug
ZGlzcGF0Y2ggdGhlIGRpZFVwZGF0ZSBtZXNzYWdlIGlmIGl0J3Mgc3RpbGwKKyAgICAgICAgcGVu
ZGluZy4gVGhpcyBhbHNvIHNob3J0ZW5zIHRoZSBzeW5jIHdhaXQgdGltZW91dCBmcm9tIDFzIHRv
IDUwMG1zLCB3aGljaCBtYWtlcyBpdAorICAgICAgICBjb25zaXN0ZW50IHdpdGggZS5nLiB0aGUg
bmV3bHktcGFyZW50ZWQtdmlldyB0aW1lb3V0IGR1cmF0aW9uLCBhbmQgc2hvdWxkIGJlIG5vdGhp
bmcKKyAgICAgICAgYnV0IHBvc2l0aXZlLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp0aW1lb3V0UmVzcGVjdGluZ0ln
bm9yZVRpbWVvdXRzRm9yVGVzdGluZyk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OndhaXRG
b3JNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlRnJv
bVNlY29uZGFyeVRocmVhZCk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OndhaXRGb3JTeW5j
UmVwbHkpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChJ
UEM6OkNvbm5lY3Rpb246Omlnbm9yZVRpbWVvdXRzRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJ
OjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1b
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGlt
ZW91dHNGb3JUZXN0aW5nXSk6CisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
biBzZXRJZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZzpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyk6CisgICAgICAgIEFkZCBh
IG1lY2hhbmlzbSBmb3IgY2xpZW50cyB0byBjYXVzZSBhbGwgc3luY2hyb25vdXMgbWVzc2FnZSB0
aW1lb3V0cyB0byBiZSBlZmZlY3RpdmVseSBpbmZpbml0ZS4KKyAgICAgICAgVGhlIG5ldyBBUEkg
dGVzdHMgdXNlIHRoaXMgdG8gZW5zdXJlIHRoYXQgdGhlIHRlc3Qgd2lsbCB0aW1lIG91dCBpZiB0
aGV5IGV2ZXIgZW50ZXIKKyAgICAgICAgdGhlIGJhZCBzdGF0ZSAob3RoZXJ3aXNlLCB0aGUgc2hv
cnRlciBzeW5jIHdhaXQgdGltZW91dCBjb3VsZCBtYWtlIHRoZSB0ZXN0IHN0aWxsIHBhc3MpLgor
CiAyMDE2LTA3LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IG1faXNJbkJhY2tncm91bmQgaW5pdGlhbGl6YXRpb24gZm9yIFNhZmFyaSBWaWV3IFNlcnZp
Y2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggMmQ3
MzI4Yjk0MjNhOGEyNTcwMTJmM2U1MTI1OTA1MjUzMmZlZjc1Yy4uMjYyZDViNzM0ZmNhNzRjZWY4
OTIwNGNkNTE0YTg1ZTFhNjcxMGZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcApAQCAtMzg1LDEwICszODUsMTcgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5k
U3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKICAgICBy
ZXR1cm4gc2VuZE1lc3NhZ2UoV1RGTW92ZShlbmNvZGVyKSk7CiB9CiAKK3N0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgQ29ubmVjdGlvbjo6dGltZW91dFJlc3BlY3RpbmdJZ25vcmVUaW1lb3V0c0Zv
clRlc3Rpbmcoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0KSBjb25zdAoreworICAg
IHJldHVybiBtX2lnbm9yZVRpbWVvdXRzRm9yVGVzdGluZyA/IHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHM6Om1heCgpIDogdGltZW91dDsKK30KKwogc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNv
ZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5h
dGlvbklELCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHdhaXRG
b3JNZXNzYWdlRmxhZ3MpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAg
IHRpbWVvdXQgPSB0aW1lb3V0UmVzcGVjdGluZ0lnbm9yZVRpbWVvdXRzRm9yVGVzdGluZyh0aW1l
b3V0KTsKKwogICAgIGJvb2wgaGFzSW5jb21pbmdTeW5jaHJvbm91c01lc3NhZ2UgPSBmYWxzZTsK
IAogICAgIC8vIEZpcnN0LCBjaGVjayBpZiB0aGlzIG1lc3NhZ2UgaXMgYWxyZWFkeSBpbiB0aGUg
aW5jb21pbmcgbWVzc2FnZXMgcXVldWUuCkBAIC01MzIsNiArNTM5LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25k
YXJ5VGhyZWFkKHUKIAogICAgIHNlbmRNZXNzYWdlKFdURk1vdmUoZW5jb2RlciksIDAsIHRydWUp
OwogCisgICAgdGltZW91dCA9IHRpbWVvdXRSZXNwZWN0aW5nSWdub3JlVGltZW91dHNGb3JUZXN0
aW5nKHRpbWVvdXQpOwogICAgIHBlbmRpbmdSZXBseS5zZW1hcGhvcmUud2FpdChjdXJyZW50VGlt
ZSgpICsgKHRpbWVvdXQuY291bnQoKSAvIDEwMDAuMCkpOwogCiAgICAgLy8gRmluYWxseSwgcG9w
IHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24uCkBAIC01NDYsNiArNTU0LDcgQEAg
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3luY01lc3Nh
Z2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHUKIAogc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVy
PiBDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWduZWQgc3luY1NlbmRGbGFncykK
IHsKKyAgICB0aW1lb3V0ID0gdGltZW91dFJlc3BlY3RpbmdJZ25vcmVUaW1lb3V0c0ZvclRlc3Rp
bmcodGltZW91dCk7CiAgICAgZG91YmxlIGFic29sdXRlVGltZSA9IGN1cnJlbnRUaW1lKCkgKyAo
dGltZW91dC5jb3VudCgpIC8gMTAwMC4wKTsKIAogICAgIHdpbGxTZW5kU3luY01lc3NhZ2Uoc3lu
Y1NlbmRGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAppbmRl
eCBmM2ZjOWIyOGQzNzQzNmY3YjFhYTg2NTUzZjcxNzYzZTZiOWI0M2IxLi45M2ZjNjRhYWU2Yzk0
ODEzOGRlY2MyZjQxNmExYzViNjE2NzBjYmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmgKQEAgLTIwNSw2ICsyMDUsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFs
bG93RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKCkgeyBtX2Z1bGx5U3luY2hyb25vdXNN
b2RlSXNBbGxvd2VkRm9yVGVzdGluZyA9IHRydWU7IH0KIAorICAgIHZvaWQgaWdub3JlVGltZW91
dHNGb3JUZXN0aW5nKCkgeyBtX2lnbm9yZVRpbWVvdXRzRm9yVGVzdGluZyA9IHRydWU7IH0KKwog
cHJpdmF0ZToKICAgICBDb25uZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVu
dCYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIpOwpAQCAtMjM5LDYg
KzI0MSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHdpbGxTZW5kU3luY01lc3NhZ2UodW5zaWdu
ZWQgc3luY1NlbmRGbGFncyk7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY1JlcGx5KHVuc2lnbmVk
IHN5bmNTZW5kRmxhZ3MpOworCisgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0
UmVzcGVjdGluZ0lnbm9yZVRpbWVvdXRzRm9yVGVzdGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzKSBjb25zdDsKICAgICAKICAgICBDbGllbnQqIG1fY2xpZW50OwogICAgIGJvb2wgbV9pc1Nl
cnZlcjsKQEAgLTI1OCw2ICsyNjIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1faW5EaXNw
YXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQ7CiAg
ICAgdW5zaWduZWQgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZFRvVXNlRnVsbHlTeW5jaHJvbm91
c01vZGVGb3JUZXN0aW5nIHsgMCB9OwogICAgIGJvb2wgbV9mdWxseVN5bmNocm9ub3VzTW9kZUlz
QWxsb3dlZEZvclRlc3RpbmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pZ25vcmVUaW1lb3V0c0Zv
clRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2U7
CiAKICAgICAvLyBJbmNvbWluZyBtZXNzYWdlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAppbmRl
eCBiNTgyMjA1ZGMyYTdhNmY1YzI2NWJjN2ZlNWJlMTE3NmE1NjQ3NDcxLi4xY2IwZGViMDc1NDhm
ZTA0ZmI4MzhhY2NlNWUyZGI5YWFkNGY3NjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBA
IC0xMDksNiArMTA5LDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX2NhY2hlUGFydGl0aW9uZWRVUkxT
Y2hlbWVzID0gdGhpcy0+bV9jYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsKICAgICBjb3B5LT5t
X2Fsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcyA9IHRoaXMtPm1fYWx3YXlzUmV2YWxpZGF0ZWRV
UkxTY2hlbWVzOwogICAgIGNvcHktPm1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JU
ZXN0aW5nID0gdGhpcy0+bV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRlc3Rpbmc7
CisgICAgY29weS0+bV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGlu
ZyA9IHRoaXMtPm1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3Rpbmc7
CiAgICAgY29weS0+bV9vdmVycmlkZUxhbmd1YWdlcyA9IHRoaXMtPm1fb3ZlcnJpZGVMYW5ndWFn
ZXM7CiAgICAgCiAgICAgcmV0dXJuIGNvcHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCBmMDlk
NDhiYTI5ZDFjMzBkODA4NjI4MjJhYzQzNmUzNDk3MWI3YzBkLi45NmU1NDc1MTdiNjFiMzNlZDdl
NTUzZjFkMjRiMDdlYzE4NmMzMWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTk2LDYgKzk2
LDkgQEAgcHVibGljOgogICAgIGJvb2wgZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JU
ZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZv
clRlc3Rpbmc7IH0KICAgICB2b2lkIHNldEZ1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9y
VGVzdGluZyhib29sIGFsbG93ZWQpIHsgbV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZv
clRlc3RpbmcgPSBhbGxvd2VkOyB9CiAKKyAgICBib29sIGlnbm9yZVN5bmNocm9ub3VzTWVzc2Fn
aW5nVGltZW91dHNGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pZ25vcmVTeW5jaHJvbm91
c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZzsgfQorICAgIHZvaWQgc2V0SWdub3JlU3luY2hy
b25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcoYm9vbCBhbGxvd2VkKSB7IG1faWdub3Jl
U3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgPSBhbGxvd2VkOyB9CisKICAg
ICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBvdmVycmlkZUxhbmd1YWdlcygpIGNvbnN0IHsg
cmV0dXJuIG1fb3ZlcnJpZGVMYW5ndWFnZXM7IH0KICAgICB2b2lkIHNldE92ZXJyaWRlTGFuZ3Vh
Z2VzKFZlY3RvcjxXVEY6OlN0cmluZz4mJiBsYW5ndWFnZXMpIHsgbV9vdmVycmlkZUxhbmd1YWdl
cyA9IFdURk1vdmUobGFuZ3VhZ2VzKTsgfQogCkBAIC0xMjAsNiArMTIzLDcgQEAgcHJpdmF0ZToK
ICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7CiAg
ICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX2Fsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lczsKICAg
ICBib29sIG1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3Rp
bmcgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9vdmVycmlkZUxhbmd1YWdl
czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KaW5kZXggM2RjNmVmOTI5M2NhMGEwMmM3YjU0NjU4ZjQxZjM4NjQ4NWQ2NGIxOS4uYTdj
OTAzMDFjMDQ5Y2YwYTNmYTk5NjlmYTNhNmM4OWU2ZTlkZTM0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIzNSw3ICsyMzUsNyBA
QCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJveHkoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2Up
CiAgICAgdWludDY0X3QgX2ZpcnN0UGFpbnRBZnRlckNvbW1pdExvYWRUcmFuc2FjdGlvbklEOwog
ICAgIER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGU7
CiAgICAgQ0FUcmFuc2Zvcm0zRCBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3JtQWRqdXN0bWVudHM7
Ci0gICAgdWludDY0X3QgX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9ybVRyYW5zYWN0aW9uSUQ7Cisg
ICAgT3B0aW9uYWw8dWludDY0X3Q+IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1UcmFuc2FjdGlv
bklEOwogICAgIFJldGFpblB0cjxVSVZpZXc+IF9yZXNpemVBbmltYXRpb25WaWV3OwogICAgIENH
RmxvYXQgX2xhc3RBZGp1c3RtZW50Rm9yU2Nyb2xsZXI7CiAgICAgT3B0aW9uYWw8Q0dSZWN0PiBf
ZnJvemVuVmlzaWJsZUNvbnRlbnRSZWN0OwpAQCAtMTIzNiw3ICsxMjM2LDggQEAgc3RhdGljIGlu
bGluZSBib29sIGFyZUVzc2VudGlhbGx5RXF1YWxBc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSAhPSBE
eW5hbWljVmlld3BvcnRVcGRhdGVNb2RlOjpOb3RSZXNpemluZykgewotICAgICAgICBpZiAobGF5
ZXJUcmVlVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JRCgpID49IF9yZXNpemVBbmltYXRpb25UcmFu
c2Zvcm1UcmFuc2FjdGlvbklEKSB7CisgICAgICAgIGlmIChfcmVzaXplQW5pbWF0aW9uVHJhbnNm
b3JtVHJhbnNhY3Rpb25JRCAmJiBsYXllclRyZWVUcmFuc2FjdGlvbi50cmFuc2FjdGlvbklEKCkg
Pj0gX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9ybVRyYW5zYWN0aW9uSUQudmFsdWUoKSkgeworICAg
ICAgICAgICAgX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9ybVRyYW5zYWN0aW9uSUQgPSBOdWxsb3B0
OwogICAgICAgICAgICAgW19yZXNpemVBbmltYXRpb25WaWV3IGxheWVyXS5zdWJsYXllclRyYW5z
Zm9ybSA9IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50czsKICAgICAgICAgICAg
IGlmIChfZHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZSA9PSBEeW5hbWljVmlld3BvcnRVcGRhdGVN
b2RlOjpSZXNpemluZ1dpdGhEb2N1bWVudEhpZGRlbikgewogICAgICAgICAgICAgICAgIFtfY29u
dGVudFZpZXcgc2V0SGlkZGVuOk5PXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmlu
ZGV4IDMzNGJjOWM2YWE2NzA4ZWNiZjM4ZGNiZWQ2NDljNDJmNzUwZTY3NjYuLmM3YjM3NGIyZTgx
YjJlYjg3ZDRjNDFjYWVmNTM2NmNkNTY3NGJmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaApAQCAtMzcsNiArMzcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheSAqY2FjaGVQ
YXJ0aXRpb25lZFVSTFNjaGVtZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJh
eTxOU1N0cmluZyAqPiAqYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JU
ZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KaW5kZXggMTUx
MTA3ZjQ4MTA5YmEyNmU4ZjBkMWQ3NjRjYTRkZWNkMDAzMDE0OC4uMjk5YzkyZmI4YzNmNDhjNzg2
MGFlMDBmMDA5YjE1MWZmNWY5OGIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
bW0KQEAgLTkyLDYgKzkyLDE2IEBACiAgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0
RGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZChlbmFibGVkKTsKIH0KIAorLSAo
Qk9PTClpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZworeworICAg
IHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5pZ25vcmVTeW5jaHJvbm91c01lc3Nh
Z2luZ1RpbWVvdXRzRm9yVGVzdGluZygpOworfQorCistICh2b2lkKXNldElnbm9yZVN5bmNocm9u
b3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nOihCT09MKWlnbm9yZVN5bmNocm9ub3VzTWVz
c2FnaW5nVGltZW91dHNGb3JUZXN0aW5nCit7CisgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi0+c2V0SWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcoaWdub3Jl
U3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcpOworfQorCiAtIChOU0FycmF5
ICopY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXMKIHsKICAgICBhdXRvIHNjaGVtZXMgPSBfcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5jYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZmMxZjhkNjIw
YjgwNzUyZTZjMWMyOTkxZDJiOTNhN2FmODc2ZjI5Ny4uNWQ3MWMwZDU1ZTA0ZjdkY2QwMTg3OTU1
ZWRjMTFmNWM4OGQzYjkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCkBAIC03MzAsNiArNzMwLDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vz
c0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAgICAgaWYgKG1f
Y29uZmlndXJhdGlvbi0+ZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nKCkp
CiAgICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+YWxsb3dGdWxseVN5bmNocm9ub3VzTW9k
ZUZvclRlc3RpbmcoKTsKIAorICAgIGlmIChtX2NvbmZpZ3VyYXRpb24tPmlnbm9yZVN5bmNocm9u
b3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nKCkpCisgICAgICAgIHByb2Nlc3MtPmNvbm5l
Y3Rpb24oKS0+aWdub3JlVGltZW91dHNGb3JUZXN0aW5nKCk7CisKICAgICBtX2Nvbm5lY3Rpb25D
bGllbnQuZGlkQ3JlYXRlQ29ubmVjdGlvbih0aGlzLCBwcm9jZXNzLT53ZWJDb25uZWN0aW9uKCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCmluZGV4IGEwMmIyYzc1ZThiN2ViMTIzZTYyZWY5YzQxYzI3YTA0N2I0ZTQwYTQuLjkzMGVk
OWYyMmE2OWU5OWIyMDc3MzY3MTRkMDI3MzQ1MjdjYzA3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0zMDEsOSArMzAxLDkgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnN5bmNocm9uaXplRHluYW1pY1ZpZXdwb3J0VXBkYXRlKCkKICAg
ICB9CiAKICAgICAvLyBJZiBtX2R5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVXYWl0aW5nRm9yVGFy
Z2V0IGlzIGZhbHNlLCB3ZSBhcmUgd2FpdGluZyBmb3IgdGhlIG5leHQgdmFsaWQgZnJhbWUgd2l0
aCB0aGUgaG9wZSBpdCBpcyB0aGUgb25lIGZvciB0aGUgbmV3IHRhcmdldC4KLSAgICAvLyBJZiBt
X2R5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVXYWl0aW5nRm9yVGFyZ2V0IGlzIHN0aWxsIHRydWUs
IHRoaXMgaXMgYSBkZXNlc3BlcmF0ZSBhdHRlbXB0IHRvIGdldCB0aGUgdmFsaWQgZnJhbWUgYmVm
b3JlIGZpbmlzaGluZyB0aGUgYW5pbWF0aW9uLgorICAgIC8vIElmIG1fZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZVdhaXRpbmdGb3JUYXJnZXQgaXMgc3RpbGwgdHJ1ZSwgdGhpcyBpcyBhIGRlc3Bl
cmF0ZSBhdHRlbXB0IHRvIGdldCB0aGUgdmFsaWQgZnJhbWUgYmVmb3JlIGZpbmlzaGluZyB0aGUg
YW5pbWF0aW9uLgogICAgIGlmIChtX2R5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVXYWl0aW5nRm9y
TGF5ZXJUcmVlQ29tbWl0KQotICAgICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+d2FpdEZv
ckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OkNvbW1pdExheWVyVHJlZT4obV9wYWdlSUQsIHN0ZDo6Y2hyb25vOjpzZWNvbmRz
KDEpLCBJUEM6OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyk7CisgICAgICAg
IG1fZHJhd2luZ0FyZWEtPndhaXRGb3JEaWRVcGRhdGVWaWV3U3RhdGUoKTsKIAogICAgIG1fZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZVdhaXRpbmdGb3JUYXJnZXQgPSBmYWxzZTsKICAgICBtX2R5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVXYWl0aW5nRm9yTGF5ZXJUcmVlQ29tbWl0ID0gZmFsc2U7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWUz
ZTU1MjcxODdjZDNhNjZkN2U4Mzc2MzVjYmFkNWY1ZTBhYWZmMi4uMGI1Y2YxMDcwYzc3Mzk2ZGFl
YWQ5MWM1ZTRkZjE5ZGYwNTk4YTk0YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA3LTI4ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEZyZXF1ZW50IGFuaW1hdGlv
biBsYWdzIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCBTYWZhcmkgKHNpZGViYXIsIHRhYiBzd2l0Y2hp
bmcsIGV0Yy4pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjAyODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3NTUzNDY0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0FuaW1hdGVkUmVzaXplLm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bQW5pbWF0ZWRSZXNpemVOYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6cmVu
ZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW0FuaW1hdGVkUmVzaXplV2Vi
VmlldyBfZW5kQW5pbWF0ZWRSZXNpemVdKToKKyAgICAgICAgKGFuaW1hdGVkUmVzaXplV2ViVmll
dyk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9ibGlua2luZy1kaXYuaHRtbDogQWRkZWQuCisgICAgICAgIEFkZCB0d28gdGVzdHMg
dGhhdCBlbnN1cmUgdGhhdCBoaWRkZW4tY29udGVudCBhbmQgYW5pbWF0ZWQgcmVzaXplcworICAg
ICAgICBkb24ndCBjYXVzZSB1bm5lY2Vzc2FyeSBzeW5jaHJvbm91cyB3YWl0cy4gT25seSB0aGUg
aGlkZGVuLWNvbnRlbnQKKyAgICAgICAgb25lIGZhaWxzIGJlZm9yZSBteSBwYXRjaCwgYnV0IGl0
IHNlZW1lZCByZWFzb25hYmxlIHRvIGFkZCBib3RoIGFueXdheS4KKwogMjAxNi0wNy0yNyAgUnlh
biBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIFdlYkNv
cmVOU1VSTFNlc3Npb25UZXN0IEFQSSB0ZXN0cyBvbiBpb3Mtc2ltdWxhdG9yCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNjb25m
aWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkueGNj
b25maWcKaW5kZXggODIxOGEzN2JkMWY3MDk5NjAxZTUzOTc3NDJkN2JmOWMxMWNiN2FkMy4uYWIz
MmQ4MjNmNjI3NGViYjg2YWE2OGE3ODI4OTNhOGYxYTA2YmVlMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLnhjY29uZmlnCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS54Y2NvbmZp
ZwpAQCAtMzIsNiArMzIsNiBAQCBPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoVU5FWFBP
UlRFRF9TWU1CT0xfTERGTEFHUykgLWxndGVzdCAtZm9yY2VfbG9hZCAkKAogT1RIRVJfTERGTEFH
U19QTEFURk9STVtzZGs9bWFjb3N4Kl0gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2Fy
Ym9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVh
ZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V2ViS2l0QVBJIGFwcGxpY2F0aW9uLgot
T1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25lKl0gPSAtZnJhbWV3b3JrIFdlYkNvcmUg
LWZyYW1ld29yayBDb3JlR3JhcGhpY3M7CitPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1pcGhv
bmUqXSA9IC1mcmFtZXdvcmsgV2ViQ29yZSAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3
b3JrIFVJS2l0OwogCiBMRF9SVU5QQVRIX1NFQVJDSF9QQVRIUyA9ICJAbG9hZGVyX3BhdGgiOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZTk3ODY0Mjc1N2JlNzZjNmIxZGVmZmUzMDYyMjdi
YWIyODkzYWZkLi44YzE4NmU2OGExMDJkM2E2Mzc2N2NhYTgzMmM5MjdlMDY1YTIwZjM1IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTIsMTIgKzUyLDE0IEBACiAJCTJENTFBMEM3MUM4QkYw
MEMwMDc2NUM0NSAvKiBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENTFBMEM1MUM4QkYwMDQwMDc2NUM0
NSAvKiBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbSAqLzsgfTsKIAkJMkRDNENGNzcxRDJE
OUREODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURl
dGVjdGlvbi5tbSAqLzsgfTsKIAkJMkREN0QzQUYxNzgyMjdCMzAwMjZFMUUzIC8qIGxvdHMtb2Yt
dGV4dC12ZXJ0aWNhbC1sci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBsb3RzLW9mLXRl
eHQtdmVydGljYWwtbHIuaHRtbCAqLzsgfTsKKwkJMkRFNzFBRkUxRDQ5QzBCRDAwOTA0MDk0IC8q
IEFuaW1hdGVkUmVzaXplLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkRFNzFBRkQxRDQ5QzBCRDAwOTA0MDk0IC8qIEFuaW1hdGVkUmVzaXplLm1tICov
OyB9OworCQkyREU3MUIwMDFENDlDM0VEMDA5MDQwOTQgLyogYmxpbmtpbmctZGl2Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFNzFB
RkYxRDQ5QzJGMDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sICovOyB9OwogCQkyRTE0QTUy
OTFEM0ZFOTZCMDAxMEYzNUIgLyogYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMTRB
NTI4MUQzRkU4QjgwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwg
Ki87IH07CiAJCTJFMUI3QjAwMUQ0MUFCQTcwMDc1NThCNCAvKiBsYXJnZS12aWRlby1zZWVrLWFm
dGVyLWVuZGluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFMUI3QUZGMUQ0MUE5NUYwMDc1NThCNCAvKiBsYXJnZS12aWRlby1zZWVr
LWFmdGVyLWVuZGluZy5odG1sICovOyB9OwogCQkyRTFCN0IwMjFENDFCMUI5MDA3NTU4QjQgLyog
bGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFCN0IwMTFE
NDFCMUIzMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10
by1lbmQuaHRtbCAqLzsgfTsKLQkJMkUxREZERjExRDQyRTFFNDAwNzE0QTAwIC8qIGxhcmdlLXZp
ZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURGREYwMUQ0
MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1h
ZnRlci1lbmRpbmcuaHRtbCAqLzsgfTsKIAkJMkUxREZERUQxRDQyQTUxMTAwNzE0QTAwIC8qIGxh
cmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxREZERUMxRDQyQTQxQzAwNzE0QTAwIC8qIGxhcmdl
LXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwgKi87IH07CiAJCTJFMURGREVGMUQ0MkE2RjIwMDcxNEEw
MCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURGREVFMUQ0MkE2RUIw
MDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sICovOyB9Owor
CQkyRTFERkRGMTFENDJFMUU0MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5p
bmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxREZERjAxRDQyRTE0NDAwNzE0QTAwIC8qIGxh
cmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sICov
OyB9OwogCQkyRTc3NjVDRDE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzc2NUNDMTZDNEQ4MEEwMEJB
MkJCMSAvKiBtYWluSU9TLm1tICovOyB9OwogCQkyRTc3NjVDRjE2QzREODExMDBCQTJCQjEgLyog
bWFpbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNzc2NUNFMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tICovOyB9OwogCQkzM0JFNUFG
OTEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCRTVBRjgxMzdCNUFB
RTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTUw
OSw2ICs1MTEsNyBAQAogCQkJCTJFMURGREVGMUQ0MkE2RjIwMDcxNEEwMCAvKiBsYXJnZS12aWRl
b3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJF
MURGREVEMUQ0MkE1MTEwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVDOUU1OTQxMUQzRUI1QUMwMEUzQzYyRSAvKiBBcHBs
aWNhdGlvbkNhY2hlLmRiIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTJERTcxQjAwMUQ0OUMz
RUQwMDkwNDA5NCAvKiBibGlua2luZy1kaXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQk1QzlFNTk0MjFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGljYXRpb25DYWNoZS5kYi1zaG0gaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNUM5RTU5NDMxRDNFQjVBQzAwRTNDNjJFIC8qIEFwcGxp
Y2F0aW9uQ2FjaGUuZGItd2FsIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFMTRBNTI5MUQz
RkU5NkIwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCkBAIC03MDcsMTIgKzcxMCwxNCBAQAogCQkyREQzNTUzNTFCRDA4Mzc4
MDA1REY0QTcgLyogQXV0b0xheW91dEludGVncmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b0xheW91dEludGVncmF0aW9uLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyREQ3RDNBOTE3ODIwNUQwMDAyNkUxRTMgLyogUmVzaXplUmV2
ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyREQ3RDNBRTE3ODIyN0FDMDAyNkUxRTMgLyogbG90cy1vZi10ZXh0LXZl
cnRpY2FsLWxyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibG90cy1vZi10ZXh0LXZlcnRpY2FsLWxyLmh0bWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREU3MUFGRDFENDlDMEJEMDA5MDQwOTQg
LyogQW5pbWF0ZWRSZXNpemUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBbmltYXRlZFJlc2l6ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRF
NzFBRkYxRDQ5QzJGMDAwOTA0MDk0IC8qIGJsaW5raW5nLWRpdi5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImJsaW5raW5nLWRpdi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkUxNEE1MjgxRDNGRThCODAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZpZGVvLXdp
dGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdXRvcGxheWluZy12
aWRlby13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTFC
N0FGRjFENDFBOTVGMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1zZWVrLWFmdGVyLWVu
ZGluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdCMDExRDQxQjFC
MzAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5k
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8taGlkZXMtY29u
dHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTJFMURGREYwMUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lu
bmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMURGREVDMUQ0MkE0MUMwMDcx
NEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gImxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdp
dGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJn
ZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkUxREZERjAxRDQyRTE0NDAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvLXNlZWstdG8t
YmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gImxhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVu
ZGluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NzY1Q0MxNkM0RDgw
QTAwQkEyQkIxIC8qIG1haW5JT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBtYWluSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTc3NjVD
RTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IG1haW5NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJldmVudEVtcHR5VXNlckFnZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMjYsNiArMTIzMSw3IEBACiAJ
CQkJQTE2RjY2QjgxQzQwRTlFMTAwQkQ0RDI0IC8qIFJlc291cmNlcyAqLywKIAkJCQk3Q0VGQTk2
NDFBQzBCOUUyMDBCOTEwRkQgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSAqLywK
IAkJCQlBMURGNzQzMDFDNDFCNjU4MDBBMkY0RDAgLyogQWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hl
bWVzLm1tICovLAorCQkJCTJERTcxQUZEMUQ0OUMwQkQwMDkwNDA5NCAvKiBBbmltYXRlZFJlc2l6
ZS5tbSAqLywKIAkJCQkyREQzNTUzNTFCRDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91dEludGVn
cmF0aW9uLm1tICovLAogCQkJCUExM0VCQkFDMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJh
bWV0ZXJzLm1tICovLAogCQkJCUExM0VCQkFFMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJh
bWV0ZXJzUGx1Z0luLm1tICovLApAQCAtMTM1OCw2ICsxMzY0LDcgQEAKIAkJCQk1QzlFNTk0MDFE
M0VCMURFMDBFM0M2MkUgLyogQXBwbGljYXRpb25DYWNoZS5kYi13YWwgKi8sCiAJCQkJMkUxNEE1
MjgxRDNGRThCODAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAq
LywKIAkJCQk5M0NGQTg2NjFDRUI5REUxMDAwNTY1QTggLyogYXV0b2ZvY3VzZWQtdGV4dC1pbnB1
dC5odG1sICovLAorCQkJCTJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5NCAvKiBibGlua2luZy1kaXYu
aHRtbCAqLywKIAkJCQlBMTZGNjZCOTFDNDBFQTIwMDBCRDREMjQgLyogQ29udGVudEZpbHRlcmlu
Zy5odG1sICovLAogCQkJCTU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTC5odG1sICovLAogCQkJCTU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBE
b3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLywKQEAgLTIyMTgsNiArMjIyNSw3IEBA
CiAJCQkJN0NDRTdGMjQxQTQxMUFGNjAwNDQ3QzRDIC8qIE5hdmlnYXRpb24ubW0gaW4gU291cmNl
cyAqLywKIAkJCQlBMTRGQzU4ODFCODk5MUJGMDBEMTA3RUIgLyogQ29udGVudEZpbHRlcmluZy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjAyMUE0MTFBRTYwMDQ0N0M0QyAvKiBOZXdGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRFNzFBRkUx
RDQ5QzBCRDAwOTA0MDk0IC8qIEFuaW1hdGVkUmVzaXplLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YwMzFBNDExQUU2MDA0NDdDNEMgLyogTmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdGMDQxQTQxMUFFNjAwNDQ3QzRDIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZv
ckltYWdlcy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0FuaW1hdGVkUmVzaXplLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQW5pbWF0ZWRSZXNpemUubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ1
YjBlNmQ4ZTgwMDQ0NGYwZjY4YzVmMzA4NjAwNjdhMGU2ZDQxNQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0FuaW1hdGVkUmVzaXplLm1t
CkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXMuaD4KKyNp
bXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlldy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKyNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNp
ZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShJT1MpCisKK3N0YXRpYyBib29sIGRpZExheW91
dDsKK3N0YXRpYyBib29sIGRpZEVuZEFuaW1hdGVkUmVzaXplOworCitAaW50ZXJmYWNlIEFuaW1h
dGVkUmVzaXplTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVn
YXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gQW5pbWF0ZWRSZXNpemVOYXZpZ2F0aW9uRGVs
ZWdhdGUKKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZW5kZXJpbmdQ
cm9ncmVzc0RpZENoYW5nZTooX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMpcHJvZ3Jlc3NFdmVu
dHMKK3sKKyAgICBpZiAocHJvZ3Jlc3NFdmVudHMgJiBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KQorICAgICAgICBkaWRMYXlvdXQgPSB0cnVlOwor
fQorCitAZW5kCisKK0BpbnRlcmZhY2UgQW5pbWF0ZWRSZXNpemVXZWJWaWV3IDogV0tXZWJWaWV3
CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEFuaW1hdGVkUmVzaXplV2ViVmlldworCistICh2
b2lkKV9lbmRBbmltYXRlZFJlc2l6ZQoreworICAgIFtzdXBlciBfZW5kQW5pbWF0ZWRSZXNpemVd
OworCisgICAgZGlkRW5kQW5pbWF0ZWRSZXNpemUgPSB0cnVlOworfQorCitAZW5kCisKK3N0YXRp
YyBSZXRhaW5QdHI8V0tXZWJWaWV3PiBhbmltYXRlZFJlc2l6ZVdlYlZpZXcoKQoreworICAgIFJl
dGFpblB0cjxfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IHByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiA9IFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKKyAgICBb
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldElnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGlt
ZW91dHNGb3JUZXN0aW5nOllFU107CisgICAgUmV0YWluUHRyPFdLUHJvY2Vzc1Bvb2w+IHByb2Nl
c3NQb29sID0gW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV07CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3
Q29uZmlndXJhdGlvbj4gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNz
UG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJW
aWV3ID0gYWRvcHROUyhbW0FuaW1hdGVkUmVzaXplV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1
cmF0aW9uLmdldCgpXSk7CisKKyAgICBBbmltYXRlZFJlc2l6ZU5hdmlnYXRpb25EZWxlZ2F0ZSAq
bmF2aWdhdGlvbkRlbGVnYXRlID0gW1tBbmltYXRlZFJlc2l6ZU5hdmlnYXRpb25EZWxlZ2F0ZSBh
bGxvY10gaW5pdF07CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRp
b25EZWxlZ2F0ZV07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJi
bGlua2luZy1kaXYiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
KworICAgIHJldHVybiB3ZWJWaWV3OworfQorCitURVNUKFdlYktpdDIsIFJlc2l6ZVdpdGhIaWRk
ZW5Db250ZW50RG9lc05vdEhhbmcpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYW5pbWF0ZWRSZXNp
emVXZWJWaWV3KCk7CisgICAgUmV0YWluUHRyPFVJV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtb
VUlXaW5kb3cgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCld
KTsKKyAgICBbd2luZG93IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisgICAgW3dpbmRvdyBz
ZXRIaWRkZW46Tk9dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRMYXlvdXQp
OworICAgIGRpZExheW91dCA9IGZhbHNlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IDUwOyBpKyspIHsKKyAgICAgICAgW3dlYlZpZXcgX3Jlc2l6ZVdoaWxlSGlkaW5nQ29udGVudFdp
dGhVcGRhdGVzOl57CisgICAgICAgICAgICBbd2ViVmlldyBzZXRGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIFt3ZWJWaWV3IGZyYW1lXS5zaXplLndpZHRoICsgMTAwLCA0MDApXTsKKyAgICAgICAgfV07
CisKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFbmRBbmltYXRlZFJlc2l6
ZSk7CisgICAgICAgIGRpZEVuZEFuaW1hdGVkUmVzaXplID0gZmFsc2U7CisgICAgfQorfQorCitU
RVNUKFdlYktpdDIsIEFuaW1hdGVkUmVzaXplRG9lc05vdEhhbmcpCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gYW5pbWF0ZWRSZXNpemVXZWJWaWV3KCk7CisgICAgUmV0YWluUHRyPFVJV2luZG93PiB3
aW5kb3cgPSBhZG9wdE5TKFtbVUlXaW5kb3cgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2luZG93IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQo
KV07CisgICAgW3dpbmRvdyBzZXRIaWRkZW46Tk9dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkaWRMYXlvdXQpOworICAgIGRpZExheW91dCA9IGZhbHNlOworCisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IDUwOyBpKyspIHsKKyAgICAgICAgW3dlYlZpZXcgX2JlZ2luQW5p
bWF0ZWRSZXNpemVXaXRoVXBkYXRlczpeeworICAgICAgICAgICAgW3dlYlZpZXcgc2V0RnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCBbd2ViVmlldyBmcmFtZV0uc2l6ZS53aWR0aCArIDEwMCwgNDAwKV07
CisgICAgICAgIH1dOworCisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCksIF57CisgICAgICAgICAgICBbd2ViVmlldyBfZW5kQW5pbWF0ZWRSZXNpemVdOwor
ICAgICAgICB9KTsKKworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEVuZEFu
aW1hdGVkUmVzaXplKTsKKyAgICAgICAgZGlkRW5kQW5pbWF0ZWRSZXNpemUgPSBmYWxzZTsKKyAg
ICB9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvYmxpbmtpbmctZGl2Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9ibGlua2luZy1kaXYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGYyN2FhYjcyMmM5
NTZiOWEyNjhjNTc0ZjMyNWY0YzZhOWJkY2IwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYmxpbmtpbmctZGl2Lmh0bWwKQEAgLTAsMCAr
MSwyMyBAQAorPGh0bWw+CisgICAgPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAo
KSB7CisgICAgc2V0SW50ZXJ2YWwoYmxpbmssIDApOworfQorCit2YXIgYSA9IDA7CisKK2Z1bmN0
aW9uIGJsaW5rKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGluayIpLnN0eWxl
LmJhY2tncm91bmRDb2xvciA9IGEgPyAiYmx1ZSIgOiAiZ3JlZW4iOworICAgIGEgPSAhYTsKK30K
KyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisjYmxpbmsgeworICAgIHdpZHRoOiAyMDBweDsg
aGVpZ2h0OiAyMDBweDsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CisgICAgPC9zdHls
ZT4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0iYmxpbmsiPjwvZGl2PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="308449"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>