<?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>54755</bug_id>
          
          <creation_ts>2011-02-18 10:21:55 -0800</creation_ts>
          <short_desc>REGRESSION (WebKit2): HTTP requests time out after 60 seconds</short_desc>
          <delta_ts>2011-02-21 14:47:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>aroben</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>353648</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-18 10:21:55 -0800</bug_when>
    <thetext>Safari changes NSURLRequest default timeout from 60 seconds to 1 year - but now that Safari is a different process, that has no effect on WebKit page loading.

&lt;rdar://problem/9006592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354724</commentid>
    <comment_count>1</comment_count>
      <attachid>83201</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-21 12:18:42 -0800</bug_when>
    <thetext>Created attachment 83201
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354726</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-21 12:19:46 -0800</bug_when>
    <thetext>Attachment 83201 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/Shared/WebURLRequest.h:64:  The parameter name &quot;timeoutInterval&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 19 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>354729</commentid>
    <comment_count>3</comment_count>
      <attachid>83201</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 12:28:08 -0800</bug_when>
    <thetext>Comment on attachment 83201
proposed patch

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

I&apos;m not sure I understand why we need this API on both WKURLRequest and WKContext.

&gt; Source/WebKit2/Shared/WebURLRequest.cpp:29
&gt; +    WebCore::ResourceRequest::setDefaultTimeoutInterval(timeoutInterval);

No need for the WebCore::

&gt; Source/WebKit2/Shared/WebURLRequest.cpp:32
&gt; +
&gt; +

Extra blank line here.

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:233
&gt; +    ResourceRequestBase::setDefaultTimeoutInterval(timeoutInterval);

Why &quot;ResourceRequestBase&quot; instead of &quot;ResourceRequest&quot;, like WebURLRequest.cpp uses?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354747</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-21 12:46:28 -0800</bug_when>
    <thetext>&gt; I&apos;m not sure I understand why we need this API on both WKURLRequest and WKContext.

From implementation point of view, one affects requests in the UI process, while another affects Web contexts. It seems unlikely indeed that one would ever want these different, but I&apos;m not sure how we could do it with one API.

Presumably it would be the WKURLRequest one that would stay - how can I enumerate all contexts to notify them of a change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354757</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 13:01:37 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; I&apos;m not sure I understand why we need this API on both WKURLRequest and WKContext.
&gt; 
&gt; From implementation point of view, one affects requests in the UI process, while another affects Web contexts. It seems unlikely indeed that one would ever want these different, but I&apos;m not sure how we could do it with one API.
&gt; 
&gt; Presumably it would be the WKURLRequest one that would stay - how can I enumerate all contexts to notify them of a change?

I don&apos;t think there&apos;s an existing way to enumerate all contexts, but it would probably be pretty easy to add one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354808</commentid>
    <comment_count>6</comment_count>
      <attachid>83216</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-21 14:36:02 -0800</bug_when>
    <thetext>Created attachment 83216
proposed patch

Hide it all under a WKURLRequest API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354813</commentid>
    <comment_count>7</comment_count>
      <attachid>83216</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 14:39:41 -0800</bug_when>
    <thetext>Comment on attachment 83216
proposed patch

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

&gt; Source/WebKit2/UIProcess/WebProcessManager.h:44
&gt; +    void getAllWebProcessContexts(Vector&lt;WebContext*&gt;&amp;);

Is there any other kind of context? Maybe this should just be called getAllContexts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354816</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-21 14:44:29 -0800</bug_when>
    <thetext>A context may not have a process at the moment, in which case it doesn&apos;t need to be notified.

Also, we (theoretically?) have a single-process model where the &quot;web process&quot; runs on a separate thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354817</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-21 14:47:48 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/79253&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83201</attachid>
            <date>2011-02-21 12:18:42 -0800</date>
            <delta_ts>2011-02-21 14:36:02 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>DefaultTimeout.txt</filename>
            <type>text/plain</type>
            <size>20835</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MjQyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDItMjEgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTiAoV2ViS2l0Mik6IEhUVFAgcmVxdWVzdHMg
dGltZSBvdXQgYWZ0ZXIgNjAgc2Vjb25kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTQ3NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwMDY1OTI+
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gaXQgd29uJ3QgYmUgZ3JlYXQgdG8gaGF2ZSBhIHRl
c3QgdGhhdCBydW5zIGZvciBhIG1pbnV0ZS4KKworICAgICAgICBJdCdzIG5vdyBwb3NzaWJsZSB0
byBzZXQgYSBkZWZhdWx0IHRpbWVvdXQgdG8gYmUgdXNlZCBhdCBSZXNvdXJjZVJlcXVlc3QgY3Jl
YXRpb24uIElmIG9uZQorICAgICAgICBoYXNuJ3QgYmVlbiBzZXQsIFJlc291cmNlUmVxdWVzdCB3
aWxsIGJlaGF2ZSBhcyBiZWZvcmUgKHVzZSBOU1VSTFJlcXVlc3QgZGVmYXVsdCBvbiBNYWMsCisg
ICAgICAgIG9yIHVzZSBJTlRfTUFYIG9uIG90aGVyIHBsYXRmb3JtcykuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVz
dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0RGVm
YXVsdFRpbWVvdXRJbnRlcnZhbCk6IFNldCB0aGUgc3RhdGljIG1lbWJlciB2YXJpYWJsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnVwZGF0ZVBsYXRmb3JtUmVxdWVz
dCk6IEFkZGVkIGFuIGFzc2VydGlvbiB0aGF0IHJlc291cmNlCisgICAgICAgIHJlcXVlc3QgaXMg
dXBkYXRlZC4gUGxhZm9ybSBjb2RlIG9mdGVuIGNhbGxzIHVwZGF0ZVJlc291cmNlUmVxdWVzdCgp
IGluZGlyZWN0bHkgZnJvbSB0aGlzCisgICAgICAgIGZ1bmN0aW9uLCBhbmQgdGhhdCBtdXN0IG9i
dmlvdXNseSBiZSBhIG5vLW9wLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFz
ZTo6dXBkYXRlUmVzb3VyY2VSZXF1ZXN0KTogQWRkZWQgYW4gYXNzZXJ0aW9uIGluIHRoZSBvcHBv
c2l0ZQorICAgICAgICBkaXJlY3Rpb24uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlcXVlc3RCYXNlLmg6IENoYW5nZWQgInVuc3BlY2lmaWVkVGltZW91dEludGVydmFsIiB0
bworICAgICAgICAiZGVmYXVsdFRpbWVvdXRJbnRlcnZhbCIuIEl0IGhhcyBiZWVuIHVzZWQgYXMg
ZGVmYXVsdCBieSBtb3N0IHBsYXRmb3JtcyBhbnl3YXkuCisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3RCYXNlOjpSZXNvdXJjZVJlcXVlc3RCYXNlKToKKworICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbTogKFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QpOgorICAgICAgICBOb3cgemVybyBpcyB0
aGUgbWFnaWMgdmFsdWUsIG5vdCBJTlRfTUFYLiBXZSdsbCB1c2UgTlNVUkxSZXF1ZXN0IGRlZmF1
bHQgaWYgbmVpdGhlcgorICAgICAgICBzZXRUaW1lb3V0SW50ZXJ2YWwoKSBub3Igc2V0RGVmYXVs
dFRpbWVvdXRJbnRlcnZhbCgpIGhhcyBiZWVuIGNhbGxlZC4KKwogMjAxMS0wMi0yMSAgR2F2aW4g
QmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2FtIFdlaW5pZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA3OTA1MSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC00OTIs
NiArNDkyLDggQEAgX19aTjdXZWJDb3JlMTlDU1NTdHlsZURlY2xhcmF0aW9uMTFzZXRQcgogX19a
TjdXZWJDb3JlMTlSZXNvdXJjZVJlcXVlc3RCYXNlMTFzZXRIVFRQQm9keUVOM1dURjEwUGFzc1Jl
ZlB0cklOU184Rm9ybURhdGFFRUUKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTEz
c2V0SFRUUE1ldGhvZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1
ZXN0QmFzZTE5YWRkSFRUUEhlYWRlckZpZWxkc0VSS05TXzEzSFRUUEhlYWRlck1hcEUKK19fWk43
V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTIyZGVmYXVsdFRpbWVvdXRJbnRlcnZhbEUKK19f
Wk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTI1c2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZh
bEVkCiBfX1pON1dlYkNvcmUxOVJlc291cmNlUmVxdWVzdEJhc2U2c2V0VVJMRVJLTlNfNEtVUkxF
CiBfX1pON1dlYkNvcmUxOVNlbGVjdGlvbkNvbnRyb2xsZXIxMHNldEZvY3VzZWRFYgogX19aTjdX
ZWJDb3JlMTlTZWxlY3Rpb25Db250cm9sbGVyMTJzZXRTZWxlY3Rpb25FUktOU18xNlZpc2libGVT
ZWxlY3Rpb25Fak5TMF8xOUN1cnNvckFsaWduT25TY3JvbGxFTlNfMTVUZXh0R3JhbnVsYXJpdHlF
TlNfMjBEaXJlY3Rpb25hbGl0eVBvbGljeUUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkocmV2aXNpb24g
NzkwNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVz
dEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxMyBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiAhUExBVEZPUk0oTUFDKSB8fCBV
U0UoQ0ZORVRXT1JLKQorZG91YmxlIFJlc291cmNlUmVxdWVzdEJhc2U6OmRlZmF1bHRUaW1lb3V0
SW50ZXJ2YWwgPSBJTlRfTUFYOworI2Vsc2UKKy8vIFdpbGwgdXNlIE5TVVJMUmVxdWVzdCBkZWZh
dWx0IHRpbWVvdXQgdW5sZXNzIHNldCB0byBhIG5vbi16ZXJvIHZhbHVlIHdpdGggc2V0RGVmYXVs
dFRpbWVvdXRJbnRlcnZhbCgpLgorZG91YmxlIFJlc291cmNlUmVxdWVzdEJhc2U6OmRlZmF1bHRU
aW1lb3V0SW50ZXJ2YWwgPSAwOworI2VuZGlmCisKIGlubGluZSBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIFJlc291cmNlUmVxdWVzdEJhc2U6OmFzUmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gKnN0YXRpY19jYXN0PGNvbnN0IFJlc291cmNlUmVxdWVzdCo+KHRoaXMpOwpAQCAt
NDA4LDExICs0MTUsMTcgQEAgYm9vbCBSZXNvdXJjZVJlcXVlc3RCYXNlOjppc0NvbmRpdGlvbmFs
KAogICAgICAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLmNvbnRhaW5zKCJJZi1Vbm1vZGlmaWVk
LVNpbmNlIikpOwogfQogCit2b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6OnNldERlZmF1bHRUaW1l
b3V0SW50ZXJ2YWwoZG91YmxlIHRpbWVvdXRJbnRlcnZhbCkKK3sKKyAgICBkZWZhdWx0VGltZW91
dEludGVydmFsID0gdGltZW91dEludGVydmFsOworfQorCiB2b2lkIFJlc291cmNlUmVxdWVzdEJh
c2U6OnVwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGxhdGZvcm1S
ZXF1ZXN0VXBkYXRlZCkKICAgICAgICAgcmV0dXJuOwotICAgIAorCisgICAgQVNTRVJUKG1fcmVz
b3VyY2VSZXF1ZXN0VXBkYXRlZCk7CiAgICAgY29uc3RfY2FzdDxSZXNvdXJjZVJlcXVlc3QmPihh
c1Jlc291cmNlUmVxdWVzdCgpKS5kb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpOwogICAgIG1fcGxh
dGZvcm1SZXF1ZXN0VXBkYXRlZCA9IHRydWU7CiB9CkBAIC00MjIsNiArNDM1LDcgQEAgdm9pZCBS
ZXNvdXJjZVJlcXVlc3RCYXNlOjp1cGRhdGVSZXNvdXJjZQogICAgIGlmIChtX3Jlc291cmNlUmVx
dWVzdFVwZGF0ZWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChtX3BsYXRmb3JtUmVx
dWVzdFVwZGF0ZWQpOwogICAgIGNvbnN0X2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0Jj4oYXNSZXNvdXJj
ZVJlcXVlc3QoKSkuZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKTsKICAgICBtX3Jlc291cmNlUmVx
dWVzdFVwZGF0ZWQgPSB0cnVlOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgJKHJldmlzaW9uIDc5MDUxKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDggKzQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBSZXR1cm5DYWNoZURhdGFEb250TG9hZCwgLy8gcmVzdWx0cyBvZiBhIHBvc3QgLSBhbGxv
dyBzdGFsZSBkYXRhIGFuZCBvbmx5IHVzZSBjYWNoZQogICAgIH07CiAKLSAgICBjb25zdCBpbnQg
dW5zcGVjaWZpZWRUaW1lb3V0SW50ZXJ2YWwgPSBJTlRfTUFYOwotCiAgICAgY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE7CiAK
QEAgLTg1LDcgKzgzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZXNvdXJjZVJl
cXVlc3RDYWNoZVBvbGljeSBjYWNoZVBvbGljeSgpIGNvbnN0OwogICAgICAgICB2b2lkIHNldENh
Y2hlUG9saWN5KFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IGNhY2hlUG9saWN5KTsKICAgICAg
ICAgCi0gICAgICAgIGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwoKSBjb25zdDsKKyAgICAgICAgZG91
YmxlIHRpbWVvdXRJbnRlcnZhbCgpIGNvbnN0OyAvLyBNYXkgcmV0dXJuIDAgd2hlbiB1c2luZyBw
bGF0Zm9ybSBkZWZhdWx0LgogICAgICAgICB2b2lkIHNldFRpbWVvdXRJbnRlcnZhbChkb3VibGUg
dGltZW91dEludGVydmFsKTsKICAgICAgICAgCiAgICAgICAgIGNvbnN0IEtVUkwmIGZpcnN0UGFy
dHlGb3JDb29raWVzKCkgY29uc3Q7CkBAIC0xNDgsOSArMTQ2LDEyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBzZXRSZXBvcnRSYXdIZWFkZXJzKGJvb2wgcmVwb3J0UmF3SGVh
ZGVycykgeyBtX3JlcG9ydFJhd0hlYWRlcnMgPSByZXBvcnRSYXdIZWFkZXJzOyB9CiAKICAgICAg
ICAgLy8gV2hhdCB0aGlzIHJlcXVlc3QgaXMgZm9yLgorICAgICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgbW92ZWQgb3V0IG9mIFJlc291cmNlUmVxdWVzdEJhc2UsIDxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg0ODM+LgogICAgICAgICBUYXJnZXRUeXBlIHRh
cmdldFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFR5cGU7IH0KICAgICAgICAgdm9pZCBz
ZXRUYXJnZXRUeXBlKFRhcmdldFR5cGUgdHlwZSkgeyBtX3RhcmdldFR5cGUgPSB0eXBlOyB9CiAK
KyAgICAgICAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbChkb3VibGUpOwor
CiAgICAgICAgIHN0YXRpYyBib29sIGNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBwcm90ZWN0ZWQ6CkBAIC0xNjksNyArMTcwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZXNvdXJjZVJlcXVlc3RCYXNlKGNvbnN0
IEtVUkwmIHVybCwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgcG9saWN5KQogICAgICAgICAg
ICAgOiBtX3VybCh1cmwpCiAgICAgICAgICAgICAsIG1fY2FjaGVQb2xpY3kocG9saWN5KQotICAg
ICAgICAgICAgLCBtX3RpbWVvdXRJbnRlcnZhbCh1bnNwZWNpZmllZFRpbWVvdXRJbnRlcnZhbCkK
KyAgICAgICAgICAgICwgbV90aW1lb3V0SW50ZXJ2YWwoZGVmYXVsdFRpbWVvdXRJbnRlcnZhbCkK
ICAgICAgICAgICAgICwgbV9odHRwTWV0aG9kKCJHRVQiKQogICAgICAgICAgICAgLCBtX2FsbG93
Q29va2llcyh0cnVlKQogICAgICAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdFVwZGF0ZWQodHJ1
ZSkKQEAgLTE5MSw3ICsxOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEtVUkwg
bV91cmw7CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgbV9jYWNoZVBvbGlj
eTsKLSAgICAgICAgZG91YmxlIG1fdGltZW91dEludGVydmFsOworICAgICAgICBkb3VibGUgbV90
aW1lb3V0SW50ZXJ2YWw7IC8vIDAgaXMgYSBtYWdpYyB2YWx1ZSBmb3IgcGxhdGZvcm0gZGVmYXVs
dCBvbiBwbGF0Zm9ybXMgdGhhdCBoYXZlIG9uZS4KICAgICAgICAgS1VSTCBtX2ZpcnN0UGFydHlG
b3JDb29raWVzOwogICAgICAgICBTdHJpbmcgbV9odHRwTWV0aG9kOwogICAgICAgICBIVFRQSGVh
ZGVyTWFwIG1faHR0cEhlYWRlckZpZWxkczsKQEAgLTIwOCw2ICsyMDksOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IGFzUmVzb3VyY2VSZXF1ZXN0KCkgY29uc3Q7CisKKyAgICAgICAgc3RhdGljIGRvdWJsZSBkZWZh
dWx0VGltZW91dEludGVydmFsOwogICAgIH07CiAKICAgICBib29sIGVxdWFsSWdub3JpbmdIZWFk
ZXJGaWVsZHMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dEJhc2UmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlUmVxdWVzdE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW0JKHJldmlzaW9uIDc5MDUxKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC00MCwxMSArNDAsMTIgQEAKIHR5cGVkZWYgdW5zaWduZWQgTlNVSW50
ZWdlcjsKICNlbmRpZgogCi1AaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoV2ViQ29yZUNvbnRlbnRE
aXNwb3NpdGlvbkVuY29kaW5nKQorQGludGVyZmFjZSBOU1VSTFJlcXVlc3QgKFdlYk5TVVJMUmVx
dWVzdERldGFpbHMpCiAtIChOU0FycmF5ICopY29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxs
YmFja0FycmF5OworKyAodm9pZClzZXREZWZhdWx0VGltZW91dEludGVydmFsOihOU1RpbWVJbnRl
cnZhbClzZWNvbmRzOwogQGVuZAogCi1AaW50ZXJmYWNlIE5TTXV0YWJsZVVSTFJlcXVlc3QgKFdl
YkNvcmVDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZykKK0BpbnRlcmZhY2UgTlNNdXRhYmxlVVJM
UmVxdWVzdCAoV2ViTXV0YWJsZU5TVVJMUmVxdWVzdERldGFpbHMpCiAtICh2b2lkKXNldENvbnRl
bnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheTooTlNBcnJheSAqKXRoZUVuY29kaW5n
RmFsbGJhY2tBcnJheTsKIEBlbmQKIApAQCAtMTI2LDggKzEyNywxMiBAQCB2b2lkIFJlc291cmNl
UmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlCiAjZW5kaWYKIAogICAgIFtuc1JlcXVlc3Qgc2V0
Q2FjaGVQb2xpY3k6KE5TVVJMUmVxdWVzdENhY2hlUG9saWN5KWNhY2hlUG9saWN5KCldOwotICAg
IGlmICh0aW1lb3V0SW50ZXJ2YWwoKSAhPSB1bnNwZWNpZmllZFRpbWVvdXRJbnRlcnZhbCkKLSAg
ICAgICAgW25zUmVxdWVzdCBzZXRUaW1lb3V0SW50ZXJ2YWw6dGltZW91dEludGVydmFsKCldOwor
CisgICAgZG91YmxlIHRpbWVvdXRJbnRlcnZhbCA9IFJlc291cmNlUmVxdWVzdEJhc2U6OnRpbWVv
dXRJbnRlcnZhbCgpOworICAgIGlmICh0aW1lb3V0SW50ZXJ2YWwpCisgICAgICAgIFtuc1JlcXVl
c3Qgc2V0VGltZW91dEludGVydmFsOnRpbWVvdXRJbnRlcnZhbF07CisgICAgLy8gT3RoZXJ3aXNl
LCByZXNwZWN0IE5TVVJMUmVxdWVzdCBkZWZhdWx0IHRpbWVvdXQuCisKICAgICBbbnNSZXF1ZXN0
IHNldE1haW5Eb2N1bWVudFVSTDpmaXJzdFBhcnR5Rm9yQ29va2llcygpXTsKICAgICBpZiAoIWh0
dHBNZXRob2QoKS5pc0VtcHR5KCkpCiAgICAgICAgIFtuc1JlcXVlc3Qgc2V0SFRUUE1ldGhvZDpo
dHRwTWV0aG9kKCldOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gNzkyNDIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NSBAQAorMjAxMS0w
Mi0yMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChXZWJLaXQyKTog
SFRUUCByZXF1ZXN0cyB0aW1lIG91dCBhZnRlciA2MCBzZWNvbmRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDc1NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vOTAwNjU5Mj4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV0tVUkxSZXF1ZXN0U2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbCk6CisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oOgorICAgICAgICBBZGRlZCBhbiBBUEkg
dG8gc2V0IGEgZGVmYXVsdCB0aW1lb3V0IGludGVydmFsIGZvciByZXF1ZXN0cyBjcmVhdGVkIGZy
b20gVVJMcy4gUmVxdWVzdHMKKyAgICAgICAgY3JlYXRlZCBmcm9tIE5TVVJMUmVxdWVzdCBvciBD
RlVSTFJlcXVlc3QgdGFrZSB0aW1lb3V0IGZyb20gdGhvc2UuCisKKyAgICAgICAgKiBTaGFyZWQv
V2ViVVJMUmVxdWVzdC5jcHA6IChXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OnNldERlZmF1bHRUaW1l
b3V0SW50ZXJ2YWwpOgorICAgICAgICAqIFNoYXJlZC9XZWJVUkxSZXF1ZXN0Lmg6CisgICAgICAg
IFBpcGUgdGhlIGRlZmF1bHQgdGltZW91dCBpbnRlcnZhbCBmcm9tIFdLVVJMUmVxdWVzdCBkb3du
IHRvIGFjdHVhbCBpbXBsZW1lbnRhdGlvbi4gU2luY2UKKyAgICAgICAgV2ViVVJMUmVxdWVzdCBp
cyBjdXJyZW50bHkgaW1wbGVtZW50ZWQgd2l0aCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIGl0
IGF1dG9tYXRpY2FsbHkgcmVzcGVjdHMKKyAgICAgICAgTlNVUkxSZXF1ZXN0IGRlZmF1bHQgdGlt
ZW91dCBpbnRlcnZhbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
OiAoV0tDb250ZXh0U2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgQWRkZWQgYW4gQVBJIHRvIHNl
dCBkZWZhdWx0IHRpbWVvdXQgaW50ZXJ2YWwgZm9yIHJlcXVlc3RzIGNyZWF0ZWQgaW50ZXJuYWxs
eSBieSB0aGUgV2ViCisgICAgICAgIHByb2Nlc3MsIGFzIG9wcG9zZWQgdG8gdGhvc2UgcGFzc2Vk
IGluIGZyb20gVUkgcHJvY2VzcyBhcyBXS1VSTFJlcXVlc3RzLgorCisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6V2ViQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmVuc3VyZVdlYlBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpzZXREZWZhdWx0UmVxdWVzdFRp
bWVvdXRJbnRlcnZhbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW46CisgICAgICAgIEp1c3QgdGhlIHJlZ3VsYXIgcGlwaW5nIGZvciBzZXR0aW5nIGEgY29udGV4
dCBwcm9wZXJ0eS4KKwogMjAxMS0wMi0yMSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3Vn
aEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAJKHJldmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCiAgICAgOiBzaG91bGRUcmFja1Zpc2l0ZWRMaW5r
cyhmYWxzZSkKICAgICAsIHNob3VsZEFsd2F5c1VzZUNvbXBsZXhUZXh0Q29kZVBhdGgoZmFsc2Up
CisgICAgLCBkZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChJTlRfTUFYKQogI2lmIFBMQVRG
T1JNKE1BQykKICAgICAsIG5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSgwKQogICAgICwgbnNVUkxD
YWNoZURpc2tDYXBhY2l0eSgwKQpAQCAtNTcsNiArNTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZEFsd2F5c1Vz
ZUNvbXBsZXhUZXh0Q29kZVBhdGgpOwogICAgIGVuY29kZXItPmVuY29kZShsYW5ndWFnZUNvZGUp
OwogICAgIGVuY29kZXItPmVuY29kZSh0ZXh0Q2hlY2tlclN0YXRlKTsKKyAgICBlbmNvZGVyLT5l
bmNvZGUoZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwpOwogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBlbmNvZGVyLT5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwogICAgIGVuY29kZXItPmVu
Y29kZShwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCk7CkBAIC0xMDEsNiArMTAzLDggQEAgYm9vbCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy50ZXh0Q2hlY2tlclN0YXRlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRl
cnMuZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVy
cy5wYXJlbnRQcm9jZXNzTmFtZSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDc5MDUxKQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29y
a2luZyBjb3B5KQpAQCAtNzMsNiArNzMsOCBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyB7CiAKICAgICBUZXh0Q2hlY2tlclN0YXRlIHRleHRDaGVja2VyU3RhdGU7CiAKKyAg
ICBkb3VibGUgZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWw7CisKICNpZiBQTEFURk9STShN
QUMpCiAgICAgU3RyaW5nIHBhcmVudFByb2Nlc3NOYW1lOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViVVJMUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlVSTFJlcXVlc3QuY3BwCShyZXZpc2lvbiA3OTA1MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJVUkxSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNCArMjQs
MTAgQEAgV2ViVVJMUmVxdWVzdDo6V2ViVVJMUmVxdWVzdChjb25zdCBSZXNvdQogewogfQogCit2
b2lkIFdlYlVSTFJlcXVlc3Q6OnNldERlZmF1bHRUaW1lb3V0SW50ZXJ2YWwoZG91YmxlIHRpbWVv
dXRJbnRlcnZhbCkKK3sKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnNldERlZmF1bHRU
aW1lb3V0SW50ZXJ2YWwodGltZW91dEludGVydmFsKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVUkxSZXF1ZXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuaAkocmV2aXNpb24g
NzkwNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMUmVxdWVzdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgdXJs
KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0LnVybCgpOyB9CiAKKyAgICBzdGF0aWMgdm9pZCBz
ZXREZWZhdWx0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpOworCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IFdlYlVSTFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jik7CiAgICAgZXhwbGljaXQgV2ViVVJMUmVxdWVzdChQbGF0Zm9ybVJlcXVlc3QpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5jcHAJKHJl
dmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVz
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDMgKzQ3LDggQEAgV0tVUkxSZWYgV0tVUkxSZXF1
ZXN0Q29weVVSTChXS1VSTFJlcXVlcwogewogICAgIHJldHVybiB0b0NvcGllZFVSTEFQSSh0b0lt
cGwocmVxdWVzdFJlZiktPnVybCgpKTsKIH0KKwordm9pZCBXS1VSTFJlcXVlc3RTZXREZWZhdWx0
VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCit7CisgICAgV2ViVVJMUmVx
dWVzdDo6c2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwpOworfQpJbmRl
eDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuaAkocmV2aXNpb24g
NzkwNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAgV0tfRVhQT1JUIFdLVVJMUmVxdWVzdFJlZiBX
S1VSTFJlcXVlc3RDcgogCiBXS19FWFBPUlQgV0tVUkxSZWYgV0tVUkxSZXF1ZXN0Q29weVVSTChX
S1VSTFJlcXVlc3RSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS1VSTFJlcXVlc3RTZXREZWZhdWx0
VGltZW91dEludGVydmFsKGRvdWJsZSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lvbiA3
OTA1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTMsNiArOTMsNyBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFByb2Nlc3NN
b2RlbCBwcm9jCiAgICAgLCBtX3Zpc2l0ZWRMaW5rUHJvdmlkZXIodGhpcykKICAgICAsIG1fYWx3
YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoZmFsc2UpCiAgICAgLCBtX2NhY2hlTW9kZWwoQ2Fj
aGVNb2RlbERvY3VtZW50Vmlld2VyKQorICAgICwgbV9kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRl
cnZhbChJTlRfTUFYKQogICAgICwgbV9jbGVhclJlc291cmNlQ2FjaGVzRm9yTmV3V2ViUHJvY2Vz
cyhmYWxzZSkKICAgICAsIG1fY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yTmV3V2ViUHJvY2Vzcyhm
YWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxlckVuYWJsZWQoZmFsc2UpCkBAIC0yMDcsNiArMjA4
LDggQEAgdm9pZCBXZWJDb250ZXh0OjplbnN1cmVXZWJQcm9jZXNzKCkKIAogICAgIHBhcmFtZXRl
cnMudGV4dENoZWNrZXJTdGF0ZSA9IFRleHRDaGVja2VyOjpzdGF0ZSgpOwogCisgICAgcGFyYW1l
dGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCA9IG1fZGVmYXVsdFJlcXVlc3RUaW1l
b3V0SW50ZXJ2YWw7CisKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFtZXRl
cnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMpOwogCkBAIC00
MjMsNiArNDI2LDE2IEBAIHZvaWQgV2ViQ29udGV4dDo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGUK
ICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldENhY2hlTW9kZWwo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fY2FjaGVNb2RlbCkpLCAwKTsKIH0KIAordm9pZCBXZWJD
b250ZXh0OjpzZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChkb3VibGUgdGltZW91dElu
dGVydmFsKQoreworICAgIG1fZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwgPSB0aW1lb3V0
SW50ZXJ2YWw7CisKKyAgICBpZiAoIWhhc1ZhbGlkUHJvY2VzcygpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldERlZmF1bHRS
ZXF1ZXN0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZhbCksIDApOworfQorCiB2b2lkIFdl
YkNvbnRleHQ6OmFkZFZpc2l0ZWRMaW5rKGNvbnN0IFN0cmluZyYgdmlzaXRlZFVSTCkKIHsKICAg
ICBpZiAodmlzaXRlZFVSTC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmgJKHJldmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw5IEBAIHB1YmxpYzoK
ICAgICBDYWNoZU1vZGVsIGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7
IH0KICAgICB2b2lkIGNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKICAgICB2b2lkIGNsZWFyQXBwbGlj
YXRpb25DYWNoZSgpOwotICAgIAorCisgICAgdm9pZCBzZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJ
bnRlcnZhbChkb3VibGUpOworCiAgICAgdm9pZCBzdGFydE1lbW9yeVNhbXBsZXIoY29uc3QgZG91
YmxlIGludGVydmFsKTsKICAgICB2b2lkIHN0b3BNZW1vcnlTYW1wbGVyKCk7CiAKQEAgLTIwMCw2
ICsyMDIsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxwYWlyPFN0cmluZywgUmVmUHRyPEFQSU9i
amVjdD4gPiA+IG1fcGVuZGluZ01lc3NhZ2VzVG9Qb3N0VG9JbmplY3RlZEJ1bmRsZTsKIAogICAg
IENhY2hlTW9kZWwgbV9jYWNoZU1vZGVsOworICAgIGRvdWJsZSBtX2RlZmF1bHRSZXF1ZXN0VGlt
ZW91dEludGVydmFsOwogCiAgICAgV2ViRG93bmxvYWRDbGllbnQgbV9kb3dubG9hZENsaWVudDsK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RG93bmxvYWRQcm94eT4gPiBtX2Rvd25sb2Fk
czsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CShyZXZpc2lvbiA3OTA1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDExIEBAIFdLQ2FjaGVNb2Rl
bCBXS0NvbnRleHRHZXRDYWNoZU1vZGVsKFdLQ28KICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNv
bnRleHRSZWYpLT5jYWNoZU1vZGVsKCkpOwogfQogCit2b2lkIFdLQ29udGV4dFNldERlZmF1bHRS
ZXF1ZXN0VGltZW91dEludGVydmFsKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBkb3VibGUgdGlt
ZW91dEludGVydmFsKQoreworICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c2V0RGVmYXVsdFJlcXVl
c3RUaW1lb3V0SW50ZXJ2YWwodGltZW91dEludGVydmFsKTsKK30KKwogdm9pZCBfV0tDb250ZXh0
U2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYs
IGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHRDb2RlUGF0aCkKIHsKICAgICB0b0ltcGwoY29udGV4
dFJlZiktPnNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGFsd2F5c1VzZUNvbXBsZXhU
ZXh0Q29kZVBhdGgpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaAkocmV2aXNpb24gNzkwNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcsOCBAQCBXS19FWFBP
UlQgdm9pZCBXS0NvbnRleHRBZGRWaXNpdGVkTGluayhXCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRTZXRDYWNoZU1vZGVsKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NhY2hlTW9kZWwgY2FjaGVN
b2RlbCk7CiBXS19FWFBPUlQgV0tDYWNoZU1vZGVsIFdLQ29udGV4dEdldENhY2hlTW9kZWwoV0tD
b250ZXh0UmVmIGNvbnRleHQpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXREZWZhdWx0
UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChXS0NvbnRleHRSZWYgY29udGV4dCwgZG91YmxlIHRpbWVv
dXRJbnRlcnZhbCk7CisKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENsZWFyUmVzb3VyY2VDYWNo
ZXMoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJB
cHBsaWNhdGlvbkNhY2hlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3OTA1MSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5
MCw2ICsxOTAsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnVybFNjaGVtZXNGb3JXaGljaERv
bWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbi5zaXplKCk7ICsraSkKICAgICAgICAgc2V0RG9tYWlu
UmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNGb3JX
aGljaERvbWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbltpXSk7CiAKKyAgICBzZXREZWZhdWx0UmVx
dWVzdFRpbWVvdXRJbnRlcnZhbChwYXJhbWV0ZXJzLmRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVy
dmFsKTsKKwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1ldGVycy5taW1lVHlwZXNX
aXRoQ3VzdG9tUmVwcmVzZW50YXRpb24uc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fbWltZVR5cGVz
V2l0aEN1c3RvbVJlcHJlc2VudGF0aW9ucy5hZGQocGFyYW1ldGVycy5taW1lVHlwZXNXaXRoQ3Vz
dG9tUmVwcmVzZW50YXRpb25baV0pOwogCkBAIC0yMjYsNiArMjI4LDExIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmIKICAgICBTZWN1cml0eU9yaWdpbjo6c2V0RG9t
YWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSh0cnVlLCB1cmxTY2hlbWUpOwogfQog
Cit2b2lkIFdlYlByb2Nlc3M6OnNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKGRvdWJs
ZSB0aW1lb3V0SW50ZXJ2YWwpCit7CisgICAgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0RGVmYXVs
dFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwpOworfQorCiB2b2lkIFdlYlByb2Nlc3M6
OnNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNlQ29tcGxleFRl
eHQpCiB7CiAgICAgV2ViQ29yZTo6Rm9udDo6c2V0Q29kZVBhdGgoYWx3YXlzVXNlQ29tcGxleFRl
eHQgPyBXZWJDb3JlOjpGb250OjpDb21wbGV4IDogV2ViQ29yZTo6Rm9udDo6QXV0byk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gNzkwNTEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpA
QCAtMTI2LDYgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFz
RW1wdHlEb2N1bWVudChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1l
QXNTZWN1cmUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBzZXREb21haW5SZWxheGF0
aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZvaWQg
c2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwoZG91YmxlKTsKICAgICB2b2lkIHNldEFs
d2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wpOwogICAgIHZvaWQgbGFuZ3VhZ2VDaGFu
Z2VkKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogI2lmIFBMQVRGT1JNKFdJTikKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDc5MDUxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBy
b2Nlc3MgewogICAgIFJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KFdURjo6U3RyaW5n
IHNjaGVtZSkKICAgICBSZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKFdURjo6U3RyaW5nIHNjaGVt
ZSkKICAgICBTZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKFdURjo6U3Ry
aW5nIHNjaGVtZSkKKyAgICBTZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChkb3VibGUg
dGltZW91dEludGVydmFsKQogICAgIFNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJv
b2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiAgICAgTGFuZ3VhZ2VDaGFuZ2VkKFdURjo6U3RyaW5n
IGxhbmd1YWdlKQogI2lmIFBMQVRGT1JNKFdJTikK
</data>
<flag name="review"
          id="74967"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83216</attachid>
            <date>2011-02-21 14:36:02 -0800</date>
            <delta_ts>2011-02-21 14:39:40 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>DefaultTimeout.txt</filename>
            <type>text/plain</type>
            <size>20640</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MjQ5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDItMjEgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTiAoV2ViS2l0Mik6IEhUVFAgcmVxdWVzdHMg
dGltZSBvdXQgYWZ0ZXIgNjAgc2Vjb25kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTQ3NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwMDY1OTI+
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gaXQgd29uJ3QgYmUgZ3JlYXQgdG8gaGF2ZSBhIHRl
c3QgdGhhdCBydW5zIGZvciBhIG1pbnV0ZS4KKworICAgICAgICBJdCdzIG5vdyBwb3NzaWJsZSB0
byBzZXQgYSBkZWZhdWx0IHRpbWVvdXQgdG8gYmUgdXNlZCBhdCBSZXNvdXJjZVJlcXVlc3QgY3Jl
YXRpb24uIElmIG9uZQorICAgICAgICBoYXNuJ3QgYmVlbiBzZXQsIFJlc291cmNlUmVxdWVzdCB3
aWxsIGJlaGF2ZSBhcyBiZWZvcmUgKHVzZSBOU1VSTFJlcXVlc3QgZGVmYXVsdCBvbiBNYWMsCisg
ICAgICAgIG9yIHVzZSBJTlRfTUFYIG9uIG90aGVyIHBsYXRmb3JtcykuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVz
dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6ZGVmYXVs
dFRpbWVvdXRJbnRlcnZhbCk6IEdldCB0aGUgUmVzb3VyY2VSZXF1ZXN0IG5vdGlvbiBvZgorICAg
ICAgICBkZWZhdWx0IHRpbWVvdXQgaW50ZXJ2YWwgKG1heSBiZSAwIGlmIHVzaW5nIE5TVVJMUmVx
dWVzdCBkZWZhdWx0KS4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnNl
dERlZmF1bHRUaW1lb3V0SW50ZXJ2YWwpOiBTZXQgdGhlIHN0YXRpYyBtZW1iZXIgdmFyaWFibGUu
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjp1cGRhdGVQbGF0Zm9ybVJl
cXVlc3QpOiBBZGRlZCBhbiBhc3NlcnRpb24gdGhhdCByZXNvdXJjZQorICAgICAgICByZXF1ZXN0
IGlzIHVwZGF0ZWQuIFBsYWZvcm0gY29kZSBvZnRlbiBjYWxscyB1cGRhdGVSZXNvdXJjZVJlcXVl
c3QoKSBpbmRpcmVjdGx5IGZyb20gdGhpcworICAgICAgICBmdW5jdGlvbiwgYW5kIHRoYXQgbXVz
dCBvYnZpb3VzbHkgYmUgYSBuby1vcC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dEJhc2U6OnVwZGF0ZVJlc291cmNlUmVxdWVzdCk6IEFkZGVkIGFuIGFzc2VydGlvbiBpbiB0aGUg
b3Bwb3NpdGUKKyAgICAgICAgZGlyZWN0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXF1ZXN0QmFzZS5oOiBDaGFuZ2VkICJ1bnNwZWNpZmllZFRpbWVvdXRJbnRlcnZh
bCIgdG8KKyAgICAgICAgImRlZmF1bHRUaW1lb3V0SW50ZXJ2YWwiLiBJdCBoYXMgYmVlbiB1c2Vk
IGFzIGRlZmF1bHQgYnkgbW9zdCBwbGF0Zm9ybXMgYW55d2F5LgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0QmFzZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZSk6CisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW06IChXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KToKKyAgICAgICAgTm93IHplcm8g
aXMgdGhlIG1hZ2ljIHZhbHVlLCBub3QgSU5UX01BWC4gV2UnbGwgdXNlIE5TVVJMUmVxdWVzdCBk
ZWZhdWx0IGlmIG5laXRoZXIKKyAgICAgICAgc2V0VGltZW91dEludGVydmFsKCkgbm9yIHNldERl
ZmF1bHRUaW1lb3V0SW50ZXJ2YWwoKSBoYXMgYmVlbiBjYWxsZWQuCisKIDIwMTEtMDItMjEgIE1h
cnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFhhbiBMb3Blei4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA3OTA1MSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC00OTIs
NiArNDkyLDkgQEAgX19aTjdXZWJDb3JlMTlDU1NTdHlsZURlY2xhcmF0aW9uMTFzZXRQcgogX19a
TjdXZWJDb3JlMTlSZXNvdXJjZVJlcXVlc3RCYXNlMTFzZXRIVFRQQm9keUVOM1dURjEwUGFzc1Jl
ZlB0cklOU184Rm9ybURhdGFFRUUKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTEz
c2V0SFRUUE1ldGhvZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1
ZXN0QmFzZTE5YWRkSFRUUEhlYWRlckZpZWxkc0VSS05TXzEzSFRUUEhlYWRlck1hcEUKK19fWk43
V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTIyZGVmYXVsdFRpbWVvdXRJbnRlcnZhbEV2Citf
X1pON1dlYkNvcmUxOVJlc291cmNlUmVxdWVzdEJhc2UyNHNfZGVmYXVsdFRpbWVvdXRJbnRlcnZh
bEUKK19fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTI1c2V0RGVmYXVsdFRpbWVvdXRJ
bnRlcnZhbEVkCiBfX1pON1dlYkNvcmUxOVJlc291cmNlUmVxdWVzdEJhc2U2c2V0VVJMRVJLTlNf
NEtVUkxFCiBfX1pON1dlYkNvcmUxOVNlbGVjdGlvbkNvbnRyb2xsZXIxMHNldEZvY3VzZWRFYgog
X19aTjdXZWJDb3JlMTlTZWxlY3Rpb25Db250cm9sbGVyMTJzZXRTZWxlY3Rpb25FUktOU18xNlZp
c2libGVTZWxlY3Rpb25Fak5TMF8xOUN1cnNvckFsaWduT25TY3JvbGxFTlNfMTVUZXh0R3JhbnVs
YXJpdHlFTlNfMjBEaXJlY3Rpb25hbGl0eVBvbGljeUUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkocmV2
aXNpb24gNzkwNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxMyBAQCB1c2luZyBu
YW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiAhUExBVEZPUk0oTUFD
KSB8fCBVU0UoQ0ZORVRXT1JLKQorZG91YmxlIFJlc291cmNlUmVxdWVzdEJhc2U6OnNfZGVmYXVs
dFRpbWVvdXRJbnRlcnZhbCA9IElOVF9NQVg7CisjZWxzZQorLy8gV2lsbCB1c2UgTlNVUkxSZXF1
ZXN0IGRlZmF1bHQgdGltZW91dCB1bmxlc3Mgc2V0IHRvIGEgbm9uLXplcm8gdmFsdWUgd2l0aCBz
ZXREZWZhdWx0VGltZW91dEludGVydmFsKCkuCitkb3VibGUgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6
c19kZWZhdWx0VGltZW91dEludGVydmFsID0gMDsKKyNlbmRpZgorCiBpbmxpbmUgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiBSZXNvdXJjZVJlcXVlc3RCYXNlOjphc1Jlc291cmNlUmVxdWVzdCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxjb25zdCBSZXNvdXJjZVJlcXVlc3QqPih0
aGlzKTsKQEAgLTQwOCwxMSArNDE1LDIyIEBAIGJvb2wgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6aXND
b25kaXRpb25hbCgKICAgICAgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5jb250YWlucygiSWYt
VW5tb2RpZmllZC1TaW5jZSIpKTsKIH0KIAorZG91YmxlIFJlc291cmNlUmVxdWVzdEJhc2U6OmRl
ZmF1bHRUaW1lb3V0SW50ZXJ2YWwoKQoreworICAgIHJldHVybiBzX2RlZmF1bHRUaW1lb3V0SW50
ZXJ2YWw7Cit9CisKK3ZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0RGVmYXVsdFRpbWVvdXRJ
bnRlcnZhbChkb3VibGUgdGltZW91dEludGVydmFsKQoreworICAgIHNfZGVmYXVsdFRpbWVvdXRJ
bnRlcnZhbCA9IHRpbWVvdXRJbnRlcnZhbDsKK30KKwogdm9pZCBSZXNvdXJjZVJlcXVlc3RCYXNl
Ojp1cGRhdGVQbGF0Zm9ybVJlcXVlc3QoKSBjb25zdAogewogICAgIGlmIChtX3BsYXRmb3JtUmVx
dWVzdFVwZGF0ZWQpCiAgICAgICAgIHJldHVybjsKLSAgICAKKworICAgIEFTU0VSVChtX3Jlc291
cmNlUmVxdWVzdFVwZGF0ZWQpOwogICAgIGNvbnN0X2Nhc3Q8UmVzb3VyY2VSZXF1ZXN0Jj4oYXNS
ZXNvdXJjZVJlcXVlc3QoKSkuZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsKICAgICBtX3BsYXRm
b3JtUmVxdWVzdFVwZGF0ZWQgPSB0cnVlOwogfQpAQCAtNDIyLDYgKzQ0MCw3IEBAIHZvaWQgUmVz
b3VyY2VSZXF1ZXN0QmFzZTo6dXBkYXRlUmVzb3VyY2UKICAgICBpZiAobV9yZXNvdXJjZVJlcXVl
c3RVcGRhdGVkKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQobV9wbGF0Zm9ybVJlcXVl
c3RVcGRhdGVkKTsKICAgICBjb25zdF9jYXN0PFJlc291cmNlUmVxdWVzdCY+KGFzUmVzb3VyY2VS
ZXF1ZXN0KCkpLmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCk7CiAgICAgbV9yZXNvdXJjZVJlcXVl
c3RVcGRhdGVkID0gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCShyZXZpc2lvbiA3OTA1MSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw4ICs0NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgUmV0dXJuQ2FjaGVEYXRhRG9udExvYWQsIC8vIHJlc3VsdHMgb2YgYSBwb3N0IC0gYWxsb3cg
c3RhbGUgZGF0YSBhbmQgb25seSB1c2UgY2FjaGUKICAgICB9OwogCi0gICAgY29uc3QgaW50IHVu
c3BlY2lmaWVkVGltZW91dEludGVydmFsID0gSU5UX01BWDsKLQogICAgIGNsYXNzIFJlc291cmNl
UmVxdWVzdDsKICAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhOwogCkBA
IC04NSw3ICs4Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3koKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRDYWNo
ZVBvbGljeShSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBjYWNoZVBvbGljeSk7CiAgICAgICAg
IAotICAgICAgICBkb3VibGUgdGltZW91dEludGVydmFsKCkgY29uc3Q7CisgICAgICAgIGRvdWJs
ZSB0aW1lb3V0SW50ZXJ2YWwoKSBjb25zdDsgLy8gTWF5IHJldHVybiAwIHdoZW4gdXNpbmcgcGxh
dGZvcm0gZGVmYXVsdC4KICAgICAgICAgdm9pZCBzZXRUaW1lb3V0SW50ZXJ2YWwoZG91YmxlIHRp
bWVvdXRJbnRlcnZhbCk7CiAgICAgICAgIAogICAgICAgICBjb25zdCBLVVJMJiBmaXJzdFBhcnR5
Rm9yQ29va2llcygpIGNvbnN0OwpAQCAtMTQ4LDkgKzE0NiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgc2V0UmVwb3J0UmF3SGVhZGVycyhib29sIHJlcG9ydFJhd0hlYWRl
cnMpIHsgbV9yZXBvcnRSYXdIZWFkZXJzID0gcmVwb3J0UmF3SGVhZGVyczsgfQogCiAgICAgICAg
IC8vIFdoYXQgdGhpcyByZXF1ZXN0IGlzIGZvci4KKyAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGJlIG1vdmVkIG91dCBvZiBSZXNvdXJjZVJlcXVlc3RCYXNlLCA8aHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NDgzPi4KICAgICAgICAgVGFyZ2V0VHlwZSB0YXJn
ZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRUeXBlOyB9CiAgICAgICAgIHZvaWQgc2V0
VGFyZ2V0VHlwZShUYXJnZXRUeXBlIHR5cGUpIHsgbV90YXJnZXRUeXBlID0gdHlwZTsgfQogCisg
ICAgICAgIHN0YXRpYyBkb3VibGUgZGVmYXVsdFRpbWVvdXRJbnRlcnZhbCgpOyAvLyBNYXkgcmV0
dXJuIDAgd2hlbiB1c2luZyBwbGF0Zm9ybSBkZWZhdWx0LgorICAgICAgICBzdGF0aWMgdm9pZCBz
ZXREZWZhdWx0VGltZW91dEludGVydmFsKGRvdWJsZSk7CisKICAgICAgICAgc3RhdGljIGJvb2wg
Y29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
IAogICAgIHByb3RlY3RlZDoKQEAgLTE2OSw3ICsxNzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFJlc291cmNlUmVxdWVzdEJhc2UoY29uc3QgS1VSTCYgdXJsLCBSZXNvdXJjZVJl
cXVlc3RDYWNoZVBvbGljeSBwb2xpY3kpCiAgICAgICAgICAgICA6IG1fdXJsKHVybCkKICAgICAg
ICAgICAgICwgbV9jYWNoZVBvbGljeShwb2xpY3kpCi0gICAgICAgICAgICAsIG1fdGltZW91dElu
dGVydmFsKHVuc3BlY2lmaWVkVGltZW91dEludGVydmFsKQorICAgICAgICAgICAgLCBtX3RpbWVv
dXRJbnRlcnZhbChzX2RlZmF1bHRUaW1lb3V0SW50ZXJ2YWwpCiAgICAgICAgICAgICAsIG1faHR0
cE1ldGhvZCgiR0VUIikKICAgICAgICAgICAgICwgbV9hbGxvd0Nvb2tpZXModHJ1ZSkKICAgICAg
ICAgICAgICwgbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkKHRydWUpCkBAIC0xOTEsNyArMTkzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBLVVJMIG1fdXJsOwogCiAgICAgICAgIFJl
c291cmNlUmVxdWVzdENhY2hlUG9saWN5IG1fY2FjaGVQb2xpY3k7Ci0gICAgICAgIGRvdWJsZSBt
X3RpbWVvdXRJbnRlcnZhbDsKKyAgICAgICAgZG91YmxlIG1fdGltZW91dEludGVydmFsOyAvLyAw
IGlzIGEgbWFnaWMgdmFsdWUgZm9yIHBsYXRmb3JtIGRlZmF1bHQgb24gcGxhdGZvcm1zIHRoYXQg
aGF2ZSBvbmUuCiAgICAgICAgIEtVUkwgbV9maXJzdFBhcnR5Rm9yQ29va2llczsKICAgICAgICAg
U3RyaW5nIG1faHR0cE1ldGhvZDsKICAgICAgICAgSFRUUEhlYWRlck1hcCBtX2h0dHBIZWFkZXJG
aWVsZHM7CkBAIC0yMDgsNiArMjEwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhc1Jlc291cmNlUmVxdWVzdCgp
IGNvbnN0OworCisgICAgICAgIHN0YXRpYyBkb3VibGUgc19kZWZhdWx0VGltZW91dEludGVydmFs
OwogICAgIH07CiAKICAgICBib29sIGVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0QmFzZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZVJlcXVlc3RNYWMubW0JKHJldmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00
MCwxMSArNDAsMTIgQEAKIHR5cGVkZWYgdW5zaWduZWQgTlNVSW50ZWdlcjsKICNlbmRpZgogCi1A
aW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoV2ViQ29yZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5n
KQorQGludGVyZmFjZSBOU1VSTFJlcXVlc3QgKFdlYk5TVVJMUmVxdWVzdERldGFpbHMpCiAtIChO
U0FycmF5ICopY29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5OworKyAodm9p
ZClzZXREZWZhdWx0VGltZW91dEludGVydmFsOihOU1RpbWVJbnRlcnZhbClzZWNvbmRzOwogQGVu
ZAogCi1AaW50ZXJmYWNlIE5TTXV0YWJsZVVSTFJlcXVlc3QgKFdlYkNvcmVDb250ZW50RGlzcG9z
aXRpb25FbmNvZGluZykKK0BpbnRlcmZhY2UgTlNNdXRhYmxlVVJMUmVxdWVzdCAoV2ViTXV0YWJs
ZU5TVVJMUmVxdWVzdERldGFpbHMpCiAtICh2b2lkKXNldENvbnRlbnREaXNwb3NpdGlvbkVuY29k
aW5nRmFsbGJhY2tBcnJheTooTlNBcnJheSAqKXRoZUVuY29kaW5nRmFsbGJhY2tBcnJheTsKIEBl
bmQKIApAQCAtMTI2LDggKzEyNywxMiBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQ
bGF0Zm9ybVJlCiAjZW5kaWYKIAogICAgIFtuc1JlcXVlc3Qgc2V0Q2FjaGVQb2xpY3k6KE5TVVJM
UmVxdWVzdENhY2hlUG9saWN5KWNhY2hlUG9saWN5KCldOwotICAgIGlmICh0aW1lb3V0SW50ZXJ2
YWwoKSAhPSB1bnNwZWNpZmllZFRpbWVvdXRJbnRlcnZhbCkKLSAgICAgICAgW25zUmVxdWVzdCBz
ZXRUaW1lb3V0SW50ZXJ2YWw6dGltZW91dEludGVydmFsKCldOworCisgICAgZG91YmxlIHRpbWVv
dXRJbnRlcnZhbCA9IFJlc291cmNlUmVxdWVzdEJhc2U6OnRpbWVvdXRJbnRlcnZhbCgpOworICAg
IGlmICh0aW1lb3V0SW50ZXJ2YWwpCisgICAgICAgIFtuc1JlcXVlc3Qgc2V0VGltZW91dEludGVy
dmFsOnRpbWVvdXRJbnRlcnZhbF07CisgICAgLy8gT3RoZXJ3aXNlLCByZXNwZWN0IE5TVVJMUmVx
dWVzdCBkZWZhdWx0IHRpbWVvdXQuCisKICAgICBbbnNSZXF1ZXN0IHNldE1haW5Eb2N1bWVudFVS
TDpmaXJzdFBhcnR5Rm9yQ29va2llcygpXTsKICAgICBpZiAoIWh0dHBNZXRob2QoKS5pc0VtcHR5
KCkpCiAgICAgICAgIFtuc1JlcXVlc3Qgc2V0SFRUUE1ldGhvZDpodHRwTWV0aG9kKCldOwpJbmRl
eDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gNzkyNDkpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MyBAQAorMjAxMS0wMi0yMSAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChXZWJLaXQyKTogSFRUUCByZXF1ZXN0cyB0aW1l
IG91dCBhZnRlciA2MCBzZWNvbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDc1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTAwNjU5Mj4KKwor
ICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3BwOgorICAgICAgICAoV0tVUkxS
ZXF1ZXN0U2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbCk6CisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLVVJMUmVxdWVzdC5oOgorICAgICAgICBBZGRlZCBhbiBBUEkgdG8gc2V0IGEgZGVmYXVsdCB0
aW1lb3V0IGludGVydmFsIGZvciByZXF1ZXN0cyBjcmVhdGVkIGZyb20gVVJMcy4gVGhlIEFQSQor
ICAgICAgICBhZmZlY3RzIGJvdGggdGhlIFVJIHByb2Nlc3MgYW5kIHJlcXVlc3RzIGNyZWF0ZWQg
aW50ZXJuYWxseSBieSB0aGUgV2ViIHByb2Nlc3MuIFJlcXVlc3RzCisgICAgICAgIGNyZWF0ZWQg
ZnJvbSBOU1VSTFJlcXVlc3Qgb3IgQ0ZVUkxSZXF1ZXN0IHRha2UgdGltZW91dCBmcm9tIHRob3Nl
LgorCisgICAgICAgICogU2hhcmVkL1dlYlVSTFJlcXVlc3QuY3BwOiAoV2ViS2l0OjpXZWJVUkxS
ZXF1ZXN0OjpzZXREZWZhdWx0VGltZW91dEludGVydmFsKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
VVJMUmVxdWVzdC5oOgorICAgICAgICBQaXBlIHRoZSBkZWZhdWx0IHRpbWVvdXQgaW50ZXJ2YWwg
ZnJvbSBXS1VSTFJlcXVlc3QgZG93biB0byBhY3R1YWwgaW1wbGVtZW50YXRpb24uIFNpbmNlCisg
ICAgICAgIFdlYlVSTFJlcXVlc3QgaXMgY3VycmVudGx5IGltcGxlbWVudGVkIHdpdGggV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0LCBpdCBhdXRvbWF0aWNhbGx5IHJlc3BlY3RzCisgICAgICAgIE5T
VVJMUmVxdWVzdCBkZWZhdWx0IHRpbWVvdXQgaW50ZXJ2YWwuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc01hbmFnZXIuY3BwOiAoV2ViS2l0OjpXZWJQcm9jZXNzTWFuYWdlcjo6Z2V0
QWxsV2ViUHJvY2Vzc0NvbnRleHRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc01h
bmFnZXIuaDoKKyAgICAgICAgQWRkZWQgYSB3YXkgdG8gZW51bWVyYXRlIGFsbCBjb250ZXh0cyBy
dW5uaW5nIGluIHNlcGFyYXRlIHByb2Nlc3Nlcy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6ZW5zdXJlV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bnRleHQ6OnNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2
YWwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgVXNlIFVJIHByb2Nlc3MgZGVm
YXVsdCB0aW1lb3V0IGludGVydmFsIGluIHNlcGFyYXRlIHByb2Nlc3MgY29udGV4dHMsIHRvby4K
KwogMjAxMS0wMi0yMSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJl
dmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6V2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycygpCiAgICAgOiBzaG91bGRUcmFja1Zpc2l0ZWRMaW5rcyhmYWxzZSkKICAg
ICAsIHNob3VsZEFsd2F5c1VzZUNvbXBsZXhUZXh0Q29kZVBhdGgoZmFsc2UpCisgICAgLCBkZWZh
dWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChJTlRfTUFYKQogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICAsIG5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSgwKQogICAgICwgbnNVUkxDYWNoZURpc2tDYXBh
Y2l0eSgwKQpAQCAtNTcsNiArNTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kCiAgICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZEFsd2F5c1VzZUNvbXBsZXhUZXh0
Q29kZVBhdGgpOwogICAgIGVuY29kZXItPmVuY29kZShsYW5ndWFnZUNvZGUpOwogICAgIGVuY29k
ZXItPmVuY29kZSh0ZXh0Q2hlY2tlclN0YXRlKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoZGVmYXVs
dFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwpOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBlbmNvZGVy
LT5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwogICAgIGVuY29kZXItPmVuY29kZShwcmVzZW50
ZXJBcHBsaWNhdGlvblBpZCk7CkBAIC0xMDEsNiArMTAzLDggQEAgYm9vbCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy50ZXh0Q2hlY2tlclN0YXRlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuZGVmYXVsdFJl
cXVlc3RUaW1lb3V0SW50ZXJ2YWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5wYXJlbnRQcm9j
ZXNzTmFtZSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpA
QCAtNzMsNiArNzMsOCBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAK
ICAgICBUZXh0Q2hlY2tlclN0YXRlIHRleHRDaGVja2VyU3RhdGU7CiAKKyAgICBkb3VibGUgZGVm
YXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWw7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgU3Ry
aW5nIHBhcmVudFByb2Nlc3NOYW1lOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
VVJMUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVS
TFJlcXVlc3QuY3BwCShyZXZpc2lvbiA3OTA1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJVUkxSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKIAorI2luY2x1ZGUgIldl
YkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzTWFuYWdlci5oIgorCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0yNCw0ICsyNywxOSBAQCBX
ZWJVUkxSZXF1ZXN0OjpXZWJVUkxSZXF1ZXN0KGNvbnN0IFJlc291CiB7CiB9CiAKK2RvdWJsZSBX
ZWJVUkxSZXF1ZXN0OjpkZWZhdWx0VGltZW91dEludGVydmFsKCkKK3sKKyAgICByZXR1cm4gUmVz
b3VyY2VSZXF1ZXN0OjpkZWZhdWx0VGltZW91dEludGVydmFsKCk7Cit9CisKK3ZvaWQgV2ViVVJM
UmVxdWVzdDo6c2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbChkb3VibGUgdGltZW91dEludGVydmFs
KQoreworICAgIFJlc291cmNlUmVxdWVzdDo6c2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbCh0aW1l
b3V0SW50ZXJ2YWwpOworICAgIAorICAgIFZlY3RvcjxXZWJDb250ZXh0Kj4gY29udGV4dHM7Cisg
ICAgV2ViUHJvY2Vzc01hbmFnZXI6OnNoYXJlZCgpLmdldEFsbFdlYlByb2Nlc3NDb250ZXh0cyhj
b250ZXh0cyk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvbnRleHRzLnNpemUoKTsg
KytpKQorICAgICAgICBjb250ZXh0c1tpXS0+c2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2
YWwodGltZW91dEludGVydmFsKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJVUkxSZXF1ZXN0LmgJKHJldmlzaW9uIDc5MDUxKQorKysgU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjEs
NiArNjEsOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVxdWVzdC51cmwoKTsgfQogCisgICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0VGltZW91
dEludGVydmFsKCk7IC8vIE1heSByZXR1cm4gMCB3aGVuIHVzaW5nIHBsYXRmb3JtIGRlZmF1bHQu
CisgICAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbChkb3VibGUpOworCiBw
cml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlVSTFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0Jik7CiAgICAgZXhwbGljaXQgV2ViVVJMUmVxdWVzdChQbGF0Zm9ybVJlcXVlc3Qp
OwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5jcHAJ
KHJldmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVx
dWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDMgKzQ3LDggQEAgV0tVUkxSZWYgV0tVUkxS
ZXF1ZXN0Q29weVVSTChXS1VSTFJlcXVlcwogewogICAgIHJldHVybiB0b0NvcGllZFVSTEFQSSh0
b0ltcGwocmVxdWVzdFJlZiktPnVybCgpKTsKIH0KKwordm9pZCBXS1VSTFJlcXVlc3RTZXREZWZh
dWx0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCit7CisgICAgV2ViVVJM
UmVxdWVzdDo6c2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwpOworfQpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuaAkocmV2aXNp
b24gNzkwNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAgV0tfRVhQT1JUIFdLVVJMUmVxdWVzdFJl
ZiBXS1VSTFJlcXVlc3RDcgogCiBXS19FWFBPUlQgV0tVUkxSZWYgV0tVUkxSZXF1ZXN0Q29weVVS
TChXS1VSTFJlcXVlc3RSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS1VSTFJlcXVlc3RTZXREZWZh
dWx0VGltZW91dEludGVydmFsKGRvdWJsZSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lv
biA3OTA1MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA3LDYgKzIwNyw4IEBAIHZvaWQgV2ViQ29udGV4dDo6ZW5zdXJlV2Vi
UHJvY2VzcygpCiAKICAgICBwYXJhbWV0ZXJzLnRleHRDaGVja2VyU3RhdGUgPSBUZXh0Q2hlY2tl
cjo6c3RhdGUoKTsKIAorICAgIHBhcmFtZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2
YWwgPSBXZWJVUkxSZXF1ZXN0OjpkZWZhdWx0VGltZW91dEludGVydmFsKCk7CisKICAgICAvLyBB
ZGQgYW55IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKHBhcmFtZXRlcnMpOwogCkBAIC00MjMsNiArNDI1LDE0IEBAIHZvaWQgV2Vi
Q29udGV4dDo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGUKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OlNldENhY2hlTW9kZWwoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1f
Y2FjaGVNb2RlbCkpLCAwKTsKIH0KIAordm9pZCBXZWJDb250ZXh0OjpzZXREZWZhdWx0UmVxdWVz
dFRpbWVvdXRJbnRlcnZhbChkb3VibGUgdGltZW91dEludGVydmFsKQoreworICAgIGlmICghaGFz
VmFsaWRQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwodGlt
ZW91dEludGVydmFsKSwgMCk7Cit9CisKIHZvaWQgV2ViQ29udGV4dDo6YWRkVmlzaXRlZExpbmso
Y29uc3QgU3RyaW5nJiB2aXNpdGVkVVJMKQogewogICAgIGlmICh2aXNpdGVkVVJMLmlzRW1wdHko
KSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24gNzkw
NTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTMsNyArMTEzLDkgQEAgcHVibGljOgogICAgIENhY2hlTW9kZWwgY2FjaGVNb2Rl
bCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogICAgIHZvaWQgY2xlYXJSZXNvdXJj
ZUNhY2hlcygpOwogICAgIHZvaWQgY2xlYXJBcHBsaWNhdGlvbkNhY2hlKCk7Ci0gICAgCisKKyAg
ICB2b2lkIHNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKGRvdWJsZSk7CisKICAgICB2
b2lkIHN0YXJ0TWVtb3J5U2FtcGxlcihjb25zdCBkb3VibGUgaW50ZXJ2YWwpOwogICAgIHZvaWQg
c3RvcE1lbW9yeVNhbXBsZXIoKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc01hbmFnZXIuY3BwCShyZXZpc2lvbiA3OTA1MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5
LDYgKzY5LDExIEBAIFdlYlByb2Nlc3NQcm94eSogV2ViUHJvY2Vzc01hbmFnZXI6OmdldFcKICAg
ICByZXR1cm4gMDsKIH0KIAordm9pZCBXZWJQcm9jZXNzTWFuYWdlcjo6Z2V0QWxsV2ViUHJvY2Vz
c0NvbnRleHRzKFZlY3RvcjxXZWJDb250ZXh0Kj4mIGNvbnRleHRzKQoreworICAgIGNvcHlLZXlz
VG9WZWN0b3IobV9wcm9jZXNzTWFwLCBjb250ZXh0cyk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc01h
bmFnZXI6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MsIFdlYkNvbnRl
eHQqIGNvbnRleHQpCiB7CiAgICAgaWYgKHByb2Nlc3MgPT0gbV9zaGFyZWRQcm9jZXNzKSB7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuaAkocmV2
aXNpb24gNzkwNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFn
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGNvbnRleHRXYXNEZXN0cm95ZWQoV2ViQ29udGV4dCopOwogCisgICAgdm9pZCBnZXRBbGxXZWJQ
cm9jZXNzQ29udGV4dHMoVmVjdG9yPFdlYkNvbnRleHQqPiYpOworCiBwcml2YXRlOgogICAgIFdl
YlByb2Nlc3NNYW5hZ2VyKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAkocmV2aXNpb24gNzkwNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsNiArMTkwLDggQEAgdm9pZCBX
ZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhjbwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgcGFyYW1ldGVycy51cmxTY2hlbWVzRm9yV2hpY2hEb21haW5SZWxheGF0aW9uSXNGb3Ji
aWRkZW4uc2l6ZSgpOyArK2kpCiAgICAgICAgIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWUocGFyYW1ldGVycy51cmxTY2hlbWVzRm9yV2hpY2hEb21haW5SZWxheGF0aW9u
SXNGb3JiaWRkZW5baV0pOwogCisgICAgc2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwo
cGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCk7CisKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHBhcmFtZXRlcnMubWltZVR5cGVzV2l0aEN1c3RvbVJlcHJlc2VudGF0
aW9uLnNpemUoKTsgKytpKQogICAgICAgICBtX21pbWVUeXBlc1dpdGhDdXN0b21SZXByZXNlbnRh
dGlvbnMuYWRkKHBhcmFtZXRlcnMubWltZVR5cGVzV2l0aEN1c3RvbVJlcHJlc2VudGF0aW9uW2ld
KTsKIApAQCAtMjI2LDYgKzIyOCwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldERvbWFpblJlbGF4
YXRpb25Gb3JiCiAgICAgU2VjdXJpdHlPcmlnaW46OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUodHJ1ZSwgdXJsU2NoZW1lKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzOjpz
ZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChkb3VibGUgdGltZW91dEludGVydmFsKQor
eworICAgIFJlc291cmNlUmVxdWVzdDo6c2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0
SW50ZXJ2YWwpOworfQorCiB2b2lkIFdlYlByb2Nlc3M6OnNldEFsd2F5c1VzZXNDb21wbGV4VGV4
dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiB7CiAgICAgV2ViQ29yZTo6Rm9u
dDo6c2V0Q29kZVBhdGgoYWx3YXlzVXNlQ29tcGxleFRleHQgPyBXZWJDb3JlOjpGb250OjpDb21w
bGV4IDogV2ViQ29yZTo6Rm9udDo6QXV0byk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAkocmV2aXNpb24gNzkwNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEyNiw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgU3RyaW5nJikg
Y29uc3Q7CiAgICAgdm9pZCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1l
KGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0
SW50ZXJ2YWwoZG91YmxlKTsKICAgICB2b2lkIHNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQ
YXRoKGJvb2wpOwogICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IFN0cmluZyYpIGNvbnN0
OwogI2lmIFBMQVRGT1JNKFdJTikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw2ICszOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgewogICAgIFJlZ2lzdGVyVVJM
U2NoZW1lQXNFbXB0eURvY3VtZW50KFdURjo6U3RyaW5nIHNjaGVtZSkKICAgICBSZWdpc3RlclVS
TFNjaGVtZUFzU2VjdXJlKFdURjo6U3RyaW5nIHNjaGVtZSkKICAgICBTZXREb21haW5SZWxheGF0
aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKFdURjo6U3RyaW5nIHNjaGVtZSkKKyAgICBTZXREZWZh
dWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChkb3VibGUgdGltZW91dEludGVydmFsKQogICAgIFNl
dEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHQp
CiAgICAgTGFuZ3VhZ2VDaGFuZ2VkKFdURjo6U3RyaW5nIGxhbmd1YWdlKQogI2lmIFBMQVRGT1JN
KFdJTikK
</data>
<flag name="review"
          id="74986"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>