<?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>78385</bug_id>
          
          <creation_ts>2012-02-10 13:58:46 -0800</creation_ts>
          <short_desc>REGRESSION(r105057): Dynamically changing &lt;tspan&gt; offsets is broken</short_desc>
          <delta_ts>2022-07-14 14:32:56 -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>SVG</component>
          <version>528+ (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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>adele</cc>
    
    <cc>amesbielenberg</cc>
    
    <cc>claudio.squarcella</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>mitz</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>554369</commentid>
    <comment_count>0</comment_count>
      <attachid>126577</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-10 13:58:46 -0800</bug_when>
    <thetext>Created attachment 126577
repro

After 105057, you can no longer change the x attribute of &lt;tspan&gt; (unless you&apos;re in an onload handler).

Attaching a simple repro.

&lt;rdar://problem/10832932&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554502</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-10 16:47:05 -0800</bug_when>
    <thetext>It looks like we&apos;re never clearing m_textPositions (never hitting clearTextPositioningElements()?) so we never end up at fillCharacterDataMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554516</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-10 17:24:30 -0800</bug_when>
    <thetext>I have a very simple patch, I just have to make sure it doesn&apos;t break anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554528</commentid>
    <comment_count>3</comment_count>
      <attachid>126611</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-10 18:06:22 -0800</bug_when>
    <thetext>Created attachment 126611
patch

Will need baselines for other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554543</commentid>
    <comment_count>4</comment_count>
      <attachid>126611</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 18:55:05 -0800</bug_when>
    <thetext>Comment on attachment 126611
patch

Attachment 126611 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11447955

New failing tests:
svg/text/tspan-dynamic-positioning.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554677</commentid>
    <comment_count>5</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-02-11 13:16:10 -0800</bug_when>
    <thetext>*** Bug 78015 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554721</commentid>
    <comment_count>6</comment_count>
      <attachid>126611</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-11 15:41:28 -0800</bug_when>
    <thetext>Comment on attachment 126611
patch

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

Thanks Tim for your quick investigation! That saved me a lot time, as I could easily grasp the problem:

&gt; LayoutTests/svg/text/tspan-dynamic-positioning.svg:1
&gt; +&lt;svg onload=&quot;load()&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; width=&quot;600&quot; height=&quot;500&quot;&gt;

Pixel tests should use layoutTestController.display() now, see eg. bug 77736.
Please import fast/repaint/resources/repaint.js, and attach &lt;svg onload=&quot;runRepaintTest()&quot;.

&gt; LayoutTests/svg/text/tspan-dynamic-positioning.svg:5
&gt; +        function move()

s/move/repaintTest/ - which gets invoked by runRepaintTest, once if finished layout and an initial paint, which is what you want here.

&gt; LayoutTests/svg/text/tspan-dynamic-positioning.svg:11
&gt; +            if (window.layoutTestController)
&gt; +                layoutTestController.notifyDone();

This is then unnecessary.

&gt; LayoutTests/svg/text/tspan-dynamic-positioning.svg:19
&gt; +        function load()
&gt; +        {
&gt; +            if (window.layoutTestController)
&gt; +                layoutTestController.waitUntilDone();
&gt; +            setTimeout(move, 0);
&gt; +        }

Ditto, can be removed as well - also it gives you the nice gray overlay rect, so we can really be sure that repainting worked :-)
Please always use this for future tests, and tell anyone to do so.

&gt; Source/WebCore/ChangeLog:13
&gt; +        Test: svg/text/tspan-dynamic-positioning.svg.

Trailing period.

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:220
&gt; +        m_layoutAttributesBuilder.clearTextPositioningElements();

While this works for sure, it would regress performance. The text positioning elements cache should only ever change when textDOMChanged() gets called.
We only need to invalidate the text positioning elements list, if a) the text length of any RenderSVGInlineText changes b) the &lt;text&gt; DOM subtree mutates in some way. This is already captured correctly, and we have tests covering that.

When reading through the code, I just realized that buildLayoutAttributesIfNeeded is wrong. It shouldn&apos;t early exit if m_textPositions is not empty, we still need to call buildLayoutAttributes!
The only thing we can save is the collectTextPositioningElements and thus a full walk of the SVG &lt;text&gt; subtree - - we just forgot to layout in that case.

A shame, we didn&apos;t have a test yet covering just that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555402</commentid>
    <comment_count>7</comment_count>
      <attachid>126799</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-13 11:17:58 -0800</bug_when>
    <thetext>Created attachment 126799
new patch

I like the repaint test helper! I had used .display() before, I&apos;d just kind of forgotten about it. If that&apos;s what we&apos;re to use, I&apos;ll keep that in mind.

The rest of your comments make sense; here&apos;s a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555443</commentid>
    <comment_count>8</comment_count>
      <attachid>126799</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 12:07:12 -0800</bug_when>
    <thetext>Comment on attachment 126799
new patch

Attachment 126799 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11507906

New failing tests:
svg/text/tspan-dynamic-positioning.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557592</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-15 14:54:31 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; The rest of your comments make sense; here&apos;s a new patch.
Thanks a lot, please don&apos;t forget to mark the test as IMAGE(+TEXT, not sure?) in platform/chromium/test_expectations.txt, as that keeps their bot green, until it&apos;s rebaselined. (I was told that&apos;s the most polite way..)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557593</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-15 14:55:45 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; The rest of your comments make sense; here&apos;s a new patch.
&gt; Thanks a lot, please don&apos;t forget to mark the test as IMAGE(+TEXT, not sure?) in platform/chromium/test_expectations.txt, as that keeps their bot green, until it&apos;s rebaselined. (I was told that&apos;s the most polite way..)

Is that what we&apos;re supposed to do? I&apos;ve never gotten a clear and consistent answer on that point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557612</commentid>
    <comment_count>11</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-02-15 15:09:29 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; The rest of your comments make sense; here&apos;s a new patch.
&gt; &gt; Thanks a lot, please don&apos;t forget to mark the test as IMAGE(+TEXT, not sure?) in platform/chromium/test_expectations.txt, as that keeps their bot green, until it&apos;s rebaselined. (I was told that&apos;s the most polite way..)
&gt; 
&gt; Is that what we&apos;re supposed to do? I&apos;ve never gotten a clear and consistent answer on that point.

Well that&apos;s the purpose of the cr-linux bot running tests - you can immediately see that cr-linux is red, if you don&apos;t touch the expectations. I hope we&apos;ll all switch to expectations file at some point...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557620</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-15 15:12:59 -0800</bug_when>
    <thetext>&gt; Is that what we&apos;re supposed to do? I&apos;ve never gotten a clear and consistent answer on that point.

Yes.  It&apos;s also helpful if you follow through, either by landing the correct baselines yourself or by letting the current gardener that they&apos;ll need to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557776</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-15 17:36:45 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Is that what we&apos;re supposed to do? I&apos;ve never gotten a clear and consistent answer on that point.
&gt; 
&gt; Yes.  It&apos;s also helpful if you follow through, either by landing the correct baselines yourself or by letting the current gardener that they&apos;ll need to do that.

This is a new test, it doesn&apos;t have any baselines yet. Is that still the thing to do? If yes, it seems like everything could be a bit smarter in the new-test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557781</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-15 17:51:39 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/107862</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558356</commentid>
    <comment_count>15</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-16 11:16:50 -0800</bug_when>
    <thetext>I&apos;ve landed new Chromium baselines in http://trac.webkit.org/changeset/107958</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1883812</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-07-14 14:32:56 -0700</bug_when>
    <thetext>*** Bug 78376 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>126577</attachid>
            <date>2012-02-10 13:58:46 -0800</date>
            <delta_ts>2012-02-10 13:58:46 -0800</delta_ts>
            <desc>repro</desc>
            <filename>tspan-position-changes.svg</filename>
            <type>image/svg+xml</type>
            <size>436</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PHN2ZyBvbmxvYWQ9Im1vdmUoKSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2
ZXJzaW9uPSIxLjEiIHdpZHRoPSIxMDAwIiBoZWlnaHQ9IjUwMCI+CiAgICA8dGV4dCB5PSIxMDAi
Pjx0c3BhbiBpZD0idHMiIHg9IjAiPlRoaXMgdGV4dCBzaG91bGQgYmUgZ2xpZGluZyBhY3Jvc3Mg
dGhlIHNjcmVlbiEhPC90c3Bhbj48L3RleHQ+CiAgICA8c2NyaXB0PgogICAgICAgIHZhciB4ID0g
NTA7CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gbW92ZSgpCiAgICAgICAgewogICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHMiKS5zZXRBdHRyaWJ1dGUoIngiLCB4KTsKICAg
ICAgICAgICAgeCArPSAxOwogICAgICAgICAgICAKICAgICAgICAgICAgc2V0VGltZW91dChtb3Zl
LCAwKTsKICAgICAgICB9CiAgICA8L3NjcmlwdD4KPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126611</attachid>
            <date>2012-02-10 18:06:22 -0800</date>
            <delta_ts>2012-02-13 11:17:58 -0800</delta_ts>
            <desc>patch</desc>
            <filename>tspan-dynamic-positioning.patch</filename>
            <type>text/plain</type>
            <size>10054</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZGFhNTdkLi5mZTZkZWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDIt
MTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMTA1MDU3KTogRHluYW1pY2FsbHkgY2hhbmdpbmcgPHRzcGFuPiBvZmZzZXRzIGlz
IGJyb2tlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzgzODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwODMyOTMyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZW5zdXJpbmcgdGhh
dCBjaGFuZ2luZyB0aGUgb2Zmc2V0IG9mIGEgPHRzcGFuPiBwb3N0LWxvYWQgcmVzdWx0cyBpbiBj
b3JyZWN0IGxheW91dC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvdGV4dC90c3Bhbi1k
eW5hbWljLXBvc2l0aW9uaW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL3N2Zy90ZXh0L3RzcGFuLWR5bmFtaWMtcG9zaXRpb25pbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvdGV4dC90c3Bhbi1keW5hbWljLXBvc2l0aW9uaW5nLnN2Zzog
QWRkZWQuCisKIDIwMTItMDItMDggIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAog
ICAgICAgICB2aWV3Qm94IG9uIG5lc3RlZCBTVkcgY2F1c2VzIHdyb25nIGNvbnRlbnQgc2l6ZSBm
b3IgcmVsYXRpdmUgdmFsdWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVjZDYwY2MzMzQ3MDQxYTJiYTkxZGQwN2I5M2Y3NjliMzlh
ZDI0ZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTM3MzQKemNtZUhPYChNJiRgJHV6U3VGX3wl
JENWfHQ0bkQyUyVzZiM3JWk3a3JOMnR1UmZgQDZEMzcrc1FzNGJ+MndkSHFlCnpEcEpgWkJWXj9Q
THhHQ1lsX2VGNURKclFjMFU7KEswOzFtISlARENefEFEPDt7S1NYcl58Pz4pYD99dU9gQFV7Qwp6
ZGtGZGNhO3I1fkFQe0t6Zmdrb0EwZjgxbEtwXnUjJWYqMURBfmluJl99RyVOS1FKWmdjeXZAO0dD
bSZVPUlaSX0Kej1DYUUqQjA0NTJHQlZvNSNubSQrPUVxJHpKQWFJRml8fnh9T21hd0Y0Z3hfeTJs
am4/R35HLXdAWSVVLU9CKXh6CnozaHNDUF9FYnhZZWkpZ3MpUGlJSzM1NDdgd1JAdzVMdncrSkNI
Q0lIenwhJD9CcGRvMHtlWEItZGh5T307Kj4pQgp6TylwdG1IeEE5PVdRfTl6IWR7Ukgxdj4qUlo2
SnRUa2VScyFATColKDtlVjslMyorTm93KGAjYFkpPHw0MStYSWkKeml2WFFIeW1qQVNPJVM9Y3B2
YzlhRyZyLT02NUBRfl5kfVlAI0ZMTngmLWRlT1gxNEo9eTNMMFg9UGwtRVJ7dVI3CnoxT2VGJCQk
ZkJyKXo9R3lCMCRjSUtBRj00M3licSNIU1lieVZoTT5ebT03cWdKUXdzdWpzS1pYMX5xJUlZKyo/
ZAp6bzBUPyokUyRqWUVlczBERSZwVWI3TG4lV0tiIzkqS2FhX1dYO3wyfUVYPkNRZilQeFVDendG
XjVROFI5Rm5OTj4KejZhRyMmcmZAS1lnREQoTDtxWkA4akNhPzZGKWIzJHkzSV9NYXI+SmE7answ
R2RCdWVISEhHcngmYUo2KE1MMCYhCnpvbURmMjRxfGpLK01kb1JpRjA7QGlCc1R7cCV7aVRmVUUw
blEtNUUhRHZPK19aZFZBIVNpPC1DSXBRPUFUcmZBUQp6O281Yn5OS3dRIXZudEJtKzZrVDc7aExQ
QGxVOFo7aXhvJSYka1BNUGhaVElAS2VRdDR0SXBKPmBzSGJDY15GQVEKenBkfDFqTmJCNH1yfDtY
Xms3dFNYRTBgUUxvaXdzbTs9djBVb0djeWtRZkJaSVNPUExPVH5JbUxhUU85VmV0S0klCnpyS21x
PEx7fXNLbmYqUj4yZzR4OCU7XiNvYWhSOzs9WWBrP01HUXkjNnReT3ZyTFF8P1BHTnMmJXdjISRx
az1TIQp6aVklaFRmKE12QXN7P2NUdT9FRmgrRU1mRChYRSkoKnUtQiNtUWxTRnVAYklCYWFSOUcw
ZFp5bzlJfWI0VkpueFgKendUSzRCeEx8KHZtPCExUHU2LTBEbXo1MCZtOHdfTD9edUpHSW4xU2lH
PTYyWF54VkpBRSE/ZDdSbj9sY1I4JFI5CnoydigtSStrdk89RjJOMkVkUmhpdUlwY1VuQkBRI1R2
dXJnKig8K0lsaHM9IXYqeUBkWWshbHpaIT1XZ0lWekJOUgp6REspMWJaSiUmUylKSkVzeTlUQXNQ
QzMkcD9KZ0FVNkZjemFvQTJTN3QtI1ZhaUgwRDRydG4+flEmdy1BbnNua30KenAzWUlOZmk5OTRp
fEV7ZW5OcG96cEcrbEMqPXdRPGhVc0JqdF9RSDgjQzRlMiQrQlg+VHhwd2VyTzZqI29nU3UtCnpD
c1ZSMHozZkxtKnF4bCRvMUEoREkoMUopOVRQMiVIeSh2TlFwfjR2Kkl0MWZiN311PzlzckJJaVls
KlV3ZGxHVAp6dStVZkx3JmVqfU8+O1kwYk4qIUorb2l+YXtHcD4lWCFvIUZDP2RIeU1WIT5tb2lp
dlNHRTNhRXdIK0FySVA/YG8KelVyJCV9Rz0kKW0ldj5vLWs1bjloM1UzdzdQLT52Plo8SSFYXilF
JHJATD8oTUBIP0gqZFVZUnxKQnB7el5+O3l0Cnpna3piclpkIVZlU1VOUjM2X1R9fmRnM1JDV3d2
K3orK1ZQZ3tBUW9HIW0rak1fd0JDMD9vY2p2YlhES21Rb2J5Sgp6XzJSZHQkSEZNSXMtb3ZAdFUq
eyhHYCVTZCRMNUhQOUcmcFNxRypPVjxJUmlAYEZkZ3d7cHlNPmAlUkhvbW1UK1cKel5oQUQwYXFZ
K31gTlR6NG0xR2FrMj0wKF4kNk08PFFSKCtTTkFDIWdLem4qSy18aWxLUzJQM3dZU0B3VV5gMX49
CnpXey0kUFJGPyY/V3EhT2tqSnxLRTVTS2tOQG9FVj95JlNlME9pKSNkcFd0UyZzcjhqbE50KyFk
JG18aDJhaz0lbwp6aVlmblA2dk53TkJ2dSUxUiNxNzlEMms3M15meno+YWVaQU9VV34heEZ4bGJh
M2hQXlVmQj1FYnAmNTsoWDxZcFAKeiYkQmJKPW5pM15kVFB6YHZnUVl5M1BAZ1dCazsraFh4OzBh
YlJaMDJkKi14IXUpWCVyP15qVENVRFQkV2VpPk9eCnopZVp6WHVmWldZUlhkKT5aRTRJYj1AbDtX
Q3Vrb3l6P0BzKD5+fnNvNGZVUjZqMzZHOVlmeGs7dW1tdkJLfHlgaAp6PXIqMSFCallJQHUzX1hU
OyZ8SDVHfG9eN1cjKUJ1KFBNTj5jdVA+Tj9IfDZ4dHhtKlEqWFBQbkMhJSlmZjJuJiQKelZaWTBq
X3dSSiM+JERzVi1+eV9scFlibjtaK0I2QTJJbHowKzJxK0VrXyRHTnlYVG5wVmpaKGZVMURVMUJK
KF9OCnpycHY9cCVlQVZ7Z3gyP2g3MUtXbHY8fDJMTWhsSWU+NmdJVmt2TEYwXmtsNW5hK1NBaU4x
YiVKRT9wO301STl+cgp6Nik+ZDReYHd7S0VHbTIwZ01DbFRWKFU1QE5ZUGI7WFpVRzhscTFEVndq
I2JBeCt8dHtfWU5la3Z0OE8+TGd6aVcKemhONEojO2pybUApPHdxblk/SnpeV1lebGQ7fSFMaHRY
bHk1d2FtPFF6UFczfXZyfGtReUdAU1B1dHJpaTlzWHlmCnpLMmpLbytSY0p5OX03Wmo5fHNpUyVi
KHh3KGdCQG5XOCU1aEx8VndlaUorWFRsdHgxNERKYkQ+NnhmYkNhb1h2ZQp6WiRlY1R5Kmt3O1da
Pm9kdylDbl8/ZHB6T3JOYGo8LWpTM1FKZlV+JEJ5RVkkPHI3dGRNeyE7cDhBfGZgUXw1ZGkKeig7
U3B0NyY9Q01hNE12Kz9Ec0slR1E1PTJiWC1teE40fTx+eGVleFdDPUdjenlfeWVUc3Y1enslTUA1
MDBIX3EtCnpPZmUhbGd9R35nejZSM09geShkTFBDVlZsZCswPVhIYEdPaXNrMDtUV0p1XmleMlZe
TntueGx4UjBgZCRFR1EjdAp6YVFDNkt7XyN8MXJCZUshRzNxLWteX2s2Znl9VHYtTiFBejBxemZn
PnhZR312Iz1Qdit7UmgjTDdrQ0RNeHJRIVYKej1lKV9ASkNvfGJiYGt8TThieUhQaWIoTDhBKzV5
KF53LXU+WHM4VkU3Z2VoeUNiUHk8b0hvM1lsMUBSZjxtYnNnCnpqM19HYFJrRDFnR0ZYLTwoMUtP
VS0zSXlndl55UCNfX2JfKlJLe2M5ZjxGRGt5SkJNWSVjbSN0bUg2dWR3bFc3YAp6a199JHNGZTB8
WXtAUTNfQnw0NEg5YSpSSjBCPmpSazxAPzxaKzRKMWU+QnFCUHd3aCZab3w4KW5LdjxuJkhBdHQK
ekxWak9YcyRMYH1seX5hT20zMHw2eW5kb31CKCtSRWQpcWAlWE5VfmRiPEJhZDFUY1ZAPHl4U0ts
b1hEdy1YOSo0CnoqWD5SPDIwalQ2THttc0g0ZDA+NUVZVihDOyZtTGhRNFo3RztWMW07VE5ULSF5
dFkpKmVjMkNSJlRuOWImcUB9JQp6SHtVejdVSl9+Ql4zdENTT3t1TTA+cXB8OU9oWjRzT3tZN29l
YjwzeSNIdXJCWSMpZDlkYDR9NGB8V0x7SSFDalUKemNaZzFLYz49OD9ZJl47UGJaSzwmbU9yKT8y
anlndyVNTnV8MUJ1bk1OKWdqXnZMLVk4P2pyamdHdy1TSmIhWj9ACnpjMW0yakhlbXdGezdCdDt4
aEE8PFJpIz1WaClkXyRqcmpAQypLPDFhdTFtSl8jZ0RTb2kzYmFQNDM2P0xPNGh8Kwp6TXtvSF8h
Z1hPeUQhcTcpdTtQSnIjLUhBJEVvMHQ4MVIjNmoyST9AU3loKypQQilvP1pEYzU4U19aNm5GOHot
P30KejBMdVJFd15uY1VANENMbEpgcFVuZEQoJnB5VUBeQyp4YlYmY2crVWt1diR9YSlUUzMzR313
UzdOdUZkS21iSz5sCno5TCNhcCN+IUw8TG1ET0YxYGs3WWh7JWdiTDw9VG9wYyF7S0g4dUJ6MlQr
K1d3QnoqdjBWWXBoVD04d05lVXBTQAp6MWUqalUpPWQ0SSZKbEt0KD9sPDBrO3hVOF9afjZTK3R6
bjBkOylnYjV2Si1YJVpvRmZNMiNoPDN+RCRVZGZsTUoKelJaJX5EIzslY2lXJCRROFZ9c3tETX5W
KW9kQWFDYW8jTiZjbFFXUlEjYjNeKSFWT1pNRn4/Km1kblBrYUVSSipQCnprXiVCKENZcUNSJjRu
Q1d7aFRhaHo7SjMhM2NJX0gtfmlQOV4xTF5NVG1OfUV2MDtfRGUkeWRMVT80NkB7KiFgMQp6UH01
WWxVanAoM0hfJSktYGl5UzFPJVAzI2x5SihIXmdKNUVvND4ha01fcjJ8IXdhaUItN2xqMkcyPEEq
YzJPfGEKejM5aXcmSWBUdFMxbCp1fj4zRVIqTG0ySyRgVDNnWStEb15+cVAwSl5heUFTaiVCLUIj
LV83aWBXaiRMdjMyPXExCno+I1RtMld0XzY+K1RIcGB4WmR4YCYxZygoZll7REE+JDtvYzU/UG9p
TTFqbEU4I21SSGJWVXF9O0J3P3F1NVgwKQp6UzlSenpveSQhYD5vemdLKSYrNTRAP2FoaU5pJChS
UFcrJWJmRlM8TD9DRUFedVV7Plh6a0MrS2UkSF9CI2RraFQKeko7KXZrXkxsKilybDlMZmY1Ki1O
c2lJT2AtbE4yMmk5fTw1PmN6OUElK31GXzArKl9ZajVqZDJUcmkld0Fwbjw2CnpFJE5yPXtBRGol
U0IxLUxZRkx3a3EpbTBlIzt7Y3g1T28hNlAweEdzR0g8Zil0ISpeWGpnZzZmR0JSMyNXT3deZgp6
V1FEVmA+VT1BfDBNNnVabEM2MXVnPENfMXRofncwQmtjeDI2TnhGXzBxZ0B8ck1nS0w+dz4/ZGQr
WDQwTnJ5flcKemVKMSN1S2Y1Q0tzfnNuNG0/VT5ic0oySG9TUElvIztjVUNUTFZaVy1nSmFlN0tI
ZmEkSzgwXzJCS3NkN149SlghCnooKkhDeWJLUCNPcW9gSnVCJTZHU3xFZ2FMUTBDfmtSKVJoanUx
QFMmPzR9Tm8yTio2R2dxTEduMT9wcUxMPU9IbQp6dCljfXlIe0dzXk5XbVd1Qyh+fGliRVYpM05K
bzc2MDglYkBVaUpDfT5QMXFseFEyITlaa1I4T0JFbUMkcXQrd0IKelpTJGxocUQwLSVZKShFdUM2
STVGVWc9ZVg4P2p6QSZpTXFMOUV1ZDUrSlRXQ2dLOHFHa2R8Tzc+VXExPXJgSUU9Cnp4WlEoJSll
Qy0mYjAkN0I4SClLbW1pMXR+YkBwR3k9P35neTthPjZ9ZWcoeVNvek1sTmtVaGxfUjMxNmBkJkZz
Tgp6RjRjK2hVazB4d0pHOE85IXJXMmBWUz52MGlPP2xLJmhCaSFmJDdqU2pxTlU7P24hd21Ya3hA
TjJXMylVTDxNODcKelV4NTZFbFRYI3UqWElQQSZNQDhKPm11RFNeZj42UXhhPTF0KXdfX0ErSChU
OzxOTl5uamhAdFE4WDctTnQ/UDM9CnotSXx6TDFJK3k1UEs7a0heajIwQz1QWkhxTGZCQXRKZyQ8
KS02UWVqdVFwMjVWdCZxZXZWPDF6Yk5TQFd0LSsyUgp6bzltK3VsZ1hKSTtNYEpIVXIrfEJqSzdZ
bUxYQi1yP09zSnNvZVhJQDQ0M21HUytCPXNWT2lDQT5ZeSNmV1N5d2YKej17ZTREUUpDR2Amek4t
fkZSNkYhNUxFeTE0dz1SaCUjNUJnMjQ2Y00zcyZqTi0hXmUodEdrLTQ7V0hEP2hqQTJKCnokPk1u
ZWsyV1dEbXMwMk1oRklFSVQ2SXlTYDIySypiOFdIKEdYNElfQGp5MjBHe3lebDc0fEVgSjYqUGVy
YTxsegp6JDQxRlQhUypkJk1yXzhRaklWcCRnNjRudWxmU1o+JFVzZmR6RlNBfFdlfTshOClRcT5G
TGY1Sng7aWhFP3woZEEKenhiLU5ucWVrNHgmJCNmSU1va1UrbjRfRzVGQT9rRmRLSXFWR2E5NlUt
aDxNI3BvIXtLZ1F4SS1ybX5iUT4+MGN5Cnp0c0lvN1BQbG15NFlUQj9mWn5DOGdLbnlTXkV9Z1Jo
MipYY011bHZjfE1IKGhuRU9FaC12b1NCWn1oQ1kmZmRWbQp6RFEzbn5tSmcpJF84LWkkd2lmK0x5
amslejs/a1g1KDJIelAxTTJVNDVYaEVTLXZsMHJaKE8qRCo9MXtrc0liblIKekc5RlByeXRlVChp
fVAyVGY8RnsxajYkS31iNCRxNkI/JGUzPHBPWE9hd05vWTtWUkBRJn1NQVdySk0hSjBwTFFYCnpt
aX0pZT08X30yalI5PmBYM3Q7P21hRG0tM3RqJWQ3PkFnRDJhIy1NYzJ4XkhLQ2V6YlNkSmgtMlRz
dVR8Ml9aegp6WiQqJllqZzgkNDdlbWlONXVqS1lzTHgyekE5X0NqcjQ4YWotLSg1cm8jV2RmeHgy
dDEjbWN7eVoxYVBhQ0J5YGEKejJeUFRYT3heOzNVPHg4NXwzSjM8R3FgMnRJczFNUFh3XjMzWnZq
NWl4UVR1TkA7N0JBVitKJU9ZWEFoM2hCMGEoCnpsZTdhc0ZlelQ2LVptKi0wMGglUHo8QmE5RFBF
Sn17Y3V3TCQwJU50JUtjYX5GeyN7LUg1YC01SEt8LXYwbj1FdQp6Xyl6dlZzYSV1RnthNjR1c2El
dUZ7ZGc1KHNfVEJKPnJOMkt6ND8hUUglRCMreyYpcEN1cGhhdlpmfCkwe3tlUWUKQkV8bVpQCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvc3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRmNGVjZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC90c3Bh
bi1keW5hbWljLXBvc2l0aW9uaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MDB4NTAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQg
KDIwMCwxODYpIHNpemUgMjUxeDE4CisgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIwMCwx
ODYpIHNpemUgMjUxeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKKyAgICAgIFJlbmRlclNWR1RTcGFu
IHt0c3Bhbn0gYXQgKDAsMCkgc2l6ZSAyNTF4MTgKKyAgICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjUxeDE4CisgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1
biAxIGF0ICgyMDAuMDAsMjAwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA0MSB3aWR0aCAy
NTEuMDA6ICJUaGlzIHRleHQgc2hvdWxkIGJlIGF0IHZpc2libGUgYXQgMjAwLDIwMCIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0L3RzcGFuLWR5bmFtaWMtcG9zaXRpb25pbmcuc3Zn
IGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy5zdmcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FlYjVhYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy90ZXh0L3RzcGFuLWR5bmFtaWMtcG9zaXRpb25pbmcuc3ZnCkBA
IC0wLDAgKzEsMjEgQEAKKzxzdmcgb25sb2FkPSJsb2FkKCkiIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNjAwIiBoZWlnaHQ9IjUwMCI+Cisg
ICAgPHRpdGxlPlRoZXJlIHNob3VsZCBiZSBhIHNlbnRlbmNlIG9mIHRleHQgdmlzaWJsZSBhdCAy
MDAsMjAwLjwvdGl0bGU+CisgICAgPHRleHQgeT0iMTAwIj48dHNwYW4gaWQ9InRzIiB4PSItMjAi
IHk9Ii0yMCI+VGhpcyB0ZXh0IHNob3VsZCBiZSBhdCB2aXNpYmxlIGF0IDIwMCwyMDA8L3RzcGFu
PjwvdGV4dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBtb3ZlKCkKKyAgICAgICAg
eworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRzIikuc2V0QXR0cmlidXRl
KCJ4IiwgMjAwKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0cyIpLnNl
dEF0dHJpYnV0ZSgieSIsIDIwMCk7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbG9hZCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAg
c2V0VGltZW91dChtb3ZlLCAwKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9zdmc+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNmJjMGM4ZC4uYzNkMTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTAyLTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIFJFR1JFU1NJT04ocjEwNTA1Nyk6IER5bmFtaWNhbGx5IGNoYW5naW5nIDx0c3Bhbj4g
b2Zmc2V0cyBpcyBicm9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4Mzg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDgzMjkzMj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhciBtX3RleHRQ
b3NpdGlvbnMgb24gU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyIGR1cmluZyBsYXlvdXQs
IHdoZW4KKyAgICAgICAgd2Uga25vdyB0aGF0IHBvc2l0aW9uaW5nIHZhbHVlcyBuZWVkIHVwZGF0
aW5nLiBPdGhlcndpc2UsIGJ1aWxkTGF5b3V0QXR0cmlidXRlc0lmTmVlZGVkCisgICAgICAgIHNo
b3J0LWNpcmN1aXRzIGFuZCBkb2Vzbid0IGV2ZXIgdXBkYXRlIHRoZSB0ZXh0IHBvc2l0aW9ucyEK
KworICAgICAgICBUZXN0OiBzdmcvdGV4dC90c3Bhbi1keW5hbWljLXBvc2l0aW9uaW5nLnN2Zy4K
KworICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpsYXlvdXQpOgorCiAyMDEyLTAyLTA4ICBEaXJrIFNjaHVs
emUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgdmlld0JveCBvbiBuZXN0ZWQgU1ZHIGNh
dXNlcyB3cm9uZyBjb250ZW50IHNpemUgZm9yIHJlbGF0aXZlIHZhbHVlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKaW5kZXggZWJmOTJlNS4uZjE0
ZGUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
Y3BwCkBAIC0yMTcsNiArMjE3LDcgQEAgdm9pZCBSZW5kZXJTVkdUZXh0OjpsYXlvdXQoKQogCiAg
ICAgaWYgKG1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSkgewogICAgICAgICAvLyBQZXJm
b3JtIFNWRyB0ZXh0IGxheW91dCBwaGFzZSBvbmUgKHNlZSBTVkdUZXh0TGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIgZm9yIGRldGFpbHMpLgorICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVy
LmNsZWFyVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKICAgICAgICAgbV9sYXlvdXRBdHRyaWJ1
dGVzQnVpbGRlci5idWlsZExheW91dEF0dHJpYnV0ZXNGb3JXaG9sZVRyZWUodGhpcyk7CiAgICAg
ICAgIG1fbmVlZHNSZW9yZGVyaW5nID0gdHJ1ZTsKICAgICAgICAgbV9uZWVkc1Bvc2l0aW9uaW5n
VmFsdWVzVXBkYXRlID0gZmFsc2U7Cg==
</data>
<flag name="review"
          id="128466"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
    <flag name="commit-queue"
          id="128467"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126799</attachid>
            <date>2012-02-13 11:17:58 -0800</date>
            <delta_ts>2012-02-15 14:28:35 -0800</delta_ts>
            <desc>new patch</desc>
            <filename>tspan-dynamic-positioning.patch</filename>
            <type>text/plain</type>
            <size>10475</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZGFhNTdkLi5mZTZkZWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDIt
MTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMTA1MDU3KTogRHluYW1pY2FsbHkgY2hhbmdpbmcgPHRzcGFuPiBvZmZzZXRzIGlz
IGJyb2tlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzgzODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwODMyOTMyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZW5zdXJpbmcgdGhh
dCBjaGFuZ2luZyB0aGUgb2Zmc2V0IG9mIGEgPHRzcGFuPiBwb3N0LWxvYWQgcmVzdWx0cyBpbiBj
b3JyZWN0IGxheW91dC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvdGV4dC90c3Bhbi1k
eW5hbWljLXBvc2l0aW9uaW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL3N2Zy90ZXh0L3RzcGFuLWR5bmFtaWMtcG9zaXRpb25pbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvdGV4dC90c3Bhbi1keW5hbWljLXBvc2l0aW9uaW5nLnN2Zzog
QWRkZWQuCisKIDIwMTItMDItMDggIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAog
ICAgICAgICB2aWV3Qm94IG9uIG5lc3RlZCBTVkcgY2F1c2VzIHdyb25nIGNvbnRlbnQgc2l6ZSBm
b3IgcmVsYXRpdmUgdmFsdWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
c3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY0YmEwMDYyMDE1MWQyZTI3YzkyNTNjZmY2MGIyN2ZhNDEy
ZGMzNQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTQyODEKemNtZUhPZDA1aXZ3QDFeLVkqOH4p
YjFnRyNhPio/OypBX0YhUUpSe3thIXBjZVQjI31oUUlRcmM5a2R4fFR2RFU3Cnp2QCRoeTUpPjg3
Zz10YjhxZn1IeEFoJXE8RXtMLUl6TytDMHsoWWJPLTIzbnNAYmFHWHA3LS1UYCs9S0JKemR1Owp6
WmMmNmxBblY8Wjk2QVBwdGtRPS1XVzV4PTE2T1h4VCF7bzxjMTV7KE1ad1BwITl5PWFoZU5FKmdS
UU9oU19KTzMKemZ0I0R9NFlJSGRoRlMqKTIzd3RqPytMT3BLTzZpPDltTlUpKFRCSmwrVyN8M1d7
TSZJI1BZKTg+WT53S1VJUHE8Cno/LWx2alNncnc0Xi1BZE1VNzV7bTxwfDE/Mlc5MDVMKGl8MDxZ
S1JvclpBbT9TaWQ7WilLdSt+OWIoKz9qJDYhMwp6S1hwN2V4NVJnPiFWLWMwX2c7IV85NH16MmF9
cT5HUiElYCMtI012aWkoR25UYShKKVk9TE58KGhoPTExKT8mWngKemZuY0FsUVAyLTlzQGVMOU5i
LSVHYT5jaEstOD1NP3A1WGVES1FSNEJYK3lqbkFRbFBWbmsqVlAyZHQ5a1BXMlA4Cno9JURQNkpG
cCg9az44ITg7a1dXI3pYJWhjMVJqR1BkbHxMIXFpaG0zZHdyY0RebzVZV01Ka31NQU5scWtsJEhI
awp6SF9rI3dAcndXO0gpWkYmTGRgMTdTNCFAIUJ1R2B0b2dZJlVkXzkwQkZMJW9XbFJUO1NtQ3w5
bWUkd1BVQmljTykKejhsTWhgbDlCbThDN08xOU5fczFKZnYxUERMakY8KEdJWCFZLUhOOGgxcFoy
ZGJGQWM8b3RMRjFTdCtqaT1KQ2E/CnpSblR2XnpHKEZNJmljLUdMR1c9ZXpGP0lFITRBc0c5em1R
SHVLOX0wZDJwcEAmbGpMVEIwPmA2d1lMfU04X3VgRQp6bTdWTHAoU3REKXtpS0Q+LVQwNS1Oe0Yk
YnZQaX1HaD0mdiVzcVRFUlBebzJvXjQoSXVCbFhKQ0FSIUgqQUtaYTcKeiFIfWszVkUqflBvU2JV
PUcrLTA+KyFLVTE4QkdgdU5tVjAkN1QmKy1ReHk/bHJmOVJPTiojWkthX0NGPzlCPmRVCnpIUCRC
dFBJaDt9aEJgNSNgUHE1QUlEUn1gSlJNOGNOfVJvX1hZNU9VeCU7Rn1LWCNoVzZwTk52WXlFaklV
aGY2cAp6a3lCPDhYMyp8RTZwQGd2UFdHeHhKYnY8PXxFbEB1KHNhYjF7eGNsJDZhciU+bkQ3XiRz
bXFsUkhhbSV6SkFFdGcKem40dmxYbCQ9MTJzTE4yM29aUEtkXllkZDRyamg7cWdFMk19ciN0cnpF
S181M3Jfb0lRaFNmU3p8Mz08aD53QktLCnopRypgRkdNdjB4Rk1mNzVpJT1oZz5PPkQoPThzc0ZY
YnZ0RUxydjUhdWg4KDAxOU1wZkE1ZUBfPWhDTn54eCFMXgp6O3JxeXJQYF52Vz1qJFYkS0pEbHNp
eHllYG9OQW1LQlJ8d3toZVp7dHVBaGs/d05ven1lOHtoPXp8IWtaUHplODIKejcmVD0jRTw5azNL
KmBJST9+bWktMVQqaHw0MiluRnE8JDdZWFVBTm9Nck0tK2YmPz1oJX0hTD8+Xm1jOytPbzlnCnpq
fkJnREdsLVNiUXltQ3F4Rms8fXNHe3VyaSpfYDxOUzVMeDB3fU4lZSpzJXZzV1gxV0c2azszP2Be
ZyZOOCh0Zwp6Skw5XlE9TU41d3hDQUI0QCs8IX5KfmcmK0tEPjFILXhTOXYpUHkmKUYxKH1nJm58
SlpvQGxvNGdrMio3K1EzR2cKeigmPGwrSnZTb0wjZzhHNzgwYCs7RFdrVFhteT02PGhRRHZGT3Br
dDJ3bVpFKG54bi07Kj88eGZCWWhWT05JKUpWCnpXaW05TkNnTHFuSGtaY2BjfmJneVc8WmBQdGxH
fG0+RGUydV9KTzwoTTU1Jig5X3BRZW9+PUV8UCFwO2VmLUp2Twp6RnRMdE0rWXozZSRDd09tek4p
KSRtISpwNXdhaXYhSHlBJWxPIVYoKlhqcTtpY31TRWc4bXpicTkoYmFVNG5AUzAKemBnITlrUlI+
QSRQZ0x5NzdZaiE5UEVvWXAqJk03MnYheD1fRSVQVk84UUp+d3pGRW1odXllXkhSPjA4e1lmTDlE
CnprKDRBNW01XmVEdXxeRmVPQmRjJlBRe2deI3xQeFE/UTFoblV2WTlwai1OMjUqcEhhMm1wamR8
OzVLdz47XlkzOAp6JXdfbEY3JmFseWpeNUswJi1oKihsPXpBWj8tSlRNNEJCVmBFaz0kPTtfUCla
ZCtpdyVNVDtIQUdCbXNWbDEwT2QKejdKNDEyPnFPJSklb2JBK2NTNDZ0aGVUUTR0Wj9yZHRlek1n
Nm1TX2tCIVBWJnduKmZaPSErOyYoNExZdno0JSpOCno3PHdKaEhZMk19YlN9TClGfnBoNnlAY2x2
RyhSdik3LXpYVXQjbERoTX52ISs8anBrN3FzdX57Xn5LaDZiZWNvYAp6YEYkK080eFNzKit1UmEw
eXhaVGxlI0UqJGJDQX50LUprP283XlR7VHl6O2k5NFZubVQ4MjZ5S1hCT0EwZjwhJVMKej8pOWU4
a0tFVmVtKWs+PGk4PUBvOHk4QGw3U3xFPmkqXko3X0ExPihSfDg/Q0NtZUlsJG5HNmpFUldUcDBP
T2E5CnpYRnchVnNgMGB9NHd1NnY0Szl8bUs7emBpJlphb29OMHxCcVFWKyZnaTNGb2c3fVQzMFVG
LU97T3VVYTU2ZGh0ZQp6dklkNUY1bXtfbWEzTn0kT0NVMiZucHVYKlRWNGU8cFZPUz93QH1DJEhw
NDdPR0E4X0RkN3g/N21pckRie2d4NGIKeiZTcE5oKTgwcTt7dUg4PDRfZWxydG9sKWg4UXgwXypa
UyMwKTBoQWZDeXk+ZjY0TjtpbFI7KjdgM3ZgcjcqKnB1CnoxU0B+a2VpWCUmXyFIbl9EP0xEPyhf
PXRQQVBkNjxUR15KUy1zQV4+M2JneWJzZ18pRlBzNE97XlBsQlc0X0ZjIwp6ZEkoSTBJSDNodmAx
OWgwNX51SkczcFE8fSNCdVJhR3VTLVpIISR1UXlRTXR4YHRFaEs1QEdlUHZCWU1iV0tmJVoKejtF
ZHlVPUtjVVNLSUlSTEl5TVZJQyZ5WmtLc0VELTNmQVQ/cEBVPE5MbyFNbEFRS280dEd9YSNMZUlQ
cShIZFhECnooT25gfD1XUWBzZ1pLYkVIRVYjcW5WXythWGE4PWlsSUVTSWBjV01JM0kqQV5hbyYh
LXUxIXpPcVgwM0oyKVYhZgp6I1ZiOVdESG4wN0UlYTE5VFArMVd6fG4xbj4oMXd9dzN4aU1FYT5B
ai1UQm0wXj9+YmpSZnZKViYqMzdYaWghSkwKekhZUyNOR3BkPWppMEQlOV8zOH57RXxrJlh6TWUp
ZCYpJFhjSnlgKmJ0bz0jdWhHamwkOWVsIXVPMXgoQjt5bC1TCnprM1YjWlFebT5haEdCWjU+dUtD
I0dPJlcxLVRZblVBKWV6KUgmMlQpVTImVHM/a0R5NmxQQWxWYjR+SVJjOyFoJAp6clY+fXhgdkJ9
ZXghV2lpSlV1ZCQ0NlNFSFI7S3hlKih8Pz1JV198NiZAK2BTK3M5RnNgK1dPMDtlIzxfMmxjamUK
elpmSUZTKE1TeDdnZGVtb2QyWHdaMlpNeG09bDEqfElVfGlrWlojZWtWJFRNJGk3a2UwayNrUXw5
SyFPSSQ+KDQ1CnotLUlUak9TdT41bTkydDVhdi18PDRZQ3hwQm5DcFVnbzRUJUxnQk08cW13YjUt
d1d2ZEBVR3YpRTh5ZFNJX2BBQAp6KGhjN1NaZ35GS1AhP3Z0Z0w9bHJFM0h+ZE1lYkI/Mk4mbUZG
bnpmYnl9XjhEZGxxVzIqeig4WWo0RU9KQkIofUYKemx2fW5BQlNvTlRYan17UW00S3QzZmVXR29M
VUVzMWZHKGkkQG5zdGg8fnlYI3MkZ3hpUCE2cXtGWCV5YUl3OXZ6CnptZjtmeTNWfUtUO2tAMyFo
aSlIOVJvT1hhYm1TK3cmNUdAZndocThlbjAtcU57bGQqPys2cFJqeG9OZHlXY35JRAp6em9vaCFv
KlBoVHQ2WklkTDs5UmklVTtlT0hWKUFnKk1pbXVPfXdwKj99ZlNoKU5OdkZ0N1NKRXpxZyVne0BG
P0IKemB3VWl7az5eayZpTVNqYG0pVkBHQHo+OUdDMyE0YGh9d292WDRrZHtCYGNXRnMoYkAtZStp
eXxgeURXcmd3VyVgCnokMWBsJkJ4Y2hyRi0rRVZ2dj9NMmhZX3s3LUwhZmBeJTh9ckohKFRpdD8z
NFg/aDVrbFlSNmZ1JHQ4VnVDNT1Pdgp6emYrYzFRI3J7aVVaZ1NHTChlX05PPTxyUGNxUm1IalBw
Njg5QDEyN1hpOFdDRSE+dSZFJXdZRlppVClvSjN9N0UKelVYckx1WjNvRnM7XjBeQmU3ZVlhdj9e
P2JDOHpMQ3Axcz0qOSZ5TWdjdkg0VnRJeTQ0X21qbUR3N2hPIUBJOU5mCnpqb0lFTi1mVzlQZzxa
KGErb3teXnt2fVJ9WEJLemBsZTdoJWplI247T1hjanVINndjI1lLY3lic1dCSXt2YGlKNAp6QXxJ
VjtYV3JvQ0drV08yPDJ4biQtYWJsSmEwNmclVkt4M2YyZV9HZCE4ejA8VCtmYyRiKHpUQGdwJVQz
SWZrRGAKenpRZnJaU0dpfGxudihZS29gbT0waGNWRT50YElKN2drUjFfYWdJR0thaFNUJEVIUGJS
dmdhPStWOVQlN04yXn4mCnpZNUsqNyhqUEJePTw4SVYoYmZIWEtlK2xXRzlpKzl6NGZVOUhWM2JR
eENucDIlX2ErbWZ6XnJ4ZShLPSg+b05zbgp6VjNCTS1qeX1WX0V6V15CbjU1eyReenRxJlQhNWti
a1gwKkQ7KVU0dil7SHglPV9xX0wjVXAhbkRgQXN8ZDs4VEoKeiZ7UU95eyNRSFopJDFzK2ZIfEhD
QE5oUjZyWWVESzk4Y2ExXzF5ZWpuTUdjV3NfSyR+YXZTfG81SD0qMmBObSpKCnpJVkNAeiRIPWlj
XyQtV0c3UTJ3PSg2fXRoP2ZIOGxDelhSKyF3MDxlc2BvPndgbUY7K3Mwe3xudXZkaH0jV0pMNAp6
YF8+ZmdzKkEjZm9Nck1pQSM0QGNaezlGKUcpMWd9TUhUNUdpVVg7d2dAJUsoUktKVUFjeTN6KVo2
ZzhCajs9UykKejBRdntISE9MZTcqYktMVTU8QTl0QG9OKGRoYz1CZVApRWVXMTdtITtIKWcmdlhs
Z00kNDBPT35QLUZ2YGttLXpLCnpUajE8fFYmSmpNP1Q+UEA9emQ1WShQUzBGRis0VTVEMSFscUcy
OT5iVXdmUzZySSVSJnVOQGRSZztLcTVQS2R+Uwp6IyFVTFgtR2xjJS0zMkpkcnBNKE47WTVhaXNh
RDlneiU+PWJDcCF+ZTYxbEZeI1N+OVdOTX12VUtwTDt8WntuTkwKejluampCSE5pOXYyVEA7e1Zj
NT5qeUIhJGU/c0crcndUbGI0QkxpNGghUzBkYW1MNGMyQ359XlJ8MjwpU2QkJmhJCnp3dlBXM3tH
I19MKERvbzB4U2MqfkhEY0hiXj1YfSRQSF9ealBAMjl6VFFufE43YVJLRiY3RiswaTB1KWkjaCtD
Nwp6bl5MIVhfKXFudChVbCUrQzI4fTVkZ1BqdTdgUyl1RHB7bzQoUmZeaHY1TDBlLTAjYEhsQ0xA
WFg2dDNjU35aaCsKei14Y3dLI3VVfmY0OyQ8LXB4N3JKJnU0R3E1S2d3e18zYDMqYSpUREhmO0h3
TD57SXRTJEx7Zi0mQTdQI0NgeU9YCnpJMn52floreytCRmFtZzJ2T358cEZlfGhTYTtZLWprckx6
c2N6OUdjY20rQmhYcVVPXkFDYGU9UHJiRT0zM3x7cAp6RXw/ZCFDUT0rKjw9KXczNSQlbD04fClI
aSZmZFBkKGFBfiFlfW0lS2F2SEItMCg2YC1jZTZMYGs5JTl7WFB0YkYKenIqK25OQFVKJUx3TnxF
cmQ1UWgtdGB5V04tS2A7QXI/MWM2TH07ZiRHKHQ/LTk/MU1Qc2ZMWmV7Z08pOzBJbys8Cno1JDAp
WTdGRCpmITtiV304bExGRntLPFN7KjckUzROPHorZkJQIXVnI2ZieythLUJER3JKRk5QcDV6cks0
a0MwWQp6VEtEdyp5ajl3UnZyJnhKZDZtd0NeJjB+SGo8bk5uUk88cWAwR2M1RyM2KGV1K3pTT09e
VWc2aFNscUZ0c1NlIX4Kel5BOHhTK0trOzBYWm5rRnBCTDdZVDRJWj9KTndrcDs1VlYrej0tfGU5
KlE9MHh1VF9qODYyPFpXYXFUcUB3V19qCno2eCpWNysoUlVRWEVFLX5TaWhaO1NZM3cqMld5MDV3
ck87anNwdG80MGYoKSk3KmVlWShFQVZ2WXZLPyY/WipYKgp6IXBEWUpUO0deayZ+S2k7Y0NFTTVZ
aCk9cG1ubXAwPmw8YUQ1VjcmfHtyKmI7NkBsVCMqa2BFSldTakp0V21OQTYKekNkTzR7dDYjK2sz
bl8oKkQjZ1o8YXtzOT1JQyppUCk/Qm53OCZoKm1GVj5GOVl3RDl7eVZgSjh1alJEPShDR3BoCnpl
XmQkdT9eZEhvbG5YNlFAJX0peFUtbEhLP2BAMyh4QHRlXm1zNjYtZ1p7MzdqZDJAKSgzR0k/IzZO
KUtQVXQyPgp6WW1QfCN0KHZVcV5UJFd1VD5hUjZ8MWdkQ0JncztLKkE1cDZ1VFNIVXBBezdKKWwl
Y1dkeyktS3dOY3NtKnBJMVMKenc8dGVVUihBZT0pOGMwbSQqRzM9TiV3TyRlVnRWNEFLanstXnor
WDVgQGZXaE56T2t3TCleQEZaVG9aKE5Pa3ZzCnpHdnZ7SzYkdFdzO0lYZzhXUm1tc0IqP0xRNF84
YT5eR1Q+KEdCVnArQDg5XzU4ajNQOV9ZZUd9Xm1VOGVGfGM/QAp6YnlOOTxOKTI0T1VhMCRwaT00
dUp1dkZaWHgkUFVPQDQqI0M3bCtSV2ZxUmREcWFpNmtValVIO0ItTm5MdUhrPnUKeiM1JFg8P3VK
MHJWVXBoaE5kM19sXk9PMWBzbCl5bnVBfnU3OHVDQjgyNUMrdE8mVUtYeVY5JiRUNlRQe2ppaHkl
Cnp2fmN9Z3Jie2IoWD1WUmU3b0BFWlg+YUlMQ2shaVhvPUxsbHBMT0FuQngoQ3ErTW9XPVZ2c2lR
cjR4P04heUQtYwpoPT5OZnQzQGN0YGFgRkFuNko2bUMhMmprISsqfntsbF4rUFdAKm0yYjA2NzJ2
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvc3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmlu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRmNGVj
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvdGV4dC90
c3Bhbi1keW5hbWljLXBvc2l0aW9uaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MDB4NTAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30g
YXQgKDIwMCwxODYpIHNpemUgMjUxeDE4CisgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDIw
MCwxODYpIHNpemUgMjUxeDE4IGNvbnRhaW5zIDEgY2h1bmsocykKKyAgICAgIFJlbmRlclNWR1RT
cGFuIHt0c3Bhbn0gYXQgKDAsMCkgc2l6ZSAyNTF4MTgKKyAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjUxeDE4CisgICAgICAgICAgY2h1bmsgMSB0ZXh0
IHJ1biAxIGF0ICgyMDAuMDAsMjAwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCA0MSB3aWR0
aCAyNTEuMDA6ICJUaGlzIHRleHQgc2hvdWxkIGJlIGF0IHZpc2libGUgYXQgMjAwLDIwMCIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90ZXh0L3RzcGFuLWR5bmFtaWMtcG9zaXRpb25pbmcu
c3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL3RleHQvdHNwYW4tZHluYW1pYy1wb3NpdGlvbmluZy5zdmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUyYjE1NzkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC90c3Bhbi1keW5hbWljLXBvc2l0aW9uaW5nLnN2
ZwpAQCAtMCwwICsxLDEyIEBACis8c3ZnIG9ubG9hZD0icnVuUmVwYWludFRlc3QoKSIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNjAwIiBoZWlnaHQ9IjUwMCI+Cisg
ICAgPHNjcmlwdCB4bGluazpocmVmPSIuLi8uLi9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFp
bnQuanMiPjwvc2NyaXB0PgorICAgIDx0aXRsZT5UaGVyZSBzaG91bGQgYmUgYSBzZW50ZW5jZSBv
ZiB0ZXh0IHZpc2libGUgYXQgMjAwLDIwMC48L3RpdGxlPgorICAgIDx0ZXh0IHk9IjEwMCI+PHRz
cGFuIGlkPSJ0cyIgeD0iMjAiIHk9IjIwIj5UaGlzIHRleHQgc2hvdWxkIGJlIGF0IHZpc2libGUg
YXQgMjAwLDIwMDwvdHNwYW4+PC90ZXh0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9u
IHJlcGFpbnRUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRzIikuc2V0QXR0cmlidXRlKCJ4IiwgMjAwKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0cyIpLnNldEF0dHJpYnV0ZSgieSIsIDIwMCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZiYzBjOGQuLjJiMGU2MDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wMi0xMCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMDUwNTcpOiBEeW5h
bWljYWxseSBjaGFuZ2luZyA8dHNwYW4+IG9mZnNldHMgaXMgYnJva2VuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM4NQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTA4MzI5MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRG9uJ3Qgc2hvcnQtY2lyY3VpdCBidWlsZExheW91dEF0dHJpYnV0ZXNJZk5l
ZWRlZCBpZiBtX3RleHRQb3NpdGlvbnMgaXMgYWxyZWFkeSBmdWxsOworICAgICAgICB3ZSBjYW4n
dCBza2lwIHJlYnVpbGRpbmcgdGhlIGxheW91dCBhdHRyaWJ1dGVzLCBqdXN0IHdhbGtpbmcgdGhl
IHRyZWUgdG8gYWNxdWlyZSB0aGUKKyAgICAgICAgcG9zaXRpb25pbmcgbGlzdHMgKGludmFsaWRh
dGlvbiBvZiBwb3NpdGlvbmluZyBsaXN0cyBpcyBhbHJlYWR5IGNvdmVyZWQgYnkgdGV4dERPTUNo
YW5nZWQpLgorCisgICAgICAgIFRlc3Q6IHN2Zy90ZXh0L3RzcGFuLWR5bmFtaWMtcG9zaXRpb25p
bmcuc3ZnCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVz
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1
aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlc0lmTmVlZGVkKToKKwogMjAxMi0wMi0wOCAgRGly
ayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIHZpZXdCb3ggb24gbmVzdGVk
IFNWRyBjYXVzZXMgd3JvbmcgY29udGVudCBzaXplIGZvciByZWxhdGl2ZSB2YWx1ZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0
ZXNCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAppbmRleCBhMjdmNjhjLi4wMmEyMTIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0
QXR0cmlidXRlc0J1aWxkZXIuY3BwCkBAIC03OSwxMiArNzksMTIgQEAgdm9pZCBTVkdUZXh0TGF5
b3V0QXR0cmlidXRlc0J1aWxkZXI6OnJlYnVpbGRNZXRyaWNzRm9yV2hvbGVUcmVlKFJlbmRlclNW
R1RleHQqIHQKIGJvb2wgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZExheW91
dEF0dHJpYnV0ZXNJZk5lZWRlZChSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCkKIHsKICAgICBBU1NF
UlQodGV4dFJvb3QpOwotICAgIGlmICghbV90ZXh0UG9zaXRpb25zLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuIG1fdGV4dExlbmd0aDsKIAotICAgIG1fdGV4dExlbmd0aCA9IDA7Ci0gICAgY29u
c3QgVUNoYXIqIGxhc3RDaGFyYWN0ZXIgPSAwOwotICAgIGNvbGxlY3RUZXh0UG9zaXRpb25pbmdF
bGVtZW50cyh0ZXh0Um9vdCwgbGFzdENoYXJhY3Rlcik7CisgICAgaWYgKG1fdGV4dFBvc2l0aW9u
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV90ZXh0TGVuZ3RoID0gMDsKKyAgICAgICAgY29uc3Qg
VUNoYXIqIGxhc3RDaGFyYWN0ZXIgPSAwOworICAgICAgICBjb2xsZWN0VGV4dFBvc2l0aW9uaW5n
RWxlbWVudHModGV4dFJvb3QsIGxhc3RDaGFyYWN0ZXIpOworICAgIH0KIAogICAgIG1fY2hhcmFj
dGVyRGF0YU1hcC5jbGVhcigpOwogICAgIGlmICghbV90ZXh0TGVuZ3RoKQo=
</data>
<flag name="review"
          id="128726"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="128727"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>