<?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>142988</bug_id>
          
          <creation_ts>2015-03-23 15:08:19 -0700</creation_ts>
          <short_desc>[Darwin] Boost the web process QoS level while handling a synchronous IPC message.</short_desc>
          <delta_ts>2015-03-26 15:21:26 -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>Platform</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>InRadar, Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1079453</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-23 15:08:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/20264346&gt;

If the UIProcess is blocking on a synchronous IPC request to the WebProcess, we should boost the WebProcess&apos;s main thread for the duration, to ensure that the WebProcess gets appropriately scheduled by the kernel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079459</commentid>
    <comment_count>1</comment_count>
      <attachid>249282</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-23 15:12:06 -0700</bug_when>
    <thetext>Created attachment 249282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080094</commentid>
    <comment_count>2</comment_count>
      <attachid>249443</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-25 16:33:17 -0700</bug_when>
    <thetext>Created attachment 249443
Patch

Better patch that doesn&apos;t wait for the main thread to complete whatever it&apos;s doing before setting the boost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080328</commentid>
    <comment_count>3</comment_count>
      <attachid>249443</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-03-26 10:42:34 -0700</bug_when>
    <thetext>Comment on attachment 249443
Patch

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

&gt; Source/WebKit2/Platform/IPC/Connection.cpp:262
&gt; +    ASSERT(pthread_main_np());
&gt; +    m_mainThread = pthread_self();

Don&apos;t we have any existing way to access the main pthread?

&gt; Source/WebKit2/Platform/IPC/Connection.h:312
&gt; +    pthread_t m_mainThread { 0 };

I think pthread_t is a pointer so nullptr (or just { }) would be more appropriate.

&gt; Source/WebKit2/Platform/IPC/MessageDecoder.cpp:46
&gt;  MessageDecoder::~MessageDecoder()
&gt;  {
&gt; +#if HAVE(QOS_CLASSES)
&gt; +    if (m_qosClassOverride)
&gt; +        pthread_override_qos_class_end_np(m_qosClassOverride);
&gt; +#endif
&gt;  }

It seems weird that this is part of the MessageDecoder destructor. I feel this type should be about decoding messages, not juggling thread priorities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080379</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-26 12:19:30 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 249443 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=249443&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Platform/IPC/Connection.cpp:262
&gt; &gt; +    ASSERT(pthread_main_np());
&gt; &gt; +    m_mainThread = pthread_self();
&gt; 
&gt; Don&apos;t we have any existing way to access the main pthread?

Sort-of. It will lie and give you the web thread on iOS, and I didn&apos;t wanna start pulling on that thread. Pun totally intended.

&gt; &gt; Source/WebKit2/Platform/IPC/Connection.h:312
&gt; &gt; +    pthread_t m_mainThread { 0 };
&gt; 
&gt; I think pthread_t is a pointer so nullptr (or just { }) would be more
&gt; appropriate.

k

&gt; &gt; Source/WebKit2/Platform/IPC/MessageDecoder.cpp:46
&gt; &gt;  MessageDecoder::~MessageDecoder()
&gt; &gt;  {
&gt; &gt; +#if HAVE(QOS_CLASSES)
&gt; &gt; +    if (m_qosClassOverride)
&gt; &gt; +        pthread_override_qos_class_end_np(m_qosClassOverride);
&gt; &gt; +#endif
&gt; &gt;  }
&gt; 
&gt; It seems weird that this is part of the MessageDecoder destructor. I feel
&gt; this type should be about decoding messages, not juggling thread priorities.

It&apos;s a bit awkward perhaps, but look at how MessageDecoder also owns importance assertions on OS X.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080381</commentid>
    <comment_count>5</comment_count>
      <attachid>249443</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-03-26 12:33:45 -0700</bug_when>
    <thetext>Comment on attachment 249443
Patch

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

&gt; Source/WebKit2/Platform/IPC/Connection.cpp:690
&gt; +        pthread_override_t o = pthread_override_qos_class_start_np(m_mainThread, QOS_CLASS_USER_INTERACTIVE, 0);

Please call this override instead of just &quot;o&quot;.

&gt; Source/WebKit2/Platform/IPC/MessageDecoder.h:63
&gt; +    void setQOSClassOverride(pthread_override_t o) { m_qosClassOverride = o; }

No O.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080422</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-26 15:21:26 -0700</bug_when>
    <thetext>Committed r182028: &lt;http://trac.webkit.org/changeset/182028&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249282</attachid>
            <date>2015-03-23 15:12:06 -0700</date>
            <delta_ts>2015-03-25 16:33:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142988.diff</filename>
            <type>text/plain</type>
            <size>1971</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1YTJiYjVjLi4xOTlmNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTUtMDMtMjMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gQm9vc3QgdGhlIHdlYiBwcm9jZXNzIFFvUyBsZXZlbCB3aGlsZSBoYW5kbGlu
ZyBhIHN5bmNocm9ub3VzIElQQyBtZXNzYWdlLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTQyOTg4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAyNjQzNDY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQm9vc3QgdGhlIHdlYiBwcm9j
ZXNzIG1haW4gdGhyZWFkJ3MgUW9TIGxldmVsIGZvciB0aGUgZHVyYXRpb24gb2YgaGFuZGxpbmcg
YSBzeW5jaHJvbm91cyBJUEMKKyAgICAgICAgbWVzc2FnZSBmcm9tIHRoZSBVSSBwcm9jZXNzLiBU
aGlzIGVuc3VyZXMgdGhhdCB0aGUgd2ViIHByb2Nlc3MgZ2V0cyBhcHByb3ByaWF0ZWx5IHNjaGVk
dWxlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisKIDIwMTUtMDMtMTkg
IEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50IEZpbHRl
cmluZ10gQWRkIHRlc3RzIGZvciB1bmJsb2NrIHJlcXVlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA0YzhmNDBkLi42ZDRmMjY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTYxMSwxMCArNjExLDEyIEBAIHZvaWQg
V2ViUHJvY2Vzczo6dGVybWluYXRlKCkKIAogdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5j
b2RlcikKIHsKLSAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpKQotICAgICAgICByZXR1cm47Cisg
ICAgV1RGOjpzZXRDdXJyZW50VGhyZWFkSXNVc2VySW50ZXJhY3RpdmUoKTsKKworICAgIGlmICgh
bWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyLCByZXBseUVuY29kZXIpKQorICAgICAgICBMT0dfRVJST1IoIlVuaGFuZGxlZCBzeW5jaHJv
bm91cyB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczolcyciLCBkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpLnRvU3RyaW5n
KCkuZGF0YSgpKTsKIAotICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHN5bmNocm9ub3VzIHdlYiBw
cm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRv
U3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCkp
OworICAgIFdURjo6c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgpOwogfQogCiB2b2lk
IFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
</data>
<flag name="review"
          id="274094"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249443</attachid>
            <date>2015-03-25 16:33:17 -0700</date>
            <delta_ts>2015-03-26 10:42:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142988.diff</filename>
            <type>text/plain</type>
            <size>6501</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjNTVmMTJhLi4yYmUzYTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTUtMDMtMjUgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFtEYXJ3aW5dIEJvb3N0IHRoZSB3ZWIgcHJvY2VzcyBRb1MgbGV2ZWwgd2hpbGUgaGFuZGxp
bmcgYSBzeW5jaHJvbm91cyBJUEMgbWVzc2FnZS4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzE0Mjk4OD4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIwMjY0MzQ2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG1lY2hhbmlzbSBm
b3IgSVBDOjpDb25uZWN0aW9uIHRvIGJvb3N0IHRoZSBtYWluIHRocmVhZCBmb3IgdGhlIGR1cmF0
aW9uCisgICAgICAgIG9mIHByb2Nlc3NpbmcgYSBzeW5jaHJvbm91cyBtZXNzYWdlLgorCisgICAg
ICAgIFRoaXMgZml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIFVJIHByb2Nlc3Mgd291bGQgYmxvY2sg
b24gYSBzeW5jaHJvbm91cyByZXF1ZXN0CisgICAgICAgIHRvIHRoZSB3ZWIgcHJvY2VzcyB0aGF0
IHdhcyBiZWluZyBjYXJyaWVkIG91dCBhdCBhIGxvd2VyIFFvUyBsZXZlbC4KKworICAgICAgICAq
IFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6
Q29ubmVjdGlvbik6IFNhdmUgdGhlIG1haW4gdGhyZWFkJ3MgcHRocmVhZF90IHdoaWxlIHdlIGhh
dmUKKyAgICAgICAgYSBjaGFuY2UgdG8gcmV0cmVpdmUgaXQuCisKKyAgICAgICAgKElQQzo6Q29u
bmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6IE9wdGlvbmFsbHkgYm9vc3QgdGhlIG1h
aW4gdGhyZWFkIHdoZW4KKyAgICAgICAgcHJvY2Vzc2luZyBhbiBpbmNvbWluZyBtZXNzYWdlIHdp
dGggdGhlIElzU3luY01lc3NhZ2UgZmxhZyBzZXQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5oOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZXRTaG91bGRCb29zdE1h
aW5UaHJlYWRPblN5bmNNZXNzYWdlKTogQWRkZWQuIFdoZW4gdGhpcyBtb2RlIGlzCisgICAgICAg
IGVuYWJsZWQsIENvbm5lY3Rpb24gd2lsbCBnaXZlIGEgdGVtcG9yYXJ5IFFvUyBvdmVycmlkZSB0
byB0aGUgbWFpbiB0aHJlYWQgd2hlbgorICAgICAgICByZWNlaXZpbmcgYSBzeW5jaHJvbm91cyBt
ZXNzYWdlLiBPd25lcnNoaXAgb2YgdGhlIG92ZXJyaWRlIGlzIGhhbmRlZCB0byB0aGUKKyAgICAg
ICAgTWVzc2FnZURlY29kZXIsIHdoaWNoIHJlc2V0cyB0aGUgbWFpbiB0aHJlYWQgUW9TIGluIGl0
cyBkZXN0cnVjdG9yLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNw
cDoKKyAgICAgICAgKElQQzo6TWVzc2FnZURlY29kZXI6On5NZXNzYWdlRGVjb2Rlcik6IFJlbW92
ZSBhbnkgUW9TIG92ZXJyaWRlIG93bmVkIGJ5IHRoaXMgbWVzc2FnZS4KKworICAgICAgICAqIFBs
YXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oOgorICAgICAgICAoSVBDOjpNZXNzYWdlRGVjb2Rl
cjo6c2V0UU9TQ2xhc3NPdmVycmlkZSk6IEFkZGVkLiBUYWtlcyBvd25lcnNoaXAgb2YgYSBRb1Mg
b3ZlcnJpZGUKKyAgICAgICAgdG8gbWFrZSBzdXJlIGl0IHN0YXlzIGluIGVmZmVjdCB1bnRpbCB0
aGlzIG1lc3NhZ2UgaGFzIGJlZW4gZGlzcGF0Y2hlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVD
b25uZWN0aW9uKTogU2V0IHVwIG1haW4gdGhyZWFkIFFvUyBib29zdGluZyBmb3IgdGhlCisgICAg
ICAgIHdlYiBwcm9jZXNzJ3MgY29ubmVjdGlvbiB0byB0aGUgVUkgcHJvY2Vzcy4KKwogMjAxNS0w
My0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU2VwYXJh
dGUgZW50cnkgZGVjb2RpbmcgZnJvbSB2YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggNTdiNGM1Ny4uYmQxMmE3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjU2LDYgKzI1NiwxMSBAQCBD
b25uZWN0aW9uOjpDb25uZWN0aW9uKElkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBpc1NlcnZl
ciwgQ2xpZW50JiBjbGllbnQsIFJ1bgogICAgIEFTU0VSVChtX2NsaWVudCk7CiAKICAgICBwbGF0
Zm9ybUluaXRpYWxpemUoaWRlbnRpZmllcik7CisKKyNpZiBIQVZFKFFPU19DTEFTU0VTKQorICAg
IEFTU0VSVChwdGhyZWFkX21haW5fbnAoKSk7CisgICAgbV9tYWluVGhyZWFkID0gcHRocmVhZF9z
ZWxmKCk7CisjZW5kaWYKIH0KIAogQ29ubmVjdGlvbjo6fkNvbm5lY3Rpb24oKQpAQCAtNjgwLDYg
KzY4NSwxMyBAQCB2b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCisjaWYgSEFWRShRT1NfQ0xBU1NFUykKKyAgICBpZiAobWVzc2FnZS0+aXNTeW5jTWVzc2Fn
ZSgpICYmIG1fc2hvdWxkQm9vc3RNYWluVGhyZWFkT25TeW5jTWVzc2FnZSkgeworICAgICAgICBw
dGhyZWFkX292ZXJyaWRlX3QgbyA9IHB0aHJlYWRfb3ZlcnJpZGVfcW9zX2NsYXNzX3N0YXJ0X25w
KG1fbWFpblRocmVhZCwgUU9TX0NMQVNTX1VTRVJfSU5URVJBQ1RJVkUsIDApOworICAgICAgICBt
ZXNzYWdlLT5zZXRRT1NDbGFzc092ZXJyaWRlKG8pOworICAgIH0KKyNlbmRpZgorCiAgICAgLy8g
Q2hlY2sgaWYgdGhpcyBpcyBhIHN5bmMgbWVzc2FnZSBvciBpZiBpdCdzIGEgbWVzc2FnZSB0aGF0
IHNob3VsZCBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiB3YWl0aW5nIGZvcgogICAgIC8vIGEgc3lu
YyByZXBseS4gSWYgaXQgaXMsIGFuZCB3ZSdyZSB3YWl0aW5nIGZvciBhIHN5bmMgcmVwbHkgdGhp
cyBtZXNzYWdlIG5lZWRzIHRvIGJlIGRpc3BhdGNoZWQuCiAgICAgLy8gSWYgd2UgZG9uJ3Qgd2Un
bGwgZW5kIHVwIHdpdGggYSBkZWFkbG9jayB3aGVyZSBib3RoIHN5bmMgbWVzc2FnZSBzZW5kZXJz
IGFyZSBzdHVjayB3YWl0aW5nIGZvciBhIHJlcGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmgKaW5kZXggMjBiYzczOC4uMzU3NWFmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCkBAIC0yMDAsNiArMjAwLDEwIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKKyNpZiBIQVZF
KFFPU19DTEFTU0VTKQorICAgIHZvaWQgc2V0U2hvdWxkQm9vc3RNYWluVGhyZWFkT25TeW5jTWVz
c2FnZShib29sIGIpIHsgbV9zaG91bGRCb29zdE1haW5UaHJlYWRPblN5bmNNZXNzYWdlID0gYjsg
fQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgQ29ubmVjdGlvbihJZGVudGlmaWVyLCBib29sIGlz
U2VydmVyLCBDbGllbnQmLCBXVEY6OlJ1bkxvb3AmIGNsaWVudFJ1bkxvb3ApOwogICAgIHZvaWQg
cGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIpOwpAQCAtMzA0LDYgKzMwOCwxMSBAQCBwcml2
YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgU2Vjb25kYXJ5VGhyZWFkUGVuZGlu
Z1N5bmNSZXBseSo+IFNlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXA7CiAgICAgU2Vj
b25kYXJ5VGhyZWFkUGVuZGluZ1N5bmNSZXBseU1hcCBtX3NlY29uZGFyeVRocmVhZFBlbmRpbmdT
eW5jUmVwbHlNYXA7CiAKKyNpZiBIQVZFKFFPU19DTEFTU0VTKQorICAgIHB0aHJlYWRfdCBtX21h
aW5UaHJlYWQgeyAwIH07CisgICAgYm9vbCBtX3Nob3VsZEJvb3N0TWFpblRocmVhZE9uU3luY01l
c3NhZ2UgeyBmYWxzZSB9OworI2VuZGlmCisKICNpZiBPUyhEQVJXSU4pCiAgICAgLy8gQ2FsbGVk
IG9uIHRoZSBjb25uZWN0aW9uIHF1ZXVlLgogICAgIHZvaWQgcmVjZWl2ZVNvdXJjZUV2ZW50SGFu
ZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VE
ZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5j
cHAKaW5kZXggNGFiMTQzMy4uOTdhNzU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCkBAIC0zOSw2ICszOSwxMCBAQCBuYW1lc3BhY2UgSVBD
IHsKIAogTWVzc2FnZURlY29kZXI6On5NZXNzYWdlRGVjb2RlcigpCiB7CisjaWYgSEFWRShRT1Nf
Q0xBU1NFUykKKyAgICBpZiAobV9xb3NDbGFzc092ZXJyaWRlKQorICAgICAgICBwdGhyZWFkX292
ZXJyaWRlX3Fvc19jbGFzc19lbmRfbnAobV9xb3NDbGFzc092ZXJyaWRlKTsKKyNlbmRpZgogfQog
CiBNZXNzYWdlRGVjb2Rlcjo6TWVzc2FnZURlY29kZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVm
ZmVyLCBWZWN0b3I8QXR0YWNobWVudD4gYXR0YWNobWVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oCmluZGV4IDFlMGU4YzMuLmI1M2MwOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oCkBAIC0zNCw2ICsz
NCwxMCBAQAogI2luY2x1ZGUgPHV1aWQvdXVpZC5oPgogI2VuZGlmCiAKKyNpZiBIQVZFKFFPU19D
TEFTU0VTKQorI2luY2x1ZGUgPHB0aHJlYWQvcW9zLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIElQ
QyB7CiAKIGNsYXNzIERhdGFSZWZlcmVuY2U7CkBAIC01NSw2ICs1OSwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRJbXBvcnRhbmNlQXNzZXJ0aW9uKHN0ZDo6dW5pcXVlX3B0cjxJbXBvcnRhbmNl
QXNzZXJ0aW9uPik7CiAjZW5kaWYKIAorI2lmIEhBVkUoUU9TX0NMQVNTRVMpCisgICAgdm9pZCBz
ZXRRT1NDbGFzc092ZXJyaWRlKHB0aHJlYWRfb3ZlcnJpZGVfdCBvKSB7IG1fcW9zQ2xhc3NPdmVy
cmlkZSA9IG87IH0KKyNlbmRpZgorCiAjaWYgSEFWRShEVFJBQ0UpCiAgICAgdm9pZCBzZXRNZXNz
YWdlUHJvY2Vzc2luZ1Rva2VuKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjb3JkZXI6Ok1lc3Nh
Z2VQcm9jZXNzaW5nVG9rZW4+IHRva2VuKSB7IG1fcHJvY2Vzc2luZ1Rva2VuID0gV1RGOjptb3Zl
KHRva2VuKTsgfQogCkBAIC03Niw2ICs4NCwxMCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1wb3J0YW5jZUFzc2VydGlvbj4gbV9pbXBvcnRhbmNl
QXNzZXJ0aW9uOwogI2VuZGlmCisKKyNpZiBIQVZFKFFPU19DTEFTU0VTKQorICAgIHB0aHJlYWRf
b3ZlcnJpZGVfdCBtX3Fvc0NsYXNzT3ZlcnJpZGUgeyBudWxscHRyIH07CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNGM4ZjQwZC4uYmJlY2VlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC0yMjMsNiArMjIzLDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogCiAgICAgY29ubmVj
dGlvbi0+c2V0U2hvdWxkRXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZSh0cnVlKTsKIAorI2lm
IEhBVkUoUU9TX0NMQVNTRVMpCisgICAgY29ubmVjdGlvbi0+c2V0U2hvdWxkQm9vc3RNYWluVGhy
ZWFkT25TeW5jTWVzc2FnZSh0cnVlKTsKKyNlbmRpZgorCiAgICAgbV9ldmVudERpc3BhdGNoZXIt
PmluaXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBtX3ZpZXdVcGRhdGVEaXNwYXRjaGVyLT5pbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9u
KTsK
</data>
<flag name="review"
          id="274253"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>