<?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>128739</bug_id>
          
          <creation_ts>2014-02-13 05:25:55 -0800</creation_ts>
          <short_desc>[Soup][Curl] HTTP header values should be treated as latin1, not UTF-8</short_desc>
          <delta_ts>2016-01-20 00:10:23 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>danw</cc>
    
    <cc>galpeter</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>peavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>980271</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-02-13 05:25:55 -0800</bug_when>
    <thetext>WebKit soup layer (and probably CURL layer as well) treats HTTP headers and HTTP reason phrase as UTF-8.
They should be treated as latin as per RFC 2616.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980278</commentid>
    <comment_count>1</comment_count>
      <attachid>224062</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-02-13 05:57:49 -0800</bug_when>
    <thetext>Created attachment 224062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980284</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2014-02-13 06:44:01 -0800</bug_when>
    <thetext>This patch also contains curl modifications so I don&apos;t see any point of the [soup] prefix. Also if I&apos;m not mistaken there are already some tests which expects that the headers are in utf8, so this change could brake those tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980296</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-02-13 07:48:43 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; This patch also contains curl modifications so I don&apos;t see any point of the [soup] prefix. Also if I&apos;m not mistaken there are already some tests which expects that the headers are in utf8, so this change could brake those tests.

I can split the changes in CURL and SOUP specific patches, if that helps?

As of UTF-8 related tests, I found one (LayoutTests/http/tests/misc/non-utf8-header-name). It is passing with and without the patch.
I did not find any regression related to this patch in the LayoutTests/http but I may have missed something.

This patch tries to align WebKit/Soup behavior with WebKit/mac and Firefox.
To encode header values containing other character set than ASCII, one is expected to encode them according RFC 2047.

The test is inspired from https://github.com/w3c/web-platform-tests/tree/master/XMLHttpRequest/getresponseheader-special-characters.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980306</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2014-02-13 08:26:43 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; This patch also contains curl modifications so I don&apos;t see any point of the [soup] prefix. Also if I&apos;m not mistaken there are already some tests which expects that the headers are in utf8, so this change could brake those tests.
&gt; 
&gt; I can split the changes in CURL and SOUP specific patches, if that helps?

IMHO: just remove the [soup] prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980309</commentid>
    <comment_count>5</comment_count>
      <attachid>224062</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-13 09:04:22 -0800</bug_when>
    <thetext>Comment on attachment 224062
Patch

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

The patch looks good and correct from the specs POV. But I have some concerns specially related to headers like &quot;Content-Disposition&quot;. Many servers don&apos;t respect the RFCs and send for example &quot;filename=&quot; using utf-8 or win-1250 strings (depending on the OS of the user-agent) instead of the only allowed encoding which is latin1. So I wonder if this could break downloads for example (we had some bugs related to the names of the downloaded files in the past).

Let&apos;s see what danw or kov think about this.

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Soup] HTTP header values should be treated as latin, not UTF-8

You should probably update the title of the bug (and the the ChangeLog) to include also [curl] and use specifically latin1 instead of latin.

&gt; Source/WebCore/ChangeLog:19
&gt; +        (WebCore::ResourceRequest::updateSoupMessageHeaders): Removed header UTF-8 translation

You can just keep this line here and use &quot;Ditto.&quot; for the other files (remember to finish with a dot &quot;.&quot;) instead of repeating the same description.

&gt; LayoutTests/ChangeLog:11
&gt; +        * http/tests/xmlhttprequest/response-special-characters.html: Added (test that non ascii header &amp; reason phrase values are correctly retrieved by the web application).

Better leave the word &quot;Added.&quot; after each file, and include the description of what the test does after the &quot;Reviewed by&quot; line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980312</commentid>
    <comment_count>6</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2014-02-13 09:12:47 -0800</bug_when>
    <thetext>There are probably tests for Content-Disposition charset-handling already anyway though?

The fact that iso-8859-1 is correct according to the spec doesn&apos;t necessarily mean that it&apos;s the right behavior. But if this makes WebkitGTK more in sync with mac, then maybe it&apos;s the right thing. Note that httpbis says that unless you have specific knowledge about the contents, you should treat non-ASCII header values as opaque. And you should ignore the reason phrase in the response header entirely, except perhaps for debugging purposes.

&gt;-    g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().utf8().data(), NULL);
&gt;+    g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().latin1().data(), NULL);

the method has to be ASCII, so this isn&apos;t really useful</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980385</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-02-13 12:09:45 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; There are probably tests for Content-Disposition charset-handling already anyway though?

Test http/tests/download/literal-utf-8.html actually checks that.

&gt; &gt;-    g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().utf8().data(), NULL);
&gt; &gt;+    g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().latin1().data(), NULL);
&gt; 
&gt; the method has to be ASCII, so this isn&apos;t really useful

Agreed, but it aligns with curl ResourceHandleManager.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980392</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-13 12:28:21 -0800</bug_when>
    <thetext>(In reply to comment #7)

&gt; &gt; &gt;-    g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().utf8().data(), NULL);
&gt; &gt; &gt;+    g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().latin1().data(), NULL);
&gt; &gt; 
&gt; &gt; the method has to be ASCII, so this isn&apos;t really useful
&gt; 
&gt; Agreed, but it aligns with curl ResourceHandleManager.cpp


There is a WTFString::ascii() method.

--Martin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980412</commentid>
    <comment_count>9</comment_count>
      <attachid>224098</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-02-13 13:27:10 -0800</bug_when>
    <thetext>Created attachment 224098
Changed method conversion to ASCII</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000796</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-04-15 00:16:55 -0700</bug_when>
    <thetext>Patch is still valid and passes all xhr tests.
Anybody to review it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045729</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-11-03 07:43:07 -0800</bug_when>
    <thetext>Patch is still valid although it needs a rebase first.
Also to be noted that patch aligns with RFC7230 which recently obsoloted RFC2616.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047515</commentid>
    <comment_count>12</comment_count>
      <attachid>224098</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-11-10 04:14:10 -0800</bug_when>
    <thetext>Comment on attachment 224098
Changed method conversion to ASCII

OK, let&apos;s give it a try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053117</commentid>
    <comment_count>13</comment_count>
      <attachid>242740</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-12-07 04:43:20 -0800</bug_when>
    <thetext>Created attachment 242740
Fixing contentDisposition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053118</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-12-07 04:44:48 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created attachment 242740 [details]
&gt; Fixing contentDisposition

Rerunning the tests, I was apparently wrong with contentDisposition header.
I added explicit UTF-8 header conversion to compute suggested filename.
I also removed a gtk/efl specific expectation which is no longer needed after this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053120</commentid>
    <comment_count>15</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2014-12-07 05:29:31 -0800</bug_when>
    <thetext>&gt;     while (soup_message_headers_iter_next(&amp;headersIter, &amp;headerName, &amp;headerValue))
&gt;-        m_httpHeaderFields.set(String::fromUTF8(headerName), String::fromUTF8(headerValue));
&gt;+        m_httpHeaderFields.set(String(headerName), String(headerValue));

That definitely seems correct; the headerName and headerValue returned from soup_message_headers_iter_next() are just the raw bytes from the wire, so it doesn&apos;t make sense for WebKit to be calling fromUTF8() on them if it doesn&apos;t have some specific reason to think they&apos;re utf-8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053121</commentid>
    <comment_count>16</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-12-07 05:32:15 -0800</bug_when>
    <thetext>Youenn, did you mean to mark this patch for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053213</commentid>
    <comment_count>17</comment_count>
      <attachid>242740</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-07 12:04:44 -0800</bug_when>
    <thetext>Comment on attachment 242740
Fixing contentDisposition

Clearing flags on attachment: 242740

Committed r176930: &lt;http://trac.webkit.org/changeset/176930&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053214</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-07 12:04:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156649</commentid>
    <comment_count>19</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-01-19 10:53:30 -0800</bug_when>
    <thetext>It seems to me like that curl implementation ResourceResponse::platformSuggestedFilename() also needs this fix, or am I missing anything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156697</commentid>
    <comment_count>20</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-19 12:54:35 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; It seems to me like that curl implementation
&gt; ResourceResponse::platformSuggestedFilename() also needs this fix, or am I
&gt; missing anything?

It seems so, would you be able to file a bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156717</commentid>
    <comment_count>21</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-01-19 13:45:29 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; It seems so, would you be able to file a bug?

I can submit patch but I won&apos;t be able to test it (I&apos;m just reading the code)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156718</commentid>
    <comment_count>22</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-01-19 13:47:09 -0800</bug_when>
    <thetext>I mean I won&apos;t be able to test curl part</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156764</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-19 15:31:35 -0800</bug_when>
    <thetext>CCing some folks who might be interested in the curl backend....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156930</commentid>
    <comment_count>24</comment_count>
    <who name="">peavo</who>
    <bug_when>2016-01-20 00:10:23 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; I mean I won&apos;t be able to test curl part

Thanks, I can run the http tests to test for regressions :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224062</attachid>
            <date>2014-02-13 05:57:49 -0800</date>
            <delta_ts>2014-02-13 13:27:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128739-20140213145742.patch</filename>
            <type>text/plain</type>
            <size>12070</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNmNzkwZTAxYjczZWUz
NzBhNTMyNjhlZjU0N2Y3NGU1MWUyMjg4Yy4uMjUwNzdkNzc0M2U4MGRkYmUxOTg3NmRhODc5NWZh
ZWRkYTU0YzBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAyLTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1NvdXBd
IEhUVFAgaGVhZGVyIHZhbHVlcyBzaG91bGQgYmUgdHJlYXRlZCBhcyBsYXRpbiwgbm90IFVURi04
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg3MzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNlLXNwZWNpYWwtY2hhcmFjdGVycy5odG1s
CisgICAgICAgIAorICAgICAgICBSZW1vdmVkIFVURi04IGNvbnZlcnNpb24gb2YgSFRUUCBoZWFk
ZXIgdmFsdWVzIChTT1VQIGFuZCBDVVJMKS4KKyAgICAgICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBV
VEYtOCBjb252ZXJzaW9uIG9mIEhUVFAgaGVhZGVyIG5hbWVzIChTT1VQKS4KKyAgICAgICAgUmVt
b3ZlZCB1bm5lY2Vzc2FyeSBVVEYtOCBjb252ZXJzaW9uIG9mIEhUVFAgbWV0aG9kIChTT1VQKS4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpoZWFkZXJDYWxsYmFjayk6IFJlbW92ZWQgaGVh
ZGVyIFVURi04IHRyYW5zbGF0aW9uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoZWFkZXJDYWxsYmFj
ayk6IFJlbW92ZWQgaGVhZGVyIHZhbHVlIFVURi04IHRyYW5zbGF0aW9uCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2FnZUhlYWRlcnMpOiBSZW1vdmVk
IGhlYWRlciBVVEYtOCB0cmFuc2xhdGlvbgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKTogUmVtb3ZlZCBoZWFkZXIgVVRGLTgg
dHJhbnNsYXRpb24KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291
cE1lc3NhZ2UpOiBSZW1vdmVkIEhUVFAgbWV0aG9kIFVURi04IHRyYW5zbGF0aW9uCisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnRvU291cE1lc3NhZ2UpOiBSZW1vdmVkIEhUVFAg
bWV0aG9kIFVURi04IHRyYW5zbGF0aW9uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6IFJlbW92ZWQgSFRUUCBtZXRob2QgVVRGLTggdHJh
bnNsYXRpb24KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25z
ZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6dG9Tb3VwTWVz
c2FnZSk6IFJlbW92ZWQgaGVhZGVyIFVURi04IHRyYW5zbGF0aW9uCisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKTogUmVtb3Zl
ZCBoZWFkZXIgVVRGLTggdHJhbnNsYXRpb24KKwogMjAxNC0wMi0xMCAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGEgZmV3IG1pc3Rha2VzIHRoYXQg
bGFuZGVkIHdpdGggcjE2Mzc0OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKaW5kZXggMjUwNDYwODA5ZjIxZDExNDE4NGEz
OWYwOWI5MjEwNzk3NzQzOThlNC4uZDY5ZmIxMDBhOWEwYzQzN2EzZjRhOWRmNmRiZDE3YjgzMDdi
MzNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxEb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxEb3dubG9hZC5jcHAKQEAgLTQ2NSw3ICs0NjUsNyBAQCBzaXplX3QgQ3VybERvd25sb2Fk
OjpoZWFkZXJDYWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZv
aWQqCiAgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IHNpemUgKiBubWVtYjsKICAgICBDdXJsRG93bmxv
YWQqIGRvd25sb2FkID0gcmVpbnRlcnByZXRfY2FzdDxDdXJsRG93bmxvYWQqPihkYXRhKTsKIAot
ICAgIFN0cmluZyBoZWFkZXIgPSBTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNrKHN0
YXRpY19jYXN0PGNvbnN0IGNoYXIqPihwdHIpLCB0b3RhbFNpemUpOworICAgIFN0cmluZyBoZWFk
ZXIoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CiAKICAgICBpZiAo
ZG93bmxvYWQpCiAgICAgICAgIGRvd25sb2FkLT5kaWRSZWNlaXZlSGVhZGVyKGhlYWRlcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCmluZGV4IDJjZjVlNjc1NDlmYTI2N2YwMTYwNGNmMjY2
OWRlMDJhYjYwNzQxZGQuLmI2MjIwNjNhYmQyOGEyZTMxZjVmZjI0ZDcxOTZjZjYyYjczNjlkMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCkBAIC00MDYsNyArNDA2LDcgQEAgc3RhdGlj
IHNpemVfdCBoZWFkZXJDYWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1l
bWIsIHZvaWQqIGRhdGEpCiAgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IHNpemUgKiBubWVtYjsKICAg
ICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gZC0+Y2xpZW50KCk7CiAKLSAgICBTdHJp
bmcgaGVhZGVyID0gU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyKj4ocHRyKSwgdG90YWxTaXplKTsKKyAgICBTdHJpbmcgaGVhZGVyKHN0YXRp
Y19jYXN0PGNvbnN0IGNoYXIqPihwdHIpLCB0b3RhbFNpemUpOwogCiAgICAgLyoKICAgICAgKiBh
KSBXZSBjYW4gZmluaXNoIGFuZCBzZW5kIHRoZSBSZXNvdXJjZVJlc3BvbnNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1
ZXN0U291cC5jcHAKaW5kZXggNTY2OTc1NGQwMDc2YjY4MzEzNjBkNTVjYjU3YTQwMGQ3ZGQ0NzM3
MS4uM2NjNDJmNmM5NzVjMmEzZDIzYmFmODcwNDkzYmE2YTBiY2UyZTBlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
cXVlc3RTb3VwLmNwcApAQCAtNDgsNyArNDgsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBk
YXRlU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNzYWdlSGVhZGVycyogc291cEhlYWRlcnMpCiAg
ICAgaWYgKCFoZWFkZXJzLmlzRW1wdHkoKSkgewogICAgICAgICBIVFRQSGVhZGVyTWFwOjpjb25z
dF9pdGVyYXRvciBlbmQgPSBoZWFkZXJzLmVuZCgpOwogICAgICAgICBmb3IgKEhUVFBIZWFkZXJN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGVhZGVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
Ci0gICAgICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQoc291cEhlYWRlcnMsIGl0
LT5rZXkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaXQtPnZhbHVlLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kKHNvdXBIZWFkZXJzLCBpdC0+
a2V5LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgaXQtPnZhbHVlLmxhdGluMSgpLmRhdGEoKSk7
CiAgICAgfQogfQogCkBAIC02MCwxMiArNjAsMTIgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVw
ZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFkZXJzKiBzb3VwSGVhZGUK
ICAgICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVl
OwogICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVy
LCAmaGVhZGVyTmFtZSwgJmhlYWRlclZhbHVlKSkKLSAgICAgICAgbV9odHRwSGVhZGVyRmllbGRz
LnNldChTdHJpbmc6OmZyb21VVEY4KGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21VVEY4KGhlYWRl
clZhbHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5h
bWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKIH0KIAogdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVw
ZGF0ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKIHsKLSAgICBn
X29iamVjdF9zZXQoc291cE1lc3NhZ2UsIFNPVVBfTUVTU0FHRV9NRVRIT0QsIGh0dHBNZXRob2Qo
KS51dGY4KCkuZGF0YSgpLCBOVUxMKTsKKyAgICBnX29iamVjdF9zZXQoc291cE1lc3NhZ2UsIFNP
VVBfTUVTU0FHRV9NRVRIT0QsIGh0dHBNZXRob2QoKS5sYXRpbjEoKS5kYXRhKCksIE5VTEwpOwog
CiAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkgPSBjcmVhdGVTb3VwVVJJKCk7CiAgICAgc291
cF9tZXNzYWdlX3NldF91cmkoc291cE1lc3NhZ2UsIHVyaS5nZXQoKSk7CkBAIC03NSw3ICs3NSw3
IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2FnZShTb3VwTWVzc2FnZSog
c291cE1lc3NhZ2UpIGNvbnN0CiAKIFNvdXBNZXNzYWdlKiBSZXNvdXJjZVJlcXVlc3Q6OnRvU291
cE1lc3NhZ2UoKSBjb25zdAogewotICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHNvdXBf
bWVzc2FnZV9uZXcoaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRhKCksIHVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHNvdXBfbWVzc2Fn
ZV9uZXcoaHR0cE1ldGhvZCgpLmxhdGluMSgpLmRhdGEoKSwgdXJsKCkuc3RyaW5nKCkubGF0aW4x
KCkuZGF0YSgpKTsKICAgICBpZiAoIXNvdXBNZXNzYWdlKQogICAgICAgICByZXR1cm4gMDsKIApA
QCAtOTcsNyArOTcsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBNZXNz
YWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKICAgICBpZiAoc2hvdWxkUG9ydEJlUmVzZXRU
b1plcm8pCiAgICAgICAgIG1fdXJsLnNldFBvcnQoMCk7CiAKLSAgICBtX2h0dHBNZXRob2QgPSBT
dHJpbmc6OmZyb21VVEY4KHNvdXBNZXNzYWdlLT5tZXRob2QpOworICAgIG1faHR0cE1ldGhvZCA9
IFN0cmluZyhzb3VwTWVzc2FnZS0+bWV0aG9kKTsKIAogICAgIHVwZGF0ZUZyb21Tb3VwTWVzc2Fn
ZUhlYWRlcnMoc291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25z
ZVNvdXAuY3BwCmluZGV4IGM4OTFjMDk4Nzk1M2I3NjlhY2RhYmUxOTAzNGMzNjY1NDcyMDQ5Yjku
LmU3ZTU1MGM0MTZhMTVjNTdhMTBlODg4NTgxNzA3NDFlOTRhOTAxNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVz
cG9uc2VTb3VwLmNwcApAQCAtNDMsNyArNDMsNyBAQCBTb3VwTWVzc2FnZSogUmVzb3VyY2VSZXNw
b25zZTo6dG9Tb3VwTWVzc2FnZSgpIGNvbnN0CiAgICAgaWYgKCFoZWFkZXJzLmlzRW1wdHkoKSkg
ewogICAgICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBoZWFkZXJzLmVu
ZCgpOwogICAgICAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGVh
ZGVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICAgICBzb3VwX21lc3NhZ2Vf
aGVhZGVyc19hcHBlbmQoc291cEhlYWRlcnMsIGl0LT5rZXkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgaXQtPnZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfYXBwZW5kKHNvdXBIZWFkZXJzLCBpdC0+a2V5LnN0cmluZygpLmxhdGluMSgpLmRhdGEo
KSwgaXQtPnZhbHVlLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgfQogCiAgICAgc291cF9tZXNzYWdl
X3NldF9mbGFncyhzb3VwTWVzc2FnZSwgbV9zb3VwRmxhZ3MpOwpAQCAtODMsNyArODMsNyBAQCB2
b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoY29uc3Qg
U291cE1lc3NhZ2VIZWFkZXJzKiBtZQogCiAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9p
bml0KCZoZWFkZXJzSXRlciwgaGVhZGVycyk7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFk
ZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQot
ICAgICAgICBhZGRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxs
YmFjayhoZWFkZXJOYW1lLCBzdHJsZW4oaGVhZGVyTmFtZSkpLCBTdHJpbmc6OmZyb21VVEY4V2l0
aExhdGluMUZhbGxiYWNrKGhlYWRlclZhbHVlLCBzdHJsZW4oaGVhZGVyVmFsdWUpKSk7CisgICAg
ICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJW
YWx1ZSkpOwogCiAgICAgU3RyaW5nIGNvbnRlbnRUeXBlOwogICAgIGNvbnN0IGNoYXIqIG9mZmlj
aWFsVHlwZSA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQt
VHlwZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDIxNWRjNmI4MDBiMTdhZGQ4YjkzY2ZiMWEzY2E0ZWQwOWM3NGNhOGIu
Ljk3YmQyYzBiMWU2ZjllZGFmMzZlYmVhNGI1YTllZDUyNGM3NTg5YzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNC0wMi0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNh
bm9uLmZyPgorCisgICAgICAgIFtTb3VwXSBIVFRQIGhlYWRlciB2YWx1ZXMgc2hvdWxkIGJlIHRy
ZWF0ZWQgYXMgbGF0aW4sIG5vdCBVVEYtOAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9o
ZWFkZXJzLnBocDogQWRkZWQgKHNlbmQgYSByZXNwb25zZSB0aGF0IGluY2x1ZGVzIG5vbiBhc2Np
aSBoZWFkZXIgdmFsdWUpLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzL25vdC1hc2NpaS1zdGF0dXMucGhwOiBBZGRlZCAoc2VuZCBhIHJlc3BvbnNlIHRoYXQg
aW5jbHVkZXMgbm9uIGFzY2lpIHJlYXNvbiBwaHJhc2UpCisgICAgICAgICogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNwb25zZS1zcGVjaWFsLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNlLXNwZWNp
YWwtY2hhcmFjdGVycy5odG1sOiBBZGRlZCAodGVzdCB0aGF0IG5vbiBhc2NpaSBoZWFkZXIgJiBy
ZWFzb24gcGhyYXNlIHZhbHVlcyBhcmUgY29ycmVjdGx5IHJldHJpZXZlZCBieSB0aGUgd2ViIGFw
cGxpY2F0aW9uKS4KKwogMjAxNC0wMi0xMCAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIEZpeCBQcm9wYWdhdGluZyBCb3JkZXIgYW5k
IFBhZGRpbmcgZm9yIElubGluZSBSZXBsYWNlZCBFbGVtZW50cyBGbG93ZWQgaW4gUmVnaW9ucwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJj
ZXMvaGVhZGVycy5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy9oZWFkZXJzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWIzN2E5OTljMjJjY2I2OWIxZTFmYTk2
NTExZDE2ZWEwN2I5ODllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvaGVhZGVycy5waHAKQEAgLTAsMCArMSwxMSBAQAor
PD9waHAKKyBoZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbiIpOworIGhlYWRlcigiWC1D
dXN0b20tSGVhZGVyOiB0ZXN0Iik7CisgaGVhZGVyKCJTZXQtQ29va2llOiB0ZXN0Iik7CisgaGVh
ZGVyKCJTZXQtQ29va2llMjogdGVzdCIpOworIGhlYWRlcigiWC1DdXN0b20tSGVhZGVyLUVtcHR5
OiIpOworIGhlYWRlcigiWC1DdXN0b20tSGVhZGVyLUNvbW1hOiAxIik7CisgaGVhZGVyKCJYLUN1
c3RvbS1IZWFkZXItQ29tbWE6IDIiLCBmYWxzZSk7CisgaGVhZGVyKCJYLUN1c3RvbS1IZWFkZXIt
Qnl0ZXM6IOKApiIpOworIGVjaG8gIlRFU1QiOworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL25vdC1hc2NpaS1zdGF0dXMucGhw
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvbm90LWFz
Y2lpLXN0YXR1cy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI4YTFjMDk3OTgyN2JkYmIyZGQ2ZDZlODEwMTZm
MDU0MGE5NGM2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL25vdC1hc2NpaS1zdGF0dXMucGhwCkBAIC0wLDAgKzEsNCBA
QAorPD9waHAKKyAgICBoZWFkZXIoJ0hUVFAvMS4xIDIwMCBPS+KApicpOworICAgIGVjaG8gIk9L
4oCmIjsKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3Jlc3BvbnNlLXNwZWNpYWwtY2hhcmFjdGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNlLXNwZWNpYWwtY2hhcmFjdGVycy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDUxMGI1OTMwYWU0ZGVmOTc5NDY5MmEwZWIyMzRkZDEy
ZjRjMWU2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcmVzcG9uc2Utc3BlY2lhbC1jaGFyYWN0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworUEFTUyBub24gYXNjaWkgcmVzcG9uc2UgaGVhZGVyIHZhbHVlIAorUEFTUyBu
b24gYXNjaWkgc3RhdHVzVGV4dCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9yZXNwb25zZS1zcGVjaWFsLWNoYXJhY3RlcnMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2Utc3BlY2lhbC1jaGFyYWN0
ZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY5NjJmODJmZGY1ZjEwZmMzZmViNTVmZmE5YWJiMTIxNThm
MmUwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzcG9uc2Utc3BlY2lhbC1jaGFyYWN0ZXJzLmh0bWwKQEAgLTAsMCArMSw1MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPlhNTEh0dHBSZXF1
ZXN0OiBnZXR0aW5nIHJlc3BvbnNlIHdpdGggZnVubnkgY2hhcmFjdGVyczwvdGl0bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKyAgICA8c2NyaXB0PgorICAgICAgZnVuY3Rpb24gcnVuX3Rlc3QobmFtZSwgc2V0dXBGdW5j
dGlvbiwgYXNzZXJ0RnVuY3Rpb24pCisgICAgICB7CisgICAgICAgICAgdmFyIHRlc3QgPSBhc3lu
Y190ZXN0KG5hbWUpCisgICAgICAgICAgdGVzdC5pc0Fzc2VydGVkID0gZmFsc2UKKyAgICAgICAg
ICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgY2xpZW50ID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCkKKyAgICAgICAgICAgIGNsaWVudC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGlmKGNsaWVudC5yZWFkeVN0YXRlID09IDQpIHsKKyAgICAgICAgICAgICAgICAg
IHRlc3QuaXNBc3NlcnRlZCA9IHRydWUKKyAgICAgICAgICAgICAgICAgIGFzc2VydEZ1bmN0aW9u
KGNsaWVudCkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjbGllbnQub25sb2FkZW5kID0gZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgIGFzc2VydF90cnVlKHRlc3QuaXNBc3NlcnRlZCkKKyAgICAgICAgICAgICAgdGVzdC5k
b25lKCkKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldHVwRnVuY3Rpb24oY2xpZW50KQor
ICAgICAgICAgICAgY2xpZW50LnNlbmQobnVsbCkKKyAgICAgICAgICB9KQorICAgICAgfQorCisg
ICAgICBydW5fdGVzdCgibm9uIGFzY2lpIHJlc3BvbnNlIGhlYWRlciB2YWx1ZSIsCisgICAgICAg
IGZ1bmN0aW9uKGNsaWVudCl7CisgICAgICAgICAgICBjbGllbnQub3BlbigiR0VUIiwgInJlc291
cmNlcy9oZWFkZXJzLnBocCIpCisgICAgICAgIH0sZnVuY3Rpb24oY2xpZW50KXsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY2xpZW50LmdldFJlc3BvbnNlSGVhZGVyKCJ4LWN1c3RvbS1oZWFk
ZXItYnl0ZXMiKSwgIlx4RTJceDgwXHhBNiIpCisgICAgICAgIH0KKyAgICAgICkKKworICAgICAg
cnVuX3Rlc3QoIm5vbiBhc2NpaSBzdGF0dXNUZXh0IiwKKyAgICAgICAgZnVuY3Rpb24oY2xpZW50
KXsKKyAgICAgICAgICAgIGNsaWVudC5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL25vdC1hc2NpaS1z
dGF0dXMucGhwIikKKyAgICAgICAgfSxmdW5jdGlvbihjbGllbnQpeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjbGllbnQuc3RhdHVzVGV4dCwgIk9LXHhFMlx4ODBceEE2IikKKyAgICAgICAg
fQorICAgICAgKQorICA8L3NjcmlwdD4KKyA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224098</attachid>
            <date>2014-02-13 13:27:10 -0800</date>
            <delta_ts>2014-12-07 04:43:13 -0800</delta_ts>
            <desc>Changed method conversion to ASCII</desc>
            <filename>bug-128739-20140213222708.patch</filename>
            <type>text/plain</type>
            <size>12562</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE5ODA0MmI0M2Q2NDE0
Y2YzZGI0ZTlmNWUwMDZmMWU5MmE2ZDYxNy4uZTJjMmFiYWRiOGRlYjQ3ZTJhNDM0YmVkODQ3ZWI3
ZDUwODMwMWYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTAyLTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uZkBnbWFpbC5jb20+CisKKyAgICAgICAgW1NvdXBdW0N1cmxdIEhU
VFAgaGVhZGVyIHZhbHVlcyBzaG91bGQgYmUgdHJlYXRlZCBhcyBsYXRpbjEsIG5vdCBVVEYtOAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NzM5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBS
ZW1vdmVkIFVURi04IGNvbnZlcnNpb24gb2YgSFRUUCBoZWFkZXIgdmFsdWVzIChTT1VQIGFuZCBD
VVJMKS4KKyAgICAgICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBVVEYtOCBjb252ZXJzaW9uIG9mIEhU
VFAgaGVhZGVyIG5hbWVzIChTT1VQKS4KKyAgICAgICAgQ2hhbmdlZCBjb252ZXJzaW9uIG9mIEhU
VFAgbWV0aG9kIGZyb20gVVRGLTggdG8gQVNDSUkgKFNPVVAgYW5kIENVUkwpLgorCisgICAgICAg
IFRlc3Q6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2Utc3BlY2lhbC1jaGFyYWN0
ZXJzLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpoZWFkZXJDYWxsYmFjayk6IFJl
bW92ZWQgaGVhZGVyIGNvbnZlcnNpb24uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoZWFkZXJDYWxs
YmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpp
bml0aWFsaXplSGFuZGxlKTogQ2hhbmdlZCBIVFRQIG1ldGhvZCBjb252ZXJzaW9uIHRvIEFTQ0lJ
LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2VI
ZWFkZXJzKTogQ2hhbmdlZCBoZWFkZXIgY29udmVyc2lvbiB0byBMYXRpbjEuCisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMpOiBS
ZW1vdmVkIGhlYWRlciBjb252ZXJzaW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Ojp1cGRhdGVTb3VwTWVzc2FnZSk6IENoYW5nZWQgSFRUUCBtZXRob2QgY29udmVyc2lvbiB0
byBBU0NJSS4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6dG9Tb3VwTWVzc2Fn
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9t
U291cE1lc3NhZ2UpOiBSZW1vdmVkIEhUVFAgbWV0aG9kIGNvbnZlcnNpb24uCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnRvU291cE1lc3NhZ2UpOiAgQ2hhbmdlZCBoZWFk
ZXIgY29udmVyc2lvbiB0byBMYXRpbjEuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKTogUmVtb3ZlZCBoZWFkZXIgY29udmVy
c2lvbi4KKwogMjAxNC0wMS0yMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBLZWVwIENBTGF5ZXIgaW1wbGljaXQgYW5pbWF0aW9uIGRpc2FibGluZyBj
b2RlIGluIGEgc2luZ2xlIHBsYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCmluZGV4IDI1MDQ2MDgwOWYyMWQxMTQxODRh
MzlmMDliOTIxMDc5Nzc0Mzk4ZTQuLmQ2OWZiMTAwYTlhMGM0MzdhM2Y0YTlkZjZkYmQxN2I4MzA3
YjMzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsRG93bmxvYWQuY3BwCkBAIC00NjUsNyArNDY1LDcgQEAgc2l6ZV90IEN1cmxEb3dubG9h
ZDo6aGVhZGVyQ2FsbGJhY2soY2hhciogcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5tZW1iLCB2
b2lkKgogICAgIHNpemVfdCB0b3RhbFNpemUgPSBzaXplICogbm1lbWI7CiAgICAgQ3VybERvd25s
b2FkKiBkb3dubG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q3VybERvd25sb2FkKj4oZGF0YSk7CiAK
LSAgICBTdHJpbmcgaGVhZGVyID0gU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhz
dGF0aWNfY2FzdDxjb25zdCBjaGFyKj4ocHRyKSwgdG90YWxTaXplKTsKKyAgICBTdHJpbmcgaGVh
ZGVyKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihwdHIpLCB0b3RhbFNpemUpOwogCiAgICAgaWYg
KGRvd25sb2FkKQogICAgICAgICBkb3dubG9hZC0+ZGlkUmVjZWl2ZUhlYWRlcihoZWFkZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAppbmRleCA1YTcyOTdhZDM4MzQxN2IxMWJiMGQxZTU0
YWFkOTA1ODgxNmRmZmU1Li42MjdlMmU2NTE5ZmM1NTJiMDBhNGU1ZDc3ODU0ZDZhNTgyNmQ3ODQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcApAQCAtMzk2LDcgKzM5Niw3IEBAIHN0YXRp
YyBzaXplX3QgaGVhZGVyQ2FsbGJhY2soY2hhciogcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5t
ZW1iLCB2b2lkKiBkYXRhKQogICAgIHNpemVfdCB0b3RhbFNpemUgPSBzaXplICogbm1lbWI7CiAg
ICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGQtPmNsaWVudCgpOwogCi0gICAgU3Ry
aW5nIGhlYWRlciA9IFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0aW4xRmFsbGJhY2soc3RhdGljX2Nh
c3Q8Y29uc3QgY2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CisgICAgU3RyaW5nIGhlYWRlcihzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4ocHRyKSwgdG90YWxTaXplKTsKIAogICAgIC8qCiAgICAgICog
YSkgV2UgY2FuIGZpbmlzaCBhbmQgc2VuZCB0aGUgUmVzb3VyY2VSZXNwb25zZQpAQCAtMTAyNiw3
ICsxMDI2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmluaXRpYWxpemVIYW5kbGUo
UmVzb3VyY2VIYW5kbGUqIGpvYikKICAgICBlbHNlIGlmICgiSEVBRCIgPT0gbWV0aG9kKQogICAg
ICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX05PQk9EWSwgVFJVRSk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxP
UFRfQ1VTVE9NUkVRVUVTVCwgbWV0aG9kLmxhdGluMSgpLmRhdGEoKSk7CisgICAgICAgIGN1cmxf
ZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfQ1VTVE9NUkVRVUVTVCwgbWV0aG9kLmFz
Y2lpKCkuZGF0YSgpKTsKICAgICAgICAgc2V0dXBQVVQoam9iLCAmaGVhZGVycyk7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggNDc4ODQ4NzdjMjQ0NWFlMWVhZjZjN2ViOGNm
MjNjOWFmY2IxZGYyMC4uNGZkNTkzYmJhNjlmN2ZmYzE3MTZjNGU4NmFjMDc4MGU4ZDZkMmQzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
UmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtNTIsNyArNTIsNyBAQCB2b2lkIFJlc291cmNl
UmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNzYWdlSGVhZGVycyogc291
cEhlYWRlcnMpCiAgICAgaWYgKCFoZWFkZXJzLmlzRW1wdHkoKSkgewogICAgICAgICBIVFRQSGVh
ZGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBoZWFkZXJzLmVuZCgpOwogICAgICAgICBmb3Ig
KEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGVhZGVycy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpCi0gICAgICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQoc291
cEhlYWRlcnMsIGl0LT5rZXkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaXQtPnZhbHVlLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kKHNvdXBI
ZWFkZXJzLCBpdC0+a2V5LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgaXQtPnZhbHVlLmxhdGlu
MSgpLmRhdGEoKSk7CiAgICAgfQogfQogCkBAIC02NCwxMiArNjQsMTIgQEAgdm9pZCBSZXNvdXJj
ZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFkZXJz
KiBzb3VwSGVhZGUKICAgICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgIGNvbnN0IGNoYXIq
IGhlYWRlclZhbHVlOwogICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQo
JmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwgJmhlYWRlclZhbHVlKSkKLSAgICAgICAgbV9odHRw
SGVhZGVyRmllbGRzLnNldChTdHJpbmc6OmZyb21VVEY4KGhlYWRlck5hbWUpLCBTdHJpbmc6OmZy
b21VVEY4KGhlYWRlclZhbHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3Ry
aW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKIH0KIAogdm9pZCBSZXNvdXJj
ZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29u
c3QKIHsKLSAgICBnX29iamVjdF9zZXQoc291cE1lc3NhZ2UsIFNPVVBfTUVTU0FHRV9NRVRIT0Qs
IGh0dHBNZXRob2QoKS51dGY4KCkuZGF0YSgpLCBOVUxMKTsKKyAgICBnX29iamVjdF9zZXQoc291
cE1lc3NhZ2UsIFNPVVBfTUVTU0FHRV9NRVRIT0QsIGh0dHBNZXRob2QoKS5hc2NpaSgpLmRhdGEo
KSwgTlVMTCk7CiAKICAgICBHT3duUHRyPFNvdXBVUkk+IHVyaShzb3VwVVJJKCkpOwogICAgIHNv
dXBfbWVzc2FnZV9zZXRfdXJpKHNvdXBNZXNzYWdlLCB1cmkuZ2V0KCkpOwpAQCAtNzksNyArNzks
NyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2UoU291cE1lc3NhZ2Uq
IHNvdXBNZXNzYWdlKSBjb25zdAogCiBTb3VwTWVzc2FnZSogUmVzb3VyY2VSZXF1ZXN0Ojp0b1Nv
dXBNZXNzYWdlKCkgY29uc3QKIHsKLSAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UgPSBzb3Vw
X21lc3NhZ2VfbmV3KGh0dHBNZXRob2QoKS51dGY4KCkuZGF0YSgpLCB1cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UgPSBzb3VwX21lc3Nh
Z2VfbmV3KGh0dHBNZXRob2QoKS5hc2NpaSgpLmRhdGEoKSwgdXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CiAgICAgaWYgKCFzb3VwTWVzc2FnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAg
LTEwMSw3ICsxMDEsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBNZXNz
YWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKICAgICBpZiAoc2hvdWxkUG9ydEJlUmVzZXRU
b1plcm8pCiAgICAgICAgIG1fdXJsLnNldFBvcnQoMCk7CiAKLSAgICBtX2h0dHBNZXRob2QgPSBT
dHJpbmc6OmZyb21VVEY4KHNvdXBNZXNzYWdlLT5tZXRob2QpOworICAgIG1faHR0cE1ldGhvZCA9
IFN0cmluZyhzb3VwTWVzc2FnZS0+bWV0aG9kKTsKIAogICAgIHVwZGF0ZUZyb21Tb3VwTWVzc2Fn
ZUhlYWRlcnMoc291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25z
ZVNvdXAuY3BwCmluZGV4IDU0MTZkYmJlMzQzNTM4ZjYyZDI0NWFhMzMyODNkMWVkMTZkZDc4N2Uu
LjI5NGJkMzM3ZGFkM2JkYThkZjBjNWIzMzFhMjFkNThmMGVlNTkwYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVz
cG9uc2VTb3VwLmNwcApAQCAtNDUsNyArNDUsNyBAQCBTb3VwTWVzc2FnZSogUmVzb3VyY2VSZXNw
b25zZTo6dG9Tb3VwTWVzc2FnZSgpIGNvbnN0CiAgICAgaWYgKCFoZWFkZXJzLmlzRW1wdHkoKSkg
ewogICAgICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBoZWFkZXJzLmVu
ZCgpOwogICAgICAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGVh
ZGVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICAgICBzb3VwX21lc3NhZ2Vf
aGVhZGVyc19hcHBlbmQoc291cEhlYWRlcnMsIGl0LT5rZXkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgaXQtPnZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfYXBwZW5kKHNvdXBIZWFkZXJzLCBpdC0+a2V5LnN0cmluZygpLmxhdGluMSgpLmRhdGEo
KSwgaXQtPnZhbHVlLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgfQogCiAgICAgc291cF9tZXNzYWdl
X3NldF9mbGFncyhzb3VwTWVzc2FnZSwgbV9zb3VwRmxhZ3MpOwpAQCAtODUsNyArODUsNyBAQCB2
b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoY29uc3Qg
U291cE1lc3NhZ2VIZWFkZXJzKiBtZQogCiAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9p
bml0KCZoZWFkZXJzSXRlciwgaGVhZGVycyk7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFk
ZXJzX2l0ZXJfbmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQot
ICAgICAgICBhZGRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxs
YmFjayhoZWFkZXJOYW1lLCBzdHJsZW4oaGVhZGVyTmFtZSkpLCBTdHJpbmc6OmZyb21VVEY4V2l0
aExhdGluMUZhbGxiYWNrKGhlYWRlclZhbHVlLCBzdHJsZW4oaGVhZGVyVmFsdWUpKSk7CisgICAg
ICAgIGFkZEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVyTmFtZSksIFN0cmluZyhoZWFkZXJW
YWx1ZSkpOwogCiAgICAgU3RyaW5nIGNvbnRlbnRUeXBlOwogICAgIGNvbnN0IGNoYXIqIG9mZmlj
aWFsVHlwZSA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoaGVhZGVycywgIkNvbnRlbnQt
VHlwZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGFiNTc2NWUzZjkwMTMwNWFhOGMxZjFhYWFhODNiZjUyNTY4YjEyMmEu
LmE3NDkyZGY3YTUxZDY3YThlZmQ3ZWRiY2FjY2JiZjYyMzRhYTgwYmUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAxNC0wMi0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNh
bm9uLmZyPgorCisgICAgICAgIFtTb3VwXVtDdXJsXSBIVFRQIGhlYWRlciB2YWx1ZXMgc2hvdWxk
IGJlIHRyZWF0ZWQgYXMgbGF0aW4xLCBub3QgVVRGLTgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODczOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGVzdHMgdGhhdCBub24gYXNjaWkgaGVh
ZGVyICYgcmVhc29uIHBocmFzZSB2YWx1ZXMgYXJlIGNvcnJlY3RseSByZXRyaWV2ZWQgYnkgdGhl
IHdlYiBhcHBsaWNhdGlvbi4KKyAgICAgICAgaGVhZGVycy5waHAgc2NyaXB0IHNlbmRzIGEgcmVz
cG9uc2UgdGhhdCBpbmNsdWRlcyBub24gYXNjaWkgaGVhZGVyIHZhbHVlLgorICAgICAgICBub3Qt
YXNjaWktc3RhdHVzLnBocCBzZW5kcyBhIHJlc3BvbnNlIHRoYXQgaW5jbHVkZXMgbm9uIGFzY2lp
IHJlYXNvbiBwaHJhc2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy9oZWFkZXJzLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9yZXNvdXJjZXMvbm90LWFzY2lpLXN0YXR1cy5waHA6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2Utc3BlY2lhbC1jaGFyYWN0ZXJzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZXNwb25zZS1zcGVjaWFsLWNoYXJhY3RlcnMuaHRtbDogQWRkZWQuCisKIDIwMTQtMDEtMjEgIEVy
aWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkICZscm07
ICZybG07IGFuZCAmbmJzcDsgdG8gV2ViVlRUIHBhcnNlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvaGVhZGVycy5waHAgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9oZWFkZXJzLnBocApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lYWIzN2E5OTljMjJjY2I2OWIxZTFmYTk2NTExZDE2ZWEwN2I5ODllCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvaGVhZGVycy5waHAKQEAgLTAsMCArMSwxMSBAQAorPD9waHAKKyBoZWFkZXIoIkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbiIpOworIGhlYWRlcigiWC1DdXN0b20tSGVhZGVyOiB0ZXN0Iik7
CisgaGVhZGVyKCJTZXQtQ29va2llOiB0ZXN0Iik7CisgaGVhZGVyKCJTZXQtQ29va2llMjogdGVz
dCIpOworIGhlYWRlcigiWC1DdXN0b20tSGVhZGVyLUVtcHR5OiIpOworIGhlYWRlcigiWC1DdXN0
b20tSGVhZGVyLUNvbW1hOiAxIik7CisgaGVhZGVyKCJYLUN1c3RvbS1IZWFkZXItQ29tbWE6IDIi
LCBmYWxzZSk7CisgaGVhZGVyKCJYLUN1c3RvbS1IZWFkZXItQnl0ZXM6IOKApiIpOworIGVjaG8g
IlRFU1QiOworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL25vdC1hc2NpaS1zdGF0dXMucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvbm90LWFzY2lpLXN0YXR1cy5waHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWI4YTFjMDk3OTgyN2JkYmIyZGQ2ZDZlODEwMTZmMDU0MGE5NGM2MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L25vdC1hc2NpaS1zdGF0dXMucGhwCkBAIC0wLDAgKzEsNCBAQAorPD9waHAKKyAgICBoZWFkZXIo
J0hUVFAvMS4xIDIwMCBPS+KApicpOworICAgIGVjaG8gIk9L4oCmIjsKKz8+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNlLXNwZWNpYWwt
Y2hhcmFjdGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3Jlc3BvbnNlLXNwZWNpYWwtY2hhcmFjdGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDUxMGI1OTMwYWU0ZGVmOTc5NDY5MmEwZWIyMzRkZDEyZjRjMWU2NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2Utc3Bl
Y2lhbC1jaGFyYWN0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBub24g
YXNjaWkgcmVzcG9uc2UgaGVhZGVyIHZhbHVlIAorUEFTUyBub24gYXNjaWkgc3RhdHVzVGV4dCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNw
b25zZS1zcGVjaWFsLWNoYXJhY3RlcnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVzcG9uc2Utc3BlY2lhbC1jaGFyYWN0ZXJzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmY5NjJmODJmZGY1ZjEwZmMzZmViNTVmZmE5YWJiMTIxNThmMmUwYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2Utc3BlY2lh
bC1jaGFyYWN0ZXJzLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPlhNTEh0dHBSZXF1ZXN0OiBnZXR0aW5nIHJlc3BvbnNl
IHdpdGggZnVubnkgY2hhcmFjdGVyczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVh
ZD4KKyAgPGJvZHk+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAg
ICAgZnVuY3Rpb24gcnVuX3Rlc3QobmFtZSwgc2V0dXBGdW5jdGlvbiwgYXNzZXJ0RnVuY3Rpb24p
CisgICAgICB7CisgICAgICAgICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KG5hbWUpCisgICAgICAg
ICAgdGVzdC5pc0Fzc2VydGVkID0gZmFsc2UKKyAgICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB2YXIgY2xpZW50ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCkKKyAgICAg
ICAgICAgIGNsaWVudC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmKGNsaWVudC5y
ZWFkeVN0YXRlID09IDQpIHsKKyAgICAgICAgICAgICAgICAgIHRlc3QuaXNBc3NlcnRlZCA9IHRy
dWUKKyAgICAgICAgICAgICAgICAgIGFzc2VydEZ1bmN0aW9uKGNsaWVudCkKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjbGll
bnQub25sb2FkZW5kID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHRl
c3QuaXNBc3NlcnRlZCkKKyAgICAgICAgICAgICAgdGVzdC5kb25lKCkKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHNldHVwRnVuY3Rpb24oY2xpZW50KQorICAgICAgICAgICAgY2xpZW50LnNl
bmQobnVsbCkKKyAgICAgICAgICB9KQorICAgICAgfQorCisgICAgICBydW5fdGVzdCgibm9uIGFz
Y2lpIHJlc3BvbnNlIGhlYWRlciB2YWx1ZSIsCisgICAgICAgIGZ1bmN0aW9uKGNsaWVudCl7Cisg
ICAgICAgICAgICBjbGllbnQub3BlbigiR0VUIiwgInJlc291cmNlcy9oZWFkZXJzLnBocCIpCisg
ICAgICAgIH0sZnVuY3Rpb24oY2xpZW50KXsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY2xp
ZW50LmdldFJlc3BvbnNlSGVhZGVyKCJ4LWN1c3RvbS1oZWFkZXItYnl0ZXMiKSwgIlx4RTJceDgw
XHhBNiIpCisgICAgICAgIH0KKyAgICAgICkKKworICAgICAgcnVuX3Rlc3QoIm5vbiBhc2NpaSBz
dGF0dXNUZXh0IiwKKyAgICAgICAgZnVuY3Rpb24oY2xpZW50KXsKKyAgICAgICAgICAgIGNsaWVu
dC5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL25vdC1hc2NpaS1zdGF0dXMucGhwIikKKyAgICAgICAg
fSxmdW5jdGlvbihjbGllbnQpeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjbGllbnQuc3Rh
dHVzVGV4dCwgIk9LXHhFMlx4ODBceEE2IikKKyAgICAgICAgfQorICAgICAgKQorICA8L3Njcmlw
dD4KKyA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242740</attachid>
            <date>2014-12-07 04:43:20 -0800</date>
            <delta_ts>2014-12-07 12:04:44 -0800</delta_ts>
            <desc>Fixing contentDisposition</desc>
            <filename>bug-128739-20141207044357.patch</filename>
            <type>text/plain</type>
            <size>14328</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFiMDk5MmM5MDVlZmFl
NGVmZjkxODQwN2JkOGY3YzMxM2EwYTcwNi4uOTgxMjcwMzJhOWJlMTliMmEyNTU3Nzc2YjM1Njhh
MzRhZWJlMjgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTEyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1NvdXBd
W0N1cmxdIEhUVFAgaGVhZGVyIHZhbHVlcyBzaG91bGQgYmUgdHJlYXRlZCBhcyBsYXRpbjEsIG5v
dCBVVEYtOAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI4NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlZCBVVEYtOCBjb252ZXJzaW9uIG9mIEhUVFAgaGVhZGVyIHZhbHVlcyAoU09VUCBhbmQg
Q1VSTCkuCisgICAgICAgIFJlbW92ZWQgdW5uZWNlc3NhcnkgVVRGLTggY29udmVyc2lvbiBvZiBI
VFRQIGhlYWRlciBuYW1lcyAoU09VUCkuCisgICAgICAgIENoYW5nZWQgY29udmVyc2lvbiBvZiBI
VFRQIG1ldGhvZCBmcm9tIFVURi04IHRvIEFTQ0lJIChTT1VQIGFuZCBDVVJMKS4KKyAgICAgICAg
QWRkZWQgZXhwbGljaXQgVVRGLTggY29udmVyc2lvbiBvZiBDb250ZW50LURpc3Bvc2l0aW9uIGhl
YWRlciB0byBjb21wdXRlIGRvd25sb2FkIHN1Z2dlc3RlZCBmaWxlbmFtZS4gCisKKyAgICAgICAg
VGVzdDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNwb25zZS1zcGVjaWFsLWNoYXJhY3Rl
cnMuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmhlYWRlckNhbGxiYWNrKTogUmVt
b3ZlZCBoZWFkZXIgY29udmVyc2lvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlckNhbGxi
YWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6Omlu
aXRpYWxpemVIYW5kbGUpOiBDaGFuZ2VkIEhUVFAgbWV0aG9kIGNvbnZlcnNpb24gdG8gQVNDSS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2Fn
ZUhlYWRlcnMpOiBSZW1vdmVkIGhlYWRlciBjb252ZXJzaW9uLgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2FnZSk6IENoYW5nZWQgSFRUUCBtZXRob2Qg
Y29udmVyc2lvbiB0byBBU0NJSS4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6
dG9Tb3VwTWVzc2FnZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKTogUm1vdmVkIGhlYWRlciBjb252
ZXJzaW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1TdWdn
ZXN0ZWRGaWxlbmFtZSk6IEFkZGVkIGV4cGxpY2l0IGNvbnZlcnNpb24gb2YgY29udGVudERpc3Bv
c2l0aW9uIHRvIFVURi04LgorCiAyMDE0LTExLTIyICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIERvY3VtZW50OjppZ25vcmVBdXRvZm9j
dXMoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxEb3dubG9hZC5jcHAKaW5kZXggOGYyYTE2MDQxMmM4MmQ1YTFjOWI0ZWRiNjU4ZGFhMjYzMmEz
YjdjNy4uN2VjM2Y5OWYwODc3Y2UzMjc5Zjk2Y2NjNDY4ZmYxYmM2M2FiNjQ3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5j
cHAKQEAgLTQ3NCw3ICs0NzQsNyBAQCBzaXplX3QgQ3VybERvd25sb2FkOjpoZWFkZXJDYWxsYmFj
ayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZvaWQqCiAgICAgc2l6ZV90
IHRvdGFsU2l6ZSA9IHNpemUgKiBubWVtYjsKICAgICBDdXJsRG93bmxvYWQqIGRvd25sb2FkID0g
cmVpbnRlcnByZXRfY2FzdDxDdXJsRG93bmxvYWQqPihkYXRhKTsKIAotICAgIFN0cmluZyBoZWFk
ZXIgPSBTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNrKHN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPihwdHIpLCB0b3RhbFNpemUpOworICAgIFN0cmluZyBoZWFkZXIoc3RhdGljX2Nhc3Q8
Y29uc3QgY2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CiAKICAgICBpZiAoZG93bmxvYWQpCiAgICAg
ICAgIGRvd25sb2FkLT5kaWRSZWNlaXZlSGVhZGVyKGhlYWRlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1h
bmFnZXIuY3BwCmluZGV4IDllODJlNjdkMWFiZTA1MTVjZWVhMTk2ZWM0NGU1OGE2MjllYTA3MzQu
LmEwOWRmODU1NmZlYzFhMWQ1OTIzYTVjOWU3M2ZjOTBlZTZlNjk1NTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhh
bmRsZU1hbmFnZXIuY3BwCkBAIC00NzMsNyArNDczLDcgQEAgc3RhdGljIHNpemVfdCBoZWFkZXJD
YWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZvaWQqIGRhdGEp
CiAgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IHNpemUgKiBubWVtYjsKICAgICBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50ID0gZC0+Y2xpZW50KCk7CiAKLSAgICBTdHJpbmcgaGVhZGVyID0gU3Ry
aW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4o
cHRyKSwgdG90YWxTaXplKTsKKyAgICBTdHJpbmcgaGVhZGVyKHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihwdHIpLCB0b3RhbFNpemUpOwogCiAgICAgLyoKICAgICAgKiBhKSBXZSBjYW4gZmluaXNo
IGFuZCBzZW5kIHRoZSBSZXNvdXJjZVJlc3BvbnNlCkBAIC0xMTE5LDcgKzExMTksNyBAQCB2b2lk
IFJlc291cmNlSGFuZGxlTWFuYWdlcjo6aW5pdGlhbGl6ZUhhbmRsZShSZXNvdXJjZUhhbmRsZSog
am9iKQogICAgIGVsc2UgaWYgKCJIRUFEIiA9PSBtZXRob2QpCiAgICAgICAgIGN1cmxfZWFzeV9z
ZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfTk9CT0RZLCBUUlVFKTsKICAgICBlbHNlIHsKLSAg
ICAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9DVVNUT01SRVFVRVNU
LCBtZXRob2QubGF0aW4xKCkuZGF0YSgpKTsKKyAgICAgICAgY3VybF9lYXN5X3NldG9wdChkLT5t
X2hhbmRsZSwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCBtZXRob2QuYXNjaWkoKS5kYXRhKCkpOwog
ICAgICAgICBzZXR1cFBVVChqb2IsICZoZWFkZXJzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RT
b3VwLmNwcAppbmRleCA1NDZlOTRjMDc1MGQzYTEwZGRiMjA2NmFkZjkxZjQ1ZDI0ZTQ1ODRlLi4x
OWVlMzgyYzBhMDIxN2VkNDQyNGM4OTEyMmMzYmE0Nzk0MWNhZWM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVz
dFNvdXAuY3BwCkBAIC02NSwxMiArNjUsMTIgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0
ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFkZXJzKiBzb3VwSGVhZGUKICAg
ICBjb25zdCBjaGFyKiBoZWFkZXJOYW1lOwogICAgIGNvbnN0IGNoYXIqIGhlYWRlclZhbHVlOwog
ICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAm
aGVhZGVyTmFtZSwgJmhlYWRlclZhbHVlKSkKLSAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnNl
dChTdHJpbmc6OmZyb21VVEY4KGhlYWRlck5hbWUpLCBTdHJpbmc6OmZyb21VVEY4KGhlYWRlclZh
bHVlKSk7CisgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQoU3RyaW5nKGhlYWRlck5hbWUp
LCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKIH0KIAogdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0
ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKIHsKLSAgICBnX29i
amVjdF9zZXQoc291cE1lc3NhZ2UsIFNPVVBfTUVTU0FHRV9NRVRIT0QsIGh0dHBNZXRob2QoKS51
dGY4KCkuZGF0YSgpLCBOVUxMKTsKKyAgICBnX29iamVjdF9zZXQoc291cE1lc3NhZ2UsIFNPVVBf
TUVTU0FHRV9NRVRIT0QsIGh0dHBNZXRob2QoKS5hc2NpaSgpLmRhdGEoKSwgTlVMTCk7CiAKICAg
ICBHVW5pcXVlUHRyPFNvdXBVUkk+IHVyaSA9IGNyZWF0ZVNvdXBVUkkoKTsKICAgICBzb3VwX21l
c3NhZ2Vfc2V0X3VyaShzb3VwTWVzc2FnZSwgdXJpLmdldCgpKTsKQEAgLTgwLDcgKzgwLDcgQEAg
dm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3Vw
TWVzc2FnZSkgY29uc3QKIAogU291cE1lc3NhZ2UqIFJlc291cmNlUmVxdWVzdDo6dG9Tb3VwTWVz
c2FnZSgpIGNvbnN0CiB7Ci0gICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gc291cF9tZXNz
YWdlX25ldyhodHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSwgdXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gc291cF9tZXNzYWdlX25l
dyhodHRwTWV0aG9kKCkuYXNjaWkoKS5kYXRhKCksIHVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogICAgIGlmICghc291cE1lc3NhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xMDIs
NyArMTAyLDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShT
b3VwTWVzc2FnZSogc291cE1lc3NhZ2UpCiAgICAgaWYgKHNob3VsZFBvcnRCZVJlc2V0VG9aZXJv
KQogICAgICAgICBtX3VybC5zZXRQb3J0KDApOwogCi0gICAgbV9odHRwTWV0aG9kID0gU3RyaW5n
Ojpmcm9tVVRGOChzb3VwTWVzc2FnZS0+bWV0aG9kKTsKKyAgICBtX2h0dHBNZXRob2QgPSBTdHJp
bmcoc291cE1lc3NhZ2UtPm1ldGhvZCk7CiAKICAgICB1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFk
ZXJzKHNvdXBNZXNzYWdlLT5yZXF1ZXN0X2hlYWRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3Vw
LmNwcAppbmRleCAxNGQ0NmI2YTQxNjZkY2QxMGQ5MjlmOTA2MzUzZWQ5OGM4ZGI1NzVlLi42ZjEz
ZmM1NmJiODAyZGM1Mjk3YThlZGRmMjk4NjU3NmJjZjdlZjExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNl
U291cC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBSZXNvdXJjZVJlc3BvbnNlOjp1cGRhdGVG
cm9tU291cE1lc3NhZ2VIZWFkZXJzKGNvbnN0IFNvdXBNZXNzYWdlSGVhZGVycyogbWUKIAogICAg
IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfaW5pdCgmaGVhZGVyc0l0ZXIsIGhlYWRlcnMpOwog
ICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAm
aGVhZGVyTmFtZSwgJmhlYWRlclZhbHVlKSkKLSAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0
cmluZzo6ZnJvbVVURjhXaXRoTGF0aW4xRmFsbGJhY2soaGVhZGVyTmFtZSwgc3RybGVuKGhlYWRl
ck5hbWUpKSwgU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhoZWFkZXJWYWx1ZSwg
c3RybGVuKGhlYWRlclZhbHVlKSkpOworICAgICAgICBhZGRIVFRQSGVhZGVyRmllbGQoU3RyaW5n
KGhlYWRlck5hbWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKIAogICAgIFN0cmluZyBjb250ZW50
VHlwZTsKICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21lc3NhZ2VfaGVhZGVy
c19nZXRfb25lKGhlYWRlcnMsICJDb250ZW50LVR5cGUiKTsKQEAgLTEwOCw3ICsxMDgsOCBAQCBD
ZXJ0aWZpY2F0ZUluZm8gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8o
KSBjb25zdAogCiBTdHJpbmcgUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1TdWdnZXN0ZWRGaWxl
bmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZpbGVuYW1lRnJvbUhUVFBDb250ZW50RGlzcG9z
aXRpb24oaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50RGlzcG9zaXRpb24p
KTsKKyAgICBTdHJpbmcgY29udGVudERpc3Bvc2l0aW9uKGh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6Q29udGVudERpc3Bvc2l0aW9uKSk7CisgICAgcmV0dXJuIGZpbGVuYW1lRnJvbUhU
VFBDb250ZW50RGlzcG9zaXRpb24oU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhj
b250ZW50RGlzcG9zaXRpb24uY2hhcmFjdGVyczgoKSwgY29udGVudERpc3Bvc2l0aW9uLmxlbmd0
aCgpKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NTJhMDVmZGJmMjdmZDAwOWZjMjZkNTFkMzU1MDMwNjU5
Mjc0Nzc4Li43ZGFkMzNhYzdmNWZlMDJmNDNlMmRlNjc3MWFmZWNlMGVlYjYxZGRkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTQtMTItMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0
QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU291cF1bQ3VybF0gSFRUUCBoZWFkZXIgdmFsdWVz
IHNob3VsZCBiZSB0cmVhdGVkIGFzIGxhdGluMSwgbm90IFVURi04CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg3MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRlc3RzIHRoYXQgbm9uIGFz
Y2lpIGhlYWRlciAmIHJlYXNvbiBwaHJhc2UgdmFsdWVzIGFyZSBjb3JyZWN0bHkgcmV0cmlldmVk
IGJ5IHRoZSB3ZWIgYXBwbGljYXRpb24uCisgICAgICAgIGhlYWRlcnMucGhwIHNjcmlwdCBzZW5k
cyBhIHJlc3BvbnNlIHRoYXQgaW5jbHVkZXMgbm9uIGFzY2lpIGhlYWRlciB2YWx1ZS4KKyAgICAg
ICAgbm90LWFzY2lpLXN0YXR1cy5waHAgc2VuZHMgYSByZXNwb25zZSB0aGF0IGluY2x1ZGVzIG5v
biBhc2NpaSByZWFzb24gcGhyYXNlLgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljIGd0ay9lZmwg
ZXhwZWN0YXRpb25zIGFzIG5vdyBhbGlnbmVkIHdpdGggcmVndWxhciBleHBlY3RhdGlvbi4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2hlYWRlcnMucGhw
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9u
b3QtYXNjaWktc3RhdHVzLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9yZXNwb25zZS1zcGVjaWFsLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNlLXNwZWNpYWwtY2hh
cmFjdGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy1ub25hc2Np
aS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctbm9u
YXNjaWktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDE0LTExLTIxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVGhyb3R0bGVkIERPTVRpbWVycyBjYW4gcHJl
dmVudCB0aGVpciBkb2N1bWVudCBmcm9tIGJlaW5nIGdhcmJhZ2UgY29sbGVjdGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9oZWFk
ZXJzLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2hlYWRlcnMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhYjM3YTk5OWMyMmNjYjY5YjFlMWZhOTY1MTFkMTZl
YTA3Yjk4OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9oZWFkZXJzLnBocApAQCAtMCwwICsxLDExIEBACis8P3BocAor
IGhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluIik7CisgaGVhZGVyKCJYLUN1c3RvbS1I
ZWFkZXI6IHRlc3QiKTsKKyBoZWFkZXIoIlNldC1Db29raWU6IHRlc3QiKTsKKyBoZWFkZXIoIlNl
dC1Db29raWUyOiB0ZXN0Iik7CisgaGVhZGVyKCJYLUN1c3RvbS1IZWFkZXItRW1wdHk6Iik7Cisg
aGVhZGVyKCJYLUN1c3RvbS1IZWFkZXItQ29tbWE6IDEiKTsKKyBoZWFkZXIoIlgtQ3VzdG9tLUhl
YWRlci1Db21tYTogMiIsIGZhbHNlKTsKKyBoZWFkZXIoIlgtQ3VzdG9tLUhlYWRlci1CeXRlczog
4oCmIik7CisgZWNobyAiVEVTVCI7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvbm90LWFzY2lpLXN0YXR1cy5waHAgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9ub3QtYXNjaWktc3Rh
dHVzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YjhhMWMwOTc5ODI3YmRiYjJkZDZkNmU4MTAxNmYwNTQwYTk0
YzYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvbm90LWFzY2lpLXN0YXR1cy5waHAKQEAgLTAsMCArMSw0IEBACis8P3Bo
cAorICAgIGhlYWRlcignSFRUUC8xLjEgMjAwIE9L4oCmJyk7CisgICAgZWNobyAiT0vigKYiOwor
Pz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVz
cG9uc2Utc3BlY2lhbC1jaGFyYWN0ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2Utc3BlY2lhbC1jaGFyYWN0ZXJzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NTEwYjU5MzBhZTRkZWY5Nzk0NjkyYTBlYjIzNGRkMTJmNGMxZTY3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9yZXNwb25zZS1zcGVjaWFsLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorCitQQVNTIG5vbiBhc2NpaSByZXNwb25zZSBoZWFkZXIgdmFsdWUgCitQQVNTIG5vbiBhc2Np
aSBzdGF0dXNUZXh0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3Jlc3BvbnNlLXNwZWNpYWwtY2hhcmFjdGVycy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNwb25zZS1zcGVjaWFsLWNoYXJhY3RlcnMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mZTc3NDEyZGViMmU4NTIwYzI2ZGMzNjJkZmY4N2RhOWQ1YTA0NjQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZXNwb25zZS1zcGVjaWFsLWNoYXJhY3RlcnMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+WE1MSHR0cFJlcXVlc3Q6IGdl
dHRpbmcgcmVzcG9uc2Ugd2l0aCBmdW5ueSBjaGFyYWN0ZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICA8IS0tIHRlc3QgZmlsZSBvcmlnaW5hdGluZyBmcm9tIFczQyB3ZWIgcGxhdGZv
cm0gdGVzdCBzdWl0ZSAtLT4gCisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgZnVuY3Rpb24gcnVuX3Rlc3QobmFtZSwgc2V0
dXBGdW5jdGlvbiwgYXNzZXJ0RnVuY3Rpb24pCisgICAgICB7CisgICAgICAgICAgdmFyIHRlc3Qg
PSBhc3luY190ZXN0KG5hbWUpCisgICAgICAgICAgdGVzdC5pc0Fzc2VydGVkID0gZmFsc2UKKyAg
ICAgICAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgY2xpZW50ID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCkKKyAgICAgICAgICAgIGNsaWVudC5vbnJlYWR5c3RhdGVjaGFu
Z2UgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGlmKGNsaWVudC5yZWFkeVN0YXRlID09IDQpIHsKKyAgICAgICAgICAg
ICAgICAgIHRlc3QuaXNBc3NlcnRlZCA9IHRydWUKKyAgICAgICAgICAgICAgICAgIGFzc2VydEZ1
bmN0aW9uKGNsaWVudCkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0pCisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBjbGllbnQub25sb2FkZW5kID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKHRlc3QuaXNBc3NlcnRlZCkKKyAgICAgICAgICAgICAg
dGVzdC5kb25lKCkKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldHVwRnVuY3Rpb24oY2xp
ZW50KQorICAgICAgICAgICAgY2xpZW50LnNlbmQobnVsbCkKKyAgICAgICAgICB9KQorICAgICAg
fQorCisgICAgICBydW5fdGVzdCgibm9uIGFzY2lpIHJlc3BvbnNlIGhlYWRlciB2YWx1ZSIsCisg
ICAgICAgIGZ1bmN0aW9uKGNsaWVudCl7CisgICAgICAgICAgICBjbGllbnQub3BlbigiR0VUIiwg
InJlc291cmNlcy9oZWFkZXJzLnBocCIpCisgICAgICAgIH0sZnVuY3Rpb24oY2xpZW50KXsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY2xpZW50LmdldFJlc3BvbnNlSGVhZGVyKCJ4LWN1c3Rv
bS1oZWFkZXItYnl0ZXMiKSwgIlx4RTJceDgwXHhBNiIpCisgICAgICAgIH0KKyAgICAgICkKKwor
ICAgICAgcnVuX3Rlc3QoIm5vbiBhc2NpaSBzdGF0dXNUZXh0IiwKKyAgICAgICAgZnVuY3Rpb24o
Y2xpZW50KXsKKyAgICAgICAgICAgIGNsaWVudC5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL25vdC1h
c2NpaS1zdGF0dXMucGhwIikKKyAgICAgICAgfSxmdW5jdGlvbihjbGllbnQpeworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjbGllbnQuc3RhdHVzVGV4dCwgIk9LXHhFMlx4ODBceEE2IikKKyAg
ICAgICAgfQorICAgICAgKQorICA8L3NjcmlwdD4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy1ub25hc2NpaS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvc291cmNlLWxpc3QtcGFyc2luZy1ub25hc2NpaS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmNWJjOTY0NWM3YjBjZjIyMjE1MmUwNmQzZGI4
NGM1OWNkNDNhNzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3NvdXJjZS1saXN0LXBhcnNpbmctbm9uYXNjaWktZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSB2YWx1ZSBm
b3IgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlICdzY3JpcHQtc3JjJyBjb250YWlu
cyBhbiBpbnZhbGlkIGNoYXJhY3RlcjogJzEyNy4wLjAuMS/Dn2lzbm90U29yQi8nLiBOb24td2hp
dGVzcGFjZSBjaGFyYWN0ZXJzIG91dHNpZGUgQVNDSUkgMHgyMS0weDdFIG11c3QgYmUgcGVyY2Vu
dC1lbmNvZGVkLCBhcyBkZXNjcmliZWQgaW4gUkZDIDM5ODYsIHNlY3Rpb24gMi4xOiBodHRwOi8v
dG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMi4xLgotU291cmNlcyBjb250YWlu
aW5nIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIHNob3VsZCBiZSBpZ25vcmVkLCBhbmQgc2hvdWxkIGdl
bmVyYXRlIHdhcm5pbmdzLgotCi0KLQotLS0tLS0tLS0KLUZyYW1lOiAnPCEtLWZyYW1lUGF0aCAv
LzwhLS1mcmFtZTAtLT4tLT4nCi0tLS0tLS0tLQotUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3NvdXJjZS1saXN0LXBhcnNpbmctbm9uYXNjaWktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Nv
dXJjZS1saXN0LXBhcnNpbmctbm9uYXNjaWktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwZjViYzk2NDVjN2IwY2YyMjIxNTJlMDZkM2RiODRjNTljZDQzYTcwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9z
b3VyY2UtbGlzdC1wYXJzaW5nLW5vbmFzY2lpLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgdmFsdWUgZm9yIENvbnRlbnQgU2Vj
dXJpdHkgUG9saWN5IGRpcmVjdGl2ZSAnc2NyaXB0LXNyYycgY29udGFpbnMgYW4gaW52YWxpZCBj
aGFyYWN0ZXI6ICcxMjcuMC4wLjEvw59pc25vdFNvckIvJy4gTm9uLXdoaXRlc3BhY2UgY2hhcmFj
dGVycyBvdXRzaWRlIEFTQ0lJIDB4MjEtMHg3RSBtdXN0IGJlIHBlcmNlbnQtZW5jb2RlZCwgYXMg
ZGVzY3JpYmVkIGluIFJGQyAzOTg2LCBzZWN0aW9uIDIuMTogaHR0cDovL3Rvb2xzLmlldGYub3Jn
L2h0bWwvcmZjMzk4NiNzZWN0aW9uLTIuMS4KLVNvdXJjZXMgY29udGFpbmluZyBub24tYXNjaWkg
Y2hhcmFjdGVycyBzaG91bGQgYmUgaWdub3JlZCwgYW5kIHNob3VsZCBnZW5lcmF0ZSB3YXJuaW5n
cy4KLQotCi0KLS0tLS0tLS0tCi1GcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+
LS0+JwotLS0tLS0tLS0KLVBBU1MK
</data>

          </attachment>
      

    </bug>

</bugzilla>