<?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>162843</bug_id>
          
          <creation_ts>2016-10-01 12:37:26 -0700</creation_ts>
          <short_desc>Media controls for Soundcloud easily fall out of sync with what&apos;s actually playing</short_desc>
          <delta_ts>2016-10-02 12:24:49 -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>Media</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235634</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-10-01 12:37:26 -0700</bug_when>
    <thetext>Media controls for Soundcloud easily fall out of sync with what&apos;s actually playing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235635</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-10-01 12:37:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/28176874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235649</commentid>
    <comment_count>2</comment_count>
      <attachid>290446</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-10-01 16:19:16 -0700</bug_when>
    <thetext>Created attachment 290446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235681</commentid>
    <comment_count>3</comment_count>
      <attachid>290446</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-10-01 18:38:45 -0700</bug_when>
    <thetext>Comment on attachment 290446
Patch

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

I think this looks pretty good! I&apos;d just like to hear answers to those questions.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Currently, we audio elements are subject to the same main content restrictions as video elements. This is

&quot;we audio&quot;

&gt; Source/WebCore/ChangeLog:13
&gt; +        Furthermore, we currently forbid playing audio from showing controls if it has user gesture restrictions (i.e.

Should this say &quot;we currently forbid AUTOplaying audio&quot;?

&gt; Source/WebCore/html/MediaElementSession.cpp:234
&gt; +    if (m_element.muted()) {

Why did this case move up in the function?

&gt; Source/WebCore/html/MediaElementSession.cpp:239
&gt; +    if (m_element.document().isMediaDocument()) {

Same, why did this one move?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235721</commentid>
    <comment_count>4</comment_count>
      <attachid>290446</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-10-02 09:08:17 -0700</bug_when>
    <thetext>Comment on attachment 290446
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        Currently, we audio elements are subject to the same main content restrictions as video elements. This is
&gt; 
&gt; &quot;we audio&quot;

Whoops! Removed the &apos;we&apos;.

&gt;&gt; Source/WebCore/ChangeLog:13
&gt;&gt; +        Furthermore, we currently forbid playing audio from showing controls if it has user gesture restrictions (i.e.
&gt; 
&gt; Should this say &quot;we currently forbid AUTOplaying audio&quot;?

Yes. Fixed.

&gt;&gt; Source/WebCore/html/MediaElementSession.cpp:234
&gt;&gt; +    if (m_element.muted()) {
&gt; 
&gt; Why did this case move up in the function?

I wanted to move heuristics common to both &lt;audio&gt; and &lt;video&gt; elements to the top of the function, before the early exit happens for audio elements. I think the muted state and whether or not the session is in a media document is something we should take into consideration for both media element types.

&gt;&gt; Source/WebCore/html/MediaElementSession.cpp:239
&gt;&gt; +    if (m_element.document().isMediaDocument()) {
&gt; 
&gt; Same, why did this one move?

See the above response.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235729</commentid>
    <comment_count>5</comment_count>
      <attachid>290471</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-10-02 11:51:54 -0700</bug_when>
    <thetext>Created attachment 290471
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235734</commentid>
    <comment_count>6</comment_count>
      <attachid>290471</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-02 12:24:44 -0700</bug_when>
    <thetext>Comment on attachment 290471
Patch for landing

Clearing flags on attachment: 290471

Committed r206721: &lt;http://trac.webkit.org/changeset/206721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235735</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-02 12:24:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290446</attachid>
            <date>2016-10-01 16:19:16 -0700</date>
            <delta_ts>2016-10-02 11:51:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162843-20161001161611.patch</filename>
            <type>text/plain</type>
            <size>21131</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUxZWZkMGIxMzhhMjFi
Njk0NzI4MDE3NzQwYWUzYzJjYWJmMGQ4NC4uNjZiNGIxYmVkNTE0YjU0MDg5NzEzMGU3ZGM2NGU4
NTE2NGVhYjgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTEwLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIGZvciBTb3VuZGNsb3VkIGVhc2lseSBmYWxscyBvdXQgb2Ygc3luYyB3aXRoIHdoYXQncyBh
Y3R1YWxseSBwbGF5aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjI4NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MTc2ODc0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgd2Ug
YXVkaW8gZWxlbWVudHMgYXJlIHN1YmplY3QgdG8gdGhlIHNhbWUgbWFpbiBjb250ZW50IHJlc3Ry
aWN0aW9ucyBhcyB2aWRlbyBlbGVtZW50cy4gVGhpcyBpcworICAgICAgICBwcm9ibGVtYXRpYyBv
biBzaXRlcyB3aGVyZSBhdWRpbyBlbGVtZW50cyBhcmUgcmVhbGx5IHRoZSBtYWluIGNvbnRlbnQs
IHN1Y2ggYXMgc291bmRjbG91ZC4gV2UgbmVlZCBhIGRpZmZlcmVudAorICAgICAgICBoZXVyaXN0
aWMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYXVkaW8gZWxlbWVudHMgc3VjaCBhcyB0aGVzZSBz
aG91bGQgYmUgYWxsb3dlZCB0byBzaG93IHBsYXliYWNrIGNvbnRyb2xzLgorCisgICAgICAgIEZ1
cnRoZXJtb3JlLCB3ZSBjdXJyZW50bHkgZm9yYmlkIHBsYXlpbmcgYXVkaW8gZnJvbSBzaG93aW5n
IGNvbnRyb2xzIGlmIGl0IGhhcyB1c2VyIGdlc3R1cmUgcmVzdHJpY3Rpb25zIChpLmUuCisgICAg
ICAgIGl0IHN0YXJ0ZWQgcGxheWluZyB2aWEgc2NyaXB0KS4gVGhpcyBpcywgYWdhaW4sIHByb2Js
ZW1hdGljIG9uIHNpdGVzIHdoZXJlIGF1ZGlvIGVsZW1lbnRzIGFyZSBwbGF5ZWQgb25lIGFmdGVy
CisgICAgICAgIGFub3RoZXIgKHN1Y2ggYXMgb24gc291bmRjbG91ZCkuIEV2ZW4gdGhvdWdoIGEg
c3Vic2VxdWVudCBhdWRpbyBlbGVtZW50IG1heSBoYXZlIGJlZW4gdHJpZ2dlcmVkIHZpYSBzY3Jp
cHQsIHdlCisgICAgICAgIG1pZ2h0IHdhbnQgc3RpbGwgd2FudCB0byBzaG93IGNvbnRyb2xzIGZv
ciBpdCBpZiB0aGUgdXNlciBoYXMgZXhwbGljaXRseSB0cmlnZ2VyZWQgb3RoZXIgZWxlbWVudHMg
b24gdGhlIHBhZ2UKKyAgICAgICAgdG8gYmVnaW4gcGxheWluZy4gSG93ZXZlciwgaWYgdGhlIHVz
ZXIgaGFzIG5vdCBnZXN0dXJlZCBvbiBhbnkgbWVkaWEgaW4gdGhlIHBhZ2UsIHdlIHN0aWxsIHNo
b3VsZCBub3Qgc2hvdworICAgICAgICBjb250cm9scyBmb3IgYXVkaW8gZWxlbWVudHMgdGhhdCBi
ZWdpbiBwbGF5aW5nIHZpYSBzY3JpcHQuCisKKyAgICAgICAgQWRkcyB0d28gbmV3IHVuaXQgdGVz
dHMgdG8gVGVzdFdlYktpdEFQSSBzaW11bGF0aW5nIGF1ZGlvIHBsYXliYWNrIGJlaGF2aW9yIG9u
IHNvdW5kY2xvdWQuCisKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVtb3ZlQmVoYXZpb3JSZXN0
cmljdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93
Q29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246
OmFsbG93c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlvKToKKyAgICAgICAgKiBo
dG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmFsbG93c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1
ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldEFsbG93c1BsYXliYWNrQ29udHJvbHNG
b3JBdXRvcGxheWluZ0F1ZGlvKToKKwogMjAxNi0wOS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBJbWFnZURhdGEuZGF0YSBhdHRy
aWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4
IDhlODE0MDc4ODAwOWE4NTRiMjExYzBmZDQ2NGE1ODMyZmI2ZWNjZDcuLjM0M2M1YWU2ZmYwZjUy
MTFlZWFiMWMwYTM2ZWRmOWMwODMxNTlmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtMTM4LDggKzEzOCwxMSBAQCB2b2lkIE1lZGlhRWxlbWVu
dFNlc3Npb246OmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oQmVoYXZpb3JSZXN0cmljdGlvbnMgcmVz
dHJpY3RpbwogCiB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnJlbW92ZUJlaGF2aW9yUmVzdHJp
Y3Rpb24oQmVoYXZpb3JSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb24pCiB7Ci0gICAgaWYgKHJlc3Ry
aWN0aW9uICYgUmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKQorICAg
IGlmIChyZXN0cmljdGlvbiAmIFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFu
YWdlcikgewogICAgICAgICBtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBtX2VsZW1l
bnQuZG9jdW1lbnQoKS5wYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5zZXRBbGxvd3NQbGF5YmFj
a0NvbnRyb2xzRm9yQXV0b3BsYXlpbmdBdWRpbyh0cnVlKTsKKyAgICB9CiAKICAgICBMT0coTWVk
aWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uIC0gcmVt
b3ZpbmcgJXMiLCByZXN0cmljdGlvbk5hbWUocmVzdHJpY3Rpb24pLnV0ZjgoKS5kYXRhKCkpOwog
ICAgIG1fcmVzdHJpY3Rpb25zICY9IH5yZXN0cmljdGlvbjsKQEAgLTIyOCw2ICsyMzEsMzEgQEAg
Ym9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKFBsYXliYWNr
Q29udHJvbHNQdXJwb3NlIHB1cnBvc2UKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisg
ICAgaWYgKG1fZWxlbWVudC5tdXRlZCgpKSB7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxl
bWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE11
dGVkIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAobV9lbGVtZW50
LmRvY3VtZW50KCkuaXNNZWRpYURvY3VtZW50KCkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBUUlVF
OiBJcyBtZWRpYSBkb2N1bWVudCIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICBpZiAoY2xpZW50KCkucHJlc2VudGF0aW9uVHlwZSgpID09IEF1ZGlvKSB7CisgICAgICAgIGlm
ICghaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250
cm9sc01hbmFnZXIpIHx8IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZv
ck1lZGlhKCkpIHsKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246
OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgVFJVRTogQXVkaW8gZWxlbWVudCB3
aXRoIHVzZXIgZ2VzdHVyZSIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KworICAgICAgICBpZiAobV9lbGVtZW50LmlzUGxheWluZygpICYmIGFsbG93c1BsYXliYWNrQ29u
dHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlvKCkpIHsKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIk1l
ZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgVFJV
RTogVXNlciBoYXMgcGxheWVkIG1lZGlhIGJlZm9yZSIpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKworICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9u
OjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBBdWRpbyBlbGVtZW50
IGlzIG5vdCBzdWl0YWJsZSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAg
aWYgKHB1cnBvc2UgPT0gUGxheWJhY2tDb250cm9sc1B1cnBvc2U6OkNvbnRyb2xzTWFuYWdlciAm
JiAhaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKG1fZWxlbWVudCkpIHsKICAgICAgICAg
TE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAt
IHJldHVybmluZyBGQUxTRTogTm90IGluIG1haW4gZnJhbWUiKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjM4LDExICsyNjYsNiBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNhblNo
b3dDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9zZQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKG1fZWxlbWVudC5kb2N1bWVudCgpLmlz
TWVkaWFEb2N1bWVudCgpKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Np
b246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgVFJVRTogSXMgbWVkaWEgZG9j
dW1lbnQiKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCiAgICAgaWYgKG1fZWxlbWVu
dC5kb2N1bWVudCgpLmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSkgewogICAgICAgICBM
T0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyIC0g
cmV0dXJuaW5nIEZBTFNFOiBhY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkiKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMjYzLDExICsyODYsNiBAQCBib29sIE1lZGlhRWxlbWVudFNl
c3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVy
cG9zZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKG1fZWxlbWVudC5t
dXRlZCgpKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmNhblNo
b3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE11dGVkIik7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICBpZiAoIW1fZWxlbWVudC5oYXNFdmVyTm90aWZpZWRB
Ym91dFBsYXlpbmcoKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9u
OjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBIYXNuJ3QgZmlyZWQg
cGxheWluZyBub3RpZmljYXRpb24iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzM5LDYg
Kzc1NywxMiBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OnBhZ2VBbGxvd3NOb3dQbGF5aW5n
Q29udHJvbHMoKSBjb25zdAogICAgIHJldHVybiBwYWdlICYmICFwYWdlLT5pc1Zpc2libGVBbmRB
Y3RpdmUoKTsKIH0KIAorYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjphbGxvd3NQbGF5YmFja0Nv
bnRyb2xzRm9yQXV0b3BsYXlpbmdBdWRpbygpIGNvbnN0Cit7CisgICAgYXV0byBwYWdlID0gbV9l
bGVtZW50LmRvY3VtZW50KCkucGFnZSgpOworICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmFsbG93
c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlvKCk7Cit9CisKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFF
bGVtZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmgKaW5kZXggMDVlODA2OGEyZDU1MTU1YWM1NzExMzhkYjI0OTM2ODZmNzAyZDA0ZS4uNzUyNWE4
ZGMxMzlmZGQzMGRiODVmMDI2OTdkM2JlNGZiYzEyNmU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTEyNCw2ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQoTWVkaWFTZXNzaW9uTWFpbkNvbnRlbnRQ
dXJwb3NlKSBjb25zdDsKICAgICBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUo
KSBjb25zdDsKIAorICAgIGJvb2wgYWxsb3dzUGxheWJhY2tDb250cm9sc0ZvckF1dG9wbGF5aW5n
QXVkaW8oKSBjb25zdDsKKwogcHJpdmF0ZToKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVmNGI1MWNlMzAyOWQ4ZjY5ZWI4ZTFjYWFiYzlm
ZTllZjA1OWViMDQuLmZjMjA1MDY5M2FmMWJmZTQzMWZkZGUxYmNmYmIwNGEzMWI1MmUzY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC01MTEsNiArNTExLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wpOwogI2Vu
ZGlmCiAKKyAgICBib29sIGFsbG93c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlv
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NQbGF5YmFja0NvbnRyb2xzRm9yQXV0b3BsYXlpbmdB
dWRpbzsgfQorICAgIHZvaWQgc2V0QWxsb3dzUGxheWJhY2tDb250cm9sc0ZvckF1dG9wbGF5aW5n
QXVkaW8oYm9vbCBhbGxvd3NQbGF5YmFja0NvbnRyb2xzRm9yQXV0b3BsYXlpbmdBdWRpbykgeyBt
X2FsbG93c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlvID0gYWxsb3dzUGxheWJh
Y2tDb250cm9sc0ZvckF1dG9wbGF5aW5nQXVkaW87IH0KKwogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0
aW9uKCk7CiAjZW5kaWYKQEAgLTcxOSw2ICs3MjIsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05v
dFBsYXlpbmcgfTsKICAgICAKICAgICBib29sIG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBs
YXliYWNrIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsb3dzUGxheWJhY2tDb250cm9sc0ZvckF1
dG9wbGF5aW5nQXVkaW8geyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG93QWxsUGx1Z2lucyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2NvbnRyb2xsZWRCeUF1dG9tYXRpb24geyBmYWxzZSB9OwogICAg
IGJvb2wgbV9yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjg5NjMzMzdjNjgyN2RkMzc1
ZGFlNGI0NzViZGYzYWFkNGU3ODQyYS4uYjBhZGUzNDRmYWVmMWQxYzRmY2I4OTI2NDM0NzA0OGFi
NzAzYzAzOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTEwLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIGZvciBTb3VuZGNsb3VkIGVh
c2lseSBmYWxscyBvdXQgb2Ygc3luYyB3aXRoIHdoYXQncyBhY3R1YWxseSBwbGF5aW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4NDMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI4MTc2ODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgdHdvIG5ldyB0ZXN0cyBzaW11bGF0aW5nIGF1ZGlv
IHBsYXliYWNrIGJlaGF2aW9yIG9uIHNvdW5kY2xvdWQuIEFsc28gdHdlYWtzIHNvbWUgb2YgdGhl
IFdLV2ViVmlldyB0ZXN0CisgICAgICAgIG1lc3NhZ2UgaGFuZGxpbmcgbG9naWMgdG8gc3VwcG9y
dCBoYXZpbmcgbXVsdGlwbGUgbWVzc2FnZS1oYW5kbGVyIG1hcHBpbmdzLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01h
bmFnZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tOgorICAgICAgICAo
LVtUZXN0TWVzc2FnZUhhbmRsZXIgYWRkTWVzc2FnZTp3aXRoSGFuZGxlcjpdKToKKyAgICAgICAg
KC1bVGVzdE1lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2Ny
aXB0TWVzc2FnZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNl
aXZpbmdNZXNzYWdlOmFjdGlvbjpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBwZXJmb3Jt
QWZ0ZXJMb2FkaW5nOl0pOgorICAgICAgICAoLVtUZXN0TWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhN
ZXNzYWdlOmhhbmRsZXI6XSk6IERlbGV0ZWQuCisKIDIwMTYtMDktMjkgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgQ3J5cHRvS2V5IHRvIHdlYiB3
b3JrZXJzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM2MGU1ZGQ1Nzk0OWQyOWEyNWMzYjM2
NjQxOWU3MjFlOWQ0YjllZDQuLjY3MDdlODg0OGRmZmFjMDYxNjQ3MWNmOTFmM2I3MDc0ZmI1OWVl
MWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NzksNiArNDc5LDcgQEAKIAkJQ0VCQUJE
NDkxQjcxNjg3QzAwNTEyMTBBIC8qIHNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUJB
QkQ0ODFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1lcy5odG1s
ICovOyB9OwogCQlFMTIyMERDQTE1NUIyOEFBMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxl
V2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTIyMERDOTE1NUIyODdEMDAxM0UyRkMgLyog
TWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLzsgfTsK
IAkJRTE5NEUxQkQxNzdFNTNDNzAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVS
ZXNwb25zZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxOTRFMUJDMTc3RTUzNEEwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRS
ZWNlaXZlUmVzcG9uc2UuaHRtbCAqLzsgfTsKKwkJRjQxNTA4NkQxREEwNDBDNTAwNDRCRTlCIC8q
IHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDE1MDg2QzFEQTA0MEMxMDA0NEJFOUIgLyogcGxheS1h
dWRpby1vbi1jbGljay5odG1sICovOyB9OwogCQlGNDJEQTUxNjFEOENFRkU0MDAzMzZGNDAgLyog
bGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyREE1MTUxRDhDRUZEQjAwMzM2RjQw
IC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sICovOyB9OwogCQlGNEYxMzc5
MjFEOUI2ODNFMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjEz
NzkxMUQ5QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwg
Ki87IH07CiAJCUY0RjQwNUJDMUQ0QzBEMUMwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3BsYXlp
bmctdmlkZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjQwNUJBMUQ0QzBDRjgwMDdBOTcwNyAvKiBmdWxsLXNp
emUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovOyB9OwpAQCAtNTUyLDYgKzU1
Myw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJm
b2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCUY0MTUwODZEMURBMDQwQzUwMDQ0QkU5
QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
RjRGMTM3OTIxRDlCNjgzRTAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk4MzdBMzVGMTFEOUExRTdEMDA2NjNDNTcg
LyogRG93bmxvYWRSZXF1ZXN0QmxvYlVSTC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTJFOTg5NjE1MUQ4RjA5MzgwMDczOTg5MiAvKiB0ZXh0LWFuZC1wYXNzd29yZC1pbnB1dHMuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTExOTUsNiArMTE5Nyw3IEBACiAJCUU0QTc1N0Qz
MTc4QUVBNUIwMEI1RDdBNCAvKiBEZXF1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXF1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QzlBQkM3MUIzREIxNzEwMDQwQTk4
NyAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1
bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0ZDM0VFMjEzNjc4Qjcz
MDAxMjZBNjUgLyogbGliZ3Rlc3QuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBsaWJndGVzdC5hOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlGNDE1MDg2QzFEQTA0MEMxMDA0NEJFOUIgLyog
cGxheS1hdWRpby1vbi1jbGljay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInBs
YXktYXVkaW8tb24tY2xpY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
MkRBNTE1MUQ4Q0VGREIwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJsYXJnZS1pbnB1dC1maWVsZC1mb2N1
cy1vbmxvYWQuaHRtbCI7IHBhdGggPSAiVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLWlucHV0LWZp
ZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlG
NEYxMzc5MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXRlc3Qtbm93LXBs
YXlpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RjQwNUJBMUQ0QzBD
RjgwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRl
by13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5Myw2
ICsxNDk2LDcgQEAKIAkJQTE2RjY2QjgxQzQwRTlFMTAwQkQ0RDI0IC8qIFJlc291cmNlcyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRjQxNTA4NkMxREEw
NDBDMTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCAqLywKIAkJCQlGNEYxMzc5
MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sICov
LAogCQkJCTJFOTg5NjE0MUQ4RjA5MkIwMDczOTg5MiAvKiB0ZXh0LWFuZC1wYXNzd29yZC1pbnB1
dHMuaHRtbCAqLywKIAkJCQkyRUZGMDZDQzFEOEE0MjkxMDAwNEJCMzAgLyogaW5wdXQtZmllbGQt
aW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5t
bQppbmRleCAzZGFiOGVhNmJiNjRkMTk1YmQyM2M4MzIxNDQzOWIwZjE0MjU2MTcyLi4zOWEwMzU0
OTZjMjhkZGFkN2YyNjJhYTNkY2M4YzI4Zjg0NzIxZjAyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFu
YWdlci5tbQpAQCAtMzEzLDYgKzMxMyw0MiBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBW
aWRlb0NvbnRyb2xzTWFuYWdlckF1ZGlvRWxlbWVudFN0YXJ0ZWRXaXRoU2NyaXB0KQogICAgIFt3
ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpOTyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJw
bGF5aW5nIl07CiB9CiAKK1RFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNN
YW5hZ2VyQXVkaW9FbGVtZW50U3RhcnRlZEJ5SW50ZXJhY3Rpb24pCit7CisgICAgUmV0YWluUHRy
PFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcqPiB3ZWJWaWV3ID0gc2V0VXBXZWJWaWV3
Rm9yVGVzdGluZ1ZpZGVvQ29udHJvbHNNYW5hZ2VyKE5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0MDAp
KTsKKworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAicGxheS1hdWRpby1vbi1jbGlj
ayJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JQYWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9z
OjBdOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAyMDAp
IHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKKworICAgIC8vIEFuIGF1ZGlvIGVsZW1lbnQgTVVTVCBi
ZSBzdGFydGVkIHdpdGggYSB1c2VyIGdlc3R1cmUgaW4gb3JkZXIgdG8gaGF2ZSBhIGNvbnRyb2xz
IG1hbmFnZXIsIHNvIHRoZSBleHBlY3RhdGlvbiBpcyBZRVMuCisgICAgW3dlYlZpZXcgZXhwZWN0
Q29udHJvbHNNYW5hZ2VyOllFUyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwbGF5aW5nLWZpcnN0
Il07CisgICAgRVhQRUNUX1RSVUUoW1t3ZWJWaWV3IGNvbnRyb2xsZWRFbGVtZW50SURdIGlzRXF1
YWxUb1N0cmluZzpAImZpcnN0Il0pOworfQorCitURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBW
aWRlb0NvbnRyb2xzTWFuYWdlckF1ZGlvRWxlbWVudEZvbGxvd2luZ1VzZXJJbnRlcmFjdGlvbikK
K3sKKyAgICBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyo+IHdlYlZp
ZXcgPSBzZXRVcFdlYlZpZXdGb3JUZXN0aW5nVmlkZW9Db250cm9sc01hbmFnZXIoTlNNYWtlUmVj
dCgwLCAwLCA0MDAsIDQwMCkpOworCisgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJw
bGF5LWF1ZGlvLW9uLWNsaWNrIl07CisgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRo
QXV0b3BsYXlpbmdWaWRlb3M6MF07CisgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpOU01h
a2VQb2ludCgyMDAsIDIwMCkgc2ltdWxhdGVQcmVzc3VyZTpZRVNdOworCisgICAgW3dlYlZpZXcg
cGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmctZmlyc3QiIGFjdGlvbjpeIHsK
KyAgICAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2Vla1RvRW5kKCkiIGNvbXBs
ZXRpb25IYW5kbGVyOm5pbF07CisgICAgfV07CisKKyAgICBfX2Jsb2NrIGJvb2wgc2Vjb25kQXVk
aW9QbGF5aW5nID0gZmFsc2U7CisgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVz
c2FnZTpAInBsYXlpbmctc2Vjb25kIiBhY3Rpb246XiB7CisgICAgICAgIHNlY29uZEF1ZGlvUGxh
eWluZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZWNv
bmRBdWRpb1BsYXlpbmcpOworICAgIHdoaWxlIChbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0g
cnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlzdGFudFBh
c3RdXSkgeworICAgICAgICBpZiAoW3dlYlZpZXcgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNN
YW5hZ2VyXSAmJiBbW3dlYlZpZXcgY29udHJvbGxlZEVsZW1lbnRJRF0gaXNFcXVhbFRvU3RyaW5n
OkAic2Vjb25kIl0pCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIFRFU1QoVmlkZW9D
b250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVhcnNEb3duTWVkaWFDb250cm9s
c09uRGVhbGxvYykKIHsKICAgICBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2Vi
Vmlldyo+IHdlYlZpZXcgPSBzZXRVcFdlYlZpZXdGb3JUZXN0aW5nVmlkZW9Db250cm9sc01hbmFn
ZXIoTlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcGxheS1hdWRpby1vbi1jbGljay5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvcGxheS1hdWRpby1vbi1jbGljay5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3NzY4YTY0ZWMyOTM1NTFhZjVmN2RmN2RhZmQ3OTg4ODljNjZmMWEK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9wbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgZGl2IHsKKyAgICAgICAg
ICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgIH0KKyAgICAgICAgYm9keSB7CisgICAg
ICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+
CisgICAgICAgIHZhciBhdWRpbzsKKworICAgICAgICBmdW5jdGlvbiBwbGF5Rmlyc3RUcmFjaygp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1ZGlvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
YXVkaW8iKTsKKyAgICAgICAgICAgIGF1ZGlvLnNyYyA9ICJ2aWRlby13aXRoLWF1ZGlvLm1wNCI7
CisgICAgICAgICAgICBhdWRpby5pZCA9ICJmaXJzdCI7CisgICAgICAgICAgICBhdWRpby5vbnBs
YXlpbmcgPSBhdWRpb1BsYXlpbmdIYW5kbGVyKCJmaXJzdCIpOworICAgICAgICAgICAgYXVkaW8u
b25lbmRlZCA9IHBsYXlTZWNvbmRUcmFjazsKKyAgICAgICAgICAgIGF1ZGlvLnBsYXkoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHBsYXlTZWNvbmRUcmFjaygpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGF1ZGlvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYXVkaW8iKTsKKyAg
ICAgICAgICAgIGF1ZGlvLnNyYyA9ICJsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCI7CisgICAg
ICAgICAgICBhdWRpby5pZCA9ICJzZWNvbmQiOworICAgICAgICAgICAgYXVkaW8ub25wbGF5aW5n
ID0gYXVkaW9QbGF5aW5nSGFuZGxlcigic2Vjb25kIik7CisgICAgICAgICAgICBhdWRpby5wbGF5
KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZWVrVG9FbmQoKQorICAgICAgICB7
CisgICAgICAgICAgICBhdWRpby5jdXJyZW50VGltZSA9IGF1ZGlvLmR1cmF0aW9uIC0gMC41Owor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYXVkaW9QbGF5aW5nSGFuZGxlcihpZCkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nLSIgKyBpZCk7CisgICAgICAgICAgICAg
ICAgfSBjYXRjaChlKSB7fQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IG9ubW91c2Vkb3duPXBsYXlGaXJzdFRyYWNrKCk+
Q2xpY2sgbWUgdG8gc3RhcnQgcGxheWluZyE8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaAppbmRleCBlZDY5MjM5NDM4Mzgz
ZmNmMmVkM2M1NGVlNjhjYjQzOGNmNGExZGMyLi40ODhjOGZmNDYwYjMwZjI0YWNhMTllMDBjZjAx
NTM5NjM4MjM5NzkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tX
ZWJWaWV3TWFjLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01h
Yy5oCkBAIC0zMSw3ICszMSw3IEBACiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFD
KQogCiBAaW50ZXJmYWNlIFRlc3RNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1l
c3NhZ2VIYW5kbGVyPgotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJpbmcg
KiltZXNzYWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcjsKKy0gKHZvaWQpYWRk
TWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIHdpdGhIYW5kbGVyOihkaXNwYXRjaF9ibG9ja190
KWhhbmRsZXI7CiBAZW5kCiAKIEBpbnRlcmZhY2UgVGVzdFdLV2ViVmlldyA6IFdLV2ViVmlldwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KaW5kZXggNGUxNTRl
ZDc3NjAxYmE5MzM5NTVjODYzNjQ1NTA3ZmJmMDFhNjEwMS4uMDBkMjMzMzkxODljYzk0ZTc3MmFm
MWZhOTJkM2QxNTU5MjkyZTkzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMv
VGVzdFdLV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tX
ZWJWaWV3TWFjLm1tCkBAIC0zNywyNSArMzcsMjIgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KIAogQGltcGxlbWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7Ci0gICAgZGlzcGF0Y2hf
YmxvY2tfdCBfaGFuZGxlcjsKLSAgICBOU1N0cmluZyAqX21lc3NhZ2U7CisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeTxOU1N0cmluZyAqLCBkaXNwYXRjaF9ibG9ja190PiAqX21lc3NhZ2VIYW5kbGVy
czsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNz
YWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcgorLSAodm9pZClhZGRNZXNzYWdl
OihOU1N0cmluZyAqKW1lc3NhZ2Ugd2l0aEhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxl
cgogewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmls
OworICAgIGlmICghX21lc3NhZ2VIYW5kbGVycykKKyAgICAgICAgX21lc3NhZ2VIYW5kbGVycyA9
IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOwogCi0gICAgX2hhbmRsZXIgPSBbaGFu
ZGxlciBjb3B5XTsKLSAgICBfbWVzc2FnZSA9IG1lc3NhZ2U7Ci0KLSAgICByZXR1cm4gc2VsZjsK
KyAgICBfbWVzc2FnZUhhbmRsZXJzW21lc3NhZ2VdID0gW2hhbmRsZXIgY29weV07CiB9CiAKIC0g
KHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVz
ZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNz
YWdlICopbWVzc2FnZQogewotICAgIGlmIChbKE5TU3RyaW5nICopW21lc3NhZ2UgYm9keV0gaXNF
cXVhbFRvU3RyaW5nOl9tZXNzYWdlXSAmJiBfaGFuZGxlcikKLSAgICAgICAgX2hhbmRsZXIoKTsK
KyAgICBkaXNwYXRjaF9ibG9ja190IGhhbmRsZXIgPSBfbWVzc2FnZUhhbmRsZXJzW21lc3NhZ2Uu
Ym9keV07CisgICAgaWYgKGhhbmRsZXIpCisgICAgICAgIGhhbmRsZXIoKTsKIH0KIAogQGVuZApA
QCAtMTQwLDYgKzEzNyw3IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcg
ewogICAgIFRlc3RXS1dlYlZpZXdIb3N0V2luZG93ICpfaG9zdFdpbmRvdzsKKyAgICBSZXRhaW5Q
dHI8VGVzdE1lc3NhZ2VIYW5kbGVyPiBfdGVzdEhhbmRsZXI7CiB9CiAKIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKQEAgLTE3MiwxMCArMTcwLDEyIEBAIC0gKHZv
aWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09M
KXNpbXVsYXRlUHJlc3N1cmUKIAogLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdl
OihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbgogewot
ICAgIFJldGFpblB0cjxUZXN0TWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbVGVz
dE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aE1lc3NhZ2U6bWVzc2FnZSBoYW5kbGVyOmFj
dGlvbl0pOwotICAgIFdLVXNlckNvbnRlbnRDb250cm9sbGVyKiBjb250ZW50Q29udHJvbGxlciA9
IFtbc2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVudENvbnRyb2xsZXJdOwotICAgIFtjb250
ZW50Q29udHJvbGxlciByZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6QCJ0ZXN0SGFu
ZGxlciJdOwotICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpo
YW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworICAgIGlmICghX3Rlc3RIYW5kbGVy
KSB7CisgICAgICAgIF90ZXN0SGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0TWVzc2FnZUhhbmRsZXIg
YWxsb2NdIGluaXRdKTsKKyAgICAgICAgW1tbc2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVu
dENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOl90ZXN0SGFuZGxlci5nZXQoKSBu
YW1lOkAidGVzdEhhbmRsZXIiXTsKKyAgICB9CisKKyAgICBbX3Rlc3RIYW5kbGVyIGFkZE1lc3Nh
Z2U6bWVzc2FnZSB3aXRoSGFuZGxlcjphY3Rpb25dOwogfQogCiAtICh2b2lkKWxvYWRUZXN0UGFn
ZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lCkBAIC0yMjMsNyArMjIzLDkgQEAgLSAodm9pZCl3
YWl0Rm9yTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlCiB9CiAKIC0gKHZvaWQpcGVyZm9ybUFm
dGVyTG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zIHsKLSAgICBUZXN0TWVzc2FnZUhh
bmRsZXIgKmhhbmRsZXIgPSBbW1Rlc3RNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhNZXNz
YWdlOkAibG9hZGVkIiBoYW5kbGVyOmFjdGlvbnNdOworICAgIFRlc3RNZXNzYWdlSGFuZGxlciAq
aGFuZGxlciA9IFtbVGVzdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XTsKKyAgICBbaGFuZGxl
ciBhZGRNZXNzYWdlOkAibG9hZGVkIiB3aXRoSGFuZGxlcjphY3Rpb25zXTsKKwogICAgIE5TU3Ry
aW5nICpvbmxvYWRTY3JpcHQgPSBAIndpbmRvdy5vbmxvYWQgPSAoKSA9PiB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy5vbmxvYWRIYW5kbGVyLnBvc3RNZXNzYWdlKCdsb2FkZWQnKSI7CiAg
ICAgV0tVc2VyU2NyaXB0ICpzY3JpcHQgPSBbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhT
b3VyY2U6b25sb2FkU2NyaXB0IGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGlt
ZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290471</attachid>
            <date>2016-10-02 11:51:54 -0700</date>
            <delta_ts>2016-10-02 12:24:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-162843-20161002114846.patch</filename>
            <type>text/plain</type>
            <size>21124</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUxZWZkMGIxMzhhMjFi
Njk0NzI4MDE3NzQwYWUzYzJjYWJmMGQ4NC4uYjVmNjU4YjZmYzI5OGM1ZGFjMGUyMzhjMmQxODlk
MTQ2NDQzNGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTEwLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIGZvciBTb3VuZGNsb3VkIGVhc2lseSBmYWxscyBvdXQgb2Ygc3luYyB3aXRoIHdoYXQncyBh
Y3R1YWxseSBwbGF5aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjI4NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MTc2ODc0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEJldGggRGFraW4uCisKKyAgICAgICAgQ3VycmVudGx5LCBhdWRpbyBl
bGVtZW50cyBhcmUgc3ViamVjdCB0byB0aGUgc2FtZSBtYWluIGNvbnRlbnQgcmVzdHJpY3Rpb25z
IGFzIHZpZGVvIGVsZW1lbnRzLiBUaGlzIGlzCisgICAgICAgIHByb2JsZW1hdGljIG9uIHNpdGVz
IHdoZXJlIGF1ZGlvIGVsZW1lbnRzIGFyZSByZWFsbHkgdGhlIG1haW4gY29udGVudCwgc3VjaCBh
cyBzb3VuZGNsb3VkLiBXZSBuZWVkIGEgZGlmZmVyZW50CisgICAgICAgIGhldXJpc3RpYyBmb3Ig
ZGV0ZXJtaW5pbmcgd2hldGhlciBhdWRpbyBlbGVtZW50cyBzdWNoIGFzIHRoZXNlIHNob3VsZCBi
ZSBhbGxvd2VkIHRvIHNob3cgcGxheWJhY2sgY29udHJvbHMuCisKKyAgICAgICAgRnVydGhlcm1v
cmUsIHdlIGN1cnJlbnRseSBmb3JiaWQgYXV0b3BsYXlpbmcgYXVkaW8gZnJvbSBzaG93aW5nIGNv
bnRyb2xzIGlmIGl0IGhhcyB1c2VyIGdlc3R1cmUgcmVzdHJpY3Rpb25zCisgICAgICAgIChpLmUu
IGl0IHN0YXJ0ZWQgcGxheWluZyB2aWEgc2NyaXB0KS4gVGhpcyBpcywgYWdhaW4sIHByb2JsZW1h
dGljIG9uIHNpdGVzIHdoZXJlIGF1ZGlvIGVsZW1lbnRzIGFyZSBwbGF5ZWQgb25lCisgICAgICAg
IGFmdGVyIGFub3RoZXIgKHN1Y2ggYXMgb24gc291bmRjbG91ZCkuIEV2ZW4gdGhvdWdoIGEgc3Vi
c2VxdWVudCBhdWRpbyBlbGVtZW50IG1heSBoYXZlIGJlZW4gdHJpZ2dlcmVkIHZpYQorICAgICAg
ICBzY3JpcHQsIHdlIG1pZ2h0IHdhbnQgc3RpbGwgd2FudCB0byBzaG93IGNvbnRyb2xzIGZvciBp
dCBpZiB0aGUgdXNlciBoYXMgZXhwbGljaXRseSB0cmlnZ2VyZWQgb3RoZXIgZWxlbWVudHMgb24K
KyAgICAgICAgdGhlIHBhZ2UgdG8gYmVnaW4gcGxheWluZy4gSG93ZXZlciwgaWYgdGhlIHVzZXIg
aGFzIG5vdCBnZXN0dXJlZCBvbiBhbnkgbWVkaWEgaW4gdGhlIHBhZ2UsIHdlIHN0aWxsIHNob3Vs
ZCBub3QKKyAgICAgICAgc2hvdyBjb250cm9scyBmb3IgYXVkaW8gZWxlbWVudHMgdGhhdCBiZWdp
biBwbGF5aW5nIHZpYSBzY3JpcHQuCisKKyAgICAgICAgQWRkcyB0d28gbmV3IHVuaXQgdGVzdHMg
dG8gVGVzdFdlYktpdEFQSSBzaW11bGF0aW5nIGF1ZGlvIHBsYXliYWNrIGJlaGF2aW9yIG9uIHNv
dW5kY2xvdWQuCisKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVtb3ZlQmVoYXZpb3JSZXN0cmlj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29u
dHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OmFs
bG93c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlvKToKKyAgICAgICAgKiBodG1s
L01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OmFsbG93c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlv
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldEFsbG93c1BsYXliYWNrQ29udHJvbHNGb3JB
dXRvcGxheWluZ0F1ZGlvKToKKwogMjAxNi0wOS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBJbWFnZURhdGEuZGF0YSBhdHRyaWJ1
dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDhl
ODE0MDc4ODAwOWE4NTRiMjExYzBmZDQ2NGE1ODMyZmI2ZWNjZDcuLjM0M2M1YWU2ZmYwZjUyMTFl
ZWFiMWMwYTM2ZWRmOWMwODMxNTlmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcApAQCAtMTM4LDggKzEzOCwxMSBAQCB2b2lkIE1lZGlhRWxlbWVudFNl
c3Npb246OmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oQmVoYXZpb3JSZXN0cmljdGlvbnMgcmVzdHJp
Y3RpbwogCiB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rp
b24oQmVoYXZpb3JSZXN0cmljdGlvbnMgcmVzdHJpY3Rpb24pCiB7Ci0gICAgaWYgKHJlc3RyaWN0
aW9uICYgUmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKQorICAgIGlm
IChyZXN0cmljdGlvbiAmIFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdl
cikgewogICAgICAgICBtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBtX2VsZW1lbnQu
ZG9jdW1lbnQoKS5wYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5zZXRBbGxvd3NQbGF5YmFja0Nv
bnRyb2xzRm9yQXV0b3BsYXlpbmdBdWRpbyh0cnVlKTsKKyAgICB9CiAKICAgICBMT0coTWVkaWEs
ICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uIC0gcmVtb3Zp
bmcgJXMiLCByZXN0cmljdGlvbk5hbWUocmVzdHJpY3Rpb24pLnV0ZjgoKS5kYXRhKCkpOwogICAg
IG1fcmVzdHJpY3Rpb25zICY9IH5yZXN0cmljdGlvbjsKQEAgLTIyOCw2ICsyMzEsMzEgQEAgYm9v
bCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKFBsYXliYWNrQ29u
dHJvbHNQdXJwb3NlIHB1cnBvc2UKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAg
aWYgKG1fZWxlbWVudC5tdXRlZCgpKSB7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVu
dFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE11dGVk
Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAobV9lbGVtZW50LmRv
Y3VtZW50KCkuaXNNZWRpYURvY3VtZW50KCkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFF
bGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBUUlVFOiBJ
cyBtZWRpYSBkb2N1bWVudCIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBp
ZiAoY2xpZW50KCkucHJlc2VudGF0aW9uVHlwZSgpID09IEF1ZGlvKSB7CisgICAgICAgIGlmICgh
aGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9s
c01hbmFnZXIpIHx8IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpIHsKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmNh
blNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgVFJVRTogQXVkaW8gZWxlbWVudCB3aXRo
IHVzZXIgZ2VzdHVyZSIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAobV9lbGVtZW50LmlzUGxheWluZygpICYmIGFsbG93c1BsYXliYWNrQ29udHJv
bHNGb3JBdXRvcGxheWluZ0F1ZGlvKCkpIHsKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlh
RWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgVFJVRTog
VXNlciBoYXMgcGxheWVkIG1lZGlhIGJlZm9yZSIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKworICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpj
YW5TaG93Q29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBBdWRpbyBlbGVtZW50IGlz
IG5vdCBzdWl0YWJsZSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYg
KHB1cnBvc2UgPT0gUGxheWJhY2tDb250cm9sc1B1cnBvc2U6OkNvbnRyb2xzTWFuYWdlciAmJiAh
aXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKG1fZWxlbWVudCkpIHsKICAgICAgICAgTE9H
KE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAtIHJl
dHVybmluZyBGQUxTRTogTm90IGluIG1haW4gZnJhbWUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMjM4LDExICsyNjYsNiBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dD
b250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9zZQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKG1fZWxlbWVudC5kb2N1bWVudCgpLmlzTWVk
aWFEb2N1bWVudCgpKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246
OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgVFJVRTogSXMgbWVkaWEgZG9jdW1l
bnQiKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCiAgICAgaWYgKG1fZWxlbWVudC5k
b2N1bWVudCgpLmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSkgewogICAgICAgICBMT0co
TWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyIC0gcmV0
dXJuaW5nIEZBTFNFOiBhY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkiKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMjYzLDExICsyODYsNiBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Np
b246OmNhblNob3dDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9z
ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKG1fZWxlbWVudC5tdXRl
ZCgpKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dD
b250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE11dGVkIik7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KICAgICBpZiAoIW1fZWxlbWVudC5oYXNFdmVyTm90aWZpZWRBYm91
dFBsYXlpbmcoKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpj
YW5TaG93Q29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBIYXNuJ3QgZmlyZWQgcGxh
eWluZyBub3RpZmljYXRpb24iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzM5LDYgKzc1
NywxMiBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OnBhZ2VBbGxvd3NOb3dQbGF5aW5nQ29u
dHJvbHMoKSBjb25zdAogICAgIHJldHVybiBwYWdlICYmICFwYWdlLT5pc1Zpc2libGVBbmRBY3Rp
dmUoKTsKIH0KIAorYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjphbGxvd3NQbGF5YmFja0NvbnRy
b2xzRm9yQXV0b3BsYXlpbmdBdWRpbygpIGNvbnN0Cit7CisgICAgYXV0byBwYWdlID0gbV9lbGVt
ZW50LmRvY3VtZW50KCkucGFnZSgpOworICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmFsbG93c1Bs
YXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlvKCk7Cit9CisKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgK
aW5kZXggMDVlODA2OGEyZDU1MTU1YWM1NzExMzhkYjI0OTM2ODZmNzAyZDA0ZS4uNzUyNWE4ZGMx
MzlmZGQzMGRiODVmMDI2OTdkM2JlNGZiYzEyNmU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTEyNCw2ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQoTWVkaWFTZXNzaW9uTWFpbkNvbnRlbnRQdXJw
b3NlKSBjb25zdDsKICAgICBkb3VibGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUoKSBj
b25zdDsKIAorICAgIGJvb2wgYWxsb3dzUGxheWJhY2tDb250cm9sc0ZvckF1dG9wbGF5aW5nQXVk
aW8oKSBjb25zdDsKKwogcHJpdmF0ZToKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVmNGI1MWNlMzAyOWQ4ZjY5ZWI4ZTFjYWFiYzlmZTll
ZjA1OWViMDQuLmZjMjA1MDY5M2FmMWJmZTQzMWZkZGUxYmNmYmIwNGEzMWI1MmUzY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC01MTEsNiArNTExLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wpOwogI2VuZGlm
CiAKKyAgICBib29sIGFsbG93c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlvKCkg
Y29uc3QgeyByZXR1cm4gbV9hbGxvd3NQbGF5YmFja0NvbnRyb2xzRm9yQXV0b3BsYXlpbmdBdWRp
bzsgfQorICAgIHZvaWQgc2V0QWxsb3dzUGxheWJhY2tDb250cm9sc0ZvckF1dG9wbGF5aW5nQXVk
aW8oYm9vbCBhbGxvd3NQbGF5YmFja0NvbnRyb2xzRm9yQXV0b3BsYXlpbmdBdWRpbykgeyBtX2Fs
bG93c1BsYXliYWNrQ29udHJvbHNGb3JBdXRvcGxheWluZ0F1ZGlvID0gYWxsb3dzUGxheWJhY2tD
b250cm9sc0ZvckF1dG9wbGF5aW5nQXVkaW87IH0KKwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQogICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9u
KCk7CiAjZW5kaWYKQEAgLTcxOSw2ICs3MjIsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBs
YXlpbmcgfTsKICAgICAKICAgICBib29sIG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXli
YWNrIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsb3dzUGxheWJhY2tDb250cm9sc0ZvckF1dG9w
bGF5aW5nQXVkaW8geyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG93QWxsUGx1Z2lucyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2NvbnRyb2xsZWRCeUF1dG9tYXRpb24geyBmYWxzZSB9OwogICAgIGJv
b2wgbV9yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjg5NjMzMzdjNjgyN2RkMzc1ZGFl
NGI0NzViZGYzYWFkNGU3ODQyYS4uYmMxNTlmMTY4NTA4M2RlZGI5NDYzYTFmMDZkOWEzYWQ4ZjBl
Zjg1NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI2IEBACisyMDE2LTEwLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIGZvciBTb3VuZGNsb3VkIGVhc2ls
eSBmYWxscyBvdXQgb2Ygc3luYyB3aXRoIHdoYXQncyBhY3R1YWxseSBwbGF5aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4NDMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI4MTc2ODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJldGggRGFr
aW4uCisKKyAgICAgICAgQWRkcyB0d28gbmV3IHRlc3RzIHNpbXVsYXRpbmcgYXVkaW8gcGxheWJh
Y2sgYmVoYXZpb3Igb24gc291bmRjbG91ZC4gQWxzbyB0d2Vha3Mgc29tZSBvZiB0aGUgV0tXZWJW
aWV3IHRlc3QKKyAgICAgICAgbWVzc2FnZSBoYW5kbGluZyBsb2dpYyB0byBzdXBwb3J0IGhhdmlu
ZyBtdWx0aXBsZSBtZXNzYWdlLWhhbmRsZXIgbWFwcGluZ3MuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL3BsYXktYXVkaW8tb24tY2xpY2suaHRtbDogQWRkZWQuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW06CisgICAgICAgICgtW1Rlc3RN
ZXNzYWdlSGFuZGxlciBhZGRNZXNzYWdlOndpdGhIYW5kbGVyOl0pOgorICAgICAgICAoLVtUZXN0
TWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNz
YWdlOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01l
c3NhZ2U6YWN0aW9uOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1BZnRlckxv
YWRpbmc6XSk6CisgICAgICAgICgtW1Rlc3RNZXNzYWdlSGFuZGxlciBpbml0V2l0aE1lc3NhZ2U6
aGFuZGxlcjpdKTogRGVsZXRlZC4KKwogMjAxNi0wOS0yOSAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBDcnlwdG9LZXkgdG8gd2ViIHdvcmtlcnMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzYwZTVkZDU3OTQ5ZDI5YTI1YzNiMzY2NDE5ZTcy
MWU5ZDRiOWVkNC4uNjcwN2U4ODQ4ZGZmYWMwNjE2NDcxY2Y5MWYzYjcwNzRmYjU5ZWUxYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3OSw2ICs0NzksNyBAQAogCQlDRUJBQkQ0OTFCNzE2
ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1lcy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQkFCRDQ4MUI3
MTY4N0MwMDUxMjEwQSAvKiBzaG91bGQtb3Blbi1leHRlcm5hbC1zY2hlbWVzLmh0bWwgKi87IH07
CiAJCUUxMjIwRENBMTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5S
ZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjIwREM5MTU1QjI4N0QwMDEzRTJGQyAvKiBNZW1vcnlD
YWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICovOyB9OwogCQlFMTk0
RTFCRDE3N0U1M0M3MDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTE5NEUxQkMxNzdFNTM0QTAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVS
ZXNwb25zZS5odG1sICovOyB9OworCQlGNDE1MDg2RDFEQTA0MEM1MDA0NEJFOUIgLyogcGxheS1h
dWRpby1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0MTUwODZDMURBMDQwQzEwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9u
LWNsaWNrLmh0bWwgKi87IH07CiAJCUY0MkRBNTE2MUQ4Q0VGRTQwMDMzNkY0MCAvKiBsYXJnZS1p
bnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFy
Z2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi87IH07CiAJCUY0RjEzNzkyMUQ5QjY4
M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGMTM3OTExRDlC
NjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAqLzsgfTsK
IAkJRjRGNDA1QkMxRDRDMEQxQzAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRl
by13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi87IH07CkBAIC01NTIsNiArNTUzLDcgQEAK
IAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNw
ZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJRjQxNTA4NkQxREEwNDBDNTAwNDRCRTlCIC8qIHBs
YXktYXVkaW8tb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEYxMzc5
MjFEOUI2ODNFMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTgzN0EzNUYxMUQ5QTFFN0QwMDY2M0M1NyAvKiBEb3du
bG9hZFJlcXVlc3RCbG9iVVJMLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkU5ODk2
MTUxRDhGMDkzODAwNzM5ODkyIC8qIHRleHQtYW5kLXBhc3N3b3JkLWlucHV0cy5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMTE5NSw2ICsxMTk3LDcgQEAKIAkJRTRBNzU3RDMxNzhBRUE1
QjAwQjVEN0E0IC8qIERlcXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERlcXVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRDOUFCQzcxQjNEQjE3MTAwNDBBOTg3IC8qIFJ1
bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzRkMzRUUyMTM2NzhCNzMwMDEyNkE2
NSAvKiBsaWJndGVzdC5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gYXJjaGl2ZS5hcjsgcGF0aCA9IGxpYmd0ZXN0LmE7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCUY0MTUwODZDMURBMDQwQzEwMDQ0QkU5QiAvKiBwbGF5LWF1
ZGlvLW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAicGxheS1hdWRp
by1vbi1jbGljay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQyREE1MTUx
RDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gImxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9h
ZC5odG1sIjsgcGF0aCA9ICJUZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtaW5wdXQtZmllbGQtZm9j
dXMtb25sb2FkLmh0bWwiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUY0RjEzNzkx
MUQ5QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGNDA1QkExRDRDMENGODAwN0E5
NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgt
YXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDkzLDYgKzE0OTYs
NyBAQAogCQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGNDE1MDg2QzFEQTA0MEMxMDA0
NEJFOUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sICovLAogCQkJCUY0RjEzNzkxMUQ5QjY4
MzIwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgKi8sCiAJCQkJ
MkU5ODk2MTQxRDhGMDkyQjAwNzM5ODkyIC8qIHRleHQtYW5kLXBhc3N3b3JkLWlucHV0cy5odG1s
ICovLAogCQkJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3Jv
bGxhYmxlLWRvY3VtZW50Lmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tCmluZGV4
IDNkYWI4ZWE2YmI2NGQxOTViZDIzYzgzMjE0NDM5YjBmMTQyNTYxNzIuLjM5YTAzNTQ5NmMyOGRk
YWQ3ZjI2MmFhM2RjYzhjMjhmODQ3MjFmMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1t
CkBAIC0zMTMsNiArMzEzLDQyIEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29u
dHJvbHNNYW5hZ2VyQXVkaW9FbGVtZW50U3RhcnRlZFdpdGhTY3JpcHQpCiAgICAgW3dlYlZpZXcg
ZXhwZWN0Q29udHJvbHNNYW5hZ2VyOk5PIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmci
XTsKIH0KIAorVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJB
dWRpb0VsZW1lbnRTdGFydGVkQnlJbnRlcmFjdGlvbikKK3sKKyAgICBSZXRhaW5QdHI8VmlkZW9D
b250cm9sc01hbmFnZXJUZXN0V2ViVmlldyo+IHdlYlZpZXcgPSBzZXRVcFdlYlZpZXdGb3JUZXN0
aW5nVmlkZW9Db250cm9sc01hbmFnZXIoTlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCkpOworCisg
ICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJwbGF5LWF1ZGlvLW9uLWNsaWNrIl07Cisg
ICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6MF07Cisg
ICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpOU01ha2VQb2ludCgyMDAsIDIwMCkgc2ltdWxh
dGVQcmVzc3VyZTpZRVNdOworCisgICAgLy8gQW4gYXVkaW8gZWxlbWVudCBNVVNUIGJlIHN0YXJ0
ZWQgd2l0aCBhIHVzZXIgZ2VzdHVyZSBpbiBvcmRlciB0byBoYXZlIGEgY29udHJvbHMgbWFuYWdl
ciwgc28gdGhlIGV4cGVjdGF0aW9uIGlzIFlFUy4KKyAgICBbd2ViVmlldyBleHBlY3RDb250cm9s
c01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmctZmlyc3QiXTsKKyAg
ICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgY29udHJvbGxlZEVsZW1lbnRJRF0gaXNFcXVhbFRvU3Ry
aW5nOkAiZmlyc3QiXSk7Cit9CisKK1RFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29u
dHJvbHNNYW5hZ2VyQXVkaW9FbGVtZW50Rm9sbG93aW5nVXNlckludGVyYWN0aW9uKQoreworICAg
IFJldGFpblB0cjxWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNl
dFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01ha2VSZWN0KDAsIDAs
IDQwMCwgNDAwKSk7CisKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAInBsYXktYXVk
aW8tb24tY2xpY2siXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxh
eWluZ1ZpZGVvczowXTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5TTWFrZVBvaW50
KDIwMCwgMjAwKSBzaW11bGF0ZVByZXNzdXJlOllFU107CisKKyAgICBbd2ViVmlldyBwZXJmb3Jt
QWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicGxheWluZy1maXJzdCIgYWN0aW9uOl4geworICAgICAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzZWVrVG9FbmQoKSIgY29tcGxldGlvbkhh
bmRsZXI6bmlsXTsKKyAgICB9XTsKKworICAgIF9fYmxvY2sgYm9vbCBzZWNvbmRBdWRpb1BsYXlp
bmcgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAi
cGxheWluZy1zZWNvbmQiIGFjdGlvbjpeIHsKKyAgICAgICAgc2Vjb25kQXVkaW9QbGF5aW5nID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlY29uZEF1ZGlv
UGxheWluZyk7CisgICAgd2hpbGUgKFtbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBydW5Nb2Rl
Ok5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dKSB7
CisgICAgICAgIGlmIChbd2ViVmlldyBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXJd
ICYmIFtbd2ViVmlldyBjb250cm9sbGVkRWxlbWVudElEXSBpc0VxdWFsVG9TdHJpbmc6QCJzZWNv
bmQiXSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogVEVTVChWaWRlb0NvbnRyb2xz
TWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJUZWFyc0Rvd25NZWRpYUNvbnRyb2xzT25EZWFs
bG9jKQogewogICAgIFJldGFpblB0cjxWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4g
d2ViVmlldyA9IHNldFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01h
a2VSZWN0KDAsIDAsIDEwMCwgMTAwKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9wbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9wbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDc3NjhhNjRlYzI5MzU1MWFmNWY3ZGY3ZGFmZDc5ODg4OWM2NmYxYQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3BsYXkt
YXVkaW8tb24tY2xpY2suaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBkaXYgeworICAgICAgICAgICAgd2lk
dGg6IDQwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgfQorICAgICAgICBib2R5IHsKKyAgICAgICAgICAg
IG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgdmFyIGF1ZGlvOworCisgICAgICAgIGZ1bmN0aW9uIHBsYXlGaXJzdFRyYWNrKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgYXVkaW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhdWRpbyIp
OworICAgICAgICAgICAgYXVkaW8uc3JjID0gInZpZGVvLXdpdGgtYXVkaW8ubXA0IjsKKyAgICAg
ICAgICAgIGF1ZGlvLmlkID0gImZpcnN0IjsKKyAgICAgICAgICAgIGF1ZGlvLm9ucGxheWluZyA9
IGF1ZGlvUGxheWluZ0hhbmRsZXIoImZpcnN0Iik7CisgICAgICAgICAgICBhdWRpby5vbmVuZGVk
ID0gcGxheVNlY29uZFRyYWNrOworICAgICAgICAgICAgYXVkaW8ucGxheSgpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcGxheVNlY29uZFRyYWNrKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgYXVkaW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhdWRpbyIpOworICAgICAgICAg
ICAgYXVkaW8uc3JjID0gImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IjsKKyAgICAgICAgICAg
IGF1ZGlvLmlkID0gInNlY29uZCI7CisgICAgICAgICAgICBhdWRpby5vbnBsYXlpbmcgPSBhdWRp
b1BsYXlpbmdIYW5kbGVyKCJzZWNvbmQiKTsKKyAgICAgICAgICAgIGF1ZGlvLnBsYXkoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNlZWtUb0VuZCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGF1ZGlvLmN1cnJlbnRUaW1lID0gYXVkaW8uZHVyYXRpb24gLSAwLjU7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBhdWRpb1BsYXlpbmdIYW5kbGVyKGlkKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsK
KyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmctIiArIGlkKTsKKyAgICAgICAgICAgICAgICB9IGNh
dGNoKGUpIHt9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxkaXYgb25tb3VzZWRvd249cGxheUZpcnN0VHJhY2soKT5DbGljayBt
ZSB0byBzdGFydCBwbGF5aW5nITwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oCmluZGV4IGVkNjkyMzk0MzgzODNmY2YyZWQz
YzU0ZWU2OGNiNDM4Y2Y0YTFkYzIuLjQ4OGM4ZmY0NjBiMzBmMjRhY2ExOWUwMGNmMDE1Mzk2Mzgy
Mzk3OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdN
YWMuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmgKQEAg
LTMxLDcgKzMxLDcgQEAKICNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpCiAKIEBp
bnRlcmZhY2UgVGVzdE1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhh
bmRsZXI+Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3Nh
Z2UgaGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCloYW5kbGVyOworLSAodm9pZClhZGRNZXNzYWdl
OihOU1N0cmluZyAqKW1lc3NhZ2Ugd2l0aEhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxl
cjsKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IDogV0tXZWJWaWV3CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQppbmRleCA0ZTE1NGVkNzc2MDFi
YTkzMzk1NWM4NjM2NDU1MDdmYmYwMWE2MTAxLi4wMGQyMzMzOTE4OWNjOTRlNzcyYWYxZmE5MmQz
ZDE1NTkyOTJlOTNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tX
ZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdN
YWMubW0KQEAgLTM3LDI1ICszNywyMiBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBA
aW1wbGVtZW50YXRpb24gVGVzdE1lc3NhZ2VIYW5kbGVyIHsKLSAgICBkaXNwYXRjaF9ibG9ja190
IF9oYW5kbGVyOwotICAgIE5TU3RyaW5nICpfbWVzc2FnZTsKKyAgICBOU011dGFibGVEaWN0aW9u
YXJ5PE5TU3RyaW5nICosIGRpc3BhdGNoX2Jsb2NrX3Q+ICpfbWVzc2FnZUhhbmRsZXJzOwogfQog
Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaGFu
ZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCloYW5kbGVyCistICh2b2lkKWFkZE1lc3NhZ2U6KE5TU3Ry
aW5nICopbWVzc2FnZSB3aXRoSGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCloYW5kbGVyCiB7Ci0g
ICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7CisgICAg
aWYgKCFfbWVzc2FnZUhhbmRsZXJzKQorICAgICAgICBfbWVzc2FnZUhhbmRsZXJzID0gW05TTXV0
YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CiAKLSAgICBfaGFuZGxlciA9IFtoYW5kbGVyIGNv
cHldOwotICAgIF9tZXNzYWdlID0gbWVzc2FnZTsKLQotICAgIHJldHVybiBzZWxmOworICAgIF9t
ZXNzYWdlSGFuZGxlcnNbbWVzc2FnZV0gPSBbaGFuZGxlciBjb3B5XTsKIH0KIAogLSAodm9pZCl1
c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRl
bnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKilt
ZXNzYWdlCiB7Ci0gICAgaWYgKFsoTlNTdHJpbmcgKilbbWVzc2FnZSBib2R5XSBpc0VxdWFsVG9T
dHJpbmc6X21lc3NhZ2VdICYmIF9oYW5kbGVyKQotICAgICAgICBfaGFuZGxlcigpOworICAgIGRp
c3BhdGNoX2Jsb2NrX3QgaGFuZGxlciA9IF9tZXNzYWdlSGFuZGxlcnNbbWVzc2FnZS5ib2R5XTsK
KyAgICBpZiAoaGFuZGxlcikKKyAgICAgICAgaGFuZGxlcigpOwogfQogCiBAZW5kCkBAIC0xNDAs
NiArMTM3LDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyB7CiAgICAg
VGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgKl9ob3N0V2luZG93OworICAgIFJldGFpblB0cjxUZXN0
TWVzc2FnZUhhbmRsZXI+IF90ZXN0SGFuZGxlcjsKIH0KIAogLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoRnJhbWU6KENHUmVjdClmcmFtZQpAQCAtMTcyLDEwICsxNzAsMTIgQEAgLSAodm9pZCltb3Vz
ZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxh
dGVQcmVzc3VyZQogCiAtICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3Ry
aW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCiB7Ci0gICAgUmV0
YWluUHRyPFRlc3RNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0TWVzc2Fn
ZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTptZXNzYWdlIGhhbmRsZXI6YWN0aW9uXSk7
Ci0gICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9sbGVyID0gW1tzZWxm
IGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07Ci0gICAgW2NvbnRlbnRDb250
cm9sbGVyIHJlbW92ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTpAInRlc3RIYW5kbGVyIl07
Ci0gICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIu
Z2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgaWYgKCFfdGVzdEhhbmRsZXIpIHsKKyAg
ICAgICAgX3Rlc3RIYW5kbGVyID0gYWRvcHROUyhbW1Rlc3RNZXNzYWdlSGFuZGxlciBhbGxvY10g
aW5pdF0pOworICAgICAgICBbW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJv
bGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6X3Rlc3RIYW5kbGVyLmdldCgpIG5hbWU6QCJ0
ZXN0SGFuZGxlciJdOworICAgIH0KKworICAgIFtfdGVzdEhhbmRsZXIgYWRkTWVzc2FnZTptZXNz
YWdlIHdpdGhIYW5kbGVyOmFjdGlvbl07CiB9CiAKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6
KE5TU3RyaW5nICopcGFnZU5hbWUKQEAgLTIyMyw3ICsyMjMsOSBAQCAtICh2b2lkKXdhaXRGb3JN
ZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UKIH0KIAogLSAodm9pZClwZXJmb3JtQWZ0ZXJMb2Fk
aW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnMgewotICAgIFRlc3RNZXNzYWdlSGFuZGxlciAq
aGFuZGxlciA9IFtbVGVzdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aE1lc3NhZ2U6QCJs
b2FkZWQiIGhhbmRsZXI6YWN0aW9uc107CisgICAgVGVzdE1lc3NhZ2VIYW5kbGVyICpoYW5kbGVy
ID0gW1tUZXN0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdOworICAgIFtoYW5kbGVyIGFkZE1l
c3NhZ2U6QCJsb2FkZWQiIHdpdGhIYW5kbGVyOmFjdGlvbnNdOworCiAgICAgTlNTdHJpbmcgKm9u
bG9hZFNjcmlwdCA9IEAid2luZG93Lm9ubG9hZCA9ICgpID0+IHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLm9ubG9hZEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2xvYWRlZCcpIjsKICAgICBXS1Vz
ZXJTY3JpcHQgKnNjcmlwdCA9IFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpv
bmxvYWRTY3JpcHQgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1
bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk9dOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>