<?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>88439</bug_id>
          
          <creation_ts>2012-06-06 11:56:52 -0700</creation_ts>
          <short_desc>[chromium] Fix race condition where animations start, finish and are deleted on the composite thread, all before the start even arrives on the main thread.</short_desc>
          <delta_ts>2012-06-14 07:57:29 -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>WebKit Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>vollick</reporter>
          <assigned_to>vollick</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>epenner</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>642666</commentid>
    <comment_count>0</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-06-06 11:56:52 -0700</bug_when>
    <thetext>An animation can currently finish on the impl thread and be disposed before the start event arrives on the main thread. Code needs to be put in place to address this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648277</commentid>
    <comment_count>1</comment_count>
      <attachid>147368</attachid>
    <who name="Eric Penner">epenner</who>
    <bug_when>2012-06-13 11:22:16 -0700</bug_when>
    <thetext>Created attachment 147368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648366</commentid>
    <comment_count>2</comment_count>
      <attachid>147368</attachid>
    <who name="">vollick</who>
    <bug_when>2012-06-13 12:34:41 -0700</bug_when>
    <thetext>Comment on attachment 147368
Patch

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

LGTM, with a few nits. Looks like the original code duplicated the logic of isFinished in a couple of places. Thanks for doing this.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp:87
&gt; +    if (m_runState == Finished || m_runState == Aborted || m_runState == WaitingForDeletion)

if (isFinished())

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:193
&gt; +                &amp;&amp; m_activeAnimations[i]-&gt;runState() != CCActiveAnimation::WaitingForDeletion)

if (!m_activeAnimations[i]-&gt;isFinished())

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:256
&gt; +                &amp;&amp; m_activeAnimations[i]-&gt;runState() != CCActiveAnimation::WaitingForDeletion)

if (!m_activeAnimations[i]-&gt;isFinished())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648556</commentid>
    <comment_count>3</comment_count>
      <attachid>147439</attachid>
    <who name="Eric Penner">epenner</who>
    <bug_when>2012-06-13 16:05:00 -0700</bug_when>
    <thetext>Created attachment 147439
IsFinished_Changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649175</commentid>
    <comment_count>4</comment_count>
      <attachid>147439</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 07:57:24 -0700</bug_when>
    <thetext>Comment on attachment 147439
IsFinished_Changes

Clearing flags on attachment: 147439

Committed r120326: &lt;http://trac.webkit.org/changeset/120326&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649176</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 07:57:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147368</attachid>
            <date>2012-06-13 11:22:16 -0700</date>
            <delta_ts>2012-06-13 16:04:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88439-20120613112215.patch</filename>
            <type>text/plain</type>
            <size>10083</size>
            <attacher name="Eric Penner">epenner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMxMzM2MzIyNDkwYjRj
ODIwMmIyMjliOGE5MzE1ZjYwM2FiYjdhYS4uYWY0MzgxNDFiZTcwNmVhMDU2ZjRiMDZkYTY3ZWI1
YjI0OWFjMGYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTEzICBFcmlj
IFBlbm5lciAgPGVwZW5uZXJAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEZpeCBy
YWNlIGNvbmRpdGlvbiB3aGVyZSBhbmltYXRpb25zIHN0YXJ0LCBmaW5pc2ggYW5kIGFyZSBkZWxl
dGVkIG9uIHRoZSBjb21wb3NpdGUgdGhyZWFkLCBhbGwgYmVmb3JlIHRoZSBzdGFydCBldmVuIGFy
cml2ZXMgb24gdGhlIG1haW4gdGhyZWFkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODg0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTY2hlZHVsaW5nIGJlaGF2aW9yIGNvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2
ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6aXNG
aW5pc2hlZEF0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Fj
dGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246Omlz
RmluaXNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaEFuaW1hdGlvblVwZGF0ZXNUbyk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6aGFzQWN0aXZlQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXI6Om1hcmtBbmltYXRpb25zRm9yRGVsZXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1cmdlQW5pbWF0aW9uc01hcmtlZEZv
ckRlbGV0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoQ0NMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXIpOgorCiAyMDEyLTA2LTA4ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBCZXR0ZXIgbGFiZWxzIHBvc2l0aW9uaW5n
IG9uIHRoZSBtZW1vcnkgcGllIGNoYXJ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5j
cHAKaW5kZXggMWVjY2I4ZjA4NzdmOGI2NWFiZDMxZGEyMzk2ZTVjZTcwYjEyNDdjNC4uN2U2ZWRm
YTAyNjkwNTdhMDE5OTViZDEzNGFjZTk2YmQ0YmMzNDNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0
aXZlQW5pbWF0aW9uLmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIENDQWN0aXZlQW5pbWF0aW9u
OjpyZXN1bWUoZG91YmxlIG1vbm90b25pY1RpbWUpCiAKIGJvb2wgQ0NBY3RpdmVBbmltYXRpb246
OmlzRmluaXNoZWRBdChkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKIHsKLSAgICBpZiAobV9y
dW5TdGF0ZSA9PSBGaW5pc2hlZCB8fCBtX3J1blN0YXRlID09IEFib3J0ZWQpCisgICAgaWYgKG1f
cnVuU3RhdGUgPT0gRmluaXNoZWQgfHwgbV9ydW5TdGF0ZSA9PSBBYm9ydGVkIHx8IG1fcnVuU3Rh
dGUgPT0gV2FpdGluZ0ZvckRlbGV0aW9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlm
IChtX25lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0
aW9uLmgKaW5kZXggMDIyNTU3MDJhNzcwZTE0ZDI2MDhmYmIzNTEwYTgzNThkMTQwYTI5Yi4uOWE5
Mzg5NDU3NjZkNGYzN2JhNDA3NWQyMDM4MzMyMzkxY2EwZDRmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Fj
dGl2ZUFuaW1hdGlvbi5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgV2FpdGlu
Z0Zvck5leHRUaWNrID0gMSwKICAgICAgICAgV2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eSwK
ICAgICAgICAgV2FpdGluZ0ZvclN0YXJ0VGltZSwKKyAgICAgICAgV2FpdGluZ0ZvckRlbGV0aW9u
LAogICAgICAgICBSdW5uaW5nLAogICAgICAgICBQYXVzZWQsCiAgICAgICAgIEZpbmlzaGVkLApA
QCAtOTUsNyArOTYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbHRlcm5hdGVzRGlyZWN0aW9u
KGJvb2wgYWx0ZXJuYXRlcykgeyBtX2FsdGVybmF0ZXNEaXJlY3Rpb24gPSBhbHRlcm5hdGVzOyB9
CiAKICAgICBib29sIGlzRmluaXNoZWRBdChkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3Q7Ci0g
ICAgYm9vbCBpc0ZpbmlzaGVkKCkgY29uc3QgeyByZXR1cm4gbV9ydW5TdGF0ZSA9PSBGaW5pc2hl
ZCB8fCBtX3J1blN0YXRlID09IEFib3J0ZWQ7IH0KKyAgICBib29sIGlzRmluaXNoZWQoKSBjb25z
dCB7IHJldHVybiBtX3J1blN0YXRlID09IEZpbmlzaGVkCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfHwgbV9ydW5TdGF0ZSA9PSBBYm9ydGVkCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfHwgbV9ydW5TdGF0ZSA9PSBXYWl0aW5nRm9yRGVsZXRpb247IH0KIAog
ICAgIENDQW5pbWF0aW9uQ3VydmUqIGN1cnZlKCkgeyByZXR1cm4gbV9jdXJ2ZS5nZXQoKTsgfQog
ICAgIGNvbnN0IENDQW5pbWF0aW9uQ3VydmUqIGN1cnZlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJ2
ZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwCmluZGV4IDA5Njk3OTU0NDgzYTU3OTJmMmU0MjhkMzBmMGEyZTRmY2NjZGFmZjYuLjdh
OGY1NzM5NWEwMTExOTM0MzA5YTZiOTMyZWI4YTgzM2FlYTIwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTE4OCw3ICsxODgsOSBA
QCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb24oaW50IGFu
aW1hdGlvbklkKQogdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c3VzcGVuZEFuaW1h
dGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1fYWN0aXZl
QW5pbWF0aW9uc1tpXS0+cnVuU3RhdGUoKSAhPSBDQ0FjdGl2ZUFuaW1hdGlvbjo6RmluaXNoZWQg
JiYgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpICE9IENDQWN0aXZlQW5pbWF0aW9u
OjpBYm9ydGVkKQorICAgICAgICBpZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgp
ICE9IENDQWN0aXZlQW5pbWF0aW9uOjpGaW5pc2hlZAorICAgICAgICAgICAgICAgICYmIG1fYWN0
aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3RhdGUoKSAhPSBDQ0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRl
ZAorICAgICAgICAgICAgICAgICYmIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3RhdGUoKSAh
PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvckRlbGV0aW9uKQogICAgICAgICAgICAgbV9h
Y3RpdmVBbmltYXRpb25zW2ldLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2Vk
LCBtb25vdG9uaWNUaW1lKTsKICAgICB9CiB9CkBAIC0yMTAsOCArMjEyLDE0IEBAIHZvaWQgQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1c2hBbmltYXRpb25VcGRhdGVzVG8oQ0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsCiAgICAgICAgIHJlcGxhY2VJbXBsVGhyZWFkQW5pbWF0aW9ucyhjb250
cm9sbGVySW1wbCk7CiAgICAgICAgIG1fZm9yY2VTeW5jID0gZmFsc2U7CiAgICAgfSBlbHNlIHsK
KyAgICAgICAgcHVyZ2VBbmltYXRpb25zTWFya2VkRm9yRGVsZXRpb24oKTsKICAgICAgICAgcHVz
aE5ld0FuaW1hdGlvbnNUb0ltcGxUaHJlYWQoY29udHJvbGxlckltcGwpOworCisgICAgICAgIC8v
IFJlbW92ZSBmaW5pc2hlZCBpbXBsIHNpZGUgYW5pbWF0aW9ucyBvbmx5IGFmdGVyIHB1c2hpbmcs
CisgICAgICAgIC8vIGFuZCBvbmx5IGFmdGVyIHRoZSBhbmltYXRpb25zIGFyZSBkZWxldGVkIG9u
IHRoZSBtYWluIHRocmVhZAorICAgICAgICAvLyB0aGlzIGluc3VyZXMgd2Ugd2lsbCBuZXZlciBw
dXNoIGFuIGFuaW1hdGlvbiB0d2ljZS4KICAgICAgICAgcmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRl
ZE9uTWFpblRocmVhZChjb250cm9sbGVySW1wbCk7CisKICAgICAgICAgcHVzaFByb3BlcnRpZXNU
b0ltcGxUaHJlYWQoY29udHJvbGxlckltcGwpOwogICAgIH0KIH0KQEAgLTIyMyw3ICsyMzEsNyBA
QCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRlKGRvdWJsZSBtb25vdG9u
aWNUaW1lLCBDQ0FuaW1hdGlvbkV2ZW50cwogICAgIHN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JU
YXJnZXRBdmFpbGFiaWxpdHkobW9ub3RvbmljVGltZSwgZXZlbnRzKTsKICAgICByZXNvbHZlQ29u
ZmxpY3RzKG1vbm90b25pY1RpbWUpOwogICAgIHRpY2tBbmltYXRpb25zKG1vbm90b25pY1RpbWUp
OwotICAgIHB1cmdlRmluaXNoZWRBbmltYXRpb25zKG1vbm90b25pY1RpbWUsIGV2ZW50cyk7Cisg
ICAgbWFya0FuaW1hdGlvbnNGb3JEZWxldGlvbihtb25vdG9uaWNUaW1lLCBldmVudHMpOwogICAg
IHN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHkobW9ub3RvbmljVGlt
ZSwgZXZlbnRzKTsKIH0KIApAQCAtMjQzLDcgKzI1MSw5IEBAIENDQWN0aXZlQW5pbWF0aW9uKiBD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Z2V0QWN0aXZlQW5pbWF0aW9uKGludCBncm91cElk
LCBDCiBib29sIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpoYXNBY3RpdmVBbmltYXRpb24o
KSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25z
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnJ1blN0
YXRlKCkgIT0gQ0NBY3RpdmVBbmltYXRpb246OkZpbmlzaGVkICYmIG1fYWN0aXZlQW5pbWF0aW9u
c1tpXS0+cnVuU3RhdGUoKSAhPSBDQ0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZCkKKyAgICAgICAg
aWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3RhdGUoKSAhPSBDQ0FjdGl2ZUFuaW1hdGlv
bjo6RmluaXNoZWQKKyAgICAgICAgICAgICAgICAmJiBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnJ1
blN0YXRlKCkgIT0gQ0NBY3RpdmVBbmltYXRpb246OkFib3J0ZWQKKyAgICAgICAgICAgICAgICAm
JiBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnJ1blN0YXRlKCkgIT0gQ0NBY3RpdmVBbmltYXRpb246
OldhaXRpbmdGb3JEZWxldGlvbikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAg
ICByZXR1cm4gZmFsc2U7CkBAIC00MTMsMTQgKzQyMywxNCBAQCB2b2lkIENDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyOjpyZXNvbHZlQ29uZmxpY3RzKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogICAg
IH0KIH0KIAotdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVyZ2VGaW5pc2hlZEFu
aW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yKiBl
dmVudHMpCisKK3ZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om1hcmtBbmltYXRpb25z
Rm9yRGVsZXRpb24oZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9y
KiBldmVudHMpCiB7Ci0gICAgLy8gRWFjaCBpdGVyYXRpb24sIG1fYWN0aXZlQW5pbWF0aW9ucy5z
aXplKCkgZGVjcmVhc2VzIG9yIGkgaW5jcmVtZW50cywKLSAgICAvLyBndWFyYW50ZWVpbmcgcHJv
Z3Jlc3MgdG93YXJkcyBsb29wIHRlcm1pbmF0aW9uLgotICAgIHNpemVfdCBpID0gMDsKLSAgICB3
aGlsZSAoaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCkpIHsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7IGkrKykgewogICAgICAgICBpbnQg
Z3JvdXBJZCA9IG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Z3JvdXAoKTsKICAgICAgICAgYm9vbCBh
bGxBbmltc1dpdGhTYW1lSWRBcmVGaW5pc2hlZCA9IGZhbHNlOworICAgICAgICAvLyBJZiBhbiBh
bmltYXRpb24gaXMgZmluaXNoZWQsIGFuZCBub3QgYWxyZWFkeSBtYXJrZWQgZm9yIGRlbGV0aW9u
LAorICAgICAgICAvLyBGaW5kIG91dCBpZiBhbGwgb3RoZXIgYW5pbWF0aW9ucyBpbiB0aGUgc2Ft
ZSBncm91cCBhcmUgYWxzbyBmaW5pc2hlZC4KICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9u
c1tpXS0+aXNGaW5pc2hlZCgpKSB7CiAgICAgICAgICAgICBhbGxBbmltc1dpdGhTYW1lSWRBcmVG
aW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IG1fYWN0
aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraikgewpAQCAtNDMzLDE5ICs0NDMsMjMgQEAgdm9pZCBD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVyZ2VGaW5pc2hlZEFuaW1hdGlvbnMoZG91Ymxl
IG1vbm90b25pY1RpbWUsIEMKICAgICAgICAgaWYgKGFsbEFuaW1zV2l0aFNhbWVJZEFyZUZpbmlz
aGVkKSB7CiAgICAgICAgICAgICAvLyBXZSBub3cgbmVlZCB0byByZW1vdmUgYWxsIGFuaW1hdGlv
bnMgd2l0aCB0aGUgc2FtZSBncm91cCBpZCBhcyBncm91cElkCiAgICAgICAgICAgICAvLyAoYW5k
IHNlbmQgYWxvbmcgYW5pbWF0aW9uIGZpbmlzaGVkIG5vdGlmaWNhdGlvbnMsIGlmIG5lY2Vzc2Fy
eSkuCi0gICAgICAgICAgICAvLyBFYWNoIGl0ZXJhdGlvbiwgbV9hY3RpdmVBbmltYXRpb25zLnNp
emUoKSBkZWNyZWFzZXMgb3IgaiBpbmNyZW1lbnRzLAotICAgICAgICAgICAgLy8gZ3VhcmFudGVl
aW5nIHByb2dyZXNzIHRvd2FyZHMgbG9vcCB0ZXJtaW5hdGlvbi4gQWxzbywgd2UgYXJlIGd1YXJh
bnRlZWQKLSAgICAgICAgICAgIC8vIHRvIHJlbW92ZSBhdCBsZWFzdCBvbmUgYWN0aXZlIGFuaW1h
dGlvbi4KLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSBpOyBqIDwgbV9hY3RpdmVBbmltYXRp
b25zLnNpemUoKTspIHsKLSAgICAgICAgICAgICAgICBpZiAoZ3JvdXBJZCAhPSBtX2FjdGl2ZUFu
aW1hdGlvbnNbal0tPmdyb3VwKCkpCi0gICAgICAgICAgICAgICAgICAgIGorKzsKLSAgICAgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSBpOyBqIDwgbV9hY3Rp
dmVBbmltYXRpb25zLnNpemUoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKGdyb3VwSWQg
PT0gbV9hY3RpdmVBbmltYXRpb25zW2pdLT5ncm91cCgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChldmVudHMpCiAgICAgICAgICAgICAgICAgICAgICAgICBldmVudHMtPmFwcGVuZChDQ0Fu
aW1hdGlvbkV2ZW50KENDQW5pbWF0aW9uRXZlbnQ6OkZpbmlzaGVkLCBtX2NsaWVudC0+aWQoKSwg
bV9hY3RpdmVBbmltYXRpb25zW2pdLT5ncm91cCgpLCBtX2FjdGl2ZUFuaW1hdGlvbnNbal0tPnRh
cmdldFByb3BlcnR5KCksIG1vbm90b25pY1RpbWUpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9h
Y3RpdmVBbmltYXRpb25zLnJlbW92ZShqKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hY3RpdmVB
bmltYXRpb25zW2pdLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvckRl
bGV0aW9uLCBtb25vdG9uaWNUaW1lKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzZQorICAgICAgICB9CisgICAgfQorfQorCit2b2lkIENDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpwdXJnZUFuaW1hdGlvbnNNYXJrZWRGb3JEZWxldGlvbigpCit7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOykgewor
ICAgICAgICBpZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpID09IENDQWN0aXZl
QW5pbWF0aW9uOjpXYWl0aW5nRm9yRGVsZXRpb24pCisgICAgICAgICAgICBtX2FjdGl2ZUFuaW1h
dGlvbnMucmVtb3ZlKGkpOworICAgICAgICBlbHNlCiAgICAgICAgICAgICBpKys7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmgKaW5kZXgg
YzRjOTE1OGIyYzg3Y2ZlNDZkZmMxNjJkMDg3YTExZmRmZmI4OTI0OC4uZTk4MzcyMDJmZGIwZjIw
MTU3NmY1ZjhlZjUyY2IzYzdkOTdkNmZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlci5oCkBAIC0xMTUsNyArMTE1LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIHN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JTdGFydFRpbWUoZG91YmxlIG1vbm90b25pY1Rp
bWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yKik7CiAgICAgdm9pZCBzdGFydEFuaW1hdGlvbnNX
YWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5KGRvdWJsZSBtb25vdG9uaWNUaW1lLCBDQ0FuaW1h
dGlvbkV2ZW50c1ZlY3RvciopOwogICAgIHZvaWQgcmVzb2x2ZUNvbmZsaWN0cyhkb3VibGUgbW9u
b3RvbmljVGltZSk7Ci0gICAgdm9pZCBwdXJnZUZpbmlzaGVkQW5pbWF0aW9ucyhkb3VibGUgbW9u
b3RvbmljVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3IqKTsKKyAgICB2b2lkIG1hcmtBbmlt
YXRpb25zRm9yRGVsZXRpb24oZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRz
VmVjdG9yKik7CisgICAgdm9pZCBwdXJnZUFuaW1hdGlvbnNNYXJrZWRGb3JEZWxldGlvbigpOwog
CiAgICAgdm9pZCB0aWNrQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147439</attachid>
            <date>2012-06-13 16:05:00 -0700</date>
            <delta_ts>2012-06-14 07:57:24 -0700</delta_ts>
            <desc>IsFinished_Changes</desc>
            <filename>bug-88439-20120613160500.patch</filename>
            <type>text/plain</type>
            <size>9598</size>
            <attacher name="Eric Penner">epenner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMxMzM2MzIyNDkwYjRj
ODIwMmIyMjliOGE5MzE1ZjYwM2FiYjdhYS4uYWY0MzgxNDFiZTcwNmVhMDU2ZjRiMDZkYTY3ZWI1
YjI0OWFjMGYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTEzICBFcmlj
IFBlbm5lciAgPGVwZW5uZXJAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEZpeCBy
YWNlIGNvbmRpdGlvbiB3aGVyZSBhbmltYXRpb25zIHN0YXJ0LCBmaW5pc2ggYW5kIGFyZSBkZWxl
dGVkIG9uIHRoZSBjb21wb3NpdGUgdGhyZWFkLCBhbGwgYmVmb3JlIHRoZSBzdGFydCBldmVuIGFy
cml2ZXMgb24gdGhlIG1haW4gdGhyZWFkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODg0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTY2hlZHVsaW5nIGJlaGF2aW9yIGNvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2
ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6aXNG
aW5pc2hlZEF0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Fj
dGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246Omlz
RmluaXNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaEFuaW1hdGlvblVwZGF0ZXNUbyk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6aGFzQWN0aXZlQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXI6Om1hcmtBbmltYXRpb25zRm9yRGVsZXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1cmdlQW5pbWF0aW9uc01hcmtlZEZv
ckRlbGV0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoQ0NMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXIpOgorCiAyMDEyLTA2LTA4ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBCZXR0ZXIgbGFiZWxzIHBvc2l0aW9uaW5n
IG9uIHRoZSBtZW1vcnkgcGllIGNoYXJ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5j
cHAKaW5kZXggMWVjY2I4ZjA4NzdmOGI2NWFiZDMxZGEyMzk2ZTVjZTcwYjEyNDdjNC4uZmY2ZTcz
Mzk4Zjc3YmMzN2RhNmY5MTBkNzUxMjY3NzU5YTgwMjU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0
aXZlQW5pbWF0aW9uLmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIENDQWN0aXZlQW5pbWF0aW9u
OjpyZXN1bWUoZG91YmxlIG1vbm90b25pY1RpbWUpCiAKIGJvb2wgQ0NBY3RpdmVBbmltYXRpb246
OmlzRmluaXNoZWRBdChkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKIHsKLSAgICBpZiAobV9y
dW5TdGF0ZSA9PSBGaW5pc2hlZCB8fCBtX3J1blN0YXRlID09IEFib3J0ZWQpCisgICAgaWYgKGlz
RmluaXNoZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAobV9uZWVkc1N5bmNo
cm9uaXplZFN0YXJ0VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCmluZGV4IDAy
MjU1NzAyYTc3MGUxNGQyNjA4ZmJiMzUxMGE4MzU4ZDE0MGEyOWIuLjlhOTM4OTQ1NzY2ZDRmMzdi
YTQwNzVkMjAzODMzMjM5MWNhMGQ0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24u
aApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdhaXRpbmdGb3JOZXh0VGljayA9
IDEsCiAgICAgICAgIFdhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHksCiAgICAgICAgIFdhaXRp
bmdGb3JTdGFydFRpbWUsCisgICAgICAgIFdhaXRpbmdGb3JEZWxldGlvbiwKICAgICAgICAgUnVu
bmluZywKICAgICAgICAgUGF1c2VkLAogICAgICAgICBGaW5pc2hlZCwKQEAgLTk1LDcgKzk2LDkg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0QWx0ZXJuYXRlc0RpcmVjdGlvbihib29sIGFsdGVybmF0
ZXMpIHsgbV9hbHRlcm5hdGVzRGlyZWN0aW9uID0gYWx0ZXJuYXRlczsgfQogCiAgICAgYm9vbCBp
c0ZpbmlzaGVkQXQoZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0OwotICAgIGJvb2wgaXNGaW5p
c2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuU3RhdGUgPT0gRmluaXNoZWQgfHwgbV9ydW5TdGF0
ZSA9PSBBYm9ydGVkOyB9CisgICAgYm9vbCBpc0ZpbmlzaGVkKCkgY29uc3QgeyByZXR1cm4gbV9y
dW5TdGF0ZSA9PSBGaW5pc2hlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8
IG1fcnVuU3RhdGUgPT0gQWJvcnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHx8IG1fcnVuU3RhdGUgPT0gV2FpdGluZ0ZvckRlbGV0aW9uOyB9CiAKICAgICBDQ0FuaW1hdGlv
bkN1cnZlKiBjdXJ2ZSgpIHsgcmV0dXJuIG1fY3VydmUuZ2V0KCk7IH0KICAgICBjb25zdCBDQ0Fu
aW1hdGlvbkN1cnZlKiBjdXJ2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VydmUuZ2V0KCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAw
OTY5Nzk1NDQ4M2E1NzkyZjJlNDI4ZDMwZjBhMmU0ZmNjY2RhZmY2Li5lOTc3ZWRkYzEyY2VkOWYz
OGM4Y2JmYjE2NDY4OTQyMzQzZmYyMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xODgsNyArMTg4LDcgQEAgdm9pZCBDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uKGludCBhbmltYXRpb25JZCkKIHZv
aWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSBt
b25vdG9uaWNUaW1lKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmlt
YXRpb25zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0t
PnJ1blN0YXRlKCkgIT0gQ0NBY3RpdmVBbmltYXRpb246OkZpbmlzaGVkICYmIG1fYWN0aXZlQW5p
bWF0aW9uc1tpXS0+cnVuU3RhdGUoKSAhPSBDQ0FjdGl2ZUFuaW1hdGlvbjo6QWJvcnRlZCkKKyAg
ICAgICAgaWYgKCFtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmlzRmluaXNoZWQoKSkKICAgICAgICAg
ICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246
OlBhdXNlZCwgbW9ub3RvbmljVGltZSk7CiAgICAgfQogfQpAQCAtMjEwLDggKzIxMCwxNCBAQCB2
b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoQW5pbWF0aW9uVXBkYXRlc1RvKEND
TGF5ZXJBbmltYXRpb25Db250cm9sbAogICAgICAgICByZXBsYWNlSW1wbFRocmVhZEFuaW1hdGlv
bnMoY29udHJvbGxlckltcGwpOwogICAgICAgICBtX2ZvcmNlU3luYyA9IGZhbHNlOwogICAgIH0g
ZWxzZSB7CisgICAgICAgIHB1cmdlQW5pbWF0aW9uc01hcmtlZEZvckRlbGV0aW9uKCk7CiAgICAg
ICAgIHB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKKworICAg
ICAgICAvLyBSZW1vdmUgZmluaXNoZWQgaW1wbCBzaWRlIGFuaW1hdGlvbnMgb25seSBhZnRlciBw
dXNoaW5nLAorICAgICAgICAvLyBhbmQgb25seSBhZnRlciB0aGUgYW5pbWF0aW9ucyBhcmUgZGVs
ZXRlZCBvbiB0aGUgbWFpbiB0aHJlYWQKKyAgICAgICAgLy8gdGhpcyBpbnN1cmVzIHdlIHdpbGwg
bmV2ZXIgcHVzaCBhbiBhbmltYXRpb24gdHdpY2UuCiAgICAgICAgIHJlbW92ZUFuaW1hdGlvbnND
b21wbGV0ZWRPbk1haW5UaHJlYWQoY29udHJvbGxlckltcGwpOworCiAgICAgICAgIHB1c2hQcm9w
ZXJ0aWVzVG9JbXBsVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKICAgICB9CiB9CkBAIC0yMjMsNyAr
MjI5LDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0ZShkb3VibGUg
bW9ub3RvbmljVGltZSwgQ0NBbmltYXRpb25FdmVudHMKICAgICBzdGFydEFuaW1hdGlvbnNXYWl0
aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5KG1vbm90b25pY1RpbWUsIGV2ZW50cyk7CiAgICAgcmVz
b2x2ZUNvbmZsaWN0cyhtb25vdG9uaWNUaW1lKTsKICAgICB0aWNrQW5pbWF0aW9ucyhtb25vdG9u
aWNUaW1lKTsKLSAgICBwdXJnZUZpbmlzaGVkQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lLCBldmVu
dHMpOworICAgIG1hcmtBbmltYXRpb25zRm9yRGVsZXRpb24obW9ub3RvbmljVGltZSwgZXZlbnRz
KTsKICAgICBzdGFydEFuaW1hdGlvbnNXYWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5KG1vbm90
b25pY1RpbWUsIGV2ZW50cyk7CiB9CiAKQEAgLTI0Myw3ICsyNDksNyBAQCBDQ0FjdGl2ZUFuaW1h
dGlvbiogQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OmdldEFjdGl2ZUFuaW1hdGlvbihpbnQg
Z3JvdXBJZCwgQwogYm9vbCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6aGFzQWN0aXZlQW5p
bWF0aW9uKCkgY29uc3QKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5p
bWF0aW9ucy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9hY3RpdmVBbmltYXRpb25zW2ld
LT5ydW5TdGF0ZSgpICE9IENDQWN0aXZlQW5pbWF0aW9uOjpGaW5pc2hlZCAmJiBtX2FjdGl2ZUFu
aW1hdGlvbnNbaV0tPnJ1blN0YXRlKCkgIT0gQ0NBY3RpdmVBbmltYXRpb246OkFib3J0ZWQpCisg
ICAgICAgIGlmICghbV9hY3RpdmVBbmltYXRpb25zW2ldLT5pc0ZpbmlzaGVkKCkpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDEzLDE0ICs0
MTksMTQgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVzb2x2ZUNvbmZsaWN0
cyhkb3VibGUgbW9ub3RvbmljVGltZSkKICAgICB9CiB9CiAKLXZvaWQgQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OnB1cmdlRmluaXNoZWRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1l
LCBDQ0FuaW1hdGlvbkV2ZW50c1ZlY3RvciogZXZlbnRzKQorCit2b2lkIENDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyOjptYXJrQW5pbWF0aW9uc0ZvckRlbGV0aW9uKGRvdWJsZSBtb25vdG9uaWNU
aW1lLCBDQ0FuaW1hdGlvbkV2ZW50c1ZlY3RvciogZXZlbnRzKQogewotICAgIC8vIEVhY2ggaXRl
cmF0aW9uLCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpIGRlY3JlYXNlcyBvciBpIGluY3JlbWVu
dHMsCi0gICAgLy8gZ3VhcmFudGVlaW5nIHByb2dyZXNzIHRvd2FyZHMgbG9vcCB0ZXJtaW5hdGlv
bi4KLSAgICBzaXplX3QgaSA9IDA7Ci0gICAgd2hpbGUgKGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMu
c2l6ZSgpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMu
c2l6ZSgpOyBpKyspIHsKICAgICAgICAgaW50IGdyb3VwSWQgPSBtX2FjdGl2ZUFuaW1hdGlvbnNb
aV0tPmdyb3VwKCk7CiAgICAgICAgIGJvb2wgYWxsQW5pbXNXaXRoU2FtZUlkQXJlRmluaXNoZWQg
PSBmYWxzZTsKKyAgICAgICAgLy8gSWYgYW4gYW5pbWF0aW9uIGlzIGZpbmlzaGVkLCBhbmQgbm90
IGFscmVhZHkgbWFya2VkIGZvciBkZWxldGlvbiwKKyAgICAgICAgLy8gRmluZCBvdXQgaWYgYWxs
IG90aGVyIGFuaW1hdGlvbnMgaW4gdGhlIHNhbWUgZ3JvdXAgYXJlIGFsc28gZmluaXNoZWQuCiAg
ICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmlzRmluaXNoZWQoKSkgewogICAgICAg
ICAgICAgYWxsQW5pbXNXaXRoU2FtZUlkQXJlRmluaXNoZWQgPSB0cnVlOwogICAgICAgICAgICAg
Zm9yIChzaXplX3QgaiA9IDA7IGogPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2opIHsK
QEAgLTQzMywxOSArNDM5LDIzIEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1
cmdlRmluaXNoZWRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lLCBDCiAgICAgICAgIGlm
IChhbGxBbmltc1dpdGhTYW1lSWRBcmVGaW5pc2hlZCkgewogICAgICAgICAgICAgLy8gV2Ugbm93
IG5lZWQgdG8gcmVtb3ZlIGFsbCBhbmltYXRpb25zIHdpdGggdGhlIHNhbWUgZ3JvdXAgaWQgYXMg
Z3JvdXBJZAogICAgICAgICAgICAgLy8gKGFuZCBzZW5kIGFsb25nIGFuaW1hdGlvbiBmaW5pc2hl
ZCBub3RpZmljYXRpb25zLCBpZiBuZWNlc3NhcnkpLgotICAgICAgICAgICAgLy8gRWFjaCBpdGVy
YXRpb24sIG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCkgZGVjcmVhc2VzIG9yIGogaW5jcmVtZW50
cywKLSAgICAgICAgICAgIC8vIGd1YXJhbnRlZWluZyBwcm9ncmVzcyB0b3dhcmRzIGxvb3AgdGVy
bWluYXRpb24uIEFsc28sIHdlIGFyZSBndWFyYW50ZWVkCi0gICAgICAgICAgICAvLyB0byByZW1v
dmUgYXQgbGVhc3Qgb25lIGFjdGl2ZSBhbmltYXRpb24uCi0gICAgICAgICAgICBmb3IgKHNpemVf
dCBqID0gaTsgaiA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7KSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGdyb3VwSWQgIT0gbV9hY3RpdmVBbmltYXRpb25zW2pdLT5ncm91cCgpKQotICAgICAg
ICAgICAgICAgICAgICBqKys7Ci0gICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBm
b3IgKHNpemVfdCBqID0gaTsgaiA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7IGorKykgewor
ICAgICAgICAgICAgICAgIGlmIChncm91cElkID09IG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+Z3Jv
dXAoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRzKQogICAgICAgICAgICAgICAg
ICAgICAgICAgZXZlbnRzLT5hcHBlbmQoQ0NBbmltYXRpb25FdmVudChDQ0FuaW1hdGlvbkV2ZW50
OjpGaW5pc2hlZCwgbV9jbGllbnQtPmlkKCksIG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+Z3JvdXAo
KSwgbV9hY3RpdmVBbmltYXRpb25zW2pdLT50YXJnZXRQcm9wZXJ0eSgpLCBtb25vdG9uaWNUaW1l
KSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9ucy5yZW1vdmUoaik7Cisg
ICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tqXS0+c2V0UnVuU3RhdGUoQ0NB
Y3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JEZWxldGlvbiwgbW9ub3RvbmljVGltZSk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKKyAgICAgICAgfQor
ICAgIH0KK30KKwordm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVyZ2VBbmltYXRp
b25zTWFya2VkRm9yRGVsZXRpb24oKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9h
Y3RpdmVBbmltYXRpb25zLnNpemUoKTspIHsKKyAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9u
c1tpXS0+cnVuU3RhdGUoKSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvckRlbGV0aW9u
KQorICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zLnJlbW92ZShpKTsKKyAgICAgICAgZWxz
ZQogICAgICAgICAgICAgaSsrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlci5oCmluZGV4IGM0YzkxNThiMmM4N2NmZTQ2ZGZjMTYyZDA4N2Ex
MWZkZmZiODkyNDguLmU5ODM3MjAyZmRiMGYyMDE1NzZmNWY4ZWY1MmNiM2M3ZDk3ZDZmZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaApAQCAtMTE1
LDcgKzExNSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydEFuaW1hdGlvbnNXYWl0aW5nRm9y
U3RhcnRUaW1lKGRvdWJsZSBtb25vdG9uaWNUaW1lLCBDQ0FuaW1hdGlvbkV2ZW50c1ZlY3Rvciop
OwogICAgIHZvaWQgc3RhcnRBbmltYXRpb25zV2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eShk
b3VibGUgbW9ub3RvbmljVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3IqKTsKICAgICB2b2lk
IHJlc29sdmVDb25mbGljdHMoZG91YmxlIG1vbm90b25pY1RpbWUpOwotICAgIHZvaWQgcHVyZ2VG
aW5pc2hlZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRz
VmVjdG9yKik7CisgICAgdm9pZCBtYXJrQW5pbWF0aW9uc0ZvckRlbGV0aW9uKGRvdWJsZSBtb25v
dG9uaWNUaW1lLCBDQ0FuaW1hdGlvbkV2ZW50c1ZlY3RvciopOworICAgIHZvaWQgcHVyZ2VBbmlt
YXRpb25zTWFya2VkRm9yRGVsZXRpb24oKTsKIAogICAgIHZvaWQgdGlja0FuaW1hdGlvbnMoZG91
YmxlIG1vbm90b25pY1RpbWUpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>