<?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>33563</bug_id>
          
          <creation_ts>2010-01-12 17:23:15 -0800</creation_ts>
          <short_desc>Transition followed by animation fails to run the animation sometimes</short_desc>
          <delta_ts>2010-01-13 20:55:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarrin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>180049</commentid>
    <comment_count>0</comment_count>
      <attachid>46416</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-12 17:23:15 -0800</bug_when>
    <thetext>Created attachment 46416
Testcase

The attached testcase shows an issue where, if a transition fires at the same time as an animation starts, and if the animation has an animation-delay similar to the duration of the transition, then sometimes the animation fails to run (with hardware accel.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180050</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-12 17:23:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/7535633&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180392</commentid>
    <comment_count>2</comment_count>
      <attachid>46501</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-13 13:56:32 -0800</bug_when>
    <thetext>Created attachment 46501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180429</commentid>
    <comment_count>3</comment_count>
      <attachid>46501</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-13 15:37:52 -0800</bug_when>
    <thetext>Comment on attachment 46501
Patch

&gt; +        Fix this by including they keyframes name (or empty string for transitions) in the labels

Typo: &quot;they keyframes&quot;

&gt; +        * platform/graphics/mac/GraphicsLayerCA.h: Some new methods and signataure changes.

Typo: &quot;signataure&quot;

&gt; +    void setAnimationOnLayer(CAPropertyAnimation*, AnimatedPropertyID, const String&amp;, int index, double timeOffset);
&gt; +    bool removeAnimationFromLayer(AnimatedPropertyID, const String&amp;, int index);
&gt; +    void pauseAnimationOnLayer(AnimatedPropertyID, const String&amp;, int index, double timeOffset);

I think these new string arguments need an argument name for clarity.

&gt;      String animationId = propertyIdToString(property);
&gt;      animationId.append(&quot;_&quot;);
&gt; +    if (!keyframesName.isEmpty()) {
&gt; +        animationId.append(keyframesName);
&gt; +        animationId.append(&quot;_&quot;);
&gt; +    }
&gt; +    animationId.append(&quot;_&quot;);
&gt;      animationId.append(String::number(index));

This function is using an inefficient idiom for building a String. The String class allocates a new buffer every time you append to it. You should use StringBuilder or Vector&lt;UChar&gt; or some other alternate strategy.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180532</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-13 20:55:01 -0800</bug_when>
    <thetext>Committed with review comments addressed:
http://trac.webkit.org/changeset/53236</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>46416</attachid>
            <date>2010-01-12 17:23:15 -0800</date>
            <delta_ts>2010-01-12 17:23:15 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>pulsing.html</filename>
            <type>text/html</type>
            <size>1411</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cgo8aHRtbCBs
YW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KICA8dGl0bGU+dW50aXRsZWQ8L3RpdGxlPgog
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgoKICBALXdlYmtpdC1rZXlm
cmFtZXMgcHVsc2luZyB7CiAgICAgIDAlIHsKICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBz
Y2FsZSgxLjYpOwogICAgICB9CiAgICAgIDUwJSB7CiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9y
bTogc2NhbGUoMS4zKTsKICAgICAgfQogICAgICAxMDAlIHsKICAgICAgICAgIC13ZWJraXQtdHJh
bnNmb3JtOiBzY2FsZSgxLjYpOwogICAgICB9CiAgfQoKICAjYm94IHsKICAgIGhlaWdodDogMTAw
cHg7CiAgICB3aWR0aDogMTAwcHg7CiAgICBtYXJnaW46IDUwcHg7CiAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBibHVlOwoKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiA2NHB4OwogICAg
aGVpZ2h0OiA2NHB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7CiAg
ICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNHMgZWFzZS1pbi1vdXQ7
CiAgICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlOwogIH0KCiAgI2JveC5wdWxz
aW5nIHsKICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNik7CiAgICAgIC13ZWJraXQt
dHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4ycyBlYXNlLW91dDsKCiAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLW5hbWU6IHB1bHNpbmc7CiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5
OiAwLjIwczsKICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuNXM7CiAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7CiAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7CiAgfQogICAgCiAgPC9zdHls
ZT4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgogICAg
ZnVuY3Rpb24gZG9UZXN0KCkKICAgIHsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jv
eCcpLmNsYXNzTmFtZSA9ICdwdWxzaW5nJzsKICAgIH0KICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CiAgPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CiAg
CiAgPGRpdiBpZD0iYm94Ij4KICA8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46501</attachid>
            <date>2010-01-13 13:56:32 -0800</date>
            <delta_ts>2010-01-13 15:37:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33563-20100113135630.patch</filename>
            <type>text/plain</type>
            <size>11846</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjRmYWVjNi4uNWU1MjEyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0wMS0xMyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUcmFuc2l0aW9uIGZvbGxvd2VkIGJ5IGFuaW1hdGlvbiBmYWls
cyB0byBydW4gdGhlIGFuaW1hdGlvbiBzb21ldGltZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNTYzCisKKyAgICAgICAgSWYgYSB0cmFuc2l0aW9u
IHdhcyBjbG9zZWx5IGZvbGxvd2VkIGJ5IGFuIGFuaW1hdGlvbiwgaXQgd2FzIHBvc3NpYmxlIGZv
ciB0aGUgY2xlYW51cAorICAgICAgICBhZnRlciB0aGUgZW5kIG9mIHRoZSB0cmFuc2l0aW9uIHRv
IGtpbGwgdGhlIGFuaW1hdGlvbi4KKyAgICAgICAgCisgICAgICAgIEZpeCB0aGlzIGJ5IGluY2x1
ZGluZyB0aGV5IGtleWZyYW1lcyBuYW1lIChvciBlbXB0eSBzdHJpbmcgZm9yIHRyYW5zaXRpb25z
KSBpbiB0aGUgbGFiZWxzCisgICAgICAgIHVzZWQgdG8gaWRlbnRpZnkgQ0FBbmltYXRpb25zIG9u
IGxheWVycy4KKyAgICAgICAgCisgICAgICAgIE5vIHRlc3QgYmVjYXVzZSB0aGlzIHdhcyBhIHN1
YnRsZSB0aW1pbmcgaXNzdWUgdGhhdCBpcyBoYXJkIHRvIHJlcHJvZHVjZSBpbiBhIGxheW91dCB0
ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5o
OiBTb21lIG5ldyBtZXRob2RzIGFuZCBzaWduYXRhdXJlIGNoYW5nZXMuCisgICAgICAgIAorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EubW06CisgICAgICAg
IChXZWJDb3JlOjphbmltYXRpb25JZGVudGlmaWVyKTogUGFzcyB0aGUga2V5ZnJhbWVzIG5hbWUs
IHNpbmNlIHRoaXMgaXMgaW5jbHVkZWQgaW4gdGhlIGlkZW50aWZpZXIgc3RyaW5nIG5vdy4KKyAg
ICAgICAgKFdlYkNvcmU6Om1vdmVBbGxBbmltYXRpb25zRm9yUHJvcGVydHkpOiBQYXNzIHRoZSBr
ZXlmcmFtZXMgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6bW92ZUFu
aW1hdGlvbnNGb3JQcm9wZXJ0eSk6IFRyeSB0byBtb3ZlIGJvdGggdHJhbnNpdGlvbi0gYW5kIGFu
aW1hdGlvbi1yZWxhdGVkCisgICAgICAgIENBQW5pbWF0aW9ucywgdXNpbmcgdGhlIGxpc3Qgb2Yg
cnVubmluZyBhbmltYXRpb25zIHRvIGdldCB0aGUga2V5ZnJhbWUgbmFtZXMgZm9yIHRoZSBsYXR0
ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZW5zdXJlU3RydWN0dXJh
bExheWVyKTogbW92ZUFuaW1hdGlvbiByZW5hbWVkIHRvIG1vdmVBbmltYXRpb25zRm9yUHJvcGVy
dHkKKyAgICAgICAgYW5kIHRha2VzIHRoZSBrZXlmcmFtZXMgbmFtZS4KKworICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckFuaW1hdGlvbnMpOiBQYXNzIGtleWZy
YW1lcyBuYW1lIGRvd24gKG9yICIiIGZvciB0cmFuc2l0aW9ucykuCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbk9uTGF5ZXIpOiBQYXNzIGtleWZyYW1lcyBu
YW1lIGRvd24uCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUFuaW1h
dGlvbkZyb21MYXllcik6IFBhc3Mga2V5ZnJhbWVzIG5hbWUgZG93bi4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGF1c2VBbmltYXRpb25PbkxheWVyKTogUGFzcyBrZXlmcmFt
ZXMgbmFtZSBkb3duLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzd2FwRnJv
bU9yVG9UaWxlZExheWVyKTogUGFzcyBrZXlmcmFtZXMgbmFtZSBkb3duLgorCiAyMDEwLTAxLTEz
ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBS
dWJiZXItc3RhbXBlZCBieSBUb3IgQXJuZSBWZXN0YsO4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EuaAppbmRleCA0MmUyN2JjLi5mZTA4ZTZkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0Eu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EuaApA
QCAtMTk2LDEwICsxOTYsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuc3VyZVN0cnVjdHVyYWxM
YXllcihTdHJ1Y3R1cmFsTGF5ZXJQdXJwb3NlKTsKICAgICBTdHJ1Y3R1cmFsTGF5ZXJQdXJwb3Nl
IHN0cnVjdHVyYWxMYXllclB1cnBvc2UoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0QW5pbWF0aW9u
T25MYXllcihDQVByb3BlcnR5QW5pbWF0aW9uKiwgQW5pbWF0ZWRQcm9wZXJ0eUlELCBpbnQgaW5k
ZXgsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKLSAgICBib29sIHJlbW92ZUFuaW1hdGlvbkZyb21MYXll
cihBbmltYXRlZFByb3BlcnR5SUQsIGludCBpbmRleCk7Ci0gICAgdm9pZCBwYXVzZUFuaW1hdGlv
bk9uTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eUlELCBpbnQgaW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0
KTsKKyAgICB2b2lkIHNldEFuaW1hdGlvbk9uTGF5ZXIoQ0FQcm9wZXJ0eUFuaW1hdGlvbiosIEFu
aW1hdGVkUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiwgaW50IGluZGV4LCBkb3VibGUgdGltZU9m
ZnNldCk7CisgICAgYm9vbCByZW1vdmVBbmltYXRpb25Gcm9tTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0
eUlELCBjb25zdCBTdHJpbmcmLCBpbnQgaW5kZXgpOworICAgIHZvaWQgcGF1c2VBbmltYXRpb25P
bkxheWVyKEFuaW1hdGVkUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiwgaW50IGluZGV4LCBkb3Vi
bGUgdGltZU9mZnNldCk7CiAKKyAgICB2b2lkIG1vdmVBbmltYXRpb25zRm9yUHJvcGVydHkoQW5p
bWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5LCBDQUxheWVyKiBmcm9tTGF5ZXIsIENBTGF5ZXIqIHRv
TGF5ZXIpOworICAgIAogICAgIGVudW0gTGF5ZXJDaGFuZ2UgewogICAgICAgICBOb0NoYW5nZSA9
IDAsCiAgICAgICAgIE5hbWVDaGFuZ2VkID0gMSA8PCAxLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCmluZGV4IGE3MDdhNjIuLmJmMTExNGMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJD
QS5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0Eu
bW0KQEAgLTI0NiwxMCArMjQ2LDE1IEBAIHN0YXRpYyBTdHJpbmcgcHJvcGVydHlJZFRvU3RyaW5n
KEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkKICAgICByZXR1cm4gIiI7CiB9CiAKLXN0YXRp
YyBTdHJpbmcgYW5pbWF0aW9uSWRlbnRpZmllcihBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHks
IGludCBpbmRleCkKK3N0YXRpYyBTdHJpbmcgYW5pbWF0aW9uSWRlbnRpZmllcihBbmltYXRlZFBy
b3BlcnR5SUQgcHJvcGVydHksIGNvbnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSwgaW50IGluZGV4
KQogewogICAgIFN0cmluZyBhbmltYXRpb25JZCA9IHByb3BlcnR5SWRUb1N0cmluZyhwcm9wZXJ0
eSk7CiAgICAgYW5pbWF0aW9uSWQuYXBwZW5kKCJfIik7CisgICAgaWYgKCFrZXlmcmFtZXNOYW1l
LmlzRW1wdHkoKSkgeworICAgICAgICBhbmltYXRpb25JZC5hcHBlbmQoa2V5ZnJhbWVzTmFtZSk7
CisgICAgICAgIGFuaW1hdGlvbklkLmFwcGVuZCgiXyIpOworICAgIH0KKyAgICBhbmltYXRpb25J
ZC5hcHBlbmQoIl8iKTsKICAgICBhbmltYXRpb25JZC5hcHBlbmQoU3RyaW5nOjpudW1iZXIoaW5k
ZXgpKTsKICAgICByZXR1cm4gYW5pbWF0aW9uSWQ7CiB9CkBAIC01MTMsMTAgKzUxOCwxMCBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHQpCiAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENoaWxkcmVuVHJh
bnNmb3JtQ2hhbmdlZCk7CiB9CiAKLXN0YXRpYyB2b2lkIG1vdmVBbmltYXRpb24oQW5pbWF0ZWRQ
cm9wZXJ0eUlEIHByb3BlcnR5LCBDQUxheWVyKiBmcm9tTGF5ZXIsIENBTGF5ZXIqIHRvTGF5ZXIp
CitzdGF0aWMgdm9pZCBtb3ZlQWxsQW5pbWF0aW9uc0ZvclByb3BlcnR5KEFuaW1hdGVkUHJvcGVy
dHlJRCBwcm9wZXJ0eSwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBDQUxheWVyKiBmcm9t
TGF5ZXIsIENBTGF5ZXIqIHRvTGF5ZXIpCiB7CiAgICAgZm9yIChpbnQgaW5kZXggPSAwOyA7ICsr
aW5kZXgpIHsKLSAgICAgICAgU3RyaW5nIGFuaW1OYW1lID0gYW5pbWF0aW9uSWRlbnRpZmllcihw
cm9wZXJ0eSwgaW5kZXgpOworICAgICAgICBTdHJpbmcgYW5pbU5hbWUgPSBhbmltYXRpb25JZGVu
dGlmaWVyKHByb3BlcnR5LCBrZXlmcmFtZXNOYW1lLCBpbmRleCk7CiAKICAgICAgICAgQ0FBbmlt
YXRpb24qIGFuaW0gPSBbZnJvbUxheWVyIGFuaW1hdGlvbkZvcktleTphbmltTmFtZV07CiAgICAg
ICAgIGlmICghYW5pbSkKQEAgLTUyOSw2ICs1MzQsMTcgQEAgc3RhdGljIHZvaWQgbW92ZUFuaW1h
dGlvbihBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHksIENBTGF5ZXIqIGZyb21MYXllciwgQ0FM
YXkKICAgICB9CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjptb3ZlQW5pbWF0aW9uc0ZvclBy
b3BlcnR5KEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ0FMYXllciogZnJvbUxheWVyLCBD
QUxheWVyKiB0b0xheWVyKQoreworICAgIC8vIE1vdmUgdHJhbnNpdGlvbnMgZm9yIHRoaXMgcHJv
cGVydHkuCisgICAgbW92ZUFsbEFuaW1hdGlvbnNGb3JQcm9wZXJ0eShwcm9wZXJ0eSwgIiIsIGZy
b21MYXllciwgdG9MYXllcik7CisgICAgCisgICAgLy8gTG9vayBmb3IgcnVubmluZyBhbmltYXRp
b25zIGFmZmVjdGluZyB0aGlzIHByb3BlcnR5LgorICAgIEtleWZyYW1lQW5pbWF0aW9uc01hcDo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9ydW5uaW5nS2V5ZnJhbWVBbmltYXRpb25zLmVuZCgpOwor
ICAgIGZvciAoS2V5ZnJhbWVBbmltYXRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fcnVu
bmluZ0tleWZyYW1lQW5pbWF0aW9ucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAg
IG1vdmVBbGxBbmltYXRpb25zRm9yUHJvcGVydHkocHJvcGVydHksIGl0LT5maXJzdCwgZnJvbUxh
eWVyLCB0b0xheWVyKTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFByZXNlcnZlczNE
KGJvb2wgcHJlc2VydmVzM0QpCiB7CiAgICAgaWYgKHByZXNlcnZlczNEID09IG1fcHJlc2VydmVz
M0QpCkBAIC0xMDA4LDcgKzEwMjQsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6ZW5zdXJlU3Ry
dWN0dXJhbExheWVyKFN0cnVjdHVyYWxMYXllclB1cnBvc2UgcHVycG9zZSkKICAgICAgICAgICAg
IFttX2xheWVyLmdldCgpIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICAgICAgICAgIFtbbV9z
dHJ1Y3R1cmFsTGF5ZXIuZ2V0KCkgc3VwZXJsYXllcl0gcmVwbGFjZVN1YmxheWVyOm1fc3RydWN0
dXJhbExheWVyLmdldCgpIHdpdGg6bV9sYXllci5nZXQoKV07CiAKLSAgICAgICAgICAgIG1vdmVB
bmltYXRpb24oQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSwgbV9zdHJ1Y3R1cmFsTGF5
ZXIuZ2V0KCksIG1fbGF5ZXIuZ2V0KCkpOworICAgICAgICAgICAgbW92ZUFuaW1hdGlvbnNGb3JQ
cm9wZXJ0eShBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtLCBtX3N0cnVjdHVyYWxMYXll
ci5nZXQoKSwgbV9sYXllci5nZXQoKSk7CiAKICAgICAgICAgICAgIC8vIFJlbGVhc2UgdGhlIHN0
cnVjdHVyYWwgbGF5ZXIuCiAgICAgICAgICAgICBtX3N0cnVjdHVyYWxMYXllciA9IDA7CkBAIC0x
MDc3LDcgKzEwOTMsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6ZW5zdXJlU3RydWN0dXJhbExh
eWVyKFN0cnVjdHVyYWxMYXllclB1cnBvc2UgcHVycG9zZSkKICAgICBbW21fbGF5ZXIuZ2V0KCkg
c3VwZXJsYXllcl0gcmVwbGFjZVN1YmxheWVyOm1fbGF5ZXIuZ2V0KCkgd2l0aDptX3N0cnVjdHVy
YWxMYXllci5nZXQoKV07CiAgICAgW21fc3RydWN0dXJhbExheWVyLmdldCgpIGFkZFN1YmxheWVy
Om1fbGF5ZXIuZ2V0KCldOwogCi0gICAgbW92ZUFuaW1hdGlvbihBbmltYXRlZFByb3BlcnR5V2Vi
a2l0VHJhbnNmb3JtLCBtX2xheWVyLmdldCgpLCBtX3N0cnVjdHVyYWxMYXllci5nZXQoKSk7Cisg
ICAgbW92ZUFuaW1hdGlvbnNGb3JQcm9wZXJ0eShBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNm
b3JtLCBtX2xheWVyLmdldCgpLCBtX3N0cnVjdHVyYWxMYXllci5nZXQoKSk7CiAgICAgCiAgICAg
dXBkYXRlU3VibGF5ZXJMaXN0KCk7CiAKQEAgLTEyMTQsMTAgKzEyMzAsOCBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6dXBkYXRlTGF5ZXJBbmltYXRpb25zKCkKICAgICAgICAgZm9yIChIYXNoU2V0
PEFuaW1hdGVkUHJvcGVydHk+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fdHJhbnNpdGlvblByb3Bl
cnRpZXNUb1JlbW92ZS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIEFu
aW1hdGVkUHJvcGVydHlJRCBjdXJyUHJvcGVydHkgPSBzdGF0aWNfY2FzdDxBbmltYXRlZFByb3Bl
cnR5SUQ+KCppdCk7CiAgICAgICAgICAgICAvLyBSZW1vdmUgYWxsIGFuaW1hdGlvbnMgd2l0aCB0
aGlzIHByb3BlcnR5IGluIHRoZSBrZXkuCi0gICAgICAgICAgICAvLyBXZSBjYW4ndCB0ZWxsIGlm
IHRoaXMgcHJvcGVydHkgaXMgYW5pbWF0aW5nIHZpYSBhIHRyYW5zaXRpb24gb3IgYW5pbWF0aW9u
IGhlcmUsIGJ1dAotICAgICAgICAgICAgLy8gdGhhdCdzIE9LIGJlY2F1c2UgdGhlIHN0eWxlIHN5
c3RlbSBuZXZlciBzZW5kcyBib3RoIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zIGZvciB0aGUg
c2FtZSBwcm9wZXJ0eS4KICAgICAgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgOyArK2luZGV4
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZW1vdmVBbmltYXRpb25Gcm9tTGF5ZXIoY3VyclBy
b3BlcnR5LCBpbmRleCkpCisgICAgICAgICAgICAgICAgaWYgKCFyZW1vdmVBbmltYXRpb25Gcm9t
TGF5ZXIoY3VyclByb3BlcnR5LCAiIiwgaW5kZXgpKQogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTIzOSwxMCArMTI1MywxMCBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlTGF5ZXJBbmltYXRpb25zKCkKICAgICAgICAgICAgICAg
ICBjb25zdCBBbmltYXRpb25QYWlyJiBjdXJyUGFpciA9IGFuaW1hdGlvbnNbaV07CiAgICAgICAg
ICAgICAgICAgc3dpdGNoIChwcm9jZXNzaW5nSW5mby5hY3Rpb24pIHsKICAgICAgICAgICAgICAg
ICAgICAgY2FzZSBSZW1vdmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVBbmltYXRp
b25Gcm9tTGF5ZXIoc3RhdGljX2Nhc3Q8QW5pbWF0ZWRQcm9wZXJ0eUlEPihjdXJyUGFpci5maXJz
dCksIGN1cnJQYWlyLnNlY29uZCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVBbmlt
YXRpb25Gcm9tTGF5ZXIoc3RhdGljX2Nhc3Q8QW5pbWF0ZWRQcm9wZXJ0eUlEPihjdXJyUGFpci5m
aXJzdCksIGN1cnJLZXlmcmFtZU5hbWUsIGN1cnJQYWlyLnNlY29uZCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBQYXVzZToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHBhdXNlQW5pbWF0aW9uT25MYXllcihzdGF0aWNfY2FzdDxBbmlt
YXRlZFByb3BlcnR5SUQ+KGN1cnJQYWlyLmZpcnN0KSwgY3VyclBhaXIuc2Vjb25kLCBwcm9jZXNz
aW5nSW5mby50aW1lT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdXNlQW5pbWF0
aW9uT25MYXllcihzdGF0aWNfY2FzdDxBbmltYXRlZFByb3BlcnR5SUQ+KGN1cnJQYWlyLmZpcnN0
KSwgY3VycktleWZyYW1lTmFtZSwgY3VyclBhaXIuc2Vjb25kLCBwcm9jZXNzaW5nSW5mby50aW1l
T2Zmc2V0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KQEAgLTEyNTgsNyArMTI3Miw3IEBAIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVMYXllckFuaW1hdGlvbnMoKQogICAgIGlmICgobnVtQW5pbWF0aW9ucyA9IG1f
dW5jb21pdHRlZEFuaW1hdGlvbnMuc2l6ZSgpKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bUFuaW1hdGlvbnM7ICsraSkgewogICAgICAgICAgICAgY29uc3QgTGF5ZXJBbmlt
YXRpb24mIHBlbmRpbmdBbmltYXRpb24gPSBtX3VuY29taXR0ZWRBbmltYXRpb25zW2ldOwotICAg
ICAgICAgICAgc2V0QW5pbWF0aW9uT25MYXllcihwZW5kaW5nQW5pbWF0aW9uLm1fYW5pbWF0aW9u
LmdldCgpLCBwZW5kaW5nQW5pbWF0aW9uLm1fcHJvcGVydHksIHBlbmRpbmdBbmltYXRpb24ubV9p
bmRleCwgcGVuZGluZ0FuaW1hdGlvbi5tX3RpbWVPZmZzZXQpOworICAgICAgICAgICAgc2V0QW5p
bWF0aW9uT25MYXllcihwZW5kaW5nQW5pbWF0aW9uLm1fYW5pbWF0aW9uLmdldCgpLCBwZW5kaW5n
QW5pbWF0aW9uLm1fcHJvcGVydHksIHBlbmRpbmdBbmltYXRpb24ubV9rZXlmcmFtZXNOYW1lLCBw
ZW5kaW5nQW5pbWF0aW9uLm1faW5kZXgsIHBlbmRpbmdBbmltYXRpb24ubV90aW1lT2Zmc2V0KTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFwZW5kaW5nQW5pbWF0aW9uLm1fa2V5ZnJh
bWVzTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEga2V5
ZnJhbWUgYW5pbSwgd2UgaGF2ZSB0byByZW1lbWJlciB0aGUgYXNzb2NpYXRpb24gb2Yga2V5ZnJh
bWVzIG5hbWUgdG8gcHJvcGVydHkvaW5kZXggcGFpcnMsCkBAIC0xMjgwLDEzICsxMjk0LDEzIEBA
IHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckFuaW1hdGlvbnMoKQogICAgIH0KIH0K
IAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbk9uTGF5ZXIoQ0FQcm9wZXJ0eUFu
aW1hdGlvbiogY2FBbmltLCBBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHksIGludCBpbmRleCwg
ZG91YmxlIHRpbWVPZmZzZXQpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QW5pbWF0aW9uT25M
YXllcihDQVByb3BlcnR5QW5pbWF0aW9uKiBjYUFuaW0sIEFuaW1hdGVkUHJvcGVydHlJRCBwcm9w
ZXJ0eSwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBpbnQgaW5kZXgsIGRvdWJsZSB0aW1l
T2Zmc2V0KQogewogICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyID0gYW5pbWF0ZWRMYXllcihwcm9w
ZXJ0eSk7CiAKICAgICBbY2FBbmltIHNldFRpbWVPZmZzZXQ6dGltZU9mZnNldF07CiAgICAgCi0g
ICAgU3RyaW5nIGFuaW1hdGlvbk5hbWUgPSBhbmltYXRpb25JZGVudGlmaWVyKHByb3BlcnR5LCBp
bmRleCk7CisgICAgU3RyaW5nIGFuaW1hdGlvbk5hbWUgPSBhbmltYXRpb25JZGVudGlmaWVyKHBy
b3BlcnR5LCBrZXlmcmFtZXNOYW1lLCBpbmRleCk7CiAgICAgCiAgICAgW2xheWVyIHJlbW92ZUFu
aW1hdGlvbkZvcktleTphbmltYXRpb25OYW1lXTsKICAgICBbbGF5ZXIgYWRkQW5pbWF0aW9uOmNh
QW5pbSBmb3JLZXk6YW5pbWF0aW9uTmFtZV07CkBAIC0xMzA3LDExICsxMzIxLDExIEBAIHN0YXRp
YyB2b2lkIGJ1ZzczMTEzNjdXb3JrYXJvdW5kKENBTGF5ZXIqIHRyYW5zZm9ybUxheWVyLCBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hCiAgICAgW3RyYW5zZm9ybUxheWVyIHNldFRyYW5zZm9ybTpjYVRy
YW5zZm9ybV07CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjpyZW1vdmVBbmltYXRpb25Gcm9t
TGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5LCBpbnQgaW5kZXgpCitib29sIEdyYXBo
aWNzTGF5ZXJDQTo6cmVtb3ZlQW5pbWF0aW9uRnJvbUxheWVyKEFuaW1hdGVkUHJvcGVydHlJRCBw
cm9wZXJ0eSwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBpbnQgaW5kZXgpCiB7CiAgICAg
UGxhdGZvcm1MYXllciogbGF5ZXIgPSBhbmltYXRlZExheWVyKHByb3BlcnR5KTsKIAotICAgIFN0
cmluZyBhbmltYXRpb25OYW1lID0gYW5pbWF0aW9uSWRlbnRpZmllcihwcm9wZXJ0eSwgaW5kZXgp
OworICAgIFN0cmluZyBhbmltYXRpb25OYW1lID0gYW5pbWF0aW9uSWRlbnRpZmllcihwcm9wZXJ0
eSwga2V5ZnJhbWVzTmFtZSwgaW5kZXgpOwogCiAgICAgaWYgKCFbbGF5ZXIgYW5pbWF0aW9uRm9y
S2V5OmFuaW1hdGlvbk5hbWVdKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzM3LDExICsx
MzUxLDExIEBAIHN0YXRpYyB2b2lkIGNvcHlBbmltYXRpb25Qcm9wZXJ0aWVzKENBUHJvcGVydHlB
bmltYXRpb24qIGZyb20sIENBUHJvcGVydHlBbmltYXRpCiAjZW5kaWYKIH0KIAotdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnBhdXNlQW5pbWF0aW9uT25MYXllcihBbmltYXRlZFByb3BlcnR5SUQgcHJv
cGVydHksIGludCBpbmRleCwgZG91YmxlIHRpbWVPZmZzZXQpCit2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6cGF1c2VBbmltYXRpb25PbkxheWVyKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29u
c3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBpbnQgaW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0KQog
ewogICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyID0gYW5pbWF0ZWRMYXllcihwcm9wZXJ0eSk7CiAK
LSAgICBTdHJpbmcgYW5pbWF0aW9uTmFtZSA9IGFuaW1hdGlvbklkZW50aWZpZXIocHJvcGVydHks
IGluZGV4KTsKKyAgICBTdHJpbmcgYW5pbWF0aW9uTmFtZSA9IGFuaW1hdGlvbklkZW50aWZpZXIo
cHJvcGVydHksIGtleWZyYW1lc05hbWUsIGluZGV4KTsKIAogICAgIENBQW5pbWF0aW9uKiBjYUFu
aW0gPSBbbGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmFuaW1hdGlvbk5hbWVdOwogICAgIGlmICghY2FB
bmltKQpAQCAtMTgzNSw5ICsxODQ5LDkgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnN3YXBGcm9t
T3JUb1RpbGVkTGF5ZXIoYm9vbCB1c2VUaWxlZExheWVyKQogI2VuZGlmCiAKICAgICAvLyBtb3Zl
IG92ZXIgYW5pbWF0aW9ucwotICAgIG1vdmVBbmltYXRpb24oQW5pbWF0ZWRQcm9wZXJ0eVdlYmtp
dFRyYW5zZm9ybSwgb2xkTGF5ZXIuZ2V0KCksIG1fbGF5ZXIuZ2V0KCkpOwotICAgIG1vdmVBbmlt
YXRpb24oQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHksIG9sZExheWVyLmdldCgpLCBtX2xheWVyLmdl
dCgpKTsKLSAgICBtb3ZlQW5pbWF0aW9uKEFuaW1hdGVkUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3Is
IG9sZExheWVyLmdldCgpLCBtX2xheWVyLmdldCgpKTsKKyAgICBtb3ZlQW5pbWF0aW9uc0ZvclBy
b3BlcnR5KEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0sIG9sZExheWVyLmdldCgpLCBt
X2xheWVyLmdldCgpKTsKKyAgICBtb3ZlQW5pbWF0aW9uc0ZvclByb3BlcnR5KEFuaW1hdGVkUHJv
cGVydHlPcGFjaXR5LCBvbGRMYXllci5nZXQoKSwgbV9sYXllci5nZXQoKSk7CisgICAgbW92ZUFu
aW1hdGlvbnNGb3JQcm9wZXJ0eShBbmltYXRlZFByb3BlcnR5QmFja2dyb3VuZENvbG9yLCBvbGRM
YXllci5nZXQoKSwgbV9sYXllci5nZXQoKSk7CiAgICAgCiAgICAgLy8gbmVlZCB0byB0ZWxsIG5l
dyBsYXllciB0byBkcmF3IGl0c2VsZgogICAgIHNldE5lZWRzRGlzcGxheSgpOwo=
</data>
<flag name="review"
          id="28779"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>