<?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>143026</bug_id>
          
          <creation_ts>2015-03-24 16:28:33 -0700</creation_ts>
          <short_desc>[Mac] Use .cpp file extension instead of .mm for SharedTimerCF and PowerObserverMac</short_desc>
          <delta_ts>2015-03-24 17:55:59 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aestes</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1079770</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-24 16:28:33 -0700</bug_when>
    <thetext>Use .cpp file extension instead of .mm for SharedTimerCF and PowerObserverMac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079772</commentid>
    <comment_count>1</comment_count>
      <attachid>249365</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-24 16:31:48 -0700</bug_when>
    <thetext>Created attachment 249365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079793</commentid>
    <comment_count>2</comment_count>
      <attachid>249365</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-24 17:55:54 -0700</bug_when>
    <thetext>Comment on attachment 249365
Patch

Clearing flags on attachment: 249365

Committed r181923: &lt;http://trac.webkit.org/changeset/181923&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079794</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-24 17:55:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249365</attachid>
            <date>2015-03-24 16:31:48 -0700</date>
            <delta_ts>2015-03-24 17:55:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143026-20150324163112.patch</filename>
            <type>text/plain</type>
            <size>25076</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxOTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTVlODFkZTMxMjhkOGRm
YzRiNjc2MGIyZTRjYTA1ZjBiODBlM2M5Zi4uNTkwODJkYjk2NWE5YWE3ODhmZDk2MTM3YWMyODdj
MzE1YjNkNTAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE1LTAzLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW01hY10gVXNlIC5jcHAgZmls
ZSBleHRlbnNpb24gaW5zdGVhZCBvZiAubW0gZm9yIFNoYXJlZFRpbWVyQ0YgYW5kIFBvd2VyT2Jz
ZXJ2ZXJNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0MzAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSAuY3BwIGZpbGUgZXh0ZW5zaW9uIGluc3RlYWQgb2YgLm1tIGZvciBTaGFyZWRUaW1lckNG
IGFuZAorICAgICAgICBQb3dlck9ic2VydmVyTWFjLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2NmL1NoYXJlZFRpbWVy
Q0YuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkVGlt
ZXJDRi5tbS4KKyAgICAgICAgKFdlYkNvcmU6OnRpbWVyRmlyZWQpOgorICAgICAgICBVc2UgV1RG
OjpBdXRvZHJhaW5lZFBvb2wgaW5zdGVhZCBvZiBAYXV0b3JlbGVhc2Vwb29sIHt9LgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Bvd2VyT2JzZXJ2ZXJNYWMuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bvd2VyT2JzZXJ2ZXJNYWMubW0uCisKKzIwMTUtMDMt
MjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBSZWdyZXNzaW9u
KHIxODE2NzEpOiBDYXVzZWQgVGltZXItcmVsYXRlZCBjcmFzaGVzIG9uIGlPUyAvIFdLMQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMDI1CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBiNTYxOTAyYzM0NWEyY2ExMDI0ZWZmMTM5YTI4YTZkZjhiYzE4MmEwLi4yNTA2ZTRmZWY3NjJl
MjQ0N2FlZTg1MWFjMDA5MTNiYWEzZmRiYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjM4LDEyICsxNjM4LDEyIEBACiAJ
CTQ1QkFDMkIwMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUJBQzJBRjEzNjBCQkFCMDA1REEyNTggLyog
SWNvblVSTC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQ1RkVBNUNGMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEw
MSAvKiBEZWNpbWFsLmNwcCAqLzsgfTsKIAkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERl
Y2ltYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1
RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYzNDU5MkMxQUMyMjcxMDAwRUNCNzFDIC8q
IFBvd2VyT2JzZXJ2ZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMu
Y3BwICovOyB9OworCQk0NjM0NTkyRTFBQzIyNzNDMDBFQ0I3MUMgLyogU2hhcmVkVGltZXJDRi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTky
RDFBQzIyNzNDMDBFQ0I3MUMgLyogU2hhcmVkVGltZXJDRi5jcHAgKi87IH07CiAJCTQ2ODlGMUFG
MTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxl
TWV0YWRhdGEuaCAqLzsgfTsKIAkJNDZDODNFRkQxQTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlm
aWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
QzgzRUZCMUE5QkJFMjkwMEE3OUE0MSAvKiBHZW9Ob3RpZmllci5jcHAgKi87IH07CiAJCTQ2Qzgz
RUZFMUE5QkJFMjkwMEE3OUE0MSAvKiBHZW9Ob3RpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDODNFRkMxQTlCQkUyOTAwQTc5QTQxIC8qIEdl
b05vdGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJNDZENzkxMTQxQUI4OUE5QjAwMUI2OTZCIC8qIFNoYXJlZFRpbWVyQ0YubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkQ3OTExMzFBQjg5QTlC
MDAxQjY5NkIgLyogU2hhcmVkVGltZXJDRi5tbSAqLzsgfTsKIAkJNDZEQkI2NTAxQUI4Qzk2RjAw
RDlBODEzIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2REJCNjRFMUFCOEM5NkYwMEQ5QTgxMyAvKiBQb3dlck9ic2Vy
dmVyTWFjLmggKi87IH07Ci0JCTQ2REJCNjUxMUFCOEM5NkYwMEQ5QTgxMyAvKiBQb3dlck9ic2Vy
dmVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDZEQkI2NEYxQUI4Qzk2RjAwRDlBODEzIC8qIFBvd2VyT2JzZXJ2ZXJNYWMubW0gKi87IH07CiAJ
CTQ2RkNCNjE4MUE3MDgyMEUwMEM1QTIxRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzdCMzc1MTVDMUE3
RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0OTA3MDdFNjEyMTlDMDQzMDBEOTBFNTEg
LyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJp
ZGdlLmNwcCAqLzsgfTsKIAkJNDkwNzA3RTcxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0
QnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAqLzsgfTsKQEAg
LTg3NzksMTIgKzg3NzksMTIgQEAKIAkJNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4IC8qIEljb25V
UkwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblVSTC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NUZFQTVDRDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1h
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWNpbWFsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8q
IERlY2ltYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjaW1hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyog
UG93ZXJPYnNlcnZlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQb3dlck9ic2VydmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYz
NDU5MkQxQUMyMjczQzAwRUNCNzFDIC8qIFNoYXJlZFRpbWVyQ0YuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkVGltZXJDRi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsZU1ldGFkYXRhLmg7IHBhdGgg
PSBwbGF0Zm9ybS9GaWxlTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDZDODNFRkIxQTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb05vdGlmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZDODNFRkMxQTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb05vdGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2RDc5MTEzMUFCODlBOUIwMDFCNjk2QiAvKiBTaGFyZWRU
aW1lckNGLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2hhcmVk
VGltZXJDRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZEQkI2NEUxQUI4Qzk2
RjAwRDlBODEzIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUG93ZXJPYnNlcnZlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0NkRCQjY0RjFBQjhDOTZGMDBEOUE4MTMgLyogUG93ZXJPYnNlcnZlck1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvd2VyT2JzZXJ2ZXJNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1MSAvKiBB
TkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJp
bmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUmVuZGVyaW5n
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUyMzMsNyArMTUyMzMsNyBA
QAogCQkJCTJENzZCQjgzMTk0NTZGODEwMENGRDI5QSAvKiBSdW5Mb29wT2JzZXJ2ZXIuY3BwICov
LAogCQkJCTJENzZCQjgwMTk0NTYzMjQwMENGRDI5QSAvKiBSdW5Mb29wT2JzZXJ2ZXIuaCAqLywK
IAkJCQk1MTJERDhFMjBEOTFFMkI0MDAwRjg5RUUgLyogU2hhcmVkQnVmZmVyQ0YuY3BwICovLAot
CQkJCTQ2RDc5MTEzMUFCODlBOUIwMDFCNjk2QiAvKiBTaGFyZWRUaW1lckNGLm1tICovLAorCQkJ
CTQ2MzQ1OTJEMUFDMjI3M0MwMEVDQjcxQyAvKiBTaGFyZWRUaW1lckNGLmNwcCAqLywKIAkJCQkx
QTk4OTU2QTBBQTc4RjgwMDA1RUY1RUYgLyogVVJMQ0YuY3BwICovLAogCQkJCTVDQkM4REFBMUFB
QTMwMjIwMEUxQzgwMyAvKiBNZWRpYUFjY2Vzc2liaWxpdHlTb2Z0TGluay5jcHAgKi8sCiAJCQkJ
NUNCQzhEQUIxQUFBMzAyMjAwRTFDODAzIC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmgg
Ki8sCkBAIC0xNjY5MCw4ICsxNjY5MCw4IEBACiAJCQkJQzVGNzY1QkExNEUxRUNGNDAwNkM4OTlC
IC8qIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSAqLywKIAkJCQlCQzk0RDEwNzBDMjc0Rjg4MDA2
QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sCiAJCQkJMjlFNEQ4RTAxNkIwOTU5ODAw
Qzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gKi8sCisJCQkJNDYzNDU5
MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovLAogCQkJCTQ2REJC
NjRFMUFCOEM5NkYwMEQ5QTgxMyAvKiBQb3dlck9ic2VydmVyTWFjLmggKi8sCi0JCQkJNDZEQkI2
NEYxQUI4Qzk2RjAwRDlBODEzIC8qIFBvd2VyT2JzZXJ2ZXJNYWMubW0gKi8sCiAJCQkJMDA4MUZF
RkUxNkIwQTJCNjAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeE1hYy5tbSAqLywKIAkJCQlCQ0FFMUZB
NTEyOTM5REI3MDA0Q0IwMjYgLyogU2Nyb2xsQW5pbWF0b3JNYWMuaCAqLywKIAkJCQlCQzUxMTU2
RDEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMubW0gKi8sCkBAIC0yNzUzMyw2
ICsyNzUzMyw3IEBACiAJCQkJQkNCMTZDMUYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291
cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0N0I0QkU5MEU3MTI0MTYwMDAzODg1NCAvKiBD
YWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyOTA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDYzNDU5MkMxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0QyMDBGMjFBQjhGODFGMDAyNUU4NTEg
LyogSlNXZWJLaXRNb3VzZUZvcmNlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkM2Mzg4
OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODAxNiw3ICsyODAxNyw2IEBACiAJCQkJOUJBQjZDNkQxMjU1
MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QjMw
NDNDQzBBRTAzNzNCMDBBODI2NDcgLyogRWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
QTM4QjRCMEQwRTU4MDgwMDY4NzJDMiAvKiBFZGl0b3JDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTQ2RDc5MTE0MUFCODlBOUIwMDFCNjk2QiAvKiBTaGFyZWRUaW1lckNGLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDc2MEMxN0ExQUE4RkM3RDAwOUVEN0I4IC8qIE1lZGlhUGxheWJhY2tU
YXJnZXRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGRUQxM0QzQTBDRUE5MzQ2MDBEODk0NjYg
LyogRWRpdG9ySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRUQ1MDFEQzYwQjI0OUYyOTAwQUUx
OEQ5IC8qIEVkaXRvck1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg3NDksNiArMjg3NDksNyBA
QAogCQkJCUNEQTk4RTA2MTYwMzlFMUYwMEZFQTNCMSAvKiBKU01lZGlhS2V5U2Vzc2lvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzNDMzlCNjBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpT
TWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDYzNDU5MkUxQUMyMjczQzAw
RUNCNzFDIC8qIFNoYXJlZFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M1MzQzRkMx
N0I3NEI2MzAwNDIzMkYwIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzMTk4NDgwMjFBMUQ4MTgxMDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q5REUxNzQxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTM4Myw3ICsyOTM4NCw2IEBACiAJCQkJQjI3
NTM1NjMwQjA1MzgxNDAwMkNFNjRGIC8qIFBhdGhDRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODhERDQ4OTBCNDYyOUIwMDBDMDI5OTAgLyogUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4RkE2RTVFMEU0Q0ZERUQwMEQ1Q0Y0OSAvKiBQYXR0ZXJuLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTQ2REJCNjUxMUFCOEM5NkYwMEQ5QTgxMyAvKiBQb3dlck9ic2VydmVy
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwQTM4RkUwRTUwQ0M4MjAwQTI1RUJDIC8qIFBh
dHRlcm5DRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2NDBCMDUzODE0MDAyQ0U2NEYg
LyogUERGRG9jdW1lbnRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDZFNDY4NDE3RDY2
MEY1MDBFQ0Y4QkIgLyogUERGRG9jdW1lbnRJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkVGltZXJDRi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRUaW1lckNGLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZmQ3MDdiZjczMmVjMTBmM2RlZjQ5M2M2OTRkODg5YjAwZTBhN2NjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkVGltZXJDRi5jcHAKQEAgLTAsMCAr
MSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlNoYXJlZFRpbWVyLmgiCisK
KyNpbmNsdWRlIDx3dGYvQXV0b2RyYWluZWRQb29sLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisj
aW1wb3J0ICJQb3dlck9ic2VydmVyTWFjLmgiCisjZWxpZiBQTEFURk9STShJT1MpCisjaW1wb3J0
ICJXZWJDb3JlVGhyZWFkLmgiCisjaW1wb3J0ICJXZWJDb3JlVGhyZWFkUnVuLmgiCisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgQ0ZSdW5Mb29wVGltZXJSZWYgc2hhcmVk
VGltZXI7CitzdGF0aWMgdm9pZCAoKnNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbikoKTsKK3N0YXRp
YyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKK3N0YXRpYyB2b2lk
IHJlc3RhcnRTaGFyZWRUaW1lcigpOworCitzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwga0NG
VGltZUludGVydmFsRGlzdGFudEZ1dHVyZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8Q0ZUaW1lSW50
ZXJ2YWw+OjptYXgoKTsKKworI2lmIFBMQVRGT1JNKElPUykKK3N0YXRpYyB2b2lkIGFwcGxpY2F0
aW9uRGlkQmVjb21lQWN0aXZlKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJp
bmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCit7CisgICAgV2ViVGhyZWFkUnVu
KF57CisgICAgICAgIHJlc3RhcnRTaGFyZWRUaW1lcigpOworICAgIH0pOworfQorI2VuZGlmCisK
K3N0YXRpYyB2b2lkIHNldHVwUG93ZXJPYnNlcnZlcigpCit7CisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIHN0YXRpYyBQb3dlck9ic2VydmVyKiBwb3dlck9ic2VydmVyOworICAgIGlmICghcG93ZXJP
YnNlcnZlcikKKyAgICAgICAgcG93ZXJPYnNlcnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8UG93ZXJP
YnNlcnZlcj4ocmVzdGFydFNoYXJlZFRpbWVyKS5yZWxlYXNlKCk7CisjZWxpZiBQTEFURk9STShJ
T1MpCisgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJlZEZvckFwcGxpY2F0aW9uTm90aWZpY2F0aW9u
ID0gZmFsc2U7CisgICAgaWYgKCFyZWdpc3RlcmVkRm9yQXBwbGljYXRpb25Ob3RpZmljYXRpb24p
IHsKKyAgICAgICAgcmVnaXN0ZXJlZEZvckFwcGxpY2F0aW9uTm90aWZpY2F0aW9uID0gdHJ1ZTsK
KyAgICAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYgbm90aWZpY2F0aW9uQ2VudGVyID0gQ0ZO
b3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpOworICAgICAgICBDRk5vdGlmaWNhdGlv
bkNlbnRlckFkZE9ic2VydmVyKG5vdGlmaWNhdGlvbkNlbnRlciwgbnVsbHB0ciwgYXBwbGljYXRp
b25EaWRCZWNvbWVBY3RpdmUsIENGU1RSKCJVSUFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90
aWZpY2F0aW9uIiksIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29h
bGVzY2UpOworICAgIH0KKyNlbmRpZgorfQorCit2b2lkIHNldFNoYXJlZFRpbWVyRmlyZWRGdW5j
dGlvbih2b2lkICgqZikoKSkKK3sKKyAgICBBU1NFUlQoIXNoYXJlZFRpbWVyRmlyZWRGdW5jdGlv
biB8fCBzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24gPT0gZik7CisKKyAgICBzaGFyZWRUaW1lckZp
cmVkRnVuY3Rpb24gPSBmOworfQorCitzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRp
bWVyUmVmLCB2b2lkKikKK3sKKyAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKKyAgICBzaGFyZWRU
aW1lckZpcmVkRnVuY3Rpb24oKTsKK30KKworc3RhdGljIHZvaWQgcmVzdGFydFNoYXJlZFRpbWVy
KCkKK3sKKyAgICBpZiAoIXNoYXJlZFRpbWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBzdG9w
U2hhcmVkVGltZXIoKTsKKyAgICB0aW1lckZpcmVkKDAsIDApOworfQorCit2b2lkIGludmFsaWRh
dGVTaGFyZWRUaW1lcigpCit7CisgICAgaWYgKCFzaGFyZWRUaW1lcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKHNoYXJlZFRpbWVyKTsKKyAgICBDRlJl
bGVhc2Uoc2hhcmVkVGltZXIpOworICAgIHNoYXJlZFRpbWVyID0gbnVsbHB0cjsKK30KKwordm9p
ZCBzZXRTaGFyZWRUaW1lckZpcmVJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpCit7CisgICAgQVNT
RVJUKHNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbik7CisKKyAgICBDRkFic29sdXRlVGltZSBmaXJl
RGF0ZSA9IENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgaW50ZXJ2YWw7CisgICAgaWYgKCFz
aGFyZWRUaW1lcikgeworICAgICAgICBzaGFyZWRUaW1lciA9IENGUnVuTG9vcFRpbWVyQ3JlYXRl
KG51bGxwdHIsIGZpcmVEYXRlLCBrQ0ZUaW1lSW50ZXJ2YWxEaXN0YW50RnV0dXJlLCAwLCAwLCB0
aW1lckZpcmVkLCBudWxscHRyKTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIENGUnVuTG9v
cEFkZFRpbWVyKFdlYlRocmVhZFJ1bkxvb3AoKSwgc2hhcmVkVGltZXIsIGtDRlJ1bkxvb3BDb21t
b25Nb2Rlcyk7CisjZWxzZQorICAgICAgICBDRlJ1bkxvb3BBZGRUaW1lcihDRlJ1bkxvb3BHZXRD
dXJyZW50KCksIHNoYXJlZFRpbWVyLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworI2VuZGlmCisK
KyAgICAgICAgc2V0dXBQb3dlck9ic2VydmVyKCk7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKHNoYXJlZFRpbWVyLCBmaXJlRGF0
ZSk7Cit9CisKK3ZvaWQgc3RvcFNoYXJlZFRpbWVyKCkKK3sKKyAgICBpZiAoIXNoYXJlZFRpbWVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShz
aGFyZWRUaW1lciwga0NGVGltZUludGVydmFsRGlzdGFudEZ1dHVyZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1No
YXJlZFRpbWVyQ0YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRUaW1lckNG
Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWQ5MDBkMzcwYTU0NTIxMjkyNGFk
YWMyNDIzYWY0YmUwZDRiNDI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZFRpbWVyQ0YubW0KKysr
IC9kZXYvbnVsbApAQCAtMSwxMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9y
dCAiU2hhcmVkVGltZXIuaCIKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNpbXBvcnQgIlBvd2VyT2Jz
ZXJ2ZXJNYWMuaCIKLSNlbGlmIFBMQVRGT1JNKElPUykKLSNpbXBvcnQgIldlYkNvcmVUaHJlYWQu
aCIKLSNpbXBvcnQgIldlYkNvcmVUaHJlYWRSdW4uaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLXN0YXRpYyBDRlJ1bkxvb3BUaW1lclJlZiBzaGFyZWRUaW1lcjsKLXN0YXRpYyB2
b2lkICgqc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKSgpOwotc3RhdGljIHZvaWQgdGltZXJGaXJl
ZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwotc3RhdGljIHZvaWQgcmVzdGFydFNoYXJlZFRp
bWVyKCk7Ci0KLXN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCBrQ0ZUaW1lSW50ZXJ2YWxEaXN0
YW50RnV0dXJlID0gc3RkOjpudW1lcmljX2xpbWl0czxDRlRpbWVJbnRlcnZhbD46Om1heCgpOwot
Ci0jaWYgUExBVEZPUk0oSU9TKQotc3RhdGljIHZvaWQgYXBwbGljYXRpb25EaWRCZWNvbWVBY3Rp
dmUoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqLCBDRlN0cmluZ1JlZiwgY29uc3Qgdm9p
ZCosIENGRGljdGlvbmFyeVJlZikKLXsKLSAgICBXZWJUaHJlYWRSdW4oXnsKLSAgICAgICAgcmVz
dGFydFNoYXJlZFRpbWVyKCk7Ci0gICAgfSk7Ci19Ci0jZW5kaWYKLQotc3RhdGljIHZvaWQgc2V0
dXBQb3dlck9ic2VydmVyKCkKLXsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIFBvd2Vy
T2JzZXJ2ZXIqIHBvd2VyT2JzZXJ2ZXI7Ci0gICAgaWYgKCFwb3dlck9ic2VydmVyKQotICAgICAg
ICBwb3dlck9ic2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxQb3dlck9ic2VydmVyPihyZXN0YXJ0
U2hhcmVkVGltZXIpLnJlbGVhc2UoKTsKLSNlbGlmIFBMQVRGT1JNKElPUykKLSAgICBzdGF0aWMg
Ym9vbCByZWdpc3RlcmVkRm9yQXBwbGljYXRpb25Ob3RpZmljYXRpb24gPSBmYWxzZTsKLSAgICBp
ZiAoIXJlZ2lzdGVyZWRGb3JBcHBsaWNhdGlvbk5vdGlmaWNhdGlvbikgewotICAgICAgICByZWdp
c3RlcmVkRm9yQXBwbGljYXRpb25Ob3RpZmljYXRpb24gPSB0cnVlOwotICAgICAgICBDRk5vdGlm
aWNhdGlvbkNlbnRlclJlZiBub3RpZmljYXRpb25DZW50ZXIgPSBDRk5vdGlmaWNhdGlvbkNlbnRl
ckdldExvY2FsQ2VudGVyKCk7Ci0gICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2
ZXIobm90aWZpY2F0aW9uQ2VudGVyLCAwLCBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSwgQ0ZT
VFIoIlVJQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24iKSwgTlVMTCwgQ0ZO
b3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7Ci0gICAgfQotI2VuZGlmCi19
Ci0KLXZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCpmKSgpKQotewotICAg
IEFTU0VSVCghc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uIHx8IHNoYXJlZFRpbWVyRmlyZWRGdW5j
dGlvbiA9PSBmKTsKLQotICAgIHNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbiA9IGY7Ci19Ci0KLXN0
YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKQotewotICAgIEBh
dXRvcmVsZWFzZXBvb2wgewotICAgICAgICBzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24oKTsKLSAg
ICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHJlc3RhcnRTaGFyZWRUaW1lcigpCi17Ci0gICAgaWYgKCFz
aGFyZWRUaW1lcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3RvcFNoYXJlZFRpbWVyKCk7Ci0g
ICAgdGltZXJGaXJlZCgwLCAwKTsKLX0KLQotdm9pZCBpbnZhbGlkYXRlU2hhcmVkVGltZXIoKQot
ewotICAgIGlmICghc2hhcmVkVGltZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIENGUnVuTG9v
cFRpbWVySW52YWxpZGF0ZShzaGFyZWRUaW1lcik7Ci0gICAgQ0ZSZWxlYXNlKHNoYXJlZFRpbWVy
KTsKLSAgICBzaGFyZWRUaW1lciA9IG51bGxwdHI7Ci19Ci0KLXZvaWQgc2V0U2hhcmVkVGltZXJG
aXJlSW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQotewotICAgIEFTU0VSVChzaGFyZWRUaW1lckZp
cmVkRnVuY3Rpb24pOwotCi0gICAgQ0ZBYnNvbHV0ZVRpbWUgZmlyZURhdGUgPSBDRkFic29sdXRl
VGltZUdldEN1cnJlbnQoKSArIGludGVydmFsOwotICAgIGlmICghc2hhcmVkVGltZXIpIHsKLSAg
ICAgICAgc2hhcmVkVGltZXIgPSBDRlJ1bkxvb3BUaW1lckNyZWF0ZShudWxscHRyLCBmaXJlRGF0
ZSwga0NGVGltZUludGVydmFsRGlzdGFudEZ1dHVyZSwgMCwgMCwgdGltZXJGaXJlZCwgbnVsbHB0
cik7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBDRlJ1bkxvb3BBZGRUaW1lcihXZWJUaHJl
YWRSdW5Mb29wKCksIHNoYXJlZFRpbWVyLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotI2Vsc2UK
LSAgICAgICAgQ0ZSdW5Mb29wQWRkVGltZXIoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBzaGFyZWRU
aW1lciwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLSNlbmRpZgotCi0gICAgICAgIHNldHVwUG93
ZXJPYnNlcnZlcigpOwotCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBDRlJ1bkxvb3BU
aW1lclNldE5leHRGaXJlRGF0ZShzaGFyZWRUaW1lciwgZmlyZURhdGUpOwotfQotCi12b2lkIHN0
b3BTaGFyZWRUaW1lcigpCi17Ci0gICAgaWYgKCFzaGFyZWRUaW1lcikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUoc2hhcmVkVGltZXIsIGtDRlRp
bWVJbnRlcnZhbERpc3RhbnRGdXR1cmUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG93ZXJPYnNlcnZlck1hYy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG93ZXJPYnNlcnZlck1hYy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzI5MDJmZGEwNjhhYjE2ZmYzZTVlNDA3MjNiOGYyM2IxNzUxZDc3NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3dlck9ic2VydmVyTWFj
LmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9S
TShNQUMpCisjaW1wb3J0ICJQb3dlck9ic2VydmVyTWFjLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUG93ZXJPYnNlcnZlcjo6UG93ZXJPYnNlcnZlcihjb25zdCBzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4mIHBvd2VyT25IYW5kZXIpCisgICAgOiBtX3Bvd2VyT25IYW5kZXIocG93ZXJPbkhhbmRl
cikKKyAgICAsIG1fcG93ZXJDb25uZWN0aW9uKDApCisgICAgLCBtX25vdGlmaWNhdGlvblBvcnQo
bnVsbHB0cikKKyAgICAsIG1fbm90aWZpZXJSZWZlcmVuY2UoMCkKKyAgICAsIG1fZGlzcGF0Y2hR
dWV1ZShkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuUG93ZXJPYnNlcnZl
ciIsIDApKQoreworICAgIG1fcG93ZXJDb25uZWN0aW9uID0gSU9SZWdpc3RlckZvclN5c3RlbVBv
d2VyKHRoaXMsICZtX25vdGlmaWNhdGlvblBvcnQsIFtdKHZvaWQqIGNvbnRleHQsIGlvX3NlcnZp
Y2VfdCBzZXJ2aWNlLCB1aW50MzJfdCBtZXNzYWdlVHlwZSwgdm9pZCogbWVzc2FnZUFyZ3VtZW50
KSB7CisgICAgICAgIHN0YXRpY19jYXN0PFBvd2VyT2JzZXJ2ZXIqPihjb250ZXh0KS0+ZGlkUmVj
ZWl2ZVN5c3RlbVBvd2VyTm90aWZpY2F0aW9uKHNlcnZpY2UsIG1lc3NhZ2VUeXBlLCBtZXNzYWdl
QXJndW1lbnQpOworICAgIH0sICZtX25vdGlmaWVyUmVmZXJlbmNlKTsKKyAgICBpZiAoIW1fcG93
ZXJDb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBJT05vdGlmaWNhdGlvblBvcnRT
ZXREaXNwYXRjaFF1ZXVlKG1fbm90aWZpY2F0aW9uUG9ydCwgbV9kaXNwYXRjaFF1ZXVlKTsKK30K
KworUG93ZXJPYnNlcnZlcjo6flBvd2VyT2JzZXJ2ZXIoKQoreworICAgIGlmICghbV9wb3dlckNv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNw
YXRjaFF1ZXVlKTsKKworICAgIElPRGVyZWdpc3RlckZvclN5c3RlbVBvd2VyKCZtX25vdGlmaWVy
UmVmZXJlbmNlKTsKKyAgICBJT1NlcnZpY2VDbG9zZShtX3Bvd2VyQ29ubmVjdGlvbik7CisgICAg
SU9Ob3RpZmljYXRpb25Qb3J0RGVzdHJveShtX25vdGlmaWNhdGlvblBvcnQpOworfQorCit2b2lk
IFBvd2VyT2JzZXJ2ZXI6OmRpZFJlY2VpdmVTeXN0ZW1Qb3dlck5vdGlmaWNhdGlvbihpb19zZXJ2
aWNlX3QsIHVpbnQzMl90IG1lc3NhZ2VUeXBlLCB2b2lkKiBtZXNzYWdlQXJndW1lbnQpCit7Cisg
ICAgSU9BbGxvd1Bvd2VyQ2hhbmdlKG1fcG93ZXJDb25uZWN0aW9uLCByZWludGVycHJldF9jYXN0
PGxvbmc+KG1lc3NhZ2VBcmd1bWVudCkpOworCisgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IHRo
ZSAid2FrZSBmcm9tIHNsZWVwIiBtZXNzYWdlLgorICAgIGlmIChtZXNzYWdlVHlwZSAhPSBrSU9N
ZXNzYWdlU3lzdGVtV2lsbFBvd2VyT24pCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIG5l
ZWQgdG8gcmVzdGFydCB0aGUgdGltZXIgb24gdGhlIG1haW4gdGhyZWFkLgorICAgIENGUnVuTG9v
cFBlcmZvcm1CbG9jayhDRlJ1bkxvb3BHZXRNYWluKCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcywg
XigpIHsKKyAgICAgICAgbV9wb3dlck9uSGFuZGVyKCk7CisgICAgfSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUG93ZXJPYnNlcnZlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9Qb3dlck9ic2VydmVyTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjkw
MmZkYTA2OGFiMTZmZjNlNWU0MDcyM2I4ZjIzYjE3NTFkNzc2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
b3dlck9ic2VydmVyTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBv
cnQgImNvbmZpZy5oIgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2ltcG9ydCAiUG93ZXJPYnNlcnZl
ck1hYy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBvd2VyT2JzZXJ2ZXI6OlBvd2VyT2Jz
ZXJ2ZXIoY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiBwb3dlck9uSGFuZGVyKQotICAgIDog
bV9wb3dlck9uSGFuZGVyKHBvd2VyT25IYW5kZXIpCi0gICAgLCBtX3Bvd2VyQ29ubmVjdGlvbigw
KQotICAgICwgbV9ub3RpZmljYXRpb25Qb3J0KG51bGxwdHIpCi0gICAgLCBtX25vdGlmaWVyUmVm
ZXJlbmNlKDApCi0gICAgLCBtX2Rpc3BhdGNoUXVldWUoZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJj
b20uYXBwbGUuV2ViS2l0LlBvd2VyT2JzZXJ2ZXIiLCAwKSkKLXsKLSAgICBtX3Bvd2VyQ29ubmVj
dGlvbiA9IElPUmVnaXN0ZXJGb3JTeXN0ZW1Qb3dlcih0aGlzLCAmbV9ub3RpZmljYXRpb25Qb3J0
LCBbXSh2b2lkKiBjb250ZXh0LCBpb19zZXJ2aWNlX3Qgc2VydmljZSwgdWludDMyX3QgbWVzc2Fn
ZVR5cGUsIHZvaWQqIG1lc3NhZ2VBcmd1bWVudCkgewotICAgICAgICBzdGF0aWNfY2FzdDxQb3dl
ck9ic2VydmVyKj4oY29udGV4dCktPmRpZFJlY2VpdmVTeXN0ZW1Qb3dlck5vdGlmaWNhdGlvbihz
ZXJ2aWNlLCBtZXNzYWdlVHlwZSwgbWVzc2FnZUFyZ3VtZW50KTsKLSAgICB9LCAmbV9ub3RpZmll
clJlZmVyZW5jZSk7Ci0gICAgaWYgKCFtX3Bvd2VyQ29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgSU9Ob3RpZmljYXRpb25Qb3J0U2V0RGlzcGF0Y2hRdWV1ZShtX25vdGlmaWNhdGlv
blBvcnQsIG1fZGlzcGF0Y2hRdWV1ZSk7Ci19Ci0KLVBvd2VyT2JzZXJ2ZXI6On5Qb3dlck9ic2Vy
dmVyKCkKLXsKLSAgICBpZiAoIW1fcG93ZXJDb25uZWN0aW9uKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBkaXNwYXRjaF9yZWxlYXNlKG1fZGlzcGF0Y2hRdWV1ZSk7Ci0KLSAgICBJT0RlcmVnaXN0
ZXJGb3JTeXN0ZW1Qb3dlcigmbV9ub3RpZmllclJlZmVyZW5jZSk7Ci0gICAgSU9TZXJ2aWNlQ2xv
c2UobV9wb3dlckNvbm5lY3Rpb24pOwotICAgIElPTm90aWZpY2F0aW9uUG9ydERlc3Ryb3kobV9u
b3RpZmljYXRpb25Qb3J0KTsKLX0KLQotdm9pZCBQb3dlck9ic2VydmVyOjpkaWRSZWNlaXZlU3lz
dGVtUG93ZXJOb3RpZmljYXRpb24oaW9fc2VydmljZV90LCB1aW50MzJfdCBtZXNzYWdlVHlwZSwg
dm9pZCogbWVzc2FnZUFyZ3VtZW50KQotewotICAgIElPQWxsb3dQb3dlckNoYW5nZShtX3Bvd2Vy
Q29ubmVjdGlvbiwgcmVpbnRlcnByZXRfY2FzdDxsb25nPihtZXNzYWdlQXJndW1lbnQpKTsKLQot
ICAgIC8vIFdlIG9ubHkgY2FyZSBhYm91dCB0aGUgIndha2UgZnJvbSBzbGVlcCIgbWVzc2FnZS4K
LSAgICBpZiAobWVzc2FnZVR5cGUgIT0ga0lPTWVzc2FnZVN5c3RlbVdpbGxQb3dlck9uKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICAvLyBXZSBuZWVkIHRvIHJlc3RhcnQgdGhlIHRpbWVyIG9uIHRo
ZSBtYWluIHRocmVhZC4KLSAgICBDRlJ1bkxvb3BQZXJmb3JtQmxvY2soQ0ZSdW5Mb29wR2V0TWFp
bigpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMsIF4oKSB7Ci0gICAgICAgIG1fcG93ZXJPbkhhbmRl
cigpOwotICAgIH0pOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>