<?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>27123</bug_id>
          
          <creation_ts>2009-07-09 10:26:35 -0700</creation_ts>
          <short_desc>Full page zoom breaks remaining and elapsed time display in the &lt;video&gt; controller.</short_desc>
          <delta_ts>2009-07-09 18:23:17 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Pierre d&apos;Herbemont">pdherbemont</reporter>
          <assigned_to name="Pierre d&apos;Herbemont">pdherbemont</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>130684</commentid>
    <comment_count>0</comment_count>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-09 10:26:35 -0700</bug_when>
    <thetext>Full page zoom breaks remaining and elapsed time display in the &lt;video&gt; controller.

&lt;rdar://problem/7045074&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130691</commentid>
    <comment_count>1</comment_count>
      <attachid>32524</attachid>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-09 11:20:01 -0700</bug_when>
    <thetext>Created attachment 32524
patch v1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130700</commentid>
    <comment_count>2</comment_count>
      <attachid>32524</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-09 12:34:39 -0700</bug_when>
    <thetext>Comment on attachment 32524
patch v1.


&gt;             Full page zoom breaks remaining and elapsed time display in the &amp;lt;video&amp;gt; controller.

No need to escape the &lt;&gt;


&gt; +    PassRefPtr&lt;RenderStyle&gt; style = styleForElement();
&gt;      if (!style)
&gt;          return;

This should be a RefPtr.

&gt;  
&gt; @@ -258,7 +258,7 @@ void MediaControlInputElement::update()
&gt;      updateStyle();
&gt;  }
&gt;  
&gt; -RenderStyle* MediaControlInputElement::styleForElement()
&gt; +PassRefPtr&lt;RenderStyle&gt; MediaControlInputElement::styleForElement()
&gt;  {
&gt;      return m_mediaElement-&gt;renderer()-&gt;getCachedPseudoStyle(m_pseudoStyleId);
&gt;  }

No need to change return type&gt;

&gt; @@ -270,17 +270,17 @@ bool MediaControlInputElement::rendererIsNeeded(RenderStyle* style)
&gt;  
&gt;  void MediaControlInputElement::attach()
&gt;  {
&gt; -    RenderStyle* style = styleForElement();
&gt; +    PassRefPtr&lt;RenderStyle&gt; style = styleForElement();

This should be a RefPtr

&gt;  void MediaControlTimeDisplayElement::setVisible(bool visible)
&gt;  {
&gt; +    // This function is used during the RenderMedia::layout()
&gt; +    // call, where we cannot change the renderer at this time.

&gt; +    if (visible == m_isVisible)
&gt; +        return;
&gt; +    m_isVisible = visible;
&gt; +    RefPtr&lt;RenderStyle&gt; style = styleForElement();
&gt; +    renderer()-&gt;setStyle(style.get());

But you are changing style here, which is not really a good thing to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130725</commentid>
    <comment_count>3</comment_count>
      <attachid>32531</attachid>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-09 14:27:14 -0700</bug_when>
    <thetext>Created attachment 32531
patch v2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130726</commentid>
    <comment_count>4</comment_count>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-09 14:29:31 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 32524 [details])
&gt; 
&gt; &gt;             Full page zoom breaks remaining and elapsed time display in the &amp;lt;video&amp;gt; controller.
&gt; 
&gt; No need to escape the &lt;&gt;

For some reason prepare-ChangeLog does it.

&gt; 
&gt; 
&gt; &gt; +    PassRefPtr&lt;RenderStyle&gt; style = styleForElement();
&gt; &gt;      if (!style)
&gt; &gt;          return;
&gt; 
&gt; This should be a RefPtr.

Bad search in replace, should be fixed.

&gt; 
&gt; &gt;  
&gt; &gt; @@ -258,7 +258,7 @@ void MediaControlInputElement::update()
&gt; &gt;      updateStyle();
&gt; &gt;  }
&gt; &gt;  
&gt; &gt; -RenderStyle* MediaControlInputElement::styleForElement()
&gt; &gt; +PassRefPtr&lt;RenderStyle&gt; MediaControlInputElement::styleForElement()
&gt; &gt;  {
&gt; &gt;      return m_mediaElement-&gt;renderer()-&gt;getCachedPseudoStyle(m_pseudoStyleId);
&gt; &gt;  }
&gt; 
&gt; No need to change return type&gt;

It&apos;s needed for the subclass override. (Which may clone a style)

&gt; 
&gt; &gt;  void MediaControlTimeDisplayElement::setVisible(bool visible)
&gt; &gt;  {
&gt; &gt; +    // This function is used during the RenderMedia::layout()
&gt; &gt; +    // call, where we cannot change the renderer at this time.
&gt; 
&gt; &gt; +    if (visible == m_isVisible)
&gt; &gt; +        return;
&gt; &gt; +    m_isVisible = visible;
&gt; &gt; +    RefPtr&lt;RenderStyle&gt; style = styleForElement();
&gt; &gt; +    renderer()-&gt;setStyle(style.get());
&gt; 
&gt; But you are changing style here, which is not really a good thing to do.

We agreed that this was OK even though not the proper solution in fact, given that previous implementation is doing in the end the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130728</commentid>
    <comment_count>5</comment_count>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-09 14:30:05 -0700</bug_when>
    <thetext>Closed for no reason - reopening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130737</commentid>
    <comment_count>6</comment_count>
      <attachid>32531</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-09 14:45:13 -0700</bug_when>
    <thetext>Comment on attachment 32531
patch v2.



&gt; +        We are changing the size of the time remaining and time ellapsed field, to

Typo: &quot;ellapsed&quot;

&gt; +        The following patch fixes that problem by using a cloned style on which we

&quot;This change&quot;, not &quot;The following patch&quot;, since the changelog needs to read well after you commit :)


&gt; +    RefPtr&lt;RenderStyle&gt; style = styleForElement();
&gt; +    renderer()-&gt;setStyle(style.get());

To reduce ref churn, you could just do

 renderer()-&gt;setStyle(styleForElement());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130796</commentid>
    <comment_count>7</comment_count>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-09 18:23:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/45687</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32524</attachid>
            <date>2009-07-09 11:20:01 -0700</date>
            <delta_ts>2009-07-09 14:27:14 -0700</delta_ts>
            <desc>patch v1.</desc>
            <filename>patch-v1.diff</filename>
            <type>text/plain</type>
            <size>19852</size>
            <attacher name="Pierre d&apos;Herbemont">pdherbemont</attacher>
            
              <data encoding="base64">Y29tbWl0IDcwZmI0YmVjMzA4MjFiMWQ2MmFhZWQ2MzZjYWU1OWI2NzRjNTViMzEKQXV0aG9yOiBQ
aWVycmUgZCdIZXJiZW1vbnQgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KRGF0ZTogICBUaHUgSnVs
IDkgMTE6MTk6MTkgMjAwOSAtMDcwMAoKICAgIFdlYkNvcmU6CiAgICAKICAgIDIwMDktMDctMDkg
IFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KICAgIAogICAgICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgICAgICAgICBGdWxsIHBh
Z2Ugem9vbSBicmVha3MgcmVtYWluaW5nIGFuZCBlbGFwc2VkIHRpbWUgZGlzcGxheSBpbiB0aGUg
PHZpZGVvPiBjb250cm9sbGVyLgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjcxMjMKICAgIAogICAgICAgICAgICBXZSBhcmUgY2hhbmdpbmcgdGhl
IHNpemUgb2YgdGhlIHRpbWUgcmVtYWluaW5nIGFuZCB0aW1lIGVsbGFwc2VkIGZpZWxkLCB0bwog
ICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGhpZGUgdGhlbSwgd2hlbiB0aGUgY29udHJvbGxlciBp
cyB0b28gc2hvcnQuCiAgICAKICAgICAgICAgICAgQmVjYXVzZSB3ZSB0b2dnbGUgdGhlIHNpemUg
YmV0d2VlbiAwIGFuZCB0aGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlCiAgICAgICAgICAgIGNvbnRy
b2xsZXIsIHdlIG1pc3MgYW55IHdpZHRoIGNoYW5nZSB0aGF0IG1heSBvY2N1ciBkdXJpbmcgZnVs
bCBwYWdlIHpvb20sCiAgICAgICAgICAgIGFuZCB3ZSBmYWlsIHRvIHJlc3RvcmUgYSBjb3JyZWN0
IHdpZHRoLgogICAgCiAgICAgICAgICAgIFRoZSBmb2xsb3dpbmcgcGF0Y2ggZml4ZXMgdGhhdCBw
cm9ibGVtIGJ5IHVzaW5nIGEgY2xvbmVkIHN0eWxlIG9uIHdoaWNoIHdlCiAgICAgICAgICAgIHNl
dCB0aGUgd2lkdGggdG8gMCwgYW5kIHJlc3RvcmluZyB0aGUgcHJldmlvdXMgc3R5bGUgd2hlbiBn
b2luZyBiYWNrIHRvCiAgICAgICAgICAgIHRoZSBub3JtYWwgd2lkdGguCiAgICAKICAgICAgICAg
ICAgV2UgdGFrZSBjYXJlIGFib3V0IHByb3Blcmx5IHVzaW5nIHRoZSBjbG9uZWQgc3R5bGUgb3Ig
dGhlIHBzZXVkbyBzdHlsZSwKICAgICAgICAgICAgYnkgb3ZlcnJpZGluZyBzdHlsZUZvckVsZW1l
bnQoKS4KICAgIAogICAgICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5j
cHA6CiAgICAgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xFbGVtZW50OjpzdHlsZUZvckVs
ZW1lbnQpOgogICAgICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRWxlbWVudDo6YXR0YWNo
KToKICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZVN0eWxl
KToKICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5bGVG
b3JFbGVtZW50KToKICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVu
dDo6YXR0YWNoKToKICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVu
dDo6dXBkYXRlU3R5bGUpOgogICAgICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZURp
c3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQpOgogICAgICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50OjpzdHlsZUZvckVsZW1l
bnQpOgogICAgICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50
OjpzZXRWaXNpYmxlKToKICAgICAgICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVu
dHMuaDoKICAgIAogICAgTGF5b3V0VGVzdHM6CiAgICAKICAgIDIwMDktMDctMDkgIFBpZXJyZSBk
J0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KICAgIAogICAgICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgICAgICAgICBGdWxsIHBhZ2Ugem9vbSBi
cmVha3MgcmVtYWluaW5nIGFuZCBlbGFwc2VkIHRpbWUgZGlzcGxheSBpbiB0aGUgJmx0O3ZpZGVv
Jmd0OyBjb250cm9sbGVyLgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjcxMjMKICAgIAogICAgICAgICAgICAqIG1lZGlhL3ZpZGVvLXpvb20tY29u
dHJvbHMuaHRtbDogUmVtb3ZlIGR1cGxpY2F0ZWQgY29kZS4KICAgICAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtbGVvcGFyZC9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpvb20tY29udHJv
bHMtZXhwZWN0ZWQudHh0LgogICAgICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9T
a2lwcGVkOgogICAgICAgICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRy
b2xzLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVkLiBUaGUgdGVzdCBpcyBub3QgcmVsaWFibGUg
Zm9yIHBpeGVsIHRlc3QuCiAgICAgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpv
b20tY29udHJvbHMtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgogICAgICAgICAgICAqIHBsYXRmb3Jt
L21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dDogVXBkYXRlZAoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAxMTU2OTBhLi4xMjY2OTVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDctMDkg
IFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGdWxsIHBhZ2Ugem9vbSBicmVh
a3MgcmVtYWluaW5nIGFuZCBlbGFwc2VkIHRpbWUgZGlzcGxheSBpbiB0aGUgJmx0O3ZpZGVvJmd0
OyBjb250cm9sbGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjcxMjMKKworICAgICAgICAqIG1lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRtbDog
UmVtb3ZlIGR1cGxpY2F0ZWQgY29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9t
ZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLmNoZWNrc3Vt
OiBSZW1vdmVkLiBUaGUgdGVzdCBpcyBub3QgcmVsaWFibGUgZm9yIHBpeGVsIHRlc3QuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMtZXhwZWN0ZWQucG5n
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRy
b2xzLWV4cGVjdGVkLnR4dDogVXBkYXRlZAorCiAyMDA5LTA3LTA4ICBQaWVycmUgZCdIZXJiZW1v
bnQgIDxwZGhlcmJlbW9udEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9s
cy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy5odG1sCmluZGV4
IGNkNjJmMGEuLjdlYzUxY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXpv
b20tY29udHJvbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby16b29tLWNvbnRy
b2xzLmh0bWwKQEAgLTEwLDI5ICsxMCw3IEBACiAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBy
b3RhdGUoMTBkZWcpOwogICAgICAgfQogICAgIDwvc3R5bGU+Ci0gICAgPHNjcmlwdD4KLSAgICAg
ICAgZnVuY3Rpb24gaW5pdCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0b3RhbENvdW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJykubGVuZ3RoOwotICAgICAg
ICAgICAgdmFyIGNvdW50ID0gdG90YWxDb3VudDsKLSAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImNhbnBsYXl0aHJvdWdoIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
ICAgIGlmICghLS1jb3VudCkgewotICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOyB9LCB0b3RhbENvdW50
ICogMTUwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LCB0cnVlKTsKLQotICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnRkFJTCcpKTsgCi0gICAg
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAg
ICAgICAgICAgICAgfSwgMTUwMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICA8L3Nj
cmlwdD4KLQorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby1wYWludC10ZXN0LmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5IG9ubG9hZD0iaW5pdCgpIj4KICAgICA8cD5ab29tZWQgdmlkZW8gd2l0
aCBjb250cm9scy48L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVv
cGFyZC9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1sZW9wYXJkL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZmE1NWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9tZWRpYS92aWRlby16
b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDEyLDEyKSBzaXplIDc3Nng1NDMK
KyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc3NngyOAorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODB4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAyODA6ICJab29tZWQgdmlkZW8gd2l0aCBjb250cm9scy4iCitsYXllciBh
dCAoNTcsODUpIHNpemUgMjQweDE4MAorICBSZW5kZXJWaWRlbyB7VklERU99IGF0ICg0NSw3Mykg
c2l6ZSAyNDB4MTgwCitsYXllciBhdCAoNTcsODUpIHNpemUgMjQweDE4MAorICBSZW5kZXJCbG9j
ayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAyNDB4MTgwCitsYXll
ciBhdCAoNTcsMjQxKSBzaXplIDI0MHgyNAorICBSZW5kZXJGbGV4aWJsZUJveCAocG9zaXRpb25l
ZCkge0RJVn0gYXQgKDAsMTU2KSBzaXplIDI0MHgyNAorICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9
IGF0ICgwLDApIHNpemUgMjR4MjQKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjQsMCkg
c2l6ZSAyNHgyNAorICAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg0OCwwKSBzaXplIDE0
NHgyNAorICAgICAgUmVuZGVyU2xpZGVyIHtJTlBVVH0gYXQgKDAsMCkgc2l6ZSAxNDR4MjQKKyAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDMsMSkgc2l6ZSAxOXgyMQorICAgIFJlbmRlckJ1
dHRvbiB7SU5QVVR9IGF0ICgxOTIsMCkgc2l6ZSAyNHgyNAorICAgIFJlbmRlckJ1dHRvbiB7SU5Q
VVR9IGF0ICgyMTYsMCkgc2l6ZSAyNHgyNAorbGF5ZXIgYXQgKDU3LDMxMCkgc2l6ZSAyNDB4MTgw
CisgIFJlbmRlclZpZGVvIHtWSURFT30gYXQgKDQ1LDI5OCkgc2l6ZSAyNDB4MTgwCitsYXllciBh
dCAoNTcsMzEwKSBzaXplIDI0MHgxODAKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9u
ZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMjQweDE4MAorbGF5ZXIgYXQgKDU3LDQ2Nikgc2l6ZSAy
NDB4MjQKKyAgUmVuZGVyRmxleGlibGVCb3ggKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDE1Nikg
c2l6ZSAyNDB4MjQKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMCwwKSBzaXplIDI0eDI0
CisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDI0LDApIHNpemUgMjR4MjQKKyAgICBSZW5k
ZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNDgsMCkgc2l6ZSAxNDR4MjQKKyAgICAgIFJlbmRlclNs
aWRlciB7SU5QVVR9IGF0ICgwLDApIHNpemUgMTQ0eDI0CisgICAgICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgzLDEpIHNpemUgMTl4MjEKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMTky
LDApIHNpemUgMjR4MjQKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjE2LDApIHNpemUg
MjR4MjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQKaW5k
ZXggNTBlN2VkYS4uOTJmYzIxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXNub3dsZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3ds
ZW9wYXJkL1NraXBwZWQKQEAgLTM1LDQgKzM1LDMgQEAgbWVkaWEvdmlkZW8tY29udHJvbHMtdHJh
bnNmb3JtZWQuaHRtbAogbWVkaWEvdmlkZW8tY29udHJvbHMtdmlzaWJsZS1hdWRpby1vbmx5Lmh0
bWwKIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sCiBtZWRpYS92aWRlby1kaXNwbGF5
LXRvZ2dsZS5odG1sCi1tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpvb20t
Y29udHJvbHMtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGI1ZDgxNWYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3Zp
ZGVvLXpvb20tY29udHJvbHMtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApAQCAtMSAr
MCwwIEBACi0xY2I3MWFhY2IxODViM2VjMWQ5NzRhNzRmMzgyYzI2MwpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92
aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDI1MGM1ZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC5wbmcgYW5k
IC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9t
ZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dAppbmRleCA2MmZh
NTViLi41Y2ZkYTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEv
dmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMtZXhwZWN0ZWQudHh0CkBAIC0xMCwyNSAr
MTAsNDMgQEAgbGF5ZXIgYXQgKDU3LDg1KSBzaXplIDI0MHgxODAKICAgUmVuZGVyVmlkZW8ge1ZJ
REVPfSBhdCAoNDUsNzMpIHNpemUgMjQweDE4MAogbGF5ZXIgYXQgKDU3LDg1KSBzaXplIDI0MHgx
ODAKICAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNp
emUgMjQweDE4MAotbGF5ZXIgYXQgKDU3LDI0MSkgc2l6ZSAyNDB4MjQKLSAgUmVuZGVyRmxleGli
bGVCb3ggKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDE1Nikgc2l6ZSAyNDB4MjQKLSAgICBSZW5k
ZXJCdXR0b24ge0lOUFVUfSBhdCAoMCwwKSBzaXplIDI0eDI0Ci0gICAgUmVuZGVyQnV0dG9uIHtJ
TlBVVH0gYXQgKDI0LDApIHNpemUgMjR4MjQKLSAgICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBh
dCAoNDgsMCkgc2l6ZSAxNDR4MjQKLSAgICAgIFJlbmRlclNsaWRlciB7SU5QVVR9IGF0ICgwLDAp
IHNpemUgMTQ0eDI0Ci0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgzLDEpIHNpemUgMTl4
MjEKLSAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMTkyLDApIHNpemUgMjR4MjQKLSAgICBS
ZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjE2LDApIHNpemUgMjR4MjQKK2xheWVyIGF0ICg1Nywy
MjgpIHNpemUgMjQweDM3CisgIFJlbmRlckZsZXhpYmxlQm94IChwb3NpdGlvbmVkKSB7RElWfSBh
dCAoMCwxNDMpIHNpemUgMjQweDM3CisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDEwLDYp
IHNpemUgMjR4MjQKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjA2LDYpIHNpemUgMjR4
MjQKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoNTQsNikgc2l6ZSAyNHgyNAorICAgIFJl
bmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg4OCw5KSBzaXplIDEwOHgxOQorICAgICAgUmVuZGVy
U2xpZGVyIHtJTlBVVH0gYXQgKDY3LDApIHNpemUgMHgxOQorICAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwzKSBzaXplIDE2eDEzCitsYXllciBhdCAoMTQ1LDIzNykgc2l6ZSA2N3gxOQor
ICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMCwwKSBzaXplIDY3eDE5CisgICAgUmVuZGVy
QmxvY2sgKGFub255bW91cykgYXQgKDEzLDEpIHNpemUgNDB4MTcKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQweDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDQwOiAiMDA6MDAiCitsYXllciBhdCAoMjEyLDIzNykgc2l6ZSA2N3gxOQorICBSZW5kZXJG
bGV4aWJsZUJveCB7RElWfSBhdCAoNjcsMCkgc2l6ZSA2N3gxOQorICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICg5LDEpIHNpemUgNDl4MTcKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDQ5eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ5OiAi
LTAwOjA2IgogbGF5ZXIgYXQgKDU3LDMxMCkgc2l6ZSAyNDB4MTgwCiAgIFJlbmRlclZpZGVvIHtW
SURFT30gYXQgKDQ1LDI5OCkgc2l6ZSAyNDB4MTgwCiBsYXllciBhdCAoNTcsMzEwKSBzaXplIDI0
MHgxODAKICAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDAp
IHNpemUgMjQweDE4MAotbGF5ZXIgYXQgKDU3LDQ2Nikgc2l6ZSAyNDB4MjQKLSAgUmVuZGVyRmxl
eGlibGVCb3ggKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDE1Nikgc2l6ZSAyNDB4MjQKLSAgICBS
ZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMCwwKSBzaXplIDI0eDI0Ci0gICAgUmVuZGVyQnV0dG9u
IHtJTlBVVH0gYXQgKDI0LDApIHNpemUgMjR4MjQKLSAgICBSZW5kZXJGbGV4aWJsZUJveCB7RElW
fSBhdCAoNDgsMCkgc2l6ZSAxNDR4MjQKLSAgICAgIFJlbmRlclNsaWRlciB7SU5QVVR9IGF0ICgw
LDApIHNpemUgMTQ0eDI0Ci0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgzLDEpIHNpemUg
MTl4MjEKLSAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMTkyLDApIHNpemUgMjR4MjQKLSAg
ICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjE2LDApIHNpemUgMjR4MjQKK2xheWVyIGF0ICg1
Nyw0NTMpIHNpemUgMjQweDM3CisgIFJlbmRlckZsZXhpYmxlQm94IChwb3NpdGlvbmVkKSB7RElW
fSBhdCAoMCwxNDMpIHNpemUgMjQweDM3CisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDEw
LDYpIHNpemUgMjR4MjQKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjA2LDYpIHNpemUg
MjR4MjQKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoNTQsNikgc2l6ZSAyNHgyNAorICAg
IFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg4OCw5KSBzaXplIDEwOHgxOQorICAgICAgUmVu
ZGVyU2xpZGVyIHtJTlBVVH0gYXQgKDY3LDApIHNpemUgMHgxOQorICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwzKSBzaXplIDE2eDEzCitsYXllciBhdCAoMTQ1LDQ2Mikgc2l6ZSA2N3gx
OQorICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMCwwKSBzaXplIDY3eDE5CisgICAgUmVu
ZGVyQmxvY2sgKGFub255bW91cykgYXQgKDEzLDEpIHNpemUgNDB4MTcKKyAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQweDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDQwOiAiMDA6MDAiCitsYXllciBhdCAoMjEyLDQ2Mikgc2l6ZSA2N3gxOQorICBSZW5k
ZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNjcsMCkgc2l6ZSA2N3gxOQorICAgIFJlbmRlckJsb2Nr
IChhbm9ueW1vdXMpIGF0ICg5LDEpIHNpemUgNDl4MTcKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDQ5eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ5
OiAiLTAwOjA2IgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBhMWYxMGY4Li45YzY2NjU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDA5LTA3LTA5ICBQ
aWVycmUgZCdIZXJiZW1vbnQgIDxwZGhlcmJlbW9udEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnVsbCBwYWdlIHpvb20gYnJlYWtz
IHJlbWFpbmluZyBhbmQgZWxhcHNlZCB0aW1lIGRpc3BsYXkgaW4gdGhlIDx2aWRlbz4gY29udHJv
bGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3
MTIzCisKKyAgICAgICAgV2UgYXJlIGNoYW5naW5nIHRoZSBzaXplIG9mIHRoZSB0aW1lIHJlbWFp
bmluZyBhbmQgdGltZSBlbGxhcHNlZCBmaWVsZCwgdG8KKyAgICAgICAgYXV0b21hdGljYWxseSBo
aWRlIHRoZW0sIHdoZW4gdGhlIGNvbnRyb2xsZXIgaXMgdG9vIHNob3J0LgorCisgICAgICAgIEJl
Y2F1c2Ugd2UgdG9nZ2xlIHRoZSBzaXplIGJldHdlZW4gMCBhbmQgdGhlIHByZXZpb3VzIHZhbHVl
IG9mIHRoZQorICAgICAgICBjb250cm9sbGVyLCB3ZSBtaXNzIGFueSB3aWR0aCBjaGFuZ2UgdGhh
dCBtYXkgb2NjdXIgZHVyaW5nIGZ1bGwgcGFnZSB6b29tLAorICAgICAgICBhbmQgd2UgZmFpbCB0
byByZXN0b3JlIGEgY29ycmVjdCB3aWR0aC4KKworICAgICAgICBUaGUgZm9sbG93aW5nIHBhdGNo
IGZpeGVzIHRoYXQgcHJvYmxlbSBieSB1c2luZyBhIGNsb25lZCBzdHlsZSBvbiB3aGljaCB3ZQor
ICAgICAgICBzZXQgdGhlIHdpZHRoIHRvIDAsIGFuZCByZXN0b3JpbmcgdGhlIHByZXZpb3VzIHN0
eWxlIHdoZW4gZ29pbmcgYmFjayB0bworICAgICAgICB0aGUgbm9ybWFsIHdpZHRoLgorCisgICAg
ICAgIFdlIHRha2UgY2FyZSBhYm91dCBwcm9wZXJseSB1c2luZyB0aGUgY2xvbmVkIHN0eWxlIG9y
IHRoZSBwc2V1ZG8gc3R5bGUsCisgICAgICAgIGJ5IG92ZXJyaWRpbmcgc3R5bGVGb3JFbGVtZW50
KCkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVTdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnVwZGF0ZVN0eWxlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGlt
ZURpc3BsYXlFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVEaXNw
bGF5RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6c2V0VmlzaWJsZSk6CisgICAgICAgICogcmVuZGVyaW5n
L01lZGlhQ29udHJvbEVsZW1lbnRzLmg6CisKIDIwMDktMDctMDggIFBpZXJyZSBkJ0hlcmJlbW9u
dCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXgg
NDYxZjIzZS4uNDZmYWI5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEVsZW1lbnQ6OnVwZGF0
ZSgpCiAgICAgdXBkYXRlU3R5bGUoKTsKIH0KIAotUmVuZGVyU3R5bGUqIE1lZGlhQ29udHJvbEVs
ZW1lbnQ6OnN0eWxlRm9yRWxlbWVudCgpCitQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBNZWRpYUNv
bnRyb2xFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQoKQogewogICAgIFJlbmRlclN0eWxlKiBzdHls
ZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3Bz
ZXVkb1N0eWxlSWQpOwogICAgIGlmICghc3R5bGUpCkBAIC0xMTksMTYgKzExOSwxNiBAQCBib29s
IE1lZGlhQ29udHJvbEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxl
KQogICAgIAogdm9pZCBNZWRpYUNvbnRyb2xFbGVtZW50OjphdHRhY2goKQogewotICAgIFJlbmRl
clN0eWxlKiBzdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgpOworICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gc3R5bGUgPSBzdHlsZUZvckVsZW1lbnQoKTsKICAgICBpZiAoIXN0eWxlKQogICAgICAgICBy
ZXR1cm47Ci0gICAgYm9vbCBuZWVkc1JlbmRlcmVyID0gcmVuZGVyZXJJc05lZWRlZChzdHlsZSk7
CisgICAgYm9vbCBuZWVkc1JlbmRlcmVyID0gcmVuZGVyZXJJc05lZWRlZChzdHlsZS5nZXQoKSk7
CiAgICAgaWYgKCFuZWVkc1JlbmRlcmVyKQogICAgICAgICByZXR1cm47Ci0gICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGNyZWF0ZVJlbmRlcmVyKG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigp
LT5yZW5kZXJBcmVuYSgpLCBzdHlsZSk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNy
ZWF0ZVJlbmRlcmVyKG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5yZW5kZXJBcmVuYSgpLCBz
dHlsZS5nZXQoKSk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwotICAgIHJl
bmRlcmVyLT5zZXRTdHlsZShzdHlsZSk7CisgICAgcmVuZGVyZXItPnNldFN0eWxlKHN0eWxlLmdl
dCgpKTsKICAgICBzZXRSZW5kZXJlcihyZW5kZXJlcik7CiAgICAgaWYgKHBhcmVudCgpICYmIHBh
cmVudCgpLT5yZW5kZXJlcigpKSB7CiAgICAgICAgIC8vIEZpbmQgbmV4dCBzaWJsaW5nIHdpdGgg
YSByZW5kZXJlciB0byBkZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0LgpAQCAtMTQ1LDIxICsxNDUs
MjEgQEAgdm9pZCBNZWRpYUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVTdHlsZSgpCiAgICAgaWYgKCFt
X21lZGlhRWxlbWVudCB8fCAhbV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgpOworICAg
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVGb3JFbGVtZW50KCk7CiAgICAg
aWYgKCFzdHlsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBuZWVkc1JlbmRlcmVyID0g
cmVuZGVyZXJJc05lZWRlZChzdHlsZSkgJiYgcGFyZW50KCkgJiYgcGFyZW50KCktPnJlbmRlcmVy
KCk7CisgICAgYm9vbCBuZWVkc1JlbmRlcmVyID0gcmVuZGVyZXJJc05lZWRlZChzdHlsZS5nZXQo
KSkgJiYgcGFyZW50KCkgJiYgcGFyZW50KCktPnJlbmRlcmVyKCk7CiAgICAgaWYgKHJlbmRlcmVy
KCkgJiYgIW5lZWRzUmVuZGVyZXIpCiAgICAgICAgIGRldGFjaCgpOwogICAgIGVsc2UgaWYgKCFy
ZW5kZXJlcigpICYmIG5lZWRzUmVuZGVyZXIpCiAgICAgICAgIGF0dGFjaCgpOwogICAgIGVsc2Ug
aWYgKHJlbmRlcmVyKCkpIHsKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUoc3R5bGUpOwor
ICAgICAgICByZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiAKICAgICAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgaWYgdGhlcmUgaXMgYW55IGlubmVyVGV4dCByZW5kZXJlciwgaXQgaXMg
dXBkYXRlZCBhcyB3ZWxsLgogICAgICAgICBpZiAoZmlyc3RDaGlsZCgpICYmIGZpcnN0Q2hpbGQo
KS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIGZpcnN0Q2hpbGQoKS0+cmVuZGVyZXIoKS0+c2V0
U3R5bGUoc3R5bGUpOworICAgICAgICAgICAgZmlyc3RDaGlsZCgpLT5yZW5kZXJlcigpLT5zZXRT
dHlsZShzdHlsZS5nZXQoKSk7CiAgICAgfQogfQogCkBAIC0yNTgsNyArMjU4LDcgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnVwZGF0ZSgpCiAgICAgdXBkYXRlU3R5bGUoKTsKIH0K
IAotUmVuZGVyU3R5bGUqIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50
KCkKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c3R5
bGVGb3JFbGVtZW50KCkKIHsKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkt
PmdldENhY2hlZFBzZXVkb1N0eWxlKG1fcHNldWRvU3R5bGVJZCk7CiB9CkBAIC0yNzAsMTcgKzI3
MCwxNyBAQCBib29sIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChS
ZW5kZXJTdHlsZSogc3R5bGUpCiAKIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjphdHRh
Y2goKQogewotICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgpOworICAg
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVGb3JFbGVtZW50KCk7CiAgICAg
aWYgKCFzdHlsZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGJvb2wgbmVlZHNSZW5kZXJl
ciA9IHJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOworICAgIGJvb2wgbmVlZHNSZW5kZXJlciA9IHJl
bmRlcmVySXNOZWVkZWQoc3R5bGUuZ2V0KCkpOwogICAgIGlmICghbmVlZHNSZW5kZXJlcikKICAg
ICAgICAgcmV0dXJuOwotICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJl
cihtX21lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+cmVuZGVyQXJlbmEoKSwgc3R5bGUpOworICAg
IFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcihtX21lZGlhRWxlbWVudC0+
cmVuZGVyZXIoKS0+cmVuZGVyQXJlbmEoKSwgc3R5bGUuZ2V0KCkpOwogICAgIGlmICghcmVuZGVy
ZXIpCiAgICAgICAgIHJldHVybjsKLSAgICByZW5kZXJlci0+c2V0U3R5bGUoc3R5bGUpOworICAg
IHJlbmRlcmVyLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiAgICAgc2V0UmVuZGVyZXIocmVuZGVy
ZXIpOwogICAgIGlmIChwYXJlbnQoKSAmJiBwYXJlbnQoKS0+cmVuZGVyZXIoKSkgewogICAgICAg
ICAvLyBGaW5kIG5leHQgc2libGluZyB3aXRoIGEgcmVuZGVyZXIgdG8gZGV0ZXJtaW5lIHdoZXJl
IHRvIGluc2VydC4KQEAgLTI5NywxNyArMjk3LDE3IEBAIHZvaWQgTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50Ojp1cGRhdGVTdHlsZSgpCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCB8fCAhbV9tZWRp
YUVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBSZW5kZXJT
dHlsZSogc3R5bGUgPSBzdHlsZUZvckVsZW1lbnQoKTsKKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBzdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgpOwogICAgIGlmICghc3R5bGUpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBib29sIG5lZWRzUmVuZGVyZXIgPSByZW5kZXJlcklzTmVlZGVk
KHN0eWxlKSAmJiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+cmVuZGVyZXIoKTsKKyAgICBib29sIG5l
ZWRzUmVuZGVyZXIgPSByZW5kZXJlcklzTmVlZGVkKHN0eWxlLmdldCgpKSAmJiBwYXJlbnQoKSAm
JiBwYXJlbnQoKS0+cmVuZGVyZXIoKTsKICAgICBpZiAocmVuZGVyZXIoKSAmJiAhbmVlZHNSZW5k
ZXJlcikKICAgICAgICAgZGV0YWNoKCk7CiAgICAgZWxzZSBpZiAoIXJlbmRlcmVyKCkgJiYgbmVl
ZHNSZW5kZXJlcikKICAgICAgICAgYXR0YWNoKCk7CiAgICAgZWxzZSBpZiAocmVuZGVyZXIoKSkK
LSAgICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUoc3R5bGUpOworICAgICAgICByZW5kZXJlcigp
LT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiB9CiAgICAgCiBib29sIE1lZGlhQ29udHJvbElucHV0
RWxlbWVudDo6aGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpCkBAIC01MjQsMjMgKzUy
NCwzMiBAQCBib29sIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKIAogTWVkaWFDb250cm9sVGltZURpc3BsYXlF
bGVtZW50OjpNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqIGRvYywgUHNl
dWRvSWQgcHNldWRvLCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQogICAgIDogTWVkaWFDb250
cm9sRWxlbWVudChkb2MsIHBzZXVkbywgZWxlbWVudCkKLSAgICAsIG1fY2FjaGVkV2lkdGgoTGVu
Z3RoKDAsIEZpeGVkKSkKKyAgICAsIG1faXNWaXNpYmxlKHRydWUpCiB7CiB9CiAKK1Bhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6c3R5bGVGb3JF
bGVtZW50KCkKK3sKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gTWVkaWFDb250cm9s
RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KCk7CisgICAgaWYgKCFtX2lzVmlzaWJsZSkgeworICAg
ICAgICBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZShzdHlsZS5nZXQoKSk7CisgICAgICAgIHN0
eWxlLT5zZXRXaWR0aChMZW5ndGgoMCwgRml4ZWQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN0eWxl
OworfQorCiB2b2lkIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6c2V0VmlzaWJsZShi
b29sIHZpc2libGUpCiB7CisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGR1cmluZyB0aGUg
UmVuZGVyTWVkaWE6OmxheW91dCgpCisgICAgLy8gY2FsbCwgd2hlcmUgd2UgY2Fubm90IGNoYW5n
ZSB0aGUgcmVuZGVyZXIgYXQgdGhpcyB0aW1lLgogICAgIGlmICghcmVuZGVyZXIoKSB8fCAhcmVu
ZGVyZXIoKS0+c3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX2NhY2hlZFdp
ZHRoLnZhbHVlKCkpIHsKLSAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbV9tZWRpYUVsZW1l
bnQtPnJlbmRlcmVyKCktPmdldENhY2hlZFBzZXVkb1N0eWxlKG1fcHNldWRvU3R5bGVJZCk7Ci0g
ICAgICAgIGlmICghc3R5bGUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fY2FjaGVk
V2lkdGggPSBzdHlsZS0+d2lkdGgoKTsKLSAgICB9Ci0KLSAgICByZW5kZXJlcigpLT5zdHlsZSgp
LT5zZXRXaWR0aCh2aXNpYmxlID8gbV9jYWNoZWRXaWR0aCA6IExlbmd0aCgwLCBGaXhlZCkpOwor
ICAgIGlmICh2aXNpYmxlID09IG1faXNWaXNpYmxlKQorICAgICAgICByZXR1cm47CisgICAgbV9p
c1Zpc2libGUgPSB2aXNpYmxlOworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHls
ZUZvckVsZW1lbnQoKTsKKyAgICByZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiB9
CiAKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggNjYzM2Fl
NC4uZGZkZThlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxl
bWVudHMuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBA
IC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAgICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKIAotICAgIFJlbmRl
clN0eWxlKiBzdHlsZUZvckVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IHN0eWxlRm9yRWxlbWVudCgpOwogICAgIHZvaWQgYXR0YWNoVG9QYXJlbnQoRWxlbWVu
dCopOwogICAgIHZvaWQgdXBkYXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0eWxlKCk7
CkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsK
ICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopOwogCi0gICAg
UmVuZGVyU3R5bGUqIHN0eWxlRm9yRWxlbWVudCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50KCk7CiAgICAgdm9pZCBhdHRhY2hUb1BhcmVudChF
bGVtZW50Kik7CiAgICAgdm9pZCB1cGRhdGUoKTsKICAgICB2b2lkIHVwZGF0ZVN0eWxlKCk7CkBA
IC0yMTMsOCArMjEzLDEwIEBAIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudCA6
IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKICAgICBNZWRpYUNvbnRyb2xU
aW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqLCBQc2V1ZG9JZCwgSFRNTE1lZGlhRWxlbWVudCop
OwogICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudCgpOworCiBwcml2YXRlOgotICAgIExlbmd0aCBtX2Nh
Y2hlZFdpZHRoOworICAgIGJvb2wgbV9pc1Zpc2libGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCg==
</data>
<flag name="review"
          id="16947"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32531</attachid>
            <date>2009-07-09 14:27:14 -0700</date>
            <delta_ts>2009-07-09 14:45:13 -0700</delta_ts>
            <desc>patch v2.</desc>
            <filename>patch-v2.diff</filename>
            <type>text/plain</type>
            <size>19935</size>
            <attacher name="Pierre d&apos;Herbemont">pdherbemont</attacher>
            
              <data encoding="base64">Y29tbWl0IDA5OWJkMWY2Y2Y3MTRmOWE0ZDU4OTQ1ZTkzNjE1ZmIwMDdhYWM3MTcKQXV0aG9yOiBQ
aWVycmUgZCdIZXJiZW1vbnQgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KRGF0ZTogICBUaHUgSnVs
IDkgMTE6MTk6MTkgMjAwOSAtMDcwMAoKICAgIFdlYkNvcmU6CiAgICAKICAgIDIwMDktMDctMDkg
IFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KICAgIAogICAgICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCiAgICAKICAgICAgICAgICAgRnVsbCBwYWdl
IHpvb20gYnJlYWtzIHJlbWFpbmluZyBhbmQgZWxhcHNlZCB0aW1lIGRpc3BsYXkgaW4gdGhlIDx2
aWRlbz4gY29udHJvbGxlci4KICAgICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3MTIzCiAgICAKICAgICAgICAgICAgV2UgYXJlIGNoYW5naW5nIHRoZSBz
aXplIG9mIHRoZSB0aW1lIHJlbWFpbmluZyBhbmQgdGltZSBlbGxhcHNlZCBmaWVsZCwgdG8KICAg
ICAgICAgICAgYXV0b21hdGljYWxseSBoaWRlIHRoZW0sIHdoZW4gdGhlIGNvbnRyb2xsZXIgaXMg
dG9vIHNob3J0LgogICAgCiAgICAgICAgICAgIEJlY2F1c2Ugd2UgdG9nZ2xlIHRoZSBzaXplIGJl
dHdlZW4gMCBhbmQgdGhlIHByZXZpb3VzIHZhbHVlIG9mIHRoZQogICAgICAgICAgICBjb250cm9s
bGVyLCB3ZSBtaXNzIGFueSB3aWR0aCBjaGFuZ2UgdGhhdCBtYXkgb2NjdXIgZHVyaW5nIGZ1bGwg
cGFnZSB6b29tLAogICAgICAgICAgICBhbmQgd2UgZmFpbCB0byByZXN0b3JlIGEgY29ycmVjdCB3
aWR0aC4KICAgIAogICAgICAgICAgICBUaGUgZm9sbG93aW5nIHBhdGNoIGZpeGVzIHRoYXQgcHJv
YmxlbSBieSB1c2luZyBhIGNsb25lZCBzdHlsZSBvbiB3aGljaCB3ZQogICAgICAgICAgICBzZXQg
dGhlIHdpZHRoIHRvIDAsIGFuZCByZXN0b3JpbmcgdGhlIHByZXZpb3VzIHN0eWxlIHdoZW4gZ29p
bmcgYmFjayB0bwogICAgICAgICAgICB0aGUgbm9ybWFsIHdpZHRoLgogICAgCiAgICAgICAgICAg
IFdlIHRha2UgY2FyZSBhYm91dCBwcm9wZXJseSB1c2luZyB0aGUgY2xvbmVkIHN0eWxlIG9yIHRo
ZSBwc2V1ZG8gc3R5bGUsCiAgICAgICAgICAgIGJ5IG92ZXJyaWRpbmcgc3R5bGVGb3JFbGVtZW50
KCkuCiAgICAKICAgICAgICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
OgogICAgICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRWxlbWVudDo6c3R5bGVGb3JFbGVt
ZW50KToKICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEVsZW1lbnQ6OmF0dGFjaCk6
CiAgICAgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVTdHlsZSk6
CiAgICAgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnN0eWxlRm9y
RWxlbWVudCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6
OmF0dGFjaCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6
OnVwZGF0ZVN0eWxlKToKICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVEaXNw
bGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50KToKICAgICAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50
KToKICAgICAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6
c2V0VmlzaWJsZSk6CiAgICAgICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRz
Lmg6CiAgICAgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcDoKICAgICAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck1lZGlhOjpzaG91bGRTaG93VGltZURpc3BsYXlDb250cm9scyk6IE1h
a2UKICAgICAgICAgICAgc3VyZSB3ZSB0YWtlIGluIGFjY291bnQgdGhlIHpvb20gbGV2ZWwgd2hl
biBkZWNpZGluZyBpZiB3ZSBzaG91bGQKICAgICAgICAgICAgaGlkZSB0aGUgZWxsYXBzZWQgYW5k
IHJlbWFpbmluZyB0aW1lLgogICAgCiAgICBMYXlvdXRUZXN0czoKICAgIAogICAgMjAwOS0wNy0w
OSAgUGllcnJlIGQnSGVyYmVtb250ICA8cGRoZXJiZW1vbnRAYXBwbGUuY29tPgogICAgCiAgICAg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KICAgIAogICAgICAgICAgICBGdWxsIHBh
Z2Ugem9vbSBicmVha3MgcmVtYWluaW5nIGFuZCBlbGFwc2VkIHRpbWUgZGlzcGxheSBpbiB0aGUg
Jmx0O3ZpZGVvJmd0OyBjb250cm9sbGVyLgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcxMjMKICAgIAogICAgICAgICAgICAqIG1lZGlhL3ZpZGVv
LXpvb20tY29udHJvbHMuaHRtbDogUmVtb3ZlIGR1cGxpY2F0ZWQgY29kZS4KICAgICAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVk
LnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpv
b20tY29udHJvbHMtZXhwZWN0ZWQudHh0LgogICAgICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93
bGVvcGFyZC9Ta2lwcGVkOgogICAgICAgICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS92aWRlby16
b29tLWNvbnRyb2xzLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVkLiBUaGUgdGVzdCBpcyBub3Qg
cmVsaWFibGUgZm9yIHBpeGVsIHRlc3QuCiAgICAgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlh
L3ZpZGVvLXpvb20tY29udHJvbHMtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgogICAgICAgICAgICAq
IHBsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dDogVXBk
YXRlZAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAxMTU2OTBhLi41OTY4YzcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MDktMDctMDkgIFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgRnVsbCBwYWdlIHpv
b20gYnJlYWtzIHJlbWFpbmluZyBhbmQgZWxhcHNlZCB0aW1lIGRpc3BsYXkgaW4gdGhlCisgICAg
ICAgIDx2aWRlbz4gY29udHJvbGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI3MTIzCisKKyAgICAgICAgKiBtZWRpYS92aWRlby16b29tLWNvbnRy
b2xzLmh0bWw6IFJlbW92ZSBkdXBsaWNhdGVkIGNvZGUuCisgICAgICAgICogcGxhdGZvcm0vbWFj
LWxlb3BhcmQvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC50eHQ6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3Rl
ZC5jaGVja3N1bTogUmVtb3ZlZC4gVGhlIHRlc3QgaXMgbm90IHJlbGlhYmxlIGZvciBwaXhlbCB0
ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4
cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8t
em9vbS1jb250cm9scy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQKKwogMjAwOS0wNy0wOCAgUGllcnJl
IGQnSGVyYmVtb250ICA8cGRoZXJiZW1vbnRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXpv
b20tY29udHJvbHMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMu
aHRtbAppbmRleCBjZDYyZjBhLi43ZWM1MWNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS92aWRlby16b29tLWNvbnRyb2xzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
em9vbS1jb250cm9scy5odG1sCkBAIC0xMCwyOSArMTAsNyBAQAogICAgICAgICAtd2Via2l0LXRy
YW5zZm9ybTogcm90YXRlKDEwZGVnKTsKICAgICAgIH0KICAgICA8L3N0eWxlPgotICAgIDxzY3Jp
cHQ+Ci0gICAgICAgIGZ1bmN0aW9uIGluaXQoKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIg
dG90YWxDb3VudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpLmxlbmd0
aDsKLSAgICAgICAgICAgIHZhciBjb3VudCA9IHRvdGFsQ291bnQ7Ci0gICAgICAgICAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjYW5wbGF5dGhyb3VnaCIsIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIS0tY291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsgfSwg
dG90YWxDb3VudCAqIDE1MCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwgdHJ1
ZSk7Ci0KLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAg
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgCi0gICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0ZBSUwn
KSk7IAotICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOwotICAgICAgICAgICAgICAgIH0sIDE1MDApOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgPC9zY3JpcHQ+Ci0KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tcGFpbnQtdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CiAgICAgPHA+Wm9vbWVk
IHZpZGVvIHdpdGggY29udHJvbHMuPC9wPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9tZWRpYS92aWRlby16b29tLWNvbnRyb2xz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmZhNTVi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvbWVk
aWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNCBAQAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICgxMiwxMikgc2l6
ZSA3NzZ4NTQzCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3NzZ4MjgKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjgweDI4CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjgwOiAiWm9vbWVkIHZpZGVvIHdpdGggY29udHJvbHMu
IgorbGF5ZXIgYXQgKDU3LDg1KSBzaXplIDI0MHgxODAKKyAgUmVuZGVyVmlkZW8ge1ZJREVPfSBh
dCAoNDUsNzMpIHNpemUgMjQweDE4MAorbGF5ZXIgYXQgKDU3LDg1KSBzaXplIDI0MHgxODAKKyAg
UmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMjQw
eDE4MAorbGF5ZXIgYXQgKDU3LDI0MSkgc2l6ZSAyNDB4MjQKKyAgUmVuZGVyRmxleGlibGVCb3gg
KHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDE1Nikgc2l6ZSAyNDB4MjQKKyAgICBSZW5kZXJCdXR0
b24ge0lOUFVUfSBhdCAoMCwwKSBzaXplIDI0eDI0CisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0g
YXQgKDI0LDApIHNpemUgMjR4MjQKKyAgICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNDgs
MCkgc2l6ZSAxNDR4MjQKKyAgICAgIFJlbmRlclNsaWRlciB7SU5QVVR9IGF0ICgwLDApIHNpemUg
MTQ0eDI0CisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgzLDEpIHNpemUgMTl4MjEKKyAg
ICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMTkyLDApIHNpemUgMjR4MjQKKyAgICBSZW5kZXJC
dXR0b24ge0lOUFVUfSBhdCAoMjE2LDApIHNpemUgMjR4MjQKK2xheWVyIGF0ICg1NywzMTApIHNp
emUgMjQweDE4MAorICBSZW5kZXJWaWRlbyB7VklERU99IGF0ICg0NSwyOTgpIHNpemUgMjQweDE4
MAorbGF5ZXIgYXQgKDU3LDMxMCkgc2l6ZSAyNDB4MTgwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2
ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDI0MHgxODAKK2xheWVyIGF0ICg1Nyw0
NjYpIHNpemUgMjQweDI0CisgIFJlbmRlckZsZXhpYmxlQm94IChwb3NpdGlvbmVkKSB7RElWfSBh
dCAoMCwxNTYpIHNpemUgMjQweDI0CisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDAsMCkg
c2l6ZSAyNHgyNAorICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9IGF0ICgyNCwwKSBzaXplIDI0eDI0
CisgICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDQ4LDApIHNpemUgMTQ0eDI0CisgICAg
ICBSZW5kZXJTbGlkZXIge0lOUFVUfSBhdCAoMCwwKSBzaXplIDE0NHgyNAorICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMywxKSBzaXplIDE5eDIxCisgICAgUmVuZGVyQnV0dG9uIHtJTlBV
VH0gYXQgKDE5MiwwKSBzaXplIDI0eDI0CisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDIx
NiwwKSBzaXplIDI0eDI0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25v
d2xlb3BhcmQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9T
a2lwcGVkCmluZGV4IDUwZTdlZGEuLjkyZmMyMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCkBAIC0zNSw0ICszNSwzIEBAIG1lZGlhL3ZpZGVvLWNv
bnRyb2xzLXRyYW5zZm9ybWVkLmh0bWwKIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXZpc2libGUtYXVk
aW8tb25seS5odG1sCiBtZWRpYS92aWRlby1jb250cm9scy16b29tZWQuaHRtbAogbWVkaWEvdmlk
ZW8tZGlzcGxheS10b2dnbGUuaHRtbAotbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1jb250
cm9scy1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS92
aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiNWQ4MTVmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotMWNiNzFhYWNiMTg1YjNlYzFkOTc0YTc0ZjM4MmMyNjMKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC5wbmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyNTBjNWUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMtZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy1leHBlY3RlZC50eHQK
aW5kZXggNjJmYTU1Yi4uYmUyOGVmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9tZWRpYS92aWRlby16b29tLWNvbnRyb2xzLWV4cGVjdGVkLnR4dApA
QCAtMTAsMjUgKzEwLDIzIEBAIGxheWVyIGF0ICg1Nyw4NSkgc2l6ZSAyNDB4MTgwCiAgIFJlbmRl
clZpZGVvIHtWSURFT30gYXQgKDQ1LDczKSBzaXplIDI0MHgxODAKIGxheWVyIGF0ICg1Nyw4NSkg
c2l6ZSAyNDB4MTgwCiAgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBh
dCAoMCwwKSBzaXplIDI0MHgxODAKLWxheWVyIGF0ICg1NywyNDEpIHNpemUgMjQweDI0Ci0gIFJl
bmRlckZsZXhpYmxlQm94IChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwxNTYpIHNpemUgMjQweDI0
Ci0gICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDAsMCkgc2l6ZSAyNHgyNAotICAgIFJlbmRl
ckJ1dHRvbiB7SU5QVVR9IGF0ICgyNCwwKSBzaXplIDI0eDI0Ci0gICAgUmVuZGVyRmxleGlibGVC
b3gge0RJVn0gYXQgKDQ4LDApIHNpemUgMTQ0eDI0Ci0gICAgICBSZW5kZXJTbGlkZXIge0lOUFVU
fSBhdCAoMCwwKSBzaXplIDE0NHgyNAotICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMywx
KSBzaXplIDE5eDIxCi0gICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDE5MiwwKSBzaXplIDI0
eDI0Ci0gICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDIxNiwwKSBzaXplIDI0eDI0CitsYXll
ciBhdCAoNTcsMjI4KSBzaXplIDI0MHgzNworICBSZW5kZXJGbGV4aWJsZUJveCAocG9zaXRpb25l
ZCkge0RJVn0gYXQgKDAsMTQzKSBzaXplIDI0MHgzNworICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9
IGF0ICgxMCw2KSBzaXplIDI0eDI0CisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDIwNiw2
KSBzaXplIDI0eDI0CisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDU0LDYpIHNpemUgMjR4
MjQKKyAgICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoODgsOSkgc2l6ZSAxMDh4MTkKKyAg
ICAgIFJlbmRlclNsaWRlciB7SU5QVVR9IGF0ICgwLDApIHNpemUgMTA4eDE5CisgICAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDkpIHNpemUgMHgwCiBsYXllciBhdCAoNTcsMzEwKSBzaXpl
IDI0MHgxODAKICAgUmVuZGVyVmlkZW8ge1ZJREVPfSBhdCAoNDUsMjk4KSBzaXplIDI0MHgxODAK
IGxheWVyIGF0ICg1NywzMTApIHNpemUgMjQweDE4MAogICBSZW5kZXJCbG9jayAocmVsYXRpdmUg
cG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAyNDB4MTgwCi1sYXllciBhdCAoNTcsNDY2
KSBzaXplIDI0MHgyNAotICBSZW5kZXJGbGV4aWJsZUJveCAocG9zaXRpb25lZCkge0RJVn0gYXQg
KDAsMTU2KSBzaXplIDI0MHgyNAotICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9IGF0ICgwLDApIHNp
emUgMjR4MjQKLSAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMjQsMCkgc2l6ZSAyNHgyNAot
ICAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg0OCwwKSBzaXplIDE0NHgyNAotICAgICAg
UmVuZGVyU2xpZGVyIHtJTlBVVH0gYXQgKDAsMCkgc2l6ZSAxNDR4MjQKLSAgICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDMsMSkgc2l6ZSAxOXgyMQotICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9
IGF0ICgxOTIsMCkgc2l6ZSAyNHgyNAotICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9IGF0ICgyMTYs
MCkgc2l6ZSAyNHgyNAorbGF5ZXIgYXQgKDU3LDQ1Mykgc2l6ZSAyNDB4MzcKKyAgUmVuZGVyRmxl
eGlibGVCb3ggKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDE0Mykgc2l6ZSAyNDB4MzcKKyAgICBS
ZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMTAsNikgc2l6ZSAyNHgyNAorICAgIFJlbmRlckJ1dHRv
biB7SU5QVVR9IGF0ICgyMDYsNikgc2l6ZSAyNHgyNAorICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9
IGF0ICg1NCw2KSBzaXplIDI0eDI0CisgICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDg4
LDkpIHNpemUgMTA4eDE5CisgICAgICBSZW5kZXJTbGlkZXIge0lOUFVUfSBhdCAoMCwwKSBzaXpl
IDEwOHgxOQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw5KSBzaXplIDB4MApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMWYx
MGY4Li5jYjU4MmFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDA5LTA3LTA5ICBQaWVycmUgZCdIZXJiZW1v
bnQgIDxwZGhlcmJlbW9udEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgorCisgICAgICAgIEZ1bGwgcGFnZSB6b29tIGJyZWFrcyByZW1haW5pbmcgYW5kIGVs
YXBzZWQgdGltZSBkaXNwbGF5IGluIHRoZSA8dmlkZW8+IGNvbnRyb2xsZXIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzEyMworCisgICAgICAgIFdl
IGFyZSBjaGFuZ2luZyB0aGUgc2l6ZSBvZiB0aGUgdGltZSByZW1haW5pbmcgYW5kIHRpbWUgZWxs
YXBzZWQgZmllbGQsIHRvCisgICAgICAgIGF1dG9tYXRpY2FsbHkgaGlkZSB0aGVtLCB3aGVuIHRo
ZSBjb250cm9sbGVyIGlzIHRvbyBzaG9ydC4KKworICAgICAgICBCZWNhdXNlIHdlIHRvZ2dsZSB0
aGUgc2l6ZSBiZXR3ZWVuIDAgYW5kIHRoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUKKyAgICAgICAg
Y29udHJvbGxlciwgd2UgbWlzcyBhbnkgd2lkdGggY2hhbmdlIHRoYXQgbWF5IG9jY3VyIGR1cmlu
ZyBmdWxsIHBhZ2Ugem9vbSwKKyAgICAgICAgYW5kIHdlIGZhaWwgdG8gcmVzdG9yZSBhIGNvcnJl
Y3Qgd2lkdGguCisKKyAgICAgICAgVGhlIGZvbGxvd2luZyBwYXRjaCBmaXhlcyB0aGF0IHByb2Js
ZW0gYnkgdXNpbmcgYSBjbG9uZWQgc3R5bGUgb24gd2hpY2ggd2UKKyAgICAgICAgc2V0IHRoZSB3
aWR0aCB0byAwLCBhbmQgcmVzdG9yaW5nIHRoZSBwcmV2aW91cyBzdHlsZSB3aGVuIGdvaW5nIGJh
Y2sgdG8KKyAgICAgICAgdGhlIG5vcm1hbCB3aWR0aC4KKworICAgICAgICBXZSB0YWtlIGNhcmUg
YWJvdXQgcHJvcGVybHkgdXNpbmcgdGhlIGNsb25lZCBzdHlsZSBvciB0aGUgcHNldWRvIHN0eWxl
LAorICAgICAgICBieSBvdmVycmlkaW5nIHN0eWxlRm9yRWxlbWVudCgpLgorCisgICAgICAgICog
cmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbEVsZW1lbnQ6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sRWxlbWVudDo6dXBkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
SW5wdXRFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sSW5wdXRFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sSW5wdXRFbGVtZW50Ojp1cGRhdGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ6OnN0eWxl
Rm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVs
ZW1lbnQ6OnNldFZpc2libGUpOgorICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJNZWRpYTo6c2hvdWxkU2hvd1RpbWVEaXNwbGF5Q29udHJvbHMpOiBNYWtl
IHN1cmUKKyAgICAgICAgd2UgdGFrZSBpbiBhY2NvdW50IHRoZSB6b29tIGxldmVsIHdoZW4gZGVj
aWRpbmcgaWYgd2Ugc2hvdWxkIGhpZGUgdGhlIAorICAgICAgICBlbGxhcHNlZCBhbmQgcmVtYWlu
aW5nIHRpbWUuCisKIDIwMDktMDctMDggIFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9XZWJDb3Jl
L3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNDYxZjIzZS4uNzg0YTlm
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtOTgs
NyArOTgsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZSgpCiAgICAgdXBkYXRl
U3R5bGUoKTsKIH0KIAotUmVuZGVyU3R5bGUqIE1lZGlhQ29udHJvbEVsZW1lbnQ6OnN0eWxlRm9y
RWxlbWVudCgpCitQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBNZWRpYUNvbnRyb2xFbGVtZW50Ojpz
dHlsZUZvckVsZW1lbnQoKQogewogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVt
ZW50LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOwog
ICAgIGlmICghc3R5bGUpCkBAIC0xMTksMTYgKzExOSwxNiBAQCBib29sIE1lZGlhQ29udHJvbEVs
ZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIAogdm9pZCBN
ZWRpYUNvbnRyb2xFbGVtZW50OjphdHRhY2goKQogewotICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9
IHN0eWxlRm9yRWxlbWVudCgpOworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHls
ZUZvckVsZW1lbnQoKTsKICAgICBpZiAoIXN0eWxlKQogICAgICAgICByZXR1cm47Ci0gICAgYm9v
bCBuZWVkc1JlbmRlcmVyID0gcmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CisgICAgYm9vbCBuZWVk
c1JlbmRlcmVyID0gcmVuZGVyZXJJc05lZWRlZChzdHlsZS5nZXQoKSk7CiAgICAgaWYgKCFuZWVk
c1JlbmRlcmVyKQogICAgICAgICByZXR1cm47Ci0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IGNyZWF0ZVJlbmRlcmVyKG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5yZW5kZXJBcmVuYSgp
LCBzdHlsZSk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNyZWF0ZVJlbmRlcmVyKG1f
bWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5yZW5kZXJBcmVuYSgpLCBzdHlsZS5nZXQoKSk7CiAg
ICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwotICAgIHJlbmRlcmVyLT5zZXRTdHls
ZShzdHlsZSk7CisgICAgcmVuZGVyZXItPnNldFN0eWxlKHN0eWxlLmdldCgpKTsKICAgICBzZXRS
ZW5kZXJlcihyZW5kZXJlcik7CiAgICAgaWYgKHBhcmVudCgpICYmIHBhcmVudCgpLT5yZW5kZXJl
cigpKSB7CiAgICAgICAgIC8vIEZpbmQgbmV4dCBzaWJsaW5nIHdpdGggYSByZW5kZXJlciB0byBk
ZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0LgpAQCAtMTQ1LDIxICsxNDUsMjEgQEAgdm9pZCBNZWRp
YUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVTdHlsZSgpCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCB8
fCAhbV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJl
bmRlclN0eWxlKiBzdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgpOworICAgIFJlZlB0cjxSZW5kZXJT
dHlsZT4gc3R5bGUgPSBzdHlsZUZvckVsZW1lbnQoKTsKICAgICBpZiAoIXN0eWxlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBib29sIG5lZWRzUmVuZGVyZXIgPSByZW5kZXJlcklzTmVlZGVkKHN0
eWxlKSAmJiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+cmVuZGVyZXIoKTsKKyAgICBib29sIG5lZWRz
UmVuZGVyZXIgPSByZW5kZXJlcklzTmVlZGVkKHN0eWxlLmdldCgpKSAmJiBwYXJlbnQoKSAmJiBw
YXJlbnQoKS0+cmVuZGVyZXIoKTsKICAgICBpZiAocmVuZGVyZXIoKSAmJiAhbmVlZHNSZW5kZXJl
cikKICAgICAgICAgZGV0YWNoKCk7CiAgICAgZWxzZSBpZiAoIXJlbmRlcmVyKCkgJiYgbmVlZHNS
ZW5kZXJlcikKICAgICAgICAgYXR0YWNoKCk7CiAgICAgZWxzZSBpZiAocmVuZGVyZXIoKSkgewot
ICAgICAgICByZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZSk7CisgICAgICAgIHJlbmRlcmVyKCkt
PnNldFN0eWxlKHN0eWxlLmdldCgpKTsKIAogICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBpZiB0
aGVyZSBpcyBhbnkgaW5uZXJUZXh0IHJlbmRlcmVyLCBpdCBpcyB1cGRhdGVkIGFzIHdlbGwuCiAg
ICAgICAgIGlmIChmaXJzdENoaWxkKCkgJiYgZmlyc3RDaGlsZCgpLT5yZW5kZXJlcigpKQotICAg
ICAgICAgICAgZmlyc3RDaGlsZCgpLT5yZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZSk7CisgICAg
ICAgICAgICBmaXJzdENoaWxkKCktPnJlbmRlcmVyKCktPnNldFN0eWxlKHN0eWxlLmdldCgpKTsK
ICAgICB9CiB9CiAKQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIE1lZGlhQ29udHJvbElucHV0RWxl
bWVudDo6dXBkYXRlKCkKICAgICB1cGRhdGVTdHlsZSgpOwogfQogCi1SZW5kZXJTdHlsZSogTWVk
aWFDb250cm9sSW5wdXRFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQoKQorUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQoKQogewog
ICAgIHJldHVybiBtX21lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+Z2V0Q2FjaGVkUHNldWRvU3R5
bGUobV9wc2V1ZG9TdHlsZUlkKTsKIH0KQEAgLTI3MCwxNyArMjcwLDE3IEBAIGJvb2wgTWVkaWFD
b250cm9sSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkK
IAogdm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OmF0dGFjaCgpCiB7Ci0gICAgUmVuZGVy
U3R5bGUqIHN0eWxlID0gc3R5bGVGb3JFbGVtZW50KCk7CisgICAgUmVmUHRyPFJlbmRlclN0eWxl
PiBzdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgpOwogICAgIGlmICghc3R5bGUpCiAgICAgICAgIHJl
dHVybjsKICAgICAKLSAgICBib29sIG5lZWRzUmVuZGVyZXIgPSByZW5kZXJlcklzTmVlZGVkKHN0
eWxlKTsKKyAgICBib29sIG5lZWRzUmVuZGVyZXIgPSByZW5kZXJlcklzTmVlZGVkKHN0eWxlLmdl
dCgpKTsKICAgICBpZiAoIW5lZWRzUmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKLSAgICBSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyID0gY3JlYXRlUmVuZGVyZXIobV9tZWRpYUVsZW1lbnQtPnJlbmRl
cmVyKCktPnJlbmRlckFyZW5hKCksIHN0eWxlKTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
ID0gY3JlYXRlUmVuZGVyZXIobV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPnJlbmRlckFyZW5h
KCksIHN0eWxlLmdldCgpKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm47Ci0g
ICAgcmVuZGVyZXItPnNldFN0eWxlKHN0eWxlKTsKKyAgICByZW5kZXJlci0+c2V0U3R5bGUoc3R5
bGUuZ2V0KCkpOwogICAgIHNldFJlbmRlcmVyKHJlbmRlcmVyKTsKICAgICBpZiAocGFyZW50KCkg
JiYgcGFyZW50KCktPnJlbmRlcmVyKCkpIHsKICAgICAgICAgLy8gRmluZCBuZXh0IHNpYmxpbmcg
d2l0aCBhIHJlbmRlcmVyIHRvIGRldGVybWluZSB3aGVyZSB0byBpbnNlcnQuCkBAIC0yOTcsMTcg
KzI5NywxNyBAQCB2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUoKQog
ICAgIGlmICghbV9tZWRpYUVsZW1lbnQgfHwgIW1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpKQog
ICAgICAgICByZXR1cm47CiAgICAgCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gc3R5bGVGb3JF
bGVtZW50KCk7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IHN0eWxlRm9yRWxlbWVu
dCgpOwogICAgIGlmICghc3R5bGUpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBib29sIG5l
ZWRzUmVuZGVyZXIgPSByZW5kZXJlcklzTmVlZGVkKHN0eWxlKSAmJiBwYXJlbnQoKSAmJiBwYXJl
bnQoKS0+cmVuZGVyZXIoKTsKKyAgICBib29sIG5lZWRzUmVuZGVyZXIgPSByZW5kZXJlcklzTmVl
ZGVkKHN0eWxlLmdldCgpKSAmJiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+cmVuZGVyZXIoKTsKICAg
ICBpZiAocmVuZGVyZXIoKSAmJiAhbmVlZHNSZW5kZXJlcikKICAgICAgICAgZGV0YWNoKCk7CiAg
ICAgZWxzZSBpZiAoIXJlbmRlcmVyKCkgJiYgbmVlZHNSZW5kZXJlcikKICAgICAgICAgYXR0YWNo
KCk7CiAgICAgZWxzZSBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5
bGUoc3R5bGUpOworICAgICAgICByZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiB9
CiAgICAgCiBib29sIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6aGl0VGVzdChjb25zdCBJbnRQ
b2ludCYgYWJzUG9pbnQpCkBAIC01MjQsMjMgKzUyNCwzMiBAQCBib29sIE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5CdXR0b25FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHls
ZSkKIAogTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xUaW1lRGlz
cGxheUVsZW1lbnQoRG9jdW1lbnQqIGRvYywgUHNldWRvSWQgcHNldWRvLCBIVE1MTWVkaWFFbGVt
ZW50KiBlbGVtZW50KQogICAgIDogTWVkaWFDb250cm9sRWxlbWVudChkb2MsIHBzZXVkbywgZWxl
bWVudCkKLSAgICAsIG1fY2FjaGVkV2lkdGgoTGVuZ3RoKDAsIEZpeGVkKSkKKyAgICAsIG1faXNW
aXNpYmxlKHRydWUpCiB7CiB9CiAKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE1lZGlhQ29udHJv
bFRpbWVEaXNwbGF5RWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KCkKK3sKKyAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlID0gTWVkaWFDb250cm9sRWxlbWVudDo6c3R5bGVGb3JFbGVtZW50KCk7
CisgICAgaWYgKCFtX2lzVmlzaWJsZSkgeworICAgICAgICBzdHlsZSA9IFJlbmRlclN0eWxlOjpj
bG9uZShzdHlsZS5nZXQoKSk7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoMCwgRml4
ZWQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN0eWxlOworfQorCiB2b2lkIE1lZGlhQ29udHJvbFRp
bWVEaXNwbGF5RWxlbWVudDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCiB7CisgICAgLy8gVGhp
cyBmdW5jdGlvbiBpcyB1c2VkIGR1cmluZyB0aGUgUmVuZGVyTWVkaWE6OmxheW91dCgpCisgICAg
Ly8gY2FsbCwgd2hlcmUgd2UgY2Fubm90IGNoYW5nZSB0aGUgcmVuZGVyZXIgYXQgdGhpcyB0aW1l
LgogICAgIGlmICghcmVuZGVyZXIoKSB8fCAhcmVuZGVyZXIoKS0+c3R5bGUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKCFtX2NhY2hlZFdpZHRoLnZhbHVlKCkpIHsKLSAgICAgICAgUmVu
ZGVyU3R5bGUqIHN0eWxlID0gbV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmdldENhY2hlZFBz
ZXVkb1N0eWxlKG1fcHNldWRvU3R5bGVJZCk7Ci0gICAgICAgIGlmICghc3R5bGUpCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIG1fY2FjaGVkV2lkdGggPSBzdHlsZS0+d2lkdGgoKTsKLSAg
ICB9Ci0KLSAgICByZW5kZXJlcigpLT5zdHlsZSgpLT5zZXRXaWR0aCh2aXNpYmxlID8gbV9jYWNo
ZWRXaWR0aCA6IExlbmd0aCgwLCBGaXhlZCkpOworICAgIGlmICh2aXNpYmxlID09IG1faXNWaXNp
YmxlKQorICAgICAgICByZXR1cm47CisgICAgbV9pc1Zpc2libGUgPSB2aXNpYmxlOworICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHlsZUZvckVsZW1lbnQoKTsKKyAgICByZW5kZXJl
cigpLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlh
Q29udHJvbEVsZW1lbnRzLmgKaW5kZXggNjYzM2FlNC4uZGZkZThlMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVk
ZWQoUmVuZGVyU3R5bGUqKTsKIAotICAgIFJlbmRlclN0eWxlKiBzdHlsZUZvckVsZW1lbnQoKTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudCgpOwog
ICAgIHZvaWQgYXR0YWNoVG9QYXJlbnQoRWxlbWVudCopOwogICAgIHZvaWQgdXBkYXRlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0eWxlKCk7CkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChSZW5kZXJTdHlsZSopOwogCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlRm9yRWxlbWVu
dCgpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50
KCk7CiAgICAgdm9pZCBhdHRhY2hUb1BhcmVudChFbGVtZW50Kik7CiAgICAgdm9pZCB1cGRhdGUo
KTsKICAgICB2b2lkIHVwZGF0ZVN0eWxlKCk7CkBAIC0yMTMsOCArMjEzLDEwIEBAIGNsYXNzIE1l
ZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50
IHsKIHB1YmxpYzoKICAgICBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQq
LCBQc2V1ZG9JZCwgSFRNTE1lZGlhRWxlbWVudCopOwogICAgIHZvaWQgc2V0VmlzaWJsZShib29s
KTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudCgp
OworCiBwcml2YXRlOgotICAgIExlbmd0aCBtX2NhY2hlZFdpZHRoOworICAgIGJvb2wgbV9pc1Zp
c2libGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYS5jcHAKaW5kZXggY2IzNmEwZC4uZDBkZTQwOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lZGlhLmNwcApAQCAtNTMwLDcgKzUzMCw3IEBAIGJvb2wgUmVuZGVyTWVkaWE6OnNob3VsZFNo
b3dUaW1lRGlzcGxheUNvbnRyb2xzKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgaW50IHdpZHRoID0gbWVkaWFFbGVtZW50KCktPnJlbmRlckJveCgpLT53aWR0aCgpOwotICAg
IHJldHVybiB3aWR0aCA+PSBtaW5XaWR0aFRvRGlzcGxheVRpbWVEaXNwbGF5czsKKyAgICByZXR1
cm4gd2lkdGggPj0gbWluV2lkdGhUb0Rpc3BsYXlUaW1lRGlzcGxheXMgKiBzdHlsZSgpLT5lZmZl
Y3RpdmVab29tKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="16953"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>