<?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>59018</bug_id>
          
          <creation_ts>2011-04-20 12:45:09 -0700</creation_ts>
          <short_desc>[chromium] Move Chromium media controls into own root element</short_desc>
          <delta_ts>2011-04-20 15:58:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Steve Lacey">sjl</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>389443</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Lacey">sjl</who>
    <bug_when>2011-04-20 12:45:09 -0700</bug_when>
    <thetext>Create MediaControlRootElementChromium and strip unused stuff.

This should be basically a noop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389493</commentid>
    <comment_count>1</comment_count>
      <attachid>90403</attachid>
    <who name="Steve Lacey">sjl</who>
    <bug_when>2011-04-20 13:42:49 -0700</bug_when>
    <thetext>Created attachment 90403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389496</commentid>
    <comment_count>2</comment_count>
      <attachid>90403</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-04-20 13:52:59 -0700</bug_when>
    <thetext>Comment on attachment 90403
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new tests. (OOPS!)

THe &quot;OOPS&quot; will prevent your patch from being committed. If no new tests are necessary, please explain why.

&gt; Source/WebCore/ChangeLog:40
&gt; +        * css/mediaControlsChromium.css:
&gt; +        (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
&gt; +        * html/shadow/MediaControlRootElementChromium.cpp: Added.
&gt; +        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
&gt; +        (WebCore::MediaControls::create):
&gt; +        (WebCore::MediaControlRootElementChromium::create):
&gt; +        (WebCore::MediaControlRootElementChromium::show):
&gt; +        (WebCore::MediaControlRootElementChromium::hide):
&gt; +        (WebCore::webkitTransitionString):
&gt; +        (WebCore::opacityString):
&gt; +        (WebCore::MediaControlRootElementChromium::makeOpaque):
&gt; +        (WebCore::MediaControlRootElementChromium::makeTransparent):
&gt; +        (WebCore::MediaControlRootElementChromium::reset):
&gt; +        (WebCore::MediaControlRootElementChromium::playbackStarted):
&gt; +        (WebCore::MediaControlRootElementChromium::playbackProgressed):
&gt; +        (WebCore::MediaControlRootElementChromium::playbackStopped):
&gt; +        (WebCore::MediaControlRootElementChromium::updateTimeDisplay):
&gt; +        (WebCore::MediaControlRootElementChromium::reportedError):
&gt; +        (WebCore::MediaControlRootElementChromium::changedNetworkState):
&gt; +        (WebCore::MediaControlRootElementChromium::loadedMetadata):
&gt; +        (WebCore::MediaControlRootElementChromium::changedClosedCaptionsVisibility):
&gt; +        (WebCore::MediaControlRootElementChromium::changedMute):
&gt; +        (WebCore::MediaControlRootElementChromium::changedVolume):
&gt; +        (WebCore::MediaControlRootElementChromium::enteredFullscreen):
&gt; +        (WebCore::MediaControlRootElementChromium::exitedFullscreen):
&gt; +        (WebCore::MediaControlRootElementChromium::showVolumeSlider):
&gt; +        (WebCore::MediaControlRootElementChromium::shadowPseudoId):
&gt; +        * html/shadow/MediaControlRootElementChromium.h: Added.

If these files were just cloned from existing files you should say so, and there is no need to list all of the &quot;changed&quot; functions here. If they aren&apos;t exact clones, please say what changed in each function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389501</commentid>
    <comment_count>3</comment_count>
    <who name="Steve Lacey">sjl</who>
    <bug_when>2011-04-20 14:01:29 -0700</bug_when>
    <thetext>Sorry - still fairly to this. I just went with what prepare-ChangeLog did.

So yes, MediaControlRootElementChromium is a clone of MediaControlRootElement, with all unused code removed.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389511</commentid>
    <comment_count>4</comment_count>
      <attachid>90408</attachid>
    <who name="Steve Lacey">sjl</who>
    <bug_when>2011-04-20 14:08:23 -0700</bug_when>
    <thetext>Created attachment 90408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389587</commentid>
    <comment_count>5</comment_count>
      <attachid>90408</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-20 15:58:02 -0700</bug_when>
    <thetext>Comment on attachment 90408
Patch

Clearing flags on attachment: 90408

Committed r84429: &lt;http://trac.webkit.org/changeset/84429&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389588</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-20 15:58:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90403</attachid>
            <date>2011-04-20 13:42:49 -0700</date>
            <delta_ts>2011-04-20 14:08:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59018-20110420134248.patch</filename>
            <type>text/plain</type>
            <size>19294</size>
            <attacher name="Steve Lacey">sjl</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ0MTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMzNmMzJmM2E5MmIxNTli
ZWJkOTlkN2RkODVjYmI3MTE0ZTIxYmM5Li4yN2ZmOWE5ZDY3OTFkN2QzYThiODczMmQ0NDc5NTIx
OGYyYWQ3ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDQtMjAgIFN0ZXZl
IExhY2V5ICA8c2psQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBjaHJvbWl1bSBtZWRpYSBjb250cm9scyBmcm9t
IGNvcmUgd2Via2l0IGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIFtjaHJvbWl1bV0gTW92ZSBD
aHJvbWl1bSBtZWRpYSBjb250cm9scyBpbnRvIG93biByb290IGVsZW1lbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MDE4CisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
Y3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNob3cp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6aGlk
ZSk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRUcmFuc2l0aW9uU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6Om9wYWNpdHlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bTo6bWFrZU9wYXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjptYWtlVHJhbnNwYXJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFy
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OnBsYXliYWNrUHJvZ3Jlc3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBkYXRlVGltZURpc3BsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVwb3J0ZWRFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpj
aGFuZ2VkTmV0d29ya1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW06OmxvYWRlZE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNoYW5nZWRDbG9zZWRDYXB0aW9uc1Zpc2liaWxp
dHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6
Y2hhbmdlZE11dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bTo6Y2hhbmdlZFZvbHVtZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjplbnRlcmVkRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpleGl0ZWRGdWxsc2NyZWVuKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNob3dWb2x1
bWVTbGlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW0uaDogQWRkZWQuCisKIDIwMTEtMDQtMjAgIERpcmsgU2NodWx6
ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggMDEwYmUwMDU2NGI4OWY3NmYwNmEwMmUwNWI3ZDEwNjNiNGY4
YzdhYi4uZWFjZjA3YzYzZTBhNjZmODFjMTgxN2E0MzgxYzJlN2YyMTAxY2UzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMzE4MCw4ICszMTgwLDggQEAKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzLmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuaCcsCi0gICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQu
Y3BwJywKLSAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5o
JywKKyAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1l
bnQuY3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCcs
CiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzCmluZGV4IDYwYzdk
NjI5MzI4ZDQwMTViM2Y1MWM5ZjVmOWZhMGU4Mjc5MjNkZWIuLjFhZWE4N2U4MGE5ZmJjYmRiMWYy
NmJhZDc2NTFjZGE4YTI1MWVhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRp
YUNvbnRyb2xzQ2hyb21pdW0uY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRy
b2xzQ2hyb21pdW0uY3NzCkBAIC03Niw3ICs3Niw2IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
CiAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgIC13ZWJraXQtYm94LWFs
aWduOiBjZW50ZXI7CiAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyOwotICAgIC13ZWJraXQt
Ym94LWRpcmVjdGlvbjogcmV2ZXJzZTsKICAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogCiAgICAg
cG9zaXRpb246IGFic29sdXRlOwpAQCAtMTIxLDM1ICsxMjAsNiBAQCBhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbAogICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIH0KIAotYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS10aW1lLXJlbWFpbmluZy1kaXNwbGF5OwotICAgIC13ZWJraXQtdXNlci1zZWxl
Y3Q6IG5vbmU7Ci0gICAgZGlzcGxheTogbm9uZTsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAwOwot
ICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1hbGlnbjogY2Vu
dGVyOwotCi0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICBjdXJzb3I6IGRlZmF1bHQ7Ci0KLSAg
ICBsaW5lLWhlaWdodDogMjFweDsKLSAgICBoZWlnaHQ6IDIwcHg7Ci0gICAgd2lkdGg6IDU4cHg7
Ci0KLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgZm9udC1mYW1pbHk6IEFyaWFsOwotICAg
IGZvbnQtc2l6ZTogMTZweDsKLSAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICBjb2xvcjogd2hp
dGU7Ci0KLSAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwotICAgIHdvcmQtc3BhY2luZzogbm9y
bWFsOwotICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwotICAgIHRleHQtaW5kZW50OiAwOwotICAg
IHRleHQtc2hhZG93OiBub25lOwotICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKLX0KLQogYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUsIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRpbWVsaW5lIHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRl
cjsKICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKQEAgLTE2OCwyMSArMTM4LDYgQEAgYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lIHsKICAgICBjb2xvcjogcmdiKDUwLCAxNDAsIDIyMyk7CiB9CiAKLWF1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24sIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24gewotICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtc2Vlay1iYWNrLWJ1dHRvbjsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCi1h
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uLCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIHsKLSAgICAtd2Via2l0
LWFwcGVhcmFuY2U6IG1lZGlhLXNlZWstZm9yd2FyZC1idXR0b247Ci0gICAgZGlzcGxheTogbm9u
ZTsKLX0KLQotYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24s
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIHsKLSAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWZ1bGxzY3JlZW4tYnV0dG9uOwotICAgIGRpc3BsYXk6
IG5vbmU7Ci19Ci0KIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIt
Y29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNv
bnRhaW5lciB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNv
bnRhaW5lcjsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ0NjZiMGMwNjk0NDllYzFiNjg2ODAyMTZmNDVjNWIyODY4ZDA5N2UK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtLmNwcApAQCAtMCwwICsxLDI5NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oIgorCisjaW5jbHVkZSAi
TWVkaWFDb250cm9sRWxlbWVudHMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUmVu
ZGVyVGhlbWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKKyAgICA6IE1lZGlh
Q29udHJvbHMobWVkaWFFbGVtZW50KQorICAgICwgbV9tZWRpYUVsZW1lbnQobWVkaWFFbGVtZW50
KQorICAgICwgbV9wbGF5QnV0dG9uKDApCisgICAgLCBtX2N1cnJlbnRUaW1lRGlzcGxheSgwKQor
ICAgICwgbV90aW1lbGluZSgwKQorICAgICwgbV90aW1lbGluZUNvbnRhaW5lcigwKQorICAgICwg
bV9wYW5lbE11dGVCdXR0b24oMCkKKyAgICAsIG1fdm9sdW1lU2xpZGVyKDApCisgICAgLCBtX3Zv
bHVtZVNsaWRlckNvbnRhaW5lcigwKQorICAgICwgbV9wYW5lbCgwKQorICAgICwgbV9vcGFxdWUo
dHJ1ZSkKK3sKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xzOjpj
cmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQoreworICAgIHJldHVybiBNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUobWVkaWFFbGVtZW50KTsKK30KKwor
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50
KQoreworICAgIGlmICghbWVkaWFFbGVtZW50LT5kb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAg
IHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+
IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0o
bWVkaWFFbGVtZW50KSk7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBw
YW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisK
KyAgICBFeGNlcHRpb25Db2RlIGVjOworCisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0
b25FbGVtZW50PiBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0
dG9uLmdldCgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8
TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiB0aW1lbGluZUNvbnRhaW5lciA9
IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVu
dCk7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9
IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCwgY29udHJv
bHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7Cisg
ICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMs
IHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8TWVk
aWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0g
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVu
dCk7CisgICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNw
bGF5LmdldCgpOworICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGlt
ZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250
YWluZXIuZ2V0KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJl
bGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0
dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxl
bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9
IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRl
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVu
dD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisKKyAgICBSZWZQdHI8TWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
RWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgY29udHJvbHMtPm1fdm9sdW1lU2xp
ZGVyID0gc2xpZGVyLmdldCgpOworICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hp
bGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJDb250YWluZXIgPSB2b2x1bWVT
bGlkZXJDb250YWluZXIuZ2V0KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRl
ckNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAgICBjb250
cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVj
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7Cit9
CisKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2hvdygpCit7CisgICAg
bV9wYW5lbC0+c2hvdygpOworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW06OmhpZGUoKQoreworICAgIG1fcGFuZWwtPmhpZGUoKTsKK30KKworc3RhdGljIGNvbnN0IFN0
cmluZyYgd2Via2l0VHJhbnNpdGlvblN0cmluZygpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIHMsICgiLXdlYmtpdC10cmFuc2l0aW9uIikpOworICAgIHJldHVybiBzOworfQor
CitzdGF0aWMgY29uc3QgU3RyaW5nJiBvcGFjaXR5U3RyaW5nKCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgcywgKCJvcGFjaXR5IikpOworICAgIHJldHVybiBzOworfQorCit2
b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VPcGFxdWUoKQoreworICAg
IGlmIChtX29wYXF1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIHRyYW5zaXRpb25WYWx1ZSwgKCkpOworICAgIGlmICh0cmFuc2l0aW9uVmFsdWUu
aXNOdWxsKCkpCisgICAgICAgIHRyYW5zaXRpb25WYWx1ZSA9IFN0cmluZzo6Zm9ybWF0KCJvcGFj
aXR5ICUuMWdzIiwgZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVtZSgpLT5tZWRpYUNvbnRyb2xzRmFk
ZUluRHVyYXRpb24oKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9wYWNpdHlW
YWx1ZSwgKCIxIikpOworCisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAgICAvLyBGSVhNRTogTWFr
ZSBtb3JlIGVmZmljaWVudCA8aHR0cDovL3dlYmtpdC5vcmcvYi81ODE1Nz4KKyAgICBtX3BhbmVs
LT5zdHlsZSgpLT5zZXRQcm9wZXJ0eSh3ZWJraXRUcmFuc2l0aW9uU3RyaW5nKCksIHRyYW5zaXRp
b25WYWx1ZSwgZWMpOworICAgIG1fcGFuZWwtPnN0eWxlKCktPnNldFByb3BlcnR5KG9wYWNpdHlT
dHJpbmcoKSwgb3BhY2l0eVZhbHVlLCBlYyk7CisgICAgbV9vcGFxdWUgPSB0cnVlOworfQorCit2
b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VUcmFuc3BhcmVudCgpCit7
CisgICAgaWYgKCFtX29wYXF1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIHRyYW5zaXRpb25WYWx1ZSwgKCkpOworICAgIGlmICh0cmFuc2l0aW9u
VmFsdWUuaXNOdWxsKCkpCisgICAgICAgIHRyYW5zaXRpb25WYWx1ZSA9IFN0cmluZzo6Zm9ybWF0
KCJvcGFjaXR5ICUuMWdzIiwgZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVtZSgpLT5tZWRpYUNvbnRy
b2xzRmFkZU91dER1cmF0aW9uKCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBv
cGFjaXR5VmFsdWUsICgiMCIpKTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgLy8gRklY
TUU6IE1ha2UgbW9yZSBlZmZpY2llbnQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTgxNTc+CisgICAg
bV9wYW5lbC0+c3R5bGUoKS0+c2V0UHJvcGVydHkod2Via2l0VHJhbnNpdGlvblN0cmluZygpLCB0
cmFuc2l0aW9uVmFsdWUsIGVjKTsKKyAgICBtX3BhbmVsLT5zdHlsZSgpLT5zZXRQcm9wZXJ0eShv
cGFjaXR5U3RyaW5nKCksIG9wYWNpdHlWYWx1ZSwgZWMpOworICAgIG1fb3BhcXVlID0gZmFsc2U7
Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQorewor
ICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBjaGFuZ2VkTmV0d29ya1N0YXRlKCk7CisKKyAgICBmbG9hdCBk
dXJhdGlvbiA9IG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpOworICAgIG1fdGltZWxpbmUtPnNl
dER1cmF0aW9uKGR1cmF0aW9uKTsKKyAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5zaG93KCk7Cisg
ICAgbV90aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCkp
OworICAgIHVwZGF0ZVRpbWVEaXNwbGF5KCk7CisKKyAgICBtX3BhbmVsTXV0ZUJ1dHRvbi0+c2hv
dygpOworCisgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQorICAgICAgICBtX3ZvbHVtZVNsaWRlci0+
c2V0Vm9sdW1lKG1fbWVkaWFFbGVtZW50LT52b2x1bWUoKSk7CisKKyAgICBtYWtlT3BhcXVlKCk7
Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFy
dGVkKCkKK3sKKyAgICBtX3BsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7CisgICAgbV90
aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCkpOworICAg
IHVwZGF0ZVRpbWVEaXNwbGF5KCk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bTo6cGxheWJhY2tQcm9ncmVzc2VkKCkKK3sKKyAgICBtX3RpbWVsaW5lLT5zZXRQb3Np
dGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7CisgICAgdXBkYXRlVGltZURpc3Bs
YXkoKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFj
a1N0b3BwZWQoKQoreworICAgIG1fcGxheUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKKyAg
ICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7
CisgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKKyAgICBtYWtlT3BhcXVlKCk7Cit9CisKK3ZvaWQg
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBkYXRlVGltZURpc3BsYXkoKQorewor
ICAgIGZsb2F0IG5vdyA9IG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpOworICAgIGZsb2F0
IGR1cmF0aW9uID0gbV9tZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCk7CisKKyAgICBQYWdlKiBwYWdl
ID0gZG9jdW1lbnQoKS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gQWxsb3cgdGhlIHRoZW1lIHRvIGZvcm1hdCB0aGUgdGltZS4KKyAgICBFeGNlcHRp
b25Db2RlIGVjOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zZXRJbm5lclRleHQocGFnZS0+
dGhlbWUoKS0+Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKG5vdywgZHVyYXRpb24pLCBl
Yyk7CisgICAgbV9jdXJyZW50VGltZURpc3BsYXktPnNldEN1cnJlbnRWYWx1ZShub3cpOworfQor
Cit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlcG9ydGVkRXJyb3IoKQor
eworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5oaWRlKCk7CisgICAg
bV9wYW5lbE11dGVCdXR0b24tPmhpZGUoKTsKKyAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+
aGlkZSgpOworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNoYW5n
ZWROZXR3b3JrU3RhdGUoKQoreworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06OmxvYWRlZE1ldGFkYXRhKCkKK3sKKyAgICByZXNldCgpOworfQorCit2b2lkIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNoYW5nZWRDbG9zZWRDYXB0aW9uc1Zpc2liaWxp
dHkoKQoreworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNoYW5n
ZWRNdXRlKCkKK3sKKyAgICBtX3BhbmVsTXV0ZUJ1dHRvbi0+Y2hhbmdlZE11dGUoKTsKK30KKwor
dm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjaGFuZ2VkVm9sdW1lKCkKK3sK
KyAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1fbWVkaWFFbGVtZW50LT52b2x1bWUoKSk7
Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6ZW50ZXJlZEZ1bGxz
Y3JlZW4oKQoreworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmV4
aXRlZEZ1bGxzY3JlZW4oKQoreworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06OnNob3dWb2x1bWVTbGlkZXIoKQoreworICAgIGlmICghbV9tZWRpYUVsZW1lbnQtPmhh
c0F1ZGlvKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVy
LT5zaG93KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzIikpOworICAg
IHJldHVybiBpZDsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Yzc5ZGFiY2ZhNTRkYTI0NzVhOWI1NjI1ZGQzMTg5N2YzZTZiM2Y1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bS5oCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bV9oCisjZGVmaW5lIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1faAorCisjaWYgRU5BQkxFKFZJREVPKQorCisj
aW5jbHVkZSAiTWVkaWFDb250cm9scy5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MSW5wdXRFbGVtZW50OworY2xhc3MgSFRNTE1l
ZGlhRWxlbWVudDsKK2NsYXNzIEV2ZW50OworY2xhc3MgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0
dG9uRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OworY2xhc3Mg
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJv
bFRpbWVsaW5lRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ7
CitjbGFzcyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDsKK2NsYXNzIE1lZGlh
Q29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29u
dGFpbmVyRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50OworY2xh
c3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xQYW5lbEVsZW1l
bnQ7CitjbGFzcyBNZWRpYVBsYXllcjsKKworY2xhc3MgUmVuZGVyQm94OworY2xhc3MgUmVuZGVy
TWVkaWE7CisKK2NsYXNzIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0gOiBwdWJsaWMg
TWVkaWFDb250cm9scyB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKworICAg
IC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50YXRpb24uCisgICAgdm9pZCBzaG93KCk7CisgICAg
dm9pZCBoaWRlKCk7CisgICAgdm9pZCBtYWtlT3BhcXVlKCk7CisgICAgdm9pZCBtYWtlVHJhbnNw
YXJlbnQoKTsKKworICAgIHZvaWQgcmVzZXQoKTsKKworICAgIHZvaWQgcGxheWJhY2tQcm9ncmVz
c2VkKCk7CisgICAgdm9pZCBwbGF5YmFja1N0YXJ0ZWQoKTsKKyAgICB2b2lkIHBsYXliYWNrU3Rv
cHBlZCgpOworCisgICAgdm9pZCBjaGFuZ2VkTXV0ZSgpOworICAgIHZvaWQgY2hhbmdlZFZvbHVt
ZSgpOworCisgICAgdm9pZCBlbnRlcmVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgZXhpdGVkRnVs
bHNjcmVlbigpOworCisgICAgdm9pZCByZXBvcnRlZEVycm9yKCk7CisgICAgdm9pZCBjaGFuZ2Vk
TmV0d29ya1N0YXRlKCk7CisgICAgdm9pZCBsb2FkZWRNZXRhZGF0YSgpOworICAgIHZvaWQgY2hh
bmdlZENsb3NlZENhcHRpb25zVmlzaWJpbGl0eSgpOworCisgICAgdm9pZCBzaG93Vm9sdW1lU2xp
ZGVyKCk7CisgICAgdm9pZCB1cGRhdGVUaW1lRGlzcGxheSgpOworCitwcml2YXRlOgorICAgIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oSFRNTE1lZGlhRWxlbWVudCopOworCisgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKKyAg
ICBIVE1MTWVkaWFFbGVtZW50KiBtX21lZGlhRWxlbWVudDsKKworICAgIE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50KiBtX3BsYXlCdXR0b247CisgICAgTWVkaWFDb250cm9sQ3VycmVudFRp
bWVEaXNwbGF5RWxlbWVudCogbV9jdXJyZW50VGltZURpc3BsYXk7CisgICAgTWVkaWFDb250cm9s
VGltZWxpbmVFbGVtZW50KiBtX3RpbWVsaW5lOworICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29u
dGFpbmVyRWxlbWVudCogbV90aW1lbGluZUNvbnRhaW5lcjsKKyAgICBNZWRpYUNvbnRyb2xQYW5l
bE11dGVCdXR0b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1dHRvbjsKKyAgICBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKKyAgICBNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJDb250YWluZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKKyAgICBN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQqIG1fcGFuZWw7CisKKyAgICBib29sIG1fb3BhcXVlOwor
fTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90408</attachid>
            <date>2011-04-20 14:08:23 -0700</date>
            <delta_ts>2011-04-20 15:58:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59018-20110420140822.patch</filename>
            <type>text/plain</type>
            <size>17749</size>
            <attacher name="Steve Lacey">sjl</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ0MTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMzNmMzJmM2E5MmIxNTli
ZWJkOTlkN2RkODVjYmI3MTE0ZTIxYmM5Li5iZTVlZDAwZWIyZWJiZTJmZTBjOWQxMDY0NGMyYTE4
OTE1NWNmNzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDQtMjAgIFN0ZXZl
IExhY2V5ICA8c2psQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIE1vdmUgQ2hyb21pdW0gbWVkaWEgY29udHJv
bHMgaW50byBvd24gcm9vdCBlbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkwMTgKKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgdGhlcmUg
aXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2UKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBjc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgIENsb25l
IG9mIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcCB3aXRoIGFsbCB1bnVz
ZWQgY29kZSByZW1vdmVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0uaDogQWRkZWQuCisKIDIwMTEtMDQtMjAgIERpcmsgU2NodWx6ZSAgPGty
aXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggMDEwYmUwMDU2NGI4OWY3NmYwNmEwMmUwNWI3ZDEwNjNiNGY4YzdhYi4u
ZWFjZjA3YzYzZTBhNjZmODFjMTgxN2E0MzgxYzJlN2YyMTAxY2UzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMzE4MCw4ICszMTgwLDggQEAKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xzLmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCcs
Ci0gICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwJywK
LSAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oJywKKyAg
ICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNw
cCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bS5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3Bw
JywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzCmluZGV4IDYwYzdkNjI5MzI4
ZDQwMTViM2Y1MWM5ZjVmOWZhMGU4Mjc5MjNkZWIuLjFhZWE4N2U4MGE5ZmJjYmRiMWYyNmJhZDc2
NTFjZGE4YTI1MWVhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRy
b2xzQ2hyb21pdW0uY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hy
b21pdW0uY3NzCkBAIC03Niw3ICs3Niw2IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtCiAgICAg
LXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgIC13ZWJraXQtYm94LWFsaWduOiBj
ZW50ZXI7CiAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyOwotICAgIC13ZWJraXQtYm94LWRp
cmVjdGlvbjogcmV2ZXJzZTsKICAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogCiAgICAgcG9zaXRp
b246IGFic29sdXRlOwpAQCAtMTIxLDM1ICsxMjAsNiBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bAogICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIH0KIAotYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS10aW1lLXJlbWFpbmluZy1kaXNwbGF5OwotICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5v
bmU7Ci0gICAgZGlzcGxheTogbm9uZTsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAwOwotICAgIC13
ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwot
Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICBjdXJzb3I6IGRlZmF1bHQ7Ci0KLSAgICBsaW5l
LWhlaWdodDogMjFweDsKLSAgICBoZWlnaHQ6IDIwcHg7Ci0gICAgd2lkdGg6IDU4cHg7Ci0KLSAg
ICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgZm9udC1mYW1pbHk6IEFyaWFsOwotICAgIGZvbnQt
c2l6ZTogMTZweDsKLSAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICBjb2xvcjogd2hpdGU7Ci0K
LSAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwotICAgIHdvcmQtc3BhY2luZzogbm9ybWFsOwot
ICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwotICAgIHRleHQtaW5kZW50OiAwOwotICAgIHRleHQt
c2hhZG93OiBub25lOwotICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKLX0KLQogYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXRpbWVsaW5lIHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXNsaWRlcjsKICAg
ICBkaXNwbGF5OiAtd2Via2l0LWJveDsKQEAgLTE2OCwyMSArMTM4LDYgQEAgYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lIHsKICAgICBjb2xvcjogcmdiKDUwLCAxNDAsIDIyMyk7CiB9CiAKLWF1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24sIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24gewotICAgIC13ZWJraXQtYXBwZWFyYW5jZTog
bWVkaWEtc2Vlay1iYWNrLWJ1dHRvbjsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCi1hdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIHsKLSAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLXNlZWstZm9yd2FyZC1idXR0b247Ci0gICAgZGlzcGxheTogbm9uZTsKLX0K
LQotYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24sIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tYnV0dG9uIHsKLSAgICAtd2Via2l0
LWFwcGVhcmFuY2U6IG1lZGlhLWZ1bGxzY3JlZW4tYnV0dG9uOwotICAgIGRpc3BsYXk6IG5vbmU7
Ci19Ci0KIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFp
bmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5l
ciB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5l
cjsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ0NjZiMGMwNjk0NDllYzFiNjg2ODAyMTZmNDVjNWIyODY4ZDA5N2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtLmNwcApAQCAtMCwwICsxLDI5NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVk
ZSAiTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oIgorCisjaW5jbHVkZSAiTWVkaWFD
b250cm9sRWxlbWVudHMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKKyAgICA6IE1lZGlhQ29udHJv
bHMobWVkaWFFbGVtZW50KQorICAgICwgbV9tZWRpYUVsZW1lbnQobWVkaWFFbGVtZW50KQorICAg
ICwgbV9wbGF5QnV0dG9uKDApCisgICAgLCBtX2N1cnJlbnRUaW1lRGlzcGxheSgwKQorICAgICwg
bV90aW1lbGluZSgwKQorICAgICwgbV90aW1lbGluZUNvbnRhaW5lcigwKQorICAgICwgbV9wYW5l
bE11dGVCdXR0b24oMCkKKyAgICAsIG1fdm9sdW1lU2xpZGVyKDApCisgICAgLCBtX3ZvbHVtZVNs
aWRlckNvbnRhaW5lcigwKQorICAgICwgbV9wYW5lbCgwKQorICAgICwgbV9vcGFxdWUodHJ1ZSkK
K3sKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xzOjpjcmVhdGUo
SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQoreworICAgIHJldHVybiBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUobWVkaWFFbGVtZW50KTsKK30KKworUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtOjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorewor
ICAgIGlmICghbWVkaWFFbGVtZW50LT5kb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgIHJldHVy
biAwOworCisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IGNvbnRy
b2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0obWVkaWFF
bGVtZW50KSk7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9
IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisKKyAgICBF
eGNlcHRpb25Db2RlIGVjOworCisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVt
ZW50PiBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSht
ZWRpYUVsZW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdl
dCgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8TWVkaWFD
b250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiB0aW1lbGluZUNvbnRhaW5lciA9IE1lZGlh
Q29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisK
KyAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlh
Q29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCwgY29udHJvbHMuZ2V0
KCkpOworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7CisgICAgdGlt
ZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUp
OworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8TWVkaWFDb250
cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFD
b250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7Cisg
ICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5Lmdl
dCgpOworICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3Bs
YXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIu
Z2V0KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0g
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCwg
Y29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVs
TXV0ZUJ1dHRvbi5nZXQoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9u
LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9s
dW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxl
bWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVu
dDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0g
c2xpZGVyLmdldCgpOworICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xp
ZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJDb250YWluZXIgPSB2b2x1bWVTbGlkZXJD
b250YWluZXIuZ2V0KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNvbnRh
aW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJldHVybiAw
OworCisgICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAgICBjb250cm9scy0+
YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7Cit9CisKK3Zv
aWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2hvdygpCit7CisgICAgbV9wYW5l
bC0+c2hvdygpOworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Omhp
ZGUoKQoreworICAgIG1fcGFuZWwtPmhpZGUoKTsKK30KKworc3RhdGljIGNvbnN0IFN0cmluZyYg
d2Via2l0VHJhbnNpdGlvblN0cmluZygpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIHMsICgiLXdlYmtpdC10cmFuc2l0aW9uIikpOworICAgIHJldHVybiBzOworfQorCitzdGF0
aWMgY29uc3QgU3RyaW5nJiBvcGFjaXR5U3RyaW5nKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgcywgKCJvcGFjaXR5IikpOworICAgIHJldHVybiBzOworfQorCit2b2lkIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VPcGFxdWUoKQoreworICAgIGlmICht
X29wYXF1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIHRyYW5zaXRpb25WYWx1ZSwgKCkpOworICAgIGlmICh0cmFuc2l0aW9uVmFsdWUuaXNOdWxs
KCkpCisgICAgICAgIHRyYW5zaXRpb25WYWx1ZSA9IFN0cmluZzo6Zm9ybWF0KCJvcGFjaXR5ICUu
MWdzIiwgZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVtZSgpLT5tZWRpYUNvbnRyb2xzRmFkZUluRHVy
YXRpb24oKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9wYWNpdHlWYWx1ZSwg
KCIxIikpOworCisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAgICAvLyBGSVhNRTogTWFrZSBtb3Jl
IGVmZmljaWVudCA8aHR0cDovL3dlYmtpdC5vcmcvYi81ODE1Nz4KKyAgICBtX3BhbmVsLT5zdHls
ZSgpLT5zZXRQcm9wZXJ0eSh3ZWJraXRUcmFuc2l0aW9uU3RyaW5nKCksIHRyYW5zaXRpb25WYWx1
ZSwgZWMpOworICAgIG1fcGFuZWwtPnN0eWxlKCktPnNldFByb3BlcnR5KG9wYWNpdHlTdHJpbmco
KSwgb3BhY2l0eVZhbHVlLCBlYyk7CisgICAgbV9vcGFxdWUgPSB0cnVlOworfQorCit2b2lkIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VUcmFuc3BhcmVudCgpCit7CisgICAg
aWYgKCFtX29wYXF1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIHRyYW5zaXRpb25WYWx1ZSwgKCkpOworICAgIGlmICh0cmFuc2l0aW9uVmFsdWUu
aXNOdWxsKCkpCisgICAgICAgIHRyYW5zaXRpb25WYWx1ZSA9IFN0cmluZzo6Zm9ybWF0KCJvcGFj
aXR5ICUuMWdzIiwgZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVtZSgpLT5tZWRpYUNvbnRyb2xzRmFk
ZU91dER1cmF0aW9uKCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvcGFjaXR5
VmFsdWUsICgiMCIpKTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgLy8gRklYTUU6IE1h
a2UgbW9yZSBlZmZpY2llbnQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTgxNTc+CisgICAgbV9wYW5l
bC0+c3R5bGUoKS0+c2V0UHJvcGVydHkod2Via2l0VHJhbnNpdGlvblN0cmluZygpLCB0cmFuc2l0
aW9uVmFsdWUsIGVjKTsKKyAgICBtX3BhbmVsLT5zdHlsZSgpLT5zZXRQcm9wZXJ0eShvcGFjaXR5
U3RyaW5nKCksIG9wYWNpdHlWYWx1ZSwgZWMpOworICAgIG1fb3BhcXVlID0gZmFsc2U7Cit9CisK
K3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQoreworICAgIFBh
Z2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBjaGFuZ2VkTmV0d29ya1N0YXRlKCk7CisKKyAgICBmbG9hdCBkdXJhdGlv
biA9IG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpOworICAgIG1fdGltZWxpbmUtPnNldER1cmF0
aW9uKGR1cmF0aW9uKTsKKyAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5zaG93KCk7CisgICAgbV90
aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCkpOworICAg
IHVwZGF0ZVRpbWVEaXNwbGF5KCk7CisKKyAgICBtX3BhbmVsTXV0ZUJ1dHRvbi0+c2hvdygpOwor
CisgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQorICAgICAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9s
dW1lKG1fbWVkaWFFbGVtZW50LT52b2x1bWUoKSk7CisKKyAgICBtYWtlT3BhcXVlKCk7Cit9CisK
K3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFydGVkKCkK
K3sKKyAgICBtX3BsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7CisgICAgbV90aW1lbGlu
ZS0+c2V0UG9zaXRpb24obV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCkpOworICAgIHVwZGF0
ZVRpbWVEaXNwbGF5KCk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bTo6cGxheWJhY2tQcm9ncmVzc2VkKCkKK3sKKyAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbiht
X21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7CisgICAgdXBkYXRlVGltZURpc3BsYXkoKTsK
K30KKwordm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0b3Bw
ZWQoKQoreworICAgIG1fcGxheUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKKyAgICBtX3Rp
bWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7CisgICAg
dXBkYXRlVGltZURpc3BsYXkoKTsKKyAgICBtYWtlT3BhcXVlKCk7Cit9CisKK3ZvaWQgTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBkYXRlVGltZURpc3BsYXkoKQoreworICAgIGZs
b2F0IG5vdyA9IG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpOworICAgIGZsb2F0IGR1cmF0
aW9uID0gbV9tZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCk7CisKKyAgICBQYWdlKiBwYWdlID0gZG9j
dW1lbnQoKS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gQWxsb3cgdGhlIHRoZW1lIHRvIGZvcm1hdCB0aGUgdGltZS4KKyAgICBFeGNlcHRpb25Db2Rl
IGVjOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zZXRJbm5lclRleHQocGFnZS0+dGhlbWUo
KS0+Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKG5vdywgZHVyYXRpb24pLCBlYyk7Cisg
ICAgbV9jdXJyZW50VGltZURpc3BsYXktPnNldEN1cnJlbnRWYWx1ZShub3cpOworfQorCit2b2lk
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlcG9ydGVkRXJyb3IoKQoreworICAg
IFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5oaWRlKCk7CisgICAgbV9wYW5l
bE11dGVCdXR0b24tPmhpZGUoKTsKKyAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgp
OworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNoYW5nZWROZXR3
b3JrU3RhdGUoKQoreworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OmxvYWRlZE1ldGFkYXRhKCkKK3sKKyAgICByZXNldCgpOworfQorCit2b2lkIE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW06OmNoYW5nZWRDbG9zZWRDYXB0aW9uc1Zpc2liaWxpdHkoKQor
eworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNoYW5nZWRNdXRl
KCkKK3sKKyAgICBtX3BhbmVsTXV0ZUJ1dHRvbi0+Y2hhbmdlZE11dGUoKTsKK30KKwordm9pZCBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjaGFuZ2VkVm9sdW1lKCkKK3sKKyAgICBt
X3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1fbWVkaWFFbGVtZW50LT52b2x1bWUoKSk7Cit9CisK
K3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6ZW50ZXJlZEZ1bGxzY3JlZW4o
KQoreworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmV4aXRlZEZ1
bGxzY3JlZW4oKQoreworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OnNob3dWb2x1bWVTbGlkZXIoKQoreworICAgIGlmICghbV9tZWRpYUVsZW1lbnQtPmhhc0F1ZGlv
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zaG93
KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzIikpOworICAgIHJldHVy
biBpZDsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45Yzc5ZGFiY2ZhNTRkYTI0NzVhOWI1NjI1ZGQzMTg5N2YzZTZiM2Y1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bS5oCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bV9oCisjZGVmaW5lIE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW1faAorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVk
ZSAiTWVkaWFDb250cm9scy5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBIVE1MSW5wdXRFbGVtZW50OworY2xhc3MgSFRNTE1lZGlhRWxl
bWVudDsKK2NsYXNzIEV2ZW50OworY2xhc3MgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxl
bWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OworY2xhc3MgTWVkaWFD
b250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFRpbWVs
aW5lRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ7CitjbGFz
cyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJv
bFRpbWVEaXNwbGF5RWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVy
RWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50OworY2xhc3MgTWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ7Citj
bGFzcyBNZWRpYVBsYXllcjsKKworY2xhc3MgUmVuZGVyQm94OworY2xhc3MgUmVuZGVyTWVkaWE7
CisKK2NsYXNzIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0gOiBwdWJsaWMgTWVkaWFD
b250cm9scyB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bT4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKworICAgIC8vIE1l
ZGlhQ29udHJvbHMgaW1wbGVtZW50YXRpb24uCisgICAgdm9pZCBzaG93KCk7CisgICAgdm9pZCBo
aWRlKCk7CisgICAgdm9pZCBtYWtlT3BhcXVlKCk7CisgICAgdm9pZCBtYWtlVHJhbnNwYXJlbnQo
KTsKKworICAgIHZvaWQgcmVzZXQoKTsKKworICAgIHZvaWQgcGxheWJhY2tQcm9ncmVzc2VkKCk7
CisgICAgdm9pZCBwbGF5YmFja1N0YXJ0ZWQoKTsKKyAgICB2b2lkIHBsYXliYWNrU3RvcHBlZCgp
OworCisgICAgdm9pZCBjaGFuZ2VkTXV0ZSgpOworICAgIHZvaWQgY2hhbmdlZFZvbHVtZSgpOwor
CisgICAgdm9pZCBlbnRlcmVkRnVsbHNjcmVlbigpOworICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVl
bigpOworCisgICAgdm9pZCByZXBvcnRlZEVycm9yKCk7CisgICAgdm9pZCBjaGFuZ2VkTmV0d29y
a1N0YXRlKCk7CisgICAgdm9pZCBsb2FkZWRNZXRhZGF0YSgpOworICAgIHZvaWQgY2hhbmdlZENs
b3NlZENhcHRpb25zVmlzaWJpbGl0eSgpOworCisgICAgdm9pZCBzaG93Vm9sdW1lU2xpZGVyKCk7
CisgICAgdm9pZCB1cGRhdGVUaW1lRGlzcGxheSgpOworCitwcml2YXRlOgorICAgIE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oSFRNTE1lZGlhRWxlbWVudCopOworCisgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKKyAgICBIVE1M
TWVkaWFFbGVtZW50KiBtX21lZGlhRWxlbWVudDsKKworICAgIE1lZGlhQ29udHJvbFBsYXlCdXR0
b25FbGVtZW50KiBtX3BsYXlCdXR0b247CisgICAgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudCogbV9jdXJyZW50VGltZURpc3BsYXk7CisgICAgTWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50KiBtX3RpbWVsaW5lOworICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVy
RWxlbWVudCogbV90aW1lbGluZUNvbnRhaW5lcjsKKyAgICBNZWRpYUNvbnRyb2xQYW5lbE11dGVC
dXR0b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1dHRvbjsKKyAgICBNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKKyAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKKyAgICBNZWRpYUNv
bnRyb2xQYW5lbEVsZW1lbnQqIG1fcGFuZWw7CisKKyAgICBib29sIG1fb3BhcXVlOworfTsKKwor
fQorCisjZW5kaWYKKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>