<?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>121171</bug_id>
          
          <creation_ts>2013-09-11 11:19:36 -0700</creation_ts>
          <short_desc>Remove TimelineTraceEventProcessor since no current ports use it</short_desc>
          <delta_ts>2013-09-11 11:58:57 -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>New Bugs</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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>927878</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-09-11 11:19:36 -0700</bug_when>
    <thetext>Remove TimelineTraceEventProcessor since no current ports use it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927879</commentid>
    <comment_count>1</comment_count>
      <attachid>211330</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-09-11 11:20:08 -0700</bug_when>
    <thetext>Created attachment 211330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927893</commentid>
    <comment_count>2</comment_count>
      <attachid>211330</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-09-11 11:34:10 -0700</bug_when>
    <thetext>Comment on attachment 211330
Patch

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

r=me

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:-167
&gt; -    registerHandler(InstrumentationEvents::BeginFrame, TracePhaseInstant, &amp;TimelineTraceEventProcessor::onBeginFrame);
&gt; -    registerHandler(InstrumentationEvents::PaintLayer, TracePhaseBegin, &amp;TimelineTraceEventProcessor::onPaintLayerBegin);
&gt; -    registerHandler(InstrumentationEvents::PaintLayer, TracePhaseEnd, &amp;TimelineTraceEventProcessor::onPaintLayerEnd);
&gt; -    registerHandler(InstrumentationEvents::RasterTask, TracePhaseBegin, &amp;TimelineTraceEventProcessor::onRasterTaskBegin);
&gt; -    registerHandler(InstrumentationEvents::RasterTask, TracePhaseEnd, &amp;TimelineTraceEventProcessor::onRasterTaskEnd);
&gt; -    registerHandler(InstrumentationEvents::Layer, TracePhaseDeleteObject, &amp;TimelineTraceEventProcessor::onLayerDeleted);
&gt; -    registerHandler(InstrumentationEvents::Paint, TracePhaseInstant, &amp;TimelineTraceEventProcessor::onPaint);

I think this was the only user of InstrumentationEvents and InstrumentationEventArguments. You can remove the enum / strings in InspectorInstrumentation.*:

    inspector/InspectorInstrumentation.cpp
    1390:namespace InstrumentationEvents {
    1398:namespace InstrumentationEventArguments {

    inspector/InspectorInstrumentation.h
    515:namespace InstrumentationEvents {
    523:namespace InstrumentationEventArguments {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>927906</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-09-11 11:58:57 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/155549</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211330</attachid>
            <date>2013-09-11 11:20:08 -0700</date>
            <delta_ts>2013-09-11 11:48:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121171-20130911112008.patch</filename>
            <type>text/plain</type>
            <size>37120</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1Mzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBiNDZlYzY2MDI5YTNl
ZmQ2M2ZjODQ1YTk0MDI3MWFlOThlYmFlNy4uMzJhNTJhM2I2ZTJlN2U1NjI2ODgyZGQzMmI2Y2Fm
NWFlNTUxMDMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTExICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yIHNpbmNlIG5vIGN1cnJlbnQgcG9ydHMgdXNlIGl0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjExNzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckFsbEluT25lLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmg6IFJlbW92ZWQuCisKIDIwMTMtMDktMDkgIFRoaWFn
byBkZSBCYXJyb3MgTGFjZXJkYSAgPHRoaWFnby5sYWNlcmRhQG9wZW5ib3NzYS5vcmc+CiAKICAg
ICAgICAgW0J1ZyBGaXhdIENhbGxpbmcgbV9hdWRpb0NvbXBvbmVudHMucmVtb3ZlIGluIHJlbW92
ZUF1ZGlvQ29tcG9uZW50IChNZWRpYVN0cmVhbURlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDNlZmRhNjU2MmFjMmM3YjJhNzA1NjI5NGI1NzA5MzIxYTQzNGFiYTcuLjQ5ZjhjYjQz
Mjg4MDRiOTc0ODgxODM2MjRiZjhmZGM4OGNmZDhkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0xNjIyLDcgKzE2MjIsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL1Nj
cmlwdENhbGxGcmFtZS5jcHAKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNwcAogICAg
IGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCi0gICAgaW5zcGVjdG9yL1RpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKICAgICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFn
ZW50LmNwcAogICAgIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAogICAgIGluc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggNTA1Mjg0YTNkNjJmZGI3NTVkNTA4Yjc0M2RkMWQzNmZlNzc4NDFkYS4uMTI2
M2NmNTZjMjQwYTczY2E0NTAzOTgzOWRjMDA4YTI1OTEzODFhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC0zOTMwLDggKzM5MzAsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRHQ0V2ZW50TGlzdGVuZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaCBcCi0JU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgXAotCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGI4MzE0
NTg5NzlhMDYzMjQxNDNiNzQxMjYxNmJmZmJhYTE0ZGI1MjIuLjNlZDhmODZjMjM1ZTlmMzM5NGE4
OWE5NzJkMDliODM0ODkzYjNhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODEzLDcgKzgxMyw2IEBAIFNP
VVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAgICBpbnNw
ZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCiAgICAgaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHAgXAotICAgIGluc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iu
Y3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBcCiAgICAgaW5zcGVj
dG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2VySW5zcGVj
dG9yQ29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKaW5kZXggYjExNGZmMzAxOGIwYjVkMzA2MTcwMDBiYmM5ZGU2NDI2MDI0
NmVjNy4uYWI5ZWFlMmE5ZDFhM2UwNDJiYjYwYmY4YjQ3YTA0YWQyY2NiMzcyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC02NzI2LDE0
ICs2NzI2LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcVmlkZW9U
cmFjay5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHRyYWNrXFZpZGVv
VHJhY2tMaXN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tc
V2ViVlRURWxlbWVudC5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGZpbGVzeXN0ZW1cRGlyZWN0b3J5RW50
cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xmaWxlc3lzdGVt
XERpcmVjdG9yeUVudHJ5U3luYy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxN
b2R1bGVzXGZpbGVzeXN0ZW1cRGlyZWN0b3J5UmVhZGVyLmNwcCIgLz4KQEAgLTE4ODc2LDcgKzE4
ODY4LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcVmlkZW9UcmFj
ay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xWaWRlb1RyYWNr
TGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xXZWJWVFRF
bGVtZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcVGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxN
b2R1bGVzXGZpbGVzeXN0ZW1cQXN5bmNGaWxlV3JpdGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxNb2R1bGVzXGZpbGVzeXN0ZW1cQXN5bmNGaWxlV3JpdGVyQ2xpZW50LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGZpbGVzeXN0ZW1cRGlyZWN0b3J5
RW50cnkuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAzMmJkNDFhZjUyMTViYWI4MWIxOGMzMzk1ODcz
ZjMxNzZhM2MzZjAzLi4yNjgzN2M2NjMyNTY3NGM1OGE1YTdjODMxNzVhZWUzM2RhMmRhNzhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCkBAIC01MzU2LDkgKzUzNTYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cc3ZnXGdyYXBoaWNzXFNWR0ltYWdlRm9yQ29udGFpbmVyLmNwcCI+CiAgICAgICA8Rmls
dGVyPnJlbmRlcmluZ1xzdmdcZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3IuY3BwIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbENv
bXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcSGl0VGVzdExvY2F0
aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtMTMxNDAsOSArMTMxMzcsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
c3ZnXGdyYXBoaWNzXFNWR0ltYWdlRm9yQ29udGFpbmVyLmgiPgogICAgICAgPEZpbHRlcj5yZW5k
ZXJpbmdcc3ZnXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgi
PgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xIaXRUZXN0TG9jYXRpb24uaCI+CiAg
ICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ4
M2IxYmFkODkyYTg5ODMwZDM3NjlkNDA2NTMxOWJlZDFjNzk3NTkuLmI0OTJjMzU5YzE1OWQ2ZGQz
ZDAzZTc5NjUyN2NhZWRiMTEwNTcxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNTgsOCArMTM1OCw2IEBACiAJCTQ2RjlE
NURGMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RjlENURDMEIwRDYwMTcwMDI4RUUz
NiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi87IH07CiAJCTQ5MDcwN0U2MTIxOUMwNDMwMEQ5MEU1
MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJL
aXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovOyB9Owot
CQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MTQw
MjU0MTY4RTAyQjQwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwICov
OyB9OwotCQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTE0MDI1NTE2OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgg
Ki87IH07CiAJCTQ5MTgyQjUyMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRh
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTE4MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwICov
OyB9OwogCQk0OTE4MkI1MzE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MTgy
QjUxMTVEQ0U2RjAwMDU0ODQxOCAvKiBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbi5oICovOyB9Owog
CQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI5MUU0QTEzNDE3MkM4
MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi87IH07CkBAIC03ODU2LDggKzc4NTQs
NiBAQAogCQk0NkY5RDVEQzBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5n
OyBwYXRoID0gcHJvZ3Jlc3NDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQU5HTEVXZWJLaXRCcmlkZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyog
QU5HTEVXZWJLaXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5H
TEVXZWJLaXRCcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDkxNDAyNTQx
NjhFMDJCNDAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNz
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OTE0MDI1NTE2OEUwMkI0MDAy
RDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OTE4MkI1MDE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1J
bnN0cnVtZW50YXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0OTE4MkI1MTE1RENFNkYwMDA1NDg0MTggLyogUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1JbnN0cnVtZW50YXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RF
IC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZVJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
MDk1LDggKzE0MDkxLDYgQEAKIAkJCQk5RkEzN0VGMDExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0
UHJvZmlsZU5vZGUuaWRsICovLAogCQkJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1l
bGluZVJlY29yZEZhY3RvcnkuY3BwICovLAogCQkJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAv
KiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLywKLQkJCQk0OTE0MDI1NDE2OEUwMkI0MDAyRDZD
NkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCAqLywKLQkJCQk0OTE0MDI1NTE2
OEUwMkI0MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmggKi8sCiAJCQkJ
RjM4MjA4OEUxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgKi8sCiAJ
CQkJRjM4MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5oICovLAog
CQkJCUYzNDc0MkRFMTM0MzYzMUYwMDUzMUJDMiAvKiBXb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCAq
LywKQEAgLTI0Mjg4LDcgKzI0MjgyLDYgQEAKIAkJCQk0OTg3NzBGMzEyNDJDNTM1MDAyMjI2QkEg
LyogVGlsaW5nRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEREMxMjUxRjEyRDAwM0VG
MjY5IC8qIFRpbWVJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NTNDRkU4MTA4RjQ3
M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQ5MTQwMjU3MTY4RTAyRUMwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMDVCMjREMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEzQjAwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5n
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMkFFMEVGQUM5MDYwMDlEMENBRiAvKiBUaW1p
bmdGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzM2MCw3ICsyNzM1Myw2IEBACiAJCQkJ
NDk4NzcwRjIxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjU1QjNEREIxMjUxRjEyRDAwM0VGMjY5IC8qIFRpbWVJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNzU1M0NGRTkxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0OTE0MDI1NjE2OEUwMkU4MDAyRDZDNkEg
LyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
MzA5RUE0MDk5RUI3OEMwMDU2RTU4MSAvKiBUaW1lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
NDQ2MTNBRjBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwNzAzMzREOTE0NUEwMDZGMDA4RDhENDUgLyogVHJhY2tCYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbElu
T25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAK
aW5kZXggOTRiNDlmMWU2OWNmZTMwZjFmZDlmZTE3NmQ1ZDg0M2QzYWQxNDkyYi4uMTM5OGZmN2Jk
MzI4NjliN2M1YjMwZGFhY2RmMGJmN2Y4MThhYjg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCkBAIC04MSw3ICs4MSw2IEBACiAjaW5jbHVk
ZSAiU2NyaXB0Q2FsbEZyYW1lLmNwcCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suY3BwIgog
I2luY2x1ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAiCi0jaW5jbHVkZSAiVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yLmNwcCIKICNpbmNsdWRlICJXb3JrZXJDb25zb2xlQWdlbnQuY3Bw
IgogI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIgogI2luY2x1ZGUgIldvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5oCmluZGV4IDZiZGMyZWE4YWJjMDcyODA1NGFiZmE3ZjE5MDM0NDE1YTdkYTE5MTIu
Ljg5NWU1ZDkwMWMwMzgxODBkYjdmOGZmZmQyNTdlNWE3NzNkY2RhNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTU5LDExICs1OSw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCcm93c2VyQ29va2llcygpIHsgfQogICAgIHZpcnR1
YWwgYm9vbCBjYW5Nb25pdG9yTWFpblRocmVhZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB0
eXBlZGVmIHZvaWQgKCpUcmFjZUV2ZW50Q2FsbGJhY2spKGNoYXIgcGhhc2UsIGNvbnN0IHVuc2ln
bmVkIGNoYXIqLCBjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCi0gICAg
ICAgIGludCBudW1BcmdzLCBjb25zdCBjaGFyKiBjb25zdCogYXJnTmFtZXMsIGNvbnN0IHVuc2ln
bmVkIGNoYXIqIGFyZ1R5cGVzLCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFyZ1ZhbHVlcywK
LSAgICAgICAgdW5zaWduZWQgY2hhciBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFRyYWNl
RXZlbnRDYWxsYmFjayhUcmFjZUV2ZW50Q2FsbGJhY2spIHsgfQotCiAgICAgdmlydHVhbCBib29s
IGNhbk92ZXJyaWRlRGV2aWNlTWV0cmljcygpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgb3ZlcnJpZGVEZXZpY2VNZXRyaWNzKGludCAvKndpZHRoKi8sIGludCAvKmhlaWdo
dCovLCBmbG9hdCAvKmZvbnRTY2FsZUZhY3RvciovLCBib29sIC8qZml0V2luZG93Ki8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAK
aW5kZXggZDg5MmFlODhmOWE1NDkwYjFlNmVlNGEwNjc0MmE5ZWEwYTU4OTE1Ni4uOGI3ZDljZDk1
NzcyODE3MjQ3OWY1NzRiOGUxZGZmOGM0ODE5ZTQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtNTIsNyArNTIsNiBA
QAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9u
c2UuaCIKICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKLSNpbmNsdWRlICJUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogCkBAIC0xOTEsOCArMTkwLDYgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFy
dChFcnJvclN0cmluZyosIGNvbnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGgsIGMKICAgICBtX2lu
c3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclRpbWVsaW5lQWdlbnQodGhpcyk7CiAgICAg
U2NyaXB0R0NFdmVudDo6YWRkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICBtX3N0YXRlLT5zZXRC
b29sZWFuKFRpbWVsaW5lQWdlbnRTdGF0ZTo6dGltZWxpbmVBZ2VudEVuYWJsZWQsIHRydWUpOwot
ICAgIGlmIChtX2NsaWVudCAmJiBtX3BhZ2VBZ2VudCkKLSAgICAgICAgbV90cmFjZUV2ZW50UHJv
Y2Vzc29yID0gYWRvcHRSZWYobmV3IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcihtX3dlYWtG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgbV9jbGllbnQpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpzdG9wKEVycm9yU3RyaW5nKikKQEAgLTIwMCw4ICsxOTcsNiBAQCB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQogICAgIGlmICghbV9z
dGF0ZS0+Z2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVk
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90cmFjZUV2ZW50UHJvY2Vzc29yLT5zaHV0ZG93
bigpOwotICAgIG1fdHJhY2VFdmVudFByb2Nlc3Nvci5jbGVhcigpOwogICAgIG1fd2Vha0ZhY3Rv
cnkucmV2b2tlQWxsKCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JU
aW1lbGluZUFnZW50KDApOwogICAgIFNjcmlwdEdDRXZlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIo
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaAppbmRleCAxMThkNzBkMGJmOTg5ODdjZWEzYTU2ODBlZjgxM2FhODAwZGU5ZTI2Li4y
MDFlMTQ4YzQ2M2ZmMGQ3YTI0N2ZhMDVkODEwMTMyMTYxMGI2ZTM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTYwLDcgKzYw
LDYgQEAgY2xhc3MgUGFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCkBAIC0xOTUsNyArMTk0
LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBUaW1lbGluZVJlY29y
ZFN0YWNrOwotICAgIGZyaWVuZCBjbGFzcyBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I7CiAK
ICAgICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7CiAgICAgICAgIFRpbWVsaW5lUmVjb3Jk
RW50cnkoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCwgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGRhdGEsIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNoaWxkcmVuLCBj
b25zdCBTdHJpbmcmIHR5cGUsIHNpemVfdCB1c2VkSGVhcFNpemVBdFN0YXJ0KQpAQCAtMjYxLDcg
KzI1OSw2IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yVHlwZSBtX2luc3BlY3RvclR5cGU7CiAg
ICAgSW5zcGVjdG9yQ2xpZW50KiBtX2NsaWVudDsKICAgICBXZWFrUHRyRmFjdG9yeTxJbnNwZWN0
b3JUaW1lbGluZUFnZW50PiBtX3dlYWtGYWN0b3J5OwotICAgIFJlZlB0cjxUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I+IG1fdHJhY2VFdmVudFByb2Nlc3NvcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVkMTE1MDg1M2NjOTlhNzUxNzA1ODk2NTNmMTY0ZjZiOGQ1Yjk5ODQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMjcg
KzAsMCBAQAotLyoKLSogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0qCi0qIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0qIG1ldDoKLSoKLSog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0qIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotKiBk
aXN0cmlidXRpb24uCi0qICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSoKLSogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0q
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0qIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0q
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLQotI2luY2x1ZGUgIlRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvci5oIgotCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCi0jaW5jbHVkZSAiSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmgiCi0KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgotI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1uYW1lc3BhY2UgewotCi1jbGFzcyBU
cmFjZUV2ZW50RGlzcGF0Y2hlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJhY2VFdmVu
dERpc3BhdGNoZXIpOwotcHVibGljOgotICAgIHN0YXRpYyBUcmFjZUV2ZW50RGlzcGF0Y2hlciog
aW5zdGFuY2UoKQotICAgIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChUcmFjZUV2ZW50
RGlzcGF0Y2hlciwgaW5zdGFuY2UsICgpKTsKLSAgICAgICAgcmV0dXJuICZpbnN0YW5jZTsKLSAg
ICB9Ci0KLSAgICB2b2lkIGFkZFByb2Nlc3NvcihUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3Iq
IHByb2Nlc3NvciwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCi0gICAgewotICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9tdXRleCk7Ci0KLSAgICAgICAgbV9wcm9jZXNzb3JzLmFwcGVuZChw
cm9jZXNzb3IpOwotICAgICAgICBpZiAobV9wcm9jZXNzb3JzLnNpemUoKSA9PSAxKQotICAgICAg
ICAgICAgY2xpZW50LT5zZXRUcmFjZUV2ZW50Q2FsbGJhY2soZGlzcGF0Y2hFdmVudE9uQW55VGhy
ZWFkKTsKLSAgICB9Ci0KLSAgICB2b2lkIHJlbW92ZVByb2Nlc3NvcihUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IqIHByb2Nlc3NvciwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCi0gICAgewot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7Ci0KLSAgICAgICAgc2l6ZV90IGlu
ZGV4ID0gbV9wcm9jZXNzb3JzLmZpbmQocHJvY2Vzc29yKTsKLSAgICAgICAgaWYgKGluZGV4ID09
IG5vdEZvdW5kKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtX3Byb2Nlc3NvcnMucmVtb3ZlKGluZGV4
KTsKLSAgICAgICAgaWYgKG1fcHJvY2Vzc29ycy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjbGll
bnQtPnNldFRyYWNlRXZlbnRDYWxsYmFjaygwKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgVHJh
Y2VFdmVudERpc3BhdGNoZXIoKSB7IH0KLQotICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoRXZlbnRP
bkFueVRocmVhZChjaGFyIHBoYXNlLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgY29uc3QgY2hhciog
bmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAotICAgICAgICBpbnQgbnVtQXJncywgY29uc3Qg
Y2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBlcywgY29u
c3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCi0gICAgICAgIHVuc2lnbmVkIGNoYXIg
ZmxhZ3MpCi0gICAgewotICAgICAgICBUcmFjZUV2ZW50RGlzcGF0Y2hlciogc2VsZiA9IGluc3Rh
bmNlKCk7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
PiA+IHByb2Nlc3NvcnM7Ci0gICAgICAgIHsKLSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihzZWxmLT5tX211dGV4KTsKLSAgICAgICAgICAgIHByb2Nlc3NvcnMgPSBzZWxmLT5tX3Byb2Nl
c3NvcnM7Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChpbnQgaSA9IDAsIHNpemUgPSBwcm9jZXNz
b3JzLnNpemUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgcHJvY2Vzc29yc1tpXS0+
cHJvY2Vzc0V2ZW50T25BbnlUaHJlYWQoc3RhdGljX2Nhc3Q8VGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjpUcmFjZUV2ZW50UGhhc2U+KHBoYXNlKSwKLSAgICAgICAgICAgICAgICBuYW1lLCBp
ZCwgbnVtQXJncywgYXJnTmFtZXMsIGFyZ1R5cGVzLCBhcmdWYWx1ZXMsIGZsYWdzKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIE11dGV4IG1fbXV0ZXg7Ci0gICAgVmVjdG9yPFJlZlB0cjxUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I+ID4gbV9wcm9jZXNzb3JzOwotfTsKLQotfSAvLyBuYW1l
c3BjZQotCi0KLVRpbWVsaW5lUmVjb3JkU3RhY2s6OlRpbWVsaW5lUmVjb3JkU3RhY2soV2Vha1B0
cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiB0aW1lbGluZUFnZW50KQotICAgIDogbV90aW1lbGlu
ZUFnZW50KHRpbWVsaW5lQWdlbnQpCi17Ci19Ci0KLXZvaWQgVGltZWxpbmVSZWNvcmRTdGFjazo6
YWRkU2NvcGVkUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQpCi17Ci0g
ICAgbV9zdGFjay5hcHBlbmQoRW50cnkocmVjb3JkKSk7Ci19Ci0KLXZvaWQgVGltZWxpbmVSZWNv
cmRTdGFjazo6Y2xvc2VTY29wZWRSZWNvcmQoZG91YmxlIGVuZFRpbWUpCi17Ci0gICAgaWYgKG1f
c3RhY2suaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgRW50cnkgbGFzdCA9IG1fc3Rh
Y2subGFzdCgpOwotICAgIG1fc3RhY2sucmVtb3ZlTGFzdCgpOwotICAgIGxhc3QucmVjb3JkLT5z
ZXROdW1iZXIoImVuZFRpbWUiLCBlbmRUaW1lKTsKLSAgICBpZiAobGFzdC5jaGlsZHJlbi0+bGVu
Z3RoKCkpCi0gICAgICAgIGxhc3QucmVjb3JkLT5zZXRBcnJheSgiY2hpbGRyZW4iLCBsYXN0LmNo
aWxkcmVuKTsKLSAgICBhZGRJbnN0YW50UmVjb3JkKGxhc3QucmVjb3JkKTsKLX0KLQotdm9pZCBU
aW1lbGluZVJlY29yZFN0YWNrOjphZGRJbnN0YW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQpCi17Ci0gICAgaWYgKG1fc3RhY2suaXNFbXB0eSgpKQotICAgICAgICBz
ZW5kKHJlY29yZCk7Ci0gICAgZWxzZQotICAgICAgICBtX3N0YWNrLmxhc3QoKS5jaGlsZHJlbi0+
cHVzaE9iamVjdChyZWNvcmQpOwotfQotCi0jaWZuZGVmIE5ERUJVRwotYm9vbCBUaW1lbGluZVJl
Y29yZFN0YWNrOjppc09wZW5SZWNvcmRPZlR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQotewotICAg
IFN0cmluZyBsYXN0UmVjb3JkVHlwZTsKLSAgICByZXR1cm4gbV9zdGFjay5pc0VtcHR5KCkgfHwg
KG1fc3RhY2subGFzdCgpLnJlY29yZC0+Z2V0U3RyaW5nKCJ0eXBlIiwgJmxhc3RSZWNvcmRUeXBl
KSAmJiB0eXBlID09IGxhc3RSZWNvcmRUeXBlKTsKLX0KLSNlbmRpZgotCi12b2lkIFRpbWVsaW5l
UmVjb3JkU3RhY2s6OnNlbmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCkKLXsK
LSAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gbV90aW1lbGluZUFn
ZW50LmdldCgpOwotICAgIGlmICghdGltZWxpbmVBZ2VudCkKLSAgICAgICAgcmV0dXJuOwotICAg
IHRpbWVsaW5lQWdlbnQtPnNlbmRFdmVudChyZWNvcmQpOwotfQotCi1UaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvcihXZWFrUHRyPEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ+IHRpbWVsaW5lQWdlbnQsIEluc3BlY3RvckNsaWVudCAqY2xpZW50KQot
ICAgIDogbV90aW1lbGluZUFnZW50KHRpbWVsaW5lQWdlbnQpCi0gICAgLCBtX3RpbWVDb252ZXJ0
ZXIodGltZWxpbmVBZ2VudC5nZXQoKS0+dGltZUNvbnZlcnRlcigpKQotICAgICwgbV9pbnNwZWN0
b3JDbGllbnQoY2xpZW50KQotICAgICwgbV9wYWdlSWQocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25l
ZCBsb25nIGxvbmc+KG1fdGltZWxpbmVBZ2VudC5nZXQoKS0+cGFnZSgpKSkKLSAgICAsIG1fbGF5
ZXJJZCgwKQotewotICAgIHJlZ2lzdGVySGFuZGxlcihJbnN0cnVtZW50YXRpb25FdmVudHM6OkJl
Z2luRnJhbWUsIFRyYWNlUGhhc2VJbnN0YW50LCAmVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
OjpvbkJlZ2luRnJhbWUpOwotICAgIHJlZ2lzdGVySGFuZGxlcihJbnN0cnVtZW50YXRpb25FdmVu
dHM6OlBhaW50TGF5ZXIsIFRyYWNlUGhhc2VCZWdpbiwgJlRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvcjo6b25QYWludExheWVyQmVnaW4pOwotICAgIHJlZ2lzdGVySGFuZGxlcihJbnN0cnVtZW50
YXRpb25FdmVudHM6OlBhaW50TGF5ZXIsIFRyYWNlUGhhc2VFbmQsICZUaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3I6Om9uUGFpbnRMYXllckVuZCk7Ci0gICAgcmVnaXN0ZXJIYW5kbGVyKEluc3Ry
dW1lbnRhdGlvbkV2ZW50czo6UmFzdGVyVGFzaywgVHJhY2VQaGFzZUJlZ2luLCAmVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yOjpvblJhc3RlclRhc2tCZWdpbik7Ci0gICAgcmVnaXN0ZXJIYW5k
bGVyKEluc3RydW1lbnRhdGlvbkV2ZW50czo6UmFzdGVyVGFzaywgVHJhY2VQaGFzZUVuZCwgJlRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25SYXN0ZXJUYXNrRW5kKTsKLSAgICByZWdpc3Rl
ckhhbmRsZXIoSW5zdHJ1bWVudGF0aW9uRXZlbnRzOjpMYXllciwgVHJhY2VQaGFzZURlbGV0ZU9i
amVjdCwgJlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25MYXllckRlbGV0ZWQpOwotICAg
IHJlZ2lzdGVySGFuZGxlcihJbnN0cnVtZW50YXRpb25FdmVudHM6OlBhaW50LCBUcmFjZVBoYXNl
SW5zdGFudCwgJlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25QYWludCk7Ci0gICAgcmVn
aXN0ZXJIYW5kbGVyKFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpJbWFnZURlY29kZUV2ZW50LCBU
cmFjZVBoYXNlQmVnaW4sICZUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9uSW1hZ2VEZWNv
ZGVCZWdpbik7Ci0gICAgcmVnaXN0ZXJIYW5kbGVyKFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uOjpJ
bWFnZURlY29kZUV2ZW50LCBUcmFjZVBoYXNlRW5kLCAmVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yOjpvbkltYWdlRGVjb2RlRW5kKTsKLQotICAgIFRyYWNlRXZlbnREaXNwYXRjaGVyOjppbnN0
YW5jZSgpLT5hZGRQcm9jZXNzb3IodGhpcywgbV9pbnNwZWN0b3JDbGllbnQpOwotfQotCi1UaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6On5UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoKQot
ewotfQotCi12b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cmVnaXN0ZXJIYW5kbGVy
KGNvbnN0IGNoYXIqIG5hbWUsIFRyYWNlRXZlbnRQaGFzZSBwaGFzZSwgVHJhY2VFdmVudEhhbmRs
ZXIgaGFuZGxlcikKLXsKLSAgICBtX2hhbmRsZXJzQnlUeXBlLnNldChzdGQ6Om1ha2VfcGFpcihu
YW1lLCBwaGFzZSksIGhhbmRsZXIpOwotfQotCi12b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvcjo6c2h1dGRvd24oKQotewotICAgIFRyYWNlRXZlbnREaXNwYXRjaGVyOjppbnN0YW5jZSgp
LT5yZW1vdmVQcm9jZXNzb3IodGhpcywgbV9pbnNwZWN0b3JDbGllbnQpOwotfQotCi1zaXplX3Qg
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50OjpmaW5kUGFyYW1ldGVyKGNv
bnN0IGNoYXIqIG5hbWUpIGNvbnN0Ci17Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2FyZ3Vt
ZW50Q291bnQ7ICsraSkgewotICAgICAgICBpZiAoIXN0cmNtcChuYW1lLCBtX2FyZ3VtZW50TmFt
ZXNbaV0pKQotICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgfQotICAgIHJldHVybiBub3RGb3Vu
ZDsKLX0KLQotY29uc3QgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZVZhbHVlVW5p
b24mIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6cGFyYW1ldGVyKGNv
bnN0IGNoYXIqIG5hbWUsIFRyYWNlVmFsdWVUeXBlcyBleHBlY3RlZFR5cGUpIGNvbnN0Ci17Ci0g
ICAgc3RhdGljIFRyYWNlVmFsdWVVbmlvbiBtaXNzaW5nVmFsdWU7Ci0gICAgc2l6ZV90IGluZGV4
ID0gZmluZFBhcmFtZXRlcihuYW1lKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQgfHwgbV9h
cmd1bWVudFR5cGVzW2luZGV4XSAhPSBleHBlY3RlZFR5cGUpIHsKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBtaXNzaW5nVmFsdWU7Ci0gICAgfQotICAgIHJl
dHVybiAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBUcmFjZVZhbHVlVW5pb24qPihtX2FyZ3VtZW50
VmFsdWVzICsgaW5kZXgpOwotfQotCi12b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6
cHJvY2Vzc0V2ZW50T25BbnlUaHJlYWQoVHJhY2VFdmVudFBoYXNlIHBoYXNlLCBjb25zdCBjaGFy
KiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCi0gICAgaW50IG51bUFyZ3MsIGNvbnN0IGNo
YXIqIGNvbnN0KiBhcmdOYW1lcywgY29uc3QgdW5zaWduZWQgY2hhciogYXJnVHlwZXMsIGNvbnN0
IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnVmFsdWVzLAotICAgIHVuc2lnbmVkIGNoYXIpCi17Ci0g
ICAgSGFuZGxlcnNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9oYW5kbGVyc0J5VHlwZS5maW5kKHN0ZDo6
bWFrZV9wYWlyKG5hbWUsIHBoYXNlKSk7Ci0gICAgaWYgKGl0ID09IG1faGFuZGxlcnNCeVR5cGUu
ZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFRyYWNlRXZlbnQgZXZlbnQobW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCksIHBoYXNlLCBuYW1lLCBpZCwgY3VycmVudFRocmVhZCgpLCBu
dW1BcmdzLCBhcmdOYW1lcywgYXJnVHlwZXMsIGFyZ1ZhbHVlcyk7Ci0KLSAgICBpZiAoIWlzTWFp
blRocmVhZCgpKSB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2JhY2tncm91bmRFdmVu
dHNNdXRleCk7Ci0gICAgICAgIG1fYmFja2dyb3VuZEV2ZW50cy5hcHBlbmQoZXZlbnQpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgICh0aGlzLT4qKGl0LT52YWx1ZSkpKGV2ZW50KTsKLX0K
LQotdm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9uQmVnaW5GcmFtZShjb25zdCBU
cmFjZUV2ZW50JikKLXsKLSAgICBwcm9jZXNzQmFja2dyb3VuZEV2ZW50cygpOwotfQotCi12b2lk
IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25QYWludExheWVyQmVnaW4oY29uc3QgVHJh
Y2VFdmVudCYgZXZlbnQpCi17Ci0gICAgbV9sYXllcklkID0gZXZlbnQuYXNVSW50KEluc3RydW1l
bnRhdGlvbkV2ZW50QXJndW1lbnRzOjpMYXllcklkKTsKLSAgICBBU1NFUlQobV9sYXllcklkKTsK
LX0KLQotdm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9uUGFpbnRMYXllckVuZChj
b25zdCBUcmFjZUV2ZW50JikKLXsKLSAgICBtX2xheWVySWQgPSAwOwotfQotCi12b2lkIFRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25SYXN0ZXJUYXNrQmVnaW4oY29uc3QgVHJhY2VFdmVu
dCYgZXZlbnQpCi17Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIGxheWVySWQgPSBldmVudC5hc1VJ
bnQoSW5zdHJ1bWVudGF0aW9uRXZlbnRBcmd1bWVudHM6OkxheWVySWQpOwotICAgIGlmICghbV9r
bm93bkxheWVycy5jb250YWlucyhsYXllcklkKSkKLSAgICAgICAgcmV0dXJuOwotICAgIFRpbWVs
aW5lVGhyZWFkU3RhdGUmIHN0YXRlID0gdGhyZWFkU3RhdGUoZXZlbnQudGhyZWFkSWRlbnRpZmll
cigpKTsKLSAgICBBU1NFUlQoIXN0YXRlLmluUmFzdGVyaXplRXZlbnQpOwotICAgIHN0YXRlLmlu
UmFzdGVyaXplRXZlbnQgPSB0cnVlOwotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29y
ZCA9IGNyZWF0ZVJlY29yZChldmVudCwgVGltZWxpbmVSZWNvcmRUeXBlOjpSYXN0ZXJpemUpOwot
ICAgIHN0YXRlLnJlY29yZFN0YWNrLmFkZFNjb3BlZFJlY29yZChyZWNvcmQucmVsZWFzZSgpKTsK
LX0KLQotdm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9uUmFzdGVyVGFza0VuZChj
b25zdCBUcmFjZUV2ZW50JiBldmVudCkKLXsKLSAgICBUaW1lbGluZVRocmVhZFN0YXRlJiBzdGF0
ZSA9IHRocmVhZFN0YXRlKGV2ZW50LnRocmVhZElkZW50aWZpZXIoKSk7Ci0gICAgaWYgKCFzdGF0
ZS5pblJhc3Rlcml6ZUV2ZW50KQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKHN0YXRlLnJl
Y29yZFN0YWNrLmlzT3BlblJlY29yZE9mVHlwZShUaW1lbGluZVJlY29yZFR5cGU6OlJhc3Rlcml6
ZSkpOwotICAgIHN0YXRlLnJlY29yZFN0YWNrLmNsb3NlU2NvcGVkUmVjb3JkKG1fdGltZUNvbnZl
cnRlci5mcm9tTW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGV2ZW50LnRpbWVzdGFtcCgpKSk7
Ci0gICAgc3RhdGUuaW5SYXN0ZXJpemVFdmVudCA9IGZhbHNlOwotfQotCi12b2lkIFRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvcjo6b25JbWFnZURlY29kZUJlZ2luKGNvbnN0IFRyYWNlRXZlbnQm
IGV2ZW50KQotewotICAgIFRpbWVsaW5lVGhyZWFkU3RhdGUmIHN0YXRlID0gdGhyZWFkU3RhdGUo
ZXZlbnQudGhyZWFkSWRlbnRpZmllcigpKTsKLSAgICBpZiAoIXN0YXRlLmluUmFzdGVyaXplRXZl
bnQpCi0gICAgICAgIHJldHVybjsKLSAgICBzdGF0ZS5yZWNvcmRTdGFjay5hZGRTY29wZWRSZWNv
cmQoY3JlYXRlUmVjb3JkKGV2ZW50LCBUaW1lbGluZVJlY29yZFR5cGU6OkRlY29kZUltYWdlKSk7
Ci19Ci0KLXZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpvbkltYWdlRGVjb2RlRW5k
KGNvbnN0IFRyYWNlRXZlbnQmIGV2ZW50KQotewotICAgIFRpbWVsaW5lVGhyZWFkU3RhdGUmIHN0
YXRlID0gdGhyZWFkU3RhdGUoZXZlbnQudGhyZWFkSWRlbnRpZmllcigpKTsKLSAgICBpZiAoIXN0
YXRlLmluUmFzdGVyaXplRXZlbnQpCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoc3RhdGUu
cmVjb3JkU3RhY2suaXNPcGVuUmVjb3JkT2ZUeXBlKFRpbWVsaW5lUmVjb3JkVHlwZTo6RGVjb2Rl
SW1hZ2UpKTsKLSAgICBzdGF0ZS5yZWNvcmRTdGFjay5jbG9zZVNjb3BlZFJlY29yZChtX3RpbWVD
b252ZXJ0ZXIuZnJvbU1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShldmVudC50aW1lc3RhbXAo
KSkpOwotfQotCi12b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25MYXllckRlbGV0
ZWQoY29uc3QgVHJhY2VFdmVudCYgZXZlbnQpCi17Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIGlk
ID0gZXZlbnQuaWQoKTsKLSAgICBBU1NFUlQoaWQpOwotICAgIHByb2Nlc3NCYWNrZ3JvdW5kRXZl
bnRzKCk7Ci0gICAgbV9rbm93bkxheWVycy5yZW1vdmUoaWQpOwotfQotCi12b2lkIFRpbWVsaW5l
VHJhY2VFdmVudFByb2Nlc3Nvcjo6b25QYWludChjb25zdCBUcmFjZUV2ZW50JiBldmVudCkKLXsK
LSAgICBpZiAoIW1fbGF5ZXJJZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdW5zaWduZWQgbG9u
ZyBsb25nIHBhZ2VJZCA9IGV2ZW50LmFzVUludChJbnN0cnVtZW50YXRpb25FdmVudEFyZ3VtZW50
czo6UGFnZUlkKTsKLSAgICBpZiAocGFnZUlkID09IG1fcGFnZUlkKQotICAgICAgICBtX2tub3du
TGF5ZXJzLmFkZChtX2xheWVySWQpOwotfQotCi1QYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpjcmVhdGVSZWNvcmQoY29uc3QgVHJhY2VFdmVu
dCYgZXZlbnQsIGNvbnN0IFN0cmluZyYgcmVjb3JkVHlwZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGRhdGEpCi17Ci0gICAgZG91YmxlIHN0YXJ0VGltZSA9IG1fdGltZUNvbnZlcnRlci5m
cm9tTW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGV2ZW50LnRpbWVzdGFtcCgpKTsKLSAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUJhY2tncm91bmRSZWNvcmQoc3RhcnRUaW1lLCBTdHJpbmc6Om51bWJlcihldmVudC50aHJl
YWRJZGVudGlmaWVyKCkpKTsKLSAgICByZWNvcmQtPnNldFN0cmluZygidHlwZSIsIHJlY29yZFR5
cGUpOwotICAgIHJlY29yZC0+c2V0T2JqZWN0KCJkYXRhIiwgZGF0YSA/IGRhdGEgOiBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpKTsKLSAgICByZXR1cm4gcmVjb3JkLnJlbGVhc2UoKTsKLX0KLQot
dm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRz
KCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIFZlY3RvcjxUcmFjZUV2ZW50
PiBldmVudHM7Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9iYWNrZ3JvdW5k
RXZlbnRzTXV0ZXgpOwotICAgICAgICBldmVudHMucmVzZXJ2ZUNhcGFjaXR5KG1fYmFja2dyb3Vu
ZEV2ZW50cy5jYXBhY2l0eSgpKTsKLSAgICAgICAgbV9iYWNrZ3JvdW5kRXZlbnRzLnN3YXAoZXZl
bnRzKTsKLSAgICB9Ci0gICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBldmVudHMuc2l6ZSgp
OyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IFRyYWNlRXZlbnQmIGV2ZW50ID0gZXZl
bnRzW2ldOwotICAgICAgICBIYW5kbGVyc01hcDo6aXRlcmF0b3IgaXQgPSBtX2hhbmRsZXJzQnlU
eXBlLmZpbmQoc3RkOjptYWtlX3BhaXIoZXZlbnQubmFtZSgpLCBldmVudC5waGFzZSgpKSk7Ci0g
ICAgICAgIEFTU0VSVChpdCAhPSBtX2hhbmRsZXJzQnlUeXBlLmVuZCgpICYmIGl0LT52YWx1ZSk7
Ci0gICAgICAgICh0aGlzLT4qKGl0LT52YWx1ZSkpKGV2ZW50KTsKLSAgICB9Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjYjhiMzg3YTRkYWJlZDZmMDY2YzJl
MmYwMDkwYTkxOWQ1MmZmYTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5oCisrKyAvZGV2L251bGwKQEAgLTEsMjYyICswLDAgQEAKLS8qCi0qIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotKiBtZXQ6Ci0qCi0qICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0qIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSogZGlzdHJpYnV0aW9uLgotKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0qIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0qIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0qCi0qIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0q
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0qIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0qIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSovCi0KLSNpZm5kZWYgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKLSNkZWZpbmUg
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yX2gKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0K
LSNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9y
VmFsdWVzLmgiCi0KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIEluc3BlY3RvckNsaWVudDsKLWNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7
Ci1jbGFzcyBQYWdlOwotCi1jbGFzcyBUaW1lbGluZVJlY29yZFN0YWNrIHsKLXByaXZhdGU6Ci0g
ICAgc3RydWN0IEVudHJ5IHsKLSAgICAgICAgRW50cnkoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHJlY29yZCkKLSAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCkKLSAgICAgICAgICAgICwg
Y2hpbGRyZW4oSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpKQotICAgICAgICB7Ci0gICAgICAgIH0K
LQotICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQ7Ci0gICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW47Ci0gICAgfTsKLQotcHVibGljOgotICAgIFRpbWVs
aW5lUmVjb3JkU3RhY2soKSB7IH0KLSAgICBUaW1lbGluZVJlY29yZFN0YWNrKFdlYWtQdHI8SW5z
cGVjdG9yVGltZWxpbmVBZ2VudD4pOwotCi0gICAgdm9pZCBhZGRTY29wZWRSZWNvcmQoUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCk7Ci0gICAgdm9pZCBjbG9zZVNjb3BlZFJlY29y
ZChkb3VibGUgZW5kVGltZSk7Ci0gICAgdm9pZCBhZGRJbnN0YW50UmVjb3JkKFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQpOwotCi0jaWZuZGVmIE5ERUJVRwotICAgIGJvb2wgaXNP
cGVuUmVjb3JkT2ZUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7Ci0jZW5kaWYKLQotcHJpdmF0ZToK
LSAgICB2b2lkIHNlbmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KTsKLQotICAgIFdlYWtQ
dHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OwotICAgIFZlY3RvcjxF
bnRyeT4gbV9zdGFjazsKLX07Ci0KLWNsYXNzIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvciA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I+
IHsKLXB1YmxpYzoKLSAgICAvLyBGSVhNRTogcmUtdXNlIGRlZmluaXRpb25zIGluIFRyYWNlRXZl
bnQuaCBvbmNlIGl0J3MgcHJvbW90ZWQgdG8gYWxsIHBsYXRmb3Jtcy4KLSAgICBlbnVtIFRyYWNl
RXZlbnRQaGFzZSB7Ci0gICAgICAgIFRyYWNlUGhhc2VCZWdpbiA9ICdCJywKLSAgICAgICAgVHJh
Y2VQaGFzZUVuZCA9ICdFJywKLSAgICAgICAgVHJhY2VQaGFzZUluc3RhbnQgPSAnSScsCi0gICAg
ICAgIFRyYWNlUGhhc2VDcmVhdGVPYmplY3QgPSAnTicsCi0gICAgICAgIFRyYWNlUGhhc2VEZWxl
dGVPYmplY3QgPSAnRCcKLSAgICB9OwotCi0gICAgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29y
KFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4sIEluc3BlY3RvckNsaWVudCopOwotICAg
IH5UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IoKTsKLQotICAgIHZvaWQgc2h1dGRvd24oKTsK
LSAgICB2b2lkIHByb2Nlc3NFdmVudE9uQW55VGhyZWFkKFRyYWNlRXZlbnRQaGFzZSwgY29uc3Qg
Y2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLAotICAgICAgICBpbnQgbnVtQXJncywg
Y29uc3QgY2hhciogY29uc3QqIGFyZ05hbWVzLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBhcmdUeXBl
cywgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nKiBhcmdWYWx1ZXMsCi0gICAgICAgIHVuc2lnbmVk
IGNoYXIgZmxhZ3MpOwotCi1wcml2YXRlOgotICAgIC8vIEZJWE1FOiB1c2UgdGhlIGRlZmluaXRp
b24gaW4gVHJhY2VFdmVudC5oIG9uY2Ugd2UgZXhwb3NlIHRoZSBsYXR0ZXIgdG8gYWxsIHBsYWZv
cm1zLgotICAgIHVuaW9uIFRyYWNlVmFsdWVVbmlvbiB7Ci0gICAgICAgIGJvb2wgbV9ib29sOwot
ICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV91aW50OwotICAgICAgICBsb25nIGxvbmcgbV9p
bnQ7Ci0gICAgICAgIGRvdWJsZSBtX2RvdWJsZTsKLSAgICAgICAgY29uc3Qgdm9pZCogbV9wb2lu
dGVyOwotICAgICAgICBjb25zdCBjaGFyKiBtX3N0cmluZzsKLSAgICB9OwotCi0gICAgZW51bSBU
cmFjZVZhbHVlVHlwZXMgewotICAgICAgICBUeXBlQm9vbCA9IDEsCi0gICAgICAgIFR5cGVVSW50
ID0gMiwKLSAgICAgICAgVHlwZUludCA9IDMsCi0gICAgICAgIFR5cGVEb3VibGUgPSA0LAotICAg
ICAgICBUeXBlUG9pbnRlciA9IDUsCi0gICAgICAgIFR5cGVTdHJpbmcgPSA2LAotICAgICAgICBU
eXBlQ29weVN0cmluZyA9IDcKLSAgICB9OwotCi0gICAgc3RydWN0IFRpbWVsaW5lVGhyZWFkU3Rh
dGUgewotICAgICAgICBUaW1lbGluZVRocmVhZFN0YXRlKCkgeyB9Ci0KLSAgICAgICAgVGltZWxp
bmVUaHJlYWRTdGF0ZShXZWFrUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IHRpbWVsaW5lQWdl
bnQpCi0gICAgICAgICAgICA6IHJlY29yZFN0YWNrKHRpbWVsaW5lQWdlbnQpCi0gICAgICAgICAg
ICAsIGluUmFzdGVyaXplRXZlbnQoZmFsc2UpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAg
ICAgIFRpbWVsaW5lUmVjb3JkU3RhY2sgcmVjb3JkU3RhY2s7Ci0gICAgICAgIGJvb2wgaW5SYXN0
ZXJpemVFdmVudDsKLSAgICB9OwotCi0gICAgY2xhc3MgVHJhY2VFdmVudCB7Ci0gICAgcHVibGlj
OgotICAgICAgICBUcmFjZUV2ZW50KCkKLSAgICAgICAgICAgIDogbV9uYW1lKDApCi0gICAgICAg
ICAgICAsIG1fYXJndW1lbnRDb3VudCgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAg
ICBUcmFjZUV2ZW50KGRvdWJsZSB0aW1lc3RhbXAsIFRyYWNlRXZlbnRQaGFzZSBwaGFzZSwgY29u
c3QgY2hhciogbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGlkLCBUaHJlYWRJZGVudGlmaWVyIHRo
cmVhZElkZW50aWZpZXIsCi0gICAgICAgICAgICBpbnQgYXJndW1lbnRDb3VudCwgY29uc3QgY2hh
ciogY29uc3QqIGFyZ3VtZW50TmFtZXMsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ3VtZW50VHlw
ZXMsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJndW1lbnRWYWx1ZXMpCi0gICAgICAgICAg
ICA6IG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLSAgICAgICAgICAgICwgbV9waGFzZShwaGFzZSkK
LSAgICAgICAgICAgICwgbV9uYW1lKG5hbWUpCi0gICAgICAgICAgICAsIG1faWQoaWQpCi0gICAg
ICAgICAgICAsIG1fdGhyZWFkSWRlbnRpZmllcih0aHJlYWRJZGVudGlmaWVyKQotICAgICAgICAg
ICAgLCBtX2FyZ3VtZW50Q291bnQoYXJndW1lbnRDb3VudCkKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYgKG1fYXJndW1lbnRDb3VudCA+IE1heEFyZ3VtZW50cykgewotICAgICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgICAgIG1fYXJndW1lbnRDb3VudCA9
IE1heEFyZ3VtZW50czsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbV9hcmd1bWVudENvdW50OyArK2kpIHsKLSAgICAgICAgICAgICAgICBtX2FyZ3VtZW50
TmFtZXNbaV0gPSBhcmd1bWVudE5hbWVzW2ldOwotICAgICAgICAgICAgICAgIG1fYXJndW1lbnRU
eXBlc1tpXSA9IGFyZ3VtZW50VHlwZXNbaV07Ci0gICAgICAgICAgICAgICAgbV9hcmd1bWVudFZh
bHVlc1tpXSA9IGFyZ3VtZW50VmFsdWVzW2ldOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0K
LSAgICAgICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9
Ci0gICAgICAgIFRyYWNlRXZlbnRQaGFzZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGhhc2U7
IH0KLSAgICAgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQot
ICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0g
ICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1fdGhyZWFkSWRlbnRpZmllcjsgfQotICAgICAgICBpbnQgYXJndW1lbnRDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fYXJndW1lbnRDb3VudDsgfQotICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0
IHsgcmV0dXJuICFtX25hbWU7IH0KLQotICAgICAgICBib29sIGFzQm9vbChjb25zdCBjaGFyKiBu
YW1lKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcGFyYW1ldGVyKG5hbWUs
IFR5cGVCb29sKS5tX2Jvb2w7Ci0gICAgICAgIH0KLSAgICAgICAgbG9uZyBsb25nIGFzSW50KGNv
bnN0IGNoYXIqIG5hbWUpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHNpemVfdCBpbmRl
eCA9IGZpbmRQYXJhbWV0ZXIobmFtZSk7Ci0gICAgICAgICAgICBpZiAoaW5kZXggPT0gbm90Rm91
bmQgfHwgKG1fYXJndW1lbnRUeXBlc1tpbmRleF0gIT0gVHlwZUludCAmJiBtX2FyZ3VtZW50VHlw
ZXNbaW5kZXhdICE9IFR5cGVVSW50KSkgewotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVHJhY2VWYWx1ZVVuaW9uKj4obV9h
cmd1bWVudFZhbHVlcyArIGluZGV4KS0+bV9pbnQ7Ci0gICAgICAgIH0KLSAgICAgICAgdW5zaWdu
ZWQgbG9uZyBsb25nIGFzVUludChjb25zdCBjaGFyKiBuYW1lKSBjb25zdAotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gYXNJbnQobmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgZG91Ymxl
IGFzRG91YmxlKGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBwYXJhbWV0ZXIobmFtZSwgVHlwZURvdWJsZSkubV9kb3VibGU7Ci0gICAgICAgIH0K
LSAgICAgICAgY29uc3QgY2hhciogYXNTdHJpbmcoY29uc3QgY2hhciogbmFtZSkgY29uc3QKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcihuYW1lLCBUeXBlU3RyaW5nKS5t
X3N0cmluZzsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgZW51bSB7IE1heEFy
Z3VtZW50cyA9IDIgfTsKLQotICAgICAgICBzaXplX3QgZmluZFBhcmFtZXRlcihjb25zdCBjaGFy
KikgY29uc3Q7Ci0gICAgICAgIGNvbnN0IFRyYWNlVmFsdWVVbmlvbiYgcGFyYW1ldGVyKGNvbnN0
IGNoYXIqIG5hbWUsIFRyYWNlVmFsdWVUeXBlcyBleHBlY3RlZFR5cGUpIGNvbnN0OwotCi0gICAg
ICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKLSAgICAgICAgVHJhY2VFdmVudFBoYXNlIG1fcGhhc2U7
Ci0gICAgICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBsb25n
IG1faWQ7Ci0gICAgICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZGVudGlmaWVyOwotICAg
ICAgICBpbnQgbV9hcmd1bWVudENvdW50OwotICAgICAgICBjb25zdCBjaGFyKiBtX2FyZ3VtZW50
TmFtZXNbTWF4QXJndW1lbnRzXTsKLSAgICAgICAgdW5zaWduZWQgY2hhciBtX2FyZ3VtZW50VHlw
ZXNbTWF4QXJndW1lbnRzXTsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fYXJndW1lbnRW
YWx1ZXNbTWF4QXJndW1lbnRzXTsKLSAgICB9OwotCi0gICAgdHlwZWRlZiB2b2lkIChUaW1lbGlu
ZVRyYWNlRXZlbnRQcm9jZXNzb3I6OipUcmFjZUV2ZW50SGFuZGxlcikoY29uc3QgVHJhY2VFdmVu
dCYpOwotCi0gICAgVGltZWxpbmVUaHJlYWRTdGF0ZSYgdGhyZWFkU3RhdGUoVGhyZWFkSWRlbnRp
ZmllciB0aHJlYWQpCi0gICAgewotICAgICAgICBUaHJlYWRTdGF0ZU1hcDo6aXRlcmF0b3IgaXQg
PSBtX3RocmVhZFN0YXRlcy5maW5kKHRocmVhZCk7Ci0gICAgICAgIGlmIChpdCAhPSBtX3RocmVh
ZFN0YXRlcy5lbmQoKSkKLSAgICAgICAgICAgIHJldHVybiBpdC0+dmFsdWU7Ci0gICAgICAgIHJl
dHVybiBtX3RocmVhZFN0YXRlcy5hZGQodGhyZWFkLCBUaW1lbGluZVRocmVhZFN0YXRlKG1fdGlt
ZWxpbmVBZ2VudCkpLml0ZXJhdG9yLT52YWx1ZTsKLSAgICB9Ci0KLSAgICB2b2lkIHByb2Nlc3NC
YWNrZ3JvdW5kRXZlbnRzKCk7Ci0gICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0
ZVJlY29yZChjb25zdCBUcmFjZUV2ZW50JiwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBlLCBQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IDApOwotCi0gICAgdm9pZCByZWdpc3Rlckhh
bmRsZXIoY29uc3QgY2hhciogbmFtZSwgVHJhY2VFdmVudFBoYXNlLCBUcmFjZUV2ZW50SGFuZGxl
cik7Ci0KLSAgICB2b2lkIG9uQmVnaW5GcmFtZShjb25zdCBUcmFjZUV2ZW50Jik7Ci0gICAgdm9p
ZCBvblBhaW50TGF5ZXJCZWdpbihjb25zdCBUcmFjZUV2ZW50Jik7Ci0gICAgdm9pZCBvblBhaW50
TGF5ZXJFbmQoY29uc3QgVHJhY2VFdmVudCYpOwotICAgIHZvaWQgb25SYXN0ZXJUYXNrQmVnaW4o
Y29uc3QgVHJhY2VFdmVudCYpOwotICAgIHZvaWQgb25SYXN0ZXJUYXNrRW5kKGNvbnN0IFRyYWNl
RXZlbnQmKTsKLSAgICB2b2lkIG9uSW1hZ2VEZWNvZGVCZWdpbihjb25zdCBUcmFjZUV2ZW50Jik7
Ci0gICAgdm9pZCBvbkltYWdlRGVjb2RlRW5kKGNvbnN0IFRyYWNlRXZlbnQmKTsKLSAgICB2b2lk
IG9uTGF5ZXJEZWxldGVkKGNvbnN0IFRyYWNlRXZlbnQmKTsKLSAgICB2b2lkIG9uUGFpbnQoY29u
c3QgVHJhY2VFdmVudCYpOwotCi0gICAgV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBt
X3RpbWVsaW5lQWdlbnQ7Ci0gICAgVGltZWxpbmVUaW1lQ29udmVydGVyIG1fdGltZUNvbnZlcnRl
cjsKLSAgICBJbnNwZWN0b3JDbGllbnQqIG1faW5zcGVjdG9yQ2xpZW50OwotICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyBtX3BhZ2VJZDsKLQotICAgIHR5cGVkZWYgSGFzaE1hcDxzdGQ6OnBhaXI8U3Ry
aW5nLCBpbnQ+LCBUcmFjZUV2ZW50SGFuZGxlcj4gSGFuZGxlcnNNYXA7Ci0gICAgSGFuZGxlcnNN
YXAgbV9oYW5kbGVyc0J5VHlwZTsKLSAgICBNdXRleCBtX2JhY2tncm91bmRFdmVudHNNdXRleDsK
LSAgICBWZWN0b3I8VHJhY2VFdmVudD4gbV9iYWNrZ3JvdW5kRXZlbnRzOwotCi0gICAgdHlwZWRl
ZiBIYXNoTWFwPFRocmVhZElkZW50aWZpZXIsIFRpbWVsaW5lVGhyZWFkU3RhdGU+IFRocmVhZFN0
YXRlTWFwOwotICAgIFRocmVhZFN0YXRlTWFwIG1fdGhyZWFkU3RhdGVzOwotCi0gICAgSGFzaFNl
dDx1bnNpZ25lZCBsb25nIGxvbmc+IG1fa25vd25MYXllcnM7Ci0gICAgdW5zaWduZWQgbG9uZyBs
b25nIG1fbGF5ZXJJZDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShJTlNQRUNUT1IpCi0jZW5kaWYgLy8gIWRlZmluZWQoVGltZWxpbmVUcmFjZUV2ZW50
UHJvY2Vzc29yX2gpCg==
</data>
<flag name="review"
          id="233415"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="233416"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>