<?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>32387</bug_id>
          
          <creation_ts>2009-12-10 11:51:22 -0800</creation_ts>
          <short_desc>Accelerated transitions broken when mixed with paused animations</short_desc>
          <delta_ts>2009-12-11 12:58:52 -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>
    
    <cc>dino</cc>
    
    <cc>ml</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170480</commentid>
    <comment_count>0</comment_count>
      <attachid>44630</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-12-10 11:51:22 -0800</bug_when>
    <thetext>Created attachment 44630
Testcase

The attached testcase shows a problem where paused animations interfere with hardware transitions.

When you load the testcase, the outer box should animate left, animate right, then animate left again. The bug is that the last animation fails; it jumps left at the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170519</commentid>
    <comment_count>1</comment_count>
      <attachid>44638</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-12-10 14:13:27 -0800</bug_when>
    <thetext>Created attachment 44638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170524</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-10 14:17:48 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44638 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170534</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-12-10 14:41:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/7443031&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170866</commentid>
    <comment_count>4</comment_count>
      <attachid>44638</attachid>
    <who name="">mitz</who>
    <bug_when>2009-12-11 11:48:15 -0800</bug_when>
    <thetext>Comment on attachment 44638
Patch

&gt;                      m_startTime = param;
&gt; -
&gt; +                
&gt;                  // Decide whether to go into looping or ending state

Extra whitespace added there.

&gt; -void KeyframeAnimation::endAnimation(bool reset)
&gt; +void KeyframeAnimation::pauseAnimation(double timeOffset)
&gt;  {
&gt; -    if (m_object) {
&gt; +    if (!m_object)
&gt; +        return;
&gt; +
&gt; +    fprintf(stderr, &quot;pausing animation, offset %f\n&quot;, timeOffset);

Please remove the fprintf.

&gt; +    struct AnimationProcessingInfo {
&gt; +        AnimationProcessingInfo(AnimationProcessingAction action = Remove, double timeOffset = 0)
&gt; +            : action(action)
&gt; +            , timeOffset(timeOffset) { }

The braces should go each on its own separate line:
           {
           }

Perhaps the struct should be called AnimationProcessingAction and the enum renamed to something else? Perhaps not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170887</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-12-11 12:58:52 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/52017</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>44630</attachid>
            <date>2009-12-10 11:51:22 -0800</date>
            <delta_ts>2009-12-10 11:51:22 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>transitions-and-paused-animations.html</filename>
            <type>text/html</type>
            <size>1755</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cgo8aHRtbCBs
YW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KICA8dGl0bGU+VHJhbnNpdGlvbnMgYW5kIHBh
dXNlZCBhbmltYXRpb25zPC90aXRsZT4KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJz
Y3JlZW4iPgogICAgCiAgICAuY29udGFpbmVyIHsKICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAg
d2lkdGg6IDIwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAgICAgLXdlYmtp
dC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjVzOwogICAgfQogICAgCiAgICAubW92
ZWQgewogICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7CiAgICAgIAog
ICAgfQogICAgLmJveCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgaGVpZ2h0OiAx
MDBweDsKICAgICAgd2lkdGg6IDEwMHB4OwogICAgICBtYXJnaW46IDUwcHg7CiAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGJsdWU7CiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDAp
OwogICAgICAtd2Via2l0LWFuaW1hdGlvbjogZmFkZSAxcyBpbmZpbml0ZSBsaW5lYXIgYWx0ZXJu
YXRlOwogICAgfQogICAgCiAgICAubW92ZWQgLmJveCB7CiAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LXBsYXktc3RhdGU6IHBhdXNlZDsKICAgIH0KICAgIAogICAgQC13ZWJraXQta2V5ZnJhbWVzIGZh
ZGUgewogICAgICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMjBkZWcpOyB9CiAg
ICAgIHRvICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIwZGVnKTsgICB9CiAgICB9CiAg
PC9zdHlsZT4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgi
PgogICAgCiAgICBmdW5jdGlvbiBydW5UZXN0KCkKICAgIHsKICAgICAgdmFyIGJveCA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ib3gnKVswXTsKICAgICAgdmFyIGNvbnRhaW5lciA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jb250YWluZXInKVswXTsKICAgICAgCiAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIGNvbnRhaW5lci5jbGFzc05hbWUg
PSAnY29udGFpbmVyJzsKICAgICAgfSwgMjUwKTsKICAgICAgCiAgICAgIHdpbmRvdy5zZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewogICAgICAgIGNvbnRhaW5lci5jbGFzc05hbWUgPSAnY29udGFpbmVy
IG1vdmVkJzsKICAgICAgfSwgMTUwMCk7CgogICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gJ2NvbnRhaW5lcic7CiAgICAgIH0s
IDMwMDApOwogICAgfQogICAgCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1
blRlc3QsIGZhbHNlKQogIDwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgoKPHA+Qm94IHNob3VsZCBh
bmltYXRlIHNtb290aGx5IGxlZnQsIHRoZW4gcmlnaHQgdGhlbiBsZWZ0IGFnYWluLCBhbmQgbm90
IGp1bXAgYXQgdGhlIGVuZC48L3A+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciBtb3ZlZCI+CiAgPGRp
diBjbGFzcz0iYm94Ij48L2Rpdj4KPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44638</attachid>
            <date>2009-12-10 14:13:27 -0800</date>
            <delta_ts>2009-12-11 11:48:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>32387_patch.txt</filename>
            <type>text/plain</type>
            <size>38425</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDY0NDQ4OC4uMmE2MjU4MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAwOS0xMi0xMCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBY2NlbGVyYXRlZCB0cmFuc2l0aW9ucyBicm9rZW4gd2hlbiBt
aXhlZCB3aXRoIHBhdXNlZCBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMjM4NworCisgICAgICAgIFN5bmNocm9uaXphdGlvbiBvZiBh
IG1peHR1cmUgb2YgYWNjZWxlcmF0ZWQgYW5kIHNvZnR3YXJlIGFuaW1hdGlvbnMgb2NjdXJzIHZp
YQorICAgICAgICBhIGNhbGxiYWNrIGZyb20gR3JhcGhpY3NMYXllckNBLCB3aGljaCBlbmRzIHVw
IGluCisgICAgICAgIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpyZWNlaXZlZFN0YXJ0VGlt
ZVJlc3BvbnNlKCkuIFRoZSB0aW1lIHBhc3NlZCBpbiBpcworICAgICAgICB0aGUgZXhhY3QgdGlt
ZSBhdCB3aGljaCB0aGUgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucyBzdGFydGVkLCBzbyBpcyB1c2Vk
IGFzIHRoZQorICAgICAgICBzdGFydCB0aW1lIGZvciBhbGwgYW5pbWF0aW9ucyBhbmQgdHJhbnNp
dGlvbnMgd2hpY2ggYXJlIG1hcmtlZCBhcyB3YWl0aW5nLgorCisgICAgICAgIFRoZSBidWcgd2Fz
IHRoYXQgdGhlIGNhbGxiYWNrIGNhbGxlZCB3aGVuIHJlLXN0YXJ0aW5nIGFuaW1hdGlvbnMgdGhh
dCB3ZXJlCisgICAgICAgIHBhdXNlZCBzZW50IGJhY2sgYW4gb2xkIHRpbWUgdmFsdWUsIGJ1dCB0
aGlzIHdhcyB1c2VkIHRvIHN0YXJ0IG5vcm1hbAorICAgICAgICB0cmFuc2l0aW9ucy4gVGhlcmVm
b3JlIHRoZSB0cmFuc2l0aW9uIHdvdWxkIHN0YXJ0IHdpdGggYSBzdGFsZSBzdGFydCB0aW1lLCBh
bmQKKyAgICAgICAgdGh1cyBlbmQgcHJlbWF0dXJlbHkuCisKKyAgICAgICAgVGhlIGZpeCBpcyB0
byBjaGFuZ2UgdGhlIHdheSB0aGF0IEdyYXBoaWNzTGF5ZXJDQSBoYW5kbGVzIHBhdXNlZCBhbmlt
YXRpb25zLgorICAgICAgICBSYXRoZXIgdGhhbiBzZXR0aW5nIHRoZSBiZWdpblRpbWUgb2YgdGhl
IGFuaW1hdGlvbiwgaXQgdXNlcyBhIGJlZ2luVGltZSBvZiAwCisgICAgICAgIGFuZCBhIHRpbWVP
ZmZzZXQgdGhhdCBnZXRzIHBhc3NlZCBkb3duLiBUaHVzIHRoZSBjYWxsYmFja3MgYWx3YXlzIGNv
bWUgd2l0aAorICAgICAgICBiZWdpblRpbWUgZm9yICdub3cnLgorCisgICAgICAgIEFsc28gY2xh
cmlmeSB0aGUgcm9sZSBvZiBBbmltYXRpb25CYXNlOjplbmRBbmltYXRpb24oKSBieSBzcGxpdHRp
bmcgaXQgaW50bworICAgICAgICBwYXVzZUFuaW1hdGlvbigpIGFuZCBlbmRBbmltYXRpb24oKSwg
YW5kIHBhc3MgZG93biB0aW1lT2Zmc2V0cywgcmF0aGVyIHRoYW4KKyAgICAgICAgYmVnaW5UaW1l
cyB3aGVuIHN0YXJ0aW5nIGFuZCBwYXVzaW5nLgorCisgICAgICAgIE1hbnVhbCB0ZXN0IG9ubHks
IGJlY2F1c2UgdGhlIGJ1ZyByZXF1aXJlcyBhIG5vbi10cml2aWFsIGNvbWJpbmF0aW9uIG9mCisg
ICAgICAgIGFuaW1hdGlvbiBwYXVzaW5nIGFuZCB0cmFuc2l0aW9ucyB3aGljaCB0YWtlIHRpbWUs
IGFuZCB0aGUgYnVnIG9ubHkgc2hvd3MgaW4KKyAgICAgICAgcGl4ZWwgcmVzdWx0cy4KKyAgICAg
ICAgCisgICAgICAgICogbWFudWFsLXRlc3RzL2FuaW1hdGlvbi90cmFuc2l0aW9ucy1hbmQtcGF1
c2VkLWFuaW1hdGlvbnMuaHRtbAorCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1h
Y2hpbmUpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbkJhc2U6OnBhdXNlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkJhc2U6OmVuZEFuaW1hdGlvbik6CisgICAgICAgICogcGFnZS9hbmltYXRpb24v
SW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRp
b246On5JbXBsaWNpdEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1h
dGlvbjo6c3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRp
b246OmVuZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6
b25BbmltYXRpb25FbmQpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6cGF1c2VBbmltYXRp
b24pOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjp+S2V5ZnJhbWVBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVBbmltYXRpb246OnN0YXJ0QW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpwYXVzZUFuaW1hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVuZCk6CisgICAgICAgICog
cGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjphZGRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6cGF1c2VB
bmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVy
Q0EuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6TGF5ZXJBbmltYXRpb246
OkxheWVyQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6QW5p
bWF0aW9uUHJvY2Vzc2luZ0luZm86OkFuaW1hdGlvblByb2Nlc3NpbmdJbmZvKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjpyZW1vdmVBbmltYXRpb25zRm9yS2V5ZnJhbWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGF1c2VBbmltYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckFuaW1hdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25PbkxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGF1c2VBbmltYXRpb25PbkxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1l
cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFu
aW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydFRy
YW5zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjphbmltYXRp
b25QYXVzZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKwog
MjAwOS0xMi0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0
cy9hbmltYXRpb24vdHJhbnNpdGlvbnMtYW5kLXBhdXNlZC1hbmltYXRpb25zLmh0bWwgYi9XZWJD
b3JlL21hbnVhbC10ZXN0cy9hbmltYXRpb24vdHJhbnNpdGlvbnMtYW5kLXBhdXNlZC1hbmltYXRp
b25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg4ZDgzNwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL2FuaW1hdGlvbi90cmFuc2l0aW9u
cy1hbmQtcGF1c2VkLWFuaW1hdGlvbnMuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUg
aHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAg
Imh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UcmFuc2l0aW9ucyBhbmQgcGF1c2Vk
IGFuaW1hdGlvbnM8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3Jl
ZW4iPgorICAgIAorICAgIC5jb250YWluZXIgeworICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgLXdl
YmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjVzOworICAgIH0KKyAgICAKKyAg
ICAubW92ZWQgeworICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwcHgpOwor
ICAgICAgCisgICAgfQorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogNTBw
eDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWigwKTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBmYWRlIDFzIGluZmlu
aXRlIGxpbmVhciBhbHRlcm5hdGU7CisgICAgfQorICAgIAorICAgIC5tb3ZlZCAuYm94IHsKKyAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDsKKyAgICB9CisgICAgCisg
ICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUgeworICAgICAgZnJvbSB7IC13ZWJraXQtdHJhbnNm
b3JtOiByb3RhdGUoLTIwZGVnKTsgfQorICAgICAgdG8gICB7IC13ZWJraXQtdHJhbnNmb3JtOiBy
b3RhdGUoMjBkZWcpOyAgIH0KKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpCisgICAgeworICAgICAgdmFyIGJveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5i
b3gnKVswXTsKKyAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCcuY29udGFpbmVyJylbMF07CisgICAgICAKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gJ2NvbnRhaW5lcic7CisgICAg
ICB9LCAyNTApOworICAgICAgCisgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsK
KyAgICAgICAgY29udGFpbmVyLmNsYXNzTmFtZSA9ICdjb250YWluZXIgbW92ZWQnOworICAgICAg
fSwgMTUwMCk7CisKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICBjb250YWluZXIuY2xhc3NOYW1lID0gJ2NvbnRhaW5lcic7CisgICAgICB9LCAzMDAwKTsKKyAg
ICB9CisgICAgCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBm
YWxzZSkKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+Qm94IHNob3VsZCBhbmlt
YXRlIHNtb290aGx5IGxlZnQsIHRoZW4gcmlnaHQgdGhlbiBsZWZ0IGFnYWluLCBhbmQgbm90IGp1
bXAgYXQgdGhlIGVuZC48L3A+Cis8ZGl2IGNsYXNzPSJjb250YWluZXIgbW92ZWQiPgorICA8ZGl2
IGNsYXNzPSJib3giPjwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IGYxZWU3NTAuLmFkZGIzMmIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKKysrIGIv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtODYzLDcgKzg2Myw3
IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0
IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgIG1fcGF1c2VUaW1lID0gLTE7CiAgICAgICAg
IG1fcmVxdWVzdGVkU3RhcnRUaW1lID0gMDsKICAgICAgICAgbV9uZXh0SXRlcmF0aW9uRHVyYXRp
b24gPSAtMTsKLSAgICAgICAgZW5kQW5pbWF0aW9uKGZhbHNlKTsKKyAgICAgICAgZW5kQW5pbWF0
aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg3NSw3ICs4NzUsNyBAQCB2b2lk
IEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBbmltU3RhdGVJbnB1dCBpbnB1dCwg
ZG91YmxlIHBhcmFtKQogICAgICAgICBtX3BhdXNlVGltZSA9IC0xOwogICAgICAgICBtX3JlcXVl
c3RlZFN0YXJ0VGltZSA9IDA7CiAgICAgICAgIG1fbmV4dEl0ZXJhdGlvbkR1cmF0aW9uID0gLTE7
Ci0gICAgICAgIGVuZEFuaW1hdGlvbihmYWxzZSk7CisgICAgICAgIGVuZEFuaW1hdGlvbigpOwog
CiAgICAgICAgIGlmICghcGF1c2VkKCkpCiAgICAgICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUo
QW5pbWF0aW9uU3RhdGVJbnB1dFN0YXJ0QW5pbWF0aW9uLCAtMSk7CkBAIC04ODYsNyArODg2LDcg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQg
aW5wdXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgaWYgKG1fYW5pbVN0YXRlID09IEFuaW1hdGlv
blN0YXRlU3RhcnRXYWl0U3R5bGVBdmFpbGFibGUpCiAgICAgICAgICAgICBtX2NvbXBBbmltLT5h
bmltYXRpb25Db250cm9sbGVyKCktPnJlbW92ZUZyb21TdHlsZUF2YWlsYWJsZVdhaXRMaXN0KHRo
aXMpOwogICAgICAgICBtX2FuaW1TdGF0ZSA9IEFuaW1hdGlvblN0YXRlRG9uZTsKLSAgICAgICAg
ZW5kQW5pbWF0aW9uKHRydWUpOworICAgICAgICBlbmRBbmltYXRpb24oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtODk0LDcgKzg5NCw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBk
YXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAg
ICAgIGlmIChtX2FuaW1TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZVN0YXJ0V2FpdFJlc3BvbnNlKSB7
CiAgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgaW4gQW5pbWF0aW9uU3RhdGVTdGFydFdhaXRSZXNw
b25zZSwgdGhlIGFuaW1hdGlvbiB3aWxsIGdldCBjYW5jZWxlZCBiZWZvcmUgCiAgICAgICAgICAg
ICAvLyB3ZSBnZXQgYSByZXNwb25zZSwgc28gbW92ZSB0byB0aGUgbmV4dCBzdGF0ZS4KLSAgICAg
ICAgICAgIGVuZEFuaW1hdGlvbihmYWxzZSk7CisgICAgICAgICAgICBlbmRBbmltYXRpb24oKTsK
ICAgICAgICAgICAgIHVwZGF0ZVN0YXRlTWFjaGluZShBbmltYXRpb25TdGF0ZUlucHV0U3RhcnRU
aW1lU2V0LCBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSk7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuOwpAQCAtOTAzLDcgKzkwMyw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3Rh
dGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgaWYgKGlu
cHV0ID09IEFuaW1hdGlvblN0YXRlSW5wdXRSZXN1bWVPdmVycmlkZSkgewogICAgICAgICBpZiAo
bV9hbmltU3RhdGUgPT0gQW5pbWF0aW9uU3RhdGVMb29waW5nIHx8IG1fYW5pbVN0YXRlID09IEFu
aW1hdGlvblN0YXRlRW5kaW5nKSB7CiAgICAgICAgICAgICAvLyBTdGFydCB0aGUgYW5pbWF0aW9u
Ci0gICAgICAgICAgICBzdGFydEFuaW1hdGlvbihtX3N0YXJ0VGltZSk7CisgICAgICAgICAgICBz
dGFydEFuaW1hdGlvbihiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSAtIG1fc3RhcnRUaW1lKTsK
ICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTY5LDcgKzk2OSw3IEBAIHZv
aWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0
LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBhIHN0YXJ0IHRpbWUs
IHNldCBpdCwgdW5sZXNzIHRoZSBzdGFydFRpbWUgaXMgYWxyZWFkeSBzZXQKICAgICAgICAgICAg
ICAgICBpZiAobV9zdGFydFRpbWUgPD0gMCkKICAgICAgICAgICAgICAgICAgICAgbV9zdGFydFRp
bWUgPSBwYXJhbTsKLQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIERlY2lk
ZSB3aGV0aGVyIHRvIGdvIGludG8gbG9vcGluZyBvciBlbmRpbmcgc3RhdGUKICAgICAgICAgICAg
ICAgICBnb0ludG9FbmRpbmdPckxvb3BpbmdTdGF0ZSgpOwogCkBAIC05ODAsNyArOTgwLDcgQEAg
dm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5w
dXQsIGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgcGF1c2luZyB3aGls
ZSB3YWl0aW5nIGZvciBhIHN0YXJ0IHJlc3BvbnNlLiBDYW5jZWwgdGhlIGFuaW1hdGlvbiBhbmQg
d2FpdC4gV2hlbiAKICAgICAgICAgICAgICAgICAvLyB3ZSB1bnBhdXNlLCB3ZSB3aWxsIGFjdCBh
cyB0aG91Z2ggdGhlIHN0YXJ0IHRpbWVyIGp1c3QgZmlyZWQKICAgICAgICAgICAgICAgICBtX3Bh
dXNlVGltZSA9IC0xOwotICAgICAgICAgICAgICAgIGVuZEFuaW1hdGlvbihmYWxzZSk7CisgICAg
ICAgICAgICAgICAgcGF1c2VBbmltYXRpb24oYmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCkgLSBt
X3N0YXJ0VGltZSk7CiAgICAgICAgICAgICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25TdGF0
ZVBhdXNlZFdhaXRSZXNwb25zZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpA
QCAtOTk3LDcgKzk5Nyw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5l
KEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBwYXVzaW5nIHdoaWxlIHJ1bm5pbmcuIENhbmNl
bCB0aGUgYW5pbWF0aW9uIGFuZCB3YWl0CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRpbWUgPSBi
ZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKTsKLSAgICAgICAgICAgICAgICBlbmRBbmltYXRpb24o
ZmFsc2UpOworICAgICAgICAgICAgICAgIHBhdXNlQW5pbWF0aW9uKGJlZ2luQW5pbWF0aW9uVXBk
YXRlVGltZSgpIC0gbV9zdGFydFRpbWUpOwogICAgICAgICAgICAgICAgIG1fYW5pbVN0YXRlID0g
QW5pbWF0aW9uU3RhdGVQYXVzZWRSdW47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKQEAgLTEwMjAsNyArMTAyMCw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVN
YWNoaW5lKEFuaW1TdGF0ZUlucHV0IGlucHV0LCBkb3VibGUgcGFyYW0pCiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBwYXVzaW5nIHdoaWxlIHJ1bm5pbmcu
IENhbmNlbCB0aGUgYW5pbWF0aW9uIGFuZCB3YWl0CiAgICAgICAgICAgICAgICAgbV9wYXVzZVRp
bWUgPSBiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKTsKLSAgICAgICAgICAgICAgICBlbmRBbmlt
YXRpb24oZmFsc2UpOworICAgICAgICAgICAgICAgIHBhdXNlQW5pbWF0aW9uKGJlZ2luQW5pbWF0
aW9uVXBkYXRlVGltZSgpIC0gbV9zdGFydFRpbWUpOwogICAgICAgICAgICAgICAgIG1fYW5pbVN0
YXRlID0gQW5pbWF0aW9uU3RhdGVQYXVzZWRSdW47CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAvLyB8dGhpc3wgbWF5IGJlIGRlbGV0ZWQgaGVyZQpAQCAtMTA3Miw3ICsxMDcyLDcgQEAgdm9p
ZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbVN0YXRlSW5wdXQgaW5wdXQs
IGRvdWJsZSBwYXJhbSkKICAgICAgICAgICAgICAgICB1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbWF0
aW9uU3RhdGVJbnB1dFN0YXJ0VGltZVNldCwgYmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCkpOwog
ICAgICAgICAgICAgICAgIG1fZmFsbGJhY2tBbmltYXRpbmcgPSB0cnVlOwogICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBib29sIHN0YXJ0ZWQgPSBzdGFydEFuaW1hdGlvbiht
X3N0YXJ0VGltZSk7CisgICAgICAgICAgICAgICAgYm9vbCBzdGFydGVkID0gc3RhcnRBbmltYXRp
b24oYmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCkgLSBtX3N0YXJ0VGltZSk7CiAgICAgICAgICAg
ICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGRUb1N0YXJ0VGltZVJl
c3BvbnNlV2FpdExpc3QodGhpcywgc3RhcnRlZCk7CiAgICAgICAgICAgICAgICAgbV9mYWxsYmFj
a0FuaW1hdGluZyA9ICFzdGFydGVkOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmggYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuaAppbmRleCAzNDgyZjY1Li5jMzY3ZTBhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAorKysgYi9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkJhc2UuaApAQCAtMTg2LDggKzE4NiwxMyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB2b2lkIG9uQW5pbWF0aW9uU3RhcnQoZG91YmxlIC8qZWxhcHNlZFRpbWUqLykg
eyB9CiAgICAgdmlydHVhbCB2b2lkIG9uQW5pbWF0aW9uSXRlcmF0aW9uKGRvdWJsZSAvKmVsYXBz
ZWRUaW1lKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvbkFuaW1hdGlvbkVuZChkb3VibGUgLypl
bGFwc2VkVGltZSovKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3RhcnRBbmltYXRpb24oZG91Ymxl
IC8qYmVnaW5UaW1lKi8pIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGVuZEFu
aW1hdGlvbihib29sIC8qcmVzZXQqLykgeyB9CisgICAgCisgICAgLy8gdGltZU9mZnNldCBpcyBh
biBvZmZzZXQgZnJvbSB0aGUgY3VycmVudCB0aW1lIHdoZW4gdGhlIGFuaW1hdGlvbiBzaG91bGQg
c3RhcnQuIE5lZ2F0aXZlIHZhbHVlcyBhcmUgT0suCisgICAgLy8gUmV0dXJuIHZhbHVlIGluZGlj
YXRlcyB3aGV0aGVyIHRvIGV4cGVjdCBhbiBhc3luY2hyb25vdXMgbm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZCgpIGNhbGxiYWNrLgorICAgIHZpcnR1YWwgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUg
Lyp0aW1lT2Zmc2V0Ki8pIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgLy8gdGltZU9mZnNldCBpcyB0
aGUgdGltZSBhdCB3aGljaCB0aGUgYW5pbWF0aW9uIGlzIGJlaW5nIHBhdXNlZC4KKyAgICB2aXJ0
dWFsIHZvaWQgcGF1c2VBbmltYXRpb24oZG91YmxlIC8qdGltZU9mZnNldCovKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZW5kQW5pbWF0aW9uKCkgeyB9CiAKICAgICB2b2lkIGdvSW50b0VuZGluZ09y
TG9vcGluZ1N0YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1w
bGljaXRBbmltYXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1h
dGlvbi5jcHAKaW5kZXggNTBmYzc4MS4uZDM5ZjVmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgSW1wbGljaXRBbmlt
YXRpb246On5JbXBsaWNpdEFuaW1hdGlvbigpCiB7CiAgICAgLy8gLy8gTWFrZSBzdXJlIHRvIHRl
bGwgdGhlIHJlbmRlcmVyIHRoYXQgd2UgYXJlIGVuZGluZy4gVGhpcyB3aWxsIG1ha2Ugc3VyZSBh
bnkgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucyBhcmUgcmVtb3ZlZC4KICAgICBpZiAoIXBvc3RBY3Rp
dmUoKSkKLSAgICAgICAgZW5kQW5pbWF0aW9uKHRydWUpOworICAgICAgICBlbmRBbmltYXRpb24o
KTsKIH0KIAogYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2hvdWxkU2VuZEV2ZW50Rm9yTGlzdGVu
ZXIoRG9jdW1lbnQ6Okxpc3RlbmVyVHlwZSBpbkxpc3RlbmVyVHlwZSkgY29uc3QKQEAgLTEwNiwx
MyArMTA2LDEzIEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmdldEFuaW1hdGVkU3R5bGUoUmVm
UHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHlsZSkKICAgICBibGVuZFByb3BlcnRpZXModGhp
cywgbV9hbmltYXRpbmdQcm9wZXJ0eSwgYW5pbWF0ZWRTdHlsZS5nZXQoKSwgbV9mcm9tU3R5bGUu
Z2V0KCksIG1fdG9TdHlsZS5nZXQoKSwgcHJvZ3Jlc3MoMSwgMCwgMCkpOwogfQogCi1ib29sIElt
cGxpY2l0QW5pbWF0aW9uOjpzdGFydEFuaW1hdGlvbihkb3VibGUgYmVnaW5UaW1lKQorYm9vbCBJ
bXBsaWNpdEFuaW1hdGlvbjo6c3RhcnRBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQpCiB7CiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX29iamVjdCAmJiBtX29i
amVjdC0+aGFzTGF5ZXIoKSkgewogICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRl
ckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0KS0+bGF5ZXIoKTsKICAgICAgICAgaWYgKGxheWVyLT5p
c0NvbXBvc2l0ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBsYXllci0+YmFja2luZygpLT5zdGFy
dFRyYW5zaXRpb24oYmVnaW5UaW1lLCBtX2FuaW1hdGluZ1Byb3BlcnR5LCBtX2Zyb21TdHlsZS5n
ZXQoKSwgbV90b1N0eWxlLmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybiBsYXllci0+YmFja2lu
ZygpLT5zdGFydFRyYW5zaXRpb24odGltZU9mZnNldCwgbV9hbmltYXRpbmdQcm9wZXJ0eSwgbV9m
cm9tU3R5bGUuZ2V0KCksIG1fdG9TdHlsZS5nZXQoKSk7CiAgICAgfQogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oYmVnaW5UaW1lKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBib29sIEltcGxpY2l0QW5p
bWF0aW9uOjpzdGFydEFuaW1hdGlvbihkb3VibGUgYmVnaW5UaW1lKQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKGJvb2wgLypyZXNl
dCovKQordm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKCkKIHsKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fb2JqZWN0ICYmIG1fb2JqZWN0LT5o
YXNMYXllcigpKSB7CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6
b25BbmltYXRpb25FbmQoZG91YmxlIGVsYXBzZWRUaW1lKQogICAgICAgICBrZXlmcmFtZUFuaW0t
PnNldFVuYW5pbWF0ZWRTdHlsZShtX3RvU3R5bGUpOwogICAgIAogICAgIHNlbmRUcmFuc2l0aW9u
RXZlbnQoZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgZWxhcHNlZFRpbWUp
OwotICAgIGVuZEFuaW1hdGlvbih0cnVlKTsKKyAgICBlbmRBbmltYXRpb24oKTsKIH0KIAogYm9v
bCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRUaW1lKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9JbXBsaWNpdEFuaW1hdGlvbi5oCmluZGV4IDdlMjg2ZDIuLmJlNWMxOTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAorKysgYi9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgKQEAgLTQ3LDggKzQ3LDkgQEAgcHVi
bGljOgogICAgIGludCBhbmltYXRpbmdQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0
aW5nUHJvcGVydHk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvbkFuaW1hdGlvbkVuZChkb3VibGUg
ZWxhcHNlZFRpbWUpOwotICAgIHZpcnR1YWwgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUgYmVn
aW5UaW1lKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5kQW5pbWF0aW9uKGJvb2wgcmVzZXQpOworICAg
IHZpcnR1YWwgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCk7CisgICAgdmly
dHVhbCB2b2lkIHBhdXNlQW5pbWF0aW9uKGRvdWJsZSAvKnRpbWVPZmZzZXQqLykgeyB9CisgICAg
dmlydHVhbCB2b2lkIGVuZEFuaW1hdGlvbigpOwogCiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUo
Q29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyU3R5bGUqIGN1
cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlLCBSZWZQdHI8UmVuZGVyU3R5bGU+
JiBhbmltYXRlZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QW5pbWF0ZWRTdHlsZShSZWZQ
dHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggNTAwYmY2Zi4uZTU4MzI0NyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAgS2V5ZnJhbWVBbmltYXRpb246On5LZXlmcmFtZUFuaW1hdGlvbigpCiB7CiAgICAgLy8gTWFr
ZSBzdXJlIHRvIHRlbGwgdGhlIHJlbmRlcmVyIHRoYXQgd2UgYXJlIGVuZGluZy4gVGhpcyB3aWxs
IG1ha2Ugc3VyZSBhbnkgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucyBhcmUgcmVtb3ZlZC4KICAgICBp
ZiAoIXBvc3RBY3RpdmUoKSkKLSAgICAgICAgZW5kQW5pbWF0aW9uKHRydWUpOworICAgICAgICBl
bmRBbmltYXRpb24oKTsKIH0KIAogdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Z2V0S2V5ZnJhbWVB
bmltYXRpb25JbnRlcnZhbChjb25zdCBSZW5kZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVu
ZGVyU3R5bGUqJiB0b1N0eWxlLCBkb3VibGUmIHByb2cpIGNvbnN0CkBAIC0xOTIsMTMgKzE5Miwx
MyBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpoYXNBbmltYXRpb25Gb3JQcm9wZXJ0eShpbnQg
cHJvcGVydHkpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEtleWZyYW1lQW5p
bWF0aW9uOjpzdGFydEFuaW1hdGlvbihkb3VibGUgYmVnaW5UaW1lKQorYm9vbCBLZXlmcmFtZUFu
aW1hdGlvbjo6c3RhcnRBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQpCiB7CiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX29iamVjdCAmJiBtX29iamVjdC0+aGFz
TGF5ZXIoKSkgewogICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVs
T2JqZWN0KG1fb2JqZWN0KS0+bGF5ZXIoKTsKICAgICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0
ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBsYXllci0+YmFja2luZygpLT5zdGFydEFuaW1hdGlv
bihiZWdpblRpbWUsIG1fYW5pbWF0aW9uLmdldCgpLCBtX2tleWZyYW1lcyk7CisgICAgICAgICAg
ICByZXR1cm4gbGF5ZXItPmJhY2tpbmcoKS0+c3RhcnRBbmltYXRpb24odGltZU9mZnNldCwgbV9h
bmltYXRpb24uZ2V0KCksIG1fa2V5ZnJhbWVzKTsKICAgICB9CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShiZWdpblRpbWUpOwpAQCAtMjA2LDI2ICsyMDYsNDAgQEAgYm9vbCBLZXlmcmFtZUFuaW1h
dGlvbjo6c3RhcnRBbmltYXRpb24oZG91YmxlIGJlZ2luVGltZSkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmVuZEFuaW1hdGlvbihib29sIHJlc2V0KQor
dm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6cGF1c2VBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQp
CiB7Ci0gICAgaWYgKG1fb2JqZWN0KSB7CisgICAgaWYgKCFtX29iamVjdCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZnByaW50ZihzdGRlcnIsICJwYXVzaW5nIGFuaW1hdGlvbiwgb2Zmc2V0ICVm
XG4iLCB0aW1lT2Zmc2V0KTsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAg
ICAgICAgaWYgKG1fb2JqZWN0LT5oYXNMYXllcigpKSB7Ci0gICAgICAgICAgICBSZW5kZXJMYXll
ciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0KS0+bGF5ZXIoKTsKLSAg
ICAgICAgICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVkKCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAocmVzZXQpCi0gICAgICAgICAgICAgICAgICAgIGxheWVyLT5iYWNraW5nKCktPmFuaW1hdGlv
bkZpbmlzaGVkKG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7Ci0gICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICBsYXllci0+YmFja2luZygpLT5hbmltYXRpb25QYXVz
ZWQobV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BBUkFNKHJlc2V0KTsKKyAgICBpZiAobV9vYmplY3Qt
Pmhhc0xheWVyKCkpIHsKKyAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gdG9SZW5kZXJCb3hN
b2RlbE9iamVjdChtX29iamVjdCktPmxheWVyKCk7CisgICAgICAgIGlmIChsYXllci0+aXNDb21w
b3NpdGVkKCkpCisgICAgICAgICAgICBsYXllci0+YmFja2luZygpLT5hbmltYXRpb25QYXVzZWQo
dGltZU9mZnNldCwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKKyAgICB9CiAjZW5kaWYK
LSAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxlCi0gICAg
ICAgIGlmICghcGF1c2VkKCkpCi0gICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKG1fb2Jq
ZWN0LT5ub2RlKCkpOworICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVkKSBz
dHlsZQorICAgIGlmICghcGF1c2VkKCkpCisgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMobV9v
YmplY3QtPm5vZGUoKSk7Cit9CisKK3ZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmVuZEFuaW1hdGlv
bigpCit7CisgICAgaWYgKCFtX29iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChtX29iamVjdC0+aGFzTGF5ZXIoKSkgewor
ICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2Jq
ZWN0KS0+bGF5ZXIoKTsKKyAgICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkKKyAgICAg
ICAgICAgIGxheWVyLT5iYWNraW5nKCktPmFuaW1hdGlvbkZpbmlzaGVkKG1fa2V5ZnJhbWVzLmFu
aW1hdGlvbk5hbWUoKSk7CiAgICAgfQorI2VuZGlmCisgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2lu
YWwgKHVuYW5pbWF0ZWQpIHN0eWxlCisgICAgaWYgKCFwYXVzZWQoKSkKKyAgICAgICAgc2V0TmVl
ZHNTdHlsZVJlY2FsYyhtX29iamVjdC0+bm9kZSgpKTsKIH0KIAogYm9vbCBLZXlmcmFtZUFuaW1h
dGlvbjo6c2hvdWxkU2VuZEV2ZW50Rm9yTGlzdGVuZXIoRG9jdW1lbnQ6Okxpc3RlbmVyVHlwZSBs
aXN0ZW5lclR5cGUpIGNvbnN0CkBAIC0yNDYsNyArMjYwLDcgQEAgdm9pZCBLZXlmcmFtZUFuaW1h
dGlvbjo6b25BbmltYXRpb25JdGVyYXRpb24oZG91YmxlIGVsYXBzZWRUaW1lKQogdm9pZCBLZXlm
cmFtZUFuaW1hdGlvbjo6b25BbmltYXRpb25FbmQoZG91YmxlIGVsYXBzZWRUaW1lKQogewogICAg
IHNlbmRBbmltYXRpb25FdmVudChldmVudE5hbWVzKCkud2Via2l0QW5pbWF0aW9uRW5kRXZlbnQs
IGVsYXBzZWRUaW1lKTsKLSAgICBlbmRBbmltYXRpb24odHJ1ZSk7CisgICAgZW5kQW5pbWF0aW9u
KCk7CiB9CiAKIGJvb2wgS2V5ZnJhbWVBbmltYXRpb246OnNlbmRBbmltYXRpb25FdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRUaW1lKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oIGIvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oCmluZGV4IGUzYjhmNTMuLmZhYjBhZTgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaAor
KysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgKQEAgLTY0LDgg
KzY0LDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBvbkFuaW1hdGlvblN0YXJ0KGRv
dWJsZSBlbGFwc2VkVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG9uQW5pbWF0aW9uSXRlcmF0aW9u
KGRvdWJsZSBlbGFwc2VkVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG9uQW5pbWF0aW9uRW5kKGRv
dWJsZSBlbGFwc2VkVGltZSk7Ci0gICAgdmlydHVhbCBib29sIHN0YXJ0QW5pbWF0aW9uKGRvdWJs
ZSBiZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBlbmRBbmltYXRpb24oYm9vbCByZXNldCk7
CisgICAgdmlydHVhbCBib29sIHN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGF1c2VBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQpOworICAgIHZp
cnR1YWwgdm9pZCBlbmRBbmltYXRpb24oKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvdmVycmlkZUFu
aW1hdGlvbnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lT3ZlcnJpZGRlbkFuaW1hdGlvbnMo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMDQ1NmJh
ZC4uMWFkN2ExZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
QEAgLTI2MCwxMCArMjYwLDEwIEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBSZXR1cm4gdHJ1ZSBp
ZiB0aGUgYW5pbWF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIGNvbXBvc2l0aW5nIHN5c3RlbS4gSWYg
dGhpcyByZXR1cm5zCiAgICAgLy8gZmFsc2UsIHRoZSBhbmltYXRpb24gd2lsbCBiZSBydW4gYnkg
QW5pbWF0aW9uQ29udHJvbGxlci4KLSAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYgLypib3hTaXplKi8sIGNvbnN0IEFu
aW1hdGlvbiosIGNvbnN0IFN0cmluZyYgLyprZXlmcmFtZXNOYW1lKi8sIGRvdWJsZSAvKmJlZ2lu
VGltZSovKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhZGRBbmltYXRpb24o
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBJbnRTaXplJiAvKmJveFNpemUqLywgY29u
c3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiAvKmtleWZyYW1lc05hbWUqLywgZG91YmxlIC8q
dGltZU9mZnNldCovKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVB
bmltYXRpb25zRm9yUHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlEKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlQW5pbWF0aW9uc0ZvcktleWZyYW1lcyhjb25zdCBTdHJpbmcmIC8qIGtleWZy
YW1lc05hbWUgKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFuaW1hdGlvbihjb25zdCBT
dHJpbmcmIC8qIGtleWZyYW1lc05hbWUgKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFu
aW1hdGlvbihjb25zdCBTdHJpbmcmIC8qIGtleWZyYW1lc05hbWUgKi8sIGRvdWJsZSAvKnRpbWVP
ZmZzZXQqLykgeyB9CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGRv
dWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EuaAppbmRleCA4MDI0
MDkxLi4wNzY1MWRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9H
cmFwaGljc0xheWVyQ0EuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFw
aGljc0xheWVyQ0EuaApAQCAtOTgsMTAgKzk4LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCByZXN1
bWVBbmltYXRpb25zKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9u
KiwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBkb3VibGUgYmVnaW5UaW1lKTsKKyAgICB2
aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3Qg
SW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBrZXlmcmFt
ZXNOYW1lLCBkb3VibGUgdGltZU9mZnNldCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1h
dGlvbnNGb3JQcm9wZXJ0eShBbmltYXRlZFByb3BlcnR5SUQpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVBbmltYXRpb25zRm9yS2V5ZnJhbWVzKGNvbnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSk7
Ci0gICAgdmlydHVhbCB2b2lkIHBhdXNlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYga2V5ZnJhbWVz
TmFtZSk7CisgICAgdmlydHVhbCB2b2lkIHBhdXNlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYga2V5
ZnJhbWVzTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNU
b1ZpZGVvKFBsYXRmb3JtTGF5ZXIqKTsKQEAgLTEzMiw4ICsxMzIsOCBAQCBwcml2YXRlOgogICAg
IFdlYkxheWVyKiBsYXllckZvclN1cGVybGF5ZXIoKSBjb25zdDsKICAgICBDQUxheWVyKiBhbmlt
YXRlZExheWVyKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3Q7CiAKLSAgICBib29s
IGNyZWF0ZUFuaW1hdGlvbkZyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBj
b25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmIGtleWZyYW1lc05hbWUsIGRvdWJsZSBiZWdp
blRpbWUpOwotICAgIGJvb2wgY3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcm
IGtleWZyYW1lc05hbWUsIGRvdWJsZSBiZWdpblRpbWUsIGNvbnN0IEludFNpemUmIGJveFNpemUp
OworICAgIGJvb2wgY3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYsIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSwg
ZG91YmxlIHRpbWVPZmZzZXQpOworICAgIGJvb2wgY3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zy
b21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qLCBj
b25zdCBTdHJpbmcmIGtleWZyYW1lc05hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBJbnRT
aXplJiBib3hTaXplKTsKIAogICAgIC8vIFJldHVybiBhdXRvcmVsZWFzZWQgYW5pbWF0aW9uICh1
c2UgUmV0YWluUHRyPykKICAgICBDQUJhc2ljQW5pbWF0aW9uKiBjcmVhdGVCYXNpY0FuaW1hdGlv
bihjb25zdCBBbmltYXRpb24qLCBBbmltYXRlZFByb3BlcnR5SUQsIGJvb2wgYWRkaXRpdmUpOwpA
QCAtMTg3LDkgKzE4Nyw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyQW5pbWF0
aW9ucygpOwogCi0gICAgdm9pZCBzZXRBbmltYXRpb25PbkxheWVyKENBUHJvcGVydHlBbmltYXRp
b24qLCBBbmltYXRlZFByb3BlcnR5SUQsIGludCBpbmRleCwgZG91YmxlIGJlZ2luVGltZSk7Cisg
ICAgdm9pZCBzZXRBbmltYXRpb25PbkxheWVyKENBUHJvcGVydHlBbmltYXRpb24qLCBBbmltYXRl
ZFByb3BlcnR5SUQsIGludCBpbmRleCwgZG91YmxlIHRpbWVPZmZzZXQpOwogICAgIGJvb2wgcmVt
b3ZlQW5pbWF0aW9uRnJvbUxheWVyKEFuaW1hdGVkUHJvcGVydHlJRCwgaW50IGluZGV4KTsKLSAg
ICB2b2lkIHBhdXNlQW5pbWF0aW9uT25MYXllcihBbmltYXRlZFByb3BlcnR5SUQsIGludCBpbmRl
eCk7CisgICAgdm9pZCBwYXVzZUFuaW1hdGlvbk9uTGF5ZXIoQW5pbWF0ZWRQcm9wZXJ0eUlELCBp
bnQgaW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKIAogICAgIGVudW0gTGF5ZXJDaGFuZ2Ugewog
ICAgICAgICBOb0NoYW5nZSA9IDAsCkBAIC0yNDQsMTkgKzI0NCwxOSBAQCBwcml2YXRlOgogICAg
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX3BlbmRpbmdDb250ZW50c0ltYWdlOwogICAgIAogICAg
IHN0cnVjdCBMYXllckFuaW1hdGlvbiB7Ci0gICAgICAgIExheWVyQW5pbWF0aW9uKENBUHJvcGVy
dHlBbmltYXRpb24qIGNhQW5pbSwgY29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBBbmltYXRl
ZFByb3BlcnR5SUQgcHJvcGVydHksIGludCBpbmRleCwgZG91YmxlIGJlZ2luVGltZSkKKyAgICAg
ICAgTGF5ZXJBbmltYXRpb24oQ0FQcm9wZXJ0eUFuaW1hdGlvbiogY2FBbmltLCBjb25zdCBTdHJp
bmcmIGtleWZyYW1lc05hbWUsIEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgaW50IGluZGV4
LCBkb3VibGUgdGltZU9mZnNldCkKICAgICAgICAgOiBtX2FuaW1hdGlvbihjYUFuaW0pCiAgICAg
ICAgICwgbV9rZXlmcmFtZXNOYW1lKGtleWZyYW1lc05hbWUpCiAgICAgICAgICwgbV9wcm9wZXJ0
eShwcm9wZXJ0eSkKICAgICAgICAgLCBtX2luZGV4KGluZGV4KQotICAgICAgICAsIG1fYmVnaW5U
aW1lKGJlZ2luVGltZSkKKyAgICAgICAgLCBtX3RpbWVPZmZzZXQodGltZU9mZnNldCkKICAgICAg
ICAgeyB9CiAKICAgICAgICAgUmV0YWluUHRyPENBUHJvcGVydHlBbmltYXRpb24qPiBtX2FuaW1h
dGlvbjsKICAgICAgICAgU3RyaW5nIG1fa2V5ZnJhbWVzTmFtZTsKICAgICAgICAgQW5pbWF0ZWRQ
cm9wZXJ0eUlEIG1fcHJvcGVydHk7CiAgICAgICAgIGludCBtX2luZGV4OwotICAgICAgICBkb3Vi
bGUgbV9iZWdpblRpbWU7CisgICAgICAgIGRvdWJsZSBtX3RpbWVPZmZzZXQ7CiAgICAgfTsKICAg
ICAKICAgICBWZWN0b3I8TGF5ZXJBbmltYXRpb24+IG1fdW5jb21pdHRlZEFuaW1hdGlvbnM7CkBA
IC0yNjksNyArMjY5LDE0IEBAIHByaXZhdGU6CiAgICAgCiAgICAgZW51bSB7IFJlbW92ZSwgUGF1
c2UgfTsKICAgICB0eXBlZGVmIGludCBBbmltYXRpb25Qcm9jZXNzaW5nQWN0aW9uOwotICAgIHR5
cGVkZWYgSGFzaE1hcDxTdHJpbmcsIEFuaW1hdGlvblByb2Nlc3NpbmdBY3Rpb24+IEFuaW1hdGlv
bnNUb1Byb2Nlc3NNYXA7CisgICAgc3RydWN0IEFuaW1hdGlvblByb2Nlc3NpbmdJbmZvIHsKKyAg
ICAgICAgQW5pbWF0aW9uUHJvY2Vzc2luZ0luZm8oQW5pbWF0aW9uUHJvY2Vzc2luZ0FjdGlvbiBh
Y3Rpb24gPSBSZW1vdmUsIGRvdWJsZSB0aW1lT2Zmc2V0ID0gMCkKKyAgICAgICAgICAgIDogYWN0
aW9uKGFjdGlvbikKKyAgICAgICAgICAgICwgdGltZU9mZnNldCh0aW1lT2Zmc2V0KSB7IH0KKyAg
ICAgICAgQW5pbWF0aW9uUHJvY2Vzc2luZ0FjdGlvbiBhY3Rpb247CisgICAgICAgIGRvdWJsZSB0
aW1lT2Zmc2V0OyAgICAgIC8vIG9ubHkgdXNlZCBmb3IgcGF1c2UKKyAgICB9OworICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIEFuaW1hdGlvblByb2Nlc3NpbmdJbmZvPiBBbmltYXRpb25zVG9Q
cm9jZXNzTWFwOwogICAgIEFuaW1hdGlvbnNUb1Byb2Nlc3NNYXAgbV9rZXlmcmFtZUFuaW1hdGlv
bnNUb1Byb2Nlc3M7CiAKICAgICAvLyBNYXAgb2Yga2V5ZnJhbWUgbmFtZXMgdG8gdGhlaXIgYXNz
b2NpYXRlZCBsaXN0cyBvZiBhbmltYXRpb25zIGZvciBydW5uaW5nIGFuaW1hdGlvbnMsIHNvIHdl
IGNhbiByZW1vdmUvcGF1c2UgdGhlbS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQppbmRleCBkZWE2YmZjLi45YmU5NjY0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EubW0KKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCkBAIC02NDMs
NyArNjQzLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzUmVjdChjb25zdCBJ
bnRSZWN0JiByZWN0KQogICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1JlY3RD
aGFuZ2VkKTsKIH0KIAotYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFkZEFuaW1hdGlvbihjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBJbnRTaXplJiBib3hTaXplLCBjb25z
dCBBbmltYXRpb24qIGFuaW0sIGNvbnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSwgZG91YmxlIGJl
Z2luVGltZSkKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24oY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5p
bWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtleWZyYW1lc05hbWUsIGRvdWJsZSB0aW1lT2Zm
c2V0KQogewogICAgIGlmIChmb3JjZVNvZnR3YXJlQW5pbWF0aW9uKCkgfHwgIWFuaW0gfHwgYW5p
bS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkgfHwgdmFsdWVMaXN0LnNpemUoKSA8IDIpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTY1Nyw5ICs2NTcsOSBAQCBib29sIEdyYXBoaWNzTGF5ZXJD
QTo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0
IEludAogCiAgICAgYm9vbCBjcmVhdGVkQW5pbWF0aW9ucyA9IGZhbHNlOwogICAgIGlmICh2YWx1
ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKQotICAg
ICAgICBjcmVhdGVkQW5pbWF0aW9ucyA9IGNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5
ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwga2V5ZnJhbWVzTmFtZSwgYmVnaW5UaW1lLCBib3hTaXpl
KTsKKyAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25z
RnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGtleWZyYW1lc05hbWUsIHRpbWVPZmZzZXQs
IGJveFNpemUpOwogICAgIGVsc2UKLSAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVB
bmltYXRpb25Gcm9tS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwga2V5ZnJhbWVzTmFtZSwgYmVn
aW5UaW1lKTsKKyAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVBbmltYXRpb25Gcm9t
S2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwga2V5ZnJhbWVzTmFtZSwgdGltZU9mZnNldCk7CiAK
ICAgICBpZiAoY3JlYXRlZEFuaW1hdGlvbnMpCiAgICAgICAgIG5vdGVMYXllclByb3BlcnR5Q2hh
bmdlZChBbmltYXRpb25DaGFuZ2VkKTsKQEAgLTY4MSwyMiArNjgxLDIzIEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpyZW1vdmVBbmltYXRpb25zRm9yS2V5ZnJhbWVzKGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uTmFtZSkKICAgICBpZiAoIWFuaW1hdGlvbklzUnVubmluZyhhbmltYXRpb25OYW1lKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9rZXlmcmFtZUFuaW1hdGlvbnNUb1Byb2Nlc3MuYWRk
KGFuaW1hdGlvbk5hbWUsIFJlbW92ZSk7CisgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnNUb1Byb2Nl
c3MuYWRkKGFuaW1hdGlvbk5hbWUsIEFuaW1hdGlvblByb2Nlc3NpbmdJbmZvKFJlbW92ZSkpOwog
ICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChBbmltYXRpb25DaGFuZ2VkKTsKIH0KIAotdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnBhdXNlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYga2V5ZnJhbWVz
TmFtZSkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpwYXVzZUFuaW1hdGlvbihjb25zdCBTdHJpbmcm
IGtleWZyYW1lc05hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0KQogewogICAgIGlmICghYW5pbWF0aW9u
SXNSdW5uaW5nKGtleWZyYW1lc05hbWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBBbmltYXRp
b25zVG9Qcm9jZXNzTWFwOjppdGVyYXRvciBpdCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zVG9Qcm9j
ZXNzLmZpbmQoa2V5ZnJhbWVzTmFtZSk7CiAgICAgaWYgKGl0ICE9IG1fa2V5ZnJhbWVBbmltYXRp
b25zVG9Qcm9jZXNzLmVuZCgpKSB7CisgICAgICAgIEFuaW1hdGlvblByb2Nlc3NpbmdJbmZvJiBw
cm9jZXNzaW5nSW5mbyA9IGl0LT5zZWNvbmQ7CiAgICAgICAgIC8vIElmIGFuIGFuaW1hdGlvbiBp
cyBzY2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCwgZG9uJ3QgY2hhbmdlIHRoZSByZW1vdmUgdG8gYSBw
YXVzZS4KLSAgICAgICAgaWYgKGl0LT5zZWNvbmQgIT0gUmVtb3ZlKQotICAgICAgICAgICAgaXQt
PnNlY29uZCA9IFBhdXNlOworICAgICAgICBpZiAocHJvY2Vzc2luZ0luZm8uYWN0aW9uICE9IFJl
bW92ZSkKKyAgICAgICAgICAgIHByb2Nlc3NpbmdJbmZvLmFjdGlvbiA9IFBhdXNlOwogICAgIH0g
ZWxzZQotICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9uc1RvUHJvY2Vzcy5hZGQoa2V5ZnJhbWVz
TmFtZSwgUGF1c2UpOworICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9uc1RvUHJvY2Vzcy5hZGQo
a2V5ZnJhbWVzTmFtZSwgQW5pbWF0aW9uUHJvY2Vzc2luZ0luZm8oUGF1c2UsIHRpbWVPZmZzZXQp
KTsKIAogICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChBbmltYXRpb25DaGFuZ2VkKTsKIH0K
QEAgLTExODIsMjEgKzExODMsMjEgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUxheWVy
QW5pbWF0aW9ucygpCiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uSXQgPT0gbV9ydW5uaW5nS2V5
ZnJhbWVBbmltYXRpb25zLmVuZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgICAgICBBbmltYXRpb25Qcm9jZXNzaW5nQWN0aW9uIGFjdGlvbiA9IGl0LT5zZWNvbmQ7Cisg
ICAgICAgICAgICBjb25zdCBBbmltYXRpb25Qcm9jZXNzaW5nSW5mbyYgcHJvY2Vzc2luZ0luZm8g
PSBpdC0+c2Vjb25kOwogICAgICAgICAgICAgY29uc3QgVmVjdG9yPEFuaW1hdGlvblBhaXI+JiBh
bmltYXRpb25zID0gYW5pbWF0aW9uSXQtPnNlY29uZDsKICAgICAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYW5pbWF0aW9ucy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgICAgIGNv
bnN0IEFuaW1hdGlvblBhaXImIGN1cnJQYWlyID0gYW5pbWF0aW9uc1tpXTsKLSAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICAgICAgICAgIHN3aXRjaCAocHJvY2Vzc2lu
Z0luZm8uYWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgUmVtb3ZlOgogICAgICAg
ICAgICAgICAgICAgICAgICAgcmVtb3ZlQW5pbWF0aW9uRnJvbUxheWVyKHN0YXRpY19jYXN0PEFu
aW1hdGVkUHJvcGVydHlJRD4oY3VyclBhaXIuZmlyc3QpLCBjdXJyUGFpci5zZWNvbmQpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgUGF1
c2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXVzZUFuaW1hdGlvbk9uTGF5ZXIoc3RhdGlj
X2Nhc3Q8QW5pbWF0ZWRQcm9wZXJ0eUlEPihjdXJyUGFpci5maXJzdCksIGN1cnJQYWlyLnNlY29u
ZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXVzZUFuaW1hdGlvbk9uTGF5ZXIoc3RhdGlj
X2Nhc3Q8QW5pbWF0ZWRQcm9wZXJ0eUlEPihjdXJyUGFpci5maXJzdCksIGN1cnJQYWlyLnNlY29u
ZCwgcHJvY2Vzc2luZ0luZm8udGltZU9mZnNldCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlm
IChhY3Rpb24gPT0gUmVtb3ZlKQorICAgICAgICAgICAgaWYgKHByb2Nlc3NpbmdJbmZvLmFjdGlv
biA9PSBSZW1vdmUpCiAgICAgICAgICAgICAgICAgbV9ydW5uaW5nS2V5ZnJhbWVBbmltYXRpb25z
LnJlbW92ZShjdXJyS2V5ZnJhbWVOYW1lKTsKICAgICAgICAgfQogICAgIApAQCAtMTIwNyw3ICsx
MjA4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUxheWVyQW5pbWF0aW9ucygpCiAg
ICAgaWYgKChudW1BbmltYXRpb25zID0gbV91bmNvbWl0dGVkQW5pbWF0aW9ucy5zaXplKCkpKSB7
CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtQW5pbWF0aW9uczsgKytpKSB7CiAg
ICAgICAgICAgICBjb25zdCBMYXllckFuaW1hdGlvbiYgcGVuZGluZ0FuaW1hdGlvbiA9IG1fdW5j
b21pdHRlZEFuaW1hdGlvbnNbaV07Ci0gICAgICAgICAgICBzZXRBbmltYXRpb25PbkxheWVyKHBl
bmRpbmdBbmltYXRpb24ubV9hbmltYXRpb24uZ2V0KCksIHBlbmRpbmdBbmltYXRpb24ubV9wcm9w
ZXJ0eSwgcGVuZGluZ0FuaW1hdGlvbi5tX2luZGV4LCBwZW5kaW5nQW5pbWF0aW9uLm1fYmVnaW5U
aW1lKTsKKyAgICAgICAgICAgIHNldEFuaW1hdGlvbk9uTGF5ZXIocGVuZGluZ0FuaW1hdGlvbi5t
X2FuaW1hdGlvbi5nZXQoKSwgcGVuZGluZ0FuaW1hdGlvbi5tX3Byb3BlcnR5LCBwZW5kaW5nQW5p
bWF0aW9uLm1faW5kZXgsIHBlbmRpbmdBbmltYXRpb24ubV90aW1lT2Zmc2V0KTsKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgaWYgKCFwZW5kaW5nQW5pbWF0aW9uLm1fa2V5ZnJhbWVzTmFtZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEga2V5ZnJhbWUgYW5p
bSwgd2UgaGF2ZSB0byByZW1lbWJlciB0aGUgYXNzb2NpYXRpb24gb2Yga2V5ZnJhbWVzIG5hbWUg
dG8gcHJvcGVydHkvaW5kZXggcGFpcnMsCkBAIC0xMjI5LDE0ICsxMjMwLDExIEBAIHZvaWQgR3Jh
cGhpY3NMYXllckNBOjp1cGRhdGVMYXllckFuaW1hdGlvbnMoKQogICAgIH0KIH0KIAotdm9pZCBH
cmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbk9uTGF5ZXIoQ0FQcm9wZXJ0eUFuaW1hdGlvbiog
Y2FBbmltLCBBbmltYXRlZFByb3BlcnR5SUQgcHJvcGVydHksIGludCBpbmRleCwgZG91YmxlIGJl
Z2luVGltZSkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25PbkxheWVyKENBUHJv
cGVydHlBbmltYXRpb24qIGNhQW5pbSwgQW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5LCBpbnQg
aW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0KQogewogICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyID0g
YW5pbWF0ZWRMYXllcihwcm9wZXJ0eSk7CiAKLSAgICBpZiAoYmVnaW5UaW1lKSB7Ci0gICAgICAg
IE5TVGltZUludGVydmFsIHRpbWUgPSBbbGF5ZXIgY29udmVydFRpbWU6Y3VycmVudFRpbWVUb01l
ZGlhVGltZShiZWdpblRpbWUpIGZyb21MYXllcjpuaWxdOwotICAgICAgICBbY2FBbmltIHNldEJl
Z2luVGltZTp0aW1lXTsKLSAgICB9CisgICAgW2NhQW5pbSBzZXRUaW1lT2Zmc2V0OnRpbWVPZmZz
ZXRdOwogICAgIAogICAgIFN0cmluZyBhbmltYXRpb25OYW1lID0gYW5pbWF0aW9uSWRlbnRpZmll
cihwcm9wZXJ0eSwgaW5kZXgpOwogICAgIApAQCAtMTI5MCw3ICsxMjg4LDcgQEAgc3RhdGljIHZv
aWQgY29weUFuaW1hdGlvblByb3BlcnRpZXMoQ0FQcm9wZXJ0eUFuaW1hdGlvbiogZnJvbSwgQ0FQ
cm9wZXJ0eUFuaW1hdGkKICNlbmRpZgogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cGF1c2VB
bmltYXRpb25PbkxheWVyKEFuaW1hdGVkUHJvcGVydHlJRCBwcm9wZXJ0eSwgaW50IGluZGV4KQor
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnBhdXNlQW5pbWF0aW9uT25MYXllcihBbmltYXRlZFByb3Bl
cnR5SUQgcHJvcGVydHksIGludCBpbmRleCwgZG91YmxlIHRpbWVPZmZzZXQpCiB7CiAgICAgUGxh
dGZvcm1MYXllciogbGF5ZXIgPSBhbmltYXRlZExheWVyKHByb3BlcnR5KTsKIApAQCAtMTMxOSw5
ICsxMzE3LDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpwYXVzZUFuaW1hdGlvbk9uTGF5ZXIo
QW5pbWF0ZWRQcm9wZXJ0eUlEIHByb3BlcnR5LCBpbnQgaW5kCiAgICAgICAgIHBhdXNlZEFuaW0g
PSBuZXdBbmltOwogICAgIH0KIAotICAgIGRvdWJsZSB0ID0gW2xheWVyIGNvbnZlcnRUaW1lOmN1
cnJlbnRUaW1lVG9NZWRpYVRpbWUoY3VycmVudFRpbWUoKSkgZnJvbUxheWVyOm5pbF07CisgICAg
Ly8gcGF1c2VkQW5pbSBoYXMgdGhlIGJlZ2luVGltZSBvZiBjYUFuaW0gYWxyZWFkeS4KICAgICBb
cGF1c2VkQW5pbSBzZXRTcGVlZDowXTsKLSAgICBbcGF1c2VkQW5pbSBzZXRUaW1lT2Zmc2V0OnQg
LSBbY2FBbmltIGJlZ2luVGltZV1dOworICAgIFtwYXVzZWRBbmltIHNldFRpbWVPZmZzZXQ6dGlt
ZU9mZnNldF07CisgICAgCiAgICAgW2xheWVyIGFkZEFuaW1hdGlvbjpwYXVzZWRBbmltIGZvcktl
eTphbmltYXRpb25OYW1lXTsgIC8vIFRoaXMgd2lsbCByZXBsYWNlIHRoZSBydW5uaW5nIGFuaW1h
dGlvbi4KIH0KIApAQCAtMTM3MCw3ICsxMzY5LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJl
cGFpbnRMYXllckRpcnR5UmVjdHMoKQogICAgIG1fZGlydHlSZWN0cy5jbGVhcigpOwogfQogCi1i
b29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwg
Y29uc3QgU3RyaW5nJiBrZXlmcmFtZXNOYW1lLCBkb3VibGUgYmVnaW5UaW1lKQorYm9vbCBHcmFw
aGljc0xheWVyQ0E6OmNyZWF0ZUFuaW1hdGlvbkZyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVW
YWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNvbnN0IFN0
cmluZyYga2V5ZnJhbWVzTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQpCiB7CiAgICAgQVNTRVJUKHZh
bHVlTGlzdC5wcm9wZXJ0eSgpICE9IEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwog
CkBAIC0xMzk2LDE0ICsxMzk1LDE0IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVBbmlt
YXRpb25Gcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1CiAgICAgaWYg
KCF2YWx1ZXNPSykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV91bmNvbWl0dGVkQW5p
bWF0aW9ucy5hcHBlbmQoTGF5ZXJBbmltYXRpb24oY2FBbmltYXRpb24sIGtleWZyYW1lc05hbWUs
IHZhbHVlTGlzdC5wcm9wZXJ0eSgpLCBhbmltYXRpb25JbmRleCwgYmVnaW5UaW1lKSk7CisgICAg
bV91bmNvbWl0dGVkQW5pbWF0aW9ucy5hcHBlbmQoTGF5ZXJBbmltYXRpb24oY2FBbmltYXRpb24s
IGtleWZyYW1lc05hbWUsIHZhbHVlTGlzdC5wcm9wZXJ0eSgpLCBhbmltYXRpb25JbmRleCwgdGlt
ZU9mZnNldCkpOwogICAgIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFu
aW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3Qs
IGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBjb25zdCBTdHJpbmcmIGtleWZyYW1lc05hbWUs
IGRvdWJsZSBiZWdpblRpbWUsIGNvbnN0IEludFNpemUmIGJveFNpemUpCitib29sIEdyYXBoaWNz
TGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5
ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNv
bnN0IFN0cmluZyYga2V5ZnJhbWVzTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IEludFNp
emUmIGJveFNpemUpCiB7CiAgICAgQVNTRVJUKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1h
dGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwogCkBAIC0xNDUwLDcgKzE0NDksNyBAQCBib29s
IEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZQogICAgICAgICBpZiAoIXZhbGlkTWF0cmljZXMpCiAgICAgICAg
ICAgICBicmVhazsKICAgICAKLSAgICAgICAgbV91bmNvbWl0dGVkQW5pbWF0aW9ucy5hcHBlbmQo
TGF5ZXJBbmltYXRpb24oY2FBbmltYXRpb24sIGtleWZyYW1lc05hbWUsIHZhbHVlTGlzdC5wcm9w
ZXJ0eSgpLCBhbmltYXRpb25JbmRleCwgYmVnaW5UaW1lKSk7CisgICAgICAgIG1fdW5jb21pdHRl
ZEFuaW1hdGlvbnMuYXBwZW5kKExheWVyQW5pbWF0aW9uKGNhQW5pbWF0aW9uLCBrZXlmcmFtZXNO
YW1lLCB2YWx1ZUxpc3QucHJvcGVydHkoKSwgYW5pbWF0aW9uSW5kZXgsIHRpbWVPZmZzZXQpKTsK
ICAgICB9CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMjhlOGFhNi4uMDY5YjgwOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBi
b29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QKICAgICBy
ZXR1cm4gY29tcG9zaXRvcigpID8gY29tcG9zaXRvcigpLT5zaG93UmVwYWludENvdW50ZXIoKSA6
IGZhbHNlOwogfQogCi1ib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24oZG91
YmxlIGJlZ2luVGltZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3Qm
IGtleWZyYW1lcykKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbihkb3Vi
bGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3Qm
IGtleWZyYW1lcykKIHsKICAgICBib29sIGhhc09wYWNpdHkgPSBrZXlmcmFtZXMuY29udGFpbnNQ
cm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkpOwogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0ga2V5
ZnJhbWVzLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwpAQCAt
MTA4OSwxMCArMTA4OSwxMCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRp
b24oZG91YmxlIGJlZ2luVGltZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLAogICAgIGJvb2wgZGlk
QW5pbWF0ZVRyYW5zZm9ybSA9ICFoYXNUcmFuc2Zvcm07CiAgICAgYm9vbCBkaWRBbmltYXRlT3Bh
Y2l0eSA9ICFoYXNPcGFjaXR5OwogICAgIAotICAgIGlmIChoYXNUcmFuc2Zvcm0gJiYgbV9ncmFw
aGljc0xheWVyLT5hZGRBbmltYXRpb24odHJhbnNmb3JtVmVjdG9yLCB0b1JlbmRlckJveChyZW5k
ZXJlcigpKS0+Ym9yZGVyQm94UmVjdCgpLnNpemUoKSwgYW5pbSwga2V5ZnJhbWVzLmFuaW1hdGlv
bk5hbWUoKSwgYmVnaW5UaW1lKSkKKyAgICBpZiAoaGFzVHJhbnNmb3JtICYmIG1fZ3JhcGhpY3NM
YXllci0+YWRkQW5pbWF0aW9uKHRyYW5zZm9ybVZlY3RvciwgdG9SZW5kZXJCb3gocmVuZGVyZXIo
KSktPmJvcmRlckJveFJlY3QoKS5zaXplKCksIGFuaW0sIGtleWZyYW1lcy5hbmltYXRpb25OYW1l
KCksIHRpbWVPZmZzZXQpKQogICAgICAgICBkaWRBbmltYXRlVHJhbnNmb3JtID0gdHJ1ZTsKIAot
ICAgIGlmIChoYXNPcGFjaXR5ICYmIG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKG9wYWNp
dHlWZWN0b3IsIEludFNpemUoKSwgYW5pbSwga2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgYmVn
aW5UaW1lKSkKKyAgICBpZiAoaGFzT3BhY2l0eSAmJiBtX2dyYXBoaWNzTGF5ZXItPmFkZEFuaW1h
dGlvbihvcGFjaXR5VmVjdG9yLCBJbnRTaXplKCksIGFuaW0sIGtleWZyYW1lcy5hbmltYXRpb25O
YW1lKCksIHRpbWVPZmZzZXQpKQogICAgICAgICBkaWRBbmltYXRlT3BhY2l0eSA9IHRydWU7CiAg
ICAgCiAgICAgYm9vbCBydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24gPSBkaWRBbmltYXRlVHJh
bnNmb3JtICYmIGRpZEFuaW1hdGVPcGFjaXR5OwpAQCAtMTEwMiw3ICsxMTAyLDcgQEAgYm9vbCBS
ZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKGRvdWJsZSBiZWdpblRpbWUsIGNvbnN0
IEFuaW1hdGlvbiogYW5pbSwKICAgICByZXR1cm4gcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9u
OwogfQogCi1ib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSBi
ZWdpblRpbWUsIGludCBwcm9wZXJ0eSwgY29uc3QgUmVuZGVyU3R5bGUqIGZyb21TdHlsZSwgY29u
c3QgUmVuZGVyU3R5bGUqIHRvU3R5bGUpCitib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRU
cmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBpbnQgcHJvcGVydHksIGNvbnN0IFJlbmRlclN0
eWxlKiBmcm9tU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB0b1N0eWxlKQogewogICAgIGJvb2wg
ZGlkQW5pbWF0ZSA9IGZhbHNlOwogICAgIEFTU0VSVChwcm9wZXJ0eSAhPSBjQW5pbWF0ZUFsbCk7
CkBAIC0xMTE0LDcgKzExMTQsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFu
c2l0aW9uKGRvdWJsZSBiZWdpblRpbWUsIGludCBwcm9wZXJ0eSwgY29uc3QgUgogICAgICAgICAg
ICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoMCwgY29tcG9z
aXRpbmdPcGFjaXR5KGZyb21TdHlsZS0+b3BhY2l0eSgpKSkpOwogICAgICAgICAgICAgb3BhY2l0
eVZlY3Rvci5pbnNlcnQobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoMSwgY29tcG9zaXRpbmdPcGFj
aXR5KHRvU3R5bGUtPm9wYWNpdHkoKSkpKTsKICAgICAgICAgICAgIC8vIFRoZSBib3hTaXplIHBh
cmFtIGlzIG9ubHkgdXNlZCBmb3IgdHJhbnNmb3JtIGFuaW1hdGlvbnMgKHdoaWNoIGNhbiBvbmx5
IHJ1biBvbiBSZW5kZXJCb3hlcyksIHNvIHdlIHBhc3MgYW4gZW1wdHkgc2l6ZSBoZXJlLgotICAg
ICAgICAgICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKG9wYWNpdHlWZWN0b3Is
IEludFNpemUoKSwgb3BhY2l0eUFuaW0sIFN0cmluZygpLCBiZWdpblRpbWUpKSB7CisgICAgICAg
ICAgICBpZiAobV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24ob3BhY2l0eVZlY3RvciwgSW50
U2l6ZSgpLCBvcGFjaXR5QW5pbSwgU3RyaW5nKCksIHRpbWVPZmZzZXQpKSB7CiAgICAgICAgICAg
ICAgICAgLy8gVG8gZW5zdXJlIHRoYXQgdGhlIGNvcnJlY3Qgb3BhY2l0eSBpcyB2aXNpYmxlIHdo
ZW4gdGhlIGFuaW1hdGlvbiBlbmRzLCBhbHNvIHNldCB0aGUgZmluYWwgb3BhY2l0eS4KICAgICAg
ICAgICAgICAgICB1cGRhdGVMYXllck9wYWNpdHkodG9TdHlsZSk7CiAgICAgICAgICAgICAgICAg
ZGlkQW5pbWF0ZSA9IHRydWU7CkBAIC0xMTI4LDcgKzExMjgsNyBAQCBib29sIFJlbmRlckxheWVy
QmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSBiZWdpblRpbWUsIGludCBwcm9wZXJ0eSwg
Y29uc3QgUgogICAgICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3QgdHJhbnNmb3JtVmVjdG9yKEFu
aW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwogICAgICAgICAgICAgdHJhbnNmb3JtVmVj
dG9yLmluc2VydChuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoMCwgJmZyb21TdHlsZS0+dHJh
bnNmb3JtKCkpKTsKICAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQobmV3IFRyYW5z
Zm9ybUFuaW1hdGlvblZhbHVlKDEsICZ0b1N0eWxlLT50cmFuc2Zvcm0oKSkpOwotICAgICAgICAg
ICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKHRyYW5zZm9ybVZlY3RvciwgdG9S
ZW5kZXJCb3gocmVuZGVyZXIoKSktPmJvcmRlckJveFJlY3QoKS5zaXplKCksIHRyYW5zZm9ybUFu
aW0sIFN0cmluZygpLCBiZWdpblRpbWUpKSB7CisgICAgICAgICAgICBpZiAobV9ncmFwaGljc0xh
eWVyLT5hZGRBbmltYXRpb24odHJhbnNmb3JtVmVjdG9yLCB0b1JlbmRlckJveChyZW5kZXJlcigp
KS0+Ym9yZGVyQm94UmVjdCgpLnNpemUoKSwgdHJhbnNmb3JtQW5pbSwgU3RyaW5nKCksIHRpbWVP
ZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAgLy8gVG8gZW5zdXJlIHRoYXQgdGhlIGNvcnJlY3Qg
dHJhbnNmb3JtIGlzIHZpc2libGUgd2hlbiB0aGUgYW5pbWF0aW9uIGVuZHMsIGFsc28gc2V0IHRo
ZSBmaW5hbCBvcGFjaXR5LgogICAgICAgICAgICAgICAgIHVwZGF0ZUxheWVyVHJhbnNmb3JtKHRv
U3R5bGUpOwogICAgICAgICAgICAgICAgIGRpZEFuaW1hdGUgPSB0cnVlOwpAQCAtMTE1OCw5ICsx
MTU4LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmFuaW1hdGlvbkZpbmlzaGVkKGNvbnN0
IFN0cmluZyYgYW5pbWF0aW9uTmFtZSkKICAgICBtX2dyYXBoaWNzTGF5ZXItPnJlbW92ZUFuaW1h
dGlvbnNGb3JLZXlmcmFtZXMoYW5pbWF0aW9uTmFtZSk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjphbmltYXRpb25QYXVzZWQoY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKQordm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OmFuaW1hdGlvblBhdXNlZChkb3VibGUgdGltZU9mZnNldCwg
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKQogewotICAgIG1fZ3JhcGhpY3NMYXllci0+cGF1
c2VBbmltYXRpb24oYW5pbWF0aW9uTmFtZSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5wYXVzZUFu
aW1hdGlvbihhbmltYXRpb25OYW1lLCB0aW1lT2Zmc2V0KTsKIH0KIAogdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnRyYW5zaXRpb25GaW5pc2hlZChpbnQgcHJvcGVydHkpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDJiYmIzN2YuLmNiODAyNTUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC05NywxMCArOTcsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVuZGVyZXJDb250ZW50Q2hhbmdlZCgpOwogCiAgICAgLy8gSW50ZXJmYWNlIHRv
IHN0YXJ0LCBmaW5pc2gsIHN1c3BlbmQgYW5kIHJlc3VtZSBhbmltYXRpb25zIGFuZCB0cmFuc2l0
aW9ucwotICAgIGJvb2wgc3RhcnRBbmltYXRpb24oZG91YmxlIGJlZ2luVGltZSwgY29uc3QgQW5p
bWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3QmIGtleWZyYW1lcyk7Ci0gICAgYm9vbCBz
dGFydFRyYW5zaXRpb24oZG91YmxlIGJlZ2luVGltZSwgaW50IHByb3BlcnR5LCBjb25zdCBSZW5k
ZXJTdHlsZSogZnJvbVN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogdG9TdHlsZSk7CisgICAgYm9v
bCBzdGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmlt
LCBjb25zdCBLZXlmcmFtZUxpc3QmIGtleWZyYW1lcyk7CisgICAgYm9vbCBzdGFydFRyYW5zaXRp
b24oZG91YmxlIHRpbWVPZmZzZXQsIGludCBwcm9wZXJ0eSwgY29uc3QgUmVuZGVyU3R5bGUqIGZy
b21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHRvU3R5bGUpOwogICAgIHZvaWQgYW5pbWF0aW9u
RmluaXNoZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGFuaW1hdGlvblBhdXNlZChj
b25zdCBTdHJpbmcmIG5hbWUpOworICAgIHZvaWQgYW5pbWF0aW9uUGF1c2VkKGRvdWJsZSB0aW1l
T2Zmc2V0LCBjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgdHJhbnNpdGlvbkZpbmlzaGVk
KGludCBwcm9wZXJ0eSk7CiAKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1l
ID0gMCk7Cg==
</data>
<flag name="review"
          id="26534"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>