<?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>146536</bug_id>
          
          <creation_ts>2015-07-01 17:19:21 -0700</creation_ts>
          <short_desc>Web Inspector: Aggregate profile call information on the backend to drastically reduce profile sizes</short_desc>
          <delta_ts>2015-07-01 23:55:58 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>burg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>ossy</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106254</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-01 17:19:21 -0700</bug_when>
    <thetext>* SUMMARY
Aggregate profile call information on the backend to drastically reduce profile sizes.

* STEPS TO REPRODUCE
1. Open &lt;https://www.apple.com/procurement/&gt;
2. Open Inspector
3. On page, click &quot;Responsible Supplier Management&quot; link to navigate
  =&gt; WebKit crashes

* NOTES
- The backend builds a 500+MB string for profile data
- Namely because one function calls (1) trim 1.7 million times, (2) substring 1.7 million times, and (3) indexOf 0.8 million times
- The profile data includes a serialization for each of those individual calls, which is almost entirely unnecessary for the UI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106255</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-01 17:19:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/20440953&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106259</commentid>
    <comment_count>2</comment_count>
      <attachid>255976</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-01 17:30:55 -0700</bug_when>
    <thetext>Created attachment 255976
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106261</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-01 17:32:06 -0700</bug_when>
    <thetext>Attachment 255976 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106263</commentid>
    <comment_count>4</comment_count>
      <attachid>255977</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-01 17:35:36 -0700</bug_when>
    <thetext>Created attachment 255977
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106300</commentid>
    <comment_count>5</comment_count>
      <attachid>255977</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-07-01 20:57:30 -0700</bug_when>
    <thetext>Comment on attachment 255977
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Models/ProfileNode.js:173
&gt; +        // COMPATIBILITY (iOS8): Profiles included per-call information and can be finely partitioned.

Might just want to synthesize callInfo in the future on the front end to avoid complexity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106310</commentid>
    <comment_count>6</comment_count>
      <attachid>255977</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-01 21:47:42 -0700</bug_when>
    <thetext>Comment on attachment 255977
[PATCH] Proposed Fix

Clearing flags on attachment: 255977

Committed r186218: &lt;http://trac.webkit.org/changeset/186218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106311</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-01 21:47:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106319</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-07-01 22:29:34 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 255977 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; Clearing flags on attachment: 255977
&gt; 
&gt; Committed r186218: &lt;http://trac.webkit.org/changeset/186218&gt;

It broke the Apple Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106327</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-01 23:50:10 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; Comment on attachment 255977 [details]
&gt; &gt; [PATCH] Proposed Fix
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 255977
&gt; &gt; 
&gt; &gt; Committed r186218: &lt;http://trac.webkit.org/changeset/186218&gt;
&gt; 
&gt; It broke the Apple Windows build.

Thanks for the heads up. The bots show:

&gt; c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\inspector\TimelineRecordFactory.cpp(212): error C2039: &apos;CPUProfileNodeAggregateCallInfo&apos; : is not a member of &apos;Inspector::Protocol::Timeline&apos; [C:\cygwin\home\buildbot\slave\win-debug\build\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj]
&gt; c:\cygwin\home\buildbot\slave\win-debug\build\source\webcore\inspector\TimelineRecordFactory.cpp(212): error C2065: &apos;CPUProfileNodeAggregateCallInfo&apos; : undeclared identifier [C:\cygwin\home\buildbot\slave\win-debug\build\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj]

Seems like Windows didn&apos;t update regenerate some files even though Timeline.json was modified? I&apos;m going to try forcing a clean build on these bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106328</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-01 23:52:32 -0700</bug_when>
    <thetext>And the other bot:

&gt;   python: can&apos;t open file &apos;/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/cssmin.py&apos;: [Errno 2] No such file or directory
&gt;   make: *** No rule to make target &apos;/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/JSInputs.json&apos;, needed by &apos;WebReplayInputs.h&apos;.  Stop.
&gt;   make: *** Waiting for unfinished jobs....
&gt;   make: *** [XMLViewerCSS.h] Error 2
&gt;   /home/buildbot/slave/win-release/build/Source/WebCore/DerivedSources.make:893: recipe for target &apos;XMLViewerCSS.h&apos; failed
&gt;   python /home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/jsmin.py &lt;/home/buildbot/slave/win-release/build/Source/WebCore/inspector/CommandLineAPIModuleSource.js &gt;&gt; ./CommandLineAPIModuleSource.min.js
&gt;   python: can&apos;t open file &apos;/home/buildbot/slave/win-release/build/WebKitBuild/Release/include/private/JavaScriptCore/jsmin.py&apos;: [Errno 2] No such file or directory
&gt;   /home/buildbot/slave/win-release/build/Source/WebCore/DerivedSources.make:904: recipe for target &apos;XMLViewerJS.h&apos; failed


Seems like more issues with file generation. Not sure what is up there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106329</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-01 23:55:58 -0700</bug_when>
    <thetext>One of the bots recovered on their own:
https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/89286 Failed
https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/89287 Success

I still forced a clean build on the other bot (Win Release) to try and fix it up.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255976</attachid>
            <date>2015-07-01 17:30:55 -0700</date>
            <delta_ts>2015-07-01 17:35:36 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>aggregate.patch</filename>
            <type>text/plain</type>
            <size>17083</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDRmYjNjODQuLmYyZGIwYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA3LTAxICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWdncmVn
YXRlIHByb2ZpbGUgY2FsbCBpbmZvcm1hdGlvbiBvbiB0aGUgYmFja2VuZCB0byBkcmFzdGljYWxs
eSByZWR1Y2UgcHJvZmlsZSBzaXplcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ2NTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbjoKKyAgICAg
ICAgQ2hhbmdlIGEgQ1BVUHJvZmlsZSBmcm9tIHNlbmRpbmcgYSByZXF1aXJlZCAiY2FsbHMiIHBh
cmFtIHRvIHNlbmRpbmcgYSByZXF1aXJlZAorICAgICAgICAiY2FsbEluZm8iIHBhcmFtIHdoaWNo
IGluY2x1ZGVzIGFnZ3JlZ2F0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhbGxzLgorCiAyMDE1
LTA2LTI5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3Jh
cmlseSBkaXNhYmxlIFBJQ1RVUkVfU0laRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbgppbmRleCA3ZGExMDI4Li42M2Ix
NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L1RpbWVsaW5lLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9UaW1lbGluZS5qc29uCkBAIC01MiwxMiArNTIsMTQgQEAKICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJUaW1lbGluZSByZWNvcmQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhl
IHJlY29yZGVkIGFjdGl2aXR5LiIKICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAgICAg
ImlkIjogIkNQVVByb2ZpbGVOb2RlQ2FsbCIsCisgICAgICAgICAgICAiaWQiOiAiQ1BVUHJvZmls
ZU5vZGVBZ2dyZWdhdGVDYWxsSW5mbyIsCiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAot
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNQVSBQcm9maWxlIGNhbGwgaW5mby4gSG9sZHMg
dGltZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBjYWxsIHRoYXQgaGFwcGVuZWQgb24gYSBu
b2RlLiIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWdncmVnYXRlIENQVSBQcm9maWxl
IGNhbGwgaW5mby4gSG9sZHMgdGltZSBpbmZvcm1hdGlvbiBmb3IgYWxsIHRoZSBjYWxscyB0aGF0
IGhhcHBlbmVkIG9uIGEgbm9kZS4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFydFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVz
Y3JpcHRpb24iOiAiU3RhcnQgdGltZSBmb3IgdGhlIGNhbGwuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidG90YWxUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjog
IlRvdGFsIGV4ZWN1dGlvbiB0aW1lIGZvciB0aGUgY2FsbC4iIH0KKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImNhbGxDb3VudCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJU
b3RhbCBudW1iZXIgb2YgY2FsbHMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3Rh
cnRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0IHRpbWUgZm9y
IHRoZSBmaXJzdCBjYWxsLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuZFRpbWUi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRW5kIHRpbWUgZm9yIHRoZSBsYXN0
IGNhbGwuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidG90YWxUaW1lIiwgInR5cGUi
OiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRvdGFsIGV4ZWN1dGlvbiB0aW1lIGZvciBhbGwg
Y2FsbHMgY29tYmluZWQuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsK
QEAgLTY2LDcgKzY4LDcgQEAKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDUFUgUHJvZmls
ZSBub2RlLiBIb2xkcyBjYWxsc2l0ZSBpbmZvcm1hdGlvbiwgZXhlY3V0aW9uIHN0YXRpc3RpY3Mg
YW5kIGNoaWxkIG5vZGVzLiIsCiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6
ICJVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBjYWxsIHNpdGUuIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiY2FsbHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYi
OiAiQ1BVUHJvZmlsZU5vZGVDYWxsIiB9LCAiZGVzY3JpcHRpb24iOiAiQ2FsbHMgbWFraW5nIHVw
IHRoaXMgbm9kZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxsSW5mbyIsICIk
cmVmIjogIkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbEluZm8iLCAiZGVzY3JpcHRpb24iOiAi
QWdncmVnYXRlIGluZm8gYWJvdXQgYWxsIHRoZSBjYWxscyB0aGF0IG1ha2luZyB1cCB0aGlzIG5v
ZGUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnVuY3Rpb25OYW1lIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9uIG5h
bWUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlVSTC4iIH0sCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlci4iIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjExZmU5ZC4uOTllYjM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTAx
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogQWdncmVnYXRlIHByb2ZpbGUgY2FsbCBpbmZvcm1hdGlvbiBvbiB0aGUgYmFja2Vu
ZCB0byBkcmFzdGljYWxseSByZWR1Y2UgcHJvZmlsZSBzaXplcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmJ1aWxkQWdncmVnYXRlQ2FsbEluZm9JbnNwZWN0b3JPYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGRJbnNwZWN0b3JPYmplY3QpOgorICAgICAgICBSZXBsYWNlIHRoZSBhcnJh
eSBvZiBDYWxsIG9iamVjdHMgd2l0aCBhIHNpbmdsZSBhZ2dyZWdhdGVkIGNhbGwgaW5mbyBvYmpl
Y3QuCisKIDIwMTUtMDYtMzAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGRyZXNzaW5nIHBvc3QtcmV2aWV3IGNvbW1lbnRzIGluIHIxODU5MTYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXgg
ZjcwNjMwMS4uZjg1OWRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Rp
bWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Rp
bWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKQEAgLTIwOSwyMyArMjA5LDI4IEBAIHZvaWQgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjphcHBlbmRMYXlvdXRSb290KEluc3BlY3Rvck9iamVjdCogZGF0YSwg
Y29uc3QgRmxvYXRRCiAgICAgZGF0YS0+c2V0QXJyYXkoInJvb3QiLCBjcmVhdGVRdWFkKHF1YWQp
KTsKIH0KIAotc3RhdGljIFJlZjxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlQ2Fs
bD4gYnVpbGRJbnNwZWN0b3JPYmplY3QoY29uc3QgSlNDOjpQcm9maWxlTm9kZTo6Q2FsbCYgY2Fs
bCkKK3N0YXRpYyBSZWY8UHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZUFnZ3JlZ2F0
ZUNhbGxJbmZvPiBidWlsZEFnZ3JlZ2F0ZUNhbGxJbmZvSW5zcGVjdG9yT2JqZWN0KGNvbnN0IEpT
Qzo6UHJvZmlsZU5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIFByb3RvY29sOjpUaW1lbGluZTo6
Q1BVUHJvZmlsZU5vZGVDYWxsOjpjcmVhdGUoKQotICAgICAgICAuc2V0U3RhcnRUaW1lKGNhbGwu
c3RhcnRUaW1lKCkpCi0gICAgICAgIC5zZXRUb3RhbFRpbWUoY2FsbC5lbGFwc2VkVGltZSgpKQot
ICAgICAgICAucmVsZWFzZSgpOwotfQorICAgIGRvdWJsZSBzdGFydFRpbWUgPSBub2RlLT5jYWxs
cygpWzBdLnN0YXJ0VGltZSgpOworICAgIGRvdWJsZSBlbmRUaW1lID0gbm9kZS0+Y2FsbHMoKS5s
YXN0KCkuc3RhcnRUaW1lKCkgKyBub2RlLT5jYWxscygpLmxhc3QoKS5lbGFwc2VkVGltZSgpOwog
Ci1zdGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGU+IGJ1aWxkSW5z
cGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCi17Ci0gICAgYXV0byBj
YWxscyA9IFByb3RvY29sOjpBcnJheTxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2Rl
Q2FsbD46OmNyZWF0ZSgpOworICAgIGRvdWJsZSB0b3RhbFRpbWUgPSAwOwogICAgIGZvciAoY29u
c3QgSlNDOjpQcm9maWxlTm9kZTo6Q2FsbCYgY2FsbCA6IG5vZGUtPmNhbGxzKCkpCi0gICAgICAg
IGNhbGxzLT5hZGRJdGVtKGJ1aWxkSW5zcGVjdG9yT2JqZWN0KGNhbGwpKTsKKyAgICAgICAgdG90
YWxUaW1lICs9IGNhbGwuZWxhcHNlZFRpbWUoKTsKIAorICAgIHJldHVybiBQcm90b2NvbDo6VGlt
ZWxpbmU6OkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbEluZm86OmNyZWF0ZSgpCisgICAgICAg
IC5zZXRDYWxsQ291bnQobm9kZS0+Y2FsbHMoKS5zaXplKCkpCisgICAgICAgIC5zZXRTdGFydFRp
bWUoc3RhcnRUaW1lKQorICAgICAgICAuc2V0RW5kVGltZShlbmRUaW1lKQorICAgICAgICAuc2V0
VG90YWxUaW1lKHRvdGFsVGltZSkKKyAgICAgICAgLnJlbGVhc2UoKTsKK30KKworc3RhdGljIFJl
ZjxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rvck9iamVj
dChjb25zdCBKU0M6OlByb2ZpbGVOb2RlKiBub2RlKQorewogICAgIGF1dG8gcmVzdWx0ID0gUHJv
dG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZTo6Y3JlYXRlKCkKICAgICAgICAgLnNldElk
KG5vZGUtPmlkKCkpCi0gICAgICAgIC5zZXRDYWxscyhXVEY6Om1vdmUoY2FsbHMpKQorICAgICAg
ICAuc2V0Q2FsbEluZm8oYnVpbGRBZ2dyZWdhdGVDYWxsSW5mb0luc3BlY3Rvck9iamVjdChub2Rl
KSkKICAgICAgICAgLnJlbGVhc2UoKTsKIAogICAgIGlmICghbm9kZS0+ZnVuY3Rpb25OYW1lKCku
aXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZjU5MzA1MC4uYjQ1MDUxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTUtMDctMDEgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZ2dyZWdhdGUgcHJvZmlsZSBjYWxsIGluZm9ybWF0aW9uIG9uIHRoZSBiYWNrZW5kIHRv
IGRyYXN0aWNhbGx5IHJlZHVjZSBwcm9maWxlIHNpemVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1MzYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSB3ZSBzdGlsbCBzdXBwb3J0IGxlZ2FjeSBi
YWNrZW5kcywgdGhlIGZyb250ZW5kIGRvY3VtZW50cyB3aGVyZQorICAgICAgICBpdCBpcyBoYW5k
bGluZyBsZWdhY3kgYmFja2VuZHMgd2l0aCBjb21wYXRpYmlsaXR5IGNvbW1lbnRzLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUHJvZmlsZU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2Rl
LnByb3RvdHlwZS5nZXQgY2FsbEluZm8pOgorICAgICAgICBIYW5kbGUgYSBQcm9maWxlTm9kZSBj
cmVhdGVkIHdpdGggY2FsbEluZm8gb3IgY2FsbHMuIFRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2
ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdFRpbWVsaW5lUmVjb3Jk
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lUmVjb3JkLnByb3RvdHlw
ZS5faW5pdGlhbGl6ZVByb2ZpbGVGcm9tUGF5bG9hZC5wcm9maWxlTm9kZUZyb21QYXlsb2FkKToK
KyAgICAgICAgSWYgdGhlIHByb2ZpbGUgaGFzIHBlci1jYWxsIGluZm9ybWF0aW9uLCBjb25zdHJ1
Y3QgUHJvZmlsZU5vZGVDYWxsIG9iamVjdHMsIG90aGVyd2lzZQorICAgICAgICBqdXN0IGNvbnN0
cnVjdCB0aGUgUHJvZmlsZU5vZGUgd2l0aCB0aGUgYWdncmVnYXRlIGNhbGxJbmZvIHZhbHVlLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9k
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZS5w
cm90b3R5cGUuZ2V0IGRhdGEpOgorICAgICAgICBXaGVuIHdlIGhhdmUgYWdncmVnYXRlIGNhbGwg
aW5mb3JtYXRpb24gd2UgY2Fubm90IGVhc2lseSBwYXJ0aXRpb24gYSBzY3JpcHQsCisgICAgICAg
IHNvIHdlIGluc3RlYWQgdHJlYXQgdGhlIGVudGlyZSBzY3JpcHQgYXMgb25lIGxhcmdlIGF0b21p
YyB1bml0IGluIHRoZSB0aW1lbGluZS4KKyAgICAgICAgSWYgdGhlIHRpbWVsaW5lIHJhbmdlIGhh
cyBhbnkgcG9ydGlvbiBvZiB0aGUgc2NyaXB0LCBzaG93IHRoZSBlbnRpcmUgc2NyaXB0LgorICAg
ICAgICBVc2VycyB1c2VkIHRvIGJlIGFibGUgdG8gc2VsZWN0IGEgcG9ydGlvbiBvZiBhIHNjcmlw
dCBhbmQgdmlldyB0aGUgcmVsZXZhbnQKKyAgICAgICAgZnVuY3Rpb25zIGNhbGxlZCBpbiBqdXN0
IHRoYXQgc2xpdmVyLCBidXQgdGhpcyBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdlbGwKKyAgICAg
ICAga25vd24gZmVhdHVyZSBvciBjb21tb25seSB1c2VkLiBJbiBmYWN0LCBnaXZlbiB0aGUgc21h
bGwgcmFuZ2VzIG9mIHRpbWUgaXQKKyAgICAgICAgY291bGQgYmUgY29uZnVzaW5nIGZvciB1c2Vy
cy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5tYXRjaFRyZWVFbGVtZW50QWdhaW5zdEN1c3RvbUZpbHRlcnMpOgor
ICAgICAgICBUcmVhdCBhcyBhIGRpc2NyZXRlIHVuaXQuCisKIDIwMTUtMDYtMzAgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQ
cm9maWxlTm9kZSBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUuanMKaW5kZXggOWNkOGFmYS4uNGMwNWJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1Byb2ZpbGVOb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9Qcm9maWxlTm9kZS5qcwpAQCAtMjUsMTYgKzI1LDE2IEBACiAKIFdlYkluc3BlY3Rv
ci5Qcm9maWxlTm9kZSA9IGNsYXNzIFByb2ZpbGVOb2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogewotICAgIGNvbnN0cnVjdG9yKGlkLCB0eXBlLCBmdW5jdGlvbk5hbWUsIHNvdXJjZUNv
ZGVMb2NhdGlvbiwgY2FsbHMsIGNoaWxkTm9kZXMpCisgICAgY29uc3RydWN0b3IoaWQsIHR5cGUs
IGZ1bmN0aW9uTmFtZSwgc291cmNlQ29kZUxvY2F0aW9uLCBjYWxsSW5mbywgY2FsbHMsIGNoaWxk
Tm9kZXMpCiAgICAgewogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIGNoaWxkTm9kZXMgPSBj
aGlsZE5vZGVzIHx8IFtdOwogCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGlkKTsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoY2FsbHMgaW5zdGFuY2VvZiBBcnJheSk7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGNhbGxzLmxlbmd0aCA+PSAxKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY2FsbHMu
ZXZlcnkoZnVuY3Rpb24oY2FsbCkgeyByZXR1cm4gY2FsbCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rv
ci5Qcm9maWxlTm9kZUNhbGw7IH0pKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIWNhbGxzIHx8
IGNhbGxzIGluc3RhbmNlb2YgQXJyYXkpOworICAgICAgICBjb25zb2xlLmFzc2VydCghY2FsbHMg
fHwgY2FsbHMubGVuZ3RoID49IDEpOworICAgICAgICBjb25zb2xlLmFzc2VydCghY2FsbHMgfHwg
Y2FsbHMuZXZlcnkoZnVuY3Rpb24oY2FsbCkgeyByZXR1cm4gY2FsbCBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5Qcm9maWxlTm9kZUNhbGw7IH0pKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2hp
bGROb2RlcyBpbnN0YW5jZW9mIEFycmF5KTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2hpbGRO
b2Rlcy5ldmVyeShmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlIGluc3RhbmNlb2YgV2ViSW5z
cGVjdG9yLlByb2ZpbGVOb2RlOyB9KSk7CiAKQEAgLTQyLDE4ICs0MiwyOCBAQCBXZWJJbnNwZWN0
b3IuUHJvZmlsZU5vZGUgPSBjbGFzcyBQcm9maWxlTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKICAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGUgfHwgV2ViSW5zcGVjdG9yLlByb2ZpbGVO
b2RlLlR5cGUuRnVuY3Rpb247CiAgICAgICAgIHRoaXMuX2Z1bmN0aW9uTmFtZSA9IGZ1bmN0aW9u
TmFtZSB8fCBudWxsOwogICAgICAgICB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24gPSBzb3VyY2VD
b2RlTG9jYXRpb24gfHwgbnVsbDsKLSAgICAgICAgdGhpcy5fY2FsbHMgPSBjYWxsczsKKyAgICAg
ICAgdGhpcy5fY2FsbHMgPSBjYWxscyB8fCBudWxsOworICAgICAgICB0aGlzLl9jYWxsSW5mbyA9
IGNhbGxJbmZvIHx8IG51bGw7CiAgICAgICAgIHRoaXMuX2NoaWxkTm9kZXMgPSBjaGlsZE5vZGVz
OwogICAgICAgICB0aGlzLl9wYXJlbnROb2RlID0gbnVsbDsKICAgICAgICAgdGhpcy5fcHJldmlv
dXNTaWJsaW5nID0gbnVsbDsKICAgICAgICAgdGhpcy5fbmV4dFNpYmxpbmcgPSBudWxsOwogICAg
ICAgICB0aGlzLl9jb21wdXRlZFRvdGFsVGltZXMgPSBmYWxzZTsKIAorICAgICAgICBpZiAodGhp
cy5fY2FsbEluZm8pIHsgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMuX3N0YXJ0VGltZSA9
IHRoaXMuX2NhbGxJbmZvLnN0YXJ0VGltZTsKKyAgICAgICAgICAgIHRoaXMuX2VuZFRpbWUgPSB0
aGlzLl9jYWxsSW5mby5lbmRUaW1lOworICAgICAgICAgICAgdGhpcy5fdG90YWxUaW1lID0gdGhp
cy5fY2FsbEluZm8udG90YWxUaW1lOworICAgICAgICAgICAgdGhpcy5fY2FsbENvdW50ID0gdGhp
cy5fY2FsbEluZm8uY2FsbENvdW50OworICAgICAgICB9CisKICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB0aGlzLl9jaGlsZE5vZGVzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgdGhpcy5f
Y2hpbGROb2Rlc1tpXS5lc3RhYmxpc2hSZWxhdGlvbnNoaXBzKHRoaXMsIHRoaXMuX2NoaWxkTm9k
ZXNbaSAtIDFdLCB0aGlzLl9jaGlsZE5vZGVzW2kgKyAxXSk7CiAKLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB0aGlzLl9jYWxscy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2Nh
bGxzW2ldLmVzdGFibGlzaFJlbGF0aW9uc2hpcHModGhpcywgdGhpcy5fY2FsbHNbaSAtIDFdLCB0
aGlzLl9jYWxsc1tpICsgMV0pOworICAgICAgICBpZiAodGhpcy5fY2FsbHMpIHsKKyAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fY2FsbHMubGVuZ3RoOyArK2kpCisgICAgICAg
ICAgICAgICAgdGhpcy5fY2FsbHNbaV0uZXN0YWJsaXNoUmVsYXRpb25zaGlwcyh0aGlzLCB0aGlz
Ll9jYWxsc1tpIC0gMV0sIHRoaXMuX2NhbGxzW2kgKyAxXSk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICAvLyBQdWJsaWMKQEAgLTEwNCw2ICsxMTQsMTEgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVO
b2RlID0gY2xhc3MgUHJvZmlsZU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAg
ICAgIHJldHVybiB0aGlzLl90b3RhbFRpbWU7CiAgICAgfQogCisgICAgZ2V0IGNhbGxJbmZvKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jYWxsSW5mbzsKKyAgICB9CisKICAgICBnZXQg
Y2FsbHMoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2NhbGxzOwpAQCAtMTM0LDYgKzE0
OSwzMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGUgPSBjbGFzcyBQcm9maWxlTm9kZSBleHRl
bmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIHJh
bmdlU3RhcnRUaW1lID09PSAibnVtYmVyIik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVv
ZiByYW5nZUVuZFRpbWUgPT09ICJudW1iZXIiKTsKIAorICAgICAgICAvLyBXaXRoIGFnZ3JlZ2F0
ZSBjYWxsIGluZm8gd2UgY2FuJ3QgYWNjdXJhdGVseSBwYXJ0aXRpb24gc2VsZi90b3RhbC9hdmVy
YWdlIHRpbWUKKyAgICAgICAgLy8gaW4gcGFydGlhbCByYW5nZXMgYmVjYXVzZSB3ZSBkb24ndCBr
bm93IGV4YWN0bHkgd2hlbiBlYWNoIGNhbGwgc3RhcnRlZC4gU28gd2UKKyAgICAgICAgLy8gYWx3
YXlzIHJldHVybiB0aGUgZW50aXJlIHJhbmdlLgorICAgICAgICBpZiAodGhpcy5fY2FsbEluZm8p
IHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9zZWxmVGltZSA9PT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGNoaWxkTm9kZXNUb3RhbFRpbWUgPSAwOworICAgICAgICAgICAgICAg
IGZvciAodmFyIGNoaWxkTm9kZSBvZiB0aGlzLl9jaGlsZE5vZGVzKQorICAgICAgICAgICAgICAg
ICAgICBjaGlsZE5vZGVzVG90YWxUaW1lICs9IGNoaWxkTm9kZS50b3RhbFRpbWU7CisgICAgICAg
ICAgICAgICAgdGhpcy5fc2VsZlRpbWUgPSB0aGlzLl90b3RhbFRpbWUgLSBjaGlsZE5vZGVzVG90
YWxUaW1lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgICAgIGNhbGxDb3VudDogdGhpcy5fY2FsbENvdW50LAorICAgICAgICAgICAgICAgIHN0YXJ0
VGltZTogdGhpcy5fc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuX2Vu
ZFRpbWUsCisgICAgICAgICAgICAgICAgc2VsZlRpbWU6IHRoaXMuX3NlbGZUaW1lLAorICAgICAg
ICAgICAgICAgIHRvdGFsVGltZTogdGhpcy5fdG90YWxUaW1lLAorICAgICAgICAgICAgICAgIGF2
ZXJhZ2VUaW1lOiAodGhpcy5fc2VsZlRpbWUgLyB0aGlzLl9jYWxsQ291bnQpLAorICAgICAgICAg
ICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUzgpOiBQcm9m
aWxlcyBpbmNsdWRlZCBwZXItY2FsbCBpbmZvcm1hdGlvbiBhbmQgY2FuIGJlIGZpbmVseSBwYXJ0
aXRpb25lZC4KKyAgICAgICAgLy8gQ29tcHV0ZSB0aGF0IGJlbG93IGJ5IGl0ZXJhdGluZyBvdmVy
IGFsbCB0aGUgY2FsbHMgLyBjaGlsZHJlbiBmb3IgdGhlIHRpbWUgcmFuZ2UuCisKICAgICAgICAg
dmFyIHJlY29yZENhbGxDb3VudCA9IHRydWU7CiAgICAgICAgIHZhciBjYWxsQ291bnQgPSAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
U2NyaXB0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMKaW5kZXggYWU4ZDUwYS4uNTg0YTJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1NjcmlwdFRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwpAQCAtNzQsMTQgKzc0LDEz
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZCA9IGNsYXNzIFNjcmlwdFRpbWVs
aW5lUmVjb3JkIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgdmFyIHBheWxvYWQgPSB0aGlzLl9wcm9maWxlUGF5bG9hZDsKLSAgICAgICAgZGVsZXRlIHRo
aXMuX3Byb2ZpbGVQYXlsb2FkOworICAgICAgICB0aGlzLl9wcm9maWxlUGF5bG9hZCA9IHVuZGVm
aW5lZDsKIAogICAgICAgICBjb25zb2xlLmFzc2VydChwYXlsb2FkLnJvb3ROb2RlcyBpbnN0YW5j
ZW9mIEFycmF5KTsKIAogICAgICAgICBmdW5jdGlvbiBwcm9maWxlTm9kZUZyb21QYXlsb2FkKG5v
ZGVQYXlsb2FkKQogICAgICAgICB7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydCgiaWQiIGlu
IG5vZGVQYXlsb2FkKTsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG5vZGVQYXlsb2FkLmNh
bGxzIGluc3RhbmNlb2YgQXJyYXkpOwogCiAgICAgICAgICAgICBpZiAobm9kZVBheWxvYWQudXJs
KSB7CiAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3IuZnJhbWVS
ZXNvdXJjZU1hbmFnZXIucmVzb3VyY2VGb3JVUkwobm9kZVBheWxvYWQudXJsKTsKQEAgLTk5LDkg
Kzk4LDE2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJlY29yZCA9IGNsYXNzIFNjcmlw
dFRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV2ViSW5zcGVjCiAKICAgICAgICAgICAgIHZhciB0eXBl
ID0gaXNQcm9ncmFtQ29kZSA/IFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZS5UeXBlLlByb2dyYW0g
OiBXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGUuVHlwZS5GdW5jdGlvbjsKICAgICAgICAgICAgIHZh
ciBmdW5jdGlvbk5hbWUgPSAhaXNQcm9ncmFtQ29kZSAmJiAhaXNBbm9ueW1vdXNGdW5jdGlvbiAm
JiBub2RlUGF5bG9hZC5mdW5jdGlvbk5hbWUgIT09ICIodW5rbm93bikiID8gbm9kZVBheWxvYWQu
ZnVuY3Rpb25OYW1lIDogbnVsbDsKLSAgICAgICAgICAgIHZhciBjYWxscyA9IG5vZGVQYXlsb2Fk
LmNhbGxzLm1hcChwcm9maWxlTm9kZUNhbGxGcm9tUGF5bG9hZCk7CiAKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2RlKG5vZGVQYXlsb2FkLmlkLCB0eXBlLCBm
dW5jdGlvbk5hbWUsIHNvdXJjZUNvZGVMb2NhdGlvbiwgY2FsbHMsIG5vZGVQYXlsb2FkLmNoaWxk
cmVuKTsKKyAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUzgpOiBUaW1lbGluZS5DUFVQ
cm9maWxlTm9kZXMgdXNlZCB0byBpbmNsdWRlIGFuIGFycmF5IG9mIGNvbXBsZXRlCisgICAgICAg
ICAgICAvLyBjYWxsIGluZm9ybWF0aW9uIGluc3RlYWQgb2YgdGhlIGFnZ3JlZ2F0ZWQgImNhbGxJ
bmZvIiBkYXRhLgorICAgICAgICAgICAgdmFyIGNhbGxzID0gbnVsbDsKKyAgICAgICAgICAgIGlm
ICgiY2FsbHMiIGluIG5vZGVQYXlsb2FkKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5hc3Nl
cnQobm9kZVBheWxvYWQuY2FsbHMgaW5zdGFuY2VvZiBBcnJheSk7CisgICAgICAgICAgICAgICAg
Y2FsbHMgPSBub2RlUGF5bG9hZC5jYWxscy5tYXAocHJvZmlsZU5vZGVDYWxsRnJvbVBheWxvYWQp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Q
cm9maWxlTm9kZShub2RlUGF5bG9hZC5pZCwgdHlwZSwgZnVuY3Rpb25OYW1lLCBzb3VyY2VDb2Rl
TG9jYXRpb24sIG5vZGVQYXlsb2FkLmNhbGxJbmZvLCBjYWxscywgbm9kZVBheWxvYWQuY2hpbGRy
ZW4pOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gcHJvZmlsZU5vZGVDYWxsRnJvbVBh
eWxvYWQobm9kZUNhbGxQYXlsb2FkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxpbmVEYXRhR3JpZE5vZGUuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZURhdGFH
cmlkTm9kZS5qcwppbmRleCA2OTU1YmQxLi5iZTFkY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9k
ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3Jp
cHRUaW1lbGluZURhdGFHcmlkTm9kZS5qcwpAQCAtNzEsMTAgKzcxLDE5IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgZGF0
YSgpCiAgICAgewotICAgICAgICB2YXIgc3RhcnRUaW1lID0gTWF0aC5tYXgodGhpcy5fcmFuZ2VT
dGFydFRpbWUsIHRoaXMuX3JlY29yZC5zdGFydFRpbWUpOwotICAgICAgICB2YXIgZHVyYXRpb24g
PSBNYXRoLm1pbih0aGlzLl9yZWNvcmQuc3RhcnRUaW1lICsgdGhpcy5fcmVjb3JkLmR1cmF0aW9u
LCB0aGlzLl9yYW5nZUVuZFRpbWUpIC0gc3RhcnRUaW1lOworICAgICAgICB2YXIgc3RhcnRUaW1l
ID0gdGhpcy5fcmVjb3JkLnN0YXJ0VGltZTsKKyAgICAgICAgdmFyIGR1cmF0aW9uID0gdGhpcy5f
cmVjb3JkLnN0YXJ0VGltZSArIHRoaXMuX3JlY29yZC5kdXJhdGlvbiAtIHN0YXJ0VGltZTsKICAg
ICAgICAgdmFyIGNhbGxGcmFtZU9yU291cmNlQ29kZUxvY2F0aW9uID0gdGhpcy5fcmVjb3JkLmlu
aXRpYXRvckNhbGxGcmFtZSB8fCB0aGlzLl9yZWNvcmQuc291cmNlQ29kZUxvY2F0aW9uOwogCisg
ICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUzgpOiBQcm9maWxlcyBpbmNsdWRlZCBwZXItY2Fs
bCBpbmZvcm1hdGlvbiBhbmQgY2FuIGJlIGZpbmVseSBwYXJ0aXRpb25lZC4KKyAgICAgICAgaWYg
KHRoaXMuX3JlY29yZC5wcm9maWxlKSB7CisgICAgICAgICAgICB2YXIgb25lUm9vdE5vZGUgPSB0
aGlzLl9yZWNvcmQucHJvZmlsZS50b3BEb3duUm9vdE5vZGVzWzBdOworICAgICAgICAgICAgaWYg
KG9uZVJvb3ROb2RlICYmIG9uZVJvb3ROb2RlLmNhbGxzKSB7CisgICAgICAgICAgICAgICAgc3Rh
cnRUaW1lID0gTWF0aC5tYXgodGhpcy5fcmFuZ2VTdGFydFRpbWUsIHRoaXMuX3JlY29yZC5zdGFy
dFRpbWUpOworICAgICAgICAgICAgICAgIGR1cmF0aW9uID0gTWF0aC5taW4odGhpcy5fcmVjb3Jk
LnN0YXJ0VGltZSArIHRoaXMuX3JlY29yZC5kdXJhdGlvbiwgdGhpcy5fcmFuZ2VFbmRUaW1lKSAt
IHN0YXJ0VGltZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIHJldHVybiB7
ZXZlbnRUeXBlOiB0aGlzLl9yZWNvcmQuZXZlbnRUeXBlLCBzdGFydFRpbWUsIHNlbGZUaW1lOiBk
dXJhdGlvbiwgdG90YWxUaW1lOiBkdXJhdGlvbiwKICAgICAgICAgICAgIGF2ZXJhZ2VUaW1lOiBk
dXJhdGlvbiwgY2FsbENvdW50OiAxLCBsb2NhdGlvbjogY2FsbEZyYW1lT3JTb3VyY2VDb2RlTG9j
YXRpb259OwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50
Vmlldy5qcwppbmRleCA3OGU1YTI0Li41YTg2MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVs
aW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanMKQEAgLTMwOCwxMCArMzA4LDggQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAg
IGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZVRyZWVF
bGVtZW50KSB7CiAgICAgICAgICAgICB2YXIgcHJvZmlsZU5vZGUgPSB0cmVlRWxlbWVudC5wcm9m
aWxlTm9kZTsKLSAgICAgICAgICAgIGZvciAodmFyIGNhbGwgb2YgcHJvZmlsZU5vZGUuY2FsbHMp
IHsKLSAgICAgICAgICAgICAgICBpZiAoY2hlY2tUaW1lQm91bmRzKGNhbGwuc3RhcnRUaW1lLCBj
YWxsLmVuZFRpbWUpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChjaGVja1RpbWVCb3VuZHMocHJvZmlsZU5vZGUuc3RhcnRU
aW1lLCBwcm9maWxlTm9kZS5lbmRUaW1lKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255977</attachid>
            <date>2015-07-01 17:35:36 -0700</date>
            <delta_ts>2015-07-01 21:47:42 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>aggregate-1.patch</filename>
            <type>text/plain</type>
            <size>17050</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDRmYjNjODQuLmYyZGIwYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA3LTAxICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWdncmVn
YXRlIHByb2ZpbGUgY2FsbCBpbmZvcm1hdGlvbiBvbiB0aGUgYmFja2VuZCB0byBkcmFzdGljYWxs
eSByZWR1Y2UgcHJvZmlsZSBzaXplcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ2NTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbjoKKyAgICAg
ICAgQ2hhbmdlIGEgQ1BVUHJvZmlsZSBmcm9tIHNlbmRpbmcgYSByZXF1aXJlZCAiY2FsbHMiIHBh
cmFtIHRvIHNlbmRpbmcgYSByZXF1aXJlZAorICAgICAgICAiY2FsbEluZm8iIHBhcmFtIHdoaWNo
IGluY2x1ZGVzIGFnZ3JlZ2F0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhbGxzLgorCiAyMDE1
LTA2LTI5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3Jh
cmlseSBkaXNhYmxlIFBJQ1RVUkVfU0laRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbgppbmRleCA3ZGExMDI4Li42M2Ix
NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L1RpbWVsaW5lLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9UaW1lbGluZS5qc29uCkBAIC01MiwxMiArNTIsMTQgQEAKICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJUaW1lbGluZSByZWNvcmQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhl
IHJlY29yZGVkIGFjdGl2aXR5LiIKICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAgICAg
ImlkIjogIkNQVVByb2ZpbGVOb2RlQ2FsbCIsCisgICAgICAgICAgICAiaWQiOiAiQ1BVUHJvZmls
ZU5vZGVBZ2dyZWdhdGVDYWxsSW5mbyIsCiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAot
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNQVSBQcm9maWxlIGNhbGwgaW5mby4gSG9sZHMg
dGltZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBjYWxsIHRoYXQgaGFwcGVuZWQgb24gYSBu
b2RlLiIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWdncmVnYXRlIENQVSBQcm9maWxl
IGNhbGwgaW5mby4gSG9sZHMgdGltZSBpbmZvcm1hdGlvbiBmb3IgYWxsIHRoZSBjYWxscyB0aGF0
IGhhcHBlbmVkIG9uIGEgbm9kZS4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFydFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVz
Y3JpcHRpb24iOiAiU3RhcnQgdGltZSBmb3IgdGhlIGNhbGwuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidG90YWxUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjog
IlRvdGFsIGV4ZWN1dGlvbiB0aW1lIGZvciB0aGUgY2FsbC4iIH0KKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImNhbGxDb3VudCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJU
b3RhbCBudW1iZXIgb2YgY2FsbHMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3Rh
cnRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0IHRpbWUgZm9y
IHRoZSBmaXJzdCBjYWxsLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuZFRpbWUi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRW5kIHRpbWUgZm9yIHRoZSBsYXN0
IGNhbGwuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidG90YWxUaW1lIiwgInR5cGUi
OiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRvdGFsIGV4ZWN1dGlvbiB0aW1lIGZvciBhbGwg
Y2FsbHMgY29tYmluZWQuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsK
QEAgLTY2LDcgKzY4LDcgQEAKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDUFUgUHJvZmls
ZSBub2RlLiBIb2xkcyBjYWxsc2l0ZSBpbmZvcm1hdGlvbiwgZXhlY3V0aW9uIHN0YXRpc3RpY3Mg
YW5kIGNoaWxkIG5vZGVzLiIsCiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6
ICJVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBjYWxsIHNpdGUuIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiY2FsbHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYi
OiAiQ1BVUHJvZmlsZU5vZGVDYWxsIiB9LCAiZGVzY3JpcHRpb24iOiAiQ2FsbHMgbWFraW5nIHVw
IHRoaXMgbm9kZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxsSW5mbyIsICIk
cmVmIjogIkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbEluZm8iLCAiZGVzY3JpcHRpb24iOiAi
QWdncmVnYXRlIGluZm8gYWJvdXQgYWxsIHRoZSBjYWxscyB0aGF0IG1ha2luZyB1cCB0aGlzIG5v
ZGUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnVuY3Rpb25OYW1lIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9uIG5h
bWUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlVSTC4iIH0sCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlci4iIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjExZmU5ZC4uOGRjYWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA3LTAx
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogQWdncmVnYXRlIHByb2ZpbGUgY2FsbCBpbmZvcm1hdGlvbiBvbiB0aGUgYmFja2Vu
ZCB0byBkcmFzdGljYWxseSByZWR1Y2UgcHJvZmlsZSBzaXplcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQWdncmVnYXRlQ2FsbEluZm9JbnNw
ZWN0b3JPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRJbnNwZWN0b3JPYmplY3QpOgor
ICAgICAgICBSZXBsYWNlIHRoZSBhcnJheSBvZiBDYWxsIG9iamVjdHMgd2l0aCBhIHNpbmdsZSBh
Z2dyZWdhdGVkIGNhbGwgaW5mbyBvYmplY3QuCisKIDIwMTUtMDYtMzAgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRyZXNzaW5nIHBvc3QtcmV2aWV3IGNvbW1l
bnRzIGluIHIxODU5MTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1l
bGluZVJlY29yZEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggZjcwNjMwMS4uZjg1OWRkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKQEAgLTIwOSwy
MyArMjA5LDI4IEBAIHZvaWQgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRMYXlvdXRSb290
KEluc3BlY3Rvck9iamVjdCogZGF0YSwgY29uc3QgRmxvYXRRCiAgICAgZGF0YS0+c2V0QXJyYXko
InJvb3QiLCBjcmVhdGVRdWFkKHF1YWQpKTsKIH0KIAotc3RhdGljIFJlZjxQcm90b2NvbDo6VGlt
ZWxpbmU6OkNQVVByb2ZpbGVOb2RlQ2FsbD4gYnVpbGRJbnNwZWN0b3JPYmplY3QoY29uc3QgSlND
OjpQcm9maWxlTm9kZTo6Q2FsbCYgY2FsbCkKK3N0YXRpYyBSZWY8UHJvdG9jb2w6OlRpbWVsaW5l
OjpDUFVQcm9maWxlTm9kZUFnZ3JlZ2F0ZUNhbGxJbmZvPiBidWlsZEFnZ3JlZ2F0ZUNhbGxJbmZv
SW5zcGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0
dXJuIFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGVDYWxsOjpjcmVhdGUoKQotICAg
ICAgICAuc2V0U3RhcnRUaW1lKGNhbGwuc3RhcnRUaW1lKCkpCi0gICAgICAgIC5zZXRUb3RhbFRp
bWUoY2FsbC5lbGFwc2VkVGltZSgpKQotICAgICAgICAucmVsZWFzZSgpOwotfQorICAgIGRvdWJs
ZSBzdGFydFRpbWUgPSBub2RlLT5jYWxscygpWzBdLnN0YXJ0VGltZSgpOworICAgIGRvdWJsZSBl
bmRUaW1lID0gbm9kZS0+Y2FsbHMoKS5sYXN0KCkuc3RhcnRUaW1lKCkgKyBub2RlLT5jYWxscygp
Lmxhc3QoKS5lbGFwc2VkVGltZSgpOwogCi1zdGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGluZTo6
Q1BVUHJvZmlsZU5vZGU+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJvZmlsZU5v
ZGUqIG5vZGUpCi17Ci0gICAgYXV0byBjYWxscyA9IFByb3RvY29sOjpBcnJheTxQcm90b2NvbDo6
VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlQ2FsbD46OmNyZWF0ZSgpOworICAgIGRvdWJsZSB0b3Rh
bFRpbWUgPSAwOwogICAgIGZvciAoY29uc3QgSlNDOjpQcm9maWxlTm9kZTo6Q2FsbCYgY2FsbCA6
IG5vZGUtPmNhbGxzKCkpCi0gICAgICAgIGNhbGxzLT5hZGRJdGVtKGJ1aWxkSW5zcGVjdG9yT2Jq
ZWN0KGNhbGwpKTsKKyAgICAgICAgdG90YWxUaW1lICs9IGNhbGwuZWxhcHNlZFRpbWUoKTsKIAor
ICAgIHJldHVybiBQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2Fs
bEluZm86OmNyZWF0ZSgpCisgICAgICAgIC5zZXRDYWxsQ291bnQobm9kZS0+Y2FsbHMoKS5zaXpl
KCkpCisgICAgICAgIC5zZXRTdGFydFRpbWUoc3RhcnRUaW1lKQorICAgICAgICAuc2V0RW5kVGlt
ZShlbmRUaW1lKQorICAgICAgICAuc2V0VG90YWxUaW1lKHRvdGFsVGltZSkKKyAgICAgICAgLnJl
bGVhc2UoKTsKK30KKworc3RhdGljIFJlZjxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVO
b2RlPiBidWlsZEluc3BlY3Rvck9iamVjdChjb25zdCBKU0M6OlByb2ZpbGVOb2RlKiBub2RlKQor
ewogICAgIGF1dG8gcmVzdWx0ID0gUHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZTo6
Y3JlYXRlKCkKICAgICAgICAgLnNldElkKG5vZGUtPmlkKCkpCi0gICAgICAgIC5zZXRDYWxscyhX
VEY6Om1vdmUoY2FsbHMpKQorICAgICAgICAuc2V0Q2FsbEluZm8oYnVpbGRBZ2dyZWdhdGVDYWxs
SW5mb0luc3BlY3Rvck9iamVjdChub2RlKSkKICAgICAgICAgLnJlbGVhc2UoKTsKIAogICAgIGlm
ICghbm9kZS0+ZnVuY3Rpb25OYW1lKCkuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
aW5kZXggZjU5MzA1MC4uYjQ1MDUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMTUtMDctMDEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZ2dyZWdhdGUgcHJvZmlsZSBjYWxsIGluZm9y
bWF0aW9uIG9uIHRoZSBiYWNrZW5kIHRvIGRyYXN0aWNhbGx5IHJlZHVjZSBwcm9maWxlIHNpemVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1MzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSB3
ZSBzdGlsbCBzdXBwb3J0IGxlZ2FjeSBiYWNrZW5kcywgdGhlIGZyb250ZW5kIGRvY3VtZW50cyB3
aGVyZQorICAgICAgICBpdCBpcyBoYW5kbGluZyBsZWdhY3kgYmFja2VuZHMgd2l0aCBjb21wYXRp
YmlsaXR5IGNvbW1lbnRzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvZmls
ZU5vZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVOb2RlLnByb3RvdHlwZS5nZXQgY2FsbEluZm8pOgorICAgICAg
ICBIYW5kbGUgYSBQcm9maWxlTm9kZSBjcmVhdGVkIHdpdGggY2FsbEluZm8gb3IgY2FsbHMuIFRo
ZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL1NjcmlwdFRpbWVsaW5lUmVjb3JkLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dFRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS5faW5pdGlhbGl6ZVByb2ZpbGVGcm9tUGF5bG9hZC5w
cm9maWxlTm9kZUZyb21QYXlsb2FkKToKKyAgICAgICAgSWYgdGhlIHByb2ZpbGUgaGFzIHBlci1j
YWxsIGluZm9ybWF0aW9uLCBjb25zdHJ1Y3QgUHJvZmlsZU5vZGVDYWxsIG9iamVjdHMsIG90aGVy
d2lzZQorICAgICAgICBqdXN0IGNvbnN0cnVjdCB0aGUgUHJvZmlsZU5vZGUgd2l0aCB0aGUgYWdn
cmVnYXRlIGNhbGxJbmZvIHZhbHVlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9T
Y3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3Jp
cHRUaW1lbGluZURhdGFHcmlkTm9kZS5wcm90b3R5cGUuZ2V0IGRhdGEpOgorICAgICAgICBXaGVu
IHdlIGhhdmUgYWdncmVnYXRlIGNhbGwgaW5mb3JtYXRpb24gd2UgY2Fubm90IGVhc2lseSBwYXJ0
aXRpb24gYSBzY3JpcHQsCisgICAgICAgIHNvIHdlIGluc3RlYWQgdHJlYXQgdGhlIGVudGlyZSBz
Y3JpcHQgYXMgb25lIGxhcmdlIGF0b21pYyB1bml0IGluIHRoZSB0aW1lbGluZS4KKyAgICAgICAg
SWYgdGhlIHRpbWVsaW5lIHJhbmdlIGhhcyBhbnkgcG9ydGlvbiBvZiB0aGUgc2NyaXB0LCBzaG93
IHRoZSBlbnRpcmUgc2NyaXB0LgorICAgICAgICBVc2VycyB1c2VkIHRvIGJlIGFibGUgdG8gc2Vs
ZWN0IGEgcG9ydGlvbiBvZiBhIHNjcmlwdCBhbmQgdmlldyB0aGUgcmVsZXZhbnQKKyAgICAgICAg
ZnVuY3Rpb25zIGNhbGxlZCBpbiBqdXN0IHRoYXQgc2xpdmVyLCBidXQgdGhpcyBkb2Vzbid0IGFw
cGVhciB0byBiZSBhIHdlbGwKKyAgICAgICAga25vd24gZmVhdHVyZSBvciBjb21tb25seSB1c2Vk
LiBJbiBmYWN0LCBnaXZlbiB0aGUgc21hbGwgcmFuZ2VzIG9mIHRpbWUgaXQKKyAgICAgICAgY291
bGQgYmUgY29uZnVzaW5nIGZvciB1c2Vycy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5tYXRjaFRyZWVFbGVtZW50
QWdhaW5zdEN1c3RvbUZpbHRlcnMpOgorICAgICAgICBUcmVhdCBhcyBhIGRpc2NyZXRlIHVuaXQu
CisKIDIwMTUtMDYtMzAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm9maWxlTm9kZSBjbGVhbnVwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGUu
anMKaW5kZXggOWNkOGFmYS4uNGMwNWJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2ZpbGVOb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Qcm9maWxlTm9kZS5qcwpAQCAtMjUsMTYg
KzI1LDE2IEBACiAKIFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZSA9IGNsYXNzIFByb2ZpbGVOb2Rl
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9yKGlkLCB0eXBl
LCBmdW5jdGlvbk5hbWUsIHNvdXJjZUNvZGVMb2NhdGlvbiwgY2FsbHMsIGNoaWxkTm9kZXMpCisg
ICAgY29uc3RydWN0b3IoaWQsIHR5cGUsIGZ1bmN0aW9uTmFtZSwgc291cmNlQ29kZUxvY2F0aW9u
LCBjYWxsSW5mbywgY2FsbHMsIGNoaWxkTm9kZXMpCiAgICAgewogICAgICAgICBzdXBlcigpOwog
CiAgICAgICAgIGNoaWxkTm9kZXMgPSBjaGlsZE5vZGVzIHx8IFtdOwogCiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGlkKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoY2FsbHMgaW5zdGFuY2VvZiBB
cnJheSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbGxzLmxlbmd0aCA+PSAxKTsKLSAgICAg
ICAgY29uc29sZS5hc3NlcnQoY2FsbHMuZXZlcnkoZnVuY3Rpb24oY2FsbCkgeyByZXR1cm4gY2Fs
bCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZUNhbGw7IH0pKTsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoIWNhbGxzIHx8IGNhbGxzIGluc3RhbmNlb2YgQXJyYXkpOworICAgICAg
ICBjb25zb2xlLmFzc2VydCghY2FsbHMgfHwgY2FsbHMubGVuZ3RoID49IDEpOworICAgICAgICBj
b25zb2xlLmFzc2VydCghY2FsbHMgfHwgY2FsbHMuZXZlcnkoZnVuY3Rpb24oY2FsbCkgeyByZXR1
cm4gY2FsbCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZUNhbGw7IH0pKTsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQoY2hpbGROb2RlcyBpbnN0YW5jZW9mIEFycmF5KTsKICAgICAg
ICAgY29uc29sZS5hc3NlcnQoY2hpbGROb2Rlcy5ldmVyeShmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2RlOyB9KSk7CiAKQEAgLTQy
LDE4ICs0MiwyOCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGUgPSBjbGFzcyBQcm9maWxlTm9k
ZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGUg
fHwgV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2RlLlR5cGUuRnVuY3Rpb247CiAgICAgICAgIHRoaXMu
X2Z1bmN0aW9uTmFtZSA9IGZ1bmN0aW9uTmFtZSB8fCBudWxsOwogICAgICAgICB0aGlzLl9zb3Vy
Y2VDb2RlTG9jYXRpb24gPSBzb3VyY2VDb2RlTG9jYXRpb24gfHwgbnVsbDsKLSAgICAgICAgdGhp
cy5fY2FsbHMgPSBjYWxsczsKKyAgICAgICAgdGhpcy5fY2FsbHMgPSBjYWxscyB8fCBudWxsOwor
ICAgICAgICB0aGlzLl9jYWxsSW5mbyA9IGNhbGxJbmZvIHx8IG51bGw7CiAgICAgICAgIHRoaXMu
X2NoaWxkTm9kZXMgPSBjaGlsZE5vZGVzOwogICAgICAgICB0aGlzLl9wYXJlbnROb2RlID0gbnVs
bDsKICAgICAgICAgdGhpcy5fcHJldmlvdXNTaWJsaW5nID0gbnVsbDsKICAgICAgICAgdGhpcy5f
bmV4dFNpYmxpbmcgPSBudWxsOwogICAgICAgICB0aGlzLl9jb21wdXRlZFRvdGFsVGltZXMgPSBm
YWxzZTsKIAorICAgICAgICBpZiAodGhpcy5fY2FsbEluZm8pIHsgICAgICAgICAgICAKKyAgICAg
ICAgICAgIHRoaXMuX3N0YXJ0VGltZSA9IHRoaXMuX2NhbGxJbmZvLnN0YXJ0VGltZTsKKyAgICAg
ICAgICAgIHRoaXMuX2VuZFRpbWUgPSB0aGlzLl9jYWxsSW5mby5lbmRUaW1lOworICAgICAgICAg
ICAgdGhpcy5fdG90YWxUaW1lID0gdGhpcy5fY2FsbEluZm8udG90YWxUaW1lOworICAgICAgICAg
ICAgdGhpcy5fY2FsbENvdW50ID0gdGhpcy5fY2FsbEluZm8uY2FsbENvdW50OworICAgICAgICB9
CisKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jaGlsZE5vZGVzLmxlbmd0aDsg
KytpKQogICAgICAgICAgICAgdGhpcy5fY2hpbGROb2Rlc1tpXS5lc3RhYmxpc2hSZWxhdGlvbnNo
aXBzKHRoaXMsIHRoaXMuX2NoaWxkTm9kZXNbaSAtIDFdLCB0aGlzLl9jaGlsZE5vZGVzW2kgKyAx
XSk7CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jYWxscy5sZW5ndGg7ICsr
aSkKLSAgICAgICAgICAgIHRoaXMuX2NhbGxzW2ldLmVzdGFibGlzaFJlbGF0aW9uc2hpcHModGhp
cywgdGhpcy5fY2FsbHNbaSAtIDFdLCB0aGlzLl9jYWxsc1tpICsgMV0pOworICAgICAgICBpZiAo
dGhpcy5fY2FsbHMpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fY2Fs
bHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgdGhpcy5fY2FsbHNbaV0uZXN0YWJsaXNo
UmVsYXRpb25zaGlwcyh0aGlzLCB0aGlzLl9jYWxsc1tpIC0gMV0sIHRoaXMuX2NhbGxzW2kgKyAx
XSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTEwNCw2ICsxMTQsMTEg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2RlID0gY2xhc3MgUHJvZmlsZU5vZGUgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl90b3RhbFRpbWU7CiAgICAg
fQogCisgICAgZ2V0IGNhbGxJbmZvKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jYWxs
SW5mbzsKKyAgICB9CisKICAgICBnZXQgY2FsbHMoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRo
aXMuX2NhbGxzOwpAQCAtMTM0LDYgKzE0OSwzMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGUg
PSBjbGFzcyBQcm9maWxlTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAg
Y29uc29sZS5hc3NlcnQodHlwZW9mIHJhbmdlU3RhcnRUaW1lID09PSAibnVtYmVyIik7CiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiByYW5nZUVuZFRpbWUgPT09ICJudW1iZXIiKTsKIAor
ICAgICAgICAvLyBXaXRoIGFnZ3JlZ2F0ZSBjYWxsIGluZm8gd2UgY2FuJ3QgYWNjdXJhdGVseSBw
YXJ0aXRpb24gc2VsZi90b3RhbC9hdmVyYWdlIHRpbWUKKyAgICAgICAgLy8gaW4gcGFydGlhbCBy
YW5nZXMgYmVjYXVzZSB3ZSBkb24ndCBrbm93IGV4YWN0bHkgd2hlbiBlYWNoIGNhbGwgc3RhcnRl
ZC4gU28gd2UKKyAgICAgICAgLy8gYWx3YXlzIHJldHVybiB0aGUgZW50aXJlIHJhbmdlLgorICAg
ICAgICBpZiAodGhpcy5fY2FsbEluZm8pIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9zZWxmVGlt
ZSA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgdmFyIGNoaWxkTm9kZXNUb3RhbFRp
bWUgPSAwOworICAgICAgICAgICAgICAgIGZvciAodmFyIGNoaWxkTm9kZSBvZiB0aGlzLl9jaGls
ZE5vZGVzKQorICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGVzVG90YWxUaW1lICs9IGNoaWxk
Tm9kZS50b3RhbFRpbWU7CisgICAgICAgICAgICAgICAgdGhpcy5fc2VsZlRpbWUgPSB0aGlzLl90
b3RhbFRpbWUgLSBjaGlsZE5vZGVzVG90YWxUaW1lOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNhbGxDb3VudDogdGhpcy5fY2FsbENvdW50
LAorICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5fc3RhcnRUaW1lLAorICAgICAgICAg
ICAgICAgIGVuZFRpbWU6IHRoaXMuX2VuZFRpbWUsCisgICAgICAgICAgICAgICAgc2VsZlRpbWU6
IHRoaXMuX3NlbGZUaW1lLAorICAgICAgICAgICAgICAgIHRvdGFsVGltZTogdGhpcy5fdG90YWxU
aW1lLAorICAgICAgICAgICAgICAgIGF2ZXJhZ2VUaW1lOiAodGhpcy5fc2VsZlRpbWUgLyB0aGlz
Ll9jYWxsQ291bnQpLAorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENP
TVBBVElCSUxJVFkgKGlPUzgpOiBQcm9maWxlcyBpbmNsdWRlZCBwZXItY2FsbCBpbmZvcm1hdGlv
biBhbmQgY2FuIGJlIGZpbmVseSBwYXJ0aXRpb25lZC4KKyAgICAgICAgLy8gQ29tcHV0ZSB0aGF0
IGJlbG93IGJ5IGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgY2FsbHMgLyBjaGlsZHJlbiBmb3IgdGhl
IHRpbWUgcmFuZ2UuCisKICAgICAgICAgdmFyIHJlY29yZENhbGxDb3VudCA9IHRydWU7CiAgICAg
ICAgIHZhciBjYWxsQ291bnQgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQu
anMKaW5kZXggYWU4ZDUwYS4uNTg0YTJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdFRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJl
Y29yZC5qcwpAQCAtNzQsMTQgKzc0LDEzIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZVJl
Y29yZCA9IGNsYXNzIFNjcmlwdFRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHBheWxvYWQgPSB0aGlzLl9wcm9maWxlUGF5
bG9hZDsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3Byb2ZpbGVQYXlsb2FkOworICAgICAgICB0aGlz
Ll9wcm9maWxlUGF5bG9hZCA9IHVuZGVmaW5lZDsKIAogICAgICAgICBjb25zb2xlLmFzc2VydChw
YXlsb2FkLnJvb3ROb2RlcyBpbnN0YW5jZW9mIEFycmF5KTsKIAogICAgICAgICBmdW5jdGlvbiBw
cm9maWxlTm9kZUZyb21QYXlsb2FkKG5vZGVQYXlsb2FkKQogICAgICAgICB7CiAgICAgICAgICAg
ICBjb25zb2xlLmFzc2VydCgiaWQiIGluIG5vZGVQYXlsb2FkKTsKLSAgICAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KG5vZGVQYXlsb2FkLmNhbGxzIGluc3RhbmNlb2YgQXJyYXkpOwogCiAgICAgICAg
ICAgICBpZiAobm9kZVBheWxvYWQudXJsKSB7CiAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUNv
ZGUgPSBXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIucmVzb3VyY2VGb3JVUkwobm9k
ZVBheWxvYWQudXJsKTsKQEAgLTk5LDkgKzk4LDE2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1l
bGluZVJlY29yZCA9IGNsYXNzIFNjcmlwdFRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV2ViSW5zcGVj
CiAKICAgICAgICAgICAgIHZhciB0eXBlID0gaXNQcm9ncmFtQ29kZSA/IFdlYkluc3BlY3Rvci5Q
cm9maWxlTm9kZS5UeXBlLlByb2dyYW0gOiBXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGUuVHlwZS5G
dW5jdGlvbjsKICAgICAgICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSAhaXNQcm9ncmFtQ29kZSAm
JiAhaXNBbm9ueW1vdXNGdW5jdGlvbiAmJiBub2RlUGF5bG9hZC5mdW5jdGlvbk5hbWUgIT09ICIo
dW5rbm93bikiID8gbm9kZVBheWxvYWQuZnVuY3Rpb25OYW1lIDogbnVsbDsKLSAgICAgICAgICAg
IHZhciBjYWxscyA9IG5vZGVQYXlsb2FkLmNhbGxzLm1hcChwcm9maWxlTm9kZUNhbGxGcm9tUGF5
bG9hZCk7CiAKLSAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2Rl
KG5vZGVQYXlsb2FkLmlkLCB0eXBlLCBmdW5jdGlvbk5hbWUsIHNvdXJjZUNvZGVMb2NhdGlvbiwg
Y2FsbHMsIG5vZGVQYXlsb2FkLmNoaWxkcmVuKTsKKyAgICAgICAgICAgIC8vIENPTVBBVElCSUxJ
VFkgKGlPUzgpOiBUaW1lbGluZS5DUFVQcm9maWxlTm9kZXMgdXNlZCB0byBpbmNsdWRlIGFuIGFy
cmF5IG9mIGNvbXBsZXRlCisgICAgICAgICAgICAvLyBjYWxsIGluZm9ybWF0aW9uIGluc3RlYWQg
b2YgdGhlIGFnZ3JlZ2F0ZWQgImNhbGxJbmZvIiBkYXRhLgorICAgICAgICAgICAgdmFyIGNhbGxz
ID0gbnVsbDsKKyAgICAgICAgICAgIGlmICgiY2FsbHMiIGluIG5vZGVQYXlsb2FkKSB7CisgICAg
ICAgICAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZVBheWxvYWQuY2FsbHMgaW5zdGFuY2VvZiBB
cnJheSk7CisgICAgICAgICAgICAgICAgY2FsbHMgPSBub2RlUGF5bG9hZC5jYWxscy5tYXAocHJv
ZmlsZU5vZGVDYWxsRnJvbVBheWxvYWQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlTm9kZShub2RlUGF5bG9hZC5pZCwgdHlwZSwg
ZnVuY3Rpb25OYW1lLCBzb3VyY2VDb2RlTG9jYXRpb24sIG5vZGVQYXlsb2FkLmNhbGxJbmZvLCBj
YWxscywgbm9kZVBheWxvYWQuY2hpbGRyZW4pOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rp
b24gcHJvZmlsZU5vZGVDYWxsRnJvbVBheWxvYWQobm9kZUNhbGxQYXlsb2FkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxp
bmVEYXRhR3JpZE5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZS5qcwppbmRleCA2OTU1YmQxLi5iZTFkY2Rj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9T
Y3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZS5qcwpAQCAtNzEs
MTAgKzcxLDE5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZS5wcm90
b3R5cGUgPSB7CiAKICAgICBnZXQgZGF0YSgpCiAgICAgewotICAgICAgICB2YXIgc3RhcnRUaW1l
ID0gTWF0aC5tYXgodGhpcy5fcmFuZ2VTdGFydFRpbWUsIHRoaXMuX3JlY29yZC5zdGFydFRpbWUp
OwotICAgICAgICB2YXIgZHVyYXRpb24gPSBNYXRoLm1pbih0aGlzLl9yZWNvcmQuc3RhcnRUaW1l
ICsgdGhpcy5fcmVjb3JkLmR1cmF0aW9uLCB0aGlzLl9yYW5nZUVuZFRpbWUpIC0gc3RhcnRUaW1l
OworICAgICAgICB2YXIgc3RhcnRUaW1lID0gdGhpcy5fcmVjb3JkLnN0YXJ0VGltZTsKKyAgICAg
ICAgdmFyIGR1cmF0aW9uID0gdGhpcy5fcmVjb3JkLnN0YXJ0VGltZSArIHRoaXMuX3JlY29yZC5k
dXJhdGlvbiAtIHN0YXJ0VGltZTsKICAgICAgICAgdmFyIGNhbGxGcmFtZU9yU291cmNlQ29kZUxv
Y2F0aW9uID0gdGhpcy5fcmVjb3JkLmluaXRpYXRvckNhbGxGcmFtZSB8fCB0aGlzLl9yZWNvcmQu
c291cmNlQ29kZUxvY2F0aW9uOwogCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUzgpOiBQ
cm9maWxlcyBpbmNsdWRlZCBwZXItY2FsbCBpbmZvcm1hdGlvbiBhbmQgY2FuIGJlIGZpbmVseSBw
YXJ0aXRpb25lZC4KKyAgICAgICAgaWYgKHRoaXMuX3JlY29yZC5wcm9maWxlKSB7CisgICAgICAg
ICAgICB2YXIgb25lUm9vdE5vZGUgPSB0aGlzLl9yZWNvcmQucHJvZmlsZS50b3BEb3duUm9vdE5v
ZGVzWzBdOworICAgICAgICAgICAgaWYgKG9uZVJvb3ROb2RlICYmIG9uZVJvb3ROb2RlLmNhbGxz
KSB7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gTWF0aC5tYXgodGhpcy5fcmFuZ2VTdGFy
dFRpbWUsIHRoaXMuX3JlY29yZC5zdGFydFRpbWUpOworICAgICAgICAgICAgICAgIGR1cmF0aW9u
ID0gTWF0aC5taW4odGhpcy5fcmVjb3JkLnN0YXJ0VGltZSArIHRoaXMuX3JlY29yZC5kdXJhdGlv
biwgdGhpcy5fcmFuZ2VFbmRUaW1lKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCiAgICAgICAgIHJldHVybiB7ZXZlbnRUeXBlOiB0aGlzLl9yZWNvcmQuZXZlbnRUeXBl
LCBzdGFydFRpbWUsIHNlbGZUaW1lOiBkdXJhdGlvbiwgdG90YWxUaW1lOiBkdXJhdGlvbiwKICAg
ICAgICAgICAgIGF2ZXJhZ2VUaW1lOiBkdXJhdGlvbiwgY2FsbENvdW50OiAxLCBsb2NhdGlvbjog
Y2FsbEZyYW1lT3JTb3VyY2VDb2RlTG9jYXRpb259OwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0Nv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qcwppbmRleCA3OGU1YTI0Li41YTg2MTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1l
bGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanMKQEAgLTMw
OCwxMCArMzA4LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcu
cHJvdG90eXBlID0gewogCiAgICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5Qcm9maWxlTm9kZVRyZWVFbGVtZW50KSB7CiAgICAgICAgICAgICB2YXIgcHJvZmls
ZU5vZGUgPSB0cmVlRWxlbWVudC5wcm9maWxlTm9kZTsKLSAgICAgICAgICAgIGZvciAodmFyIGNh
bGwgb2YgcHJvZmlsZU5vZGUuY2FsbHMpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2hlY2tUaW1l
Qm91bmRzKGNhbGwuc3RhcnRUaW1lLCBjYWxsLmVuZFRpbWUpKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaGVja1RpbWVC
b3VuZHMocHJvZmlsZU5vZGUuc3RhcnRUaW1lLCBwcm9maWxlTm9kZS5lbmRUaW1lKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>