<?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>157427</bug_id>
          
          <creation_ts>2016-05-06 13:15:08 -0700</creation_ts>
          <short_desc>Add JSC options reportBaselineCompileTimes and reportDFGCompileTimes.</short_desc>
          <delta_ts>2016-05-06 15:57:34 -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>JavaScriptCore</component>
          <version>WebKit Local 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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1190738</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-06 13:15:08 -0700</bug_when>
    <thetext>... because the baseline JIT needs some debugging love too sometimes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190748</commentid>
    <comment_count>1</comment_count>
      <attachid>278265</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-06 13:42:27 -0700</bug_when>
    <thetext>Created attachment 278265
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190749</commentid>
    <comment_count>2</comment_count>
      <attachid>278265</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-06 13:45:04 -0700</bug_when>
    <thetext>Comment on attachment 278265
proposed patch

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

&gt; Source/JavaScriptCore/runtime/Options.h:403
&gt; +    v(reportDFGCompileTimes, reportCompileTimes, SameOption) \
&gt; +    v(reportJITCompileTimes, reportBaselineCompileTimes, SameOption) \

Any opinion on these aliases?  My reason for adding them is:
1. reportCompileTimes only applies to DFG compile times.  Might as well add a reportDFGCompileTimes to match reportBaselineCompileTimes and reportFTLCompileTimes.
2. We use the term JIT and Baseline interchangeably in our code.  While JIT is shorter, Baseline is more descriptive.  I added reportJITCompileTimes as alias for ease of use.

If anyone disagrees, I can remove these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190751</commentid>
    <comment_count>3</comment_count>
      <attachid>278265</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-06 13:52:42 -0700</bug_when>
    <thetext>Comment on attachment 278265
proposed patch

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

r=me with comments

&gt;&gt; Source/JavaScriptCore/runtime/Options.h:403
&gt;&gt; +    v(reportJITCompileTimes, reportBaselineCompileTimes, SameOption) \
&gt; 
&gt; Any opinion on these aliases?  My reason for adding them is:
&gt; 1. reportCompileTimes only applies to DFG compile times.  Might as well add a reportDFGCompileTimes to match reportBaselineCompileTimes and reportFTLCompileTimes.
&gt; 2. We use the term JIT and Baseline interchangeably in our code.  While JIT is shorter, Baseline is more descriptive.  I added reportJITCompileTimes as alias for ease of use.
&gt; 
&gt; If anyone disagrees, I can remove these.

It kinda feels weird for reportCompileTimes to only report the DFG compile times rather than all the tiers compile times. How intensely are we following the rule of not removing existing options? I feel like it would not be unreasonable to change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190755</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-06 14:01:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 278265 [details]
&gt; proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=278265&amp;action=review
&gt; 
&gt; r=me with comments
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/runtime/Options.h:403
&gt; &gt;&gt; +    v(reportJITCompileTimes, reportBaselineCompileTimes, SameOption) \
&gt; &gt; 
&gt; &gt; Any opinion on these aliases?  My reason for adding them is:
&gt; &gt; 1. reportCompileTimes only applies to DFG compile times.  Might as well add a reportDFGCompileTimes to match reportBaselineCompileTimes and reportFTLCompileTimes.
&gt; &gt; 2. We use the term JIT and Baseline interchangeably in our code.  While JIT is shorter, Baseline is more descriptive.  I added reportJITCompileTimes as alias for ease of use.
&gt; &gt; 
&gt; &gt; If anyone disagrees, I can remove these.
&gt; 
&gt; It kinda feels weird for reportCompileTimes to only report the DFG compile
&gt; times rather than all the tiers compile times. How intensely are we
&gt; following the rule of not removing existing options? I feel like it would
&gt; not be unreasonable to change it.

Seems reasonable to change it.

reportCompileTimes -&gt; report compile times in all tiers.
reportDFGCompileTimes -&gt; report compile times in DFG+FTL.
reportFTLCompileTimes -&gt; report compile times in DFG.

I think that this is a reasonable change because someone who uses reportCompileTimes will still see DFG compile times.  They will also see baseline compile times, so they will get more than what they asked for, but I don&apos;t see how that would break anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190757</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-06 14:04:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 278265 [details]
&gt; &gt; proposed patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=278265&amp;action=review
&gt; &gt; 
&gt; &gt; r=me with comments
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/JavaScriptCore/runtime/Options.h:403
&gt; &gt; &gt;&gt; +    v(reportJITCompileTimes, reportBaselineCompileTimes, SameOption) \
&gt; &gt; &gt; 
&gt; &gt; &gt; Any opinion on these aliases?  My reason for adding them is:
&gt; &gt; &gt; 1. reportCompileTimes only applies to DFG compile times.  Might as well add a reportDFGCompileTimes to match reportBaselineCompileTimes and reportFTLCompileTimes.
&gt; &gt; &gt; 2. We use the term JIT and Baseline interchangeably in our code.  While JIT is shorter, Baseline is more descriptive.  I added reportJITCompileTimes as alias for ease of use.
&gt; &gt; &gt; 
&gt; &gt; &gt; If anyone disagrees, I can remove these.
&gt; &gt; 
&gt; &gt; It kinda feels weird for reportCompileTimes to only report the DFG compile
&gt; &gt; times rather than all the tiers compile times. How intensely are we
&gt; &gt; following the rule of not removing existing options? I feel like it would
&gt; &gt; not be unreasonable to change it.
&gt; 
&gt; Seems reasonable to change it.
&gt; 
&gt; reportCompileTimes -&gt; report compile times in all tiers.
&gt; reportDFGCompileTimes -&gt; report compile times in DFG+FTL.
&gt; reportFTLCompileTimes -&gt; report compile times in DFG.
&gt; 
&gt; I think that this is a reasonable change because someone who uses
&gt; reportCompileTimes will still see DFG compile times.  They will also see
&gt; baseline compile times, so they will get more than what they asked for, but
&gt; I don&apos;t see how that would break anything.

OK, will change it.

As for the reportJITCompileTimes alias for reportBaselineCompileTimes, I decided not to add that.  I plan to add a baselineWhitelist option shortly, and I think it&apos;s not worth it to have to keep adding &quot;jit&quot; to &quot;baseline&quot; aliases.  Will stick with just &quot;baseline&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190811</commentid>
    <comment_count>6</comment_count>
      <attachid>278285</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-06 15:48:48 -0700</bug_when>
    <thetext>Created attachment 278285
proposed patch: new and improved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190815</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-06 15:57:34 -0700</bug_when>
    <thetext>Thanks for the reviews.  Landed in r200531: &lt;http://trac.webkit.org/r200531&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278265</attachid>
            <date>2016-05-06 13:42:27 -0700</date>
            <delta_ts>2016-05-06 15:48:48 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>bug-157427.patch</filename>
            <type>text/plain</type>
            <size>3430</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNTE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE2LTA1LTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgT3B0aW9uczo6cmVwb3J0QmFzZWxpbmVDb21waWxlVGltZXMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc0MjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGppdC9KSVQuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBydW50aW1l
L09wdGlvbnMuaDoKKwogMjAxNi0wNS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBHZXQgcmlkIG9mIE5vbk5lZ1plcm9Eb3VibGUsIGl0
IGlzIGJyb2tlbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkocmV2aXNpb24gMjAw
NTE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00ODQsNiArNDg0LDEwIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygp
CiAKIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25F
ZmZvcnQgZWZmb3J0KQogeworICAgIGRvdWJsZSBiZWZvcmUgPSAwOworICAgIGlmIChVTkxJS0VM
WShPcHRpb25zOjpyZXBvcnRCYXNlbGluZUNvbXBpbGVUaW1lcygpKSkKKyAgICAgICAgYmVmb3Jl
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lTVMoKTsKKwogICAgIERGRzo6Q2FwYWJpbGl0
eUxldmVsIGxldmVsID0gbV9jb2RlQmxvY2stPmNhcGFiaWxpdHlMZXZlbCgpOwogICAgIHN3aXRj
aCAobGV2ZWwpIHsKICAgICBjYXNlIERGRzo6Q2Fubm90Q29tcGlsZToKQEAgLTc0MSw3ICs3NDUs
MTQgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgIG1fY29k
ZUJsb2NrLT5zaHJpbmtUb0ZpdChDb2RlQmxvY2s6OkxhdGVTaHJpbmspOwogICAgIG1fY29kZUJs
b2NrLT5zZXRKSVRDb2RlKAogICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShyZXN1
bHQsIHdpdGhBcml0eUNoZWNrLCBKSVRDb2RlOjpCYXNlbGluZUpJVCkpKTsKLSAgICAKKworICAg
IGlmIChVTkxJS0VMWShPcHRpb25zOjpyZXBvcnRCYXNlbGluZUNvbXBpbGVUaW1lcygpKSkgewor
ICAgICAgICBkb3VibGUgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygpOwor
ICAgICAgICBDU3RyaW5nIGNvZGVCbG9ja05hbWUgPSB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKTsK
KyAgICAgICAgCisgICAgICAgIGRhdGFMb2coIkpJVCBjb21waWxlZCAiLCBjb2RlQmxvY2tOYW1l
LCAiIGludG8gIiwgcGF0Y2hCdWZmZXIuc2l6ZSgpLCAiIGJ5dGVzIGluICIsIGFmdGVyIC0gYmVm
b3JlLCAiIG1zLlxuIik7CisgICAgfQorCiAjaWYgRU5BQkxFKEpJVF9WRVJCT1NFKQogICAgIGRh
dGFMb2dGKCJKSVQgZ2VuZXJhdGVkIGNvZGUgZm9yICVwIGF0IFslcCwgJXApLlxuIiwgbV9jb2Rl
QmxvY2ssIHJlc3VsdC5leGVjdXRhYmxlTWVtb3J5KCktPnN0YXJ0KCksIHJlc3VsdC5leGVjdXRh
YmxlTWVtb3J5KCktPmVuZCgpKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMjAwNTE1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNyArMTY4LDggQEAg
dHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdihib29sLCB2ZXJib3NlRlRM
T1NSRXhpdCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdmVyYm9zZUNh
bGxMaW5rLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB2ZXJib3NlQ29t
cGlsYXRpb25RdWV1ZSwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAotICAgIHYoYm9vbCwgcmVw
b3J0Q29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAiZHVtcHMgSlMgZnVuY3Rpb24gc2lnbmF0
dXJlIGFuZCB0aGUgdGltZSBpdCB0b29rIHRvIGNvbXBpbGUiKSBcCisgICAgdihib29sLCByZXBv
cnRCYXNlbGluZUNvbXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1bmN0aW9u
IHNpZ25hdHVyZSBhbmQgdGhlIHRpbWUgaXQgdG9vayB0byBCYXNlbGluZUpJVCBjb21waWxlIikg
XAorICAgIHYoYm9vbCwgcmVwb3J0Q29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAiZHVtcHMg
SlMgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCB0aGUgdGltZSBpdCB0b29rIHRvIERGRyBjb21waWxl
IikgXAogICAgIHYoYm9vbCwgcmVwb3J0RlRMQ29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAi
ZHVtcHMgSlMgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCB0aGUgdGltZSBpdCB0b29rIHRvIEZUTCBj
b21waWxlIikgXAogICAgIHYoYm9vbCwgcmVwb3J0VG90YWxDb21waWxlVGltZXMsIGZhbHNlLCBO
b3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHZlcmJvc2VDRkEsIGZhbHNlLCBOb3JtYWws
IG51bGxwdHIpIFwKQEAgLTM5OCw2ICszOTksOCBAQCBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsK
ICAgICB2KGVuYWJsZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6eiwgdXNlRXhlY3V0YWJsZUFsbG9j
YXRpb25GdXp6LCBTYW1lT3B0aW9uKSBcCiAgICAgdihlbmFibGVPU1JFeGl0RnV6eiwgdXNlT1NS
RXhpdEZ1enosIFNhbWVPcHRpb24pIFwKICAgICB2KGVuYWJsZURvbGxhclZNLCB1c2VEb2xsYXJW
TSwgU2FtZU9wdGlvbikgXAorICAgIHYocmVwb3J0REZHQ29tcGlsZVRpbWVzLCByZXBvcnRDb21w
aWxlVGltZXMsIFNhbWVPcHRpb24pIFwKKyAgICB2KHJlcG9ydEpJVENvbXBpbGVUaW1lcywgcmVw
b3J0QmFzZWxpbmVDb21waWxlVGltZXMsIFNhbWVPcHRpb24pIFwKIAogY2xhc3MgT3B0aW9ucyB7
CiBwdWJsaWM6Cg==
</data>
<flag name="review"
          id="302387"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278285</attachid>
            <date>2016-05-06 15:48:48 -0700</date>
            <delta_ts>2016-05-06 15:53:29 -0700</delta_ts>
            <desc>proposed patch: new and improved.</desc>
            <filename>bug-157427.patch</filename>
            <type>text/plain</type>
            <size>12571</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNTI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDE2LTA1LTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgSlNDIG9wdGlvbnMgcmVwb3J0QmFzZWxpbmVDb21waWxlVGltZXMgYW5kIHJlcG9ydERGR0Nv
bXBpbGVUaW1lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBjb21waWxlIHRpbWVzIHJlcG9ydGluZyBvcHRpb25zIGFyZSBub3c6CisgICAgICAg
ICAgICByZXBvcnRDb21waWxlVGltZXMgICAgICAgICAtPiByZXBvcnQgY29tcGlsZSB0aW1lcyBp
biBhbGwgdGllcnMuCisgICAgICAgICAgICByZXBvcnRCYXNlbGluZUNvbXBpbGVUaW1lcyAtPiBy
ZXBvcnQgY29tcGlsZSB0aW1lcyBpbiBiYXNlbGluZSBKSVQuCisgICAgICAgICAgICByZXBvcnRE
RkdDb21waWxlVGltZXMgICAgICAtPiByZXBvcnQgY29tcGlsZSB0aW1lcyBpbiBERkcgYW5kIEZU
TC4KKyAgICAgICAgICAgIHJlcG9ydEZUTENvbXBpbGVUaW1lcyAgICAgIC0+IHJlcG9ydCBjb21w
aWxlIHRpbWVzIGluIEZUTC4KKworICAgICAgICBBbHNvIHVwZGF0ZWQgcmVwb3J0VG90YWxDb21w
aWxlVGltZXMoKSB0byBjb2xsZWN0IHN0YXRzIHRoYXQgaW5jbHVkZSB0aGUgYmFzZWxpbmUKKyAg
ICAgICAgSklULiAgY29tcGlsZVRpbWVTdGF0cygpIGlzIG5vdyBtb3ZlZCBpbnRvIEpJVC5jcHAg
KGZyb20gREZHUGxhbi5jcHApLiAKKworICAgICAgICAqIGRmZy9ERkdQbGFuLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpQbGFuOjpyZXBvcnRDb21waWxlVGltZXMpOgorICAgICAgICAoSlNDOjpE
Rkc6OlBsYW46OmNvbXBpbGVJblRocmVhZCk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6Y29t
cGlsZUluVGhyZWFkSW1wbCk6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6Y2FuY2VsKToKKyAg
ICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlVGltZVN0YXRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVUaW1l
U3RhdHMpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpj
dGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlKToKKyAgICAgICAgKEpTQzo6SklUOjpzdGFja1BvaW50ZXJPZmZzZXRGb3IpOgorICAg
ICAgICAoSlNDOjpKSVQ6OnJlcG9ydENvbXBpbGVUaW1lcyk6CisgICAgICAgIChKU0M6OkpJVDo6
Y29tcHV0ZUNvbXBpbGVUaW1lcyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZVRpbWVTdGF0
cyk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAoSlNDOjpKSVQ6OnNob3VsZEVtaXRQ
cm9maWxpbmcpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChydW5KU0MpOgorICAgICAg
ICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE2LTA1LTA1ICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEdldCByaWQgb2YgTm9uTmVnWmVy
b0RvdWJsZSwgaXQgaXMgYnJva2VuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24g
MjAwNTE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJDb21w
bGV0aW9uLmgiCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCi0jaW5jbHVkZSAiREZH
UGxhbi5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKQEAgLTM5LDYgKzM4LDcgQEAKICNpbmNs
dWRlICJIZWFwU3RhdGlzdGljcy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIK
ICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpT
QXJyYXkuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgpAQCAtMjI2NCwxNCArMjI2NCwxNSBAQCBzdGF0aWMgaW50IE5FVkVSX0lOTElORSBydW5K
U0MoVk0qIHZtLCBDCiAgICAgICAgIHByaW50ZigiSlNDIE9TUiBFWElUIEZVWlo6IGVuY291bnRl
cmVkICV1IHN0YXRpYyBjaGVja3MuXG4iLCBudW1iZXJPZlN0YXRpY09TUkV4aXRGdXp6Q2hlY2tz
KCkpOwogICAgICAgICBwcmludGYoIkpTQyBPU1IgRVhJVCBGVVpaOiBlbmNvdW50ZXJlZCAldSBk
eW5hbWljIGNoZWNrcy5cbiIsIG51bWJlck9mT1NSRXhpdEZ1enpDaGVja3MoKSk7CiAgICAgfQot
I2VuZGlmCi0gICAgYXV0byBjb21waWxlVGltZVN0YXRzID0gREZHOjpQbGFuOjpjb21waWxlVGlt
ZVN0YXRzKCk7CisKKyAgICBhdXRvIGNvbXBpbGVUaW1lU3RhdHMgPSBKSVQ6OmNvbXBpbGVUaW1l
U3RhdHMoKTsKICAgICBWZWN0b3I8Q1N0cmluZz4gY29tcGlsZVRpbWVLZXlzOwogICAgIGZvciAo
YXV0byYgZW50cnkgOiBjb21waWxlVGltZVN0YXRzKQogICAgICAgICBjb21waWxlVGltZUtleXMu
YXBwZW5kKGVudHJ5LmtleSk7CiAgICAgc3RkOjpzb3J0KGNvbXBpbGVUaW1lS2V5cy5iZWdpbigp
LCBjb21waWxlVGltZUtleXMuZW5kKCkpOwogICAgIGZvciAoQ1N0cmluZyBrZXkgOiBjb21waWxl
VGltZUtleXMpCiAgICAgICAgIHByaW50ZigiJTQwczogJS4zbGYgbXNcbiIsIGtleS5kYXRhKCks
IGNvbXBpbGVUaW1lU3RhdHMuZ2V0KGtleSkpOworI2VuZGlmCiAKICAgICByZXR1cm4gcmVzdWx0
OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCShyZXZpc2lvbiAy
MDA1MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MCwxNSArOTAsMTkgQEAKICNpbmNsdWRlICJGVExTdGF0ZS5oIgogI2VuZGlm
CiAKK25hbWVzcGFjZSBKU0MgeworCitleHRlcm4gZG91YmxlIHRvdGFsREZHQ29tcGlsZVRpbWU7
CitleHRlcm4gZG91YmxlIHRvdGFsRlRMQ29tcGlsZVRpbWU7CitleHRlcm4gZG91YmxlIHRvdGFs
RlRMREZHQ29tcGlsZVRpbWU7CitleHRlcm4gZG91YmxlIHRvdGFsRlRMQjNDb21waWxlVGltZTsK
KworfQorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIG5hbWVzcGFjZSB7CiAK
LWRvdWJsZSB0b3RhbERGR0NvbXBpbGVUaW1lOwotZG91YmxlIHRvdGFsRlRMQ29tcGlsZVRpbWU7
Ci1kb3VibGUgdG90YWxGVExERkdDb21waWxlVGltZTsKLWRvdWJsZSB0b3RhbEZUTEIzQ29tcGls
ZVRpbWU7Ci0KIHZvaWQgZHVtcEFuZFZlcmlmeUdyYXBoKEdyYXBoJiBncmFwaCwgY29uc3QgY2hh
ciogdGV4dCwgYm9vbCBmb3JjZUR1bXAgPSBmYWxzZSkKIHsKICAgICBHcmFwaER1bXBNb2RlIG1v
ZGVGb3JGaW5hbFZhbGlkYXRlID0gRHVtcEdyYXBoOwpAQCAtMTYwLDYgKzE2NCw3IEBAIGJvb2wg
UGxhbjo6Y29tcHV0ZUNvbXBpbGVUaW1lcygpIGNvbnN0CiBib29sIFBsYW46OnJlcG9ydENvbXBp
bGVUaW1lcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1l
cygpCisgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydERGR0NvbXBpbGVUaW1lcygpCiAgICAgICAg
IHx8IChPcHRpb25zOjpyZXBvcnRGVExDb21waWxlVGltZXMoKSAmJiBpc0ZUTChtb2RlKSk7CiB9
CiAKQEAgLTE2OSw5ICsxNzQsOSBAQCB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25nTGl2
ZWRTdGF0CiAgICAgCiAgICAgZG91YmxlIGJlZm9yZSA9IDA7CiAgICAgQ1N0cmluZyBjb2RlQmxv
Y2tOYW1lOwotICAgIGlmIChjb21wdXRlQ29tcGlsZVRpbWVzKCkpCisgICAgaWYgKFVOTElLRUxZ
KGNvbXB1dGVDb21waWxlVGltZXMoKSkpCiAgICAgICAgIGJlZm9yZSA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZU1TKCk7Ci0gICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKQorICAgIGlm
IChVTkxJS0VMWShyZXBvcnRDb21waWxlVGltZXMoKSkpCiAgICAgICAgIGNvZGVCbG9ja05hbWUg
PSB0b0NTdHJpbmcoKmNvZGVCbG9jayk7CiAgICAgCiAgICAgQ29tcGlsYXRpb25TY29wZSBjb21w
aWxhdGlvblNjb3BlOwpAQCAtMTg1LDE5ICsxOTAsMTkgQEAgdm9pZCBQbGFuOjpjb21waWxlSW5U
aHJlYWQoTG9uZ0xpdmVkU3RhdAogICAgIFJFTEVBU0VfQVNTRVJUKChwYXRoID09IENhbmNlbFBh
dGgpID09IChzdGFnZSA9PSBDYW5jZWxsZWQpKTsKICAgICAKICAgICBkb3VibGUgYWZ0ZXIgPSAw
OwotICAgIGlmIChjb21wdXRlQ29tcGlsZVRpbWVzKCkpCisgICAgaWYgKFVOTElLRUxZKGNvbXB1
dGVDb21waWxlVGltZXMoKSkpIHsKICAgICAgICAgYWZ0ZXIgPSBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWVNUygpOwogICAgIAotICAgIGlmIChPcHRpb25zOjpyZXBvcnRUb3RhbENvbXBpbGVU
aW1lcygpKSB7Ci0gICAgICAgIGlmIChpc0ZUTChtb2RlKSkgewotICAgICAgICAgICAgdG90YWxG
VExDb21waWxlVGltZSArPSBhZnRlciAtIGJlZm9yZTsKLSAgICAgICAgICAgIHRvdGFsRlRMREZH
Q29tcGlsZVRpbWUgKz0gbV90aW1lQmVmb3JlRlRMIC0gYmVmb3JlOwotICAgICAgICAgICAgdG90
YWxGVExCM0NvbXBpbGVUaW1lICs9IGFmdGVyIC0gbV90aW1lQmVmb3JlRlRMOwotICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgIHRvdGFsREZHQ29tcGlsZVRpbWUgKz0gYWZ0ZXIgLSBiZWZvcmU7
CisgICAgICAgIGlmIChPcHRpb25zOjpyZXBvcnRUb3RhbENvbXBpbGVUaW1lcygpKSB7CisgICAg
ICAgICAgICBpZiAoaXNGVEwobW9kZSkpIHsKKyAgICAgICAgICAgICAgICB0b3RhbEZUTENvbXBp
bGVUaW1lICs9IGFmdGVyIC0gYmVmb3JlOworICAgICAgICAgICAgICAgIHRvdGFsRlRMREZHQ29t
cGlsZVRpbWUgKz0gbV90aW1lQmVmb3JlRlRMIC0gYmVmb3JlOworICAgICAgICAgICAgICAgIHRv
dGFsRlRMQjNDb21waWxlVGltZSArPSBhZnRlciAtIG1fdGltZUJlZm9yZUZUTDsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRvdGFsREZHQ29tcGlsZVRpbWUgKz0gYWZ0ZXIg
LSBiZWZvcmU7CisgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgaWYgKHJlcG9ydENvbXBpbGVU
aW1lcygpKSB7CisgICAgaWYgKFVOTElLRUxZKHJlcG9ydENvbXBpbGVUaW1lcygpKSkgewogICAg
ICAgICBjb25zdCBjaGFyKiBwYXRoTmFtZTsKICAgICAgICAgc3dpdGNoIChwYXRoKSB7CiAgICAg
ICAgIGNhc2UgRmFpbFBhdGg6CkBAIC00NTgsNyArNDYzLDcgQEAgUGxhbjo6Q29tcGlsYXRpb25Q
YXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAgICBGVEw6OlN0YXRlIHN0YXRlKGRmZyk7CiAg
ICAgICAgIEZUTDo6bG93ZXJERkdUb0IzKHN0YXRlKTsKICAgICAgICAgCi0gICAgICAgIGlmIChj
b21wdXRlQ29tcGlsZVRpbWVzKCkpCisgICAgICAgIGlmIChVTkxJS0VMWShjb21wdXRlQ29tcGls
ZVRpbWVzKCkpKQogICAgICAgICAgICAgbV90aW1lQmVmb3JlRlRMID0gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lTVMoKTsKICAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpiM0Fsd2F5
c0ZhaWxzQmVmb3JlQ29tcGlsZSgpKSB7CkBAIC02NTEsMTkgKzY1Niw2IEBAIHZvaWQgUGxhbjo6
Y2FuY2VsKCkKICAgICBzdGFnZSA9IENhbmNlbGxlZDsKIH0KIAotSGFzaE1hcDxDU3RyaW5nLCBk
b3VibGU+IFBsYW46OmNvbXBpbGVUaW1lU3RhdHMoKQotewotICAgIEhhc2hNYXA8Q1N0cmluZywg
ZG91YmxlPiByZXN1bHQ7Ci0gICAgaWYgKE9wdGlvbnM6OnJlcG9ydFRvdGFsQ29tcGlsZVRpbWVz
KCkpIHsKLSAgICAgICAgcmVzdWx0LmFkZCgiQ29tcGlsZSBUaW1lIiwgdG90YWxERkdDb21waWxl
VGltZSArIHRvdGFsRlRMQ29tcGlsZVRpbWUpOwotICAgICAgICByZXN1bHQuYWRkKCJERkcgQ29t
cGlsZSBUaW1lIiwgdG90YWxERkdDb21waWxlVGltZSk7Ci0gICAgICAgIHJlc3VsdC5hZGQoIkZU
TCBDb21waWxlIFRpbWUiLCB0b3RhbEZUTENvbXBpbGVUaW1lKTsKLSAgICAgICAgcmVzdWx0LmFk
ZCgiRlRMIChERkcpIENvbXBpbGUgVGltZSIsIHRvdGFsRlRMREZHQ29tcGlsZVRpbWUpOwotICAg
ICAgICByZXN1bHQuYWRkKCJGVEwgKEIzKSBDb21waWxlIFRpbWUiLCB0b3RhbEZUTEIzQ29tcGls
ZVRpbWUpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6REZHCiAKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUGxhbi5oCShyZXZpc2lvbiAyMDA1MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1BsYW4uaAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDggKzExMCw2IEBAIHN0
cnVjdCBQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGUKIAogICAgIFJlZlB0cjxEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrOwogCi0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIEhhc2hNYXA8Q1N0cmluZywgZG91YmxlPiBjb21waWxlVGltZVN0YXRzKCk7Ci0K
IHByaXZhdGU6CiAgICAgYm9vbCBjb21wdXRlQ29tcGlsZVRpbWVzKCkgY29uc3Q7CiAgICAgYm9v
bCByZXBvcnRDb21waWxlVGltZXMoKSBjb25zdDsKQEAgLTEyNSwxNCArMTIzLDYgQEAgcHJpdmF0
ZToKICAgICBkb3VibGUgbV90aW1lQmVmb3JlRlRMOwogfTsKIAotI2Vsc2UgLy8gRU5BQkxFKERG
R19KSVQpCi0KLWNsYXNzIFBsYW4gOiBwdWJsaWMgUmVmQ291bnRlZDxQbGFuPiB7Ci0gICAgLy8g
RHVtbXkgY2xhc3MgdG8gYWxsb3cgIUVOQUJMRShERkdfSklUKSB0byBidWlsZC4KLXB1YmxpYzoK
LSAgICBzdGF0aWMgSGFzaE1hcDxDU3RyaW5nLCBkb3VibGU+IGNvbXBpbGVUaW1lU3RhdHMoKSB7
IHJldHVybiBIYXNoTWFwPENTdHJpbmcsIGRvdWJsZT4oKTsgfQotfTsKLQogI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiAyMDA1MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDEyIEBAIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBKU0MgewogCitkb3VibGUgdG90YWxCYXNlbGlu
ZUNvbXBpbGVUaW1lOworZG91YmxlIHRvdGFsREZHQ29tcGlsZVRpbWU7Citkb3VibGUgdG90YWxG
VExDb21waWxlVGltZTsKK2RvdWJsZSB0b3RhbEZUTERGR0NvbXBpbGVUaW1lOworZG91YmxlIHRv
dGFsRlRMQjNDb21waWxlVGltZTsKKwogdm9pZCBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3Mo
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0ciBuZXdDYWxsZWVGdW5j
dGlvbikKIHsKICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaENhbGwoCkBAIC00ODQsNiArNDkw
LDEwIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAKIENvbXBpbGF0aW9u
UmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQog
eworICAgIGRvdWJsZSBiZWZvcmUgPSAwOworICAgIGlmIChVTkxJS0VMWShjb21wdXRlQ29tcGls
ZVRpbWVzKCkpKQorICAgICAgICBiZWZvcmUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVN
UygpOworCiAgICAgREZHOjpDYXBhYmlsaXR5TGV2ZWwgbGV2ZWwgPSBtX2NvZGVCbG9jay0+Y2Fw
YWJpbGl0eUxldmVsKCk7CiAgICAgc3dpdGNoIChsZXZlbCkgewogICAgIGNhc2UgREZHOjpDYW5u
b3RDb21waWxlOgpAQCAtNzQxLDcgKzc1MSwyMCBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnBy
aXZhdGVDb21waWxlKEpJCiAgICAgbV9jb2RlQmxvY2stPnNocmlua1RvRml0KENvZGVCbG9jazo6
TGF0ZVNocmluayk7CiAgICAgbV9jb2RlQmxvY2stPnNldEpJVENvZGUoCiAgICAgICAgIGFkb3B0
UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwgd2l0aEFyaXR5Q2hlY2ssIEpJVENvZGU6OkJh
c2VsaW5lSklUKSkpOwotICAgIAorCisgICAgZG91YmxlIGFmdGVyOworICAgIGlmIChVTkxJS0VM
WShjb21wdXRlQ29tcGlsZVRpbWVzKCkpKSB7CisgICAgICAgIGFmdGVyID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lTVMoKTsKKworICAgICAgICBpZiAoT3B0aW9uczo6cmVwb3J0VG90YWxD
b21waWxlVGltZXMoKSkKKyAgICAgICAgICAgIHRvdGFsQmFzZWxpbmVDb21waWxlVGltZSArPSBh
ZnRlciAtIGJlZm9yZTsKKyAgICB9CisgICAgaWYgKFVOTElLRUxZKHJlcG9ydENvbXBpbGVUaW1l
cygpKSkgeworICAgICAgICBDU3RyaW5nIGNvZGVCbG9ja05hbWUgPSB0b0NTdHJpbmcoKm1fY29k
ZUJsb2NrKTsKKyAgICAgICAgCisgICAgICAgIGRhdGFMb2coIk9wdGltaXplZCAiLCBjb2RlQmxv
Y2tOYW1lLCAiIHdpdGggQmFzZWxpbmUgSklUIGludG8gIiwgcGF0Y2hCdWZmZXIuc2l6ZSgpLCAi
IGJ5dGVzIGluICIsIGFmdGVyIC0gYmVmb3JlLCAiIG1zLlxuIik7CisgICAgfQorCiAjaWYgRU5B
QkxFKEpJVF9WRVJCT1NFKQogICAgIGRhdGFMb2dGKCJKSVQgZ2VuZXJhdGVkIGNvZGUgZm9yICVw
IGF0IFslcCwgJXApLlxuIiwgbV9jb2RlQmxvY2ssIHJlc3VsdC5leGVjdXRhYmxlTWVtb3J5KCkt
PnN0YXJ0KCksIHJlc3VsdC5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgpKTsKICNlbmRpZgpAQCAt
ODAxLDYgKzgyNCwzNCBAQCBpbnQgSklUOjpzdGFja1BvaW50ZXJPZmZzZXRGb3IoQ29kZUJsb2Nr
CiAgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudEZv
cihjb2RlQmxvY2spIC0gMSkub2Zmc2V0KCk7CiB9CiAKK2Jvb2wgSklUOjpyZXBvcnRDb21waWxl
VGltZXMoKQoreworICAgIHJldHVybiBPcHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKSB8fCBP
cHRpb25zOjpyZXBvcnRCYXNlbGluZUNvbXBpbGVUaW1lcygpOworfQorCitib29sIEpJVDo6Y29t
cHV0ZUNvbXBpbGVUaW1lcygpCit7CisgICAgcmV0dXJuIHJlcG9ydENvbXBpbGVUaW1lcygpIHx8
IE9wdGlvbnM6OnJlcG9ydFRvdGFsQ29tcGlsZVRpbWVzKCk7Cit9CisKK0hhc2hNYXA8Q1N0cmlu
ZywgZG91YmxlPiBKSVQ6OmNvbXBpbGVUaW1lU3RhdHMoKQoreworICAgIEhhc2hNYXA8Q1N0cmlu
ZywgZG91YmxlPiByZXN1bHQ7CisgICAgaWYgKE9wdGlvbnM6OnJlcG9ydFRvdGFsQ29tcGlsZVRp
bWVzKCkpIHsKKyAgICAgICAgcmVzdWx0LmFkZCgiVG90YWwgQ29tcGlsZSBUaW1lIiwgdG90YWxC
YXNlbGluZUNvbXBpbGVUaW1lICsgdG90YWxERkdDb21waWxlVGltZSArIHRvdGFsRlRMQ29tcGls
ZVRpbWUpOworICAgICAgICByZXN1bHQuYWRkKCJCYXNlbGluZSBDb21waWxlIFRpbWUiLCB0b3Rh
bEJhc2VsaW5lQ29tcGlsZVRpbWUpOworI2lmIEVOQUJMRShERkdfSklUKQorICAgICAgICByZXN1
bHQuYWRkKCJERkcgQ29tcGlsZSBUaW1lIiwgdG90YWxERkdDb21waWxlVGltZSk7CisjaWYgRU5B
QkxFKEZUTF9KSVQpCisgICAgICAgIHJlc3VsdC5hZGQoIkZUTCBDb21waWxlIFRpbWUiLCB0b3Rh
bEZUTENvbXBpbGVUaW1lKTsKKyAgICAgICAgcmVzdWx0LmFkZCgiRlRMIChERkcpIENvbXBpbGUg
VGltZSIsIHRvdGFsRlRMREZHQ29tcGlsZVRpbWUpOworICAgICAgICByZXN1bHQuYWRkKCJGVEwg
KEIzKSBDb21waWxlIFRpbWUiLCB0b3RhbEZUTEIzQ29tcGlsZVRpbWUpOworI2VuZGlmIC8vIEVO
QUJMRShGVExfSklUKQorI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorICAgIH0KKyAgICByZXR1
cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShK
SVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDIwMDUxNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI1Myw2ICsy
NTMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lUmVn
aXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqKTsKICAgICAgICAgc3RhdGljIGludCBzdGFja1BvaW50
ZXJPZmZzZXRGb3IoQ29kZUJsb2NrKik7CiAKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3Rh
dGljIEhhc2hNYXA8Q1N0cmluZywgZG91YmxlPiBjb21waWxlVGltZVN0YXRzKCk7CisKICAgICBw
cml2YXRlOgogICAgICAgICBKSVQoVk0qLCBDb2RlQmxvY2sqID0gMCk7CiAKQEAgLTg5Nyw2ICs4
OTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBzaG91bGRFbWl0UHJvZmlsaW5n
KCkgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCisgICAgICAgIHN0YXRpYyBib29sIHJlcG9y
dENvbXBpbGVUaW1lcygpOworICAgICAgICBzdGF0aWMgYm9vbCBjb21wdXRlQ29tcGlsZVRpbWVz
KCk7CisKICAgICAgICAgSW50ZXJwcmV0ZXIqIG1faW50ZXJwcmV0ZXI7CiAKICAgICAgICAgVmVj
dG9yPENhbGxSZWNvcmQ+IG1fY2FsbHM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCShyZXZpc2lvbiAyMDA1MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2OCw3ICsxNjgsOSBAQCB0eXBl
ZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2KGJvb2wsIHZlcmJvc2VGVExPU1JF
eGl0LCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB2ZXJib3NlQ2FsbExp
bmssIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHZlcmJvc2VDb21waWxh
dGlvblF1ZXVlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCi0gICAgdihib29sLCByZXBvcnRD
b21waWxlVGltZXMsIGZhbHNlLCBOb3JtYWwsICJkdW1wcyBKUyBmdW5jdGlvbiBzaWduYXR1cmUg
YW5kIHRoZSB0aW1lIGl0IHRvb2sgdG8gY29tcGlsZSIpIFwKKyAgICB2KGJvb2wsIHJlcG9ydENv
bXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1bmN0aW9uIHNpZ25hdHVyZSBh
bmQgdGhlIHRpbWUgaXQgdG9vayB0byBjb21waWxlIGluIGFsbCB0aWVycyIpIFwKKyAgICB2KGJv
b2wsIHJlcG9ydEJhc2VsaW5lQ29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAiZHVtcHMgSlMg
ZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCB0aGUgdGltZSBpdCB0b29rIHRvIEJhc2VsaW5lSklUIGNv
bXBpbGUiKSBcCisgICAgdihib29sLCByZXBvcnRERkdDb21waWxlVGltZXMsIGZhbHNlLCBOb3Jt
YWwsICJkdW1wcyBKUyBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHRoZSB0aW1lIGl0IHRvb2sgdG8g
REZHIGFuZCBGVEwgY29tcGlsZSIpIFwKICAgICB2KGJvb2wsIHJlcG9ydEZUTENvbXBpbGVUaW1l
cywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgdGhlIHRp
bWUgaXQgdG9vayB0byBGVEwgY29tcGlsZSIpIFwKICAgICB2KGJvb2wsIHJlcG9ydFRvdGFsQ29t
cGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB2ZXJib3Nl
Q0ZBLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCg==
</data>
<flag name="review"
          id="302405"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>