<?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>185224</bug_id>
          
          <creation_ts>2018-05-02 15:45:16 -0700</creation_ts>
          <short_desc>[Curl] Remove unused SystemProxyWin.cpp</short_desc>
          <delta_ts>2018-05-18 00:42:20 -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>WebKit2</component>
          <version>WebKit 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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174003</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>basuke</cc>
    
    <cc>fujii</cc>
    
    <cc>koivisto</cc>
    
    <cc>pvollan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1419899</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-02 15:45:16 -0700</bug_when>
    <thetext>Curl network layer has a new proxy setting interface since r230973: &lt;https://trac.webkit.org/changeset/230973&gt;/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419905</commentid>
    <comment_count>1</comment_count>
      <attachid>339360</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-02 15:51:56 -0700</bug_when>
    <thetext>Created attachment 339360
FIX</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420288</commentid>
    <comment_count>2</comment_count>
      <attachid>339360</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-05-03 13:30:29 -0700</bug_when>
    <thetext>Comment on attachment 339360
FIX

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

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.cpp:68
&gt; +    WebCore::CurlProxySettings settings(WebCore::URL(WebCore::ParsedURLString, String::format(&quot;http://%s:%d/&quot;, proxy, port)), String());

Is this guaranteed to be a well-formed url?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420346</commentid>
    <comment_count>3</comment_count>
      <attachid>339360</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-03 14:35:35 -0700</bug_when>
    <thetext>Comment on attachment 339360
FIX

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

Thanks for the review.

&gt;&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.cpp:68
&gt;&gt; +    WebCore::CurlProxySettings settings(WebCore::URL(WebCore::ParsedURLString, String::format(&quot;http://%s:%d/&quot;, proxy, port)), String());
&gt; 
&gt; Is this guaranteed to be a well-formed url?

With our internal interface, `proxy` is passed as a host name. From here, url is parsed in the CurlProxySettings class and host name is extracted from the parsed result. I don&apos;t think there&apos;s security issue hidden here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420921</commentid>
    <comment_count>4</comment_count>
      <attachid>339360</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-05-04 15:55:19 -0700</bug_when>
    <thetext>Comment on attachment 339360
FIX

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

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.cpp:66
&gt;  void WindowsSystemProxy::setCurlHttpProxy(char* proxy, int port)

I think we could pass the first parameter as a String reference instead of a char pointer. Also, how about renaming it to host or hostname?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421485</commentid>
    <comment_count>5</comment_count>
      <attachid>339763</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-07 16:09:51 -0700</bug_when>
    <thetext>Created attachment 339763
FIX

Add host string normalization. Also rewrote to modernize other static methods in the file to read Windows registry information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421495</commentid>
    <comment_count>6</comment_count>
      <attachid>339763</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-07 16:28:55 -0700</bug_when>
    <thetext>Comment on attachment 339763
FIX

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

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.cpp:43
&gt; +static String normalizedHost(const String&amp; host)

Use only host part of original string even if the string like `xxx:yyy` if passed.

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.h:-34
&gt; -    static bool getSystemHttpsProxy(char* buffer, int bufferLen, int* port);

https and ftp version was not defined. Deleted.

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.h:34
&gt; +    static std::optional&lt;std::pair&lt;String, unsigned&gt;&gt; getSystemHttpProxy();

Instead of bool + out variable, use optional and pair.

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.h:36
&gt; +    static void setCurlHttpProxy(const String&amp; host, unsigned port);

use unsigned to match with WebCore Url&apos;s port type.

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.h:41
&gt; +    static std::optional&lt;Vector&lt;TCHAR&gt;&gt; readRegistryValue(const TCHAR* path, const TCHAR* valueName);

Extract registry value reading code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422250</commentid>
    <comment_count>7</comment_count>
      <attachid>339763</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-05-09 08:01:50 -0700</bug_when>
    <thetext>Comment on attachment 339763
FIX

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

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.cpp:78
&gt; +std::optional&lt;std::pair&lt;String, unsigned&gt;&gt; WindowsSystemProxy::parseProxyString(Vector&lt;TCHAR&gt;&amp;&amp; buffer)

Is it possible to use the URL or URLParser class to parse the proxy string?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422353</commentid>
    <comment_count>8</comment_count>
      <attachid>339763</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-05-09 11:07:01 -0700</bug_when>
    <thetext>Comment on attachment 339763
FIX

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

&gt;&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.cpp:78
&gt;&gt; +std::optional&lt;std::pair&lt;String, unsigned&gt;&gt; WindowsSystemProxy::parseProxyString(Vector&lt;TCHAR&gt;&amp;&amp; buffer)
&gt; 
&gt; Is it possible to use the URL or URLParser class to parse the proxy string?

It seems neither URL nor URLParser can handle HOST:PORT string. Also I have to update my code to handle advanced format of the registry. I&apos;ll send another patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425016</commentid>
    <comment_count>9</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-17 18:08:12 -0700</bug_when>
    <thetext>This is the last patch to enable WK2 for WinCairo. What&apos;s the status?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425034</commentid>
    <comment_count>10</comment_count>
      <attachid>339763</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-05-17 18:58:38 -0700</bug_when>
    <thetext>Comment on attachment 339763
FIX

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

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.cpp:50
&gt; +    WebCore::URL url { WebCore::URL(), buffer.toString() };

You can probably write it as return WebCore:URL { WebCore::URL(), makeString(&quot;http://&quot;, host) };
But maybe it would be simpler to just search for &apos;:&apos; and create a substring if needed?

&gt; Source/WebKit/NetworkProcess/win/SystemProxyWin.cpp:61
&gt; +    buffer.appendNumber(port);

Might be able to use makeString also with StringConcatenateNumbers.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425059</commentid>
    <comment_count>11</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-17 22:25:50 -0700</bug_when>
    <thetext>Thank you for the review, youenn.
I had a discussion with Basuke.
We agreed that this bug should be split into two parts, the build fix and the improvement.

At the moment, SystemProxyWin is not used at all even though it is compiled.
So, I will just remove SystemProxyWin.cpp in this bug.

Basuke will work on the improvement part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425060</commentid>
    <comment_count>12</comment_count>
      <attachid>340680</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-17 22:32:10 -0700</bug_when>
    <thetext>Created attachment 340680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425068</commentid>
    <comment_count>13</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-18 00:41:29 -0700</bug_when>
    <thetext>Committed r231947: &lt;https://trac.webkit.org/changeset/231947&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425069</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-18 00:42:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/40358534&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339360</attachid>
            <date>2018-05-02 15:51:56 -0700</date>
            <delta_ts>2018-05-07 16:09:51 -0700</delta_ts>
            <desc>FIX</desc>
            <filename>185224.diff</filename>
            <type>text/plain</type>
            <size>1371</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOTk5NjM5ZGVjN2YuLjU0NGRmNWMwZThiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDE4LTA1LTAyICBCYXN1a2UgU3V6dWtpICA8QmFzdWtlLlN1enVraUBzb255LmNv
bT4KKworICAgICAgICBbQ3VybF0gRml4IHRvIGZvbGxvdyB0aGUgaW50ZXJmYWNlIGNoYW5nZSBv
ZiBQcm94eVNldHRpbmdzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93aW4vU3lzdGVtUHJveHlXaW4uY3BwOgorICAgICAg
ICAoV2luZG93c1N5c3RlbVByb3h5OjpzZXRDdXJsSHR0cFByb3h5KToKKwogMjAxOC0wNS0wMSAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVc2UgZGVm
YXVsdCBzdGQ6Om9wdGlvbmFsIGlmIGl0IGlzIHByb3ZpZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dpbi9TeXN0ZW1Qcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dpbi9TeXN0ZW1Qcm94eVdpbi5jcHAKaW5kZXggZDE3MzJkZGI0
YjUuLjI1MDFlMDRmMzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dpbi9TeXN0ZW1Qcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93aW4vU3lzdGVtUHJveHlXaW4uY3BwCkBAIC02NSw3ICs2NSw4IEBAIGJvb2wgV2luZG93c1N5
c3RlbVByb3h5OjpnZXRTeXN0ZW1IdHRwUHJveHkoY2hhciogYnVmZmVyLCBpbnQgYnVmZmVyTGVu
LCBpbnQqIHBvCiAKIHZvaWQgV2luZG93c1N5c3RlbVByb3h5OjpzZXRDdXJsSHR0cFByb3h5KGNo
YXIqIHByb3h5LCBpbnQgcG9ydCkKIHsKLSAgICBXZWJDb3JlOjpDdXJsQ29udGV4dDo6c2luZ2xl
dG9uKCkuc2V0UHJveHlJbmZvKHByb3h5LCBwb3J0KTsKKyAgICBXZWJDb3JlOjpDdXJsUHJveHlT
ZXR0aW5ncyBzZXR0aW5ncyhXZWJDb3JlOjpVUkwoV2ViQ29yZTo6UGFyc2VkVVJMU3RyaW5nLCBT
dHJpbmc6OmZvcm1hdCgiaHR0cDovLyVzOiVkLyIsIHByb3h5LCBwb3J0KSksIFN0cmluZygpKTsK
KyAgICBXZWJDb3JlOjpDdXJsQ29udGV4dDo6c2luZ2xldG9uKCkuc2V0UHJveHlTZXR0aW5ncyhz
ZXR0aW5ncyk7CiB9CiAKIHZvaWQgV2luZG93c1N5c3RlbVByb3h5OjpzZXRDdXJsSHR0cFByb3h5
KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339763</attachid>
            <date>2018-05-07 16:09:51 -0700</date>
            <delta_ts>2018-05-17 22:26:09 -0700</delta_ts>
            <desc>FIX</desc>
            <filename>185224.diff</filename>
            <type>text/plain</type>
            <size>6616</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZWU4ZmI3ZDI2ZGIuLmExMGYyZmNiOTA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDE4LTA1LTA3ICBCYXN1a2UgU3V6dWtpICA8QmFzdWtlLlN1enVraUBzb255LmNv
bT4KKworICAgICAgICBbQ3VybF0gRml4IHRvIGZvbGxvdyB0aGUgaW50ZXJmYWNlIGNoYW5nZSBv
ZiBQcm94eVNldHRpbmdzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg1MjI0CisKKyAgICAgICAgRml4IHRoZSBzaWduYXR1cmUgY2hhbmdlLiBBbHNv
IG1vZGVybml6ZSB0aGUgV2luZG93cyByZWdpc3RlciB2YWx1ZSBxdWVyeS4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dp
bi9TeXN0ZW1Qcm94eVdpbi5jcHA6CisgICAgICAgIChXaW5kb3dzU3lzdGVtUHJveHk6OmdldFN5
c3RlbUh0dHBQcm94eSk6CisgICAgICAgIChub3JtYWxpemVkSG9zdCk6CisgICAgICAgIChidWls
ZEh0dHBQcm94eVVybCk6CisgICAgICAgIChXaW5kb3dzU3lzdGVtUHJveHk6OnNldEN1cmxIdHRw
UHJveHkpOgorICAgICAgICAoV2luZG93c1N5c3RlbVByb3h5OjpwYXJzZVByb3h5U3RyaW5nKToK
KyAgICAgICAgKFdpbmRvd3NTeXN0ZW1Qcm94eTo6cmVhZFJlZ2lzdHJ5VmFsdWUpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3dpbi9TeXN0ZW1Qcm94eVdpbi5oOgorCiAyMDE4LTA1LTA3ICBE
b24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW1dpbl0gQWRk
IG1pc3NpbmcgbWV0aG9kcyB0byBXZWJDaHJvbWVDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2luL1N5c3RlbVByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2luL1N5c3RlbVByb3h5V2luLmNwcAppbmRleCBkMTczMmRkYjRi
NS4uMGJkNWY0OWJlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2luL1N5c3RlbVByb3h5V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dpbi9TeXN0ZW1Qcm94eVdpbi5jcHAKQEAgLTI3LDcwICsyNyw4MiBAQAogI2luY2x1ZGUgIlN5
c3RlbVByb3h5V2luLmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0N1cmxDb250ZXh0Lmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi1ib29sIFdpbmRvd3NTeXN0ZW1Qcm94
eTo6Z2V0U3lzdGVtSHR0cFByb3h5KGNoYXIqIGJ1ZmZlciwgaW50IGJ1ZmZlckxlbiwgaW50KiBw
b3J0KQorc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U3RyaW5nLCB1bnNpZ25lZD4+IFdpbmRvd3NT
eXN0ZW1Qcm94eTo6Z2V0U3lzdGVtSHR0cFByb3h5KCkKIHsKLSAgICBWZWN0b3I8VENIQVI+IHRS
ZWdCdWZmZXIoYnVmZmVyTGVuKTsKLSAgICBWZWN0b3I8VENIQVI+IHRIb3N0KGJ1ZmZlckxlbik7
Ci0gICAgRFdPUkQgdHlwZTsKLSAgICBEV09SRCBzaXplOwotICAgIEhLRVkga2V5OworICAgIGNv
bnN0IGF1dG8gSW50ZXJuZXRTZXR0aW5nUGF0aCA9IEwiU29mdHdhcmVcXE1pY3Jvc29mdFxcV2lu
ZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzIjsKKyAgICBjb25zdCBhdXRv
IFByb3h5U2VydmVyTmFtZSA9IEwiUHJveHlTZXJ2ZXIiOwogCi0gICAgTE9ORyByZXQgPSBSZWdP
cGVuS2V5RXgoSEtFWV9DVVJSRU5UX1VTRVIsCi0gICAgICAgIEwiU29mdHdhcmVcXE1pY3Jvc29m
dFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzIiwKLSAgICAgICAg
MCwKLSAgICAgICAgS0VZX1JFQUQsCi0gICAgICAgICZrZXkpOwotICAgIGlmIChyZXQgIT0gRVJS
T1JfU1VDQ0VTUykKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChhdXRvIGJ1ZmZlciA9
IHJlYWRSZWdpc3RyeVZhbHVlKEludGVybmV0U2V0dGluZ1BhdGgsIFByb3h5U2VydmVyTmFtZSkp
CisgICAgICAgIHJldHVybiBwYXJzZVByb3h5U3RyaW5nKFdURk1vdmUoKmJ1ZmZlcikpOwogCi0g
ICAgc2l6ZSA9IGJ1ZmZlckxlbiAtIDE7Ci0gICAgcmV0ID0gUmVnUXVlcnlWYWx1ZUV4KGtleSwK
LSAgICAgICAgTCJQcm94eVNlcnZlciIsCi0gICAgICAgIG51bGxwdHIsCi0gICAgICAgICZ0eXBl
LAotICAgICAgICAoTFBCWVRFKXRSZWdCdWZmZXIuZGF0YSgpLAotICAgICAgICAmc2l6ZSk7Cisg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KIAotICAgIGlmIChyZXQgIT0gRVJST1JfU1VDQ0VT
UykKLSAgICAgICAgcmV0dXJuIGZhbHNlOworc3RhdGljIFN0cmluZyBub3JtYWxpemVkSG9zdChj
b25zdCBTdHJpbmcmIGhvc3QpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWZmZXI7CiAKLSAgICBp
ZiAoIXBhcnNlUHJveHlTdHJpbmcodFJlZ0J1ZmZlci5kYXRhKCksIHRIb3N0LmRhdGEoKSwgYnVm
ZmVyTGVuLCBwb3J0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGJ1ZmZlci5hcHBlbmQo
Imh0dHA6Ly8iKTsKKyAgICBidWZmZXIuYXBwZW5kKGhvc3QpOwogCi0gICAgd2NzdG9tYnMoYnVm
ZmVyLCB0SG9zdC5kYXRhKCksIGJ1ZmZlckxlbik7Ci0gICAgYnVmZmVyW2J1ZmZlckxlbi0xXSA9
ICdcMCc7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgV2ViQ29yZTo6VVJMIHVybCB7IFdlYkNvcmU6
OlVSTCgpLCBidWZmZXIudG9TdHJpbmcoKSB9OworICAgIHJldHVybiB1cmwuaG9zdCgpOwogfQog
Ci12b2lkIFdpbmRvd3NTeXN0ZW1Qcm94eTo6c2V0Q3VybEh0dHBQcm94eShjaGFyKiBwcm94eSwg
aW50IHBvcnQpCitzdGF0aWMgV2ViQ29yZTo6VVJMIGJ1aWxkSHR0cFByb3h5VXJsKGNvbnN0IFN0
cmluZyYgaG9zdCwgdW5zaWduZWQgcG9ydCkKIHsKLSAgICBXZWJDb3JlOjpDdXJsQ29udGV4dDo6
c2luZ2xldG9uKCkuc2V0UHJveHlJbmZvKHByb3h5LCBwb3J0KTsKKyAgICBTdHJpbmdCdWlsZGVy
IGJ1ZmZlcjsKKworICAgIGJ1ZmZlci5hcHBlbmQoImh0dHA6Ly8iKTsKKyAgICBidWZmZXIuYXBw
ZW5kKG5vcm1hbGl6ZWRIb3N0KGhvc3QpKTsKKyAgICBidWZmZXIuYXBwZW5kKCc6Jyk7CisgICAg
YnVmZmVyLmFwcGVuZE51bWJlcihwb3J0KTsKKworICAgIHJldHVybiBXZWJDb3JlOjpVUkwgeyBX
ZWJDb3JlOjpQYXJzZWRVUkxTdHJpbmcsIGJ1ZmZlci50b1N0cmluZygpIH07Cit9CisKK3ZvaWQg
V2luZG93c1N5c3RlbVByb3h5OjpzZXRDdXJsSHR0cFByb3h5KGNvbnN0IFN0cmluZyYgaG9zdCwg
dW5zaWduZWQgcG9ydCkKK3sKKyAgICBXZWJDb3JlOjpDdXJsUHJveHlTZXR0aW5ncyBzZXR0aW5n
cyhidWlsZEh0dHBQcm94eVVybChob3N0LCBwb3J0KSwgU3RyaW5nKCkpOworICAgIFdlYkNvcmU6
OkN1cmxDb250ZXh0OjpzaW5nbGV0b24oKS5zZXRQcm94eVNldHRpbmdzKHNldHRpbmdzKTsKIH0K
IAogdm9pZCBXaW5kb3dzU3lzdGVtUHJveHk6OnNldEN1cmxIdHRwUHJveHkoKQogewotICAgIGNo
YXIgcHJveHlbUHJveHlTZXJ2ZXJOYW1lTGVuZ3RoXTsKLSAgICBpbnQgcG9ydDsKLSAgICBpZiAo
Z2V0U3lzdGVtSHR0cFByb3h5KHByb3h5LCBQcm94eVNlcnZlck5hbWVMZW5ndGgsICZwb3J0KSkK
LSAgICAgICAgc2V0Q3VybEh0dHBQcm94eShwcm94eSwgcG9ydCk7CisgICAgaWYgKGF1dG8gcmVz
dWx0ID0gZ2V0U3lzdGVtSHR0cFByb3h5KCkpCisgICAgICAgIHNldEN1cmxIdHRwUHJveHkocmVz
dWx0LT5maXJzdCwgcmVzdWx0LT5zZWNvbmQpOwogfQogCi1ib29sIFdpbmRvd3NTeXN0ZW1Qcm94
eTo6cGFyc2VQcm94eVN0cmluZyhjb25zdCBUQ0hBUiogcmVnUHJveHlTdHJpbmcsIFRDSEFSKiBo
b3N0U3RyaW5nLCBpbnQgaG9zdFN0cmluZ0xlbiwgaW50KiBwb3J0KQorc3RkOjpvcHRpb25hbDxz
dGQ6OnBhaXI8U3RyaW5nLCB1bnNpZ25lZD4+IFdpbmRvd3NTeXN0ZW1Qcm94eTo6cGFyc2VQcm94
eVN0cmluZyhWZWN0b3I8VENIQVI+JiYgYnVmZmVyKQogewotICAgIGNvbnN0IFRDSEFSKiBmb3Vu
ZCA9IHdjc2NocihyZWdQcm94eVN0cmluZywgTCc6Jyk7Ci0gICAgaWYgKCFmb3VuZCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHVuc2lnbmVkIHNpemUgPSBidWZmZXIuZmluZChMJzonKTsK
KyAgICBpZiAoc2l6ZSA9PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IAotICAgIGludCBsZW4gPSBmb3VuZCAtIHJlZ1Byb3h5U3RyaW5nOwotICAgIGlmIChsZW4gPj0g
aG9zdFN0cmluZ0xlbikKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGJvb2wgb2s7CisgICAg
YXV0byBwb3J0ID0gV1RGOjpjaGFyYWN0ZXJzVG9VSW50U3RyaWN0KCZidWZmZXJbc2l6ZSArIDFd
LCBidWZmZXIuc2l6ZSgpIC0gc2l6ZSAtIDEsICZvayk7CisgICAgaWYgKCFvaykKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHdjc25jcHkoaG9zdFN0cmluZywgcmVnUHJveHlT
dHJpbmcsIGhvc3RTdHJpbmdMZW4pOwotICAgIGhvc3RTdHJpbmdbbGVuXSA9IEwnXDAnOworICAg
IHJldHVybiBzdGQ6Om1ha2VfcGFpcihTdHJpbmcgeyBidWZmZXIuYmVnaW4oKSwgc2l6ZSB9LCBw
b3J0KTsKK30KIAotICAgIFRDSEFSKiBwb3J0U3RyID0gY29uc3RfY2FzdDxUQ0hBUio+KGZvdW5k
KSArIDE7Ci0gICAgKnBvcnQgPSBfd3RvaShwb3J0U3RyKTsKK3N0ZDo6b3B0aW9uYWw8VmVjdG9y
PFRDSEFSPj4gV2luZG93c1N5c3RlbVByb3h5OjpyZWFkUmVnaXN0cnlWYWx1ZShjb25zdCBUQ0hB
UiogcGF0aCwgY29uc3QgVENIQVIqIHZhbHVlTmFtZSkKK3sKKyAgICBIS0VZIGtleTsKKyAgICBM
T05HIHJldCA9IFJlZ09wZW5LZXlFeChIS0VZX0NVUlJFTlRfVVNFUiwgcGF0aCwgMCwgS0VZX1JF
QUQsICZrZXkpOworICAgIGlmIChyZXQgIT0gRVJST1JfU1VDQ0VTUykKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB0cnVlOworICAgIFZlY3RvcjxUQ0hBUj4gYnVm
ZmVyKFByb3h5U2VydmVyTmFtZUxlbmd0aCk7CisgICAgRFdPUkQgc2l6ZSA9IGJ1ZmZlci5zaXpl
KCkgLSAxOworICAgIERXT1JEIHR5cGU7CisgICAgcmV0ID0gUmVnUXVlcnlWYWx1ZUV4KGtleSwg
dmFsdWVOYW1lLCBudWxscHRyLCAmdHlwZSwgcmVpbnRlcnByZXRfY2FzdDxMUEJZVEU+KGJ1ZmZl
ci5iZWdpbigpKSwgJnNpemUpOworICAgIGlmIChyZXQgIT0gRVJST1JfU1VDQ0VTUykKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2luL1N5c3RlbVBy
b3h5V2luLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dpbi9TeXN0ZW1Qcm94eVdp
bi5oCmluZGV4IDk1NjA5Mjg4YmU2Li5lYzhlNjQ4MzYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93aW4vU3lzdGVtUHJveHlXaW4uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dpbi9TeXN0ZW1Qcm94eVdpbi5oCkBAIC0yNiwxNyArMjYsMTcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBjbGFzcyBXaW5kb3dzU3lzdGVtUHJveHkgewogICAgIHN0YXRp
YyBjb25zdCBpbnQgUHJveHlTZXJ2ZXJOYW1lTGVuZ3RoID0gNTEyOwogcHVibGljOgotICAgIHN0
YXRpYyBib29sIGdldFN5c3RlbUh0dHBQcm94eShjaGFyKiBidWZmZXIsIGludCBidWZmZXJMZW4s
IGludCogcG9ydCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0U3lzdGVtSHR0cHNQcm94eShjaGFyKiBi
dWZmZXIsIGludCBidWZmZXJMZW4sIGludCogcG9ydCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0U3lz
dGVtRnRwUHJveHkoY2hhciogYnVmZmVyLCBpbnQgYnVmZmVyTGVuLCBpbnQqIHBvcnQpOworICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIHVuc2lnbmVkPj4gZ2V0U3lz
dGVtSHR0cFByb3h5KCk7CiAKLSAgICBzdGF0aWMgdm9pZCBzZXRDdXJsSHR0cFByb3h5KGNoYXIq
IHByb3h5LCBpbnQgcG9ydCk7CisgICAgc3RhdGljIHZvaWQgc2V0Q3VybEh0dHBQcm94eShjb25z
dCBTdHJpbmcmIGhvc3QsIHVuc2lnbmVkIHBvcnQpOwogICAgIHN0YXRpYyB2b2lkIHNldEN1cmxI
dHRwUHJveHkoKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgYm9vbCBwYXJzZVByb3h5U3RyaW5n
KGNvbnN0IFRDSEFSKiByZWdQcm94eVN0cmluZywgVENIQVIqIGhvc3RTdHJpbmcsIGludCBob3N0
U3RyaW5nTGVuLCBpbnQqIHBvcnQpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFp
cjxTdHJpbmcsIHVuc2lnbmVkPj4gcGFyc2VQcm94eVN0cmluZyhWZWN0b3I8VENIQVI+JiYgcHJv
eHlTdHJpbmcpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxUQ0hBUj4+IHJlYWRS
ZWdpc3RyeVZhbHVlKGNvbnN0IFRDSEFSKiBwYXRoLCBjb25zdCBUQ0hBUiogdmFsdWVOYW1lKTsK
IH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340680</attachid>
            <date>2018-05-17 22:32:10 -0700</date>
            <delta_ts>2018-05-18 00:36:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185224-20180518143209.patch</filename>
            <type>text/plain</type>
            <size>7157</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxOTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQwNjhjYzk3NmYzYWMzMGEx
YzRhYjY5YmViYTBhMzNiZTYyMzIwYzAuLjNhNWM4N2EyNTUwMmU5Yjc5MjNmOTM5MmMwYmVjYjYw
YmRkMzUwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDUtMTcgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW0N1cmxdIFJlbW92
ZSB1bnVzZWQgU3lzdGVtUHJveHlXaW4uY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODUyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTeXN0ZW1Qcm94eVdpbiBpcyBub3QgdXNlZCBhdCB0aGUgbW9t
ZW50LiBSZW1vdmUgaXQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93aW4vU3lzdGVtUHJv
eHlXaW4uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dpbi9TeXN0ZW1Q
cm94eVdpbi5oOiBSZW1vdmVkLgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOiBSZW1vdmVk
IFN5c3RlbVByb3h5V2luLmNwcC4KKwogMjAxOC0wNS0xNyAgTmFuIFdhbmcgIDxuX3dhbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIEFYOiBbbWFjT1NdIEV4cG9zZSB0aGUgcHJpbWFyeSBzY3JlZW4g
aGVpZ2h0IHRocm91Z2ggQVggQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dpbi9TeXN0ZW1Qcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dpbi9TeXN0ZW1Qcm94eVdpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQxNzMyZGRiNGI1MTIxYjgzYjA5OWRhOWY5ZTY4NDk5YmFjNWYwYTYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93aW4vU3lzdGVtUHJveHlXaW4uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1l
bnQgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU3lzdGVt
UHJveHlXaW4uaCIKLQotI2luY2x1ZGUgPFdlYkNvcmUvQ3VybENvbnRleHQuaD4KLQotYm9vbCBX
aW5kb3dzU3lzdGVtUHJveHk6OmdldFN5c3RlbUh0dHBQcm94eShjaGFyKiBidWZmZXIsIGludCBi
dWZmZXJMZW4sIGludCogcG9ydCkKLXsKLSAgICBWZWN0b3I8VENIQVI+IHRSZWdCdWZmZXIoYnVm
ZmVyTGVuKTsKLSAgICBWZWN0b3I8VENIQVI+IHRIb3N0KGJ1ZmZlckxlbik7Ci0gICAgRFdPUkQg
dHlwZTsKLSAgICBEV09SRCBzaXplOwotICAgIEhLRVkga2V5OwotCi0gICAgTE9ORyByZXQgPSBS
ZWdPcGVuS2V5RXgoSEtFWV9DVVJSRU5UX1VTRVIsCi0gICAgICAgIEwiU29mdHdhcmVcXE1pY3Jv
c29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzIiwKLSAgICAg
ICAgMCwKLSAgICAgICAgS0VZX1JFQUQsCi0gICAgICAgICZrZXkpOwotICAgIGlmIChyZXQgIT0g
RVJST1JfU1VDQ0VTUykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgc2l6ZSA9IGJ1ZmZl
ckxlbiAtIDE7Ci0gICAgcmV0ID0gUmVnUXVlcnlWYWx1ZUV4KGtleSwKLSAgICAgICAgTCJQcm94
eVNlcnZlciIsCi0gICAgICAgIG51bGxwdHIsCi0gICAgICAgICZ0eXBlLAotICAgICAgICAoTFBC
WVRFKXRSZWdCdWZmZXIuZGF0YSgpLAotICAgICAgICAmc2l6ZSk7Ci0KLSAgICBpZiAocmV0ICE9
IEVSUk9SX1NVQ0NFU1MpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghcGFyc2VQ
cm94eVN0cmluZyh0UmVnQnVmZmVyLmRhdGEoKSwgdEhvc3QuZGF0YSgpLCBidWZmZXJMZW4sIHBv
cnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB3Y3N0b21icyhidWZmZXIsIHRIb3N0
LmRhdGEoKSwgYnVmZmVyTGVuKTsKLSAgICBidWZmZXJbYnVmZmVyTGVuLTFdID0gJ1wwJzsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBXaW5kb3dzU3lzdGVtUHJveHk6OnNldEN1cmxIdHRw
UHJveHkoY2hhciogcHJveHksIGludCBwb3J0KQotewotICAgIFdlYkNvcmU6OkN1cmxDb250ZXh0
OjpzaW5nbGV0b24oKS5zZXRQcm94eUluZm8ocHJveHksIHBvcnQpOwotfQotCi12b2lkIFdpbmRv
d3NTeXN0ZW1Qcm94eTo6c2V0Q3VybEh0dHBQcm94eSgpCi17Ci0gICAgY2hhciBwcm94eVtQcm94
eVNlcnZlck5hbWVMZW5ndGhdOwotICAgIGludCBwb3J0OwotICAgIGlmIChnZXRTeXN0ZW1IdHRw
UHJveHkocHJveHksIFByb3h5U2VydmVyTmFtZUxlbmd0aCwgJnBvcnQpKQotICAgICAgICBzZXRD
dXJsSHR0cFByb3h5KHByb3h5LCBwb3J0KTsKLX0KLQotYm9vbCBXaW5kb3dzU3lzdGVtUHJveHk6
OnBhcnNlUHJveHlTdHJpbmcoY29uc3QgVENIQVIqIHJlZ1Byb3h5U3RyaW5nLCBUQ0hBUiogaG9z
dFN0cmluZywgaW50IGhvc3RTdHJpbmdMZW4sIGludCogcG9ydCkKLXsKLSAgICBjb25zdCBUQ0hB
UiogZm91bmQgPSB3Y3NjaHIocmVnUHJveHlTdHJpbmcsIEwnOicpOwotICAgIGlmICghZm91bmQp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGludCBsZW4gPSBmb3VuZCAtIHJlZ1Byb3h5
U3RyaW5nOwotICAgIGlmIChsZW4gPj0gaG9zdFN0cmluZ0xlbikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgd2NzbmNweShob3N0U3RyaW5nLCByZWdQcm94eVN0cmluZywgaG9zdFN0cmlu
Z0xlbik7Ci0gICAgaG9zdFN0cmluZ1tsZW5dID0gTCdcMCc7Ci0KLSAgICBUQ0hBUiogcG9ydFN0
ciA9IGNvbnN0X2Nhc3Q8VENIQVIqPihmb3VuZCkgKyAxOwotICAgICpwb3J0ID0gX3d0b2kocG9y
dFN0cik7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2luL1N5c3RlbVByb3h5V2luLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dpbi9TeXN0ZW1Qcm94eVdpbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5NTYwOTI4OGJlNmM5NDNiYmJlNzk2NjJlYjZmMzI0ZDY1YzRkNTlhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2luL1N5c3RlbVByb3h5V2luLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlu
bWVudCBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d2luZG93cy5o
PgotCi1jbGFzcyBXaW5kb3dzU3lzdGVtUHJveHkgewotICAgIHN0YXRpYyBjb25zdCBpbnQgUHJv
eHlTZXJ2ZXJOYW1lTGVuZ3RoID0gNTEyOwotcHVibGljOgotICAgIHN0YXRpYyBib29sIGdldFN5
c3RlbUh0dHBQcm94eShjaGFyKiBidWZmZXIsIGludCBidWZmZXJMZW4sIGludCogcG9ydCk7Ci0g
ICAgc3RhdGljIGJvb2wgZ2V0U3lzdGVtSHR0cHNQcm94eShjaGFyKiBidWZmZXIsIGludCBidWZm
ZXJMZW4sIGludCogcG9ydCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0U3lzdGVtRnRwUHJveHkoY2hh
ciogYnVmZmVyLCBpbnQgYnVmZmVyTGVuLCBpbnQqIHBvcnQpOwotCi0gICAgc3RhdGljIHZvaWQg
c2V0Q3VybEh0dHBQcm94eShjaGFyKiBwcm94eSwgaW50IHBvcnQpOwotICAgIHN0YXRpYyB2b2lk
IHNldEN1cmxIdHRwUHJveHkoKTsKLQotcHJpdmF0ZToKLSAgICBzdGF0aWMgYm9vbCBwYXJzZVBy
b3h5U3RyaW5nKGNvbnN0IFRDSEFSKiByZWdQcm94eVN0cmluZywgVENIQVIqIGhvc3RTdHJpbmcs
IGludCBob3N0U3RyaW5nTGVuLCBpbnQqIHBvcnQpOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtl
CmluZGV4IGM3NDVlN2MxOWYxNTY2NmExMzNhNjcyM2NkNmZhNjdkMmE0ZjJlNTMuLmEwM2QwM2Yw
NjE1NDViYzE3ODIxNmZkNGVkYzU4ZDQ4MDk3OTk1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFr
ZQpAQCAtMTAsNyArMTAsNiBAQCBhZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQpCiAK
IGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2luL05ldHdv
cmtQcm9jZXNzTWFpbldpbi5jcHAKLSAgICBOZXR3b3JrUHJvY2Vzcy93aW4vU3lzdGVtUHJveHlX
aW4uY3BwCiAKICAgICBQbGF0Zm9ybS9JUEMvd2luL0F0dGFjaG1lbnRXaW4uY3BwCiAgICAgUGxh
dGZvcm0vSVBDL3dpbi9Db25uZWN0aW9uV2luLmNwcAo=
</data>
<flag name="review"
          id="358927"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>