<?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>125006</bug_id>
          
          <creation_ts>2013-11-29 03:09:29 -0800</creation_ts>
          <short_desc>[curl] Improve detecting and handling of SSL client certificate</short_desc>
          <delta_ts>2014-01-22 10:16:00 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>117300</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>sipka</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>galpeter</cc>
    
    <cc>ossy</cc>
    
    <cc>peavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>954929</commentid>
    <comment_count>0</comment_count>
    <who name="">sipka</who>
    <bug_when>2013-11-29 03:09:29 -0800</bug_when>
    <thetext>Add client certificate handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954931</commentid>
    <comment_count>1</comment_count>
      <attachid>218050</attachid>
    <who name="">sipka</who>
    <bug_when>2013-11-29 03:13:52 -0800</bug_when>
    <thetext>Created attachment 218050
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958344</commentid>
    <comment_count>2</comment_count>
      <attachid>218867</attachid>
    <who name="">sipka</who>
    <bug_when>2013-12-10 06:54:53 -0800</bug_when>
    <thetext>Created attachment 218867
proposed patch

update and ping for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958818</commentid>
    <comment_count>3</comment_count>
      <attachid>218867</attachid>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2013-12-11 11:24:31 -0800</bug_when>
    <thetext>Comment on attachment 218867
proposed patch

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

&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:129
&gt; +        addAllowedClientCertificate(host.lower(), certificate, key);

We should move the .lower() call into the addAllowedClientCertificate method.

&gt; Source/WebCore/platform/network/curl/SSLHandle.cpp:60
&gt; +    HashMap&lt;String, clientCertificate&gt;::iterator it = allowedClientHosts.find(host);

Shouldn&apos;t the host be in lowercase? When you add items into the allowedClientHosts the host is in lowercase (see setClientCertificateInfo method).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959130</commentid>
    <comment_count>4</comment_count>
      <attachid>219063</attachid>
    <who name="">sipka</who>
    <bug_when>2013-12-12 02:40:20 -0800</bug_when>
    <thetext>Created attachment 219063
proposed patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959133</commentid>
    <comment_count>5</comment_count>
    <who name="">sipka</who>
    <bug_when>2013-12-12 02:45:00 -0800</bug_when>
    <thetext>Thanks for the reply!

(In reply to comment #3)
&gt; (From update of attachment 218867 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=218867&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:129
&gt; &gt; +        addAllowedClientCertificate(host.lower(), certificate, key);
&gt; 
&gt; We should move the .lower() call into the addAllowedClientCertificate method.
&gt; 
&gt; &gt; Source/WebCore/platform/network/curl/SSLHandle.cpp:60
&gt; &gt; +    HashMap&lt;String, clientCertificate&gt;::iterator it = allowedClientHosts.find(host);
&gt; 
&gt; Shouldn&apos;t the host be in lowercase? When you add items into the allowedClientHosts the host is in lowercase (see setClientCertificateInfo method).

Yes, these modifications ensure the expected behavior. I fixed these in the newest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970333</commentid>
    <comment_count>6</comment_count>
      <attachid>219063</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-21 11:23:51 -0800</bug_when>
    <thetext>Comment on attachment 219063
proposed patch v2

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

Looks good, but I had a couple of comments before we land this.

&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:131
&gt; +        LOG(Network, &quot;Invalid client certificate file: %s!\n&quot;, certificate.latin1().data());

I think this should be certificate.utf8().data().

&gt; Source/WebCore/platform/network/curl/SSLHandle.cpp:60
&gt; +    if (it != allowedClientHosts.end()) {

This should probably be an early return for clarity. If it already exists, there&apos;s nothing to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970342</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-21 11:37:30 -0800</bug_when>
    <thetext>(In reply to comment #6)

Please disregard this comment:
&gt; &gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:131
&gt; &gt; +        LOG(Network, &quot;Invalid client certificate file: %s!\n&quot;, certificate.latin1().data());
&gt; 
&gt; I think this should be certificate.utf8().data().

Looking at other code, I think latin1() is probably correct!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970633</commentid>
    <comment_count>8</comment_count>
      <attachid>221843</attachid>
    <who name="">sipka</who>
    <bug_when>2014-01-22 02:22:32 -0800</bug_when>
    <thetext>Created attachment 221843
proposed patch

Thanks for the review. I modified the patch according to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970722</commentid>
    <comment_count>9</comment_count>
      <attachid>221843</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-22 09:47:53 -0800</bug_when>
    <thetext>Comment on attachment 221843
proposed patch

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

Thanks for revising!  Looks great.

&gt; Source/WebCore/platform/network/curl/SSLHandle.cpp:59
&gt; +    HashMap&lt;String, clientCertificate&gt;::iterator it = allowedClientHosts.find(host.lower());

In the future, consider using auto. I think this could be a const_iterator, or even better &quot;const auto&amp; it = ...&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970742</commentid>
    <comment_count>10</comment_count>
      <attachid>221843</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-22 10:15:56 -0800</bug_when>
    <thetext>Comment on attachment 221843
proposed patch

Clearing flags on attachment: 221843

Committed r162530: &lt;http://trac.webkit.org/changeset/162530&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970743</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-22 10:16:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218050</attachid>
            <date>2013-11-29 03:13:52 -0800</date>
            <delta_ts>2013-12-10 06:54:53 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>sslConnect.patch</filename>
            <type>text/plain</type>
            <size>6740</size>
            <attacher>sipka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMDMzNDIyLi43ZTFmMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTMtMTEtMjkgIFJvYmVydCBTaXBrYSAgPHNpcGthQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICBbY3VybF0gSW1wcm92ZSBkZXRlY3RpbmcgYW5kIGhhbmRsaW5nIG9mIFNTTCBjb25u
ZWN0aW9uIGVycm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjUwMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgY2xpZW50IGNlcnRpZmljYXRlIGhhbmRsaW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUVycm9yLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUVycm9yOjpo
YXNTU0xDb25uZWN0RXJyb3IpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNl
dENsaWVudENlcnRpZmljYXRlSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZU1hbmFnZXI6OmluaXRpYWxpemVIYW5kbGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9TU0xIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkQWxsb3dlZENsaWVu
dENlcnRpZmljYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFNTTENsaWVudENlcnRpZmljYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmg6CisKIDIwMTMt
MTEtMjggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBSZW5hbWUgSW5saW5lSXRlcmF0b3I6Om1fb2JqIGFuZCBtYWtlIGl0IHByaXZhdGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCBm
ZjgwNjc0Li40MmRmODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHVibGljOgogCiAjaWYgKFBM
QVRGT1JNKFdJTikgfHwgUExBVEZPUk0oTklYKSkgJiYgVVNFKENVUkwpCiAgICAgc3RhdGljIHZv
aWQgc2V0SG9zdEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJik7CisgICAg
c3RhdGljIHZvaWQgc2V0Q2xpZW50Q2VydGlmaWNhdGVJbmZvKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBV
U0UoQ1VSTCkgJiYgVVNFKENGKQogICAgIHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRl
KGNvbnN0IFN0cmluZyYgaG9zdCwgQ0ZEYXRhUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUVycm9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VFcnJvci5oCmluZGV4IDc1NTVmNTQuLjE3
YTRiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlRXJyb3IuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBSZXNvdXJjZUVycm9y
X2gKIAogI2luY2x1ZGUgIlJlc291cmNlRXJyb3JCYXNlLmgiCisjaW5jbHVkZSA8Y3VybC9jdXJs
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsNiArNDUsNyBAQCBwdWJsaWM6CiAK
ICAgICB1bnNpZ25lZCBzc2xFcnJvcnMoKSBjb25zdCB7IHJldHVybiBtX3NzbEVycm9yczsgfQog
ICAgIHZvaWQgc2V0U1NMRXJyb3JzKHVuc2lnbmVkIHNzbFZlcmlmeVJlc3VsdCkgeyBtX3NzbEVy
cm9ycyA9IHNzbFZlcmlmeVJlc3VsdDsgfQorICAgIGJvb2wgaGFzU1NMQ29ubmVjdEVycm9yKCkg
Y29uc3QgeyByZXR1cm4gZXJyb3JDb2RlKCkgPT0gQ1VSTEVfU1NMX0NPTk5FQ1RfRVJST1I7IH0K
IAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3NzbEVycm9yczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5j
cHAKaW5kZXggNDAxM2NmMy4uMzYzZGEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTMw
LDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCkBA
IC0xMjEsNiArMTIzLDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNldEhvc3RBbGxvd3NBbnlI
VFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9zdCkKICAgICBhbGxvd3NBbnlIVFRQU0Nl
cnRpZmljYXRlSG9zdHMoaG9zdC5sb3dlcigpKTsKIH0KIAordm9pZCBSZXNvdXJjZUhhbmRsZTo6
c2V0Q2xpZW50Q2VydGlmaWNhdGVJbmZvKGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5n
JiBjZXJ0aWZpY2F0ZSwgY29uc3QgU3RyaW5nJiBrZXkpCit7CisgICAgaWYgKGZpbGVFeGlzdHMo
Y2VydGlmaWNhdGUpKQorICAgICAgICBhZGRBbGxvd2VkQ2xpZW50Q2VydGlmaWNhdGUoaG9zdC5s
b3dlcigpLCBjZXJ0aWZpY2F0ZSwga2V5KTsKKyAgICBlbHNlCisgICAgICAgIExPRyhOZXR3b3Jr
LCAiSW52YWxpZCBjbGllbnQgY2VydGlmaWNhdGUgZmlsZTogJXMhXG4iLCBjZXJ0aWZpY2F0ZS5s
YXRpbjEoKS5kYXRhKCkpOworfQorCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0YpCiAvLyBG
SVhNRTogIFRoZSBDRkRhdGFSZWYgd2lsbCBuZWVkIHRvIGJlIHNvbWV0aGluZyBlbHNlIHdoZW4K
IC8vIGJ1aWxkaW5nIHdpdGhvdXQgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCmluZGV4IDVh
NzI5N2EuLmY4YWZmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCkBAIC05NjEsNiAr
OTYxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmluaXRpYWxpemVIYW5kbGUoUmVz
b3VyY2VIYW5kbGUqIGpvYikKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJM
T1BUX0ROU19DQUNIRV9USU1FT1VULCA2MCAqIDUpOyAvLyA1IG1pbnV0ZXMKICAgICBjdXJsX2Vh
c3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1BST1RPQ09MUywgYWxsb3dlZFByb3RvY29s
cyk7CiAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9SRURJUl9QUk9U
T0NPTFMsIGFsbG93ZWRQcm90b2NvbHMpOworICAgIHNldFNTTENsaWVudENlcnRpZmljYXRlKGpv
Yik7CiAKICAgICBpZiAoaWdub3JlU1NMRXJyb3JzKQogICAgICAgICBjdXJsX2Vhc3lfc2V0b3B0
KGQtPm1faGFuZGxlLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuY3BwCmluZGV4IDE1
MDA3MWMuLmQzNDFjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9TU0xIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9TU0xIYW5kbGUuY3BwCkBAIC0zMywxMCArMzMsMTMgQEAKICNpbmNsdWRlIDxvcGVu
c3NsL3NzbC5oPgogI2luY2x1ZGUgPG9wZW5zc2wveDUwOV92ZnkuaD4KICNpbmNsdWRlIDx3dGYv
TGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAordHlwZWRlZiBzdGQ6OnR1cGxlPFdURjo6U3RyaW5nLCBXVEY6OlN0cmlu
Zz4gY2xpZW50Q2VydGlmaWNhdGU7CiBzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIExpc3RIYXNoU2V0
PFN0cmluZz4+IGFsbG93ZWRIb3N0czsKK3N0YXRpYyBIYXNoTWFwPFN0cmluZywgY2xpZW50Q2Vy
dGlmaWNhdGU+IGFsbG93ZWRDbGllbnRIb3N0czsKIAogdm9pZCBhbGxvd3NBbnlIVFRQU0NlcnRp
ZmljYXRlSG9zdHMoY29uc3QgU3RyaW5nJiBob3N0KQogewpAQCAtNDQsNiArNDcsMjUgQEAgdm9p
ZCBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoY29uc3QgU3RyaW5nJiBob3N0KQogICAg
IGFsbG93ZWRIb3N0cy5zZXQoaG9zdCwgY2VydGlmaWNhdGVzKTsKIH0KIAordm9pZCBhZGRBbGxv
d2VkQ2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGNl
cnRpZmljYXRlLCBjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICBjbGllbnRDZXJ0aWZpY2F0ZSBj
bGllbnRJbmZvKGNlcnRpZmljYXRlLCBrZXkpOworICAgIGFsbG93ZWRDbGllbnRIb3N0cy5zZXQo
aG9zdCwgY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgc2V0U1NMQ2xpZW50Q2VydGlmaWNhdGUoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSkKK3sKKyAgICBTdHJpbmcgaG9zdCA9IGhhbmRsZS0+Zmlyc3RS
ZXF1ZXN0KCkudXJsKCkuaG9zdCgpOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBo
YW5kbGUtPmdldEludGVybmFsKCk7CisgICAgSGFzaE1hcDxTdHJpbmcsIGNsaWVudENlcnRpZmlj
YXRlPjo6aXRlcmF0b3IgaXQgPSBhbGxvd2VkQ2xpZW50SG9zdHMuZmluZChob3N0KTsKKyAgICBp
ZiAoaXQgIT0gYWxsb3dlZENsaWVudEhvc3RzLmVuZCgpKSB7CisgICAgICAgIGNsaWVudENlcnRp
ZmljYXRlIGNsaWVudEluZm8gPSBpdC0+dmFsdWU7CisgICAgICAgIGN1cmxfZWFzeV9zZXRvcHQo
ZC0+bV9oYW5kbGUsIENVUkxPUFRfU1NMQ0VSVCwgc3RkOjpnZXQ8MD4oY2xpZW50SW5mbykudXRm
OCgpLmRhdGEoKSk7CisgICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxP
UFRfU1NMQ0VSVFRZUEUsICJQMTIiKTsKKyAgICAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hh
bmRsZSwgQ1VSTE9QVF9TU0xDRVJUUEFTU1dELCBzdGQ6OmdldDwxPihjbGllbnRJbmZvKS51dGY4
KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKIGJvb2wgc3NsSWdub3JlSFRUUFNDZXJ0aWZpY2F0ZShj
b25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IExpc3RIYXNoU2V0PFN0cmluZz4mIGNlcnRpZmljYXRl
cykKIHsKICAgICBIYXNoTWFwPFN0cmluZywgTGlzdEhhc2hTZXQ8U3RyaW5nPj46Oml0ZXJhdG9y
IGl0ID0gYWxsb3dlZEhvc3RzLmZpbmQoaG9zdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmgKaW5kZXggZTFlZGExZC4uYTQ2ZjAxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NTTEhhbmRsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuaApA
QCAtNDMsOSArNDMsMTEgQEAgdHlwZWRlZiBlbnVtIHsKIH0gU1NMQ2VydGlmaWNhdGVGbGFnczsK
IAogCit2b2lkIGFkZEFsbG93ZWRDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKIHZvaWQgYWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0
ZUhvc3RzKGNvbnN0IFN0cmluZyYpOwogYm9vbCBzc2xJZ25vcmVIVFRQU0NlcnRpZmljYXRlKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogdm9pZCBzZXRTU0xWZXJpZnlPcHRpb25zKFJl
c291cmNlSGFuZGxlKik7Cit2b2lkIHNldFNTTENsaWVudENlcnRpZmljYXRlKFJlc291cmNlSGFu
ZGxlKik7CiAKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218867</attachid>
            <date>2013-12-10 06:54:53 -0800</date>
            <delta_ts>2013-12-12 02:40:20 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>clientCert.patch</filename>
            <type>text/plain</type>
            <size>6729</size>
            <attacher>sipka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NTliMjA4Li4yMDU0MTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTMtMTItMTAgIFJvYmVydCBTaXBrYSAgPHNpcGthQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICBbY3VybF0gSW1wcm92ZSBkZXRlY3RpbmcgYW5kIGhhbmRsaW5nIG9mIFNTTCBjb25u
ZWN0aW9uIGVycm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjUwMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgY2xpZW50IGNlcnRpZmljYXRlIGhhbmRsaW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUVycm9yLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUVycm9yOjpo
YXNTU0xDb25uZWN0RXJyb3IpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNl
dENsaWVudENlcnRpZmljYXRlSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZU1hbmFnZXI6OmluaXRpYWxpemVIYW5kbGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9TU0xIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkQWxsb3dlZENsaWVu
dENlcnRpZmljYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFNTTENsaWVudENlcnRpZmljYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmg6CisKIDIwMTMt
MTItMTAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFZhcmlvdXMgZml4ZXMgZm9yIHRoZSBDTWFrZSBHVEsrIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggMzA5ODg3Ni4uNjIy
ODUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaApAQCAtMTUxLDYgKzE1MSw3IEBAIHB1YmxpYzoKIAogI2lmIChQTEFURk9STShXSU4p
IHx8IFBMQVRGT1JNKE5JWCkpICYmIFVTRShDVVJMKQogICAgIHN0YXRpYyB2b2lkIHNldEhvc3RB
bGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyB2b2lk
IHNldENsaWVudENlcnRpZmljYXRlSW5mbyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENVUkwpICYm
IFVTRShDRikKICAgICBzdGF0aWMgdm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJp
bmcmIGhvc3QsIENGRGF0YVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlRXJyb3IuaAppbmRleCA3NTU1ZjU0Li4xN2E0Yjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VFcnJv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUVy
cm9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUmVzb3VyY2VFcnJvcl9oCiAKICNpbmNs
dWRlICJSZXNvdXJjZUVycm9yQmFzZS5oIgorI2luY2x1ZGUgPGN1cmwvY3VybC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0LDYgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgdW5zaWdu
ZWQgc3NsRXJyb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zc2xFcnJvcnM7IH0KICAgICB2b2lkIHNl
dFNTTEVycm9ycyh1bnNpZ25lZCBzc2xWZXJpZnlSZXN1bHQpIHsgbV9zc2xFcnJvcnMgPSBzc2xW
ZXJpZnlSZXN1bHQ7IH0KKyAgICBib29sIGhhc1NTTENvbm5lY3RFcnJvcigpIGNvbnN0IHsgcmV0
dXJuIGVycm9yQ29kZSgpID09IENVUkxFX1NTTF9DT05ORUNUX0VSUk9SOyB9CiAKIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgbV9zc2xFcnJvcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDQw
MTNjZjMuLjM2M2RhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC0zMCw2ICszMCw4IEBA
CiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNyZWRlbnRp
YWxTdG9yYWdlLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgpAQCAtMTIxLDYgKzEy
MywxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXRIb3N0QWxsb3dzQW55SFRUUFNDZXJ0aWZp
Y2F0ZShjb25zdCBTdHJpbmcmIGhvc3QpCiAgICAgYWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUhv
c3RzKGhvc3QubG93ZXIoKSk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnNldENsaWVudENl
cnRpZmljYXRlSW5mbyhjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgY2VydGlmaWNh
dGUsIGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIGlmIChmaWxlRXhpc3RzKGNlcnRpZmljYXRl
KSkKKyAgICAgICAgYWRkQWxsb3dlZENsaWVudENlcnRpZmljYXRlKGhvc3QubG93ZXIoKSwgY2Vy
dGlmaWNhdGUsIGtleSk7CisgICAgZWxzZQorICAgICAgICBMT0coTmV0d29yaywgIkludmFsaWQg
Y2xpZW50IGNlcnRpZmljYXRlIGZpbGU6ICVzIVxuIiwgY2VydGlmaWNhdGUubGF0aW4xKCkuZGF0
YSgpKTsKK30KKwogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENGKQogLy8gRklYTUU6ICBUaGUg
Q0ZEYXRhUmVmIHdpbGwgbmVlZCB0byBiZSBzb21ldGhpbmcgZWxzZSB3aGVuCiAvLyBidWlsZGlu
ZyB3aXRob3V0IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAppbmRleCA1YTcyOTdhLi5mOGFm
ZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcApAQCAtOTYxLDYgKzk2MSw3IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjppbml0aWFsaXplSGFuZGxlKFJlc291cmNlSGFuZGxl
KiBqb2IpCiAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9ETlNfQ0FD
SEVfVElNRU9VVCwgNjAgKiA1KTsgLy8gNSBtaW51dGVzCiAgICAgY3VybF9lYXN5X3NldG9wdChk
LT5tX2hhbmRsZSwgQ1VSTE9QVF9QUk9UT0NPTFMsIGFsbG93ZWRQcm90b2NvbHMpOwogICAgIGN1
cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfUkVESVJfUFJPVE9DT0xTLCBhbGxv
d2VkUHJvdG9jb2xzKTsKKyAgICBzZXRTU0xDbGllbnRDZXJ0aWZpY2F0ZShqb2IpOwogCiAgICAg
aWYgKGlnbm9yZVNTTEVycm9ycykKICAgICAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRs
ZSwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NTTEhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmNwcAppbmRleCAxNTAwNzFjLi5kMzQx
YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NM
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NM
SGFuZGxlLmNwcApAQCAtMzMsMTAgKzMzLDEzIEBACiAjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4K
ICNpbmNsdWRlIDxvcGVuc3NsL3g1MDlfdmZ5Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3R5cGVkZWYgc3RkOjp0dXBsZTxXVEY6OlN0cmluZywgV1RGOjpTdHJpbmc+IGNsaWVudENl
cnRpZmljYXRlOwogc3RhdGljIEhhc2hNYXA8U3RyaW5nLCBMaXN0SGFzaFNldDxTdHJpbmc+PiBh
bGxvd2VkSG9zdHM7CitzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIGNsaWVudENlcnRpZmljYXRlPiBh
bGxvd2VkQ2xpZW50SG9zdHM7CiAKIHZvaWQgYWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUhvc3Rz
KGNvbnN0IFN0cmluZyYgaG9zdCkKIHsKQEAgLTQ0LDYgKzQ3LDI1IEBAIHZvaWQgYWxsb3dzQW55
SFRUUFNDZXJ0aWZpY2F0ZUhvc3RzKGNvbnN0IFN0cmluZyYgaG9zdCkKICAgICBhbGxvd2VkSG9z
dHMuc2V0KGhvc3QsIGNlcnRpZmljYXRlcyk7CiB9CiAKK3ZvaWQgYWRkQWxsb3dlZENsaWVudENl
cnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBjZXJ0aWZpY2F0ZSwg
Y29uc3QgU3RyaW5nJiBrZXkpCit7CisgICAgY2xpZW50Q2VydGlmaWNhdGUgY2xpZW50SW5mbyhj
ZXJ0aWZpY2F0ZSwga2V5KTsKKyAgICBhbGxvd2VkQ2xpZW50SG9zdHMuc2V0KGhvc3QsIGNsaWVu
dEluZm8pOworfQorCit2b2lkIHNldFNTTENsaWVudENlcnRpZmljYXRlKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUpCit7CisgICAgU3RyaW5nIGhvc3QgPSBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVy
bCgpLmhvc3QoKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJ
bnRlcm5hbCgpOworICAgIEhhc2hNYXA8U3RyaW5nLCBjbGllbnRDZXJ0aWZpY2F0ZT46Oml0ZXJh
dG9yIGl0ID0gYWxsb3dlZENsaWVudEhvc3RzLmZpbmQoaG9zdCk7CisgICAgaWYgKGl0ICE9IGFs
bG93ZWRDbGllbnRIb3N0cy5lbmQoKSkgeworICAgICAgICBjbGllbnRDZXJ0aWZpY2F0ZSBjbGll
bnRJbmZvID0gaXQtPnZhbHVlOworICAgICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxl
LCBDVVJMT1BUX1NTTENFUlQsIHN0ZDo6Z2V0PDA+KGNsaWVudEluZm8pLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1NTTENFUlRU
WVBFLCAiUDEyIik7CisgICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxP
UFRfU1NMQ0VSVFBBU1NXRCwgc3RkOjpnZXQ8MT4oY2xpZW50SW5mbykudXRmOCgpLmRhdGEoKSk7
CisgICAgfQorfQorCiBib29sIHNzbElnbm9yZUhUVFBTQ2VydGlmaWNhdGUoY29uc3QgU3RyaW5n
JiBob3N0LCBjb25zdCBMaXN0SGFzaFNldDxTdHJpbmc+JiBjZXJ0aWZpY2F0ZXMpCiB7CiAgICAg
SGFzaE1hcDxTdHJpbmcsIExpc3RIYXNoU2V0PFN0cmluZz4+OjppdGVyYXRvciBpdCA9IGFsbG93
ZWRIb3N0cy5maW5kKGhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1NTTEhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1NTTEhhbmRsZS5oCmluZGV4IGUxZWRhMWQuLmE0NmYwMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmgKQEAgLTQzLDkgKzQz
LDExIEBAIHR5cGVkZWYgZW51bSB7CiB9IFNTTENlcnRpZmljYXRlRmxhZ3M7CiAKIAordm9pZCBh
ZGRBbGxvd2VkQ2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJik7CiB2b2lkIGFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cyhjb25z
dCBTdHJpbmcmKTsKIGJvb2wgc3NsSWdub3JlSFRUUFNDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKIHZvaWQgc2V0U1NMVmVyaWZ5T3B0aW9ucyhSZXNvdXJjZUhhbmRs
ZSopOwordm9pZCBzZXRTU0xDbGllbnRDZXJ0aWZpY2F0ZShSZXNvdXJjZUhhbmRsZSopOwogCiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219063</attachid>
            <date>2013-12-12 02:40:20 -0800</date>
            <delta_ts>2014-01-22 02:22:32 -0800</delta_ts>
            <desc>proposed patch v2</desc>
            <filename>clientCertv2.patch</filename>
            <type>text/plain</type>
            <size>6769</size>
            <attacher>sipka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YjJjMmVmLi43N2M2NmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTMtMTItMTIgIFJvYmVydCBTaXBrYSAgPHNpcGthQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICBbY3VybF0gSW1wcm92ZSBkZXRlY3RpbmcgYW5kIGhhbmRsaW5nIG9mIFNTTCBjbGll
bnQgY2VydGlmaWNhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNTAwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBjbGllbnQgY2VydGlmaWNhdGUgaGFuZGxpbmcuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6
Omhhc1NTTENvbm5lY3RFcnJvcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
c2V0Q2xpZW50Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlTWFuYWdlcjo6aW5pdGlhbGl6ZUhhbmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NTTEhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRBbGxvd2VkQ2xp
ZW50Q2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0U1NMQ2xpZW50Q2VydGlmaWNh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuaDoKKwogMjAx
My0xMi0xMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3R5bGVQ
ZW5kaW5nSW1hZ2UgbmVlZHMgdG8gY29ycmVjdGx5IG1hbmFnZSB0aGUgQ1NTVmFsdWUgcG9pbnRl
ciBsaWZldGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oCmluZGV4IDIxOWU0N2UuLmM5N2YyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTE1Miw2ICsxNTIsNyBAQCBw
dWJsaWM6CiAKICNpZiAoUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShOSVgpKSAmJiBVU0UoQ1VS
TCkKICAgICBzdGF0aWMgdm9pZCBzZXRIb3N0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZShjb25z
dCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0ZUluZm8oY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShXSU4pICYmIFVTRShDVVJMKSAmJiBVU0UoQ0YpCiAgICAgc3RhdGljIHZvaWQgc2V0
Q2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBob3N0LCBDRkRhdGFSZWYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlRXJyb3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUVycm9yLmgK
aW5kZXggNzU1NWY1NC4uMTdhNGI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VFcnJvci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVm
aW5lIFJlc291cmNlRXJyb3JfaAogCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvckJhc2UuaCIKKyNp
bmNsdWRlIDxjdXJsL2N1cmwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NCw2ICs0
NSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNzbEVycm9ycygpIGNvbnN0IHsgcmV0dXJu
IG1fc3NsRXJyb3JzOyB9CiAgICAgdm9pZCBzZXRTU0xFcnJvcnModW5zaWduZWQgc3NsVmVyaWZ5
UmVzdWx0KSB7IG1fc3NsRXJyb3JzID0gc3NsVmVyaWZ5UmVzdWx0OyB9CisgICAgYm9vbCBoYXNT
U0xDb25uZWN0RXJyb3IoKSBjb25zdCB7IHJldHVybiBlcnJvckNvZGUoKSA9PSBDVVJMRV9TU0xf
Q09OTkVDVF9FUlJPUjsgfQogCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc3NsRXJyb3JzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCA0MDEzY2YzLi4yOTU3ZDZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVDdXJsLmNwcApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgorI2luY2x1ZGUgIkZpbGVT
eXN0ZW0uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaCIKQEAgLTEyMSw2ICsxMjMsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6
c2V0SG9zdEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBob3N0KQogICAg
IGFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cyhob3N0Lmxvd2VyKCkpOwogfQogCit2b2lk
IFJlc291cmNlSGFuZGxlOjpzZXRDbGllbnRDZXJ0aWZpY2F0ZUluZm8oY29uc3QgU3RyaW5nJiBo
b3N0LCBjb25zdCBTdHJpbmcmIGNlcnRpZmljYXRlLCBjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAg
ICBpZiAoZmlsZUV4aXN0cyhjZXJ0aWZpY2F0ZSkpCisgICAgICAgIGFkZEFsbG93ZWRDbGllbnRD
ZXJ0aWZpY2F0ZShob3N0LCBjZXJ0aWZpY2F0ZSwga2V5KTsKKyAgICBlbHNlCisgICAgICAgIExP
RyhOZXR3b3JrLCAiSW52YWxpZCBjbGllbnQgY2VydGlmaWNhdGUgZmlsZTogJXMhXG4iLCBjZXJ0
aWZpY2F0ZS5sYXRpbjEoKS5kYXRhKCkpOworfQorCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0Uo
Q0YpCiAvLyBGSVhNRTogIFRoZSBDRkRhdGFSZWYgd2lsbCBuZWVkIHRvIGJlIHNvbWV0aGluZyBl
bHNlIHdoZW4KIC8vIGJ1aWxkaW5nIHdpdGhvdXQgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
CmluZGV4IDVhNzI5N2EuLmY4YWZmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCkBA
IC05NjEsNiArOTYxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmluaXRpYWxpemVI
YW5kbGUoUmVzb3VyY2VIYW5kbGUqIGpvYikKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFu
ZGxlLCBDVVJMT1BUX0ROU19DQUNIRV9USU1FT1VULCA2MCAqIDUpOyAvLyA1IG1pbnV0ZXMKICAg
ICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1BST1RPQ09MUywgYWxsb3dl
ZFByb3RvY29scyk7CiAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9S
RURJUl9QUk9UT0NPTFMsIGFsbG93ZWRQcm90b2NvbHMpOworICAgIHNldFNTTENsaWVudENlcnRp
ZmljYXRlKGpvYik7CiAKICAgICBpZiAoaWdub3JlU1NMRXJyb3JzKQogICAgICAgICBjdXJsX2Vh
c3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuY3Bw
CmluZGV4IDE1MDA3MWMuLjZmNTBkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuY3BwCkBAIC0zMywxMCArMzMsMTMgQEAKICNpbmNs
dWRlIDxvcGVuc3NsL3NzbC5oPgogI2luY2x1ZGUgPG9wZW5zc2wveDUwOV92ZnkuaD4KICNpbmNs
dWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordHlwZWRlZiBzdGQ6OnR1cGxlPFdURjo6U3RyaW5nLCBX
VEY6OlN0cmluZz4gY2xpZW50Q2VydGlmaWNhdGU7CiBzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIExp
c3RIYXNoU2V0PFN0cmluZz4+IGFsbG93ZWRIb3N0czsKK3N0YXRpYyBIYXNoTWFwPFN0cmluZywg
Y2xpZW50Q2VydGlmaWNhdGU+IGFsbG93ZWRDbGllbnRIb3N0czsKIAogdm9pZCBhbGxvd3NBbnlI
VFRQU0NlcnRpZmljYXRlSG9zdHMoY29uc3QgU3RyaW5nJiBob3N0KQogewpAQCAtNDQsNiArNDcs
MjUgQEAgdm9pZCBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoY29uc3QgU3RyaW5nJiBo
b3N0KQogICAgIGFsbG93ZWRIb3N0cy5zZXQoaG9zdCwgY2VydGlmaWNhdGVzKTsKIH0KIAordm9p
ZCBhZGRBbGxvd2VkQ2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBT
dHJpbmcmIGNlcnRpZmljYXRlLCBjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICBjbGllbnRDZXJ0
aWZpY2F0ZSBjbGllbnRJbmZvKGNlcnRpZmljYXRlLCBrZXkpOworICAgIGFsbG93ZWRDbGllbnRI
b3N0cy5zZXQoaG9zdC5sb3dlcigpLCBjbGllbnRJbmZvKTsKK30KKwordm9pZCBzZXRTU0xDbGll
bnRDZXJ0aWZpY2F0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQoreworICAgIFN0cmluZyBob3N0
ID0gaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5ob3N0KCk7CisgICAgSGFzaE1hcDxTdHJp
bmcsIGNsaWVudENlcnRpZmljYXRlPjo6aXRlcmF0b3IgaXQgPSBhbGxvd2VkQ2xpZW50SG9zdHMu
ZmluZChob3N0Lmxvd2VyKCkpOworICAgIGlmIChpdCAhPSBhbGxvd2VkQ2xpZW50SG9zdHMuZW5k
KCkpIHsKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKKyAgICAgICAgY2xpZW50Q2VydGlmaWNhdGUgY2xpZW50SW5mbyA9IGl0LT52YWx1
ZTsKKyAgICAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9TU0xDRVJU
LCBzdGQ6OmdldDwwPihjbGllbnRJbmZvKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgY3VybF9l
YXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9TU0xDRVJUVFlQRSwgIlAxMiIpOworICAg
ICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1NTTENFUlRQQVNTV0Qs
IHN0ZDo6Z2V0PDE+KGNsaWVudEluZm8pLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KK30KKwogYm9v
bCBzc2xJZ25vcmVIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgTGlz
dEhhc2hTZXQ8U3RyaW5nPiYgY2VydGlmaWNhdGVzKQogewogICAgIEhhc2hNYXA8U3RyaW5nLCBM
aXN0SGFzaFNldDxTdHJpbmc+Pjo6aXRlcmF0b3IgaXQgPSBhbGxvd2VkSG9zdHMuZmluZChob3N0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xI
YW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUu
aAppbmRleCBlMWVkYTFkLi5hNDZmMDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1NTTEhhbmRsZS5oCkBAIC00Myw5ICs0MywxMSBAQCB0eXBlZGVmIGVu
dW0gewogfSBTU0xDZXJ0aWZpY2F0ZUZsYWdzOwogCiAKK3ZvaWQgYWRkQWxsb3dlZENsaWVudENl
cnRpZmljYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwog
dm9pZCBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoY29uc3QgU3RyaW5nJik7CiBib29s
IHNzbElnbm9yZUhUVFBTQ2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7
CiB2b2lkIHNldFNTTFZlcmlmeU9wdGlvbnMoUmVzb3VyY2VIYW5kbGUqKTsKK3ZvaWQgc2V0U1NM
Q2xpZW50Q2VydGlmaWNhdGUoUmVzb3VyY2VIYW5kbGUqKTsKIAogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221843</attachid>
            <date>2014-01-22 02:22:32 -0800</date>
            <delta_ts>2014-01-22 10:15:56 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed.patch</filename>
            <type>text/plain</type>
            <size>6729</size>
            <attacher>sipka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MDM3OTkzLi40M2ZiNTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTQtMDEtMjIgIFJvYmVydCBTaXBrYSAgPHNpcGthQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICBbY3VybF0gSW1wcm92ZSBkZXRlY3RpbmcgYW5kIGhhbmRsaW5nIG9mIFNTTCBjbGll
bnQgY2VydGlmaWNhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNTAwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBjbGllbnQgY2VydGlmaWNhdGUgaGFuZGxpbmcuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1Jlc291cmNlRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6
Omhhc1NTTENvbm5lY3RFcnJvcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
c2V0Q2xpZW50Q2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlTWFuYWdlcjo6aW5pdGlhbGl6ZUhhbmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NTTEhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRBbGxvd2VkQ2xp
ZW50Q2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0U1NMQ2xpZW50Q2VydGlmaWNh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuaDoKKwogMjAx
NC0wMS0yMiAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KIAogICAgICAgICBb
Q1NTUmVnaW9uc10gSW5jb3JyZWN0IGxheW91dCBvZiBhIHJlZ2lvbiBwc2V1ZG8gY2hpbGRyZW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApp
bmRleCBlNTVhZDAwLi5kYWFkMjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0xNTIsNiArMTUyLDcgQEAgcHVibGljOgogCiAj
aWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ1VSTCkKICAgICBzdGF0aWMgdm9pZCBzZXRIb3N0QWxs
b3dzQW55SFRUUFNDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZXRDbGllbnRDZXJ0aWZpY2F0ZUluZm8oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJik7CiAjZW5kaWYKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShDVVJMKSAmJiBV
U0UoQ0YpCiAgICAgc3RhdGljIHZvaWQgc2V0Q2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5n
JiBob3N0LCBDRkRhdGFSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9SZXNvdXJjZUVycm9yLmgKaW5kZXggNzU1NWY1NC4uMTdhNGI5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlRXJyb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VFcnJv
ci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFJlc291cmNlRXJyb3JfaAogCiAjaW5jbHVk
ZSAiUmVzb3VyY2VFcnJvckJhc2UuaCIKKyNpbmNsdWRlIDxjdXJsL2N1cmwuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00NCw2ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVk
IHNzbEVycm9ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3NsRXJyb3JzOyB9CiAgICAgdm9pZCBzZXRT
U0xFcnJvcnModW5zaWduZWQgc3NsVmVyaWZ5UmVzdWx0KSB7IG1fc3NsRXJyb3JzID0gc3NsVmVy
aWZ5UmVzdWx0OyB9CisgICAgYm9vbCBoYXNTU0xDb25uZWN0RXJyb3IoKSBjb25zdCB7IHJldHVy
biBlcnJvckNvZGUoKSA9PSBDVVJMRV9TU0xfQ09OTkVDVF9FUlJPUjsgfQogCiBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fc3NsRXJyb3JzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCBiYjky
N2YzLi44MzNmYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtMzAsNiArMzAsOCBAQAog
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDcmVkZW50aWFs
U3RvcmFnZS5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKQEAgLTEyMSw2ICsxMjMs
MTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0SG9zdEFsbG93c0FueUhUVFBTQ2VydGlmaWNh
dGUoY29uc3QgU3RyaW5nJiBob3N0KQogICAgIGFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0
cyhob3N0Lmxvd2VyKCkpOwogfQogCit2b2lkIFJlc291cmNlSGFuZGxlOjpzZXRDbGllbnRDZXJ0
aWZpY2F0ZUluZm8oY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGNlcnRpZmljYXRl
LCBjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICBpZiAoZmlsZUV4aXN0cyhjZXJ0aWZpY2F0ZSkp
CisgICAgICAgIGFkZEFsbG93ZWRDbGllbnRDZXJ0aWZpY2F0ZShob3N0LCBjZXJ0aWZpY2F0ZSwg
a2V5KTsKKyAgICBlbHNlCisgICAgICAgIExPRyhOZXR3b3JrLCAiSW52YWxpZCBjbGllbnQgY2Vy
dGlmaWNhdGUgZmlsZTogJXMhXG4iLCBjZXJ0aWZpY2F0ZS5sYXRpbjEoKS5kYXRhKCkpOworfQor
CiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0YpCiAvLyBGSVhNRTogIFRoZSBDRkRhdGFSZWYg
d2lsbCBuZWVkIHRvIGJlIHNvbWV0aGluZyBlbHNlIHdoZW4KIC8vIGJ1aWxkaW5nIHdpdGhvdXQg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCmluZGV4IDMzZDdmNDUuLjEzMjZkZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCkBAIC05NjIsNiArOTYyLDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZU1hbmFnZXI6OmluaXRpYWxpemVIYW5kbGUoUmVzb3VyY2VIYW5kbGUqIGpvYikKICAg
ICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX0ROU19DQUNIRV9USU1FT1VU
LCA2MCAqIDUpOyAvLyA1IG1pbnV0ZXMKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxl
LCBDVVJMT1BUX1BST1RPQ09MUywgYWxsb3dlZFByb3RvY29scyk7CiAgICAgY3VybF9lYXN5X3Nl
dG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9SRURJUl9QUk9UT0NPTFMsIGFsbG93ZWRQcm90b2Nv
bHMpOworICAgIHNldFNTTENsaWVudENlcnRpZmljYXRlKGpvYik7CiAKICAgICBpZiAoaWdub3Jl
U1NMRXJyb3JzKQogICAgICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BU
X1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9TU0xIYW5kbGUuY3BwCmluZGV4IDE1MDA3MWMuLjYyYjZiOGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuY3Bw
CkBAIC0zMywxMCArMzMsMTMgQEAKICNpbmNsdWRlIDxvcGVuc3NsL3NzbC5oPgogI2luY2x1ZGUg
PG9wZW5zc2wveDUwOV92ZnkuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordHlwZWRl
ZiBzdGQ6OnR1cGxlPFdURjo6U3RyaW5nLCBXVEY6OlN0cmluZz4gY2xpZW50Q2VydGlmaWNhdGU7
CiBzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIExpc3RIYXNoU2V0PFN0cmluZz4+IGFsbG93ZWRIb3N0
czsKK3N0YXRpYyBIYXNoTWFwPFN0cmluZywgY2xpZW50Q2VydGlmaWNhdGU+IGFsbG93ZWRDbGll
bnRIb3N0czsKIAogdm9pZCBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoY29uc3QgU3Ry
aW5nJiBob3N0KQogewpAQCAtNDQsNiArNDcsMjYgQEAgdm9pZCBhbGxvd3NBbnlIVFRQU0NlcnRp
ZmljYXRlSG9zdHMoY29uc3QgU3RyaW5nJiBob3N0KQogICAgIGFsbG93ZWRIb3N0cy5zZXQoaG9z
dCwgY2VydGlmaWNhdGVzKTsKIH0KIAordm9pZCBhZGRBbGxvd2VkQ2xpZW50Q2VydGlmaWNhdGUo
Y29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGNlcnRpZmljYXRlLCBjb25zdCBTdHJp
bmcmIGtleSkKK3sKKyAgICBjbGllbnRDZXJ0aWZpY2F0ZSBjbGllbnRJbmZvKGNlcnRpZmljYXRl
LCBrZXkpOworICAgIGFsbG93ZWRDbGllbnRIb3N0cy5zZXQoaG9zdC5sb3dlcigpLCBjbGllbnRJ
bmZvKTsKK30KKwordm9pZCBzZXRTU0xDbGllbnRDZXJ0aWZpY2F0ZShSZXNvdXJjZUhhbmRsZSog
aGFuZGxlKQoreworICAgIFN0cmluZyBob3N0ID0gaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwo
KS5ob3N0KCk7CisgICAgSGFzaE1hcDxTdHJpbmcsIGNsaWVudENlcnRpZmljYXRlPjo6aXRlcmF0
b3IgaXQgPSBhbGxvd2VkQ2xpZW50SG9zdHMuZmluZChob3N0Lmxvd2VyKCkpOworICAgIGlmIChp
dCA9PSBhbGxvd2VkQ2xpZW50SG9zdHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgY2xp
ZW50Q2VydGlmaWNhdGUgY2xpZW50SW5mbyA9IGl0LT52YWx1ZTsKKyAgICBjdXJsX2Vhc3lfc2V0
b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1NTTENFUlQsIHN0ZDo6Z2V0PDA+KGNsaWVudEluZm8p
LnV0ZjgoKS5kYXRhKCkpOworICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxP
UFRfU1NMQ0VSVFRZUEUsICJQMTIiKTsKKyAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxl
LCBDVVJMT1BUX1NTTENFUlRQQVNTV0QsIHN0ZDo6Z2V0PDE+KGNsaWVudEluZm8pLnV0ZjgoKS5k
YXRhKCkpOworfQorCiBib29sIHNzbElnbm9yZUhUVFBTQ2VydGlmaWNhdGUoY29uc3QgU3RyaW5n
JiBob3N0LCBjb25zdCBMaXN0SGFzaFNldDxTdHJpbmc+JiBjZXJ0aWZpY2F0ZXMpCiB7CiAgICAg
SGFzaE1hcDxTdHJpbmcsIExpc3RIYXNoU2V0PFN0cmluZz4+OjppdGVyYXRvciBpdCA9IGFsbG93
ZWRIb3N0cy5maW5kKGhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1NTTEhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1NTTEhhbmRsZS5oCmluZGV4IGUxZWRhMWQuLmE0NmYwMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9TU0xIYW5kbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU1NMSGFuZGxlLmgKQEAgLTQzLDkgKzQz
LDExIEBAIHR5cGVkZWYgZW51bSB7CiB9IFNTTENlcnRpZmljYXRlRmxhZ3M7CiAKIAordm9pZCBh
ZGRBbGxvd2VkQ2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJik7CiB2b2lkIGFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cyhjb25z
dCBTdHJpbmcmKTsKIGJvb2wgc3NsSWdub3JlSFRUUFNDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKIHZvaWQgc2V0U1NMVmVyaWZ5T3B0aW9ucyhSZXNvdXJjZUhhbmRs
ZSopOwordm9pZCBzZXRTU0xDbGllbnRDZXJ0aWZpY2F0ZShSZXNvdXJjZUhhbmRsZSopOwogCiB9
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>