<?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>26163</bug_id>
          
          <creation_ts>2009-06-03 10:59:52 -0700</creation_ts>
          <short_desc>Canceling, then restarting transition picks up where it left off</short_desc>
          <delta_ts>2009-06-18 21:38:36 -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>CSS</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>124174</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-06-03 10:59:52 -0700</bug_when>
    <thetext>Open the attached testcase in TOT and hover over the big box. The transitions start as they should. When you unhover, they jump back as they should. But if you quickly hover again, the transitions pick up where they left off. It&apos;s as though they&apos;re still running.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124175</commentid>
    <comment_count>1</comment_count>
      <attachid>30914</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-06-03 11:00:24 -0700</bug_when>
    <thetext>Created attachment 30914
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124188</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-03 11:25:53 -0700</bug_when>
    <thetext>Ah, happens on TOT, so not hardware.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125994</commentid>
    <comment_count>3</comment_count>
      <attachid>31301</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-06-15 11:40:51 -0700</bug_when>
    <thetext>Created attachment 31301
Patch with test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126057</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-06-15 15:22:32 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/transitions/cancel-transition-expected.txt
Adding         LayoutTests/transitions/cancel-transition.html
Sending        WebCore/ChangeLog
Sending        WebCore/page/animation/CompositeAnimation.cpp
Sending        WebCore/page/animation/ImplicitAnimation.cpp
Sending        WebCore/page/animation/ImplicitAnimation.h
Transmitting file data .......
Committed revision 44696.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126877</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-18 21:38:36 -0700</bug_when>
    <thetext>*** Bug 26165 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>30914</attachid>
            <date>2009-06-03 11:00:24 -0700</date>
            <delta_ts>2009-06-03 11:00:24 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>acceleration.html</filename>
            <type>text/html</type>
            <size>1961</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgogICJodHRw
Oi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KPGh0bWw+CiAgPGhlYWQ+CiAgICA8
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCI+CiAgICA8dGl0bGU+QWNjZWxlcmF0aW9uIEV4YW1wbGU8L3RpdGxlPgogICAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KICAgICAgI2NvbnRhaW5lciB7CiAg
ICAgICAgaGVpZ2h0OiA2NTBweDsKCQl3aWR0aDogODAlOwogICAgICAgIGJhY2tncm91bmQ6ICNm
Y2M7CiAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsUm91bmRlZE1UQm9sZCwgc2Fucy1zZXJpZjsK
ICAgICAgICBmb250LXNpemU6IDIwMCU7CiAgICAgIH0KICAgIAogICAgICAjY29udGFpbmVyIGRp
diB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6
ICM5MzM7CiAgICAgICAgd2lkdGg6IDIwMHB4OwogICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAg
ICAgbGVmdDogNTBweDsKICAgICAgfQogICAgICAudGVzdGVyIHsKICAgICAgICBvcGFjaXR5OiAx
OwogICAgICB9CiAgICAgICNhIHsKICAgICAgICB0b3A6IDUwcHg7CiAgICAgIH0KICAgICAgI2Nv
bnRhaW5lcjpob3ZlciAjYSB7CiAgICAgICAgbGVmdDogNDUwcHg7CiAgICAgICAgLXdlYmtpdC10
cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0OwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJh
dGlvbjogM3M7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFz
ZS1vdXQ7CiAgICAgIH0KICAgICAgI2IgewogICAgICAgIHRvcDogMjAwcHg7CiAgICAgIH0KICAg
ICAgI2NvbnRhaW5lcjpob3ZlciAjYiB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5z
bGF0ZSg0MDBweCwgMHB4KTsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13
ZWJraXQtdHJhbnNmb3JtOwogICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogM3M7
CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7CiAg
ICAgIH0KICAgICAgI2MgewogICAgICAgIHRvcDogMzUwcHg7CiAgICAgIH0KICAgICAgI2NvbnRh
aW5lcjpob3ZlciAjYyB7CiAgICAgICAgd2lkdGg6IDYwMHB4OwogICAgICAgIC13ZWJraXQtdHJh
bnNpdGlvbi1wcm9wZXJ0eTogd2lkdGg7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0
aW9uOiAzczsKICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNl
LW91dDsKICAgICAgfQogICAgICAjZCB7CiAgICAgICAgdG9wOiA1MDBweDsKCQktd2Via2l0LXRy
YW5zZm9ybS1vcmlnaW46IDBweCA1MHB4OwogICAgICB9CiAgICAgICNjb250YWluZXI6aG92ZXIg
I2QgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgzLCAxKTsKICAgICAgICAtd2Vi
a2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtOwogICAgICAgIC13ZWJr
aXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogM3M7CiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRp
bWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7CiAgICAgfQogICAgICAKICAgIDwvc3R5bGU+CiAgPC9o
ZWFkPgogIDxib2R5PgogICAgPGRpdiBpZD0iY29udGFpbmVyIj4KICAgICAgPGRpdiBpZD0iYSIg
Y2xhc3M9InRlc3RlciI+bGVmdDwvZGl2PgogICAgICA8ZGl2IGlkPSJiIiBjbGFzcz0idGVzdGVy
Ij50cmFuc2xhdGU8L2Rpdj4KICAgICAgPGRpdiBpZD0iYyIgY2xhc3M9InRlc3RlciI+d2lkdGg8
L2Rpdj4KICAgICAgPGRpdiBpZD0iZCIgY2xhc3M9InRlc3RlciI+c2NhbGU8L2Rpdj4KICAgIDwv
ZGl2PgogIDwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31301</attachid>
            <date>2009-06-15 11:40:51 -0700</date>
            <delta_ts>2009-06-15 13:33:51 -0700</delta_ts>
            <desc>Patch with test</desc>
            <filename>26163.patch</filename>
            <type>text/plain</type>
            <size>18712</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDY5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDYtMTUgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE2MworCisgICAgICAgIEFk
ZGVkIGxvZ2ljIHRvIHVwZGF0ZVRyYW5zaXRpb25zIHNpbWlsYXIgdG8gdGhhdCBpbiB1cGRhdGVL
ZXlmcmFtZUFuaW1hdGlvbnMKKyAgICAgICAgd2hpY2ggZGV0ZWN0cyBhbmQgcmVtb3ZlcyBzdGFs
ZSB0cmFuc2l0aW9ucy4KKworICAgICAgICBUZXN0OiB0cmFuc2l0aW9ucy9jYW5jZWwtdHJhbnNp
dGlvbi5odG1sCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0
aW9ucyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OkltcGxpY2l0QW5pbWF0aW9uKToK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bXBsaWNpdEFuaW1hdGlvbjo6c2V0QWN0aXZlKToKKwogMjAwOS0wNi0xNSAgU2ltb24gSGF1c21h
bm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgYW5k
IGRvbmUgd2l0aCBUb3IgQXJuZSBWZXN0YsO4LgpJbmRleDogV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9Db21wb3NpdGVBbmltYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAkocmV2aXNpb24gNDQ2MjYpCisrKyBXZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY3LDkxICs2NywxMTQgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OmNsZWFyUmVuZGVyZXIo
KQogCiB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIHRh
cmdldFN0eWxlKQogewotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbW9kaWZpZWRDdXJyZW50U3R5
bGU7Ci0gICAgCi0gICAgLy8gSWYgY3VycmVudFN0eWxlIGlzIG51bGwsIHdlIGRvbid0IGRvIHRy
YW5zaXRpb25zCi0gICAgaWYgKCFjdXJyZW50U3R5bGUgfHwgIXRhcmdldFN0eWxlLT50cmFuc2l0
aW9ucygpKQorICAgIC8vIElmIGN1cnJlbnRTdHlsZSBpcyBudWxsIG9yIHRoZXJlIGFyZSBubyBv
bGQgb3IgbmV3IHRyYW5zaXRpb25zLCBqdXN0IHNraXAgaXQKKyAgICBpZiAoIWN1cnJlbnRTdHls
ZSB8fCAoIXRhcmdldFN0eWxlLT50cmFuc2l0aW9ucygpICYmIG1fdHJhbnNpdGlvbnMuaXNFbXB0
eSgpKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gTWFyayBhbGwgZXhpc3RpbmcgdHJhbnNp
dGlvbnMgYXMgbm8gbG9uZ2VyIGFjdGl2ZS4gV2Ugd2lsbCBtYXJrIHRoZSBzdGlsbCBhY3RpdmUg
b25lcworICAgIC8vIGluIHRoZSBuZXh0IGxvb3AgYW5kIHRoZW4gdG9zcyB0aGUgb25lcyB0aGF0
IGRpZG4ndCBnZXQgbWFya2VkLgorICAgIENTU1Byb3BlcnR5VHJhbnNpdGlvbnNNYXA6OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IG1fdHJhbnNpdGlvbnMuZW5kKCk7CisgICAgZm9yIChDU1NQcm9wZXJ0
eVRyYW5zaXRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fdHJhbnNpdGlvbnMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpdC0+c2Vjb25kLT5zZXRBY3RpdmUoZmFsc2Up
OworICAgICAgICAKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1vZGlmaWVkQ3VycmVudFN0eWxl
OworICAgIAogICAgIC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgYWN0
aXZlIHRyYW5zaXRpb25zCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0YXJnZXRTdHlsZS0+
dHJhbnNpdGlvbnMoKS0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBh
bmltID0gdGFyZ2V0U3R5bGUtPnRyYW5zaXRpb25zKCktPmFuaW1hdGlvbihpKTsKLSAgICAgICAg
Ym9vbCBpc0FjdGl2ZVRyYW5zaXRpb24gPSBhbmltLT5kdXJhdGlvbigpIHx8IGFuaW0tPmRlbGF5
KCkgPiAwOwotCi0gICAgICAgIGludCBwcm9wID0gYW5pbS0+cHJvcGVydHkoKTsKLQotICAgICAg
ICBpZiAocHJvcCA9PSBjQW5pbWF0ZU5vbmUpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAg
ICAgICBib29sIGFsbCA9IHByb3AgPT0gY0FuaW1hdGVBbGw7Ci0KLSAgICAgICAgLy8gSGFuZGxl
IGJvdGggdGhlICdhbGwnIGFuZCBzaW5nbGUgcHJvcGVydHkgY2FzZXMuIEZvciB0aGUgc2luZ2xl
IHByb3AgY2FzZSwgd2UgbWFrZSBvbmx5IG9uZSBwYXNzCi0gICAgICAgIC8vIHRocm91Z2ggdGhl
IGxvb3AuCi0gICAgICAgIGZvciAoaW50IHByb3BlcnR5SW5kZXggPSAwOyBwcm9wZXJ0eUluZGV4
IDwgQW5pbWF0aW9uQmFzZTo6Z2V0TnVtUHJvcGVydGllcygpOyArK3Byb3BlcnR5SW5kZXgpIHsK
LSAgICAgICAgICAgIGlmIChhbGwpIHsKLSAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIG5leHQg
cHJvcGVydHkgd2hpY2ggaXMgbm90IGEgc2hvcnRoYW5kLgotICAgICAgICAgICAgICAgIGJvb2wg
aXNTaG9ydGhhbmQ7Ci0gICAgICAgICAgICAgICAgcHJvcCA9IEFuaW1hdGlvbkJhc2U6OmdldFBy
b3BlcnR5QXRJbmRleChwcm9wZXJ0eUluZGV4LCBpc1Nob3J0aGFuZCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGlzU2hvcnRoYW5kKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIH0KKyAgICBpZiAodGFyZ2V0U3R5bGUtPnRyYW5zaXRpb25zKCkpIHsKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCB0YXJnZXRTdHlsZS0+dHJhbnNpdGlvbnMoKS0+c2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgICAgIGNvbnN0IEFuaW1hdGlvbiogYW5pbSA9IHRhcmdldFN0eWxl
LT50cmFuc2l0aW9ucygpLT5hbmltYXRpb24oaSk7CisgICAgICAgICAgICBib29sIGlzQWN0aXZl
VHJhbnNpdGlvbiA9IGFuaW0tPmR1cmF0aW9uKCkgfHwgYW5pbS0+ZGVsYXkoKSA+IDA7CisKKyAg
ICAgICAgICAgIGludCBwcm9wID0gYW5pbS0+cHJvcGVydHkoKTsKKworICAgICAgICAgICAgaWYg
KHByb3AgPT0gY0FuaW1hdGVOb25lKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgICAgICAvLyBJbXBsaWNpdEFuaW1hdGlvbnMgYXJlIGFsd2F5cyBoYXNoZWQgYnkgYWN0dWFs
IHByb3BlcnRpZXMsIG5ldmVyIGNBbmltYXRlQWxsCi0gICAgICAgICAgICBBU1NFUlQocHJvcCA+
PSBmaXJzdENTU1Byb3BlcnR5ICYmIHByb3AgPCAoZmlyc3RDU1NQcm9wZXJ0eSArIG51bUNTU1By
b3BlcnRpZXMpKTsKKyAgICAgICAgICAgIGJvb2wgYWxsID0gcHJvcCA9PSBjQW5pbWF0ZUFsbDsK
IAotICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBydW5uaW5nIGFuaW1hdGlvbiBmb3IgdGhp
cyBwcm9wZXJ0eSwgdGhlIHRyYW5zaXRpb24gaXMgb3ZlcnJpZGRlbgotICAgICAgICAgICAgLy8g
YW5kIHdlIGhhdmUgdG8gdXNlIHRoZSB1bmFuaW1hdGVkU3R5bGUgZnJvbSB0aGUgYW5pbWF0aW9u
LiBXZSBkbyB0aGUgdGVzdAotICAgICAgICAgICAgLy8gYWdhaW5zdCB0aGUgdW5hbmltYXRlZCBz
dHlsZSBoZXJlLCBidXQgd2UgIm92ZXJyaWRlIiB0aGUgdHJhbnNpdGlvbiBsYXRlci4KLSAgICAg
ICAgICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gZ2V0QW5pbWF0
aW9uRm9yUHJvcGVydHkocHJvcCk7Ci0gICAgICAgICAgICBSZW5kZXJTdHlsZSogZnJvbVN0eWxl
ID0ga2V5ZnJhbWVBbmltID8ga2V5ZnJhbWVBbmltLT51bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJl
bnRTdHlsZTsKLQotICAgICAgICAgICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEgY3VycmVudCB0cmFu
c2l0aW9uIGZvciB0aGlzIHByb3AKLSAgICAgICAgICAgIEltcGxpY2l0QW5pbWF0aW9uKiBpbXBs
QW5pbSA9IG1fdHJhbnNpdGlvbnMuZ2V0KHByb3ApLmdldCgpOwotICAgICAgICAgICAgYm9vbCBl
cXVhbCA9IHRydWU7Ci0KLSAgICAgICAgICAgIGlmIChpbXBsQW5pbSkgewotICAgICAgICAgICAg
ICAgIC8vIFRoaXMgbWlnaHQgYmUgYSB0cmFuc2l0aW9uIHRoYXQgaXMganVzdCBmaW5pc2hpbmcu
IFRoYXQgd291bGQgYmUgdGhlIGNhc2UKLSAgICAgICAgICAgICAgICAvLyBpZiBpdCB3ZXJlIHBv
c3RBY3RpdmUuIEJ1dCB3ZSBzdGlsbCBuZWVkIHRvIGNoZWNrIGZvciBlcXVhbGl0eSBiZWNhdXNl
Ci0gICAgICAgICAgICAgICAgLy8gaXQgY291bGQgYmUganVzdCBmaW5pc2hpbmcgQU5EIGNoYW5n
aW5nIHRvIGEgbmV3IGdvYWwgc3RhdGUuCi0gICAgICAgICAgICAgICAgLy8KLSAgICAgICAgICAg
ICAgICAvLyBUaGlzIGltcGxBbmltIG1pZ2h0IGFsc28gbm90IGJlIGFuIGFscmVhZHkgcnVubmlu
ZyB0cmFuc2l0aW9uLiBJdCBtaWdodCBiZQotICAgICAgICAgICAgICAgIC8vIG5ld2x5IGFkZGVk
IHRvIHRoZSBsaXN0IGluIGEgcHJldmlvdXMgaXRlcmF0aW9uLiBUaGlzIHdvdWxkIGhhcHBlbiBp
ZgotICAgICAgICAgICAgICAgIC8vIHlvdSBoYXZlIGJvdGggYW4gZXhwbGljaXQgdHJhbnNpdGlv
bi1wcm9wZXJ0eSBhbmQgJ2FsbCcgaW4gdGhlIHNhbWUKLSAgICAgICAgICAgICAgICAvLyBsaXN0
LiBJbiB0aGlzIGNhc2UsIHRoZSBsYXR0ZXIgb25lIG92ZXJyaWRlcyB0aGUgZWFybGllciBvbmUs
IHNvIHdlCi0gICAgICAgICAgICAgICAgLy8gYmVoYXZlIGFzIHRob3VnaCB0aGlzIGlzIGEgcnVu
bmluZyBhbmltYXRpb24gYmVpbmcgcmVwbGFjZWQuCi0gICAgICAgICAgICAgICAgaWYgKCFpbXBs
QW5pbS0+aXNUYXJnZXRQcm9wZXJ0eUVxdWFsKHByb3AsIHRhcmdldFN0eWxlKSkgewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgICAgICAgICAgLy8gRm9yIGFj
Y2VsZXJhdGVkIGFuaW1hdGlvbnMgd2UgbmVlZCB0byByZXR1cm4gYSBuZXcgUmVuZGVyU3R5bGUg
d2l0aCB0aGUgX2N1cnJlbnRfIHZhbHVlCi0gICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBw
cm9wZXJ0eSwgc28gdGhhdCByZXN0YXJ0ZWQgdHJhbnNpdGlvbnMgdXNlIHRoZSBjb3JyZWN0IHN0
YXJ0aW5nIHBvaW50LgotICAgICAgICAgICAgICAgICAgICBpZiAoQW5pbWF0aW9uQmFzZTo6YW5p
bWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxlcmF0ZWQocHJvcCkgJiYgIWltcGxBbmltLT5pc0ZhbGxi
YWNrQW5pbWF0aW5nKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbW9kaWZpZWRD
dXJyZW50U3R5bGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRDdXJyZW50
U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUoY3VycmVudFN0eWxlKTsKKyAgICAgICAgICAgIC8v
IEhhbmRsZSBib3RoIHRoZSAnYWxsJyBhbmQgc2luZ2xlIHByb3BlcnR5IGNhc2VzLiBGb3IgdGhl
IHNpbmdsZSBwcm9wIGNhc2UsIHdlIG1ha2Ugb25seSBvbmUgcGFzcworICAgICAgICAgICAgLy8g
dGhyb3VnaCB0aGUgbG9vcC4KKyAgICAgICAgICAgIGZvciAoaW50IHByb3BlcnR5SW5kZXggPSAw
OyBwcm9wZXJ0eUluZGV4IDwgQW5pbWF0aW9uQmFzZTo6Z2V0TnVtUHJvcGVydGllcygpOyArK3By
b3BlcnR5SW5kZXgpIHsKKyAgICAgICAgICAgICAgICBpZiAoYWxsKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIEdldCB0aGUgbmV4dCBwcm9wZXJ0eSB3aGljaCBpcyBub3QgYSBzaG9ydGhhbmQu
CisgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTaG9ydGhhbmQ7CisgICAgICAgICAgICAgICAg
ICAgIHByb3AgPSBBbmltYXRpb25CYXNlOjpnZXRQcm9wZXJ0eUF0SW5kZXgocHJvcGVydHlJbmRl
eCwgaXNTaG9ydGhhbmQpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNTaG9ydGhhbmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICAvLyBJbXBsaWNpdEFuaW1hdGlvbnMgYXJlIGFsd2F5cyBoYXNoZWQgYnkg
YWN0dWFsIHByb3BlcnRpZXMsIG5ldmVyIGNBbmltYXRlQWxsCisgICAgICAgICAgICAgICAgQVNT
RVJUKHByb3AgPj0gZmlyc3RDU1NQcm9wZXJ0eSAmJiBwcm9wIDwgKGZpcnN0Q1NTUHJvcGVydHkg
KyBudW1DU1NQcm9wZXJ0aWVzKSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIGltcGxBbmlt
LT5ibGVuZFByb3BlcnR5VmFsdWVJblN0eWxlKHByb3AsIG1vZGlmaWVkQ3VycmVudFN0eWxlLmdl
dCgpKTsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHJ1bm5pbmcgYW5pbWF0aW9u
IGZvciB0aGlzIHByb3BlcnR5LCB0aGUgdHJhbnNpdGlvbiBpcyBvdmVycmlkZGVuCisgICAgICAg
ICAgICAgICAgLy8gYW5kIHdlIGhhdmUgdG8gdXNlIHRoZSB1bmFuaW1hdGVkU3R5bGUgZnJvbSB0
aGUgYW5pbWF0aW9uLiBXZSBkbyB0aGUgdGVzdAorICAgICAgICAgICAgICAgIC8vIGFnYWluc3Qg
dGhlIHVuYW5pbWF0ZWQgc3R5bGUgaGVyZSwgYnV0IHdlICJvdmVycmlkZSIgdGhlIHRyYW5zaXRp
b24gbGF0ZXIuCisgICAgICAgICAgICAgICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBrZXlm
cmFtZUFuaW0gPSBnZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShwcm9wKTsKKyAgICAgICAgICAgICAg
ICBSZW5kZXJTdHlsZSogZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltID8ga2V5ZnJhbWVBbmltLT51
bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKKworICAgICAgICAgICAgICAgIC8vIFNl
ZSBpZiB0aGVyZSBpcyBhIGN1cnJlbnQgdHJhbnNpdGlvbiBmb3IgdGhpcyBwcm9wCisgICAgICAg
ICAgICAgICAgSW1wbGljaXRBbmltYXRpb24qIGltcGxBbmltID0gbV90cmFuc2l0aW9ucy5nZXQo
cHJvcCkuZ2V0KCk7CisgICAgICAgICAgICAgICAgYm9vbCBlcXVhbCA9IHRydWU7CisKKyAgICAg
ICAgICAgICAgICBpZiAoaW1wbEFuaW0pIHsKKyAgICAgICAgICAgICAgICAgICAgaW1wbEFuaW0t
PnNldEFjdGl2ZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIC8vIFRoaXMgbWlnaHQgYmUgYSB0cmFuc2l0aW9uIHRoYXQgaXMganVzdCBmaW5pc2hpbmcu
IFRoYXQgd291bGQgYmUgdGhlIGNhc2UKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgaXQgd2Vy
ZSBwb3N0QWN0aXZlLiBCdXQgd2Ugc3RpbGwgbmVlZCB0byBjaGVjayBmb3IgZXF1YWxpdHkgYmVj
YXVzZQorICAgICAgICAgICAgICAgICAgICAvLyBpdCBjb3VsZCBiZSBqdXN0IGZpbmlzaGluZyBB
TkQgY2hhbmdpbmcgdG8gYSBuZXcgZ29hbCBzdGF0ZS4KKyAgICAgICAgICAgICAgICAgICAgLy8K
KyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpbXBsQW5pbSBtaWdodCBhbHNvIG5vdCBiZSBh
biBhbHJlYWR5IHJ1bm5pbmcgdHJhbnNpdGlvbi4gSXQgbWlnaHQgYmUKKyAgICAgICAgICAgICAg
ICAgICAgLy8gbmV3bHkgYWRkZWQgdG8gdGhlIGxpc3QgaW4gYSBwcmV2aW91cyBpdGVyYXRpb24u
IFRoaXMgd291bGQgaGFwcGVuIGlmCisgICAgICAgICAgICAgICAgICAgIC8vIHlvdSBoYXZlIGJv
dGggYW4gZXhwbGljaXQgdHJhbnNpdGlvbi1wcm9wZXJ0eSBhbmQgJ2FsbCcgaW4gdGhlIHNhbWUK
KyAgICAgICAgICAgICAgICAgICAgLy8gbGlzdC4gSW4gdGhpcyBjYXNlLCB0aGUgbGF0dGVyIG9u
ZSBvdmVycmlkZXMgdGhlIGVhcmxpZXIgb25lLCBzbyB3ZQorICAgICAgICAgICAgICAgICAgICAv
LyBiZWhhdmUgYXMgdGhvdWdoIHRoaXMgaXMgYSBydW5uaW5nIGFuaW1hdGlvbiBiZWluZyByZXBs
YWNlZC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpbXBsQW5pbS0+aXNUYXJnZXRQcm9wZXJ0
eUVxdWFsKHByb3AsIHRhcmdldFN0eWxlKSkgeworICAgICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgYWNjZWxlcmF0ZWQgYW5p
bWF0aW9ucyB3ZSBuZWVkIHRvIHJldHVybiBhIG5ldyBSZW5kZXJTdHlsZSB3aXRoIHRoZSBfY3Vy
cmVudF8gdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBwcm9wZXJ0eSwg
c28gdGhhdCByZXN0YXJ0ZWQgdHJhbnNpdGlvbnMgdXNlIHRoZSBjb3JyZWN0IHN0YXJ0aW5nIHBv
aW50LgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFuaW1hdGlvbkJhc2U6OmFuaW1hdGlv
bk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKHByb3ApICYmICFpbXBsQW5pbS0+aXNGYWxsYmFja0Fu
aW1hdGluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RpZmllZEN1
cnJlbnRTdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRDdXJy
ZW50U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUoY3VycmVudFN0eWxlKTsKKworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGltcGxBbmltLT5ibGVuZFByb3BlcnR5VmFsdWVJblN0eWxlKHBy
b3AsIG1vZGlmaWVkQ3VycmVudFN0eWxlLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdHJhbnNpdGlvbnMucmVt
b3ZlKHByb3ApOworICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwgPSBmYWxzZTsKICAgICAg
ICAgICAgICAgICAgICAgfQotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgIG1fdHJhbnNpdGlv
bnMucmVtb3ZlKHByb3ApOwotICAgICAgICAgICAgICAgICAgICBlcXVhbCA9IGZhbHNlOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8g
c3RhcnQgYSB0cmFuc2l0aW9uIGlmIGl0IGlzIGFjdGl2ZSBhbmQgdGhlIHByb3BlcnRpZXMgZG9u
J3QgbWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgZXF1YWwgPSAhaXNBY3RpdmVUcmFuc2l0aW9u
IHx8IEFuaW1hdGlvbkJhc2U6OnByb3BlcnRpZXNFcXVhbChwcm9wLCBmcm9tU3R5bGUsIHRhcmdl
dFN0eWxlKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc3RhcnQgYSB0cmFuc2l0aW9uIGlmIGl0IGlzIGFjdGl2
ZSBhbmQgdGhlIHByb3BlcnRpZXMgZG9uJ3QgbWF0Y2gKLSAgICAgICAgICAgICAgICBlcXVhbCA9
ICFpc0FjdGl2ZVRyYW5zaXRpb24gfHwgQW5pbWF0aW9uQmFzZTo6cHJvcGVydGllc0VxdWFsKHBy
b3AsIGZyb21TdHlsZSwgdGFyZ2V0U3R5bGUpOwotICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICAvLyBXZSBjYW4gYmUgaW4gdGhpcyBsb29wIHdpdGggYW4gaW5hY3RpdmUgdHJhbnNpdGlvbiAo
IWlzQWN0aXZlVHJhbnNpdGlvbikuIFdlIG5lZWQKLSAgICAgICAgICAgIC8vIHRvIGRvIHRoYXQg
dG8gY2hlY2sgdG8gc2VlIGlmIHdlIGFyZSBjYW5jZWxpbmcgYSB0cmFuc2l0aW9uLiBCdXQgd2Ug
ZG9uJ3Qgd2FudCB0bwotICAgICAgICAgICAgLy8gc3RhcnQgb25lIG9mIHRoZSBpbmFjdGl2ZSB0
cmFuc2l0aW9ucy4gU28gc2hvcnQgY2lyY3VpdCB0aGF0IGhlcmUuIChTZWUKLSAgICAgICAgICAg
IC8vIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3ODc+Ci0gICAg
ICAgICAgICBpZiAoIWVxdWFsICYmIGlzQWN0aXZlVHJhbnNpdGlvbikgewotICAgICAgICAgICAg
ICAgIC8vIEFkZCB0aGUgbmV3IHRyYW5zaXRpb24KLSAgICAgICAgICAgICAgICBtX3RyYW5zaXRp
b25zLnNldChwcm9wLCBJbXBsaWNpdEFuaW1hdGlvbjo6Y3JlYXRlKGNvbnN0X2Nhc3Q8QW5pbWF0
aW9uKj4oYW5pbSksIHByb3AsIHJlbmRlcmVyLCB0aGlzLCBtb2RpZmllZEN1cnJlbnRTdHlsZSA/
IG1vZGlmaWVkQ3VycmVudFN0eWxlLmdldCgpIDogZnJvbVN0eWxlKSk7CisgICAgICAgICAgICAg
ICAgLy8gV2UgY2FuIGJlIGluIHRoaXMgbG9vcCB3aXRoIGFuIGluYWN0aXZlIHRyYW5zaXRpb24g
KCFpc0FjdGl2ZVRyYW5zaXRpb24pLiBXZSBuZWVkCisgICAgICAgICAgICAgICAgLy8gdG8gZG8g
dGhhdCB0byBjaGVjayB0byBzZWUgaWYgd2UgYXJlIGNhbmNlbGluZyBhIHRyYW5zaXRpb24uIEJ1
dCB3ZSBkb24ndCB3YW50IHRvCisgICAgICAgICAgICAgICAgLy8gc3RhcnQgb25lIG9mIHRoZSBp
bmFjdGl2ZSB0cmFuc2l0aW9ucy4gU28gc2hvcnQgY2lyY3VpdCB0aGF0IGhlcmUuIChTZWUKKyAg
ICAgICAgICAgICAgICAvLyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0Nzg3PgorICAgICAgICAgICAgICAgIGlmICghZXF1YWwgJiYgaXNBY3RpdmVUcmFuc2l0aW9u
KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgbmV3IHRyYW5zaXRpb24KKyAgICAg
ICAgICAgICAgICAgICAgbV90cmFuc2l0aW9ucy5zZXQocHJvcCwgSW1wbGljaXRBbmltYXRpb246
OmNyZWF0ZShjb25zdF9jYXN0PEFuaW1hdGlvbio+KGFuaW0pLCBwcm9wLCByZW5kZXJlciwgdGhp
cywgbW9kaWZpZWRDdXJyZW50U3R5bGUgPyBtb2RpZmllZEN1cnJlbnRTdHlsZS5nZXQoKSA6IGZy
b21TdHlsZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAvLyBXZSBvbmx5IG5lZWQgb25lIHBhc3MgZm9yIHRoZSBzaW5nbGUgcHJvcCBjYXNl
CisgICAgICAgICAgICAgICAgaWYgKCFhbGwpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBXZSBvbmx5IG5lZWQg
b25lIHBhc3MgZm9yIHRoZSBzaW5nbGUgcHJvcCBjYXNlCi0gICAgICAgICAgICBpZiAoIWFsbCkK
LSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKworICAgIC8vIE1ha2Ug
YSBsaXN0IG9mIHRyYW5zaXRpb25zIHRvIGJlIHJlbW92ZWQKKyAgICBWZWN0b3I8aW50PiB0b0Jl
UmVtb3ZlZDsKKyAgICBlbmQgPSBtX3RyYW5zaXRpb25zLmVuZCgpOworICAgIGZvciAoQ1NTUHJv
cGVydHlUcmFuc2l0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3RyYW5zaXRpb25zLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBJbXBsaWNpdEFuaW1hdGlvbiogYW5p
bSA9IGl0LT5zZWNvbmQuZ2V0KCk7CisgICAgICAgIGlmICghYW5pbS0+YWN0aXZlKCkpCisgICAg
ICAgICAgICB0b0JlUmVtb3ZlZC5hcHBlbmQoYW5pbS0+YW5pbWF0aW5nUHJvcGVydHkoKSk7Cisg
ICAgfQorCisgICAgLy8gTm93IHJlbW92ZSB0aGUgdHJhbnNpdGlvbnMgZnJvbSB0aGUgbGlzdAor
ICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgdG9CZVJlbW92ZWQuc2l6ZSgpOyArK2opCisgICAg
ICAgIG1fdHJhbnNpdGlvbnMucmVtb3ZlKHRvQmVSZW1vdmVkW2pdKTsKIH0KIAogdm9pZCBDb21w
b3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqIHJl
bmRlcmVyLCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHlsZSogdGFyZ2V0U3R5
bGUpCkluZGV4OiBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNw
cAkocmV2aXNpb24gNDQ2MjYpCisrKyBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5p
bWF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBJbXBsaWNpdEFuaW1h
dGlvbjo6SW1wbGljaXRBbmltYXRpb24oY29uCiAgICAgLCBtX3RyYW5zaXRpb25Qcm9wZXJ0eSh0
cmFuc2l0aW9uLT5wcm9wZXJ0eSgpKQogICAgICwgbV9hbmltYXRpbmdQcm9wZXJ0eShhbmltYXRp
bmdQcm9wZXJ0eSkKICAgICAsIG1fb3ZlcnJpZGRlbihmYWxzZSkKKyAgICAsIG1fYWN0aXZlKHRy
dWUpCiAgICAgLCBtX2Zyb21TdHlsZShmcm9tU3R5bGUpCiB7CiAgICAgQVNTRVJUKGFuaW1hdGlu
Z1Byb3BlcnR5ICE9IGNBbmltYXRlQWxsKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRpb24v
SW1wbGljaXRBbmltYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0ltcGxpY2l0QW5pbWF0aW9uLmgJKHJldmlzaW9uIDQ0NjI2KQorKysgV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIGJsZW5kUHJvcGVydHlWYWx1ZUluU3R5bGUoaW50LCBSZW5k
ZXJTdHlsZSogY3VycmVudFN0eWxlKTsKIAogICAgIHZpcnR1YWwgZG91YmxlIHRpbWVUb05leHRT
ZXJ2aWNlKCk7CisgICAgCisgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2
ZTsgfQorICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wgYikgeyBtX2FjdGl2ZSA9IGI7IH0KIAogcHJv
dGVjdGVkOgogICAgIGJvb2wgc2hvdWxkU2VuZEV2ZW50Rm9yTGlzdGVuZXIoRG9jdW1lbnQ6Okxp
c3RlbmVyVHlwZSkgY29uc3Q7ICAgIApAQCAtODAsNiArODMsNyBAQCBwcml2YXRlOgogICAgIGlu
dCBtX3RyYW5zaXRpb25Qcm9wZXJ0eTsgICAvLyBUcmFuc2l0aW9uIHByb3BlcnR5IGFzIHNwZWNp
ZmllZCBpbiB0aGUgUmVuZGVyU3R5bGUuIE1heSBiZSBjQW5pbWF0ZUFsbAogICAgIGludCBtX2Fu
aW1hdGluZ1Byb3BlcnR5OyAgICAvLyBTcGVjaWZpYyBwcm9wZXJ0eSBmb3IgdGhpcyBJbXBsaWNp
dEFuaW1hdGlvbgogICAgIGJvb2wgbV9vdmVycmlkZGVuOyAgICAgICAgICAvLyB0cnVlIHdoZW4g
dGhlcmUgaXMgYSBrZXlmcmFtZSBhbmltYXRpb24gdGhhdCBvdmVycmlkZXMgdGhlIHRyYW5zaXRp
b25pbmcgcHJvcGVydHkKKyAgICBib29sIG1fYWN0aXZlOyAgICAgICAgICAgICAgLy8gdXNlZCBm
b3IgY3VsbGluZyB0aGUgbGlzdCBvZiB0cmFuc2l0aW9ucwogCiAgICAgLy8gVGhlIHR3byBzdHls
ZXMgdGhhdCB3ZSBhcmUgYmxlbmRpbmcuCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX2Zyb21T
dHlsZTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ0NjkwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDYtMTUgIENocmlzIE1hcnJp
biAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NjE2MworCisgICAgICAgIFRlc3RjYXNlIHRvIGRldGVjdCB0cmFuc2l0aW9ucyB0aGF0IGFyZSBz
dGlsbCBydW5uaW5nIGFmdGVyIHJlbW92YWwKKworICAgICAgICAqIHRyYW5zaXRpb25zL2NhbmNl
bC10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMv
Y2FuY2VsLXRyYW5zaXRpb24uaHRtbDogQWRkZWQuCisKIDIwMDktMDYtMTQgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9jYW5jZWwtdHJhbnNpdGlvbi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvY2FuY2VsLXRyYW5z
aXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvY2FuY2VsLXRyYW5zaXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQgQEAKK1Rlc3QgcmVtb3ZlcyB0aGUgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzIHdoaWxlIHRoZSB0
cmFuc2l0aW9uIGlzIHJ1bm5pbmcsIHRoZW4gYWRkcyB0aGVtIGJhY2sgaW4uIElmIHdvcmtpbmcg
cHJvcGVybHkgdGhlIHRyYW5zaXRpb25zIHNob3VsZCBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcu
IEJ1dCB0aGVyZSB3YXMgYSBidWcgdGhhdCB3b3VsZCBjYXVzZSB0aGUgdHJhbnNpdGlvbiB0byBj
b250aW51ZSB0byBydW4gKGFsdGhvdWdoIHdpdGggbm8gdmlzaWJsZSBlZmZlY3QpLiBTbyB3aGVu
IHlvdSByZXN0YXJ0ZWQsIGl0IHdvdWxkIHBpY2sgdXAgd2hlcmUgaXQgbGVmdCBvZmYuCisKK2xl
ZnR0cmFuc2xhdGUKK2xlZnQ6UEFTUywgd2Via2l0VHJhbnNmb3JtOlBBU1MKSW5kZXg6IExheW91
dFRlc3RzL3RyYW5zaXRpb25zL2NhbmNlbC10cmFuc2l0aW9uLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvY2FuY2VsLXRyYW5zaXRpb24uaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL2NhbmNlbC10cmFuc2l0aW9uLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTE4IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz
Qy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3Jn
L1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAJPG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
dXRmLTgiPgorICAJPHRpdGxlPkNhbmNlbGxlZCBUcmFuc2l0aW9uIFNob3VsZCBOb3QgQ29udGlu
dWUgVG8gUnVuPC90aXRsZT4KKyAgCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVl
biI+CisgICAgCSNjb250YWluZXIgeworICAgICAgCQloZWlnaHQ6IDMwMHB4OworCQkJd2lkdGg6
IDcwMHB4OworICAgICAgCQliYWNrZ3JvdW5kOiAjZmNjOworICAgICAgCQlmb250LWZhbWlseTog
QXJpYWxSb3VuZGVkTVRCb2xkLCBzYW5zLXNlcmlmOworICAgICAgCQlmb250LXNpemU6IDIwMCU7
CisgICAgCX0KKyAgCisgICAgCSNjb250YWluZXIgZGl2IHsKKyAgICAgIAkJcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgCQliYWNrZ3JvdW5kLWNvbG9yOiAjOTMzOworICAgICAgCQl3aWR0aDog
MjAwcHg7CisgICAgICAJCWhlaWdodDogMTAwcHg7CisgICAgICAJCWxlZnQ6IDUwcHg7CisgICAg
CX0KKyAgICAgIAkjYSB7CisgICAgICAgIAl0b3A6IDEwMHB4OworICAgICAgCX0KKyAgICAgIAkj
Y29udGFpbmVyLnJ1biAjYSB7CisgICAgICAgIAlsZWZ0OiA0NTBweDsKKyAgICAgICAgCS13ZWJr
aXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsKKyAgICAgICAgCS13ZWJraXQtdHJhbnNpdGlv
bi1kdXJhdGlvbjogMC41czsKKyAgICAgICAgCS13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVu
Y3Rpb246IGxpbmVhcjsKKyAgICAgIAl9CisgICAgICAJI2IgeworICAgICAgICAJdG9wOiAyNTBw
eDsKKyAgICAgIAl9CisgICAgICAJI2NvbnRhaW5lci5ydW4gI2IgeworICAgICAgICAJLXdlYmtp
dC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg0MDBweCwgMHB4KTsKKyAgICAgICAgCS13ZWJraXQtdHJh
bnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07CisgICAgICAgIAktd2Via2l0LXRy
YW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgICAgIAktd2Via2l0LXRyYW5zaXRpb24tdGlt
aW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAJfQorICAJPC9zdHlsZT4KKyAgCTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisJCWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKwkJICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKwkJICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwkJfQor
CisJCXJlc3VsdCA9ICI8c3BhbiBzdHlsZT0nY29sb3I6cmVkJz5DSEVDSyBOT1QgQ09NUExFVEVE
PC9zcGFuPiI7CisKKwkJZnVuY3Rpb24gaXNFcXVhbChhY3R1YWwsIGRlc2lyZWQsIHRvbGVyYW5j
ZSkKKwkJeworCQkJaWYgKHRvbGVyYW5jZSA9PSB1bmRlZmluZWQgfHwgdG9sZXJhbmNlID09IDAp
CisJCSAgICAJdG9sZXJhbmNlID0gZGVmYXVsdFRvbGVyYW5jZTsKKwkJICAgIHZhciBkaWZmID0g
TWF0aC5hYnMoYWN0dWFsIC0gZGVzaXJlZCk7CisJCSAgICByZXR1cm4gZGlmZiA8IHRvbGVyYW5j
ZTsKKwkJfQorCisJCWZ1bmN0aW9uIGNhbmNlbFRyYW5zaXRpb24oKQorCQl7CisJCQlkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikuY2xhc3NOYW1lID0gIiI7CisJCX0KKworCQlm
dW5jdGlvbiByZXN0YXJ0VHJhbnNpdGlvbigpCisJCXsKKwkJCWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb250YWluZXIiKS5jbGFzc05hbWUgPSAicnVuIjsKKwkJICAgIHNldFRpbWVvdXQoImNo
ZWNrKCkiLCAyNTApOworCQl9CisKKwkJZnVuY3Rpb24gY2hlY2soKQorCQl7CisJCSAgICB2YXIg
bGVmdCA9IHBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2EnKSkubGVmdCk7CisJCQlyZXN1bHQgPSAibGVmdDoiOworCQkgICAgaWYgKCFp
c0VxdWFsKGxlZnQsIDI1MCwgMzApKQorCQkgICAgCXJlc3VsdCArPSAiPHNwYW4gc3R5bGU9J2Nv
bG9yOnJlZCc+RkFJTCh3YXM6IiArIGxlZnQgKyAiLCBzL2I6MTUwKTwvc3Bhbj4iOworCQkJZWxz
ZQorCQkJCXJlc3VsdCArPSAiPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz5QQVNTPC9zcGFuPiI7
CisJCQkKKwkJCXJlc3VsdCArPSAiLCB3ZWJraXRUcmFuc2Zvcm06IjsKKwkJCQorCQkgICAgdmFy
IHRyYW5zZm9ybSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdiJykpLndlYmtpdFRyYW5zZm9ybTsKKwkJICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS5z
cGxpdCgiKCIpOworCQkgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtWzFdLnNwbGl0KCIsIik7CisJ
CSAgICBpZiAoIWlzRXF1YWwodHJhbnNmb3JtWzRdLCAyMDAsIDMwKSkKKwkJICAgIAlyZXN1bHQg
Kz0gIjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPkZBSUwod2FzOiIgKyB0cmFuc2Zvcm1bNF0gKyAi
LCBzL2I6NTApPC9zcGFuPiI7CisJCQllbHNlCisJCQkJcmVzdWx0ICs9ICI8c3BhbiBzdHlsZT0n
Y29sb3I6Z3JlZW4nPlBBU1M8L3NwYW4+IjsKKwkJfQorCisJCWZ1bmN0aW9uIHN0YXJ0KCkKKwkJ
eworCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLmNsYXNzTmFtZSA9ICJy
dW4iOworCQkgICAgc2V0VGltZW91dCgiY2FuY2VsVHJhbnNpdGlvbigpIiwgMTAwKTsKKwkJICAg
IHNldFRpbWVvdXQoInJlc3RhcnRUcmFuc2l0aW9uKCkiLCAyMDApOworCisJCSAgICB3aW5kb3cu
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKwkJICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OworCQkgICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisJCSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworCQkgICAgfSwKKwkJICAgIDUwMCk7CisJCX0KKwk8L3NjcmlwdD4KKzxib2R5IG9u
bG9hZD0ic3RhcnQoKSI+Cis8cD4KKwlUZXN0IHJlbW92ZXMgdGhlIHRyYW5zaXRpb24gcHJvcGVy
dGllcyB3aGlsZSB0aGUgdHJhbnNpdGlvbiBpcyBydW5uaW5nLCB0aGVuIGFkZHMgdGhlbSBiYWNr
IGluLgorCUlmIHdvcmtpbmcgcHJvcGVybHkgdGhlIHRyYW5zaXRpb25zIHNob3VsZCBzdGFydCBm
cm9tIHRoZSBiZWdpbm5pbmcuIEJ1dCB0aGVyZSB3YXMgYSBidWcgdGhhdAorCXdvdWxkIGNhdXNl
IHRoZSB0cmFuc2l0aW9uIHRvIGNvbnRpbnVlIHRvIHJ1biAoYWx0aG91Z2ggd2l0aCBubyB2aXNp
YmxlIGVmZmVjdCkuIFNvIHdoZW4geW91CisJcmVzdGFydGVkLCBpdCB3b3VsZCBwaWNrIHVwIHdo
ZXJlIGl0IGxlZnQgb2ZmLgorPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgCTxkaXYgaWQ9
ImEiIGNsYXNzPSJ0ZXN0ZXIiPmxlZnQ8L2Rpdj4KKyAgCTxkaXYgaWQ9ImIiIGNsYXNzPSJ0ZXN0
ZXIiPnRyYW5zbGF0ZTwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="15992"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>