<?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>5964</bug_id>
          
          <creation_ts>2005-12-06 03:42:56 -0800</creation_ts>
          <short_desc>Animation (&lt;animateColor&gt;, &lt;animateTransform&gt;, etc) are broken after DOM Merger</short_desc>
          <delta_ts>2006-01-22 23:02:16 -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>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>25612</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-06 03:42:56 -0800</bug_when>
    <thetext>Animation (&lt;animateColor&gt;, &lt;animateTransform&gt;, etc) are broken after DOM Merger

I moved the KSVGTimeScheduler onto &lt;svg&gt; (which was wrong), and I&apos;m also no longer using 
SVGDocumentImpl (and DocumentImpl doesnt&apos; know how to kick off the timers, etc.)  All these will have to 
be fixed to make animations work again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29301</commentid>
    <comment_count>1</comment_count>
      <attachid>5826</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-21 22:57:34 -0800</bug_when>
    <thetext>Created attachment 5826
Makes animation work again.

This patch makes &lt;animateColor&gt; work again.  It stopped working because the timers were never started.  During the DOM merger I moved much of the SVGDocumentImpl logic onto SVGSVGElementImpl in an effort not to modify DocumentImpl too much.  Now I&apos;ve created a SVGDocumentExtensions class to hold all of the SVGDocumentImpl specific goop.  Eventually we&apos;ll create an HTMLDocumentExtensions class and that can hold all the HTML specific goop which is currently found in DocumentImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29440</commentid>
    <comment_count>2</comment_count>
      <attachid>5826</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-22 10:28:47 -0800</bug_when>
    <thetext>Comment on attachment 5826
Makes animation work again.

Looks good. r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5826</attachid>
            <date>2006-01-21 22:57:34 -0800</date>
            <delta_ts>2006-01-22 10:28:47 -0800</delta_ts>
            <desc>Makes animation work again.</desc>
            <filename>animation.patch</filename>
            <type>text/plain</type>
            <size>26182</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9Eb2N1bWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC94bWwv
RG9jdW1lbnRJbXBsLmgJKHJldmlzaW9uIDEyMjc4KQorKysga2h0bWwveG1sL0RvY3VtZW50SW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICNpZiBfX0FQUExFX18KICAgICBzdHJ1Y3QgRGFzaGJvYXJkUmVnaW9uVmFsdWU7CiAjZW5kaWYK
KyNpZiBTVkdfU1VQUE9SVAorICAgIGNsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9uczsKKyNlbmRp
ZgogCiAgICAgLy8gQSByYW5nZSBvZiBhIG5vZGUgd2l0aGluIGEgZG9jdW1lbnQgdGhhdCBpcyAi
bWFya2VkIiwgc3VjaCBhcyBiZWluZyBtaXNzcGVsbGVkCiAgICAgc3RydWN0IERvY3VtZW50TWFy
a2VyCkBAIC03MTUsNiArNzE4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJhZGlvQnV0dG9uQ2hl
Y2tlZChIVE1MSW5wdXRFbGVtZW50SW1wbCAqY2FsbGVyLCBIVE1MRm9ybUVsZW1lbnRJbXBsICpm
b3JtKTsKICAgICBIVE1MSW5wdXRFbGVtZW50SW1wbCogY2hlY2tlZFJhZGlvQnV0dG9uRm9yR3Jv
dXAoRE9NU3RyaW5nSW1wbCogbmFtZSwgSFRNTEZvcm1FbGVtZW50SW1wbCAqZm9ybSk7CiAgICAg
dm9pZCByZW1vdmVSYWRpb0J1dHRvbkdyb3VwKERPTVN0cmluZ0ltcGwqIG5hbWUsIEhUTUxGb3Jt
RWxlbWVudEltcGwgKmZvcm0pOworICAgIAorI2lmIFNWR19TVVBQT1JUCisgICAgY29uc3QgU1ZH
RG9jdW1lbnRFeHRlbnNpb25zKiBzdmdFeHRlbnNpb25zKCk7CisgICAgU1ZHRG9jdW1lbnRFeHRl
bnNpb25zKiBhY2Nlc3NTVkdFeHRlbnNpb25zKCk7CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZVRpdGxlKCk7CkBAIC03NDUsNiArNzUzLDEwIEBAIHByaXZhdGU6CiAgICAgdHlw
ZWRlZiBIYXNoTWFwPEhUTUxGb3JtRWxlbWVudEltcGwqLCBOYW1lVG9JbnB1dE1hcCosIFBvaW50
ZXJIYXNoPEhUTUxGb3JtRWxlbWVudEltcGwqPiA+IEZvcm1Ub0dyb3VwTWFwOwogICAgIEZvcm1U
b0dyb3VwTWFwIG1fc2VsZWN0ZWRSYWRpb0J1dHRvbnM7CiAgICAgCisjaWYgU1ZHX1NVUFBPUlQK
KyAgICBSZWZQdHI8U1ZHRG9jdW1lbnRFeHRlbnNpb25zPiBtX3N2Z0V4dGVuc2lvbnM7CisjZW5k
aWYKKyAgICAKICNpZiBfX0FQUExFX18KICAgICBRVmFsdWVMaXN0PERhc2hib2FyZFJlZ2lvblZh
bHVlPiBtX2Rhc2hib2FyZFJlZ2lvbnM7CiAgICAgYm9vbCBtX2hhc0Rhc2hib2FyZFJlZ2lvbnM7
CkluZGV4OiBraHRtbC94bWwvRG9jdW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC94
bWwvRG9jdW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTIyNzgpCisrKyBraHRtbC94bWwvRG9jdW1l
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQCB1c2luZyBYQkw6OlhC
TEJpbmRpbmdNYW5hZ2VyOwogCiAjaWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJTVkdOYW1lcy5o
IgorI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgogI2luY2x1ZGUgIlNWR0VsZW1l
bnRGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50SW1wbC5oIgogI2luY2x1ZGUgIlNW
R1N0eWxlRWxlbWVudEltcGwuaCIKQEAgLTEyMzksNiArMTI0MCwxNCBAQCB2b2lkIERvY3VtZW50
SW1wbDo6aW1wbGljaXRDbG9zZSgpCiAgICAgaWYgKHJlbmRlcmVyKCkgJiYgS1dRQWNjT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIGdldEFjY09iamVjdENhY2hl
KCktPnBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIoKSwgIkFYTG9hZENvbXBsZXRlIik7CiAjZW5k
aWYKKworI2lmIFNWR19TVVBQT1JUCisgICAgLy8gRklYTUU6IE9mZmljaWFsbHksIHRpbWUgMCBp
cyB3aGVuIHRoZSBvdXRlcm1vc3QgPHN2Zz4gcmVjaWV2ZXMgaXRzCisgICAgLy8gU1ZHTG9hZCBl
dmVudCwgYnV0IHdlIGRvbid0IGltcGxlbWVudCB0aG9zZSB5ZXQuICBUaGlzIGlzIGNsb3NlIGVu
b3VnaAorICAgIC8vIGZvciBub3cuICBJbiBzb21lIGNhc2VzIHdlIHNob3VsZCBoYXZlIGZpcmVk
IGVhcmxpZXIuCisgICAgaWYgKHN2Z0V4dGVuc2lvbnMoKSkKKyAgICAgICAgYWNjZXNzU1ZHRXh0
ZW5zaW9ucygpLT50aW1lU2NoZWR1bGVyKCktPnN0YXJ0QW5pbWF0aW9ucygpOworI2VuZGlmCiB9
CiAKIHZvaWQgRG9jdW1lbnRJbXBsOjpzZXRQYXJzaW5nKGJvb2wgYikKQEAgLTI5NzAsNiArMjk3
OSwyMCBAQCBBdHRySW1wbCAqRG9jdW1lbnRJbXBsOjpjcmVhdGVBdHRyaWJ1dGVOCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5hbWVzcGFjZVVSSS5pbXBsKCkpLCBET01TdHJpbmcoIiIpLmltcGwoKSksIGZhbHNl
KTsKIH0KIAorI2lmIFNWR19TVVBQT1JUCitjb25zdCBTVkdEb2N1bWVudEV4dGVuc2lvbnMqIERv
Y3VtZW50SW1wbDo6c3ZnRXh0ZW5zaW9ucygpCit7CisgICAgcmV0dXJuIG1fc3ZnRXh0ZW5zaW9u
cy5nZXQoKTsKK30KKworU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBEb2N1bWVudEltcGw6OmFjY2Vz
c1NWR0V4dGVuc2lvbnMoKQoreworICAgIGlmICghbV9zdmdFeHRlbnNpb25zKQorICAgICAgICBt
X3N2Z0V4dGVuc2lvbnMgPSBuZXcgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKHRoaXMpOworICAgIHJl
dHVybiBtX3N2Z0V4dGVuc2lvbnMuZ2V0KCk7Cit9CisjZW5kaWYKKwogdm9pZCBEb2N1bWVudElt
cGw6OnJhZGlvQnV0dG9uQ2hlY2tlZChIVE1MSW5wdXRFbGVtZW50SW1wbCAqY2FsbGVyLCBIVE1M
Rm9ybUVsZW1lbnRJbXBsICpmb3JtKQogewogICAgIC8vIFdpdGhvdXQgYSBuYW1lLCB0aGVyZSBp
cyBubyBncm91cC4KSW5kZXg6IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEy
Mjc4KQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzQ4LDYgKzEzNDgsOCBAQAogCQlBOERGNEFGOTA5ODBDNDJDMDA1Mjk4MUIgLyogUmVu
ZGVyVGFibGVTZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOERGNEFFNTA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVTZWN0aW9uLmgg
Ki87IH07CiAJCUE4REY0QUZBMDk4MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZVJvdy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOERGNEFFNjA5
ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVSb3cuY3BwICovOyB9OwogCQlBOERGNEFGQjA5
ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVDb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4REY0QUU3MDk4MEM0MkMwMDUyOTgxQiAvKiBSZW5k
ZXJUYWJsZUNvbC5oICovOyB9OworCQlBOERGNTBCMTA5ODMxMDM1MDA1Mjk4MUIgLyogU1ZHRG9j
dW1lbnRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOERGNTBBRjA5ODMxMDM1MDA1Mjk4MUIgLyogU1ZHRG9jdW1lbnRFeHRlbnNpb25z
LmggKi87IH07CisJCUE4REY1MEIyMDk4MzEwMzUwMDUyOTgxQiAvKiBTVkdEb2N1bWVudEV4dGVu
c2lvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThERjUwQjAwOTgzMTAzNTAwNTI5ODFCIC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgKi87
IH07CiAJCUE4RkQ4Qjg2MDg3Q0I0NEMwMERDMzcwNyAvKiBLV1FXTWF0cml4LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NUQ3QThDMDg3OUVDNjQw
MDZBOTE3MiAvKiBLV1FXTWF0cml4LmNwcCAqLzsgfTsKIAkJQThGRDhCODcwODdDQjQ1NzAwREMz
NzA3IC8qIEtXUVdNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NUQ3QThEMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4LmggKi87IH07
CiAJCUE4RkVGQjBBMDk3OUY0NzIwMDU4MzlGRCAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEZFRkIwODA5NzlG
NDcyMDA1ODM5RkQgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5oICovOyB9OwpAQCAtMjQ1Miw2ICsy
NDU0LDggQEAKIAkJQThERjRBRTUwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlU2VjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGFibGVTZWN0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4REY0QUU2MDk4MEM0MkMwMDUyOTgx
QiAvKiBSZW5kZXJUYWJsZVJvdy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyVGFibGVSb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
OERGNEFFNzA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVDb2wuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRhYmxlQ29sLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE4REY1MEFGMDk4MzEwMzUwMDUyOTgxQiAvKiBTVkdEb2N1bWVudEV4dGVu
c2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0RvY3VtZW50RXh0
ZW5zaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOERGNTBCMDA5ODMxMDM1
MDA1Mjk4MUIgLyogU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBOEZFRkIwODA5NzlGNDcyMDA1ODM5RkQgLyogUmVuZGVyRm9y
ZWlnbk9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRm9y
ZWlnbk9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEZFRkIwOTA5NzlG
NDcyMDA1ODM5RkQgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRm9yZWlnbk9iamVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4RkVGQjJGMDk3OUY0RjYwMDU4MzlGRCAvKiBTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zMjYxLDYgKzMyNjUsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQThDMEY2
RUIwODk3MDFGMTAwQkE1MTE0IC8qIEtDYW52YXNSZW5kZXJpbmdTdHlsZS5jcHAgKi8sCiAJCQkJ
QThDMEY2RUMwODk3MDFGMTAwQkE1MTE0IC8qIEtDYW52YXNSZW5kZXJpbmdTdHlsZS5oICovLAor
CQkJCUE4REY1MEIwMDk4MzEwMzUwMDUyOTgxQiAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuY3Bw
ICovLAorCQkJCUE4REY1MEFGMDk4MzEwMzUwMDUyOTgxQiAvKiBTVkdEb2N1bWVudEV4dGVuc2lv
bnMuaCAqLywKIAkJCQlGQUUwNDE4RDA5NzU5NkM5MDAwNTQwQkUgLyogU1ZHSW1hZ2VMb2FkZXIu
Y3BwICovLAogCQkJCUZBRTA0MThFMDk3NTk2QzkwMDA1NDBCRSAvKiBTVkdJbWFnZUxvYWRlci5o
ICovLAogCQkJCUE4QzBGNkVGMDg5NzAxRjEwMEJBNTExNCAvKiBLU1ZHVGltZVNjaGVkdWxlci5j
cHAgKi8sCkBAIC01MDMxLDYgKzUwMzcsNyBAQAogCQkJCUE4REY0QUVFMDk4MEM0MkMwMDUyOTgx
QiAvKiBSZW5kZXJUYWJsZVJvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThERjRBRUYwOTgwQzQy
QzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThE
RjRBRjEwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlQ29sLmggaW4gSGVhZGVycyAqLywK
KwkJCQlBOERGNTBCMTA5ODMxMDM1MDA1Mjk4MUIgLyogU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTY5NTEsNiArNjk1OCw3IEBACiAJCQkJQThERjRBRUMwOTgwQzQy
QzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4REY0QUVE
MDk4MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThERjRBRjAwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlUm93LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUE4REY1MEIyMDk4MzEwMzUwMDUyOTgxQiAvKiBTVkdEb2N1bWVudEV4
dGVuc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBrY2FudmFzL0tDYW52YXNUeXBlcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudElt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dEltcGwuY3BwCShyZXZpc2lvbiAxMjI3OCkKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw4ICszMyw5IEBACiAjaW5j
bHVkZSAiU1ZHVHJhbnNmb3JtTGlzdEltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBs
LmgiCi0jaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJLU1ZHVGltZVNj
aGVkdWxlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0RvY3Vt
ZW50RXh0ZW5zaW9ucy5oIgogCiAjaW5jbHVkZSA8a2RlYnVnLmg+CiAKQEAgLTE2OCwxMCArMTY5
LDggQEAgdm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGw6OmhhbgogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBTVkdTVkdFbGVtZW50SW1wbCAqb3du
ZXJTVkcgPSBvd25lclNWR0VsZW1lbnQoKTsKLSAgICAgICAgaWYob3duZXJTVkcpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIG93bmVyU1ZHLT50aW1lU2NoZWR1bGVyKCktPmNvbm5lY3RJbnRlcnZh
bFRpbWVyKHRoaXMpOworICAgICAgICBpZiAoRG9jdW1lbnRJbXBsICpkb2MgPSBnZXREb2N1bWVu
dCgpKSB7CisgICAgICAgICAgICBkb2MtPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+dGltZVNjaGVk
dWxlcigpLT5jb25uZWN0SW50ZXJ2YWxUaW1lcih0aGlzKTsKICAgICAgICAgICAgIG1fY29ubmVj
dGVkID0gdHJ1ZTsKICAgICAgICAgfQogCkBAIC0zMjQsMTAgKzMyMyw4IEBAIHZvaWQgU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsOjpoYW4KICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIFNWR1NWR0VsZW1lbnRJbXBsICpvd25lclNWRyA9IG93bmVyU1ZHRWxl
bWVudCgpOwotICAgICAgICBpZihvd25lclNWRykKLSAgICAgICAgewotICAgICAgICAgICAgb3du
ZXJTVkctPnRpbWVTY2hlZHVsZXIoKS0+ZGlzY29ubmVjdEludGVydmFsVGltZXIodGhpcyk7Cisg
ICAgICAgIGlmIChEb2N1bWVudEltcGwgKmRvYyA9IGdldERvY3VtZW50KCkpIHsKKyAgICAgICAg
ICAgIGRvYy0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT50aW1lU2NoZWR1bGVyKCktPmRpc2Nvbm5l
Y3RJbnRlcnZhbFRpbWVyKHRoaXMpOwogICAgICAgICAgICAgbV9jb25uZWN0ZWQgPSBmYWxzZTsK
ICAgICAgICAgfQogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmNwcAkocmV2aXNpb24gMTIyNzgpCisr
KyBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDEw
ICsyNjcsNiBAQCB2b2lkIFNWR0RvY3VtZW50SW1wbDo6ZXhlY3V0ZVNjcmlwdHMoYm9vCiAgICAg
ICAgICAgICBpdC5jdXJyZW50KCktPmNsb3NlUmVuZGVyZXIoKTsKICAgICB9CiAgICAgbV9mb3J3
YXJkUmVmZXJlbmNlcy5jbGVhcigpOwotCi0gICAgLy8gU3RhcnQgYW5pbWF0aW9ucywgYXMgImxv
YWQiIHNjcmlwdHMgYXJlIGV4ZWN1dGVkLgotICAgIC8vIEZJWE1FOiB0aGlzIHdvbid0IHdvcmsg
Zm9yIENERgotICAgIHJvb3RFbGVtZW50KCktPnRpbWVTY2hlZHVsZXIoKS0+c3RhcnRBbmltYXRp
b25zKCk7CiB9CiAKIHZvaWQgU1ZHRG9jdW1lbnRJbXBsOjpyZWNhbGNTdHlsZShTdHlsZUNoYW5n
ZSBjaGFuZ2UpCkluZGV4OiBrc3ZnMi9zdmcvU1ZHU2V0RWxlbWVudEltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtzdmcyL3N2Zy9TVkdTZXRFbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyMjc4KQor
Kysga3N2ZzIvc3ZnL1NWR1NldEVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIs
OCArMjIsOSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU1ZHU2V0RWxlbWVu
dEltcGwuaCIKLSNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIktTVkdU
aW1lU2NoZWR1bGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZH
RG9jdW1lbnRFeHRlbnNpb25zLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkBAIC0zOSwx
NSArNDAsMTEgQEAgU1ZHU2V0RWxlbWVudEltcGw6On5TVkdTZXRFbGVtZW50SW1wbCgpCiB2b2lk
IFNWR1NldEVsZW1lbnRJbXBsOjpoYW5kbGVUaW1lckV2ZW50KGRvdWJsZSB0aW1lUGVyY2VudGFn
ZSkKIHsKICAgICAvLyBTdGFydCBjb25kaXRpb24uCi0gICAgaWYoIW1fY29ubmVjdGVkKQotICAg
IHsgICAgCi0gICAgICAgIFNWR1NWR0VsZW1lbnRJbXBsICpvd25lclNWRyA9IG93bmVyU1ZHRWxl
bWVudCgpOwotICAgICAgICBpZihvd25lclNWRykKLSAgICAgICAgewotICAgICAgICAgICAgb3du
ZXJTVkctPnRpbWVTY2hlZHVsZXIoKS0+Y29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CisgICAg
aWYgKCFtX2Nvbm5lY3RlZCkgeyAgICAKKyAgICAgICAgaWYgKERvY3VtZW50SW1wbCAqZG9jID0g
Z2V0RG9jdW1lbnQoKSkgeworICAgICAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkt
PnRpbWVTY2hlZHVsZXIoKS0+Y29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CiAgICAgICAgICAg
ICBtX2Nvbm5lY3RlZCA9IHRydWU7CiAgICAgICAgIH0KLQogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC02NCwxNiArNjEsMTMgQEAgdm9pZCBTVkdTZXRFbGVtZW50SW1wbDo6aGFuZGxlVGlt
ZXJFdmVudAogICAgIH0KIAogICAgIC8vIEVuZCBjb25kaXRpb24uCi0gICAgaWYodGltZVBlcmNl
bnRhZ2UgPT0gMS4wKQotICAgIHsKLSAgICAgICAgU1ZHU1ZHRWxlbWVudEltcGwgKm93bmVyU1ZH
ID0gb3duZXJTVkdFbGVtZW50KCk7Ci0gICAgICAgIGlmKG93bmVyU1ZHKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBvd25lclNWRy0+dGltZVNjaGVkdWxlcigpLT5kaXNjb25uZWN0SW50ZXJ2YWxU
aW1lcih0aGlzKTsKKyAgICBpZiAodGltZVBlcmNlbnRhZ2UgPT0gMS4wKSB7CisgICAgICAgIGlm
IChEb2N1bWVudEltcGwgKmRvYyA9IGdldERvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGRvYy0+
YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLT50aW1lU2NoZWR1bGVyKCktPmRpc2Nvbm5lY3RJbnRlcnZh
bFRpbWVyKHRoaXMpOwogICAgICAgICAgICAgbV9jb25uZWN0ZWQgPSBmYWxzZTsKICAgICAgICAg
fQogCi0gICAgICAgIGlmKCFpc0Zyb3plbigpKQorICAgICAgICBpZiAoIWlzRnJvemVuKCkpCiAg
ICAgICAgICAgICBzZXRUYXJnZXRBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKG1fc2F2ZWRUbyku
aW1wbCgpKTsKIAogICAgICAgICBtX3NhdmVkVG8gPSBRU3RyaW5nKCk7CkluZGV4OiBrc3ZnMi9z
dmcvU1ZHR0VsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHR0VsZW1l
bnRJbXBsLmNwcAkocmV2aXNpb24gMTIyNzgpCisrKyBrc3ZnMi9zdmcvU1ZHR0VsZW1lbnRJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTMgKzQ1LDYgQEAgdm9pZCBTVkdHRWxlbWVudElt
cGw6OnBhcnNlTWFwcGVkQXR0cmlidQogICAgIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
SW1wbDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CiAKLXZvaWQgU1ZHR0VsZW1lbnRJ
bXBsOjpzZXRDaGFuZ2VkKGJvb2wgYiwgYm9vbCkKLXsKLSAgICAvLyBGSVhNRTogdGhpcyBpcyB3
YWFheSB0byBzbG93ICYgd3JvbmchCi0gICAgLy9LRE9NOjpOb2RlSW1wbDo6c2V0Q2hhbmdlZChi
LCB0cnVlKTsKLSAgICAvL0tET006Ok5vZGVJbXBsOjpzZXRDaGFuZ2VkKGIsIGZhbHNlKTsKLX0K
LQoga2h0bWw6OlJlbmRlck9iamVjdCAqU1ZHR0VsZW1lbnRJbXBsOjpjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSAqYXJlbmEsIGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUpCiB7CiAgICAgcmV0
dXJuIFFQYWludGVyOjpyZW5kZXJpbmdEZXZpY2UoKS0+Y3JlYXRlQ29udGFpbmVyKGFyZW5hLCBz
dHlsZSwgdGhpcyk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHR0VsZW1lbnRJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga3N2ZzIvc3ZnL1NWR0dFbGVtZW50SW1wbC5oCShyZXZpc2lvbiAxMjI3OCkKKysrIGtz
dmcyL3N2Zy9TVkdHRWxlbWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsOCArNDUsNiBA
QCBuYW1lc3BhY2UgS1NWRwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGtodG1sOjpSZW5kZXJTdHlsZSAqKSB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIHZpcnR1YWwg
a2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBr
aHRtbDo6UmVuZGVyU3R5bGUgKnN0eWxlKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2hh
bmdlZChib29sIGIgPSB0cnVlLCBib29sIGRlZXAgPSBmYWxzZSk7CiAgICAgfTsKIAogICAgIGNs
YXNzIFNWR0R1bW15RWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHR0VsZW1lbnRJbXBsCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdBbmltYXRpb25FbGVtZW50SW1wbC5jcHAJKHJldmlzaW9uIDEyMjc4KQorKysga3N2
ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NiArMzYsOSBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmgiCiAjaW5jbHVk
ZSAiU1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgor
I2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgorI2luY2x1ZGUgImNzc3Byb3BlcnRp
ZXMuaCIKKyNpbmNsdWRlICJrc3ZnY3NzcHJvcGVydGllcy5oIgogCiAjaW5jbHVkZSAiWExpbmtO
YW1lcy5oIgogCkBAIC00MTIsMTIgKzQxNSw4IEBAIGRvdWJsZSBTVkdBbmltYXRpb25FbGVtZW50
SW1wbDo6cGFyc2VDbG8KIAogdm9pZCBTVkdBbmltYXRpb25FbGVtZW50SW1wbDo6Y2xvc2VSZW5k
ZXJlcigpCiB7Ci0gICAga2REZWJ1ZygpIDw8ICIgLS0+IEFERElORyAiIDw8IEtET006OkRPTVN0
cmluZyhsb2NhbE5hbWUoKSkgPDwgIiBhbmltYXRpb24gKHN0YXJ0VGltZSA9ICIgPDwgZ2V0U3Rh
cnRUaW1lKCkgPDwgIiBtcykgdG8gc2NoZWR1bGVyISIgPDwgZW5kbDsKLSAgICBTVkdTVkdFbGVt
ZW50SW1wbCAqb3duZXJTVkcgPSBvd25lclNWR0VsZW1lbnQoKTsKLSAgICBpZighb3duZXJTVkcp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG93bmVyU1ZHLT50aW1lU2NoZWR1bGVyKCktPmFkZFRp
bWVyKHRoaXMsIGxyb3VuZChnZXRTdGFydFRpbWUoKSkpOworICAgIGlmIChEb2N1bWVudEltcGwg
KmRvYyA9IGdldERvY3VtZW50KCkpCisgICAgICAgIGRvYy0+YWNjZXNzU1ZHRXh0ZW5zaW9ucygp
LT50aW1lU2NoZWR1bGVyKCktPmFkZFRpbWVyKHRoaXMsIGxyb3VuZChnZXRTdGFydFRpbWUoKSkp
OwogfQogCiBLRE9NOjpET01TdHJpbmcgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OnRhcmdldEF0
dHJpYnV0ZSgpIGNvbnN0CkBAIC00NDEsMjEgKzQ0MCwxNSBAQCBLRE9NOjpET01TdHJpbmcgU1ZH
QW5pbWF0aW9uRWxlbWVudEltcGw6CiAgICAgICAgIC8vIGZvciB0aGUgdGFyZ2V0IGVsZW1lbnQu
IFRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IGZpcnN0IHNlYXJjaCB0aHJvdWdoIHRoZQogICAgICAg
ICAvLyBsaXN0IG9mIENTUyBwcm9wZXJ0aWVzIGZvciBhIG1hdGNoaW5nIHByb3BlcnR5IG5hbWUs
IGFuZCBpZiBub25lIGlzIGZvdW5kLAogICAgICAgICAvLyBzZWFyY2ggdGhlIGRlZmF1bHQgWE1M
IG5hbWVzcGFjZSBmb3IgdGhlIGVsZW1lbnQuCi0gICAgICAgIGlmKHN0eWxlZCAmJiBzdHlsZWQt
PnN0eWxlKCkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBpZCA9IEtET006OmdldFByb3Bl
cnR5SUQobV9hdHRyaWJ1dGVOYW1lLmFzY2lpKCksIG1fYXR0cmlidXRlTmFtZS5sZW5ndGgoKSk7
Ci0gICAgICAgICAgICBpZihzdHlsZWQtPnN0eWxlKCktPmdldFByb3BlcnR5Q1NTVmFsdWUoaWQp
KQorICAgICAgICBpZiAoc3R5bGVkICYmIHN0eWxlZC0+c3R5bGUoKSkgeworICAgICAgICAgICAg
aWYgKHN0eWxlZC0+c3R5bGUoKS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShtX2F0dHJpYnV0ZU5hbWUp
KQogICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVR5cGUgPSBBVFRSSUJVVEVUWVBFX0NTUzsKICAg
ICAgICAgfQogICAgIH0KICAgICAKLSAgICBpZihhdHRyaWJ1dGVUeXBlID09IEFUVFJJQlVURVRZ
UEVfQ1NTKQotICAgIHsKLSAgICAgICAgaWYoc3R5bGVkICYmIHN0eWxlZC0+c3R5bGUoKSkKLSAg
ICAgICAgewotICAgICAgICAgICAgaW50IGlkID0gS0RPTTo6Z2V0UHJvcGVydHlJRChtX2F0dHJp
YnV0ZU5hbWUuYXNjaWkoKSwgbV9hdHRyaWJ1dGVOYW1lLmxlbmd0aCgpKTsKLSAgICAgICAgICAg
IHJldCA9IHN0eWxlZC0+c3R5bGUoKS0+Z2V0UHJvcGVydHlWYWx1ZShpZCk7Ci0gICAgICAgIH0K
KyAgICBpZiAoYXR0cmlidXRlVHlwZSA9PSBBVFRSSUJVVEVUWVBFX0NTUykgeworICAgICAgICBp
ZiAoc3R5bGVkICYmIHN0eWxlZC0+c3R5bGUoKSkKKyAgICAgICAgICAgIHJldCA9IHN0eWxlZC0+
c3R5bGUoKS0+Z2V0UHJvcGVydHlWYWx1ZShtX2F0dHJpYnV0ZU5hbWUpOwogICAgIH0KIAogICAg
IGlmKGF0dHJpYnV0ZVR5cGUgPT0gQVRUUklCVVRFVFlQRV9YTUwgfHwgcmV0LmlzRW1wdHkoKSkK
QEAgLTQ4OCwyMiArNDgxLDE1IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OnNldFRh
cmdldEEKICAgICAgICAgLy8gZm9yIHRoZSB0YXJnZXQgZWxlbWVudC4gVGhlIGltcGxlbWVudGF0
aW9uIG11c3QgZmlyc3Qgc2VhcmNoIHRocm91Z2ggdGhlCiAgICAgICAgIC8vIGxpc3Qgb2YgQ1NT
IHByb3BlcnRpZXMgZm9yIGEgbWF0Y2hpbmcgcHJvcGVydHkgbmFtZSwgYW5kIGlmIG5vbmUgaXMg
Zm91bmQsCiAgICAgICAgIC8vIHNlYXJjaCB0aGUgZGVmYXVsdCBYTUwgbmFtZXNwYWNlIGZvciB0
aGUgZWxlbWVudC4KLSAgICAgICAgaWYoc3R5bGVkICYmIHN0eWxlZC0+c3R5bGUoKSkKLSAgICAg
ICAgewotICAgICAgICAgICAgUVN0cmluZyBhdHRyTmFtZSA9IG5hbWUucXN0cmluZygpOwotICAg
ICAgICAgICAgaW50IGlkID0gS0RPTTo6Z2V0UHJvcGVydHlJRChhdHRyTmFtZS5hc2NpaSgpLCBh
dHRyTmFtZS5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBpZihzdHlsZWQtPnN0eWxlKCktPmdldFBy
b3BlcnR5Q1NTVmFsdWUoaWQpKQorICAgICAgICBpZiAoc3R5bGVkICYmIHN0eWxlZC0+c3R5bGUo
KSkgeworICAgICAgICAgICAgaWYgKHN0eWxlZC0+c3R5bGUoKS0+Z2V0UHJvcGVydHlDU1NWYWx1
ZShuYW1lKSkKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlID0gQVRUUklCVVRFVFlQRV9D
U1M7CiAgICAgICAgIH0KICAgICB9CiAgICAgaW50IGV4Y2VwdGlvbmNvZGU7Ci0gICAgaWYoYXR0
cmlidXRlVHlwZSA9PSBBVFRSSUJVVEVUWVBFX0NTUyAmJiBzdHlsZWQgJiYgc3R5bGVkLT5zdHls
ZSgpKQotICAgIHsKLSAgICAgICAgUVN0cmluZyBhdHRyTmFtZSA9IG5hbWUucXN0cmluZygpOwot
ICAgICAgICBpbnQgaWQgPSBLRE9NOjpnZXRQcm9wZXJ0eUlEKGF0dHJOYW1lLmFzY2lpKCksIGF0
dHJOYW1lLmxlbmd0aCgpKTsKLSAgICAgICAgc3R5bGVkLT5zdHlsZSgpLT5zZXRQcm9wZXJ0eShp
ZCwgdmFsdWUsIGZhbHNlLCBleGNlcHRpb25jb2RlKTsKLSAgICB9Ci0gICAgZWxzZSBpZihhdHRy
aWJ1dGVUeXBlID09IEFUVFJJQlVURVRZUEVfWE1MKQorICAgIGlmIChhdHRyaWJ1dGVUeXBlID09
IEFUVFJJQlVURVRZUEVfQ1NTICYmIHN0eWxlZCAmJiBzdHlsZWQtPnN0eWxlKCkpCisgICAgICAg
IHN0eWxlZC0+c3R5bGUoKS0+c2V0UHJvcGVydHkobmFtZSwgdmFsdWUsICIiLCBleGNlcHRpb25j
b2RlKTsKKyAgICBlbHNlIGlmIChhdHRyaWJ1dGVUeXBlID09IEFUVFJJQlVURVRZUEVfWE1MKQog
ICAgICAgICB0YXJnZXQtPnNldEF0dHJpYnV0ZShuYW1lSW1wbCwgdmFsdWUsIGV4Y2VwdGlvbmNv
ZGUpOwogfQogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50SW1wbC5jcHAJ
KHJldmlzaW9uIDEyMjc4KQorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsOSArMjIsMTAgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAi
U1ZHU1ZHRWxlbWVudEltcGwuaCIKICNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5oIgogI2lu
Y2x1ZGUgImtkb20vRE9NU3RyaW5nLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAKICNpbmNsdWRlIDxrZGVidWcuaD4KIApA
QCAtMTI4LDEwICsxMjksOCBAQCB2b2lkIFNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsOjpoYW5k
bGVUCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBTVkdTVkdFbGVtZW50SW1w
bCAqb3duZXJTVkcgPSBvd25lclNWR0VsZW1lbnQoKTsKLSAgICAgICAgaWYgKG93bmVyU1ZHKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBvd25lclNWRy0+dGltZVNjaGVkdWxlcigpLT5jb25uZWN0
SW50ZXJ2YWxUaW1lcih0aGlzKTsKKyAgICAgICAgaWYgKERvY3VtZW50SW1wbCAqZG9jID0gZ2V0
RG9jdW1lbnQoKSkgeworICAgICAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnRp
bWVTY2hlZHVsZXIoKS0+Y29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CiAgICAgICAgICAgICBt
X2Nvbm5lY3RlZCA9IHRydWU7CiAgICAgICAgIH0KIApAQCAtMjI0LDEwICsyMjMsOCBAQCB2b2lk
IFNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsOjpoYW5kbGVUCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBTVkdTVkdFbGVtZW50SW1wbCAqb3duZXJTVkcgPSBvd25l
clNWR0VsZW1lbnQoKTsKLSAgICAgICAgaWYgKG93bmVyU1ZHKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBvd25lclNWRy0+dGltZVNjaGVkdWxlcigpLT5kaXNjb25uZWN0SW50ZXJ2YWxUaW1lcih0
aGlzKTsKKyAgICAgICAgaWYgKERvY3VtZW50SW1wbCAqZG9jID0gZ2V0RG9jdW1lbnQoKSkgewor
ICAgICAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnRpbWVTY2hlZHVsZXIoKS0+
ZGlzY29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CiAgICAgICAgICAgICBtX2Nvbm5lY3RlZCA9
IGZhbHNlOwogICAgICAgICB9CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5oCShyZXZpc2lvbiAx
MjI3OCkKKysrIGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC05NywxMyArOTcsNiBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICB2b2lkIHVuc3VzcGVuZFJl
ZHJhd0FsbCgpOwogICAgICAgICB2b2lkIGZvcmNlUmVkcmF3KCk7CiAKLSAgICAgICAgdm9pZCBw
YXVzZUFuaW1hdGlvbnMoKTsKLSAgICAgICAgdm9pZCB1bnBhdXNlQW5pbWF0aW9ucygpOwotICAg
ICAgICBib29sIGFuaW1hdGlvbnNQYXVzZWQoKTsKLQotICAgICAgICBmbG9hdCBnZXRDdXJyZW50
VGltZSgpOwotICAgICAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGZsb2F0IHNlY29uZHMpOwotCiAg
ICAgICAgIEtET006Ok5vZGVMaXN0SW1wbCAqZ2V0SW50ZXJzZWN0aW9uTGlzdChTVkdSZWN0SW1w
bCAqcmVjdCwgU1ZHRWxlbWVudEltcGwgKnJlZmVyZW5jZUVsZW1lbnQpOwogICAgICAgICBLRE9N
OjpOb2RlTGlzdEltcGwgKmdldEVuY2xvc3VyZUxpc3QoU1ZHUmVjdEltcGwgKnJlY3QsIFNWR0Vs
ZW1lbnRJbXBsICpyZWZlcmVuY2VFbGVtZW50KTsKICAgICAgICAgYm9vbCBjaGVja0ludGVyc2Vj
dGlvbihTVkdFbGVtZW50SW1wbCAqZWxlbWVudCwgU1ZHUmVjdEltcGwgKnJlY3QpOwpAQCAtMTMw
LDkgKzEyMyw2IEBAIG5hbWVzcGFjZSBLU1ZHCiAKICAgICAgICAgLy8gJ3ZpcnR1YWwgU1ZHWm9v
bUFuZFBhbiBmdW5jdGlvbnMKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFpvb21BbmRQYW4odW5z
aWduZWQgc2hvcnQgem9vbUFuZFBhbik7Ci0gICAgICAgIAotICAgICAgICAvLyBBbmltYXRpb25z
Ci0gICAgICAgIFRpbWVTY2hlZHVsZXIgKnRpbWVTY2hlZHVsZXIoKSBjb25zdCB7IHJldHVybiBt
X3RpbWVTY2hlZHVsZXI7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFibGUgUmVmUHRy
PFNWR0FuaW1hdGVkTGVuZ3RoSW1wbD4gbV94OwpAQCAtMTQxLDggKzEzMSw2IEBAIG5hbWVzcGFj
ZSBLU1ZHCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR0FuaW1hdGVkTGVuZ3RoSW1wbD4gbV9o
ZWlnaHQ7CiAKICAgICAgICAgYm9vbCBtX3VzZUN1cnJlbnRWaWV3OwotCi0gICAgICAgIFRpbWVT
Y2hlZHVsZXIgKm1fdGltZVNjaGVkdWxlcjsKICAgICB9OwogfTsKIApJbmRleDoga3N2ZzIvc3Zn
L1NWR1NWR0VsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHU1ZHRWxl
bWVudEltcGwuY3BwCShyZXZpc2lvbiAxMjI3OCkKKysrIGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDEyICs3MywxMCBAQCBTVkdTVkdFbGVtZW50
SW1wbDo6U1ZHU1ZHRWxlbWVudEltcGwoY29uCiAgIFNWR1pvb21BbmRQYW5JbXBsKCkKIHsKICAg
ICBtX3VzZUN1cnJlbnRWaWV3ID0gZmFsc2U7Ci0gICAgbV90aW1lU2NoZWR1bGVyID0gbmV3IFRp
bWVTY2hlZHVsZXIoZ2V0RG9jdW1lbnQoKSk7CiB9CiAKIFNWR1NWR0VsZW1lbnRJbXBsOjp+U1ZH
U1ZHRWxlbWVudEltcGwoKQogewotICAgIGRlbGV0ZSBtX3RpbWVTY2hlZHVsZXI7CiB9CiAKIFNW
R0FuaW1hdGVkTGVuZ3RoSW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OngoKSBjb25zdApAQCAtMjkw
LDMzICsyODgsNiBAQCB2b2lkIFNWR1NWR0VsZW1lbnRJbXBsOjpmb3JjZVJlZHJhdygpCiAgICAg
Ly8gVE9ETwogfQogCi12b2lkIFNWR1NWR0VsZW1lbnRJbXBsOjpwYXVzZUFuaW1hdGlvbnMoKQot
ewotICAgIGlmKCFtX3RpbWVTY2hlZHVsZXItPmFuaW1hdGlvbnNQYXVzZWQoKSkKLSAgICAgICAg
bV90aW1lU2NoZWR1bGVyLT50b2dnbGVBbmltYXRpb25zKCk7Ci19Ci0KLXZvaWQgU1ZHU1ZHRWxl
bWVudEltcGw6OnVucGF1c2VBbmltYXRpb25zKCkKLXsKLSAgICBpZihtX3RpbWVTY2hlZHVsZXIt
PmFuaW1hdGlvbnNQYXVzZWQoKSkKLSAgICAgICAgbV90aW1lU2NoZWR1bGVyLT50b2dnbGVBbmlt
YXRpb25zKCk7Ci19Ci0KLWJvb2wgU1ZHU1ZHRWxlbWVudEltcGw6OmFuaW1hdGlvbnNQYXVzZWQo
KQotewotICAgIHJldHVybiBtX3RpbWVTY2hlZHVsZXItPmFuaW1hdGlvbnNQYXVzZWQoKTsKLX0K
LQotZmxvYXQgU1ZHU1ZHRWxlbWVudEltcGw6OmdldEN1cnJlbnRUaW1lKCkKLXsKLSAgICByZXR1
cm4gbV90aW1lU2NoZWR1bGVyLT5lbGFwc2VkKCk7Ci19Ci0KLXZvaWQgU1ZHU1ZHRWxlbWVudElt
cGw6OnNldEN1cnJlbnRUaW1lKGZsb2F0IC8qIHNlY29uZHMgKi8pCi17Ci0gICAgLy8gVE9ETwot
fQotCiBLRE9NOjpOb2RlTGlzdEltcGwgKlNWR1NWR0VsZW1lbnRJbXBsOjpnZXRJbnRlcnNlY3Rp
b25MaXN0KFNWR1JlY3RJbXBsICpyZWN0LCBTVkdFbGVtZW50SW1wbCAqKQogewogICAgIC8vS0RP
TTo6Tm9kZUxpc3RJbXBsICpsaXN0OwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5j
cHAJKHJldmlzaW9uIDEyMjc4KQorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDggKzIyLDkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1NWR0Vs
ZW1lbnRJbXBsLmgiCiAjaW5jbHVkZSAiS1NWR1RpbWVTY2hlZHVsZXIuaCIKKyNpbmNsdWRlICJE
b2N1bWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKIAogI2lu
Y2x1ZGUgPGtkZWJ1Zy5oPgogCkBAIC0xMTgsMTAgKzExOSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZUVs
ZW1lbnRJbXBsOjpoYW5kbGVUaW1lckUKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg
ICAgIFNWR1NWR0VsZW1lbnRJbXBsICpvd25lclNWRyA9IG93bmVyU1ZHRWxlbWVudCgpOwotICAg
ICAgICBpZihvd25lclNWRykKLSAgICAgICAgewotICAgICAgICAgICAgb3duZXJTVkctPnRpbWVT
Y2hlZHVsZXIoKS0+Y29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CisgICAgICAgIGlmIChEb2N1
bWVudEltcGwgKmRvYyA9IGdldERvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGRvYy0+YWNjZXNz
U1ZHRXh0ZW5zaW9ucygpLT50aW1lU2NoZWR1bGVyKCktPmNvbm5lY3RJbnRlcnZhbFRpbWVyKHRo
aXMpOwogICAgICAgICAgICAgbV9jb25uZWN0ZWQgPSB0cnVlOwogICAgICAgICB9CiAKQEAgLTIw
NiwxMCArMjA1LDggQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEltcGw6OmhhbmRsZVRpbWVyRQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgU1ZHU1ZHRWxlbWVudElt
cGwgKm93bmVyU1ZHID0gb3duZXJTVkdFbGVtZW50KCk7Ci0gICAgICAgIGlmKG93bmVyU1ZHKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBvd25lclNWRy0+dGltZVNjaGVkdWxlcigpLT5kaXNjb25u
ZWN0SW50ZXJ2YWxUaW1lcih0aGlzKTsKKyAgICAgICAgaWYgKERvY3VtZW50SW1wbCAqZG9jID0g
Z2V0RG9jdW1lbnQoKSkgeworICAgICAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkt
PnRpbWVTY2hlZHVsZXIoKS0+ZGlzY29ubmVjdEludGVydmFsVGltZXIodGhpcyk7CiAgICAgICAg
ICAgICBtX2Nvbm5lY3RlZCA9IGZhbHNlOwogICAgICAgICB9CiAKSW5kZXg6IGtzdmcyL21pc2Mv
U1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9taXNjL1NWR0Rv
Y3VtZW50RXh0ZW5zaW9ucy5jcHAJKHJldmlzaW9uIDApCisrKyBrc3ZnMi9taXNjL1NWR0RvY3Vt
ZW50RXh0ZW5zaW9ucy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgICAg
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisKKyAgICBUaGlzIGZpbGUg
aXMgcGFydCBvZiB0aGUgV2ViS2l0IHByb2plY3QKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAgICBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBT
VkdfU1VQUE9SVAorI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgorI2luY2x1ZGUg
IktTVkdUaW1lU2NoZWR1bGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU1ZHRG9jdW1l
bnRFeHRlbnNpb25zOjpTVkdEb2N1bWVudEV4dGVuc2lvbnMoRG9jdW1lbnRJbXBsICpkb2MpCisg
ICAgOiBtX2RvYyhkb2MpCisgICAgLCBtX3RpbWVTY2hlZHVsZXIobmV3IFRpbWVTY2hlZHVsZXIo
ZG9jKSkKK3sKK30KKworU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjp+U1ZHRG9jdW1lbnRFeHRlbnNp
b25zKCkKK3sKKyAgICBkZWxldGUgbV90aW1lU2NoZWR1bGVyOworfQorCitUaW1lU2NoZWR1bGVy
ICpTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnRpbWVTY2hlZHVsZXIoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3RpbWVTY2hlZHVsZXI7Cit9CisKK3ZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpw
YXVzZUFuaW1hdGlvbnMoKQoreworICAgIGlmICghbV90aW1lU2NoZWR1bGVyLT5hbmltYXRpb25z
UGF1c2VkKCkpCisgICAgICAgIG1fdGltZVNjaGVkdWxlci0+dG9nZ2xlQW5pbWF0aW9ucygpOwor
fQorCit2b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6dW5wYXVzZUFuaW1hdGlvbnMoKQorewor
ICAgIGlmIChtX3RpbWVTY2hlZHVsZXItPmFuaW1hdGlvbnNQYXVzZWQoKSkKKyAgICAgICAgbV90
aW1lU2NoZWR1bGVyLT50b2dnbGVBbmltYXRpb25zKCk7Cit9CisKK2Jvb2wgU1ZHRG9jdW1lbnRF
eHRlbnNpb25zOjphbmltYXRpb25zUGF1c2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aW1l
U2NoZWR1bGVyLT5hbmltYXRpb25zUGF1c2VkKCk7Cit9CisKK2Zsb2F0IFNWR0RvY3VtZW50RXh0
ZW5zaW9uczo6Z2V0Q3VycmVudFRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3RpbWVTY2hl
ZHVsZXItPmVsYXBzZWQoKTsKK30KKwordm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnNldEN1
cnJlbnRUaW1lKGZsb2F0IC8qIHNlY29uZHMgKi8pCit7CisgICAgLy8gVE9ETworfQorCit9CisK
KyNlbmRpZgpJbmRleDoga3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrc3ZnMi9taXNjL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCShyZXZpc2lvbiAwKQor
Kysga3N2ZzIvbWlzYy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKworICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgcHJvamVjdAorCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g
U3VpdGUgMzMwLAorICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorKi8KKworI2lmbmRl
ZiBTVkdEb2N1bWVudEV4dGVuc2lvbnNfSAorI2RlZmluZSBTVkdEb2N1bWVudEV4dGVuc2lvbnNf
SAorCisjaWYgU1ZHX1NVUFBPUlQKKworI2luY2x1ZGUgIlNoYXJlZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFRpbWVTY2hlZHVsZXI7CitjbGFzcyBEb2N1bWVudEltcGw7CisK
K2NsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9ucyA6IHB1YmxpYyBTaGFyZWQ8U1ZHRG9jdW1lbnRF
eHRlbnNpb25zPiB7CitwdWJsaWM6CisgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKERvY3VtZW50
SW1wbCAqKTsKKyAgICB+U1ZHRG9jdW1lbnRFeHRlbnNpb25zKCk7CisKKyAgICBUaW1lU2NoZWR1
bGVyICp0aW1lU2NoZWR1bGVyKCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBwYXVzZUFuaW1hdGlv
bnMoKTsKKyAgICB2b2lkIHVucGF1c2VBbmltYXRpb25zKCk7CisgICAgYm9vbCBhbmltYXRpb25z
UGF1c2VkKCkgY29uc3Q7CisKKyAgICBmbG9hdCBnZXRDdXJyZW50VGltZSgpIGNvbnN0OworICAg
IHZvaWQgc2V0Q3VycmVudFRpbWUoZmxvYXQgc2Vjb25kcyk7CisKK3ByaXZhdGU6CisgICAgRG9j
dW1lbnRJbXBsICptX2RvYzsgLy8gd2VhayByZWZlcmVuY2UKKyAgICBUaW1lU2NoZWR1bGVyICpt
X3RpbWVTY2hlZHVsZXI7Cit9OworCit9CisjZW5kaWYgLy8gU1ZHX1NVUFBPUlQKKworI2VuZGlm
CkluZGV4OiBwYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmNwcAkocmV2
aXNpb24gMTIyNzgpCisrKyBwYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNiAr
ODgsNyBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJYTGlua05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAjZW5k
aWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0zMzA2LDYgKzMzMDcsMTEgQEAgdm9p
ZCBGcmFtZTo6YWRqdXN0UGFnZUhlaWdodChmbG9hdCAqbmV3QgogCiBQYXVzZWRUaW1lb3V0cyAq
RnJhbWU6OnBhdXNlVGltZW91dHMoKQogeworI2lmIFNWR19TVVBQT1JUCisgICAgaWYgKGQtPm1f
ZG9jICYmIGQtPm1fZG9jLT5zdmdFeHRlbnNpb25zKCkpCisgICAgICAgIGQtPm1fZG9jLT5hY2Nl
c3NTVkdFeHRlbnNpb25zKCktPnBhdXNlQW5pbWF0aW9ucygpOworI2VuZGlmCisKICAgICBpZiAo
ZC0+bV9kb2MgJiYgZC0+bV9qc2NyaXB0KSB7CiAgICAgICAgIFdpbmRvdyAqdyA9IFdpbmRvdzo6
cmV0cmlldmVXaW5kb3codGhpcyk7CiAgICAgICAgIGlmICh3KQpAQCAtMzMxNiw2ICszMzIyLDEx
IEBAIFBhdXNlZFRpbWVvdXRzICpGcmFtZTo6cGF1c2VUaW1lb3V0cygpCiAKIHZvaWQgRnJhbWU6
OnJlc3VtZVRpbWVvdXRzKFBhdXNlZFRpbWVvdXRzICp0KQogeworI2lmIFNWR19TVVBQT1JUCisg
ICAgaWYgKGQtPm1fZG9jICYmIGQtPm1fZG9jLT5zdmdFeHRlbnNpb25zKCkpCisgICAgICAgIGQt
Pm1fZG9jLT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnVucGF1c2VBbmltYXRpb25zKCk7CisjZW5k
aWYKKwogICAgIGlmIChkLT5tX2RvYyAmJiBkLT5tX2pzY3JpcHQgJiYgZC0+bV9iSlNjcmlwdEVu
YWJsZWQpIHsKICAgICAgICAgV2luZG93ICp3ID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyh0aGlz
KTsKICAgICAgICAgaWYgKHcpCg==
</data>
<flag name="review"
          id="1346"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>