<?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>34340</bug_id>
          
          <creation_ts>2010-01-29 12:22:19 -0800</creation_ts>
          <short_desc>Sync up Chromium Mac render theme to Mac render theme</short_desc>
          <delta_ts>2010-02-02 00:52:29 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Avi Drissman">avi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185930</commentid>
    <comment_count>0</comment_count>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-01-29 12:22:19 -0800</bug_when>
    <thetext>No particular reason; just catching up on changes made elsewhere and not ported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185933</commentid>
    <comment_count>1</comment_count>
      <attachid>47727</attachid>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-01-29 12:23:51 -0800</bug_when>
    <thetext>Created attachment 47727
Patch to bring our rendering up to date</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186624</commentid>
    <comment_count>2</comment_count>
      <attachid>47727</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-01 15:55:24 -0800</bug_when>
    <thetext>Comment on attachment 47727
Patch to bring our rendering up to date

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186848</commentid>
    <comment_count>3</comment_count>
      <attachid>47727</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-02 00:52:24 -0800</bug_when>
    <thetext>Comment on attachment 47727
Patch to bring our rendering up to date

Clearing flags on attachment: 47727

Committed r54215: &lt;http://trac.webkit.org/changeset/54215&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186849</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-02 00:52:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47727</attachid>
            <date>2010-01-29 12:23:51 -0800</date>
            <delta_ts>2010-02-02 00:52:24 -0800</delta_ts>
            <desc>Patch to bring our rendering up to date</desc>
            <filename>render</filename>
            <type>text/plain</type>
            <size>26011</size>
            <attacher name="Avi Drissman">avi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDA3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMDEtMjkgIEF2aSBEcmlzc21hbiAgPGF2aUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3lu
YyB1cCBDaHJvbWl1bSBNYWMgcmVuZGVyIHRoZW1lIHRvIE1hYyByZW5kZXIgdGhlbWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MzQwCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9UaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRl
U3RhdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrYm94KToKKyAgICAgICAgKFdlYkNvcmU6
OnBhaW50Q2hlY2tib3gpOgorICAgICAgICAoV2ViQ29yZTo6cmFkaW8pOgorICAgICAgICAoV2Vi
Q29yZTo6cGFpbnRSYWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpsaXN0QnV0dG9uU2l6ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0dXBCdXR0b25DZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1
dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpUaGVtZUNocm9taXVtTWFjOjpjb250cm9sU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaGVt
ZUNocm9taXVtTWFjOjptaW5pbXVtQ29udHJvbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6VGhl
bWVDaHJvbWl1bU1hYzo6Y29udHJvbEJvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZUNo
cm9taXVtTWFjOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1NYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbToK
KyAgICAgICAgKC1bV2ViQ29yZVJlbmRlclRoZW1lTm90aWZpY2F0aW9uT2JzZXJ2ZXIgaW5pdFdp
dGhUaGVtZTpXZWJDb3JlOjpdKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnROU0NvbG9yVG9D
b2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpzeXN0ZW1D
b2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjppc0NvbnRy
b2xTdHlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6YWRq
dXN0UmVwYWludFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6Y29udmVydFRvUGFpbnRpbmdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
Q2hyb21pdW1NYWM6OnBhaW50Q2Fwc0xvY2tJbmRpY2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZW51TGlzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludE1lbnVMaXN0QnV0dG9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6YWRqdXN0TWVudUxpc3RC
dXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpw
YWludFNsaWRlclRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1N
YWM6OnBhaW50U2xpZGVyVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJv
bWl1bU1hYzo6cGFpbnRTZWFyY2hGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUNocm9taXVtTWFjOjpzZXRTZWFyY2hGaWVsZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYzo6YWRqdXN0U2VhcmNoRmllbGRTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0J1
dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjphZGp1c3RT
bGlkZXJUaHVtYlNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6cG9wdXBCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6c2xpZGVyVGh1bWJIb3Jpem9udGFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
Q2hyb21pdW1NYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDEwLTAxLTI5ICBEYXJpbiBG
aXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgT2theWVkIGJ5IE9saXZlciBI
dW50LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9UaGVtZUNocm9taXVtTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vVGhlbWVDaHJvbWl1bU1h
Yy5tbQkocmV2aXNpb24gNTQwNjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1RoZW1l
Q2hyb21pdW1NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCkBAIC0xMTUsMTkgKzExNSwxOSBAQCBz
dGF0aWMgdm9pZCBzZXRDb250cm9sU2l6ZShOU0NlbGwqIGNlbGwsCiBzdGF0aWMgdm9pZCB1cGRh
dGVTdGF0ZXMoTlNDZWxsKiBjZWxsLCBDb250cm9sU3RhdGVzIHN0YXRlcykKIHsKICAgICAvLyBI
b3ZlciBzdGF0ZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IEFxdWEuCi0gICAgCisKICAgICAvLyBQcmVz
c2VkIHN0YXRlCiAgICAgYm9vbCBvbGRQcmVzc2VkID0gW2NlbGwgaXNIaWdobGlnaHRlZF07CiAg
ICAgYm9vbCBwcmVzc2VkID0gc3RhdGVzICYgUHJlc3NlZFN0YXRlOwogICAgIGlmIChwcmVzc2Vk
ICE9IG9sZFByZXNzZWQpCiAgICAgICAgIFtjZWxsIHNldEhpZ2hsaWdodGVkOnByZXNzZWRdOwot
ICAgIAorCiAgICAgLy8gRW5hYmxlZCBzdGF0ZQogICAgIGJvb2wgb2xkRW5hYmxlZCA9IFtjZWxs
IGlzRW5hYmxlZF07CiAgICAgYm9vbCBlbmFibGVkID0gc3RhdGVzICYgRW5hYmxlZFN0YXRlOwog
ICAgIGlmIChlbmFibGVkICE9IG9sZEVuYWJsZWQpCiAgICAgICAgIFtjZWxsIHNldEVuYWJsZWQ6
ZW5hYmxlZF07Ci0gICAgCisKICAgICAvLyBGb2N1c2VkIHN0YXRlCiAgICAgYm9vbCBvbGRGb2N1
c2VkID0gW2NlbGwgc2hvd3NGaXJzdFJlc3BvbmRlcl07CiAgICAgYm9vbCBmb2N1c2VkID0gc3Rh
dGVzICYgRm9jdXNTdGF0ZTsKQEAgLTE0MSw3ICsxNDEsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVT
dGF0ZXMoTlNDZWxsKiBjZWxsLCBDCiAgICAgYm9vbCBvbGRDaGVja2VkID0gW2NlbGwgc3RhdGVd
ID09IE5TT25TdGF0ZTsKICAgICBpZiAob2xkSW5kZXRlcm1pbmF0ZSAhPSBpbmRldGVybWluYXRl
IHx8IGNoZWNrZWQgIT0gb2xkQ2hlY2tlZCkKICAgICAgICAgW2NlbGwgc2V0U3RhdGU6aW5kZXRl
cm1pbmF0ZSA/IE5TTWl4ZWRTdGF0ZSA6IChjaGVja2VkID8gTlNPblN0YXRlIDogTlNPZmZTdGF0
ZSldOwotICAgICAgICAKKwogICAgIC8vIFdpbmRvdyBJbmFjdGl2ZSBzdGF0ZQogICAgIE5TQ29u
dHJvbFRpbnQgb2xkVGludCA9IFtjZWxsIGNvbnRyb2xUaW50XTsKICAgICBib29sIHdpbmRvd0lu
YWN0aXZlID0gKHN0YXRlcyAmIFdpbmRvd0luYWN0aXZlU3RhdGUpOwpAQCAtMTk3LDkgKzE5Nyw5
IEBAIHN0YXRpYyBMZW5ndGhTaXplIGNoZWNrYm94U2l6ZShjb25zdCBGb24KICAgICByZXR1cm4g
c2l6ZUZyb21Gb250KGZvbnQsIHpvb21lZFNpemUsIHpvb21GYWN0b3IsIGNoZWNrYm94U2l6ZXMo
KSk7CiB9CiAKLXN0YXRpYyBOU0J1dHRvbkNlbGwqIGNoZWNrYm94KENvbnRyb2xTdGF0ZXMgc3Rh
dGVzLCBjb25zdCBJbnRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yKQorc3RhdGlj
IE5TQnV0dG9uQ2VsbCAqY2hlY2tib3goQ29udHJvbFN0YXRlcyBzdGF0ZXMsIGNvbnN0IEludFJl
Y3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IpCiB7Ci0gICAgc3RhdGljIE5TQnV0dG9u
Q2VsbCogY2hlY2tib3hDZWxsOworICAgIHN0YXRpYyBOU0J1dHRvbkNlbGwgKmNoZWNrYm94Q2Vs
bDsKICAgICBpZiAoIWNoZWNrYm94Q2VsbCkgewogICAgICAgICBjaGVja2JveENlbGwgPSBbW05T
QnV0dG9uQ2VsbCBhbGxvY10gaW5pdF07CiAgICAgICAgIFtjaGVja2JveENlbGwgc2V0QnV0dG9u
VHlwZTpOU1N3aXRjaEJ1dHRvbl07CkBAIC0yMDcsMTMgKzIwNywxMyBAQCBzdGF0aWMgTlNCdXR0
b25DZWxsKiBjaGVja2JveChDb250cm9sU3RhCiAgICAgICAgIFtjaGVja2JveENlbGwgc2V0QWxs
b3dzTWl4ZWRTdGF0ZTpZRVNdOwogICAgICAgICBbY2hlY2tib3hDZWxsIHNldEZvY3VzUmluZ1R5
cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwogICAgIH0KLSAgICAKKwogICAgIC8vIFNldCB0
aGUgY29udHJvbCBzaXplIGJhc2VkIG9mZiB0aGUgcmVjdGFuZ2xlIHdlJ3JlIHBhaW50aW5nIGlu
dG8uCiAgICAgc2V0Q29udHJvbFNpemUoY2hlY2tib3hDZWxsLCBjaGVja2JveFNpemVzKCksIHpv
b21lZFJlY3Quc2l6ZSgpLCB6b29tRmFjdG9yKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgdmFyaW91
cyBzdGF0ZXMgd2UgcmVzcG9uZCB0by4KICAgICB1cGRhdGVTdGF0ZXMoY2hlY2tib3hDZWxsLCBz
dGF0ZXMpOwotICAgIAorCiAgICAgcmV0dXJuIGNoZWNrYm94Q2VsbDsKIH0KIApAQCAtMjIzLDcg
KzIyMyw3IEBAIHN0YXRpYyB2b2lkIHBhaW50Q2hlY2tib3goQ29udHJvbFN0YXRlcyAKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIC8vIERldGVybWluZSB0aGUgd2lkdGgg
YW5kIGhlaWdodCBuZWVkZWQgZm9yIHRoZSBjb250cm9sIGFuZCBwcmVwYXJlIHRoZSBjZWxsIGZv
ciBwYWludGluZy4KLSAgICBOU0J1dHRvbkNlbGwqIGNoZWNrYm94Q2VsbCA9IGNoZWNrYm94KHN0
YXRlcywgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7CisgICAgTlNCdXR0b25DZWxsICpjaGVja2Jv
eENlbGwgPSBjaGVja2JveChzdGF0ZXMsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOwogCiAgICAg
Y29udGV4dC0+c2F2ZSgpOwogCkBAIC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIHZvaWQgcGFpbnRD
aGVja2JveChDb250cm9sU3RhdGVzIAogICAgIHpvb21lZFNpemUuc2V0V2lkdGgoem9vbWVkU2l6
ZS53aWR0aCgpICogem9vbUZhY3Rvcik7CiAgICAgem9vbWVkU2l6ZS5zZXRIZWlnaHQoem9vbWVk
U2l6ZS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpOwogICAgIEludFJlY3QgaW5mbGF0ZWRSZWN0ID0g
aW5mbGF0ZVJlY3Qoem9vbWVkUmVjdCwgem9vbWVkU2l6ZSwgY2hlY2tib3hNYXJnaW5zKGNvbnRy
b2xTaXplKSwgem9vbUZhY3Rvcik7Ci0gICAgCisKICAgICBpZiAoem9vbUZhY3RvciAhPSAxLjBm
KSB7CiAgICAgICAgIGluZmxhdGVkUmVjdC5zZXRXaWR0aChpbmZsYXRlZFJlY3Qud2lkdGgoKSAv
IHpvb21GYWN0b3IpOwogICAgICAgICBpbmZsYXRlZFJlY3Quc2V0SGVpZ2h0KGluZmxhdGVkUmVj
dC5oZWlnaHQoKSAvIHpvb21GYWN0b3IpOwpAQCAtMjQwLDEyICsyNDAsMTIgQEAgc3RhdGljIHZv
aWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVzIAogICAgICAgICBjb250ZXh0LT5zY2FsZShG
bG9hdFNpemUoem9vbUZhY3Rvciwgem9vbUZhY3RvcikpOwogICAgICAgICBjb250ZXh0LT50cmFu
c2xhdGUoLWluZmxhdGVkUmVjdC54KCksIC1pbmZsYXRlZFJlY3QueSgpKTsKICAgICB9Ci0gICAg
CisKICAgICBbY2hlY2tib3hDZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkg
aW5WaWV3OkZsaXBwZWRWaWV3KCldOwogICAgIFtjaGVja2JveENlbGwgc2V0Q29udHJvbFZpZXc6
bmlsXTsKIAogICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICAKKwogICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKIH0KIApAQCAtMjc4LDI5ICsyNzgsMjkgQEAgc3RhdGljIExlbmd0aFNp
emUgcmFkaW9TaXplKGNvbnN0IEZvbnQmIAogICAgIHJldHVybiBzaXplRnJvbUZvbnQoZm9udCwg
em9vbWVkU2l6ZSwgem9vbUZhY3RvciwgcmFkaW9TaXplcygpKTsKIH0KIAotc3RhdGljIE5TQnV0
dG9uQ2VsbCogcmFkaW8oQ29udHJvbFN0YXRlcyBzdGF0ZXMsIGNvbnN0IEludFJlY3QmIHpvb21l
ZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IpCitzdGF0aWMgTlNCdXR0b25DZWxsICpyYWRpbyhDb250
cm9sU3RhdGVzIHN0YXRlcywgY29uc3QgSW50UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZh
Y3RvcikKIHsKLSAgICBzdGF0aWMgTlNCdXR0b25DZWxsKiByYWRpb0NlbGw7CisgICAgc3RhdGlj
IE5TQnV0dG9uQ2VsbCAqcmFkaW9DZWxsOwogICAgIGlmICghcmFkaW9DZWxsKSB7CiAgICAgICAg
IHJhZGlvQ2VsbCA9IFtbTlNCdXR0b25DZWxsIGFsbG9jXSBpbml0XTsKICAgICAgICAgW3JhZGlv
Q2VsbCBzZXRCdXR0b25UeXBlOk5TUmFkaW9CdXR0b25dOwogICAgICAgICBbcmFkaW9DZWxsIHNl
dFRpdGxlOm5pbF07CiAgICAgICAgIFtyYWRpb0NlbGwgc2V0Rm9jdXNSaW5nVHlwZTpOU0ZvY3Vz
UmluZ1R5cGVFeHRlcmlvcl07CiAgICAgfQotICAgIAorCiAgICAgLy8gU2V0IHRoZSBjb250cm9s
IHNpemUgYmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBz
ZXRDb250cm9sU2l6ZShyYWRpb0NlbGwsIHJhZGlvU2l6ZXMoKSwgem9vbWVkUmVjdC5zaXplKCks
IHpvb21GYWN0b3IpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRlcyB3ZSByZXNw
b25kIHRvLgogICAgIHVwZGF0ZVN0YXRlcyhyYWRpb0NlbGwsIHN0YXRlcyk7Ci0gICAgCisKICAg
ICByZXR1cm4gcmFkaW9DZWxsOwogfQogCiBzdGF0aWMgdm9pZCBwYWludFJhZGlvKENvbnRyb2xT
dGF0ZXMgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHpv
b21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcpCiB7CiAg
ICAgLy8gRGV0ZXJtaW5lIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG5lZWRlZCBmb3IgdGhlIGNvbnRy
b2wgYW5kIHByZXBhcmUgdGhlIGNlbGwgZm9yIHBhaW50aW5nLgotICAgIE5TQnV0dG9uQ2VsbCog
cmFkaW9DZWxsID0gcmFkaW8oc3RhdGVzLCB6b29tZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICBO
U0J1dHRvbkNlbGwgKnJhZGlvQ2VsbCA9IHJhZGlvKHN0YXRlcywgem9vbWVkUmVjdCwgem9vbUZh
Y3Rvcik7CiAKICAgICBjb250ZXh0LT5zYXZlKCk7CiAKQEAgLTMwOSw3ICszMDksNyBAQCBzdGF0
aWMgdm9pZCBwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMgc3RhCiAgICAgem9vbWVkU2l6ZS5zZXRX
aWR0aCh6b29tZWRTaXplLndpZHRoKCkgKiB6b29tRmFjdG9yKTsKICAgICB6b29tZWRTaXplLnNl
dEhlaWdodCh6b29tZWRTaXplLmhlaWdodCgpICogem9vbUZhY3Rvcik7CiAgICAgSW50UmVjdCBp
bmZsYXRlZFJlY3QgPSBpbmZsYXRlUmVjdCh6b29tZWRSZWN0LCB6b29tZWRTaXplLCByYWRpb01h
cmdpbnMoY29udHJvbFNpemUpLCB6b29tRmFjdG9yKTsKLSAgICAKKwogICAgIGlmICh6b29tRmFj
dG9yICE9IDEuMGYpIHsKICAgICAgICAgaW5mbGF0ZWRSZWN0LnNldFdpZHRoKGluZmxhdGVkUmVj
dC53aWR0aCgpIC8gem9vbUZhY3Rvcik7CiAgICAgICAgIGluZmxhdGVkUmVjdC5zZXRIZWlnaHQo
aW5mbGF0ZWRSZWN0LmhlaWdodCgpIC8gem9vbUZhY3Rvcik7CkBAIC0zMTcsNyArMzE3LDcgQEAg
c3RhdGljIHZvaWQgcGFpbnRSYWRpbyhDb250cm9sU3RhdGVzIHN0YQogICAgICAgICBjb250ZXh0
LT5zY2FsZShGbG9hdFNpemUoem9vbUZhY3Rvciwgem9vbUZhY3RvcikpOwogICAgICAgICBjb250
ZXh0LT50cmFuc2xhdGUoLWluZmxhdGVkUmVjdC54KCksIC1pbmZsYXRlZFJlY3QueSgpKTsKICAg
ICB9Ci0gICAgCisKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbcmFkaW9D
ZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3
KCldOwogICAgIFtyYWRpb0NlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKQEAgLTMzNSw2ICszMzUs
MTQgQEAgc3RhdGljIGNvbnN0IEludFNpemUqIGJ1dHRvblNpemVzKCkKICAgICByZXR1cm4gc2l6
ZXM7CiB9CiAKKyNpZiBFTkFCTEUoREFUQUxJU1QpCitzdGF0aWMgY29uc3QgSW50U2l6ZSogbGlz
dEJ1dHRvblNpemVzKCkKK3sKKyAgICBzdGF0aWMgY29uc3QgSW50U2l6ZSBzaXplc1szXSA9IHsg
SW50U2l6ZSgyMSwgMjEpLCBJbnRTaXplKDE5LCAxOCksIEludFNpemUoMTcsIDE2KSB9OworICAg
IHJldHVybiBzaXplczsKK30KKyNlbmRpZgorCiBzdGF0aWMgY29uc3QgaW50KiBidXR0b25NYXJn
aW5zKE5TQ29udHJvbFNpemUgY29udHJvbFNpemUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGludCBt
YXJnaW5zWzNdWzRdID0KQEAgLTM0NiwxNyArMzU0LDI0IEBAIHN0YXRpYyBjb25zdCBpbnQqIGJ1
dHRvbk1hcmdpbnMoTlNDb250cm8KICAgICByZXR1cm4gbWFyZ2luc1tjb250cm9sU2l6ZV07CiB9
CiAKLXN0YXRpYyBOU0J1dHRvbkNlbGwqIGJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBDb250cm9s
U3RhdGVzIHN0YXRlcywgY29uc3QgSW50UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3Rv
cikKK3N0YXRpYyB2b2lkIHNldHVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKiZidXR0b25DZWxs
LCBDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzIHN0YXRlcywgY29uc3QgSW50UmVjdCYg
em9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvcikKIHsKLSAgICBzdGF0aWMgTlNCdXR0b25DZWxs
ICpidXR0b25DZWxsOwotICAgIHN0YXRpYyBib29sIGRlZmF1bHRCdXR0b247CiAgICAgaWYgKCFi
dXR0b25DZWxsKSB7CiAgICAgICAgIGJ1dHRvbkNlbGwgPSBbW05TQnV0dG9uQ2VsbCBhbGxvY10g
aW5pdF07CiAgICAgICAgIFtidXR0b25DZWxsIHNldFRpdGxlOm5pbF07CiAgICAgICAgIFtidXR0
b25DZWxsIHNldEJ1dHRvblR5cGU6TlNNb21lbnRhcnlQdXNoSW5CdXR0b25dOworICAgICAgICBp
ZiAoc3RhdGVzICYgRGVmYXVsdFN0YXRlKQorICAgICAgICAgICAgW2J1dHRvbkNlbGwgc2V0S2V5
RXF1aXZhbGVudDpAIlxyIl07CiAgICAgfQogCiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KKyAgICBjb25zdCBJ
bnRTaXplKiBzaXplcyA9IGJ1dHRvblNpemVzKCk7CisjaWYgRU5BQkxFKERBVEFMSVNUKQorICAg
IGlmIChwYXJ0ID09IExpc3RCdXR0b25QYXJ0KSB7CisgICAgICAgIFtidXR0b25DZWxsIHNldEJl
emVsU3R5bGU6TlNSb3VuZGVkRGlzY2xvc3VyZUJlemVsU3R5bGVdOworICAgICAgICBzaXplcyA9
IGxpc3RCdXR0b25TaXplcygpOworICAgIH0gZWxzZQorI2VuZGlmCiAgICAgaWYgKHBhcnQgPT0g
U3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRSZWN0LmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtO
U1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7CiAgICAgICAgIC8v
IFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAoW2J1dHRvbkNlbGwgYmV6ZWxTdHls
ZV0gIT0gTlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKQEAgLTM2NCwyOSArMzc5LDM0IEBA
IHN0YXRpYyBOU0J1dHRvbkNlbGwqIGJ1dHRvbihDb250cm9sUGFydCAKICAgICB9IGVsc2UgaWYg
KFtidXR0b25DZWxsIGJlemVsU3R5bGVdICE9IE5TUm91bmRlZEJlemVsU3R5bGUpCiAgICAgICAg
IFtidXR0b25DZWxsIHNldEJlemVsU3R5bGU6TlNSb3VuZGVkQmV6ZWxTdHlsZV07CiAKLSAgICBz
ZXRDb250cm9sU2l6ZShidXR0b25DZWxsLCBidXR0b25TaXplcygpLCB6b29tZWRSZWN0LnNpemUo
KSwgem9vbUZhY3Rvcik7Ci0KLSAgICBpZiAoZGVmYXVsdEJ1dHRvbiAhPSAoc3RhdGVzICYgRGVm
YXVsdFN0YXRlKSkgewotICAgICAgICBkZWZhdWx0QnV0dG9uID0gIWRlZmF1bHRCdXR0b247Ci0g
ICAgICAgIFtidXR0b25DZWxsIHNldEtleUVxdWl2YWxlbnQ6KGRlZmF1bHRCdXR0b24gPyBAIlxy
IiA6IEAiIildOwotICAgIH0KKyAgICBzZXRDb250cm9sU2l6ZShidXR0b25DZWxsLCBzaXplcywg
em9vbWVkUmVjdC5zaXplKCksIHpvb21GYWN0b3IpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJp
b3VzIHN0YXRlcyB3ZSByZXNwb25kIHRvLgogICAgIHVwZGF0ZVN0YXRlcyhidXR0b25DZWxsLCBz
dGF0ZXMpOwotICAgIAotICAgIHJldHVybiBidXR0b25DZWxsOworfQorCitzdGF0aWMgTlNCdXR0
b25DZWxsICpidXR0b24oQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyBzdGF0ZXMsIGNv
bnN0IEludFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IpCit7CisgICAgYm9vbCBp
c0RlZmF1bHQgPSBzdGF0ZXMgJiBEZWZhdWx0U3RhdGU7CisgICAgc3RhdGljIE5TQnV0dG9uQ2Vs
bCAqY2VsbHNbMl07CisgICAgc2V0dXBCdXR0b25DZWxsKGNlbGxzW2lzRGVmYXVsdF0sIHBhcnQs
IHN0YXRlcywgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7CisgICAgcmV0dXJuIGNlbGxzW2lzRGVm
YXVsdF07CiB9CiAKIHN0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQsIENv
bnRyb2xTdGF0ZXMgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJl
Y3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcp
CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgCisKICAgICAvLyBEZXRl
cm1pbmUgdGhlIHdpZHRoIGFuZCBoZWlnaHQgbmVlZGVkIGZvciB0aGUgY29udHJvbCBhbmQgcHJl
cGFyZSB0aGUgY2VsbCBmb3IgcGFpbnRpbmcuCiAgICAgTlNCdXR0b25DZWxsICpidXR0b25DZWxs
ID0gYnV0dG9uKHBhcnQsIHN0YXRlcywgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7CiAgICAgTG9j
YWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChjb250ZXh0KTsKIAogICAgIE5T
Q29udHJvbFNpemUgY29udHJvbFNpemUgPSBbYnV0dG9uQ2VsbCBjb250cm9sU2l6ZV07CisjaWYg
RU5BQkxFKERBVEFMSVNUKQorICAgIEludFNpemUgem9vbWVkU2l6ZSA9IChwYXJ0ID09IExpc3RC
dXR0b25QYXJ0ID8gbGlzdEJ1dHRvblNpemVzKCkgOiBidXR0b25TaXplcygpKVtjb250cm9sU2l6
ZV07CisjZWxzZQogICAgIEludFNpemUgem9vbWVkU2l6ZSA9IGJ1dHRvblNpemVzKClbY29udHJv
bFNpemVdOworI2VuZGlmCiAgICAgem9vbWVkU2l6ZS5zZXRXaWR0aCh6b29tZWRSZWN0LndpZHRo
KCkpOyAvLyBCdXR0b25zIGRvbid0IGV2ZXIgY29uc3RyYWluIHdpZHRoLCBzbyB0aGUgem9vbWVk
IHdpZHRoIGNhbiBqdXN0IGJlIGhvbm9yZWQuCiAgICAgem9vbWVkU2l6ZS5zZXRIZWlnaHQoem9v
bWVkU2l6ZS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpOwogICAgIEludFJlY3QgaW5mbGF0ZWRSZWN0
ID0gem9vbWVkUmVjdDsKQEAgLTQwNyw3ICs0MjcsNyBAQCBzdGF0aWMgdm9pZCBwYWludEJ1dHRv
bihDb250cm9sUGFydCBwYXJ0CiAgICAgICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUo
em9vbUZhY3Rvciwgem9vbUZhY3RvcikpOwogICAgICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRl
KC1pbmZsYXRlZFJlY3QueCgpLCAtaW5mbGF0ZWRSZWN0LnkoKSk7CiAgICAgICAgIH0KLSAgICB9
IAorICAgIH0KIAogICAgIFtidXR0b25DZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVk
UmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3KCldOwogICAgIFtidXR0b25DZWxsIHNldENvbnRyb2xW
aWV3Om5pbF07CkBAIC00NTMsNiArNDczLDEwIEBAIExlbmd0aFNpemUgVGhlbWVDaHJvbWl1bU1h
Yzo6Y29udHJvbFNpemUKICAgICAgICAgY2FzZSBQdXNoQnV0dG9uUGFydDoKICAgICAgICAgICAg
IC8vIEhlaWdodCBpcyByZXNldCB0byBhdXRvIHNvIHRoYXQgc3BlY2lmaWVkIGhlaWdodHMgY2Fu
IGJlIGlnbm9yZWQuCiAgICAgICAgICAgICByZXR1cm4gc2l6ZUZyb21Gb250KGZvbnQsIExlbmd0
aFNpemUoem9vbWVkU2l6ZS53aWR0aCgpLCBMZW5ndGgoKSksIHpvb21GYWN0b3IsIGJ1dHRvblNp
emVzKCkpOworI2lmIEVOQUJMRShEQVRBTElTVCkKKyAgICAgICAgY2FzZSBMaXN0QnV0dG9uUGFy
dDoKKyAgICAgICAgICAgIHJldHVybiBzaXplRnJvbUZvbnQoZm9udCwgTGVuZ3RoU2l6ZSh6b29t
ZWRTaXplLndpZHRoKCksIExlbmd0aCgpKSwgem9vbUZhY3RvciwgbGlzdEJ1dHRvblNpemVzKCkp
OworI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gem9vbWVkU2l6
ZTsKICAgICB9CkBAIC00NjQsNiArNDg4LDcgQEAgTGVuZ3RoU2l6ZSBUaGVtZUNocm9taXVtTWFj
OjptaW5pbXVtQ29udAogICAgICAgICBjYXNlIFNxdWFyZUJ1dHRvblBhcnQ6CiAgICAgICAgIGNh
c2UgRGVmYXVsdEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgQnV0dG9uUGFydDoKKyAgICAgICAg
Y2FzZSBMaXN0QnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBMZW5ndGhTaXplKExlbmd0
aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KDE1ICogem9vbUZhY3RvciksIEZp
eGVkKSk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmlt
dW1Db250cm9sU2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKQEAgLTQ3Niw2ICs1MDEsNyBA
QCBMZW5ndGhCb3ggVGhlbWVDaHJvbWl1bU1hYzo6Y29udHJvbEJvcmRlCiAgICAgICAgIGNhc2Ug
U3F1YXJlQnV0dG9uUGFydDoKICAgICAgICAgY2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKICAgICAg
ICAgY2FzZSBCdXR0b25QYXJ0OgorICAgICAgICBjYXNlIExpc3RCdXR0b25QYXJ0OgogICAgICAg
ICAgICAgcmV0dXJuIExlbmd0aEJveCgwLCB6b29tZWRCb3gucmlnaHQoKS52YWx1ZSgpLCAwLCB6
b29tZWRCb3gubGVmdCgpLnZhbHVlKCkpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
cmV0dXJuIFRoZW1lOjpjb250cm9sQm9yZGVyKHBhcnQsIGZvbnQsIHpvb21lZEJveCwgem9vbUZh
Y3Rvcik7CkBAIC01NTksNiArNTg1LDcgQEAgdm9pZCBUaGVtZUNocm9taXVtTWFjOjpwYWludChD
b250cm9sUGFydAogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNl
IEJ1dHRvblBhcnQ6CiAgICAgICAgIGNhc2UgU3F1YXJlQnV0dG9uUGFydDoKKyAgICAgICAgY2Fz
ZSBMaXN0QnV0dG9uUGFydDoKICAgICAgICAgICAgIHBhaW50QnV0dG9uKHBhcnQsIHN0YXRlcywg
Y29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvciwgc2Nyb2xsVmlldyk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTWFjLmgJKHJldmlzaW9uIDU0MDYxKQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEsNyArMTkx
LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIEhhc2hNYXA8aW50LCBSR0JBMzI+IG1fc3lzdGVt
Q29sb3JDYWNoZTsKIAogICAgIFJldGFpblB0cjxXZWJDb3JlUmVuZGVyVGhlbWVOb3RpZmljYXRp
b25PYnNlcnZlcj4gbV9ub3RpZmljYXRpb25PYnNlcnZlcjsKLSAgICBib29sIHBhaW50TWVkaWFC
dXR0b25JbnRlcm5hbChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiwgSW1hZ2UqKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQkocmV2aXNpb24gNTQwNjEpCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSw3IEBACiAjaW1wb3J0ICJSZW5kZXJTbGlkZXIuaCIKICNpbXBvcnQgIlJlbmRlclZpZXcu
aCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgotI2ltcG9ydCAiVXNlckFnZW50U3R5bGVTaGVl
dHMuaCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaCIKICNpbXBvcnQgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCiAjaW1wb3J0IDxDYXJi
b24vQ2FyYm9uLmg+CkBAIC03OCw3ICs3OCw3IEBAIHVzaW5nIHN0ZDo6bWluOwogCiAvLyBUaGUg
bWV0aG9kcyBpbiB0aGlzIGZpbGUgYXJlIHNwZWNpZmljIHRvIHRoZSBNYWMgT1MgWCBwbGF0Zm9y
bS4KIAotLy8gRklYTUU6IFRoZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBjb2RlIGluIHRoaXMgY2xh
c3Mgc2hvdWxkIGJlIGZhY3RvcmVkIG91dCBhbmQgbWVyZ2VkIHdpdGggUmVuZGVyVGhlbWVTYWZh
cmkuIAorLy8gRklYTUU6IFRoZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBjb2RlIGluIHRoaXMgY2xh
c3Mgc2hvdWxkIGJlIGZhY3RvcmVkIG91dCBhbmQgbWVyZ2VkIHdpdGggUmVuZGVyVGhlbWVTYWZh
cmkuCiAKIEBpbnRlcmZhY2UgV2ViQ29yZVJlbmRlclRoZW1lTm90aWZpY2F0aW9uT2JzZXJ2ZXIg
OiBOU09iamVjdAogewpAQCAtOTYsNyArOTYsNyBAQCB1c2luZyBzdGQ6Om1pbjsKIHsKICAgICBb
c3VwZXIgaW5pdF07CiAgICAgX3RoZW1lID0gdGhlbWU7Ci0gICAgCisKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIApAQCAtMzIyLDcgKzMyMiw3IEBAIHN0YXRpYyBSR0JBMzIgY29udmVydE5TQ29sb3JU
b0NvbG9yKE5TQ28KICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oc2NhbGVGYWN0b3IgKiBb
Y29sb3JJbkNvbG9yU3BhY2UgYmx1ZUNvbXBvbmVudF0pKTsKICAgICB9CiAKLSAgICAvLyBUaGlz
IGNvbnZlcnNpb24gYWJvdmUgY2FuIGZhaWwgaWYgdGhlIE5TQ29sb3IgaW4gcXVlc3Rpb24gaXMg
YW4gTlNQYXR0ZXJuQ29sb3IgCisgICAgLy8gVGhpcyBjb252ZXJzaW9uIGFib3ZlIGNhbiBmYWls
IGlmIHRoZSBOU0NvbG9yIGluIHF1ZXN0aW9uIGlzIGFuIE5TUGF0dGVybkNvbG9yCiAgICAgLy8g
KGFzIG1hbnkgc3lzdGVtIGNvbG9ycyBhcmUpLiBUaGVzZSBjb2xvcnMgYXJlIGFjdHVhbGx5IGEg
cmVwZWF0aW5nIHBhdHRlcm4KICAgICAvLyBub3QganVzdCBhIHNvbGlkIGNvbG9yLiBUbyB3b3Jr
IGFyb3VuZCB0aGlzIHdlIHNpbXBseSBkcmF3IGEgMXgxIGltYWdlIG9mCiAgICAgLy8gdGhlIGNv
bG9yIGFuZCB1c2UgdGhhdCBwaXhlbCdzIGNvbG9yLiBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gdXNl
IGFuIGF2ZXJhZ2Ugb2YKQEAgLTM5MCw3ICszOTAsNyBAQCBDb2xvciBSZW5kZXJUaGVtZUNocm9t
aXVtTWFjOjpzeXN0ZW1Db2xvCiB7CiAgICAgaWYgKG1fc3lzdGVtQ29sb3JDYWNoZS5jb250YWlu
cyhjc3NWYWx1ZUlkKSkKICAgICAgICAgcmV0dXJuIG1fc3lzdGVtQ29sb3JDYWNoZS5nZXQoY3Nz
VmFsdWVJZCk7Ci0gICAgCisKICAgICBDb2xvciBjb2xvcjsKICAgICBzd2l0Y2ggKGNzc1ZhbHVl
SWQpIHsKICAgICAgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWJvcmRlcjoKQEAgLTUwNCw3ICs1MDQs
NyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmlzQ29udHJvbFN0CiB7CiAgICAgaWYg
KHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkUGFydCB8fCBzdHlsZS0+YXBwZWFyYW5j
ZSgpID09IFRleHRBcmVhUGFydCB8fCBzdHlsZS0+YXBwZWFyYW5jZSgpID09IExpc3Rib3hQYXJ0
KQogICAgICAgICByZXR1cm4gc3R5bGUtPmJvcmRlcigpICE9IGJvcmRlcjsKLSAgICAgICAgCisK
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBob3JyaWJsZSwgYnV0IHRoZXJlIGlzIG5vdCBtdWNoIGVs
c2UgdGhhdCBjYW4gYmUgZG9uZS4gIE1lbnUgbGlzdHMgY2Fubm90IGRyYXcgcHJvcGVybHkgd2hl
bgogICAgIC8vIHNjYWxlZC4gIFRoZXkgY2FuJ3QgcmVhbGx5IGRyYXcgcHJvcGVybHkgd2hlbiB0
cmFuc2Zvcm1lZCBlaXRoZXIuICBXZSBjYW4ndCBkZXRlY3QgdGhlIHRyYW5zZm9ybSBjYXNlIGF0
IHN0eWxlCiAgICAgLy8gYWRqdXN0bWVudCB0aW1lIHNvIHRoYXQgd2lsbCBqdXN0IGhhdmUgdG8g
c3RheSBicm9rZW4uICBXZSBjYW4gaG93ZXZlciBkZXRlY3QgdGhhdCB3ZSdyZSB6b29taW5nLiAg
SWYgem9vbWluZwpAQCAtNTE4LDEzICs1MTgsMTQgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVt
TWFjOjppc0NvbnRyb2xTdAogdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjphZGp1c3RSZXBh
aW50UmVjdChjb25zdCBSZW5kZXJPYmplY3QqIG8sIEludFJlY3QmIHIpCiB7CiAgICAgQ29udHJv
bFBhcnQgcGFydCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKLSAgICAKKwogI2lmIFVTRShO
RVdfVEhFTUUpCiAgICAgc3dpdGNoIChwYXJ0KSB7CiAgICAgICAgIGNhc2UgQ2hlY2tib3hQYXJ0
OgogICAgICAgICBjYXNlIFJhZGlvUGFydDoKICAgICAgICAgY2FzZSBQdXNoQnV0dG9uUGFydDoK
ICAgICAgICAgY2FzZSBTcXVhcmVCdXR0b25QYXJ0OgorICAgICAgICBjYXNlIExpc3RCdXR0b25Q
YXJ0OgogICAgICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgogICAgICAgICBjYXNlIEJ1dHRv
blBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OmFkanVzdFJlcGFpbnRSZWN0
KG8sIHIpOwpAQCAtNTY1LDcgKzU2Niw3IEBAIEludFJlY3QgUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6aW5mbGF0ZVIKIEZsb2F0UmVjdCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpjb252ZXJ0VG9Q
YWludGluZ1JlY3QoY29uc3QgUmVuZGVyT2JqZWN0KiBpbnB1dFJlbmRlcmVyLCBjb25zdCBSZW5k
ZXJPYmplY3QqIHBhcnRSZW5kZXJlciwgY29uc3QgRmxvYXRSZWN0JiBpbnB1dFJlY3QsIGNvbnN0
IEludFJlY3QmIHIpIGNvbnN0CiB7CiAgICAgRmxvYXRSZWN0IHBhcnRSZWN0KGlucHV0UmVjdCk7
Ci0gICAgCisKICAgICAvLyBDb21wdXRlIGFuIG9mZnNldCBiZXR3ZWVuIHRoZSBwYXJ0IHJlbmRl
cmVyIGFuZCB0aGUgaW5wdXQgcmVuZGVyZXIKICAgICBGbG9hdFNpemUgb2Zmc2V0RnJvbUlucHV0
UmVuZGVyZXI7CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHBhcnRSZW5kZXJl
cjsKQEAgLTc2MCw3ICs3NjEsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50
Q2Fwc0xvCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KHBh
aW50SW5mby5jb250ZXh0KTsKICAgICB3a0RyYXdDYXBzTG9ja0luZGljYXRvcihwYWludEluZm8u
Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIHIpOwotICAgIAorCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCkBAIC04MjAsNyArODIxLDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpw
YWludE1lbnVMaQogICAgICAgICBpbmZsYXRlZFJlY3QgPSBpbmZsYXRlUmVjdChpbmZsYXRlZFJl
Y3QsIHNpemUsIHBvcHVwQnV0dG9uTWFyZ2lucygpLCB6b29tTGV2ZWwpOwogCiAgICAgcGFpbnRJ
bmZvLmNvbnRleHQtPnNhdmUoKTsKLSAgICAKKwogI2lmbmRlZiBCVUlMRElOR19PTl9USUdFUgog
ICAgIC8vIE9uIExlb3BhcmQsIHRoZSBjZWxsIHdpbGwgZHJhdyBvdXRzaWRlIG9mIHRoZSBnaXZl
biByZWN0LCBzbyB3ZSBoYXZlIHRvIGNsaXAgdG8gdGhlIHJlY3QKICAgICBwYWludEluZm8uY29u
dGV4dC0+Y2xpcChpbmZsYXRlZFJlY3QpOwpAQCAtOTgwLDEwICs5ODEsMTAgQEAgYm9vbCBSZW5k
ZXJUaGVtZUNocm9taXVtTWFjOjpwYWludE1lbnVMaQogCiAgICAgaWYgKGJvdW5kcy53aWR0aCgp
IDwgYXJyb3dXaWR0aCArIGFycm93UGFkZGluZ0xlZnQgKiBvLT5zdHlsZSgpLT5lZmZlY3RpdmVa
b29tKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIHBhaW50SW5mby5jb250
ZXh0LT5zYXZlKCk7CiAKLSAgICBwYWludEluZm8uY29udGV4dC0+c2V0RmlsbENvbG9yKG8tPnN0
eWxlKCktPmNvbG9yKCksIERldmljZUNvbG9yU3BhY2UpOworICAgIHBhaW50SW5mby5jb250ZXh0
LT5zZXRGaWxsQ29sb3Ioby0+c3R5bGUoKS0+Y29sb3IoKSwgby0+c3R5bGUoKS0+Y29sb3JTcGFj
ZSgpKTsKICAgICBwYWludEluZm8uY29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoTm9TdHJva2UpOwog
CiAgICAgRmxvYXRQb2ludCBhcnJvdzFbM107CkBAIC0xMDM2LDcgKzEwMzcsNyBAQCB2b2lkIFJl
bmRlclRoZW1lQ2hyb21pdW1NYWM6OmFkanVzdE1lbnVMCiAKICAgICBzdHlsZS0+cmVzZXRCb3Jk
ZXIoKTsKICAgICBzdHlsZS0+cmVzZXRQYWRkaW5nKCk7Ci0gICAgCisKICAgICAvLyBIZWlnaHQg
aXMgbG9ja2VkIHRvIGF1dG8uCiAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoQXV0bykpOwog
CkBAIC0xMTA2LDcgKzExMDcsNyBAQCB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmFkanVz
dE1lbnVMCiAKICAgICBjb25zdCBpbnQgbWluSGVpZ2h0ID0gMTU7CiAgICAgc3R5bGUtPnNldE1p
bkhlaWdodChMZW5ndGgobWluSGVpZ2h0LCBGaXhlZCkpOwotICAgIAorCiAgICAgc3R5bGUtPnNl
dExpbmVIZWlnaHQoUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lSGVpZ2h0KCkpOwogfQogCkBAIC0x
MTM2LDYgKzExMzcsOSBAQCBpbnQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6bWluaW11bU1lbnVM
CiAgICAgcmV0dXJuIHNpemVGb3JTeXN0ZW1Gb250KHN0eWxlLCBtZW51TGlzdFNpemVzKCkpLndp
ZHRoKCk7CiB9CiAKK2NvbnN0IGludCB0cmFja1dpZHRoID0gNTsKK2NvbnN0IGludCB0cmFja1Jh
ZGl1cyA9IDI7CisKIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6YWRqdXN0U2xpZGVyVHJh
Y2tTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50Kikg
Y29uc3QKIHsKICAgICBzdHlsZS0+c2V0Qm94U2hhZG93KDApOwpAQCAtMTE0Myw5ICsxMTQ3LDYg
QEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjphZGp1c3RTbGlkZQogCiBib29sIFJlbmRl
clRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvLCBjb25z
dCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByKQog
ewotICAgIHN0YXRpYyBjb25zdCBpbnQgdHJhY2tXaWR0aCA9IDU7Ci0gICAgc3RhdGljIGNvbnN0
IGludCB0cmFja1JhZGl1cyA9IDI7Ci0gIAogICAgIEludFJlY3QgYm91bmRzID0gcjsKICAgICBm
bG9hdCB6b29tTGV2ZWwgPSBvLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCk7CiAgICAgZmxvYXQg
em9vbWVkVHJhY2tXaWR0aCA9IHRyYWNrV2lkdGggKiB6b29tTGV2ZWw7CkBAIC0xMTc5LDcgKzEx
ODAsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2xpZGVyCiAgICAgICAg
IHJhZGl1cywgcmFkaXVzKTsKICAgICBDR0NvbnRleHREcmF3U2hhZGluZyhjb250ZXh0LCBtYWlu
U2hhZGluZy5nZXQoKSk7CiAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICAK
KwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTIwMSw3ICsxMjAyLDcgQEAgYm9vbCBSZW5k
ZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNsaWRlcgogICAgIExvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dCBsb2NhbENvbnRleHQocGFpbnRJbmZvLmNvbnRleHQpOwogCiAgICAgLy8gVXBkYXRl
IHRoZSB2YXJpb3VzIHN0YXRlcyB3ZSByZXNwb25kIHRvLgotICAgIHVwZGF0ZUFjdGl2ZVN0YXRl
KHNsaWRlclRodW1iQ2VsbCwgbyk7CisgICAgdXBkYXRlQWN0aXZlU3RhdGUoc2xpZGVyVGh1bWJD
ZWxsLCBvLT5wYXJlbnQoKSk7CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRlKHNsaWRlclRodW1iQ2Vs
bCwgby0+cGFyZW50KCkpOwogICAgIHVwZGF0ZUZvY3VzZWRTdGF0ZShzbGlkZXJUaHVtYkNlbGws
IG8tPnBhcmVudCgpKTsKIApAQCAtMTIzMyw3ICsxMjM0LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNo
cm9taXVtTWFjOjpwYWludFNsaWRlcgogCiAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsK
ICAgICBmbG9hdCB6b29tTGV2ZWwgPSBvLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCk7Ci0gICAg
CisKICAgICBGbG9hdFJlY3QgdW56b29tZWRSZWN0ID0gYm91bmRzOwogICAgIGlmICh6b29tTGV2
ZWwgIT0gMS4wZikgewogICAgICAgICB1bnpvb21lZFJlY3Quc2V0V2lkdGgodW56b29tZWRSZWN0
LndpZHRoKCkgLyB6b29tTGV2ZWwpOwpAQCAtMTI1MSwyMiArMTI1Miw2IEBAIGJvb2wgUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRTbGlkZXIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9i
amVjdCogbykgY29uc3QKLXsKLSAgICBzdGF0aWMgY29uc3QgaW50IHNsaWRlclRodW1iV2lkdGgg
PSAxNTsKLSAgICBzdGF0aWMgY29uc3QgaW50IHNsaWRlclRodW1iSGVpZ2h0ID0gMTU7Ci0KLSAg
ICBmbG9hdCB6b29tTGV2ZWwgPSBvLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCk7Ci0gICAgaWYg
KG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8
IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgewot
ICAgICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihzbGlk
ZXJUaHVtYldpZHRoICogem9vbUxldmVsKSwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+
c2V0SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHNsaWRlclRodW1iSGVpZ2h0ICogem9v
bUxldmVsKSwgRml4ZWQpKTsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoVklERU8pCi0gICAgUmVuZGVy
TWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShvKTsKLSNl
bmRpZgotfQotCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2VhcmNoRmllbGQo
UmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBJbnRSZWN0JiByKQogewogICAgIE5TU2VhcmNoRmllbGRDZWxsKiBzZWFyY2ggPSB0
aGlzLT5zZWFyY2goKTsKQEAgLTEyNzksNyArMTI2NCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJv
bWl1bU1hYzo6cGFpbnRTZWFyY2gKICAgICBmbG9hdCB6b29tTGV2ZWwgPSBvLT5zdHlsZSgpLT5l
ZmZlY3RpdmVab29tKCk7CiAKICAgICBJbnRSZWN0IHVuem9vbWVkUmVjdCA9IHI7Ci0gICAgCisK
ICAgICBpZiAoem9vbUxldmVsICE9IDEuMGYpIHsKICAgICAgICAgdW56b29tZWRSZWN0LnNldFdp
ZHRoKHVuem9vbWVkUmVjdC53aWR0aCgpIC8gem9vbUxldmVsKTsKICAgICAgICAgdW56b29tZWRS
ZWN0LnNldEhlaWdodCh1bnpvb21lZFJlY3QuaGVpZ2h0KCkgLyB6b29tTGV2ZWwpOwpAQCAtMTMy
OCw3ICsxMzEzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpzZXRTZWFyY2hGaQog
ICAgIC8vIElmIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBib3RoIHNwZWNpZmllZCwgdGhlbiB3
ZSBoYXZlIG5vdGhpbmcgdG8gZG8uCiAgICAgaWYgKCFzdHlsZS0+d2lkdGgoKS5pc0ludHJpbnNp
Y09yQXV0bygpICYmICFzdHlsZS0+aGVpZ2h0KCkuaXNBdXRvKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICAKKwogICAgIC8vIFVzZSB0aGUgZm9udCBzaXplIHRvIGRldGVybWluZSB0aGUgaW50cmlu
c2ljIHdpZHRoIG9mIHRoZSBjb250cm9sLgogICAgIHNldFNpemVGcm9tRm9udChzdHlsZSwgc2Vh
cmNoRmllbGRTaXplcygpKTsKIH0KQEAgLTEzNDUsMTkgKzEzMzAsMTkgQEAgdm9pZCBSZW5kZXJU
aGVtZUNocm9taXVtTWFjOjphZGp1c3RTZWFyYwogICAgIHN0eWxlLT5zZXRCb3JkZXJCb3R0b21X
aWR0aChib3JkZXJXaWR0aCk7CiAgICAgc3R5bGUtPnNldEJvcmRlckJvdHRvbVN0eWxlKElOU0VU
KTsKICAgICBzdHlsZS0+c2V0Qm9yZGVyVG9wV2lkdGgoYm9yZGVyV2lkdGgpOwotICAgIHN0eWxl
LT5zZXRCb3JkZXJUb3BTdHlsZShJTlNFVCk7ICAgIAotICAgIAorICAgIHN0eWxlLT5zZXRCb3Jk
ZXJUb3BTdHlsZShJTlNFVCk7CisKICAgICAvLyBPdmVycmlkZSBoZWlnaHQuCiAgICAgc3R5bGUt
PnNldEhlaWdodChMZW5ndGgoQXV0bykpOwogICAgIHNldFNlYXJjaEZpZWxkU2l6ZShzdHlsZSk7
Ci0gICAgCisKICAgICAvLyBPdmVycmlkZSBwYWRkaW5nIHNpemUgdG8gbWF0Y2ggQXBwS2l0IHRl
eHQgcG9zaXRpb25pbmcuCiAgICAgY29uc3QgaW50IHBhZGRpbmcgPSAxICogc3R5bGUtPmVmZmVj
dGl2ZVpvb20oKTsKICAgICBzdHlsZS0+c2V0UGFkZGluZ0xlZnQoTGVuZ3RoKHBhZGRpbmcsIEZp
eGVkKSk7CiAgICAgc3R5bGUtPnNldFBhZGRpbmdSaWdodChMZW5ndGgocGFkZGluZywgRml4ZWQp
KTsKICAgICBzdHlsZS0+c2V0UGFkZGluZ1RvcChMZW5ndGgocGFkZGluZywgRml4ZWQpKTsKICAg
ICBzdHlsZS0+c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgocGFkZGluZywgRml4ZWQpKTsKLSAgICAK
KwogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemUgPSBjb250cm9sU2l6ZUZvckZvbnQoc3R5
bGUpOwogICAgIHNldEZvbnRGcm9tQ29udHJvbFNpemUoc2VsZWN0b3IsIHN0eWxlLCBjb250cm9s
U2l6ZSk7CiAKQEAgLTE0OTUsNyArMTQ4MCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6cGFpbnRTZWFyY2gKIAogICAgIEZsb2F0UmVjdCBsb2NhbEJvdW5kcyA9IFtzZWFyY2ggc2Vh
cmNoQnV0dG9uUmVjdEZvckJvdW5kczpOU1JlY3QoaW5wdXQtPnJlbmRlckJveCgpLT5ib3JkZXJC
b3hSZWN0KCkpXTsKICAgICBsb2NhbEJvdW5kcyA9IGNvbnZlcnRUb1BhaW50aW5nUmVjdChpbnB1
dC0+cmVuZGVyZXIoKSwgbywgbG9jYWxCb3VuZHMsIHIpOwotICAgIAorCiAgICAgSW50UmVjdCB1
bnpvb21lZFJlY3QobG9jYWxCb3VuZHMpOwogICAgIGlmICh6b29tTGV2ZWwgIT0gMS4wZikgewog
ICAgICAgICB1bnpvb21lZFJlY3Quc2V0V2lkdGgodW56b29tZWRSZWN0LndpZHRoKCkgLyB6b29t
TGV2ZWwpOwpAQCAtMTUwNywxMiArMTQ5MiwyOCBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1N
YWM6OnBhaW50U2VhcmNoCiAKICAgICBbW3NlYXJjaCBzZWFyY2hCdXR0b25DZWxsXSBkcmF3V2l0
aEZyYW1lOnVuem9vbWVkUmVjdCBpblZpZXc6RmxpcHBlZFZpZXcoKV07CiAgICAgW1tzZWFyY2gg
c2VhcmNoQnV0dG9uQ2VsbF0gc2V0Q29udHJvbFZpZXc6bmlsXTsKLSAgICAKKwogICAgIHBhaW50
SW5mby5jb250ZXh0LT5yZXN0b3JlKCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2NvbnN0
IGludCBzbGlkZXJUaHVtYldpZHRoID0gMTU7Citjb25zdCBpbnQgc2xpZGVyVGh1bWJIZWlnaHQg
PSAxNTsKKwordm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjphZGp1c3RTbGlkZXJUaHVtYlNp
emUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAoreworICAgIGZsb2F0IHpvb21MZXZlbCA9IG8tPnN0
eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsKKyAgICBpZiAoby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgp
ID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQgfHwgby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgp
ID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KSB7CisgICAgICAgIG8tPnN0eWxlKCktPnNldFdp
ZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHNsaWRlclRodW1iV2lkdGggKiB6b29tTGV2ZWwp
LCBGaXhlZCkpOworICAgICAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHN0YXRpY19j
YXN0PGludD4oc2xpZGVyVGh1bWJIZWlnaHQgKiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgIH0K
KworI2lmIEVOQUJMRShWSURFTykKKyAgICBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmFk
anVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKG8pOworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoVklE
RU8pCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNob3VsZFJlbmRlck1lZGlhQ29udHJv
bFBhcnQoQ29udHJvbFBhcnQgcGFydCwgRWxlbWVudCogZSkKIHsKQEAgLTE1NTMsNyArMTU1NCw3
IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRpYUMKIHsKICAgICByZXR1
cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1l
ZGlhVGltZWxpbmVDb250YWluZXIsIG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKIH0KLSAgICAK
KwogU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmV4dHJhTWVkaWFDb250cm9sc1N0eWxl
U2hlZXQoKQogewogICAgIHJldHVybiBTdHJpbmcobWVkaWFDb250cm9sc0Nocm9taXVtVXNlckFn
ZW50U3R5bGVTaGVldCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNDaHJvbWl1bVVzZXJBZ2VudFN0eWxl
U2hlZXQpKTsKQEAgLTE1NjgsNyArMTU2OSw3IEBAIE5TUG9wVXBCdXR0b25DZWxsKiBSZW5kZXJU
aGVtZUNocm9taXVtTWEKICAgICAgICAgW21fcG9wdXBCdXR0b24uZ2V0KCkgc2V0VXNlc0l0ZW1G
cm9tTWVudTpOT107CiAgICAgICAgIFttX3BvcHVwQnV0dG9uLmdldCgpIHNldEZvY3VzUmluZ1R5
cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBt
X3BvcHVwQnV0dG9uLmdldCgpOwogfQogCkBAIC0xNjAyLDcgKzE2MDMsNyBAQCBOU1NsaWRlckNl
bGwqIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNsCiAgICAgICAgIFttX3NsaWRlclRodW1iSG9y
aXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOwogICAgICAg
ICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0ZvY3Vz
UmluZ1R5cGVFeHRlcmlvcl07CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIG1fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpOwogfQogCkBAIC0xNjE1LDcgKzE2MTYsNyBAQCBOU1NsaWRlckNl
bGwqIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNsCiAgICAgICAgIFttX3NsaWRlclRodW1iVmVy
dGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsKICAgICAgICAg
W21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdUeXBlOk5TRm9jdXNSaW5n
VHlwZUV4dGVyaW9yXTsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gbV9zbGlkZXJUaHVtYlZl
cnRpY2FsLmdldCgpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>