<?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>129740</bug_id>
          
          <creation_ts>2014-03-05 07:47:19 -0800</creation_ts>
          <short_desc>[EFL][WK2] Add ewk APIs to control TLS error policy on WebContext.</short_desc>
          <delta_ts>2014-03-31 06:01:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>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="Peter Molnar">pmolnar.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>987255</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-05 07:47:19 -0800</bug_when>
    <thetext>Add WK2 API to control TLS error policy on WebContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987256</commentid>
    <comment_count>1</comment_count>
      <attachid>225884</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-05 07:48:45 -0800</bug_when>
    <thetext>Created attachment 225884
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987258</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-05 07:50:16 -0800</bug_when>
    <thetext>Attachment 225884 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 12 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987259</commentid>
    <comment_count>3</comment_count>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-05 07:52:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 225884 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
&gt; ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
&gt; Total errors found: 12 in 8 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

These style errors are caused by the certificate embedded into the code. This seems to be a better option than including it from a file, this way we can make the test more self-containing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987445</commentid>
    <comment_count>4</comment_count>
      <attachid>225884</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-05 16:52:51 -0800</bug_when>
    <thetext>Comment on attachment 225884
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:361
&gt; +EAPI void ewk_context_set_ignore_tls(Ewk_Context* ewkContext, Eina_Bool ignoreTLSErrors);

1. Wrong * place and wrong efl function style. Ewk_Context* ewkContext =&gt; Ewk_Context *ewk_context, ignoreTLSErrors =&gt; ignore_tls_errors.

2. Generally EFL function naming has placed *verb* at the end of function. For instance, ewk_context_ignore_tls_set(...)

&gt; Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:24
&gt; +EWK2UnitTestServer::EWK2UnitTestServer(GTlsCertificate* tls_cert)

We only use EFL coding style in public EFL APIs. So, tls_cert =&gt; tlsCert

&gt; Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:29
&gt; +    EWK2UnitTestServer(GTlsCertificate* tls_cert = 0);

ditto

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:41
&gt; +static bool finish_test = false;

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:152
&gt; +    Ewk_Error* error = 0;

0 =&gt; nullptr ?

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:178
&gt; +    Ewk_Error* error = 0;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987684</commentid>
    <comment_count>5</comment_count>
      <attachid>225990</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-06 07:28:23 -0800</bug_when>
    <thetext>Created attachment 225990
patch

Fixed the style problems above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987686</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-06 07:29:47 -0800</bug_when>
    <thetext>Attachment 225990 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 12 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988064</commentid>
    <comment_count>7</comment_count>
      <attachid>225990</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2014-03-07 00:50:40 -0800</bug_when>
    <thetext>Comment on attachment 225990
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:361
&gt; +EAPI void ewk_context_ignore_tls_set(Ewk_Context *ewkContext, Eina_Bool ignore_tls_errors);

I find this name misleading: it looks like one wants to ignore TLS as a whole (?). How about ewk_context_ignore_tls_errors_set()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988117</commentid>
    <comment_count>8</comment_count>
      <attachid>225990</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-07 04:27:49 -0800</bug_when>
    <thetext>Comment on attachment 225990
patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:361
&gt;&gt; +EAPI void ewk_context_ignore_tls_set(Ewk_Context *ewkContext, Eina_Bool ignore_tls_errors);
&gt; 
&gt; I find this name misleading: it looks like one wants to ignore TLS as a whole (?). How about ewk_context_ignore_tls_errors_set()?

BTW, don&apos;t we need to support _get() as well ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988139</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-07 05:58:58 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 225990 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225990&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:361
&gt; &gt;&gt; +EAPI void ewk_context_ignore_tls_set(Ewk_Context *ewkContext, Eina_Bool ignore_tls_errors);
&gt; &gt; 
&gt; &gt; I find this name misleading: it looks like one wants to ignore TLS as a whole (?). How about ewk_context_ignore_tls_errors_set()?

Sure, I&apos;ve renamed it. It will be more clear this way.

&gt; 
&gt; BTW, don&apos;t we need to support _get() as well ?

Added the getter too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988140</commentid>
    <comment_count>10</comment_count>
      <attachid>226121</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-07 05:59:30 -0800</bug_when>
    <thetext>Created attachment 226121
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988141</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-07 06:00:17 -0800</bug_when>
    <thetext>Attachment 226121 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 12 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988507</commentid>
    <comment_count>12</comment_count>
      <attachid>226121</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-07 22:22:06 -0800</bug_when>
    <thetext>Comment on attachment 226121
patch

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

I think we need to test _get() as well. Can&apos;t you test _get() in tests ?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:362
&gt; +Eina_Bool ewk_context_ignore_tls_errors_get(Ewk_Context *ewkContext);

1. Missing const keyword in parameter. Ewk_Context -&gt; const Ewk_Context
2. Use context to be sync with existing APIs.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:370
&gt; +EAPI void ewk_context_ignore_tls_errors_set(Ewk_Context *ewkContext, Eina_Bool ignore_tls_errors);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988850</commentid>
    <comment_count>13</comment_count>
      <attachid>226289</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-10 03:22:30 -0700</bug_when>
    <thetext>Created attachment 226289
patch

(In reply to comment #12)
&gt; (From update of attachment 226121 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226121&amp;action=review
&gt; 
&gt; I think we need to test _get() as well. Can&apos;t you test _get() in tests ?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:362
&gt; &gt; +Eina_Bool ewk_context_ignore_tls_errors_get(Ewk_Context *ewkContext);
&gt; 
&gt; 1. Missing const keyword in parameter. Ewk_Context -&gt; const Ewk_Context
&gt; 2. Use context to be sync with existing APIs.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:370
&gt; &gt; +EAPI void ewk_context_ignore_tls_errors_set(Ewk_Context *ewkContext, Eina_Bool ignore_tls_errors);
&gt; 
&gt; ditto.

Added the tests. Fixed missing const keywords.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988851</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-10 03:23:21 -0700</bug_when>
    <thetext>Attachment 226289 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 12 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990293</commentid>
    <comment_count>15</comment_count>
      <attachid>226289</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-13 21:41:06 -0700</bug_when>
    <thetext>Comment on attachment 226289
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:362
&gt; +Eina_Bool ewk_context_ignore_tls_errors_get(const Ewk_Context *ewkContext);

Regarding the naming, I would suggest &apos;ewk_context_tls_errors_policy_get/set()&apos; and to add a enumeration for TLS errors policy(Ignore/Fail). 
As described in comments, this API provides the interface to control the TLS error policy.

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:115
&gt; +        if (!strcmp(path, &quot;/index.html&quot;)) {

Why don&apos;t you use strncmp() instead of strcmp()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990429</commentid>
    <comment_count>16</comment_count>
      <attachid>226695</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-14 05:51:35 -0700</bug_when>
    <thetext>Created attachment 226695
patch

(In reply to comment #15)
&gt; (From update of attachment 226289 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226289&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:362
&gt; &gt; +Eina_Bool ewk_context_ignore_tls_errors_get(const Ewk_Context *ewkContext);
&gt; 
&gt; Regarding the naming, I would suggest &apos;ewk_context_tls_errors_policy_get/set()&apos; and to add a enumeration for TLS errors policy(Ignore/Fail). 
&gt; As described in comments, this API provides the interface to control the TLS error policy.

Yes, this name is definitely better, I&apos;ve renamed it. Also added the enumeration you suggested.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:115
&gt; &gt; +        if (!strcmp(path, &quot;/index.html&quot;)) {
&gt; 
&gt; Why don&apos;t you use strncmp() instead of strcmp()?

Currently strcmp() is used in all of these tests, so I&apos;m trying to conform to this here, too. If you think it needs to be an strncmp(), then it would be wise to change it in all of the other tests also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990432</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-14 05:52:49 -0700</bug_when>
    <thetext>Attachment 226695 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 12 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992188</commentid>
    <comment_count>18</comment_count>
      <attachid>227203</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-19 11:26:41 -0700</bug_when>
    <thetext>Created attachment 227203
patch

The previous patch was bad (wrong enum-&gt;bool mapping), fixed it.
Also renamed the test callbacks and added comments to make it more clear what&apos;s going on in those tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992189</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-19 11:28:23 -0700</bug_when>
    <thetext>Attachment 227203 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 12 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992857</commentid>
    <comment_count>20</comment_count>
      <attachid>227203</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-20 18:45:16 -0700</bug_when>
    <thetext>Comment on attachment 227203
patch

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

Looks fine except for EFL coding style.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:383
&gt; + * @param context context object to get TLS error policy for.

For @param, @return statements, we haven&apos;t used . at the end of line.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:385
&gt; + * @return The TLS errors policy for the context.

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:387
&gt; +Ewk_TLS_Error_Policy ewk_context_tls_error_policy_get(const Ewk_Context *ewkContext);

Please use context instead of ewkContext to be compliant with existing APIs.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:392
&gt; + * @param context context object to set TLS error policy for.

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:393
&gt; + * @param ignore_tls_errors a #Ewk_TLS_Error_Policy.

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:395
&gt; +EAPI void ewk_context_tls_error_policy_set(const Ewk_Context *ewkContext, Ewk_TLS_Error_Policy tls_error_policy);

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:100
&gt; +        // The test fails if an SSL error occurs.

Wrong indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992910</commentid>
    <comment_count>21</comment_count>
      <attachid>227203</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-20 22:30:16 -0700</bug_when>
    <thetext>Comment on attachment 227203
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:384
&gt; +        toImpl(m_context.get())-&gt;setIgnoreTLSErrors(false);

You may write in a line as following.

toImpl(m_context.get())-&gt;setIgnoreTLSErrors(TLSErrorPolicy == EWK_TLS_ERROR_POLICY_IGNORE);

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:83
&gt; +    /// Fail on TLS errors.

It would be more readable to write one value and comment in a line. Also use *//* instead of *///*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993137</commentid>
    <comment_count>22</comment_count>
      <attachid>227445</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-21 09:27:27 -0700</bug_when>
    <thetext>Created attachment 227445
patch

Fixed the style issues mentioned above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993139</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 09:30:10 -0700</bug_when>
    <thetext>Attachment 227445 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:99:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 13 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993420</commentid>
    <comment_count>24</comment_count>
      <attachid>227445</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-21 19:10:45 -0700</bug_when>
    <thetext>Comment on attachment 227445
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:87
&gt; +/// Creates a type name for the Ewk_TLS_Error_Policy.

Use *//* instead of *///*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993421</commentid>
    <comment_count>25</comment_count>
      <attachid>227445</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-21 19:14:11 -0700</bug_when>
    <thetext>Comment on attachment 227445
patch

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [EFL] Add WK2 API to control TLS error policy on WebContext.

Let&apos;s change the bug title as below. You&apos;re not adding WK2 C APIs but ewk APIs for EFL port.

[EFL][WK2] Add ewk APIs to control TLS error policy on WebContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993845</commentid>
    <comment_count>26</comment_count>
      <attachid>227659</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-24 09:44:17 -0700</bug_when>
    <thetext>Created attachment 227659
patch

(In reply to comment #24)
&gt; (From update of attachment 227445 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227445&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:87
&gt; &gt; +/// Creates a type name for the Ewk_TLS_Error_Policy.
&gt; 
&gt; Use *//* instead of *///*.

Fixed.

(In reply to comment #25)
&gt; (From update of attachment 227445 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227445&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:3
&gt; &gt; +        [EFL] Add WK2 API to control TLS error policy on WebContext.
&gt; 
&gt; Let&apos;s change the bug title as below. You&apos;re not adding WK2 C APIs but ewk APIs for EFL port.
&gt; 
&gt; [EFL][WK2] Add ewk APIs to control TLS error policy on WebContext.

Changed the bug title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993848</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-24 09:46:03 -0700</bug_when>
    <thetext>Attachment 227659 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:99:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 13 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994029</commentid>
    <comment_count>28</comment_count>
      <attachid>227659</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-24 16:53:37 -0700</bug_when>
    <thetext>Comment on attachment 227659
patch

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

Patch looks getting better.

&gt; Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:29
&gt; +    EWK2UnitTestServer(GTlsCertificate* tlsCert = nullptr);

Missing *explicit* keyword ?

&gt; Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:30
&gt;      virtual ~EWK2UnitTestServer();

Unrelated to this patch though, why this dtor was declared as virtual :(

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:182
&gt; +    waitUntilTrue(finishTest, testTimeoutSeconds);

Any reason we have to wait until testTimeoutSeconds ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994191</commentid>
    <comment_count>29</comment_count>
      <attachid>227754</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-25 08:55:25 -0700</bug_when>
    <thetext>Created attachment 227754
patch

(In reply to comment #28)
&gt; (From update of attachment 227659 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227659&amp;action=review
&gt; 
&gt; Patch looks getting better.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:29
&gt; &gt; +    EWK2UnitTestServer(GTlsCertificate* tlsCert = nullptr);
&gt; 
&gt; Missing *explicit* keyword ?

Fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:30
&gt; &gt;      virtual ~EWK2UnitTestServer();
&gt; 
&gt; Unrelated to this patch though, why this dtor was declared as virtual :(

I assume that in this case I don&apos;t have to fix it in this patch.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:182
&gt; &gt; +    waitUntilTrue(finishTest, testTimeoutSeconds);
&gt; 
&gt; Any reason we have to wait until testTimeoutSeconds ?

Waiting for the timeout is just for the case if something really nasty happens. If either onLoadFinished or onLoadProvisionalFailed event is triggered, finishTest will become true, and the test finishes immediately (600-800 msec on average). In normal test runs either of them will be very likely to happen.

So it&apos;s just for the case when none of these events happen, so finishTest would stay false forever (e.g. the cert can&apos;t be created from the supplied PEM, server can&apos;t start for some reason, etc.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994192</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-25 08:58:28 -0700</bug_when>
    <thetext>Attachment 227754 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:99:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 13 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994498</commentid>
    <comment_count>31</comment_count>
      <attachid>227754</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-25 23:03:28 -0700</bug_when>
    <thetext>Comment on attachment 227754
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:380
&gt; +{

Don&apos;t we need to set true or false if result of TLSErrorPolicy == EWK_TLS_ERROR_POLICY_IGNORE was already set ?

How about adding below logic ?

    bool isNewPolicy = TLSErrorPolicy == EWK_TLS_ERROR_POLICY_IGNORE;
    if (toImpl(m_context.get())-&gt;ignoreTLSErrors() == isNewPolicy)
        return;

    toImpl(m_context.get())-&gt;setIgnoreTLSErrors(isNewPolicy);

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:490
&gt; +void ewk_context_tls_error_policy_set(const Ewk_Context *context, Ewk_TLS_Error_Policy tls_error_policy)

Wrong * place. Ewk_Context* context

We only follow EFL coding style in public header.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:381
&gt; + * @param context context object to get TLS error policy for

What is *for* at the end of line ?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:390
&gt; + * @param context context object to set TLS error policy for

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994524</commentid>
    <comment_count>32</comment_count>
      <attachid>227837</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-26 01:56:43 -0700</bug_when>
    <thetext>Created attachment 227837
patch

Fixed previously mentioned problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994526</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-26 01:59:40 -0700</bug_when>
    <thetext>Attachment 227837 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:99:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 13 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994536</commentid>
    <comment_count>34</comment_count>
      <attachid>227837</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-26 02:55:11 -0700</bug_when>
    <thetext>Comment on attachment 227837
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:388
&gt; + * Sets TLS error policy for @a context.

I hope that we have more description.
For example, what is default value?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:391
&gt; + * @param ignore_tls_errors a #Ewk_TLS_Error_Policy

tls_error_policy

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:393
&gt; +EAPI void ewk_context_tls_error_policy_set(const Ewk_Context *context, Ewk_TLS_Error_Policy tls_error_policy);

Remove const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995786</commentid>
    <comment_count>35</comment_count>
      <attachid>227837</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-31 00:50:54 -0700</bug_when>
    <thetext>Comment on attachment 227837
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:385
&gt; +Ewk_TLS_Error_Policy ewk_context_tls_error_policy_get(const Ewk_Context *context);

Wrong * place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995798</commentid>
    <comment_count>36</comment_count>
      <attachid>227837</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-31 02:49:03 -0700</bug_when>
    <thetext>Comment on attachment 227837
patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:385
&gt;&gt; +Ewk_TLS_Error_Policy ewk_context_tls_error_policy_get(const Ewk_Context *context);
&gt; 
&gt; Wrong * place.

I&apos;m sorry. My mistake. Please ignore wrong comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995817</commentid>
    <comment_count>37</comment_count>
      <attachid>228168</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-31 03:50:22 -0700</bug_when>
    <thetext>Created attachment 228168
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995820</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 03:53:41 -0700</bug_when>
    <thetext>Attachment 228168 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:99:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 13 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995822</commentid>
    <comment_count>39</comment_count>
      <attachid>228170</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-03-31 03:55:09 -0700</bug_when>
    <thetext>Created attachment 228170
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995824</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 03:56:47 -0700</bug_when>
    <thetext>Attachment 228170 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:48:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:50:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:52:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:53:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:54:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:56:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:59:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:60:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:68:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:69:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:70:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:71:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_ssl.cpp:99:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 13 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995825</commentid>
    <comment_count>41</comment_count>
      <attachid>228170</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-31 04:01:33 -0700</bug_when>
    <thetext>Comment on attachment 228170
patch

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

LGTM except for a comment.

&gt; Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:34
&gt; +        m_baseURL = soup_uri_new(&quot;https://127.0.0.1/&quot;);

We can move this to out of if ~ else scope. Can&apos;t we move this to 40 line ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995843</commentid>
    <comment_count>42</comment_count>
      <attachid>228170</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 06:01:31 -0700</bug_when>
    <thetext>Comment on attachment 228170
patch

Clearing flags on attachment: 228170

Committed r166497: &lt;http://trac.webkit.org/changeset/166497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995844</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 06:01:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225884</attachid>
            <date>2014-03-05 07:48:45 -0800</date>
            <delta_ts>2014-03-06 07:28:23 -0800</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls.patch</filename>
            <type>text/plain</type>
            <size>13746</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNDc1ZTBhLi43ZmRlMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTQtMDMtMDUgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgV0syIEFQSSB0byBjb250cm9sIFRMUyBl
cnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFkZGVkIHRo
ZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMpOgorICAgICAg
ICAoZXdrX2NvbnRleHRfc2V0X2lnbm9yZV90bHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfcHJpdmF0ZS5oOgorICAgICAgICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2Vy
dmVyLmNwcDoKKyAgICAgICAgKEVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJV
bml0VGVzdFNlcnZlci5oOgorICAgICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0
byBoYW5kbGUgVExTLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9l
d2syX3NzbC5jcHA6CisgICAgICAgIEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5
IEFQSS4KKwogMjAxNC0wMy0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkIGFmdGVyIHIxNjUwOTUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UKaW5kZXggZjk2MjVkOS4uOTcwYmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTQ2NSw2ICs0NjUsNyBAQCBzZXQoRVdLMlVuaXRUZXN0c19CSU5BUklFUwogICAgIHRl
c3RfZXdrMl9wb3B1cF9tZW51CiAgICAgdGVzdF9ld2syX3JlZnB0cl9ldmFzX29iamVjdAogICAg
IHRlc3RfZXdrMl9zZXR0aW5ncworICAgIHRlc3RfZXdrMl9zc2wKICAgICB0ZXN0X2V3azJfc3Rv
cmFnZV9tYW5hZ2VyCiAgICAgdGVzdF9ld2syX3RleHRfY2hlY2tlcgogICAgIHRlc3RfZXdrMl92
aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5j
cHAKaW5kZXggYTQ1NWI3YS4uYTJmZmNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtMzU0LDYgKzM1NCwxMSBAQCB2b2lkIEV3
a0NvbnRleHQ6OnByb2Nlc3NSZWNlaXZlZE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbQogICAgICAgICBtX2NhbGxiYWNrRm9yTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZS5jYWxsYmFjayhuYW1lLmRhdGEoKSwgYm9keS5kYXRhKCksIG51bGxwdHIsIG1fY2Fs
bGJhY2tGb3JNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLnVzZXJEYXRhKTsKIH0KIAordm9pZCBF
d2tDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCit7Cisg
ICAgdG9JbXBsKG1fY29udGV4dC5nZXQoKSktPnNldElnbm9yZVRMU0Vycm9ycyhpZ25vcmVUTFNF
cnJvcnMpOworfQorCiBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQoKQogewog
ICAgIHJldHVybiBFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpOwpAQCAtNDUyLDMgKzQ1Nyw5
IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVzc2FnZV9mcm9tX2luamVjdGVkX2J1bmRsZV9jYWxsYmFj
a19zZXQoRXdrX0NvbnRleHQqIGV3a0NvbnRlCiAKICAgICBpbXBsLT5zZXRNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlQ2FsbGJhY2soY2FsbGJhY2ssIHVzZXJEYXRhKTsKIH0KKwordm9pZCBld2tf
Y29udGV4dF9zZXRfaWdub3JlX3RscyhFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgRWluYV9Cb29s
IHRscykKK3sKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihFd2tDb250ZXh0LCBld2tD
b250ZXh0LCBpbXBsKTsKKyAgICBpbXBsLT5zZXRJZ25vcmVUTFNFcnJvcnModGxzKTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCmluZGV4IDEz
YjE2ZDMuLjE0NDBiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuaApAQCAtMzUyLDYgKzM1MiwxNCBAQCBFQVBJIHZvaWQgZXdrX2NvbnRleHRf
bWVzc2FnZV9wb3N0X3RvX2luamVjdGVkX2J1bmRsZShFd2tfQ29udGV4dCAqY29udGV4dCwgY29u
cwogICovCiBFQVBJIHZvaWQgZXdrX2NvbnRleHRfbWVzc2FnZV9mcm9tX2luamVjdGVkX2J1bmRs
ZV9jYWxsYmFja19zZXQoRXdrX0NvbnRleHQgKmNvbnRleHQsIEV3a19Db250ZXh0X01lc3NhZ2Vf
RnJvbV9JbmplY3RlZF9CdW5kbGVfQ2IgY2FsbGJhY2ssIHZvaWQgKnVzZXJfZGF0YSk7CiAKKy8q
KgorICogU2V0cyBUTFMgZXJyb3IgcG9saWN5IGZvciBAYSBjb250ZXh0LgorICoKKyAqIEBwYXJh
bSBjb250ZXh0IGNvbnRleHQgb2JqZWN0IHRvIHNldCBUTFMgZXJyb3IgcG9saWN5IGZvci4KKyAq
IEBwYXJhbSBpZ25vcmVUTFNFcnJvcnMgQGMgRUlOQV9UUlVFIGlmIFRMUyBlcnJvcnMgc2hvdWxk
IGJlIGlnbm9yZWQsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlLgorICovCitFQVBJIHZvaWQgZXdr
X2NvbnRleHRfc2V0X2lnbm9yZV90bHMoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIEVpbmFfQm9v
bCBpZ25vcmVUTFNFcnJvcnMpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJp
dmF0ZS5oCmluZGV4IGZlMzMxNDkuLjI3NzZkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKQEAgLTgwLDYgKzgw
LDggQEAgcHVibGljOgogCiAgICAgV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbCogaGlz
dG9yeUNsaWVudCgpOwogCisgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVU
TFNFcnJvcnMpOworCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBz
ZXRBZGRpdGlvbmFsUGx1Z2luUGF0aChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9F
V0syVW5pdFRlc3RTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
dGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDRlZjRjZjcu
LjhlMDc0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNl
cnZlci5jcHAKQEAgLTIxLDEzICsyMSwyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkVXSzJVbml0VGVzdFNlcnZlci5oIgogCi1FV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0
VGVzdFNlcnZlcigpCitFV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZlcihHVGxz
Q2VydGlmaWNhdGUqIHRsc19jZXJ0KQogewogICAgIFNvdXBBZGRyZXNzKiBhZGRyZXNzID0gc291
cF9hZGRyZXNzX25ldygiMTI3LjAuMC4xIiwgU09VUF9BRERSRVNTX0FOWV9QT1JUKTsKICAgICBz
b3VwX2FkZHJlc3NfcmVzb2x2ZV9zeW5jKGFkZHJlc3MsIDApOwogCi0gICAgbV9zb3VwU2VydmVy
ID0gc291cF9zZXJ2ZXJfbmV3KFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRkcmVzcywgc3RhdGlj
X2Nhc3Q8Y2hhcio+KDApKTsKLSAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0dHA6Ly8x
MjcuMC4wLjEvIik7CisgICAgaWYgKHRsc19jZXJ0KSB7CisgICAgICAgIG1fc291cFNlcnZlciA9
IHNvdXBfc2VydmVyX25ldygKKyAgICAgICAgICAgIFNPVVBfU0VSVkVSX1RMU19DRVJUSUZJQ0FU
RSwgdGxzX2NlcnQsCisgICAgICAgICAgICBTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3Ms
IHN0YXRpY19jYXN0PGNoYXIqPigwKSk7CisKKyAgICAgICAgbV9iYXNlVVJMID0gc291cF91cmlf
bmV3KCJodHRwczovLzEyNy4wLjAuMS8iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3NvdXBT
ZXJ2ZXIgPSBzb3VwX3NlcnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBz
dGF0aWNfY2FzdDxjaGFyKj4oMCkpOworICAgICAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXco
Imh0dHA6Ly8xMjcuMC4wLjEvIik7CisgICAgfQorCiAgICAgc291cF91cmlfc2V0X3BvcnQobV9i
YXNlVVJMLCBzb3VwX3NlcnZlcl9nZXRfcG9ydChtX3NvdXBTZXJ2ZXIpKTsKICAgICBnX29iamVj
dF91bnJlZihhZGRyZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0
VGVzdFNlcnZlci5oCmluZGV4IGI5NjdjZTQuLmExYmQ2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5p
dFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaApAQCAtMjYsNyArMjYsNyBAQAogCiBjbGFz
cyBFV0syVW5pdFRlc3RTZXJ2ZXIgewogcHVibGljOgotICAgIEVXSzJVbml0VGVzdFNlcnZlcigp
OworICAgIEVXSzJVbml0VGVzdFNlcnZlcihHVGxzQ2VydGlmaWNhdGUqIHRsc19jZXJ0ID0gMCk7
CiAgICAgdmlydHVhbCB+RVdLMlVuaXRUZXN0U2VydmVyKCk7CiAKICAgICBDU3RyaW5nIGdldFVS
TEZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3NsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyZTQxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3NsLmNwcApA
QCAtMCwwICsxLDE4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IFVuaXZl
cnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2Uu
aCIKKyNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oIgorCit1c2lu
ZyBuYW1lc3BhY2UgRVdLMlVuaXRUZXN0OworCitleHRlcm4gRVdLMlVuaXRUZXN0RW52aXJvbm1l
bnQqIGVudmlyb25tZW50OworCitzdGF0aWMgY29uc3QgY2hhciBpbmRleEhUTUxTdHJpbmdbXSA9
CisgICAgIjxodG1sPiIKKyAgICAiPGhlYWQ+PHRpdGxlPkVGTFdlYktpdDIgU1NMIHRlc3Q8L3Rp
dGxlPjwvaGVhZD4iCisgICAgIjxib2R5PjwvYm9keT48L2h0bWw+IjsKKworc3RhdGljIGJvb2wg
ZmluaXNoX3Rlc3QgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHRlc3RUaW1lb3V0
U2Vjb25kcyA9IDIuMDsKKworI2RlZmluZSBTVFJJTkdJRlkyKHgpICN4CisjZGVmaW5lIFNUUklO
R0lGWSh4KSBTVFJJTkdJRlkyKHgpCisKK3N0YXRpYyBjb25zdCBnY2hhciBjZXJ0aWZpY2F0ZV9k
YXRhW10gPSBTVFJJTkdJRlkoLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQorTUlJQ1hR
SUJBQUtCZ1FDbWNYYnVzcnI4elFyOHNuSWIwT1ZRaWJWZmd2N3pQamgvNXhkY3JLT2VqSnpwM2Vw
QQorQUY0VElUZUZSOXZ6V0l3a21rY1JvWStJYlFOaGg3a2VmR1VZRDQ3YnZWYW1KTXRxNWNHWVZz
MEhuZ1QrS1RNYQorTkdIL0c0NEtrRklPYXovYjVkL0pOS09Ocmxxd3hxWFMrbTZJWTRsL0UxRmYy
NVpqTkQ1VGFFdkkxd0lEQVFBQgorQW9HQkFJY0R2NEE5aDZVT0J2MlpHeXNwTnZzdjJlclNibEdP
aFhKcldPNGFOTmVtSkpzcElwNHNMaVBDYkRFMworYTFwbzE3WFJXQmtiUHoxaGdMNmF4RFhRbm9l
bysrZWJmcnZSU2VkK0Z5czQrNlN2dVNyUE92NlBtV1RCVC9XYQorR3BPK3R2NDhKVU54Qy9EeThS
T2l4QlhPVml1SUJFRnEzTmZWSDRIVTMrUkcyME5oQWtFQTFMM1JBaGRmUGtMSQorODJsdVNPWUUz
RXE0NGxJQ2IveVppK0pFaWh3U2VaVEpLZFpId1lEOEtWQ2pPdGpHck9teUV5dlRocmNJQUNRegor
SkxFcmVWaDMzd0pCQU1oSm05cHpKSk5rSXlCZ2lYQTY2RkF3YmhkRHpTVFB4ME9Cam9WV29qNnU3
anpHdklGVAorQ24xYWlUQll6enNpTUNhQ3grVzNlNnBLL0RjdkhTd0tyZ2tDUUhaTWN4d0JtU0hM
QzJsbm1EOExRV3FxVm5McgorZlpWK1ZuZlZ3NTAxRFFUMHVvUDhOdnlnV0JnMVVmOVlLZXBmTFhu
QnBpZEVRanVwNVpLaXZuVUV2K3NDUUE4TgorNlZjTUhJMnZreXhWMVQ3SVRybm9TZjRackl1OXls
NTZtSG5SUHpTeTlWbEFIdDhobk1JN1VlQitiR1VuZHJNTworVlhRZ3pIektVaGJieGJlUHZmRUNR
UURUdGtPdWhKeUtEZkhDeExEY3dOcGkrVDZPV1RFZkN3L2NxOVpXRGJBNworeUNYODFwUXhmWmtm
TUlTMVlGSU9HSG92SzByTU1UcmFDZStpRE5ZdFZ6L0wKKy0tLS0tRU5EIFJTQSBQUklWQVRFIEtF
WS0tLS0tCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUI5ekNDQVdBQ0NRRGpXV1Rl
QzZCUXZUQU5CZ2txaGtpRzl3MEJBUVFGQURCQU1Rc3dDUVlEVlFRR0V3SkIKK1ZURVRNQkVHQTFV
RUNCTUtVMjl0WlMxVGRHRjBaVEVjTUJvR0ExVUVDaE1UVjJWaVMybDBJRXhoZVc5MWRDQlUKK1pY
TjBjekFlRncwd056QTNNVE14TWpVeE16SmFGdzAzTVRBMU1UTXdOakl6TVRaYU1FQXhDekFKQmdO
VkJBWVQKK0FrRlZNUk13RVFZRFZRUUlFd3BUYjIxbExWTjBZWFJsTVJ3d0dnWURWUVFLRXhOWFpX
SkxhWFFnVEdGNWIzVjAKK0lGUmxjM1J6TUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0Jp
UUtCZ1FDbWNYYnVzcnI4elFyOHNuSWIKKzBPVlFpYlZmZ3Y3elBqaC81eGRjcktPZWpKenAzZXBB
QUY0VElUZUZSOXZ6V0l3a21rY1JvWStJYlFOaGg3a2UKK2ZHVVlENDdidlZhbUpNdHE1Y0dZVnMw
SG5nVCtLVE1hTkdIL0c0NEtrRklPYXovYjVkL0pOS09Ocmxxd3hxWFMKKyttNklZNGwvRTFGZjI1
WmpORDVUYUV2STF3SURBUUFCTUEwR0NTcUdTSWIzRFFFQkJBVUFBNEdCQUFmYlViZ0QKKzAxTzhE
b1pBMDJjMU1VTWJNSFJQU2IvcWRvazJweVdvQ1BhL0JTYU9JYU5QZVBjOGF1UFJiclMyWHNWV1NN
ZnQKK0NUWGlYbXJLMlh4MStmSnVaTEFwMENVbmc0RGU0Y0RINWM4bnZsb2NZbVhvKzF4NTNTOURm
RDBLUHJ5akJSSTcKKzlMbkpxMnlzSEFVYXdpcUZYbHdCYWc2bVhhd0Q4WWp6Y1lhdAorLS0tLS1F
TkQgQ0VSVElGSUNBVEUtLS0tLSk7CisKK2NsYXNzIEVXSzJTU0xUZXN0IDogcHVibGljIEVXSzJV
bml0VGVzdEJhc2UgeworcHVibGljOgorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkUHJvdmlzaW9u
YWxGYWlsZWREb250SWdub3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2
ZW50SW5mbykKKyAgICB7CisgICAgICAgIGZpbmlzaF90ZXN0ID0gdHJ1ZTsKKyAgICAgICAgQVNT
RVJUX1RSVUUoZXdrX2Vycm9yX2NvZGVfZ2V0KHN0YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50
SW5mbykpID09IFNPVVBfU1RBVFVTX1NTTF9GQUlMRUQpOworICAgIH0KKworICAgIHN0YXRpYyB2
b2lkIG9uTG9hZEZpbmlzaGVkRG9udElnbm9yZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3Qq
LCB2b2lkKikKKyAgICB7CisgICAgICAgIGJvb2wqIGlzRmluaXNoZWQgPSBzdGF0aWNfY2FzdDxi
b29sKj4odXNlckRhdGEpOworICAgICAgICBpZiAoaXNGaW5pc2hlZCkgeworICAgICAgICAgICAg
ZmluaXNoX3Rlc3QgPSB0cnVlOworICAgICAgICAgICAgRkFJTCgpOworICAgICAgICB9CisgICAg
fQorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkUHJvdmlzaW9uYWxGYWlsZWRJZ25vcmUodm9pZCog
dXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQorICAgIHsKKyAgICAgICAg
ZmluaXNoX3Rlc3QgPSB0cnVlOworICAgICAgICBpZiAoZXdrX2Vycm9yX2NvZGVfZ2V0KHN0YXRp
Y19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykpID09IFNPVVBfU1RBVFVTX1NTTF9GQUlMRUQp
CisgICAgICAgICAgICBGQUlMKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkRmlu
aXNoZWRJZ25vcmUodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCopCisgICAgewor
ICAgICAgICBib29sKiBpc0ZpbmlzaGVkID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsK
KyAgICAgICAgZmluaXNoX3Rlc3QgPSB0cnVlOworICAgICAgICBBU1NFUlRfVFJVRShpc0Zpbmlz
aGVkKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdl
TG9hZFRlc3QoU291cFNlcnZlciosIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBw
YXRoLCBHSGFzaFRhYmxlKiwgU291cENsaWVudENvbnRleHQqLCB2b2lkKikKKyAgICB7CisgICAg
ICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CisgICAgICAgICAg
ICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1RfSU1QTEVN
RU5URUQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFz
dHJjbXAocGF0aCwgIi9pbmRleC5odG1sIikpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9z
ZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX09LKTsKKyAgICAgICAgICAgIHNvdXBfbWVz
c2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9DT1BZ
LCBpbmRleEhUTUxTdHJpbmcsIHN0cmxlbihpbmRleEhUTUxTdHJpbmcpKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NU
QVRVU19OT1RfRk9VTkQpOworCisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1l
c3NhZ2UtPnJlc3BvbnNlX2JvZHkpOworICAgIH0KK307CisKK3N0YXRpYyBHVGxzQ2VydGlmaWNh
dGUqIGdldENlcnRpZmljYXRlKCkKK3sKKyAgICBHRXJyb3IqKiBnZXJyb3I7CisgICAgR1Rsc0Nl
cnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSA9IGdfdGxzX2NlcnRpZmljYXRlX25ld19mcm9tX3BlbSgK
KyAgICAgICAgY2VydGlmaWNhdGVfZGF0YSwgc2l6ZW9mKGNlcnRpZmljYXRlX2RhdGEpLCBnZXJy
b3IpOworCisgICAgaWYgKCFjZXJ0aWZpY2F0ZSkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJV
bmFibGUgdG8gY3JlYXRlIGNlcnRpZmljYXRlIGZyb20gUEVNXG4iKTsKKworICAgIHJldHVybiBj
ZXJ0aWZpY2F0ZTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3NsX2JhZF9jZXJ0X3Bh
Z2VfbG9hZF90ZXN0X2lnbm9yZV9lcnJvcnMpCit7CisgICAgZmluaXNoX3Rlc3QgPSBmYWxzZTsK
KworICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmll
dygpKTsKKyAgICBld2tfY29udGV4dF9zZXRfaWdub3JlX3Rscyhjb250ZXh0LCB0cnVlKTsKKwor
ICAgIEdUbHNDZXJ0aWZpY2F0ZSogVExTQ2VydGlmaWNhdGUgPSBnZXRDZXJ0aWZpY2F0ZSgpOwor
CisgICAgaWYgKCFUTFNDZXJ0aWZpY2F0ZSkKKyAgICAgICAgRkFJTCgpOworCisgICAgc3RkOjp1
bmlxdWVfcHRyPEVXSzJVbml0VGVzdFNlcnZlcj4gaHR0cHNTZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPEVXSzJVbml0VGVzdFNlcnZlcj4oVExTQ2VydGlmaWNhdGUpOworICAgIGh0dHBzU2VydmVy
LT5ydW4oc2VydmVyQ2FsbGJhY2tCYWRDZXJ0UGFnZUxvYWRUZXN0KTsKKworICAgIEV3a19FcnJv
ciogZXJyb3IgPSAwOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3
KCksICJsb2FkLHByb3Zpc2lvbmFsLGZhaWxlZCIsIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVkSWdu
b3JlLCAmZXJyb3IpOworCisgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQsZmluaXNoZWQiLCBvbkxv
YWRGaW5pc2hlZElnbm9yZSwgJmlzRmluaXNoZWQpOworCisgICAgZXdrX3ZpZXdfdXJsX3NldCh3
ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEo
KSk7CisKKyAgICB3YWl0VW50aWxUcnVlKGZpbmlzaF90ZXN0LCB0ZXN0VGltZW91dFNlY29uZHMp
OworfQorCitURVNUX0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rl
c3RfZG9udF9pZ25vcmVfZXJyb3JzKQoreworICAgIGZpbmlzaF90ZXN0ID0gZmFsc2U7CisKKyAg
ICBFd2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7
CisgICAgZXdrX2NvbnRleHRfc2V0X2lnbm9yZV90bHMoY29udGV4dCwgZmFsc2UpOworCisgICAg
R1Rsc0NlcnRpZmljYXRlKiBUTFNDZXJ0aWZpY2F0ZSA9IGdldENlcnRpZmljYXRlKCk7CisKKyAg
ICBpZiAoIVRMU0NlcnRpZmljYXRlKQorICAgICAgICBGQUlMKCk7CisKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8RVdLMlVuaXRUZXN0U2VydmVyPiBodHRwc1NlcnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8
RVdLMlVuaXRUZXN0U2VydmVyPihUTFNDZXJ0aWZpY2F0ZSk7CisgICAgaHR0cHNTZXJ2ZXItPnJ1
bihzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRlc3QpOworCisgICAgRXdrX0Vycm9yKiBl
cnJvciA9IDA7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwg
ImxvYWQscHJvdmlzaW9uYWwsZmFpbGVkIiwgb25Mb2FkUHJvdmlzaW9uYWxGYWlsZWREb250SWdu
b3JlLCAmZXJyb3IpOworCisgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQsZmluaXNoZWQiLCBvbkxv
YWRGaW5pc2hlZERvbnRJZ25vcmUsICZpc0ZpbmlzaGVkKTsKKworICAgIGV3a192aWV3X3VybF9z
ZXQod2ViVmlldygpLCBodHRwc1NlcnZlci0+Z2V0VVJMRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5k
YXRhKCkpOworCisgICAgd2FpdFVudGlsVHJ1ZShmaW5pc2hfdGVzdCwgdGVzdFRpbWVvdXRTZWNv
bmRzKTsKK30K
</data>
<flag name="review"
          id="250067"
          type_id="1"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225990</attachid>
            <date>2014-03-06 07:28:23 -0800</date>
            <delta_ts>2014-03-07 05:59:30 -0800</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-fixed.patch</filename>
            <type>text/plain</type>
            <size>13783</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNDc1ZTBhLi43ZmRlMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTQtMDMtMDUgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgV0syIEFQSSB0byBjb250cm9sIFRMUyBl
cnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFkZGVkIHRo
ZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMpOgorICAgICAg
ICAoZXdrX2NvbnRleHRfc2V0X2lnbm9yZV90bHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfcHJpdmF0ZS5oOgorICAgICAgICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2Vy
dmVyLmNwcDoKKyAgICAgICAgKEVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJV
bml0VGVzdFNlcnZlci5oOgorICAgICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0
byBoYW5kbGUgVExTLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9l
d2syX3NzbC5jcHA6CisgICAgICAgIEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5
IEFQSS4KKwogMjAxNC0wMy0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkIGFmdGVyIHIxNjUwOTUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UKaW5kZXggZjk2MjVkOS4uOTcwYmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTQ2NSw2ICs0NjUsNyBAQCBzZXQoRVdLMlVuaXRUZXN0c19CSU5BUklFUwogICAgIHRl
c3RfZXdrMl9wb3B1cF9tZW51CiAgICAgdGVzdF9ld2syX3JlZnB0cl9ldmFzX29iamVjdAogICAg
IHRlc3RfZXdrMl9zZXR0aW5ncworICAgIHRlc3RfZXdrMl9zc2wKICAgICB0ZXN0X2V3azJfc3Rv
cmFnZV9tYW5hZ2VyCiAgICAgdGVzdF9ld2syX3RleHRfY2hlY2tlcgogICAgIHRlc3RfZXdrMl92
aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5j
cHAKaW5kZXggYTQ1NWI3YS4uNGFkY2NlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtMzU0LDYgKzM1NCwxMSBAQCB2b2lkIEV3
a0NvbnRleHQ6OnByb2Nlc3NSZWNlaXZlZE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbQogICAgICAgICBtX2NhbGxiYWNrRm9yTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZS5jYWxsYmFjayhuYW1lLmRhdGEoKSwgYm9keS5kYXRhKCksIG51bGxwdHIsIG1fY2Fs
bGJhY2tGb3JNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLnVzZXJEYXRhKTsKIH0KIAordm9pZCBF
d2tDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCit7Cisg
ICAgdG9JbXBsKG1fY29udGV4dC5nZXQoKSktPnNldElnbm9yZVRMU0Vycm9ycyhpZ25vcmVUTFNF
cnJvcnMpOworfQorCiBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQoKQogewog
ICAgIHJldHVybiBFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpOwpAQCAtNDUyLDMgKzQ1Nyw5
IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVzc2FnZV9mcm9tX2luamVjdGVkX2J1bmRsZV9jYWxsYmFj
a19zZXQoRXdrX0NvbnRleHQqIGV3a0NvbnRlCiAKICAgICBpbXBsLT5zZXRNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlQ2FsbGJhY2soY2FsbGJhY2ssIHVzZXJEYXRhKTsKIH0KKwordm9pZCBld2tf
Y29udGV4dF9pZ25vcmVfdGxzX3NldChFd2tfQ29udGV4dCAqZXdrQ29udGV4dCwgRWluYV9Cb29s
IGlnbm9yZV90bHNfZXJyb3JzKQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKEV3
a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGwpOworICAgIGltcGwtPnNldElnbm9yZVRMU0Vycm9y
cyhpZ25vcmVfdGxzX2Vycm9ycyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2NvbnRleHQuaAppbmRleCAxM2IxNmQzLi45OWQ4ZTVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAgLTM1Miw2ICszNTIs
MTQgQEAgRUFQSSB2b2lkIGV3a19jb250ZXh0X21lc3NhZ2VfcG9zdF90b19pbmplY3RlZF9idW5k
bGUoRXdrX0NvbnRleHQgKmNvbnRleHQsIGNvbnMKICAqLwogRUFQSSB2b2lkIGV3a19jb250ZXh0
X21lc3NhZ2VfZnJvbV9pbmplY3RlZF9idW5kbGVfY2FsbGJhY2tfc2V0KEV3a19Db250ZXh0ICpj
b250ZXh0LCBFd2tfQ29udGV4dF9NZXNzYWdlX0Zyb21fSW5qZWN0ZWRfQnVuZGxlX0NiIGNhbGxi
YWNrLCB2b2lkICp1c2VyX2RhdGEpOwogCisvKioKKyAqIFNldHMgVExTIGVycm9yIHBvbGljeSBm
b3IgQGEgY29udGV4dC4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBz
ZXQgVExTIGVycm9yIHBvbGljeSBmb3IuCisgKiBAcGFyYW0gaWdub3JlX3Rsc19lcnJvcnMgQGMg
RUlOQV9UUlVFIGlmIFRMUyBlcnJvcnMgc2hvdWxkIGJlIGlnbm9yZWQsIEBjIEVJTkFfRkFMU0Ug
b3RoZXJ3aXNlLgorICovCitFQVBJIHZvaWQgZXdrX2NvbnRleHRfaWdub3JlX3Rsc19zZXQoRXdr
X0NvbnRleHQgKmV3a0NvbnRleHQsIEVpbmFfQm9vbCBpZ25vcmVfdGxzX2Vycm9ycyk7CisKICNp
ZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggZmUzMzE0OS4uMjc3
NmQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb250ZXh0X3ByaXZhdGUuaApAQCAtODAsNiArODAsOCBAQCBwdWJsaWM6CiAKICAgICBXZWJL
aXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKiBoaXN0b3J5Q2xpZW50KCk7CiAKKyAgICB2b2lk
IHNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycyk7CisKICNpZiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB2b2lkIHNldEFkZGl0aW9uYWxQbHVnaW5QYXRoKGNv
bnN0IFN0cmluZyYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJV
bml0VGVzdFNlcnZlci5jcHAKaW5kZXggNGVmNGNmNy4uY2RiYjkyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5p
dFRlc3RTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcApAQCAtMjEsMTMgKzIxLDIy
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRVdLMlVuaXRUZXN0U2VydmVyLmgi
CiAKLUVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKCkKK0VXSzJVbml0VGVz
dFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKEdUbHNDZXJ0aWZpY2F0ZSogdGxzQ2VydCkKIHsK
ICAgICBTb3VwQWRkcmVzcyogYWRkcmVzcyA9IHNvdXBfYWRkcmVzc19uZXcoIjEyNy4wLjAuMSIs
IFNPVVBfQUREUkVTU19BTllfUE9SVCk7CiAgICAgc291cF9hZGRyZXNzX3Jlc29sdmVfc3luYyhh
ZGRyZXNzLCAwKTsKIAotICAgIG1fc291cFNlcnZlciA9IHNvdXBfc2VydmVyX25ldyhTT1VQX1NF
UlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0PGNoYXIqPigwKSk7Ci0gICAgbV9i
YXNlVVJMID0gc291cF91cmlfbmV3KCJodHRwOi8vMTI3LjAuMC4xLyIpOworICAgIGlmICh0bHND
ZXJ0KSB7CisgICAgICAgIG1fc291cFNlcnZlciA9IHNvdXBfc2VydmVyX25ldygKKyAgICAgICAg
ICAgIFNPVVBfU0VSVkVSX1RMU19DRVJUSUZJQ0FURSwgdGxzQ2VydCwKKyAgICAgICAgICAgIFNP
VVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRkcmVzcywgc3RhdGljX2Nhc3Q8Y2hhcio+KDApKTsKKwor
ICAgICAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0dHBzOi8vMTI3LjAuMC4xLyIpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIG1fc291cFNlcnZlciA9IHNvdXBfc2VydmVyX25ldyhTT1VQ
X1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0PGNoYXIqPigwKSk7CisgICAg
ICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJpX25ldygiaHR0cDovLzEyNy4wLjAuMS8iKTsKKyAgICB9
CisKICAgICBzb3VwX3VyaV9zZXRfcG9ydChtX2Jhc2VVUkwsIHNvdXBfc2VydmVyX2dldF9wb3J0
KG1fc291cFNlcnZlcikpOwogICAgIGdfb2JqZWN0X3VucmVmKGFkZHJlc3MpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGls
cy9FV0syVW5pdFRlc3RTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgKaW5kZXggYjk2N2NlNC4u
Yjg1YjFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVz
dHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZl
ci5oCkBAIC0yNiw3ICsyNiw3IEBACiAKIGNsYXNzIEVXSzJVbml0VGVzdFNlcnZlciB7CiBwdWJs
aWM6Ci0gICAgRVdLMlVuaXRUZXN0U2VydmVyKCk7CisgICAgRVdLMlVuaXRUZXN0U2VydmVyKEdU
bHNDZXJ0aWZpY2F0ZSogdGxzQ2VydCA9IG51bGxwdHIpOwogICAgIHZpcnR1YWwgfkVXSzJVbml0
VGVzdFNlcnZlcigpOwogCiAgICAgQ1N0cmluZyBnZXRVUkxGb3JQYXRoKGNvbnN0IGNoYXIqIHBh
dGgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
dGVzdHMvdGVzdF9ld2syX3NzbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC90ZXN0cy90ZXN0X2V3azJfc3NsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hZDI1OWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAKQEAgLTAsMCArMSwxODcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk
ZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmgiCisjaW5jbHVkZSAiVW5pdFRlc3RV
dGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIEVXSzJVbml0VGVz
dDsKKworZXh0ZXJuIEVXSzJVbml0VGVzdEVudmlyb25tZW50KiBlbnZpcm9ubWVudDsKKworc3Rh
dGljIGNvbnN0IGNoYXIgaW5kZXhIVE1MU3RyaW5nW10gPQorICAgICI8aHRtbD4iCisgICAgIjxo
ZWFkPjx0aXRsZT5FRkxXZWJLaXQyIFNTTCB0ZXN0PC90aXRsZT48L2hlYWQ+IgorICAgICI8Ym9k
eT48L2JvZHk+PC9odG1sPiI7CisKK3N0YXRpYyBib29sIGZpbmlzaFRlc3QgPSBmYWxzZTsKK3N0
YXRpYyBjb25zdGV4cHIgZG91YmxlIHRlc3RUaW1lb3V0U2Vjb25kcyA9IDIuMDsKKworI2RlZmlu
ZSBTVFJJTkdJRlkyKHgpICN4CisjZGVmaW5lIFNUUklOR0lGWSh4KSBTVFJJTkdJRlkyKHgpCisK
K3N0YXRpYyBjb25zdCBnY2hhciBjZXJ0aWZpY2F0ZV9kYXRhW10gPSBTVFJJTkdJRlkoLS0tLS1C
RUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQorTUlJQ1hRSUJBQUtCZ1FDbWNYYnVzcnI4elFyOHNu
SWIwT1ZRaWJWZmd2N3pQamgvNXhkY3JLT2VqSnpwM2VwQQorQUY0VElUZUZSOXZ6V0l3a21rY1Jv
WStJYlFOaGg3a2VmR1VZRDQ3YnZWYW1KTXRxNWNHWVZzMEhuZ1QrS1RNYQorTkdIL0c0NEtrRklP
YXovYjVkL0pOS09Ocmxxd3hxWFMrbTZJWTRsL0UxRmYyNVpqTkQ1VGFFdkkxd0lEQVFBQgorQW9H
QkFJY0R2NEE5aDZVT0J2MlpHeXNwTnZzdjJlclNibEdPaFhKcldPNGFOTmVtSkpzcElwNHNMaVBD
YkRFMworYTFwbzE3WFJXQmtiUHoxaGdMNmF4RFhRbm9lbysrZWJmcnZSU2VkK0Z5czQrNlN2dVNy
UE92NlBtV1RCVC9XYQorR3BPK3R2NDhKVU54Qy9EeThST2l4QlhPVml1SUJFRnEzTmZWSDRIVTMr
UkcyME5oQWtFQTFMM1JBaGRmUGtMSQorODJsdVNPWUUzRXE0NGxJQ2IveVppK0pFaWh3U2VaVEpL
ZFpId1lEOEtWQ2pPdGpHck9teUV5dlRocmNJQUNRegorSkxFcmVWaDMzd0pCQU1oSm05cHpKSk5r
SXlCZ2lYQTY2RkF3YmhkRHpTVFB4ME9Cam9WV29qNnU3anpHdklGVAorQ24xYWlUQll6enNpTUNh
Q3grVzNlNnBLL0RjdkhTd0tyZ2tDUUhaTWN4d0JtU0hMQzJsbm1EOExRV3FxVm5McgorZlpWK1Zu
ZlZ3NTAxRFFUMHVvUDhOdnlnV0JnMVVmOVlLZXBmTFhuQnBpZEVRanVwNVpLaXZuVUV2K3NDUUE4
TgorNlZjTUhJMnZreXhWMVQ3SVRybm9TZjRackl1OXlsNTZtSG5SUHpTeTlWbEFIdDhobk1JN1Vl
QitiR1VuZHJNTworVlhRZ3pIektVaGJieGJlUHZmRUNRUURUdGtPdWhKeUtEZkhDeExEY3dOcGkr
VDZPV1RFZkN3L2NxOVpXRGJBNworeUNYODFwUXhmWmtmTUlTMVlGSU9HSG92SzByTU1UcmFDZStp
RE5ZdFZ6L0wKKy0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCistLS0tLUJFR0lOIENFUlRJ
RklDQVRFLS0tLS0KK01JSUI5ekNDQVdBQ0NRRGpXV1RlQzZCUXZUQU5CZ2txaGtpRzl3MEJBUVFG
QURCQU1Rc3dDUVlEVlFRR0V3SkIKK1ZURVRNQkVHQTFVRUNCTUtVMjl0WlMxVGRHRjBaVEVjTUJv
R0ExVUVDaE1UVjJWaVMybDBJRXhoZVc5MWRDQlUKK1pYTjBjekFlRncwd056QTNNVE14TWpVeE16
SmFGdzAzTVRBMU1UTXdOakl6TVRaYU1FQXhDekFKQmdOVkJBWVQKK0FrRlZNUk13RVFZRFZRUUlF
d3BUYjIxbExWTjBZWFJsTVJ3d0dnWURWUVFLRXhOWFpXSkxhWFFnVEdGNWIzVjAKK0lGUmxjM1J6
TUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDbWNYYnVzcnI4elFyOHNuSWIK
KzBPVlFpYlZmZ3Y3elBqaC81eGRjcktPZWpKenAzZXBBQUY0VElUZUZSOXZ6V0l3a21rY1JvWStJ
YlFOaGg3a2UKK2ZHVVlENDdidlZhbUpNdHE1Y0dZVnMwSG5nVCtLVE1hTkdIL0c0NEtrRklPYXov
YjVkL0pOS09Ocmxxd3hxWFMKKyttNklZNGwvRTFGZjI1WmpORDVUYUV2STF3SURBUUFCTUEwR0NT
cUdTSWIzRFFFQkJBVUFBNEdCQUFmYlViZ0QKKzAxTzhEb1pBMDJjMU1VTWJNSFJQU2IvcWRvazJw
eVdvQ1BhL0JTYU9JYU5QZVBjOGF1UFJiclMyWHNWV1NNZnQKK0NUWGlYbXJLMlh4MStmSnVaTEFw
MENVbmc0RGU0Y0RINWM4bnZsb2NZbVhvKzF4NTNTOURmRDBLUHJ5akJSSTcKKzlMbkpxMnlzSEFV
YXdpcUZYbHdCYWc2bVhhd0Q4WWp6Y1lhdAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLSk7CisK
K2NsYXNzIEVXSzJTU0xUZXN0IDogcHVibGljIEVXSzJVbml0VGVzdEJhc2UgeworcHVibGljOgor
CisgICAgc3RhdGljIHZvaWQgb25Mb2FkUHJvdmlzaW9uYWxGYWlsZWREb250SWdub3JlKHZvaWQq
IHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKKyAgICB7CisgICAgICAg
IGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICBBU1NFUlRfVFJVRShld2tfZXJyb3JfY29kZV9n
ZXQoc3RhdGljX2Nhc3Q8RXdrX0Vycm9yKj4oZXZlbnRJbmZvKSkgPT0gU09VUF9TVEFUVVNfU1NM
X0ZBSUxFRCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWREb250SWdu
b3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqKQorICAgIHsKKyAgICAgICAg
Ym9vbCogaXNGaW5pc2hlZCA9IHN0YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAg
IGlmIChpc0ZpbmlzaGVkKSB7CisgICAgICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAg
ICAgICAgIEZBSUwoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9h
ZFByb3Zpc2lvbmFsRmFpbGVkSWdub3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZv
aWQqIGV2ZW50SW5mbykKKyAgICB7CisgICAgICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAg
ICBpZiAoZXdrX2Vycm9yX2NvZGVfZ2V0KHN0YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5m
bykpID09IFNPVVBfU1RBVFVTX1NTTF9GQUlMRUQpCisgICAgICAgICAgICBGQUlMKCk7CisgICAg
fQorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWRJZ25vcmUodm9pZCogdXNlckRhdGEs
IEV2YXNfT2JqZWN0Kiwgdm9pZCopCisgICAgeworICAgICAgICBib29sKiBpc0ZpbmlzaGVkID0g
c3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsKKyAgICAgICAgZmluaXNoVGVzdCA9IHRydWU7
CisgICAgICAgIEFTU0VSVF9UUlVFKGlzRmluaXNoZWQpOworICAgIH0KKworICAgIHN0YXRpYyB2
b2lkIHNlcnZlckNhbGxiYWNrQmFkQ2VydFBhZ2VMb2FkVGVzdChTb3VwU2VydmVyKiwgU291cE1l
c3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50
Q29udGV4dCosIHZvaWQqKQorICAgIHsKKyAgICAgICAgaWYgKG1lc3NhZ2UtPm1ldGhvZCAhPSBT
T1VQX01FVEhPRF9HRVQpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1l
c3NhZ2UsIFNPVVBfU1RBVFVTX05PVF9JTVBMRU1FTlRFRCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXN0cmNtcChwYXRoLCAiL2luZGV4Lmh0bWwiKSkg
eworICAgICAgICAgICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFU
VVNfT0spOworICAgICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJl
c3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZX0NPUFksIGluZGV4SFRNTFN0cmluZywgc3RybGVuKGlu
ZGV4SFRNTFN0cmluZykpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHNvdXBfbWVzc2Fn
ZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX05PVF9GT1VORCk7CisKKyAgICAgICAg
c291cF9tZXNzYWdlX2JvZHlfY29tcGxldGUobWVzc2FnZS0+cmVzcG9uc2VfYm9keSk7CisgICAg
fQorfTsKKworc3RhdGljIEdUbHNDZXJ0aWZpY2F0ZSogZ2V0Q2VydGlmaWNhdGUoKQoreworICAg
IEdFcnJvcioqIGdlcnJvcjsKKyAgICBHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlID0gZ190
bHNfY2VydGlmaWNhdGVfbmV3X2Zyb21fcGVtKAorICAgICAgICBjZXJ0aWZpY2F0ZV9kYXRhLCBz
aXplb2YoY2VydGlmaWNhdGVfZGF0YSksIGdlcnJvcik7CisKKyAgICBpZiAoIWNlcnRpZmljYXRl
KQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBjcmVhdGUgY2VydGlmaWNhdGUg
ZnJvbSBQRU1cbiIpOworCisgICAgcmV0dXJuIGNlcnRpZmljYXRlOworfQorCitURVNUX0YoRVdL
MlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rlc3RfaWdub3JlX2Vycm9ycykK
K3sKKyAgICBmaW5pc2hUZXN0ID0gZmFsc2U7CisKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9
IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7CisgICAgZXdrX2NvbnRleHRfaWdub3Jl
X3Rsc19zZXQoY29udGV4dCwgdHJ1ZSk7CisKKyAgICBHVGxzQ2VydGlmaWNhdGUqIFRMU0NlcnRp
ZmljYXRlID0gZ2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICghVExTQ2VydGlmaWNhdGUpCisg
ICAgICAgIEZBSUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFV0syVW5pdFRlc3RTZXJ2ZXI+
IGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5pdFRlc3RTZXJ2ZXI+KFRMU0Nl
cnRpZmljYXRlKTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZlckNhbGxiYWNrQmFkQ2VydFBh
Z2VMb2FkVGVzdCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0gbnVsbHB0cjsKKyAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxwcm92aXNpb25hbCxm
YWlsZWQiLCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZElnbm9yZSwgJmVycm9yKTsKKworICAgIGJv
b2wgaXNGaW5pc2hlZCA9IGZhbHNlOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZCh3ZWJWaWV3KCksICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmluaXNoZWRJZ25vcmUsICZpc0Zp
bmlzaGVkKTsKKworICAgIGV3a192aWV3X3VybF9zZXQod2ViVmlldygpLCBodHRwc1NlcnZlci0+
Z2V0VVJMRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOworCisgICAgd2FpdFVudGlsVHJ1
ZShmaW5pc2hUZXN0LCB0ZXN0VGltZW91dFNlY29uZHMpOworfQorCitURVNUX0YoRVdLMlNTTFRl
c3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rlc3RfZG9udF9pZ25vcmVfZXJyb3JzKQor
eworICAgIGZpbmlzaFRlc3QgPSBmYWxzZTsKKworICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0g
ZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsKKyAgICBld2tfY29udGV4dF9pZ25vcmVf
dGxzX3NldChjb250ZXh0LCBmYWxzZSk7CisKKyAgICBHVGxzQ2VydGlmaWNhdGUqIFRMU0NlcnRp
ZmljYXRlID0gZ2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICghVExTQ2VydGlmaWNhdGUpCisg
ICAgICAgIEZBSUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFV0syVW5pdFRlc3RTZXJ2ZXI+
IGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5pdFRlc3RTZXJ2ZXI+KFRMU0Nl
cnRpZmljYXRlKTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZlckNhbGxiYWNrQmFkQ2VydFBh
Z2VMb2FkVGVzdCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0gbnVsbHB0cjsKKyAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxwcm92aXNpb25hbCxm
YWlsZWQiLCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZERvbnRJZ25vcmUsICZlcnJvcik7CisKKyAg
ICBib29sIGlzRmluaXNoZWQgPSBmYWxzZTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQod2ViVmlldygpLCAibG9hZCxmaW5pc2hlZCIsIG9uTG9hZEZpbmlzaGVkRG9udElnbm9y
ZSwgJmlzRmluaXNoZWQpOworCisgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIGh0dHBz
U2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CisKKyAgICB3YWl0
VW50aWxUcnVlKGZpbmlzaFRlc3QsIHRlc3RUaW1lb3V0U2Vjb25kcyk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226121</attachid>
            <date>2014-03-07 05:59:30 -0800</date>
            <delta_ts>2014-03-10 03:22:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v3.patch</filename>
            <type>text/plain</type>
            <size>14497</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNDc1ZTBhLi45Mzg2MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMDcgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgV0syIEFQSSB0byBjb250cm9sIFRMUyBl
cnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFkZGVkIHRo
ZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAgICAgICAo
RXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250ZXh0X2ln
bm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVfdGxzX2Vy
cm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgorICAgICAg
ICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAgICAgKEVX
SzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oOgorICAg
ICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6CisgICAgICAg
IEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0wMy0wNCAg
QmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhl
IGJ1aWxkIGFmdGVyIHIxNjUwOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZjk2MjVk
OS4uOTcwYmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTQ2NSw2ICs0NjUsNyBA
QCBzZXQoRVdLMlVuaXRUZXN0c19CSU5BUklFUwogICAgIHRlc3RfZXdrMl9wb3B1cF9tZW51CiAg
ICAgdGVzdF9ld2syX3JlZnB0cl9ldmFzX29iamVjdAogICAgIHRlc3RfZXdrMl9zZXR0aW5ncwor
ICAgIHRlc3RfZXdrMl9zc2wKICAgICB0ZXN0X2V3azJfc3RvcmFnZV9tYW5hZ2VyCiAgICAgdGVz
dF9ld2syX3RleHRfY2hlY2tlcgogICAgIHRlc3RfZXdrMl92aWV3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKaW5kZXggYTQ1NWI3YS4uNjZh
ODA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0LmNwcApAQCAtMzU0LDYgKzM1NCwxNiBAQCB2b2lkIEV3a0NvbnRleHQ6OnByb2Nlc3NSZWNl
aXZlZE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbQogICAg
ICAgICBtX2NhbGxiYWNrRm9yTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZS5jYWxsYmFjayhuYW1l
LmRhdGEoKSwgYm9keS5kYXRhKCksIG51bGxwdHIsIG1fY2FsbGJhY2tGb3JNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlLnVzZXJEYXRhKTsKIH0KIAorYm9vbCBFd2tDb250ZXh0OjppZ25vcmVUTFNF
cnJvcnMoKQoreworICAgIHJldHVybiB0b0ltcGwobV9jb250ZXh0LmdldCgpKS0+aWdub3JlVExT
RXJyb3JzKCk7Cit9CisKK3ZvaWQgRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKGJvb2wg
aWdub3JlVExTRXJyb3JzKQoreworICAgIHRvSW1wbChtX2NvbnRleHQuZ2V0KCkpLT5zZXRJZ25v
cmVUTFNFcnJvcnMoaWdub3JlVExTRXJyb3JzKTsKK30KKwogRXdrX0NvbnRleHQqIGV3a19jb250
ZXh0X2RlZmF1bHRfZ2V0KCkKIHsKICAgICByZXR1cm4gRXdrQ29udGV4dDo6ZGVmYXVsdENvbnRl
eHQoKTsKQEAgLTQ1MiwzICs0NjIsMTYgQEAgdm9pZCBld2tfY29udGV4dF9tZXNzYWdlX2Zyb21f
aW5qZWN0ZWRfYnVuZGxlX2NhbGxiYWNrX3NldChFd2tfQ29udGV4dCogZXdrQ29udGUKIAogICAg
IGltcGwtPnNldE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjayhjYWxsYmFjaywgdXNl
ckRhdGEpOwogfQorCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRfaWdub3JlX3Rsc19lcnJvcnNfZ2V0
KEV3a19Db250ZXh0ICpld2tDb250ZXh0KQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVU
VVJOKEV3a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGwsIGZhbHNlKTsKKworICAgIHJldHVybiBp
bXBsLT5pZ25vcmVUTFNFcnJvcnMoKTsKK30KKwordm9pZCBld2tfY29udGV4dF9pZ25vcmVfdGxz
X2Vycm9yc19zZXQoRXdrX0NvbnRleHQgKmV3a0NvbnRleHQsIEVpbmFfQm9vbCBpZ25vcmVfdGxz
X2Vycm9ycykKK3sKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihFd2tDb250ZXh0LCBl
d2tDb250ZXh0LCBpbXBsKTsKKyAgICBpbXBsLT5zZXRJZ25vcmVUTFNFcnJvcnMoaWdub3JlX3Rs
c19lcnJvcnMpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0LmgKaW5kZXggMTNiMTZkMy4uMjZiNDE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCkBAIC0zNTIsNiArMzUyLDIzIEBAIEVBUEkg
dm9pZCBld2tfY29udGV4dF9tZXNzYWdlX3Bvc3RfdG9faW5qZWN0ZWRfYnVuZGxlKEV3a19Db250
ZXh0ICpjb250ZXh0LCBjb25zCiAgKi8KIEVBUEkgdm9pZCBld2tfY29udGV4dF9tZXNzYWdlX2Zy
b21faW5qZWN0ZWRfYnVuZGxlX2NhbGxiYWNrX3NldChFd2tfQ29udGV4dCAqY29udGV4dCwgRXdr
X0NvbnRleHRfTWVzc2FnZV9Gcm9tX0luamVjdGVkX0J1bmRsZV9DYiBjYWxsYmFjaywgdm9pZCAq
dXNlcl9kYXRhKTsKIAorLyoqCisgKiBHZXRzIFRMUyBlcnJvciBwb2xpY3kgZm9yIEBhIGNvbnRl
eHQuCisgKgorICogQHBhcmFtIGNvbnRleHQgY29udGV4dCBvYmplY3QgdG8gZ2V0IFRMUyBlcnJv
ciBwb2xpY3kgZm9yLgorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIFRMUyBlcnJvcnMg
YXJlIGlnbm9yZWQsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlLgorICovCitFaW5hX0Jvb2wgZXdr
X2NvbnRleHRfaWdub3JlX3Rsc19lcnJvcnNfZ2V0KEV3a19Db250ZXh0ICpld2tDb250ZXh0KTsK
KworLyoqCisgKiBTZXRzIFRMUyBlcnJvciBwb2xpY3kgZm9yIEBhIGNvbnRleHQuCisgKgorICog
QHBhcmFtIGNvbnRleHQgY29udGV4dCBvYmplY3QgdG8gc2V0IFRMUyBlcnJvciBwb2xpY3kgZm9y
LgorICogQHBhcmFtIGlnbm9yZV90bHNfZXJyb3JzIEBjIEVJTkFfVFJVRSBpZiBUTFMgZXJyb3Jz
IHNob3VsZCBiZSBpZ25vcmVkLCBAYyBFSU5BX0ZBTFNFIG90aGVyd2lzZS4KKyAqLworRUFQSSB2
b2lkIGV3a19jb250ZXh0X2lnbm9yZV90bHNfZXJyb3JzX3NldChFd2tfQ29udGV4dCAqZXdrQ29u
dGV4dCwgRWluYV9Cb29sIGlnbm9yZV90bHNfZXJyb3JzKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVz
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0X3ByaXZhdGUuaAppbmRleCBmZTMzMTQ5Li44ZDBhMThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0
ZS5oCkBAIC04MCw2ICs4MCwxMCBAQCBwdWJsaWM6CiAKICAgICBXZWJLaXQ6OkNvbnRleHRIaXN0
b3J5Q2xpZW50RWZsKiBoaXN0b3J5Q2xpZW50KCk7CiAKKyAgICBib29sIGlnbm9yZVRMU0Vycm9y
cygpOworCisgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMp
OworCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBzZXRBZGRpdGlv
bmFsUGx1Z2luUGF0aChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRl
c3RTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5p
dFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDRlZjRjZjcuLmNkYmI5Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRU
ZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAK
QEAgLTIxLDEzICsyMSwyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVXSzJV
bml0VGVzdFNlcnZlci5oIgogCi1FV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZl
cigpCitFV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZlcihHVGxzQ2VydGlmaWNh
dGUqIHRsc0NlcnQpCiB7CiAgICAgU291cEFkZHJlc3MqIGFkZHJlc3MgPSBzb3VwX2FkZHJlc3Nf
bmV3KCIxMjcuMC4wLjEiLCBTT1VQX0FERFJFU1NfQU5ZX1BPUlQpOwogICAgIHNvdXBfYWRkcmVz
c19yZXNvbHZlX3N5bmMoYWRkcmVzcywgMCk7CiAKLSAgICBtX3NvdXBTZXJ2ZXIgPSBzb3VwX3Nl
cnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxjaGFy
Kj4oMCkpOwotICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJpX25ldygiaHR0cDovLzEyNy4wLjAuMS8i
KTsKKyAgICBpZiAodGxzQ2VydCkgeworICAgICAgICBtX3NvdXBTZXJ2ZXIgPSBzb3VwX3NlcnZl
cl9uZXcoCisgICAgICAgICAgICBTT1VQX1NFUlZFUl9UTFNfQ0VSVElGSUNBVEUsIHRsc0NlcnQs
CisgICAgICAgICAgICBTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0
PGNoYXIqPigwKSk7CisKKyAgICAgICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJodHRwczov
LzEyNy4wLjAuMS8iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3NvdXBTZXJ2ZXIgPSBzb3Vw
X3NlcnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxj
aGFyKj4oMCkpOworICAgICAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0dHA6Ly8xMjcu
MC4wLjEvIik7CisgICAgfQorCiAgICAgc291cF91cmlfc2V0X3BvcnQobV9iYXNlVVJMLCBzb3Vw
X3NlcnZlcl9nZXRfcG9ydChtX3NvdXBTZXJ2ZXIpKTsKICAgICBnX29iamVjdF91bnJlZihhZGRy
ZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
CmluZGV4IGI5NjdjZTQuLmI4NWIxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9F
V0syVW5pdFRlc3RTZXJ2ZXIuaApAQCAtMjYsNyArMjYsNyBAQAogCiBjbGFzcyBFV0syVW5pdFRl
c3RTZXJ2ZXIgewogcHVibGljOgotICAgIEVXSzJVbml0VGVzdFNlcnZlcigpOworICAgIEVXSzJV
bml0VGVzdFNlcnZlcihHVGxzQ2VydGlmaWNhdGUqIHRsc0NlcnQgPSBudWxscHRyKTsKICAgICB2
aXJ0dWFsIH5FV0syVW5pdFRlc3RTZXJ2ZXIoKTsKIAogICAgIENTdHJpbmcgZ2V0VVJMRm9yUGF0
aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNTUwYWUwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwCkBAIC0wLDAg
KzEsMTg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3Mu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgVW5pdmVyc2l0eSBv
ZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5oIgorI2lu
Y2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBFV0syVW5pdFRlc3Q7CisKK2V4dGVybiBFV0syVW5pdFRlc3RFbnZpcm9ubWVudCogZW52
aXJvbm1lbnQ7CisKK3N0YXRpYyBjb25zdCBjaGFyIGluZGV4SFRNTFN0cmluZ1tdID0KKyAgICAi
PGh0bWw+IgorICAgICI8aGVhZD48dGl0bGU+RUZMV2ViS2l0MiBTU0wgdGVzdDwvdGl0bGU+PC9o
ZWFkPiIKKyAgICAiPGJvZHk+PC9ib2R5PjwvaHRtbD4iOworCitzdGF0aWMgYm9vbCBmaW5pc2hU
ZXN0ID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSB0ZXN0VGltZW91dFNlY29uZHMg
PSAyLjA7CisKKyNkZWZpbmUgU1RSSU5HSUZZMih4KSAjeAorI2RlZmluZSBTVFJJTkdJRlkoeCkg
U1RSSU5HSUZZMih4KQorCitzdGF0aWMgY29uc3QgZ2NoYXIgY2VydGlmaWNhdGVfZGF0YVtdID0g
U1RSSU5HSUZZKC0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KK01JSUNYUUlCQUFLQmdR
Q21jWGJ1c3JyOHpRcjhzbkliME9WUWliVmZndjd6UGpoLzV4ZGNyS09lakp6cDNlcEEKK0FGNFRJ
VGVGUjl2eldJd2tta2NSb1krSWJRTmhoN2tlZkdVWUQ0N2J2VmFtSk10cTVjR1lWczBIbmdUK0tU
TWEKK05HSC9HNDRLa0ZJT2F6L2I1ZC9KTktPTnJscXd4cVhTK202SVk0bC9FMUZmMjVaak5ENVRh
RXZJMXdJREFRQUIKK0FvR0JBSWNEdjRBOWg2VU9CdjJaR3lzcE52c3YyZXJTYmxHT2hYSnJXTzRh
Tk5lbUpKc3BJcDRzTGlQQ2JERTMKK2ExcG8xN1hSV0JrYlB6MWhnTDZheERYUW5vZW8rK2ViZnJ2
UlNlZCtGeXM0KzZTdnVTclBPdjZQbVdUQlQvV2EKK0dwTyt0djQ4SlVOeEMvRHk4Uk9peEJYT1Zp
dUlCRUZxM05mVkg0SFUzK1JHMjBOaEFrRUExTDNSQWhkZlBrTEkKKzgybHVTT1lFM0VxNDRsSUNi
L3laaStKRWlod1NlWlRKS2RaSHdZRDhLVkNqT3RqR3JPbXlFeXZUaHJjSUFDUXoKK0pMRXJlVmgz
M3dKQkFNaEptOXB6SkpOa0l5QmdpWEE2NkZBd2JoZER6U1RQeDBPQmpvVldvajZ1N2p6R3ZJRlQK
K0NuMWFpVEJZenpzaU1DYUN4K1czZTZwSy9EY3ZIU3dLcmdrQ1FIWk1jeHdCbVNITEMybG5tRDhM
UVdxcVZuTHIKK2ZaVitWbmZWdzUwMURRVDB1b1A4TnZ5Z1dCZzFVZjlZS2VwZkxYbkJwaWRFUWp1
cDVaS2l2blVFditzQ1FBOE4KKzZWY01ISTJ2a3l4VjFUN0lUcm5vU2Y0WnJJdTl5bDU2bUhuUlB6
U3k5VmxBSHQ4aG5NSTdVZUIrYkdVbmRyTU8KK1ZYUWd6SHpLVWhiYnhiZVB2ZkVDUVFEVHRrT3Vo
SnlLRGZIQ3hMRGN3TnBpK1Q2T1dURWZDdy9jcTlaV0RiQTcKK3lDWDgxcFF4ZlprZk1JUzFZRklP
R0hvdkswck1NVHJhQ2UraUROWXRWei9MCistLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQor
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlCOXpDQ0FXQUNDUURqV1dUZUM2QlF2VEFO
QmdrcWhraUc5dzBCQVFRRkFEQkFNUXN3Q1FZRFZRUUdFd0pCCitWVEVUTUJFR0ExVUVDQk1LVTI5
dFpTMVRkR0YwWlRFY01Cb0dBMVVFQ2hNVFYyVmlTMmwwSUV4aGVXOTFkQ0JVCitaWE4wY3pBZUZ3
MHdOekEzTVRNeE1qVXhNekphRncwM01UQTFNVE13TmpJek1UWmFNRUF4Q3pBSkJnTlZCQVlUCitB
a0ZWTVJNd0VRWURWUVFJRXdwVGIyMWxMVk4wWVhSbE1Sd3dHZ1lEVlFRS0V4TlhaV0pMYVhRZ1RH
RjViM1YwCitJRlJsYzNSek1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdRQ21j
WGJ1c3JyOHpRcjhzbkliCiswT1ZRaWJWZmd2N3pQamgvNXhkY3JLT2VqSnpwM2VwQUFGNFRJVGVG
Ujl2eldJd2tta2NSb1krSWJRTmhoN2tlCitmR1VZRDQ3YnZWYW1KTXRxNWNHWVZzMEhuZ1QrS1RN
YU5HSC9HNDRLa0ZJT2F6L2I1ZC9KTktPTnJscXd4cVhTCisrbTZJWTRsL0UxRmYyNVpqTkQ1VGFF
dkkxd0lEQVFBQk1BMEdDU3FHU0liM0RRRUJCQVVBQTRHQkFBZmJVYmdECiswMU84RG9aQTAyYzFN
VU1iTUhSUFNiL3Fkb2sycHlXb0NQYS9CU2FPSWFOUGVQYzhhdVBSYnJTMlhzVldTTWZ0CitDVFhp
WG1ySzJYeDErZkp1WkxBcDBDVW5nNERlNGNESDVjOG52bG9jWW1YbysxeDUzUzlEZkQwS1ByeWpC
Ukk3Cis5TG5KcTJ5c0hBVWF3aXFGWGx3QmFnNm1YYXdEOFlqemNZYXQKKy0tLS0tRU5EIENFUlRJ
RklDQVRFLS0tLS0pOworCitjbGFzcyBFV0syU1NMVGVzdCA6IHB1YmxpYyBFV0syVW5pdFRlc3RC
YXNlIHsKK3B1YmxpYzoKKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVk
RG9udElnbm9yZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8p
CisgICAgeworICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAgICAgQVNTRVJUX1RSVUUo
ZXdrX2Vycm9yX2NvZGVfZ2V0KHN0YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykpID09
IFNPVVBfU1RBVFVTX1NTTF9GQUlMRUQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9h
ZEZpbmlzaGVkRG9udElnbm9yZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKikK
KyAgICB7CisgICAgICAgIGJvb2wqIGlzRmluaXNoZWQgPSBzdGF0aWNfY2FzdDxib29sKj4odXNl
ckRhdGEpOworICAgICAgICBpZiAoaXNGaW5pc2hlZCkgeworICAgICAgICAgICAgZmluaXNoVGVz
dCA9IHRydWU7CisgICAgICAgICAgICBGQUlMKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBz
dGF0aWMgdm9pZCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZElnbm9yZSh2b2lkKiB1c2VyRGF0YSwg
RXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCisgICAgeworICAgICAgICBmaW5pc2hUZXN0
ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGV3a19lcnJvcl9jb2RlX2dldChzdGF0aWNfY2FzdDxFd2tf
RXJyb3IqPihldmVudEluZm8pKSA9PSBTT1VQX1NUQVRVU19TU0xfRkFJTEVEKQorICAgICAgICAg
ICAgRkFJTCgpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZEZpbmlzaGVkSWdub3Jl
KHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqKQorICAgIHsKKyAgICAgICAgYm9v
bCogaXNGaW5pc2hlZCA9IHN0YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAgIGZp
bmlzaFRlc3QgPSB0cnVlOworICAgICAgICBBU1NFUlRfVFJVRShpc0ZpbmlzaGVkKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRlc3QoU291
cFNlcnZlciosIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRoLCBHSGFzaFRh
YmxlKiwgU291cENsaWVudENvbnRleHQqLCB2b2lkKikKKyAgICB7CisgICAgICAgIGlmIChtZXNz
YWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CisgICAgICAgICAgICBzb3VwX21lc3Nh
Z2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1RfSU1QTEVNRU5URUQpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFzdHJjbXAocGF0aCwg
Ii9pbmRleC5odG1sIikpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1l
c3NhZ2UsIFNPVVBfU1RBVFVTX09LKTsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2Fw
cGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9DT1BZLCBpbmRleEhUTUxT
dHJpbmcsIHN0cmxlbihpbmRleEhUTUxTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1RfRk9V
TkQpOworCisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2UtPnJlc3Bv
bnNlX2JvZHkpOworICAgIH0KK307CisKK3N0YXRpYyBHVGxzQ2VydGlmaWNhdGUqIGdldENlcnRp
ZmljYXRlKCkKK3sKKyAgICBHRXJyb3IqKiBnZXJyb3I7CisgICAgR1Rsc0NlcnRpZmljYXRlKiBj
ZXJ0aWZpY2F0ZSA9IGdfdGxzX2NlcnRpZmljYXRlX25ld19mcm9tX3BlbSgKKyAgICAgICAgY2Vy
dGlmaWNhdGVfZGF0YSwgc2l6ZW9mKGNlcnRpZmljYXRlX2RhdGEpLCBnZXJyb3IpOworCisgICAg
aWYgKCFjZXJ0aWZpY2F0ZSkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gY3Jl
YXRlIGNlcnRpZmljYXRlIGZyb20gUEVNXG4iKTsKKworICAgIHJldHVybiBjZXJ0aWZpY2F0ZTsK
K30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3NsX2JhZF9jZXJ0X3BhZ2VfbG9hZF90ZXN0
X2lnbm9yZV9lcnJvcnMpCit7CisgICAgZmluaXNoVGVzdCA9IGZhbHNlOworCisgICAgRXdrX0Nv
bnRleHQqIGNvbnRleHQgPSBld2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworICAgIGV3
a19jb250ZXh0X2lnbm9yZV90bHNfZXJyb3JzX3NldChjb250ZXh0LCB0cnVlKTsKKworICAgIEdU
bHNDZXJ0aWZpY2F0ZSogVExTQ2VydGlmaWNhdGUgPSBnZXRDZXJ0aWZpY2F0ZSgpOworCisgICAg
aWYgKCFUTFNDZXJ0aWZpY2F0ZSkKKyAgICAgICAgRkFJTCgpOworCisgICAgc3RkOjp1bmlxdWVf
cHRyPEVXSzJVbml0VGVzdFNlcnZlcj4gaHR0cHNTZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEVX
SzJVbml0VGVzdFNlcnZlcj4oVExTQ2VydGlmaWNhdGUpOworICAgIGh0dHBzU2VydmVyLT5ydW4o
c2VydmVyQ2FsbGJhY2tCYWRDZXJ0UGFnZUxvYWRUZXN0KTsKKworICAgIEV3a19FcnJvciogZXJy
b3IgPSBudWxscHRyOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3
KCksICJsb2FkLHByb3Zpc2lvbmFsLGZhaWxlZCIsIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVkSWdu
b3JlLCAmZXJyb3IpOworCisgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQsZmluaXNoZWQiLCBvbkxv
YWRGaW5pc2hlZElnbm9yZSwgJmlzRmluaXNoZWQpOworCisgICAgZXdrX3ZpZXdfdXJsX3NldCh3
ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEo
KSk7CisKKyAgICB3YWl0VW50aWxUcnVlKGZpbmlzaFRlc3QsIHRlc3RUaW1lb3V0U2Vjb25kcyk7
Cit9CisKK1RFU1RfRihFV0syU1NMVGVzdCwgZXdrX3NzbF9iYWRfY2VydF9wYWdlX2xvYWRfdGVz
dF9kb250X2lnbm9yZV9lcnJvcnMpCit7CisgICAgZmluaXNoVGVzdCA9IGZhbHNlOworCisgICAg
RXdrX0NvbnRleHQqIGNvbnRleHQgPSBld2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOwor
ICAgIGV3a19jb250ZXh0X2lnbm9yZV90bHNfZXJyb3JzX3NldChjb250ZXh0LCBmYWxzZSk7CisK
KyAgICBHVGxzQ2VydGlmaWNhdGUqIFRMU0NlcnRpZmljYXRlID0gZ2V0Q2VydGlmaWNhdGUoKTsK
KworICAgIGlmICghVExTQ2VydGlmaWNhdGUpCisgICAgICAgIEZBSUwoKTsKKworICAgIHN0ZDo6
dW5pcXVlX3B0cjxFV0syVW5pdFRlc3RTZXJ2ZXI+IGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxFV0syVW5pdFRlc3RTZXJ2ZXI+KFRMU0NlcnRpZmljYXRlKTsKKyAgICBodHRwc1NlcnZl
ci0+cnVuKHNlcnZlckNhbGxiYWNrQmFkQ2VydFBhZ2VMb2FkVGVzdCk7CisKKyAgICBFd2tfRXJy
b3IqIGVycm9yID0gbnVsbHB0cjsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQo
d2ViVmlldygpLCAibG9hZCxwcm92aXNpb25hbCxmYWlsZWQiLCBvbkxvYWRQcm92aXNpb25hbEZh
aWxlZERvbnRJZ25vcmUsICZlcnJvcik7CisKKyAgICBib29sIGlzRmluaXNoZWQgPSBmYWxzZTsK
KyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxmaW5p
c2hlZCIsIG9uTG9hZEZpbmlzaGVkRG9udElnbm9yZSwgJmlzRmluaXNoZWQpOworCisgICAgZXdr
X3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvaW5k
ZXguaHRtbCIpLmRhdGEoKSk7CisKKyAgICB3YWl0VW50aWxUcnVlKGZpbmlzaFRlc3QsIHRlc3RU
aW1lb3V0U2Vjb25kcyk7Cit9Cg==
</data>
<flag name="review"
          id="250308"
          type_id="1"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226289</attachid>
            <date>2014-03-10 03:22:30 -0700</date>
            <delta_ts>2014-03-14 05:51:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v4.patch</filename>
            <type>text/plain</type>
            <size>15050</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNDc1ZTBhLi45Mzg2MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMDcgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgV0syIEFQSSB0byBjb250cm9sIFRMUyBl
cnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFkZGVkIHRo
ZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAgICAgICAo
RXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250ZXh0X2ln
bm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVfdGxzX2Vy
cm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgorICAgICAg
ICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAgICAgKEVX
SzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oOgorICAg
ICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6CisgICAgICAg
IEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0wMy0wNCAg
QmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhl
IGJ1aWxkIGFmdGVyIHIxNjUwOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZjk2MjVk
OS4uOTcwYmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTQ2NSw2ICs0NjUsNyBA
QCBzZXQoRVdLMlVuaXRUZXN0c19CSU5BUklFUwogICAgIHRlc3RfZXdrMl9wb3B1cF9tZW51CiAg
ICAgdGVzdF9ld2syX3JlZnB0cl9ldmFzX29iamVjdAogICAgIHRlc3RfZXdrMl9zZXR0aW5ncwor
ICAgIHRlc3RfZXdrMl9zc2wKICAgICB0ZXN0X2V3azJfc3RvcmFnZV9tYW5hZ2VyCiAgICAgdGVz
dF9ld2syX3RleHRfY2hlY2tlcgogICAgIHRlc3RfZXdrMl92aWV3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKaW5kZXggYTQ1NWI3YS4uMmU4
Y2E3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0LmNwcApAQCAtMzU0LDYgKzM1NCwxNiBAQCB2b2lkIEV3a0NvbnRleHQ6OnByb2Nlc3NSZWNl
aXZlZE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbQogICAg
ICAgICBtX2NhbGxiYWNrRm9yTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZS5jYWxsYmFjayhuYW1l
LmRhdGEoKSwgYm9keS5kYXRhKCksIG51bGxwdHIsIG1fY2FsbGJhY2tGb3JNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlLnVzZXJEYXRhKTsKIH0KIAorYm9vbCBFd2tDb250ZXh0OjppZ25vcmVUTFNF
cnJvcnMoKSBjb25zdAoreworICAgIHJldHVybiB0b0ltcGwobV9jb250ZXh0LmdldCgpKS0+aWdu
b3JlVExTRXJyb3JzKCk7Cit9CisKK3ZvaWQgRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3Jz
KGJvb2wgaWdub3JlVExTRXJyb3JzKSBjb25zdAoreworICAgIHRvSW1wbChtX2NvbnRleHQuZ2V0
KCkpLT5zZXRJZ25vcmVUTFNFcnJvcnMoaWdub3JlVExTRXJyb3JzKTsKK30KKwogRXdrX0NvbnRl
eHQqIGV3a19jb250ZXh0X2RlZmF1bHRfZ2V0KCkKIHsKICAgICByZXR1cm4gRXdrQ29udGV4dDo6
ZGVmYXVsdENvbnRleHQoKTsKQEAgLTQ1MiwzICs0NjIsMTYgQEAgdm9pZCBld2tfY29udGV4dF9t
ZXNzYWdlX2Zyb21faW5qZWN0ZWRfYnVuZGxlX2NhbGxiYWNrX3NldChFd2tfQ29udGV4dCogZXdr
Q29udGUKIAogICAgIGltcGwtPnNldE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjayhj
YWxsYmFjaywgdXNlckRhdGEpOwogfQorCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRfaWdub3JlX3Rs
c19lcnJvcnNfZ2V0KGNvbnN0IEV3a19Db250ZXh0ICpld2tDb250ZXh0KQoreworICAgIEVXS19P
QkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGws
IGZhbHNlKTsKKworICAgIHJldHVybiBpbXBsLT5pZ25vcmVUTFNFcnJvcnMoKTsKK30KKwordm9p
ZCBld2tfY29udGV4dF9pZ25vcmVfdGxzX2Vycm9yc19zZXQoY29uc3QgRXdrX0NvbnRleHQgKmV3
a0NvbnRleHQsIEVpbmFfQm9vbCBpZ25vcmVfdGxzX2Vycm9ycykKK3sKKyAgICBFV0tfT0JKX0dF
VF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tDb250ZXh0LCBld2tDb250ZXh0LCBpbXBsKTsKKyAg
ICBpbXBsLT5zZXRJZ25vcmVUTFNFcnJvcnMoaWdub3JlX3Rsc19lcnJvcnMpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKaW5kZXggMTNiMTZk
My4uNGMxODc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5oCkBAIC0zNTIsNiArMzUyLDIzIEBAIEVBUEkgdm9pZCBld2tfY29udGV4dF9tZXNz
YWdlX3Bvc3RfdG9faW5qZWN0ZWRfYnVuZGxlKEV3a19Db250ZXh0ICpjb250ZXh0LCBjb25zCiAg
Ki8KIEVBUEkgdm9pZCBld2tfY29udGV4dF9tZXNzYWdlX2Zyb21faW5qZWN0ZWRfYnVuZGxlX2Nh
bGxiYWNrX3NldChFd2tfQ29udGV4dCAqY29udGV4dCwgRXdrX0NvbnRleHRfTWVzc2FnZV9Gcm9t
X0luamVjdGVkX0J1bmRsZV9DYiBjYWxsYmFjaywgdm9pZCAqdXNlcl9kYXRhKTsKIAorLyoqCisg
KiBHZXRzIFRMUyBlcnJvciBwb2xpY3kgZm9yIEBhIGNvbnRleHQuCisgKgorICogQHBhcmFtIGNv
bnRleHQgY29udGV4dCBvYmplY3QgdG8gZ2V0IFRMUyBlcnJvciBwb2xpY3kgZm9yLgorICoKKyAq
IEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIFRMUyBlcnJvcnMgYXJlIGlnbm9yZWQsIEBjIEVJTkFf
RkFMU0Ugb3RoZXJ3aXNlLgorICovCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRfaWdub3JlX3Rsc19l
cnJvcnNfZ2V0KGNvbnN0IEV3a19Db250ZXh0ICpld2tDb250ZXh0KTsKKworLyoqCisgKiBTZXRz
IFRMUyBlcnJvciBwb2xpY3kgZm9yIEBhIGNvbnRleHQuCisgKgorICogQHBhcmFtIGNvbnRleHQg
Y29udGV4dCBvYmplY3QgdG8gc2V0IFRMUyBlcnJvciBwb2xpY3kgZm9yLgorICogQHBhcmFtIGln
bm9yZV90bHNfZXJyb3JzIEBjIEVJTkFfVFJVRSBpZiBUTFMgZXJyb3JzIHNob3VsZCBiZSBpZ25v
cmVkLCBAYyBFSU5BX0ZBTFNFIG90aGVyd2lzZS4KKyAqLworRUFQSSB2b2lkIGV3a19jb250ZXh0
X2lnbm9yZV90bHNfZXJyb3JzX3NldChjb25zdCBFd2tfQ29udGV4dCAqZXdrQ29udGV4dCwgRWlu
YV9Cb29sIGlnbm9yZV90bHNfZXJyb3JzKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X3ByaXZhdGUuaAppbmRleCBmZTMzMTQ5Li5hNzQ3MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCkBAIC04
MCw2ICs4MCwxMCBAQCBwdWJsaWM6CiAKICAgICBXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50
RWZsKiBoaXN0b3J5Q2xpZW50KCk7CiAKKyAgICBib29sIGlnbm9yZVRMU0Vycm9ycygpIGNvbnN0
OworCisgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpIGNv
bnN0OworCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBzZXRBZGRp
dGlvbmFsUGx1Z2luUGF0aChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5p
dFRlc3RTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
VW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IDRlZjRjZjcuLmNkYmI5
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1Vu
aXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5j
cHAKQEAgLTIxLDEzICsyMSwyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVX
SzJVbml0VGVzdFNlcnZlci5oIgogCi1FV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNl
cnZlcigpCitFV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZlcihHVGxzQ2VydGlm
aWNhdGUqIHRsc0NlcnQpCiB7CiAgICAgU291cEFkZHJlc3MqIGFkZHJlc3MgPSBzb3VwX2FkZHJl
c3NfbmV3KCIxMjcuMC4wLjEiLCBTT1VQX0FERFJFU1NfQU5ZX1BPUlQpOwogICAgIHNvdXBfYWRk
cmVzc19yZXNvbHZlX3N5bmMoYWRkcmVzcywgMCk7CiAKLSAgICBtX3NvdXBTZXJ2ZXIgPSBzb3Vw
X3NlcnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxj
aGFyKj4oMCkpOwotICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJpX25ldygiaHR0cDovLzEyNy4wLjAu
MS8iKTsKKyAgICBpZiAodGxzQ2VydCkgeworICAgICAgICBtX3NvdXBTZXJ2ZXIgPSBzb3VwX3Nl
cnZlcl9uZXcoCisgICAgICAgICAgICBTT1VQX1NFUlZFUl9UTFNfQ0VSVElGSUNBVEUsIHRsc0Nl
cnQsCisgICAgICAgICAgICBTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19j
YXN0PGNoYXIqPigwKSk7CisKKyAgICAgICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJodHRw
czovLzEyNy4wLjAuMS8iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3NvdXBTZXJ2ZXIgPSBz
b3VwX3NlcnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2Fz
dDxjaGFyKj4oMCkpOworICAgICAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0dHA6Ly8x
MjcuMC4wLjEvIik7CisgICAgfQorCiAgICAgc291cF91cmlfc2V0X3BvcnQobV9iYXNlVVJMLCBz
b3VwX3NlcnZlcl9nZXRfcG9ydChtX3NvdXBTZXJ2ZXIpKTsKICAgICBnX29iamVjdF91bnJlZihh
ZGRyZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZl
ci5oCmluZGV4IGI5NjdjZTQuLmI4NWIxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGls
cy9FV0syVW5pdFRlc3RTZXJ2ZXIuaApAQCAtMjYsNyArMjYsNyBAQAogCiBjbGFzcyBFV0syVW5p
dFRlc3RTZXJ2ZXIgewogcHVibGljOgotICAgIEVXSzJVbml0VGVzdFNlcnZlcigpOworICAgIEVX
SzJVbml0VGVzdFNlcnZlcihHVGxzQ2VydGlmaWNhdGUqIHRsc0NlcnQgPSBudWxscHRyKTsKICAg
ICB2aXJ0dWFsIH5FV0syVW5pdFRlc3RTZXJ2ZXIoKTsKIAogICAgIENTdHJpbmcgZ2V0VVJMRm9y
UGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFiMWMxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwCkBAIC0w
LDAgKzEsMjA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgVW5pdmVyc2l0
eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5oIgor
I2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBFV0syVW5pdFRlc3Q7CisKK2V4dGVybiBFV0syVW5pdFRlc3RFbnZpcm9ubWVudCog
ZW52aXJvbm1lbnQ7CisKK3N0YXRpYyBjb25zdCBjaGFyIGluZGV4SFRNTFN0cmluZ1tdID0KKyAg
ICAiPGh0bWw+IgorICAgICI8aGVhZD48dGl0bGU+RUZMV2ViS2l0MiBTU0wgdGVzdDwvdGl0bGU+
PC9oZWFkPiIKKyAgICAiPGJvZHk+PC9ib2R5PjwvaHRtbD4iOworCitzdGF0aWMgYm9vbCBmaW5p
c2hUZXN0ID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSB0ZXN0VGltZW91dFNlY29u
ZHMgPSAyLjA7CisKKyNkZWZpbmUgU1RSSU5HSUZZMih4KSAjeAorI2RlZmluZSBTVFJJTkdJRlko
eCkgU1RSSU5HSUZZMih4KQorCitzdGF0aWMgY29uc3QgZ2NoYXIgY2VydGlmaWNhdGVfZGF0YVtd
ID0gU1RSSU5HSUZZKC0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KK01JSUNYUUlCQUFL
QmdRQ21jWGJ1c3JyOHpRcjhzbkliME9WUWliVmZndjd6UGpoLzV4ZGNyS09lakp6cDNlcEEKK0FG
NFRJVGVGUjl2eldJd2tta2NSb1krSWJRTmhoN2tlZkdVWUQ0N2J2VmFtSk10cTVjR1lWczBIbmdU
K0tUTWEKK05HSC9HNDRLa0ZJT2F6L2I1ZC9KTktPTnJscXd4cVhTK202SVk0bC9FMUZmMjVaak5E
NVRhRXZJMXdJREFRQUIKK0FvR0JBSWNEdjRBOWg2VU9CdjJaR3lzcE52c3YyZXJTYmxHT2hYSnJX
TzRhTk5lbUpKc3BJcDRzTGlQQ2JERTMKK2ExcG8xN1hSV0JrYlB6MWhnTDZheERYUW5vZW8rK2Vi
ZnJ2UlNlZCtGeXM0KzZTdnVTclBPdjZQbVdUQlQvV2EKK0dwTyt0djQ4SlVOeEMvRHk4Uk9peEJY
T1ZpdUlCRUZxM05mVkg0SFUzK1JHMjBOaEFrRUExTDNSQWhkZlBrTEkKKzgybHVTT1lFM0VxNDRs
SUNiL3laaStKRWlod1NlWlRKS2RaSHdZRDhLVkNqT3RqR3JPbXlFeXZUaHJjSUFDUXoKK0pMRXJl
VmgzM3dKQkFNaEptOXB6SkpOa0l5QmdpWEE2NkZBd2JoZER6U1RQeDBPQmpvVldvajZ1N2p6R3ZJ
RlQKK0NuMWFpVEJZenpzaU1DYUN4K1czZTZwSy9EY3ZIU3dLcmdrQ1FIWk1jeHdCbVNITEMybG5t
RDhMUVdxcVZuTHIKK2ZaVitWbmZWdzUwMURRVDB1b1A4TnZ5Z1dCZzFVZjlZS2VwZkxYbkJwaWRF
UWp1cDVaS2l2blVFditzQ1FBOE4KKzZWY01ISTJ2a3l4VjFUN0lUcm5vU2Y0WnJJdTl5bDU2bUhu
UlB6U3k5VmxBSHQ4aG5NSTdVZUIrYkdVbmRyTU8KK1ZYUWd6SHpLVWhiYnhiZVB2ZkVDUVFEVHRr
T3VoSnlLRGZIQ3hMRGN3TnBpK1Q2T1dURWZDdy9jcTlaV0RiQTcKK3lDWDgxcFF4ZlprZk1JUzFZ
RklPR0hvdkswck1NVHJhQ2UraUROWXRWei9MCistLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0t
LQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlCOXpDQ0FXQUNDUURqV1dUZUM2QlF2
VEFOQmdrcWhraUc5dzBCQVFRRkFEQkFNUXN3Q1FZRFZRUUdFd0pCCitWVEVUTUJFR0ExVUVDQk1L
VTI5dFpTMVRkR0YwWlRFY01Cb0dBMVVFQ2hNVFYyVmlTMmwwSUV4aGVXOTFkQ0JVCitaWE4wY3pB
ZUZ3MHdOekEzTVRNeE1qVXhNekphRncwM01UQTFNVE13TmpJek1UWmFNRUF4Q3pBSkJnTlZCQVlU
CitBa0ZWTVJNd0VRWURWUVFJRXdwVGIyMWxMVk4wWVhSbE1Sd3dHZ1lEVlFRS0V4TlhaV0pMYVhR
Z1RHRjViM1YwCitJRlJsYzNSek1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdR
Q21jWGJ1c3JyOHpRcjhzbkliCiswT1ZRaWJWZmd2N3pQamgvNXhkY3JLT2VqSnpwM2VwQUFGNFRJ
VGVGUjl2eldJd2tta2NSb1krSWJRTmhoN2tlCitmR1VZRDQ3YnZWYW1KTXRxNWNHWVZzMEhuZ1Qr
S1RNYU5HSC9HNDRLa0ZJT2F6L2I1ZC9KTktPTnJscXd4cVhTCisrbTZJWTRsL0UxRmYyNVpqTkQ1
VGFFdkkxd0lEQVFBQk1BMEdDU3FHU0liM0RRRUJCQVVBQTRHQkFBZmJVYmdECiswMU84RG9aQTAy
YzFNVU1iTUhSUFNiL3Fkb2sycHlXb0NQYS9CU2FPSWFOUGVQYzhhdVBSYnJTMlhzVldTTWZ0CitD
VFhpWG1ySzJYeDErZkp1WkxBcDBDVW5nNERlNGNESDVjOG52bG9jWW1YbysxeDUzUzlEZkQwS1By
eWpCUkk3Cis5TG5KcTJ5c0hBVWF3aXFGWGx3QmFnNm1YYXdEOFlqemNZYXQKKy0tLS0tRU5EIENF
UlRJRklDQVRFLS0tLS0pOworCitjbGFzcyBFV0syU1NMVGVzdCA6IHB1YmxpYyBFV0syVW5pdFRl
c3RCYXNlIHsKK3B1YmxpYzoKKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZFByb3Zpc2lvbmFsRmFp
bGVkRG9udElnbm9yZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudElu
Zm8pCisgICAgeworICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAgICAgQVNTRVJUX1RS
VUUoZXdrX2Vycm9yX2NvZGVfZ2V0KHN0YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykp
ID09IFNPVVBfU1RBVFVTX1NTTF9GQUlMRUQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9u
TG9hZEZpbmlzaGVkRG9udElnbm9yZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lk
KikKKyAgICB7CisgICAgICAgIGJvb2wqIGlzRmluaXNoZWQgPSBzdGF0aWNfY2FzdDxib29sKj4o
dXNlckRhdGEpOworICAgICAgICBpZiAoaXNGaW5pc2hlZCkgeworICAgICAgICAgICAgZmluaXNo
VGVzdCA9IHRydWU7CisgICAgICAgICAgICBGQUlMKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBzdGF0aWMgdm9pZCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZElnbm9yZSh2b2lkKiB1c2VyRGF0
YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCisgICAgeworICAgICAgICBmaW5pc2hU
ZXN0ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGV3a19lcnJvcl9jb2RlX2dldChzdGF0aWNfY2FzdDxF
d2tfRXJyb3IqPihldmVudEluZm8pKSA9PSBTT1VQX1NUQVRVU19TU0xfRkFJTEVEKQorICAgICAg
ICAgICAgRkFJTCgpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZEZpbmlzaGVkSWdu
b3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqKQorICAgIHsKKyAgICAgICAg
Ym9vbCogaXNGaW5pc2hlZCA9IHN0YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAg
IGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICBBU1NFUlRfVFJVRShpc0ZpbmlzaGVkKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRlc3Qo
U291cFNlcnZlciosIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRoLCBHSGFz
aFRhYmxlKiwgU291cENsaWVudENvbnRleHQqLCB2b2lkKikKKyAgICB7CisgICAgICAgIGlmICht
ZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CisgICAgICAgICAgICBzb3VwX21l
c3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1RfSU1QTEVNRU5URUQpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFzdHJjbXAocGF0
aCwgIi9pbmRleC5odG1sIikpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVz
KG1lc3NhZ2UsIFNPVVBfU1RBVFVTX09LKTsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5
X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9DT1BZLCBpbmRleEhU
TUxTdHJpbmcsIHN0cmxlbihpbmRleEhUTUxTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1Rf
Rk9VTkQpOworCisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2UtPnJl
c3BvbnNlX2JvZHkpOworICAgIH0KK307CisKK3N0YXRpYyBHVGxzQ2VydGlmaWNhdGUqIGdldENl
cnRpZmljYXRlKCkKK3sKKyAgICBHRXJyb3IqKiBnZXJyb3I7CisgICAgR1Rsc0NlcnRpZmljYXRl
KiBjZXJ0aWZpY2F0ZSA9IGdfdGxzX2NlcnRpZmljYXRlX25ld19mcm9tX3BlbSgKKyAgICAgICAg
Y2VydGlmaWNhdGVfZGF0YSwgc2l6ZW9mKGNlcnRpZmljYXRlX2RhdGEpLCBnZXJyb3IpOworCisg
ICAgaWYgKCFjZXJ0aWZpY2F0ZSkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8g
Y3JlYXRlIGNlcnRpZmljYXRlIGZyb20gUEVNXG4iKTsKKworICAgIHJldHVybiBjZXJ0aWZpY2F0
ZTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3NsX2lnbm9yZV90bHNfZXJyb3JzX2Vu
YWJsZSkKK3sKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0
KHdlYlZpZXcoKSk7CisKKyAgICBld2tfY29udGV4dF9pZ25vcmVfdGxzX2Vycm9yc19zZXQoY29u
dGV4dCwgdHJ1ZSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfY29udGV4dF9pZ25vcmVfdGxzX2Vy
cm9yc19nZXQoY29udGV4dCkpOworfQorCitURVNUX0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfaWdu
b3JlX3Rsc19lcnJvcnNfZGlzYWJsZSkKK3sKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9IGV3
a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBld2tfY29udGV4dF9pZ25vcmVf
dGxzX2Vycm9yc19zZXQoY29udGV4dCwgZmFsc2UpOworCisgICAgQVNTRVJUX0ZBTFNFKGV3a19j
b250ZXh0X2lnbm9yZV90bHNfZXJyb3JzX2dldChjb250ZXh0KSk7Cit9CisKK1RFU1RfRihFV0sy
U1NMVGVzdCwgZXdrX3NzbF9iYWRfY2VydF9wYWdlX2xvYWRfdGVzdF9pZ25vcmVfZXJyb3JzKQor
eworICAgIGZpbmlzaFRlc3QgPSBmYWxzZTsKKworICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0g
ZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsKKyAgICBld2tfY29udGV4dF9pZ25vcmVf
dGxzX2Vycm9yc19zZXQoY29udGV4dCwgdHJ1ZSk7CisKKyAgICBHVGxzQ2VydGlmaWNhdGUqIFRM
U0NlcnRpZmljYXRlID0gZ2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICghVExTQ2VydGlmaWNh
dGUpCisgICAgICAgIEZBSUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFV0syVW5pdFRlc3RT
ZXJ2ZXI+IGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5pdFRlc3RTZXJ2ZXI+
KFRMU0NlcnRpZmljYXRlKTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZlckNhbGxiYWNrQmFk
Q2VydFBhZ2VMb2FkVGVzdCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0gbnVsbHB0cjsKKyAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxwcm92aXNp
b25hbCxmYWlsZWQiLCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZElnbm9yZSwgJmVycm9yKTsKKwor
ICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZhbHNlOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxi
YWNrX2FkZCh3ZWJWaWV3KCksICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmluaXNoZWRJZ25vcmUs
ICZpc0ZpbmlzaGVkKTsKKworICAgIGV3a192aWV3X3VybF9zZXQod2ViVmlldygpLCBodHRwc1Nl
cnZlci0+Z2V0VVJMRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOworCisgICAgd2FpdFVu
dGlsVHJ1ZShmaW5pc2hUZXN0LCB0ZXN0VGltZW91dFNlY29uZHMpOworfQorCitURVNUX0YoRVdL
MlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rlc3RfZG9udF9pZ25vcmVfZXJy
b3JzKQoreworICAgIGZpbmlzaFRlc3QgPSBmYWxzZTsKKworICAgIEV3a19Db250ZXh0KiBjb250
ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsKKyAgICBld2tfY29udGV4dF9p
Z25vcmVfdGxzX2Vycm9yc19zZXQoY29udGV4dCwgZmFsc2UpOworCisgICAgR1Rsc0NlcnRpZmlj
YXRlKiBUTFNDZXJ0aWZpY2F0ZSA9IGdldENlcnRpZmljYXRlKCk7CisKKyAgICBpZiAoIVRMU0Nl
cnRpZmljYXRlKQorICAgICAgICBGQUlMKCk7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RVdLMlVu
aXRUZXN0U2VydmVyPiBodHRwc1NlcnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8RVdLMlVuaXRUZXN0
U2VydmVyPihUTFNDZXJ0aWZpY2F0ZSk7CisgICAgaHR0cHNTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxs
YmFja0JhZENlcnRQYWdlTG9hZFRlc3QpOworCisgICAgRXdrX0Vycm9yKiBlcnJvciA9IG51bGxw
dHI7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQs
cHJvdmlzaW9uYWwsZmFpbGVkIiwgb25Mb2FkUHJvdmlzaW9uYWxGYWlsZWREb250SWdub3JlLCAm
ZXJyb3IpOworCisgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7CisgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQsZmluaXNoZWQiLCBvbkxvYWRGaW5p
c2hlZERvbnRJZ25vcmUsICZpc0ZpbmlzaGVkKTsKKworICAgIGV3a192aWV3X3VybF9zZXQod2Vi
VmlldygpLCBodHRwc1NlcnZlci0+Z2V0VVJMRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkp
OworCisgICAgd2FpdFVudGlsVHJ1ZShmaW5pc2hUZXN0LCB0ZXN0VGltZW91dFNlY29uZHMpOwor
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226695</attachid>
            <date>2014-03-14 05:51:35 -0700</date>
            <delta_ts>2014-03-19 11:26:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v5.patch</filename>
            <type>text/plain</type>
            <size>16054</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkMmY0ZTVmLi5kNTY4ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMTQgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgV0syIEFQSSB0byBjb250cm9sIFRMUyBl
cnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFkZGVkIHRo
ZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAgICAgICAo
RXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250ZXh0X2ln
bm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVfdGxzX2Vy
cm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgorICAgICAg
ICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAgICAgKEVX
SzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oOgorICAg
ICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6CisgICAgICAg
IEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0wMy0xMiAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW5h
bWUgREVGSU5FX1NUQVRJQ19MT0NBTCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZjk2MjVkOS4uOTcwYmY2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKQEAgLTQ2NSw2ICs0NjUsNyBAQCBzZXQoRVdLMlVuaXRUZXN0c19C
SU5BUklFUwogICAgIHRlc3RfZXdrMl9wb3B1cF9tZW51CiAgICAgdGVzdF9ld2syX3JlZnB0cl9l
dmFzX29iamVjdAogICAgIHRlc3RfZXdrMl9zZXR0aW5ncworICAgIHRlc3RfZXdrMl9zc2wKICAg
ICB0ZXN0X2V3azJfc3RvcmFnZV9tYW5hZ2VyCiAgICAgdGVzdF9ld2syX3RleHRfY2hlY2tlcgog
ICAgIHRlc3RfZXdrMl92aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHAKaW5kZXggYTQ1NWI3YS4uYTY0MDgwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtMzU0LDYgKzM1
NCwxOSBAQCB2b2lkIEV3a0NvbnRleHQ6OnByb2Nlc3NSZWNlaXZlZE1lc3NhZ2VGcm9tSW5qZWN0
ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbQogICAgICAgICBtX2NhbGxiYWNrRm9yTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZS5jYWxsYmFjayhuYW1lLmRhdGEoKSwgYm9keS5kYXRhKCks
IG51bGxwdHIsIG1fY2FsbGJhY2tGb3JNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLnVzZXJEYXRh
KTsKIH0KIAorRXdrX1RMU19FcnJvcl9Qb2xpY3kgRXdrQ29udGV4dDo6aWdub3JlVExTRXJyb3Jz
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9JbXBsKG1fY29udGV4dC5nZXQoKSktPmlnbm9yZVRM
U0Vycm9ycygpID8gRVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCA6IEVXS19UTFNfRVJST1JfUE9M
SUNZX0lHTk9SRTsKK30KKwordm9pZCBFd2tDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMoRXdr
X1RMU19FcnJvcl9Qb2xpY3kgVExTRXJyb3JQb2xpY3kpIGNvbnN0Cit7CisgICAgaWYgKFRMU0Vy
cm9yUG9saWN5ID09IEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSkKKyAgICAgICAgdG9JbXBs
KG1fY29udGV4dC5nZXQoKSktPnNldElnbm9yZVRMU0Vycm9ycyhmYWxzZSk7CisgICAgZWxzZQor
ICAgICAgICB0b0ltcGwobV9jb250ZXh0LmdldCgpKS0+c2V0SWdub3JlVExTRXJyb3JzKHRydWUp
OworfQorCiBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQoKQogewogICAgIHJl
dHVybiBFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpOwpAQCAtNDUyLDMgKzQ2NSwxNiBAQCB2
b2lkIGV3a19jb250ZXh0X21lc3NhZ2VfZnJvbV9pbmplY3RlZF9idW5kbGVfY2FsbGJhY2tfc2V0
KEV3a19Db250ZXh0KiBld2tDb250ZQogCiAgICAgaW1wbC0+c2V0TWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZUNhbGxiYWNrKGNhbGxiYWNrLCB1c2VyRGF0YSk7CiB9CisKK0V3a19UTFNfRXJyb3Jf
UG9saWN5IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0KGNvbnN0IEV3a19Db250ZXh0
ICpld2tDb250ZXh0KQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3
a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGwsIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOwor
CisgICAgcmV0dXJuIGltcGwtPmlnbm9yZVRMU0Vycm9ycygpOworfQorCit2b2lkIGV3a19jb250
ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnN0IEV3a19Db250ZXh0ICpld2tDb250ZXh0LCBF
d2tfVExTX0Vycm9yX1BvbGljeSB0bHNfZXJyb3JfcG9saWN5KQoreworICAgIEVXS19PQkpfR0VU
X0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGwpOworICAg
IGltcGwtPnNldElnbm9yZVRMU0Vycm9ycyh0bHNfZXJyb3JfcG9saWN5KTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCmluZGV4IDEzYjE2ZDMu
LjYzNDFjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuaApAQCAtNzQsNiArNzQsMjEgQEAgZW51bSBFd2tfQ2FjaGVfTW9kZWwgewogdHlwZWRl
ZiBlbnVtIEV3a19DYWNoZV9Nb2RlbCBFd2tfQ2FjaGVfTW9kZWw7CiAKIC8qKgorICogXGVudW0g
ICAgRXdrX1RMU19FcnJvcl9Qb2xpY3kKKyAqCisgKiBAYnJpZWYgICBDb250YWlucyBvcHRpb24g
Zm9yIFRMUyBlcnJvciBwb2xpY3kKKyAqLworZW51bSBFd2tfVExTX0Vycm9yX1BvbGljeSB7Cisg
ICAgLy8vIEZhaWwgb24gVExTIGVycm9ycy4KKyAgICBFV0tfVExTX0VSUk9SX1BPTElDWV9GQUlM
LAorICAgIC8vLyBJZ25vcmUgVExTIGVycm9ycy4KKyAgICBFV0tfVExTX0VSUk9SX1BPTElDWV9J
R05PUkUKK307CisKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciB0aGUgRXdrX1RMU19FcnJv
cl9Qb2xpY3kuCit0eXBlZGVmIGVudW0gRXdrX1RMU19FcnJvcl9Qb2xpY3kgRXdrX1RMU19FcnJv
cl9Qb2xpY3k7CisKKy8qKgogICogQHR5cGVkZWYgRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBF
d2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiCiAgKiBAYnJpZWYgQ2FsbGJhY2sgdHlwZSBmb3IgdXNl
IHdpdGggZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcigpLgogICovCkBAIC0zNTIsNiAr
MzY3LDIzIEBAIEVBUEkgdm9pZCBld2tfY29udGV4dF9tZXNzYWdlX3Bvc3RfdG9faW5qZWN0ZWRf
YnVuZGxlKEV3a19Db250ZXh0ICpjb250ZXh0LCBjb25zCiAgKi8KIEVBUEkgdm9pZCBld2tfY29u
dGV4dF9tZXNzYWdlX2Zyb21faW5qZWN0ZWRfYnVuZGxlX2NhbGxiYWNrX3NldChFd2tfQ29udGV4
dCAqY29udGV4dCwgRXdrX0NvbnRleHRfTWVzc2FnZV9Gcm9tX0luamVjdGVkX0J1bmRsZV9DYiBj
YWxsYmFjaywgdm9pZCAqdXNlcl9kYXRhKTsKIAorLyoqCisgKiBHZXRzIFRMUyBlcnJvciBwb2xp
Y3kgZm9yIEBhIGNvbnRleHQuCisgKgorICogQHBhcmFtIGNvbnRleHQgY29udGV4dCBvYmplY3Qg
dG8gZ2V0IFRMUyBlcnJvciBwb2xpY3kgZm9yLgorICoKKyAqIEByZXR1cm4gVGhlIFRMUyBlcnJv
cnMgcG9saWN5IGZvciB0aGUgY29udGV4dC4KKyAqLworRXdrX1RMU19FcnJvcl9Qb2xpY3kgZXdr
X2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmV3a0NvbnRl
eHQpOworCisvKioKKyAqIFNldHMgVExTIGVycm9yIHBvbGljeSBmb3IgQGEgY29udGV4dC4KKyAq
CisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBzZXQgVExTIGVycm9yIHBvbGlj
eSBmb3IuCisgKiBAcGFyYW0gaWdub3JlX3Rsc19lcnJvcnMgYSAjRXdrX1RMU19FcnJvcl9Qb2xp
Y3kuCisgKi8KK0VBUEkgdm9pZCBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb25z
dCBFd2tfQ29udGV4dCAqZXdrQ29udGV4dCwgRXdrX1RMU19FcnJvcl9Qb2xpY3kgdGxzX2Vycm9y
X3BvbGljeSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5k
ZXggZmUzMzE0OS4uOGMwMDBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaApAQCAtODAsNiArODAsMTAgQEAgcHVi
bGljOgogCiAgICAgV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbCogaGlzdG9yeUNsaWVu
dCgpOwogCisgICAgRXdrX1RMU19FcnJvcl9Qb2xpY3kgaWdub3JlVExTRXJyb3JzKCkgY29uc3Q7
CisKKyAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhFd2tfVExTX0Vycm9yX1BvbGljeSBUTFNF
cnJvclBvbGljeSkgY29uc3Q7CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAg
ICB2b2lkIHNldEFkZGl0aW9uYWxQbHVnaW5QYXRoKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVz
dFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAKaW5kZXgg
NGVmNGNmNy4uY2RiYjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVu
aXRUZXN0U2VydmVyLmNwcApAQCAtMjEsMTMgKzIxLDIyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiRVdLMlVuaXRUZXN0U2VydmVyLmgiCiAKLUVXSzJVbml0VGVzdFNlcnZlcjo6
RVdLMlVuaXRUZXN0U2VydmVyKCkKK0VXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2Vy
dmVyKEdUbHNDZXJ0aWZpY2F0ZSogdGxzQ2VydCkKIHsKICAgICBTb3VwQWRkcmVzcyogYWRkcmVz
cyA9IHNvdXBfYWRkcmVzc19uZXcoIjEyNy4wLjAuMSIsIFNPVVBfQUREUkVTU19BTllfUE9SVCk7
CiAgICAgc291cF9hZGRyZXNzX3Jlc29sdmVfc3luYyhhZGRyZXNzLCAwKTsKIAotICAgIG1fc291
cFNlcnZlciA9IHNvdXBfc2VydmVyX25ldyhTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3Ms
IHN0YXRpY19jYXN0PGNoYXIqPigwKSk7Ci0gICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJo
dHRwOi8vMTI3LjAuMC4xLyIpOworICAgIGlmICh0bHNDZXJ0KSB7CisgICAgICAgIG1fc291cFNl
cnZlciA9IHNvdXBfc2VydmVyX25ldygKKyAgICAgICAgICAgIFNPVVBfU0VSVkVSX1RMU19DRVJU
SUZJQ0FURSwgdGxzQ2VydCwKKyAgICAgICAgICAgIFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRk
cmVzcywgc3RhdGljX2Nhc3Q8Y2hhcio+KDApKTsKKworICAgICAgICBtX2Jhc2VVUkwgPSBzb3Vw
X3VyaV9uZXcoImh0dHBzOi8vMTI3LjAuMC4xLyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1f
c291cFNlcnZlciA9IHNvdXBfc2VydmVyX25ldyhTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJl
c3MsIHN0YXRpY19jYXN0PGNoYXIqPigwKSk7CisgICAgICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJp
X25ldygiaHR0cDovLzEyNy4wLjAuMS8iKTsKKyAgICB9CisKICAgICBzb3VwX3VyaV9zZXRfcG9y
dChtX2Jhc2VVUkwsIHNvdXBfc2VydmVyX2dldF9wb3J0KG1fc291cFNlcnZlcikpOwogICAgIGdf
b2JqZWN0X3VucmVmKGFkZHJlc3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdL
MlVuaXRUZXN0U2VydmVyLmgKaW5kZXggYjk2N2NlNC4uYjg1YjFiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5p
dFRlc3RTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0
cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAK
IGNsYXNzIEVXSzJVbml0VGVzdFNlcnZlciB7CiBwdWJsaWM6Ci0gICAgRVdLMlVuaXRUZXN0U2Vy
dmVyKCk7CisgICAgRVdLMlVuaXRUZXN0U2VydmVyKEdUbHNDZXJ0aWZpY2F0ZSogdGxzQ2VydCA9
IG51bGxwdHIpOwogICAgIHZpcnR1YWwgfkVXSzJVbml0VGVzdFNlcnZlcigpOwogCiAgICAgQ1N0
cmluZyBnZXRVUkxGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3NsLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGRiZDFiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2sy
X3NzbC5jcHAKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNCBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5p
dFRlc3RCYXNlLmgiCisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIu
aCIKKwordXNpbmcgbmFtZXNwYWNlIEVXSzJVbml0VGVzdDsKKworZXh0ZXJuIEVXSzJVbml0VGVz
dEVudmlyb25tZW50KiBlbnZpcm9ubWVudDsKKworc3RhdGljIGNvbnN0IGNoYXIgaW5kZXhIVE1M
U3RyaW5nW10gPQorICAgICI8aHRtbD4iCisgICAgIjxoZWFkPjx0aXRsZT5FRkxXZWJLaXQyIFNT
TCB0ZXN0PC90aXRsZT48L2hlYWQ+IgorICAgICI8Ym9keT48L2JvZHk+PC9odG1sPiI7CisKK3N0
YXRpYyBib29sIGZpbmlzaFRlc3QgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHRl
c3RUaW1lb3V0U2Vjb25kcyA9IDIuMDsKKworI2RlZmluZSBTVFJJTkdJRlkyKHgpICN4CisjZGVm
aW5lIFNUUklOR0lGWSh4KSBTVFJJTkdJRlkyKHgpCisKK3N0YXRpYyBjb25zdCBnY2hhciBjZXJ0
aWZpY2F0ZV9kYXRhW10gPSBTVFJJTkdJRlkoLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0t
LQorTUlJQ1hRSUJBQUtCZ1FDbWNYYnVzcnI4elFyOHNuSWIwT1ZRaWJWZmd2N3pQamgvNXhkY3JL
T2VqSnpwM2VwQQorQUY0VElUZUZSOXZ6V0l3a21rY1JvWStJYlFOaGg3a2VmR1VZRDQ3YnZWYW1K
TXRxNWNHWVZzMEhuZ1QrS1RNYQorTkdIL0c0NEtrRklPYXovYjVkL0pOS09Ocmxxd3hxWFMrbTZJ
WTRsL0UxRmYyNVpqTkQ1VGFFdkkxd0lEQVFBQgorQW9HQkFJY0R2NEE5aDZVT0J2MlpHeXNwTnZz
djJlclNibEdPaFhKcldPNGFOTmVtSkpzcElwNHNMaVBDYkRFMworYTFwbzE3WFJXQmtiUHoxaGdM
NmF4RFhRbm9lbysrZWJmcnZSU2VkK0Z5czQrNlN2dVNyUE92NlBtV1RCVC9XYQorR3BPK3R2NDhK
VU54Qy9EeThST2l4QlhPVml1SUJFRnEzTmZWSDRIVTMrUkcyME5oQWtFQTFMM1JBaGRmUGtMSQor
ODJsdVNPWUUzRXE0NGxJQ2IveVppK0pFaWh3U2VaVEpLZFpId1lEOEtWQ2pPdGpHck9teUV5dlRo
cmNJQUNRegorSkxFcmVWaDMzd0pCQU1oSm05cHpKSk5rSXlCZ2lYQTY2RkF3YmhkRHpTVFB4ME9C
am9WV29qNnU3anpHdklGVAorQ24xYWlUQll6enNpTUNhQ3grVzNlNnBLL0RjdkhTd0tyZ2tDUUha
TWN4d0JtU0hMQzJsbm1EOExRV3FxVm5McgorZlpWK1ZuZlZ3NTAxRFFUMHVvUDhOdnlnV0JnMVVm
OVlLZXBmTFhuQnBpZEVRanVwNVpLaXZuVUV2K3NDUUE4TgorNlZjTUhJMnZreXhWMVQ3SVRybm9T
ZjRackl1OXlsNTZtSG5SUHpTeTlWbEFIdDhobk1JN1VlQitiR1VuZHJNTworVlhRZ3pIektVaGJi
eGJlUHZmRUNRUURUdGtPdWhKeUtEZkhDeExEY3dOcGkrVDZPV1RFZkN3L2NxOVpXRGJBNworeUNY
ODFwUXhmWmtmTUlTMVlGSU9HSG92SzByTU1UcmFDZStpRE5ZdFZ6L0wKKy0tLS0tRU5EIFJTQSBQ
UklWQVRFIEtFWS0tLS0tCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUI5ekNDQVdB
Q0NRRGpXV1RlQzZCUXZUQU5CZ2txaGtpRzl3MEJBUVFGQURCQU1Rc3dDUVlEVlFRR0V3SkIKK1ZU
RVRNQkVHQTFVRUNCTUtVMjl0WlMxVGRHRjBaVEVjTUJvR0ExVUVDaE1UVjJWaVMybDBJRXhoZVc5
MWRDQlUKK1pYTjBjekFlRncwd056QTNNVE14TWpVeE16SmFGdzAzTVRBMU1UTXdOakl6TVRaYU1F
QXhDekFKQmdOVkJBWVQKK0FrRlZNUk13RVFZRFZRUUlFd3BUYjIxbExWTjBZWFJsTVJ3d0dnWURW
UVFLRXhOWFpXSkxhWFFnVEdGNWIzVjAKK0lGUmxjM1J6TUlHZk1BMEdDU3FHU0liM0RRRUJBUVVB
QTRHTkFEQ0JpUUtCZ1FDbWNYYnVzcnI4elFyOHNuSWIKKzBPVlFpYlZmZ3Y3elBqaC81eGRjcktP
ZWpKenAzZXBBQUY0VElUZUZSOXZ6V0l3a21rY1JvWStJYlFOaGg3a2UKK2ZHVVlENDdidlZhbUpN
dHE1Y0dZVnMwSG5nVCtLVE1hTkdIL0c0NEtrRklPYXovYjVkL0pOS09Ocmxxd3hxWFMKKyttNklZ
NGwvRTFGZjI1WmpORDVUYUV2STF3SURBUUFCTUEwR0NTcUdTSWIzRFFFQkJBVUFBNEdCQUFmYlVi
Z0QKKzAxTzhEb1pBMDJjMU1VTWJNSFJQU2IvcWRvazJweVdvQ1BhL0JTYU9JYU5QZVBjOGF1UFJi
clMyWHNWV1NNZnQKK0NUWGlYbXJLMlh4MStmSnVaTEFwMENVbmc0RGU0Y0RINWM4bnZsb2NZbVhv
KzF4NTNTOURmRDBLUHJ5akJSSTcKKzlMbkpxMnlzSEFVYXdpcUZYbHdCYWc2bVhhd0Q4WWp6Y1lh
dAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLSk7CisKK2NsYXNzIEVXSzJTU0xUZXN0IDogcHVi
bGljIEVXSzJVbml0VGVzdEJhc2UgeworcHVibGljOgorCisgICAgc3RhdGljIHZvaWQgb25Mb2Fk
UHJvdmlzaW9uYWxGYWlsZWREb250SWdub3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCos
IHZvaWQqIGV2ZW50SW5mbykKKyAgICB7CisgICAgICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAg
ICAgICBBU1NFUlRfVFJVRShld2tfZXJyb3JfY29kZV9nZXQoc3RhdGljX2Nhc3Q8RXdrX0Vycm9y
Kj4oZXZlbnRJbmZvKSkgPT0gU09VUF9TVEFUVVNfU1NMX0ZBSUxFRCk7CisgICAgfQorCisgICAg
c3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWREb250SWdub3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFz
X09iamVjdCosIHZvaWQqKQorICAgIHsKKyAgICAgICAgYm9vbCogaXNGaW5pc2hlZCA9IHN0YXRp
Y19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAgIGlmIChpc0ZpbmlzaGVkKSB7CisgICAg
ICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIEZBSUwoKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVkSWdub3Jl
KHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKKyAgICB7Cisg
ICAgICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZXdrX2Vycm9yX2NvZGVfZ2V0
KHN0YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykpID09IFNPVVBfU1RBVFVTX1NTTF9G
QUlMRUQpCisgICAgICAgICAgICBGQUlMKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgb25M
b2FkRmluaXNoZWRJZ25vcmUodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCopCisg
ICAgeworICAgICAgICBib29sKiBpc0ZpbmlzaGVkID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJE
YXRhKTsKKyAgICAgICAgZmluaXNoVGVzdCA9IHRydWU7CisgICAgICAgIEFTU0VSVF9UUlVFKGlz
RmluaXNoZWQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrQmFkQ2Vy
dFBhZ2VMb2FkVGVzdChTb3VwU2VydmVyKiwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNo
YXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIHZvaWQqKQorICAgIHsK
KyAgICAgICAgaWYgKG1lc3NhZ2UtPm1ldGhvZCAhPSBTT1VQX01FVEhPRF9HRVQpIHsKKyAgICAg
ICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX05PVF9J
TVBMRU1FTlRFRCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoIXN0cmNtcChwYXRoLCAiL2luZGV4Lmh0bWwiKSkgeworICAgICAgICAgICAgc291cF9tZXNz
YWdlX3NldF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfT0spOworICAgICAgICAgICAgc291
cF9tZXNzYWdlX2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZ
X0NPUFksIGluZGV4SFRNTFN0cmluZywgc3RybGVuKGluZGV4SFRNTFN0cmluZykpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNP
VVBfU1RBVFVTX05PVF9GT1VORCk7CisKKyAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfY29tcGxl
dGUobWVzc2FnZS0+cmVzcG9uc2VfYm9keSk7CisgICAgfQorfTsKKworc3RhdGljIEdUbHNDZXJ0
aWZpY2F0ZSogZ2V0Q2VydGlmaWNhdGUoKQoreworICAgIEdFcnJvcioqIGdlcnJvcjsKKyAgICBH
VGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlID0gZ190bHNfY2VydGlmaWNhdGVfbmV3X2Zyb21f
cGVtKAorICAgICAgICBjZXJ0aWZpY2F0ZV9kYXRhLCBzaXplb2YoY2VydGlmaWNhdGVfZGF0YSks
IGdlcnJvcik7CisKKyAgICBpZiAoIWNlcnRpZmljYXRlKQorICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIlVuYWJsZSB0byBjcmVhdGUgY2VydGlmaWNhdGUgZnJvbSBQRU1cbiIpOworCisgICAgcmV0
dXJuIGNlcnRpZmljYXRlOworfQorCitURVNUX0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfc2V0X3Rs
c19lcnJvcl9wb2xpY3lfaWdub3JlKQoreworICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdr
X3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsKKworICAgIGV3a19jb250ZXh0X3Rsc19lcnJv
cl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSk7CisKKyAg
ICBBU1NFUlRfVFJVRShld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X2dldChjb250ZXh0KSA9
PSBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkUpOworfQorCitURVNUX0YoRVdLMlNTTFRlc3Qs
IGV3a19zc2xfc2V0X3Rsc19lcnJvcl9wb2xpY3lfZmFpbCkKK3sKKyAgICBFd2tfQ29udGV4dCog
Y29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBld2tfY29u
dGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb250ZXh0LCBFV0tfVExTX0VSUk9SX1BPTElDWV9G
QUlMKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0
KGNvbnRleHQpID09IEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOworfQorCitURVNUX0YoRVdL
MlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rlc3RfcG9saWN5X2ZhaWwpCit7
CisgICAgZmluaXNoVGVzdCA9IGZhbHNlOworCisgICAgRXdrX0NvbnRleHQqIGNvbnRleHQgPSBl
d2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworICAgIGV3a19jb250ZXh0X3Rsc19lcnJv
cl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOworCisgICAg
R1Rsc0NlcnRpZmljYXRlKiBUTFNDZXJ0aWZpY2F0ZSA9IGdldENlcnRpZmljYXRlKCk7CisKKyAg
ICBpZiAoIVRMU0NlcnRpZmljYXRlKQorICAgICAgICBGQUlMKCk7CisKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8RVdLMlVuaXRUZXN0U2VydmVyPiBodHRwc1NlcnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8
RVdLMlVuaXRUZXN0U2VydmVyPihUTFNDZXJ0aWZpY2F0ZSk7CisgICAgaHR0cHNTZXJ2ZXItPnJ1
bihzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRlc3QpOworCisgICAgRXdrX0Vycm9yKiBl
cnJvciA9IG51bGxwdHI7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZp
ZXcoKSwgImxvYWQscHJvdmlzaW9uYWwsZmFpbGVkIiwgb25Mb2FkUHJvdmlzaW9uYWxGYWlsZWRJ
Z25vcmUsICZlcnJvcik7CisKKyAgICBib29sIGlzRmluaXNoZWQgPSBmYWxzZTsKKyAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxmaW5pc2hlZCIsIG9u
TG9hZEZpbmlzaGVkSWdub3JlLCAmaXNGaW5pc2hlZCk7CisKKyAgICBld2tfdmlld191cmxfc2V0
KHdlYlZpZXcoKSwgaHR0cHNTZXJ2ZXItPmdldFVSTEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0
YSgpKTsKKworICAgIHdhaXRVbnRpbFRydWUoZmluaXNoVGVzdCwgdGVzdFRpbWVvdXRTZWNvbmRz
KTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3NsX2JhZF9jZXJ0X3BhZ2VfbG9hZF90
ZXN0X3BvbGljeV9pZ25vcmUpCit7CisgICAgZmluaXNoVGVzdCA9IGZhbHNlOworCisgICAgRXdr
X0NvbnRleHQqIGNvbnRleHQgPSBld2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworICAg
IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1Jf
UE9MSUNZX0lHTk9SRSk7CisKKyAgICBHVGxzQ2VydGlmaWNhdGUqIFRMU0NlcnRpZmljYXRlID0g
Z2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICghVExTQ2VydGlmaWNhdGUpCisgICAgICAgIEZB
SUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFV0syVW5pdFRlc3RTZXJ2ZXI+IGh0dHBzU2Vy
dmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5pdFRlc3RTZXJ2ZXI+KFRMU0NlcnRpZmljYXRl
KTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZlckNhbGxiYWNrQmFkQ2VydFBhZ2VMb2FkVGVz
dCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0gbnVsbHB0cjsKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxwcm92aXNpb25hbCxmYWlsZWQiLCBv
bkxvYWRQcm92aXNpb25hbEZhaWxlZERvbnRJZ25vcmUsICZlcnJvcik7CisKKyAgICBib29sIGlz
RmluaXNoZWQgPSBmYWxzZTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2Vi
VmlldygpLCAibG9hZCxmaW5pc2hlZCIsIG9uTG9hZEZpbmlzaGVkRG9udElnbm9yZSwgJmlzRmlu
aXNoZWQpOworCisgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5n
ZXRVUkxGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CisKKyAgICB3YWl0VW50aWxUcnVl
KGZpbmlzaFRlc3QsIHRlc3RUaW1lb3V0U2Vjb25kcyk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227203</attachid>
            <date>2014-03-19 11:26:41 -0700</date>
            <delta_ts>2014-03-21 09:27:27 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v6.patch</filename>
            <type>text/plain</type>
            <size>16270</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiNmM1N2U2Li45NjQ5Nzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMTkgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgV0syIEFQSSB0byBjb250cm9sIFRMUyBl
cnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFkZGVkIHRo
ZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAgICAgICAo
RXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250ZXh0X2ln
bm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVfdGxzX2Vy
cm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgorICAgICAg
ICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAgICAgKEVX
SzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oOgorICAg
ICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6CisgICAgICAg
IEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0wMy0xOSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQy
IFZpZXcgR2VzdHVyZXM6IFN3aXBlIGdlc3R1cmUgY2FuIHRyYWNrIHZlcnRpY2FsIG1vdmVtZW50
IGluc3RlYWQgb2YgaG9yaXpvbnRhbCBtb3ZlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpp
bmRleCAyZTRjY2I3Li45ODM5NmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNDg3
LDYgKzQ4Nyw3IEBAIHNldChFV0syVW5pdFRlc3RzX0JJTkFSSUVTCiAgICAgdGVzdF9ld2syX3Bv
cHVwX21lbnUKICAgICB0ZXN0X2V3azJfcmVmcHRyX2V2YXNfb2JqZWN0CiAgICAgdGVzdF9ld2sy
X3NldHRpbmdzCisgICAgdGVzdF9ld2syX3NzbAogICAgIHRlc3RfZXdrMl9zdG9yYWdlX21hbmFn
ZXIKICAgICB0ZXN0X2V3azJfdGV4dF9jaGVja2VyCiAgICAgdGVzdF9ld2syX3ZpZXcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAppbmRleCAy
M2ZjNmVjLi5iYzc5MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHQuY3BwCkBAIC0zNzEsNiArMzcxLDE5IEBAIHZvaWQgRXdrQ29udGV4dDo6
cHJvY2Vzc1JlY2VpdmVkTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNz
YWdlTmFtCiAgICAgICAgIG1fY2FsbGJhY2tGb3JNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLmNh
bGxiYWNrKG5hbWUuZGF0YSgpLCBib2R5LmRhdGEoKSwgbnVsbHB0ciwgbV9jYWxsYmFja0Zvck1l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUudXNlckRhdGEpOwogfQogCitFd2tfVExTX0Vycm9yX1Bv
bGljeSBFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMoKSBjb25zdAoreworICAgIHJldHVybiB0
b0ltcGwobV9jb250ZXh0LmdldCgpKS0+aWdub3JlVExTRXJyb3JzKCkgPyBFV0tfVExTX0VSUk9S
X1BPTElDWV9JR05PUkUgOiBFV0tfVExTX0VSUk9SX1BPTElDWV9GQUlMOworfQorCit2b2lkIEV3
a0NvbnRleHQ6OnNldElnbm9yZVRMU0Vycm9ycyhFd2tfVExTX0Vycm9yX1BvbGljeSBUTFNFcnJv
clBvbGljeSkgY29uc3QKK3sKKyAgICBpZiAoVExTRXJyb3JQb2xpY3kgPT0gRVdLX1RMU19FUlJP
Ul9QT0xJQ1lfSUdOT1JFKQorICAgICAgICB0b0ltcGwobV9jb250ZXh0LmdldCgpKS0+c2V0SWdu
b3JlVExTRXJyb3JzKHRydWUpOworICAgIGVsc2UKKyAgICAgICAgdG9JbXBsKG1fY29udGV4dC5n
ZXQoKSktPnNldElnbm9yZVRMU0Vycm9ycyhmYWxzZSk7Cit9CisKIEV3a19Db250ZXh0KiBld2tf
Y29udGV4dF9kZWZhdWx0X2dldCgpCiB7CiAgICAgcmV0dXJuIEV3a0NvbnRleHQ6OmRlZmF1bHRD
b250ZXh0KCk7CkBAIC00NjksMyArNDgyLDE2IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVzc2FnZV9m
cm9tX2luamVjdGVkX2J1bmRsZV9jYWxsYmFja19zZXQoRXdrX0NvbnRleHQqIGV3a0NvbnRlCiAK
ICAgICBpbXBsLT5zZXRNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlQ2FsbGJhY2soY2FsbGJhY2ss
IHVzZXJEYXRhKTsKIH0KKworRXdrX1RMU19FcnJvcl9Qb2xpY3kgZXdrX2NvbnRleHRfdGxzX2Vy
cm9yX3BvbGljeV9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmV3a0NvbnRleHQpCit7CisgICAgRVdL
X09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrQ29udGV4dCwgZXdrQ29udGV4dCwgaW1w
bCwgRVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCk7CisKKyAgICByZXR1cm4gaW1wbC0+aWdub3Jl
VExTRXJyb3JzKCk7Cit9CisKK3ZvaWQgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQo
Y29uc3QgRXdrX0NvbnRleHQgKmV3a0NvbnRleHQsIEV3a19UTFNfRXJyb3JfUG9saWN5IHRsc19l
cnJvcl9wb2xpY3kpCit7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdr
Q29udGV4dCwgZXdrQ29udGV4dCwgaW1wbCk7CisgICAgaW1wbC0+c2V0SWdub3JlVExTRXJyb3Jz
KHRsc19lcnJvcl9wb2xpY3kpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0LmgKaW5kZXggNDI4ZDdmMS4uOWU4NGU0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCkBAIC03NSw2ICs3NSwyMSBA
QCBlbnVtIEV3a19DYWNoZV9Nb2RlbCB7CiB0eXBlZGVmIGVudW0gRXdrX0NhY2hlX01vZGVsIEV3
a19DYWNoZV9Nb2RlbDsKIAogLyoqCisgKiBcZW51bSAgICBFd2tfVExTX0Vycm9yX1BvbGljeQor
ICoKKyAqIEBicmllZiAgIENvbnRhaW5zIG9wdGlvbiBmb3IgVExTIGVycm9yIHBvbGljeQorICov
CitlbnVtIEV3a19UTFNfRXJyb3JfUG9saWN5IHsKKyAgICAvLy8gRmFpbCBvbiBUTFMgZXJyb3Jz
LgorICAgIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwsCisgICAgLy8vIElnbm9yZSBUTFMgZXJy
b3JzLgorICAgIEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRQorfTsKKworLy8vIENyZWF0ZXMg
YSB0eXBlIG5hbWUgZm9yIHRoZSBFd2tfVExTX0Vycm9yX1BvbGljeS4KK3R5cGVkZWYgZW51bSBF
d2tfVExTX0Vycm9yX1BvbGljeSBFd2tfVExTX0Vycm9yX1BvbGljeTsKKworLyoqCiAgKiBAdHlw
ZWRlZiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IK
ICAqIEBicmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBld2tfY29udGV4dF91cmxfc2No
ZW1lX3JlZ2lzdGVyKCkuCiAgKi8KQEAgLTM2Miw2ICszNzcsMjMgQEAgRUFQSSB2b2lkIGV3a19j
b250ZXh0X21lc3NhZ2VfcG9zdF90b19pbmplY3RlZF9idW5kbGUoRXdrX0NvbnRleHQgKmNvbnRl
eHQsIGNvbnMKICAqLwogRUFQSSB2b2lkIGV3a19jb250ZXh0X21lc3NhZ2VfZnJvbV9pbmplY3Rl
ZF9idW5kbGVfY2FsbGJhY2tfc2V0KEV3a19Db250ZXh0ICpjb250ZXh0LCBFd2tfQ29udGV4dF9N
ZXNzYWdlX0Zyb21fSW5qZWN0ZWRfQnVuZGxlX0NiIGNhbGxiYWNrLCB2b2lkICp1c2VyX2RhdGEp
OwogCisvKioKKyAqIEdldHMgVExTIGVycm9yIHBvbGljeSBmb3IgQGEgY29udGV4dC4KKyAqCisg
KiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBnZXQgVExTIGVycm9yIHBvbGljeSBm
b3IuCisgKgorICogQHJldHVybiBUaGUgVExTIGVycm9ycyBwb2xpY3kgZm9yIHRoZSBjb250ZXh0
LgorICovCitFd2tfVExTX0Vycm9yX1BvbGljeSBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5
X2dldChjb25zdCBFd2tfQ29udGV4dCAqZXdrQ29udGV4dCk7CisKKy8qKgorICogU2V0cyBUTFMg
ZXJyb3IgcG9saWN5IGZvciBAYSBjb250ZXh0LgorICoKKyAqIEBwYXJhbSBjb250ZXh0IGNvbnRl
eHQgb2JqZWN0IHRvIHNldCBUTFMgZXJyb3IgcG9saWN5IGZvci4KKyAqIEBwYXJhbSBpZ25vcmVf
dGxzX2Vycm9ycyBhICNFd2tfVExTX0Vycm9yX1BvbGljeS4KKyAqLworRUFQSSB2b2lkIGV3a19j
b250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnN0IEV3a19Db250ZXh0ICpld2tDb250ZXh0
LCBFd2tfVExTX0Vycm9yX1BvbGljeSB0bHNfZXJyb3JfcG9saWN5KTsKKwogI2lmZGVmIF9fY3Bs
dXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaAppbmRleCA0NmMzNzJlLi40ZjQwMjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRf
cHJpdmF0ZS5oCkBAIC04MSw2ICs4MSwxMCBAQCBwdWJsaWM6CiAKICAgICBXZWJLaXQ6OkNvbnRl
eHRIaXN0b3J5Q2xpZW50RWZsKiBoaXN0b3J5Q2xpZW50KCk7CiAKKyAgICBFd2tfVExTX0Vycm9y
X1BvbGljeSBpZ25vcmVUTFNFcnJvcnMoKSBjb25zdDsKKworICAgIHZvaWQgc2V0SWdub3JlVExT
RXJyb3JzKEV3a19UTFNfRXJyb3JfUG9saWN5IFRMU0Vycm9yUG9saWN5KSBjb25zdDsKKwogI2lm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZvaWQgc2V0QWRkaXRpb25hbFBsdWdp
blBhdGgoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRp
bHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcAppbmRleCBiZDhjNjkzLi40NTg5OTU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxz
L0VXSzJVbml0VGVzdFNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCkBAIC0yMSwx
MyArMjEsMjIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFV0syVW5pdFRlc3RT
ZXJ2ZXIuaCIKIAotRVdLMlVuaXRUZXN0U2VydmVyOjpFV0syVW5pdFRlc3RTZXJ2ZXIoKQorRVdL
MlVuaXRUZXN0U2VydmVyOjpFV0syVW5pdFRlc3RTZXJ2ZXIoR1Rsc0NlcnRpZmljYXRlKiB0bHND
ZXJ0KQogewogICAgIFNvdXBBZGRyZXNzKiBhZGRyZXNzID0gc291cF9hZGRyZXNzX25ldygiMTI3
LjAuMC4xIiwgU09VUF9BRERSRVNTX0FOWV9QT1JUKTsKICAgICBzb3VwX2FkZHJlc3NfcmVzb2x2
ZV9zeW5jKGFkZHJlc3MsIDApOwogCi0gICAgbV9zb3VwU2VydmVyID0gc291cF9zZXJ2ZXJfbmV3
KFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRkcmVzcywgc3RhdGljX2Nhc3Q8Y2hhcio+KDApKTsK
LSAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0dHA6Ly8xMjcuMC4wLjEvIik7CisgICAg
aWYgKHRsc0NlcnQpIHsKKyAgICAgICAgbV9zb3VwU2VydmVyID0gc291cF9zZXJ2ZXJfbmV3KAor
ICAgICAgICAgICAgU09VUF9TRVJWRVJfVExTX0NFUlRJRklDQVRFLCB0bHNDZXJ0LAorICAgICAg
ICAgICAgU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxjaGFyKj4o
MCkpOworCisgICAgICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJpX25ldygiaHR0cHM6Ly8xMjcuMC4w
LjEvIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9zb3VwU2VydmVyID0gc291cF9zZXJ2ZXJf
bmV3KFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRkcmVzcywgc3RhdGljX2Nhc3Q8Y2hhcio+KDAp
KTsKKyAgICAgICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJodHRwOi8vMTI3LjAuMC4xLyIp
OworICAgIH0KKwogICAgIHNvdXBfdXJpX3NldF9wb3J0KG1fYmFzZVVSTCwgc291cF9zZXJ2ZXJf
Z2V0X3BvcnQobV9zb3VwU2VydmVyKSk7CiAgICAgZ19vYmplY3RfdW5yZWYoYWRkcmVzcyk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0
VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaAppbmRleCA4
MWQyNDhjLi5jOTA3OWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRU
ZXN0U2VydmVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKIAogY2xhc3MgRVdLMlVuaXRUZXN0U2VydmVy
IHsKIHB1YmxpYzoKLSAgICBFV0syVW5pdFRlc3RTZXJ2ZXIoKTsKKyAgICBFV0syVW5pdFRlc3RT
ZXJ2ZXIoR1Rsc0NlcnRpZmljYXRlKiB0bHNDZXJ0ID0gbnVsbHB0cik7CiAgICAgdmlydHVhbCB+
RVdLMlVuaXRUZXN0U2VydmVyKCk7CiAKICAgICBDU3RyaW5nIGdldFVSTEZvclBhdGgoY29uc3Qg
Y2hhciogcGF0aCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3NsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjU3M2NjNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3NsLmNwcApAQCAtMCwwICsxLDIwOSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IFVuaXZlcnNpdHkgb2YgU3plZ2Vk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2UuaCIKKyNpbmNsdWRlICJV
bml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oIgorCit1c2luZyBuYW1lc3BhY2UgRVdL
MlVuaXRUZXN0OworCitleHRlcm4gRVdLMlVuaXRUZXN0RW52aXJvbm1lbnQqIGVudmlyb25tZW50
OworCitzdGF0aWMgY29uc3QgY2hhciBpbmRleEhUTUxTdHJpbmdbXSA9CisgICAgIjxodG1sPiIK
KyAgICAiPGhlYWQ+PHRpdGxlPkVGTFdlYktpdDIgU1NMIHRlc3Q8L3RpdGxlPjwvaGVhZD4iCisg
ICAgIjxib2R5PjwvYm9keT48L2h0bWw+IjsKKworc3RhdGljIGJvb2wgZmluaXNoVGVzdCA9IGZh
bHNlOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgdGVzdFRpbWVvdXRTZWNvbmRzID0gMi4wOwor
CisjZGVmaW5lIFNUUklOR0lGWTIoeCkgI3gKKyNkZWZpbmUgU1RSSU5HSUZZKHgpIFNUUklOR0lG
WTIoeCkKKworc3RhdGljIGNvbnN0IGdjaGFyIGNlcnRpZmljYXRlX2RhdGFbXSA9IFNUUklOR0lG
WSgtLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCitNSUlDWFFJQkFBS0JnUUNtY1hidXNy
cjh6UXI4c25JYjBPVlFpYlZmZ3Y3elBqaC81eGRjcktPZWpKenAzZXBBCitBRjRUSVRlRlI5dnpX
SXdrbWtjUm9ZK0liUU5oaDdrZWZHVVlENDdidlZhbUpNdHE1Y0dZVnMwSG5nVCtLVE1hCitOR0gv
RzQ0S2tGSU9hei9iNWQvSk5LT05ybHF3eHFYUyttNklZNGwvRTFGZjI1WmpORDVUYUV2STF3SURB
UUFCCitBb0dCQUljRHY0QTloNlVPQnYyWkd5c3BOdnN2MmVyU2JsR09oWEpyV080YU5OZW1KSnNw
SXA0c0xpUENiREUzCithMXBvMTdYUldCa2JQejFoZ0w2YXhEWFFub2VvKytlYmZydlJTZWQrRnlz
NCs2U3Z1U3JQT3Y2UG1XVEJUL1dhCitHcE8rdHY0OEpVTnhDL0R5OFJPaXhCWE9WaXVJQkVGcTNO
ZlZINEhVMytSRzIwTmhBa0VBMUwzUkFoZGZQa0xJCis4Mmx1U09ZRTNFcTQ0bElDYi95WmkrSkVp
aHdTZVpUSktkWkh3WUQ4S1ZDak90akdyT215RXl2VGhyY0lBQ1F6CitKTEVyZVZoMzN3SkJBTWhK
bTlwekpKTmtJeUJnaVhBNjZGQXdiaGREelNUUHgwT0Jqb1ZXb2o2dTdqekd2SUZUCitDbjFhaVRC
WXp6c2lNQ2FDeCtXM2U2cEsvRGN2SFN3S3Jna0NRSFpNY3h3Qm1TSExDMmxubUQ4TFFXcXFWbkxy
CitmWlYrVm5mVnc1MDFEUVQwdW9QOE52eWdXQmcxVWY5WUtlcGZMWG5CcGlkRVFqdXA1Wktpdm5V
RXYrc0NRQThOCis2VmNNSEkydmt5eFYxVDdJVHJub1NmNFpySXU5eWw1Nm1IblJQelN5OVZsQUh0
OGhuTUk3VWVCK2JHVW5kck1PCitWWFFnekh6S1VoYmJ4YmVQdmZFQ1FRRFR0a091aEp5S0RmSEN4
TERjd05waStUNk9XVEVmQ3cvY3E5WldEYkE3Cit5Q1g4MXBReGZaa2ZNSVMxWUZJT0dIb3ZLMHJN
TVRyYUNlK2lETll0VnovTAorLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KKy0tLS0tQkVH
SU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJQjl6Q0NBV0FDQ1FEaldXVGVDNkJRdlRBTkJna3Foa2lH
OXcwQkFRUUZBREJBTVFzd0NRWURWUVFHRXdKQgorVlRFVE1CRUdBMVVFQ0JNS1UyOXRaUzFUZEdG
MFpURWNNQm9HQTFVRUNoTVRWMlZpUzJsMElFeGhlVzkxZENCVQorWlhOMGN6QWVGdzB3TnpBM01U
TXhNalV4TXpKYUZ3MDNNVEExTVRNd05qSXpNVFphTUVBeEN6QUpCZ05WQkFZVAorQWtGVk1STXdF
UVlEVlFRSUV3cFRiMjFsTFZOMFlYUmxNUnd3R2dZRFZRUUtFeE5YWldKTGFYUWdUR0Y1YjNWMAor
SUZSbGMzUnpNSUdmTUEwR0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUUNtY1hidXNycjh6
UXI4c25JYgorME9WUWliVmZndjd6UGpoLzV4ZGNyS09lakp6cDNlcEFBRjRUSVRlRlI5dnpXSXdr
bWtjUm9ZK0liUU5oaDdrZQorZkdVWUQ0N2J2VmFtSk10cTVjR1lWczBIbmdUK0tUTWFOR0gvRzQ0
S2tGSU9hei9iNWQvSk5LT05ybHF3eHFYUworK202SVk0bC9FMUZmMjVaak5ENVRhRXZJMXdJREFR
QUJNQTBHQ1NxR1NJYjNEUUVCQkFVQUE0R0JBQWZiVWJnRAorMDFPOERvWkEwMmMxTVVNYk1IUlBT
Yi9xZG9rMnB5V29DUGEvQlNhT0lhTlBlUGM4YXVQUmJyUzJYc1ZXU01mdAorQ1RYaVhtcksyWHgx
K2ZKdVpMQXAwQ1VuZzREZTRjREg1YzhudmxvY1ltWG8rMXg1M1M5RGZEMEtQcnlqQlJJNworOUxu
SnEyeXNIQVVhd2lxRlhsd0JhZzZtWGF3RDhZanpjWWF0CistLS0tLUVORCBDRVJUSUZJQ0FURS0t
LS0tKTsKKworY2xhc3MgRVdLMlNTTFRlc3QgOiBwdWJsaWMgRVdLMlVuaXRUZXN0QmFzZSB7Citw
dWJsaWM6CisKKyAgICBzdGF0aWMgdm9pZCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZEZhaWwodm9p
ZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQorICAgIHsKKyAgICAg
ICAgZmluaXNoVGVzdCA9IHRydWU7CisgICAgICAgIC8vIFRoZSB0ZXN0IHBhc3NlcyBpZiBhbiBT
U0wgZXJyb3Igb2NjdXJzLgorICAgICAgICBBU1NFUlRfVFJVRShld2tfZXJyb3JfY29kZV9nZXQo
c3RhdGljX2Nhc3Q8RXdrX0Vycm9yKj4oZXZlbnRJbmZvKSkgPT0gU09VUF9TVEFUVVNfU1NMX0ZB
SUxFRCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWRGYWlsKHZvaWQq
IHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqKQorICAgIHsKKyAgICAgICAgYm9vbCogaXNG
aW5pc2hlZCA9IHN0YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAgIGlmIChpc0Zp
bmlzaGVkKSB7CisgICAgICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIC8v
IFRoZSB0ZXN0IGZhaWxzIGlmIHRoZSBwYWdlIGlzIGxvYWRlZC4KKyAgICAgICAgICAgIEZBSUwo
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZFByb3Zpc2lvbmFs
RmFpbGVkSWdub3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5m
bykKKyAgICB7CisgICAgICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZXdrX2Vy
cm9yX2NvZGVfZ2V0KHN0YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykpID09IFNPVVBf
U1RBVFVTX1NTTF9GQUlMRUQpCisgICAgICAgIC8vIFRoZSB0ZXN0IGZhaWxzIGlmIGFuIFNTTCBl
cnJvciBvY2N1cnMuCisgICAgICAgICAgICBGQUlMKCk7CisgICAgfQorCisgICAgc3RhdGljIHZv
aWQgb25Mb2FkRmluaXNoZWRJZ25vcmUodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9p
ZCopCisgICAgeworICAgICAgICBib29sKiBpc0ZpbmlzaGVkID0gc3RhdGljX2Nhc3Q8Ym9vbCo+
KHVzZXJEYXRhKTsKKyAgICAgICAgZmluaXNoVGVzdCA9IHRydWU7CisgICAgICAgIC8vIFRoZSB0
ZXN0IHBhc3NlcyBpZiB0aGUgcGFnZSBpcyBsb2FkZWQuCisgICAgICAgIEFTU0VSVF9UUlVFKGlz
RmluaXNoZWQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrQmFkQ2Vy
dFBhZ2VMb2FkVGVzdChTb3VwU2VydmVyKiwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNo
YXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIHZvaWQqKQorICAgIHsK
KyAgICAgICAgaWYgKG1lc3NhZ2UtPm1ldGhvZCAhPSBTT1VQX01FVEhPRF9HRVQpIHsKKyAgICAg
ICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX05PVF9J
TVBMRU1FTlRFRCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoIXN0cmNtcChwYXRoLCAiL2luZGV4Lmh0bWwiKSkgeworICAgICAgICAgICAgc291cF9tZXNz
YWdlX3NldF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfT0spOworICAgICAgICAgICAgc291
cF9tZXNzYWdlX2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZ
X0NPUFksIGluZGV4SFRNTFN0cmluZywgc3RybGVuKGluZGV4SFRNTFN0cmluZykpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNP
VVBfU1RBVFVTX05PVF9GT1VORCk7CisKKyAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfY29tcGxl
dGUobWVzc2FnZS0+cmVzcG9uc2VfYm9keSk7CisgICAgfQorfTsKKworc3RhdGljIEdUbHNDZXJ0
aWZpY2F0ZSogZ2V0Q2VydGlmaWNhdGUoKQoreworICAgIEdFcnJvcioqIGdlcnJvcjsKKyAgICBH
VGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlID0gZ190bHNfY2VydGlmaWNhdGVfbmV3X2Zyb21f
cGVtKAorICAgICAgICBjZXJ0aWZpY2F0ZV9kYXRhLCBzaXplb2YoY2VydGlmaWNhdGVfZGF0YSks
IGdlcnJvcik7CisKKyAgICBpZiAoIWNlcnRpZmljYXRlKQorICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIlVuYWJsZSB0byBjcmVhdGUgY2VydGlmaWNhdGUgZnJvbSBQRU1cbiIpOworCisgICAgcmV0
dXJuIGNlcnRpZmljYXRlOworfQorCitURVNUX0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfc2V0X3Rs
c19lcnJvcl9wb2xpY3lfaWdub3JlKQoreworICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdr
X3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsKKworICAgIGV3a19jb250ZXh0X3Rsc19lcnJv
cl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSk7CisKKyAg
ICBBU1NFUlRfVFJVRShld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X2dldChjb250ZXh0KSA9
PSBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkUpOworfQorCitURVNUX0YoRVdLMlNTTFRlc3Qs
IGV3a19zc2xfc2V0X3Rsc19lcnJvcl9wb2xpY3lfZmFpbCkKK3sKKyAgICBFd2tfQ29udGV4dCog
Y29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBld2tfY29u
dGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb250ZXh0LCBFV0tfVExTX0VSUk9SX1BPTElDWV9G
QUlMKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0
KGNvbnRleHQpID09IEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOworfQorCitURVNUX0YoRVdL
MlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rlc3RfcG9saWN5X2lnbm9yZSkK
K3sKKyAgICBmaW5pc2hUZXN0ID0gZmFsc2U7CisKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9
IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7CisgICAgZXdrX2NvbnRleHRfdGxzX2Vy
cm9yX3BvbGljeV9zZXQoY29udGV4dCwgRVdLX1RMU19FUlJPUl9QT0xJQ1lfSUdOT1JFKTsKKwor
ICAgIEdUbHNDZXJ0aWZpY2F0ZSogVExTQ2VydGlmaWNhdGUgPSBnZXRDZXJ0aWZpY2F0ZSgpOwor
CisgICAgaWYgKCFUTFNDZXJ0aWZpY2F0ZSkKKyAgICAgICAgRkFJTCgpOworCisgICAgc3RkOjp1
bmlxdWVfcHRyPEVXSzJVbml0VGVzdFNlcnZlcj4gaHR0cHNTZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPEVXSzJVbml0VGVzdFNlcnZlcj4oVExTQ2VydGlmaWNhdGUpOworICAgIGh0dHBzU2VydmVy
LT5ydW4oc2VydmVyQ2FsbGJhY2tCYWRDZXJ0UGFnZUxvYWRUZXN0KTsKKworICAgIEV3a19FcnJv
ciogZXJyb3IgPSBudWxscHRyOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3
ZWJWaWV3KCksICJsb2FkLHByb3Zpc2lvbmFsLGZhaWxlZCIsIG9uTG9hZFByb3Zpc2lvbmFsRmFp
bGVkSWdub3JlLCAmZXJyb3IpOworCisgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7CisgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQsZmluaXNoZWQi
LCBvbkxvYWRGaW5pc2hlZElnbm9yZSwgJmlzRmluaXNoZWQpOworCisgICAgZXdrX3ZpZXdfdXJs
X3NldCh3ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvaW5kZXguaHRtbCIp
LmRhdGEoKSk7CisKKyAgICB3YWl0VW50aWxUcnVlKGZpbmlzaFRlc3QsIHRlc3RUaW1lb3V0U2Vj
b25kcyk7Cit9CisKK1RFU1RfRihFV0syU1NMVGVzdCwgZXdrX3NzbF9iYWRfY2VydF9wYWdlX2xv
YWRfdGVzdF9wb2xpY3lfZmFpbCkKK3sKKyAgICBmaW5pc2hUZXN0ID0gZmFsc2U7CisKKyAgICBF
d2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7Cisg
ICAgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQoY29udGV4dCwgRVdLX1RMU19FUlJP
Ul9QT0xJQ1lfRkFJTCk7CisKKyAgICBHVGxzQ2VydGlmaWNhdGUqIFRMU0NlcnRpZmljYXRlID0g
Z2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICghVExTQ2VydGlmaWNhdGUpCisgICAgICAgIEZB
SUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFV0syVW5pdFRlc3RTZXJ2ZXI+IGh0dHBzU2Vy
dmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5pdFRlc3RTZXJ2ZXI+KFRMU0NlcnRpZmljYXRl
KTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZlckNhbGxiYWNrQmFkQ2VydFBhZ2VMb2FkVGVz
dCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0gbnVsbHB0cjsKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxwcm92aXNpb25hbCxmYWlsZWQiLCBv
bkxvYWRQcm92aXNpb25hbEZhaWxlZEZhaWwsICZlcnJvcik7CisKKyAgICBib29sIGlzRmluaXNo
ZWQgPSBmYWxzZTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygp
LCAibG9hZCxmaW5pc2hlZCIsIG9uTG9hZEZpbmlzaGVkRmFpbCwgJmlzRmluaXNoZWQpOworCisg
ICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5nZXRVUkxGb3JQYXRo
KCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CisKKyAgICB3YWl0VW50aWxUcnVlKGZpbmlzaFRlc3Qs
IHRlc3RUaW1lb3V0U2Vjb25kcyk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227445</attachid>
            <date>2014-03-21 09:27:27 -0700</date>
            <delta_ts>2014-03-24 09:44:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v7.patch</filename>
            <type>text/plain</type>
            <size>16116</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3NmNiODU3Li5iZGQ0NWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMjEgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgV0syIEFQSSB0byBjb250cm9sIFRMUyBl
cnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFkZGVkIHRo
ZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAgICAgICAo
RXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250ZXh0X2ln
bm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVfdGxzX2Vy
cm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgorICAgICAg
ICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAgICAgKEVX
SzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oOgorICAg
ICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6CisgICAgICAg
IEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0wMy0yMSAg
Unl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0sy
XSBSZW1vdmUgRXdrX0Vycm9yIHBhcmFtZXRlciBmcm9tIHNvbWUgYXN5bmMgY2FsbGJhY2tzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDQyNDk4YWIuLjZmM2ZiZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCkBAIC00ODcsNiArNDg3LDcgQEAgc2V0KEVXSzJVbml0VGVzdHNfQklO
QVJJRVMKICAgICB0ZXN0X2V3azJfcG9wdXBfbWVudQogICAgIHRlc3RfZXdrMl9yZWZwdHJfZXZh
c19vYmplY3QKICAgICB0ZXN0X2V3azJfc2V0dGluZ3MKKyAgICB0ZXN0X2V3azJfc3NsCiAgICAg
dGVzdF9ld2syX3N0b3JhZ2VfbWFuYWdlcgogICAgIHRlc3RfZXdrMl90ZXh0X2NoZWNrZXIKICAg
ICB0ZXN0X2V3azJfdmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuY3BwCmluZGV4IDIzZmM2ZWMuLmM3YTQ1NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTM3MSw2ICszNzEs
MTYgQEAgdm9pZCBFd2tDb250ZXh0Ojpwcm9jZXNzUmVjZWl2ZWRNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW0KICAgICAgICAgbV9jYWxsYmFja0Zvck1lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUuY2FsbGJhY2sobmFtZS5kYXRhKCksIGJvZHkuZGF0YSgpLCBu
dWxscHRyLCBtX2NhbGxiYWNrRm9yTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZS51c2VyRGF0YSk7
CiB9CiAKK0V3a19UTFNfRXJyb3JfUG9saWN5IEV3a0NvbnRleHQ6Omlnbm9yZVRMU0Vycm9ycygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRvSW1wbChtX2NvbnRleHQuZ2V0KCkpLT5pZ25vcmVUTFNF
cnJvcnMoKSA/IEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSA6IEVXS19UTFNfRVJST1JfUE9M
SUNZX0ZBSUw7Cit9CisKK3ZvaWQgRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKEV3a19U
TFNfRXJyb3JfUG9saWN5IFRMU0Vycm9yUG9saWN5KSBjb25zdAoreworICAgIHRvSW1wbChtX2Nv
bnRleHQuZ2V0KCkpLT5zZXRJZ25vcmVUTFNFcnJvcnMoVExTRXJyb3JQb2xpY3kgPT0gRVdLX1RM
U19FUlJPUl9QT0xJQ1lfSUdOT1JFKTsKK30KKwogRXdrX0NvbnRleHQqIGV3a19jb250ZXh0X2Rl
ZmF1bHRfZ2V0KCkKIHsKICAgICByZXR1cm4gRXdrQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKTsK
QEAgLTQ2OSwzICs0NzksMTYgQEAgdm9pZCBld2tfY29udGV4dF9tZXNzYWdlX2Zyb21faW5qZWN0
ZWRfYnVuZGxlX2NhbGxiYWNrX3NldChFd2tfQ29udGV4dCogZXdrQ29udGUKIAogICAgIGltcGwt
PnNldE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjayhjYWxsYmFjaywgdXNlckRhdGEp
OwogfQorCitFd2tfVExTX0Vycm9yX1BvbGljeSBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5
X2dldChjb25zdCBFd2tfQ29udGV4dCAqY29udGV4dCkKK3sKKyAgICBFV0tfT0JKX0dFVF9JTVBM
X09SX1JFVFVSTihjb25zdCBFd2tDb250ZXh0LCBjb250ZXh0LCBpbXBsLCBFV0tfVExTX0VSUk9S
X1BPTElDWV9GQUlMKTsKKworICAgIHJldHVybiBpbXBsLT5pZ25vcmVUTFNFcnJvcnMoKTsKK30K
Kwordm9pZCBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb25zdCBFd2tfQ29udGV4
dCAqY29udGV4dCwgRXdrX1RMU19FcnJvcl9Qb2xpY3kgdGxzX2Vycm9yX3BvbGljeSkKK3sKKyAg
ICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tDb250ZXh0LCBjb250ZXh0LCBp
bXBsKTsKKyAgICBpbXBsLT5zZXRJZ25vcmVUTFNFcnJvcnModGxzX2Vycm9yX3BvbGljeSk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaAppbmRl
eCA0MjhkN2YxLi4zZTM5OWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0LmgKQEAgLTc1LDYgKzc1LDE5IEBAIGVudW0gRXdrX0NhY2hlX01vZGVs
IHsKIHR5cGVkZWYgZW51bSBFd2tfQ2FjaGVfTW9kZWwgRXdrX0NhY2hlX01vZGVsOwogCiAvKioK
KyAqIFxlbnVtICAgIEV3a19UTFNfRXJyb3JfUG9saWN5CisgKgorICogQGJyaWVmICAgQ29udGFp
bnMgb3B0aW9uIGZvciBUTFMgZXJyb3IgcG9saWN5CisgKi8KK2VudW0gRXdrX1RMU19FcnJvcl9Q
b2xpY3kgeworICAgIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwsIC8vIEZhaWwgb24gVExTIGVy
cm9ycy4KKyAgICBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkUgLy8gSWdub3JlIFRMUyBlcnJv
cnMuCit9OworCisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgdGhlIEV3a19UTFNfRXJyb3Jf
UG9saWN5LgordHlwZWRlZiBlbnVtIEV3a19UTFNfRXJyb3JfUG9saWN5IEV3a19UTFNfRXJyb3Jf
UG9saWN5OworCisvKioKICAqIEB0eXBlZGVmIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgRXdr
X1VybF9TY2hlbWVfUmVxdWVzdF9DYgogICogQGJyaWVmIENhbGxiYWNrIHR5cGUgZm9yIHVzZSB3
aXRoIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoKS4KICAqLwpAQCAtMzYyLDYgKzM3
NSwyMyBAQCBFQVBJIHZvaWQgZXdrX2NvbnRleHRfbWVzc2FnZV9wb3N0X3RvX2luamVjdGVkX2J1
bmRsZShFd2tfQ29udGV4dCAqY29udGV4dCwgY29ucwogICovCiBFQVBJIHZvaWQgZXdrX2NvbnRl
eHRfbWVzc2FnZV9mcm9tX2luamVjdGVkX2J1bmRsZV9jYWxsYmFja19zZXQoRXdrX0NvbnRleHQg
KmNvbnRleHQsIEV3a19Db250ZXh0X01lc3NhZ2VfRnJvbV9JbmplY3RlZF9CdW5kbGVfQ2IgY2Fs
bGJhY2ssIHZvaWQgKnVzZXJfZGF0YSk7CiAKKy8qKgorICogR2V0cyBUTFMgZXJyb3IgcG9saWN5
IGZvciBAYSBjb250ZXh0LgorICoKKyAqIEBwYXJhbSBjb250ZXh0IGNvbnRleHQgb2JqZWN0IHRv
IGdldCBUTFMgZXJyb3IgcG9saWN5IGZvcgorICoKKyAqIEByZXR1cm4gVGhlIFRMUyBlcnJvcnMg
cG9saWN5IGZvciB0aGUgY29udGV4dAorICovCitFd2tfVExTX0Vycm9yX1BvbGljeSBld2tfY29u
dGV4dF90bHNfZXJyb3JfcG9saWN5X2dldChjb25zdCBFd2tfQ29udGV4dCAqY29udGV4dCk7CisK
Ky8qKgorICogU2V0cyBUTFMgZXJyb3IgcG9saWN5IGZvciBAYSBjb250ZXh0LgorICoKKyAqIEBw
YXJhbSBjb250ZXh0IGNvbnRleHQgb2JqZWN0IHRvIHNldCBUTFMgZXJyb3IgcG9saWN5IGZvcgor
ICogQHBhcmFtIGlnbm9yZV90bHNfZXJyb3JzIGEgI0V3a19UTFNfRXJyb3JfUG9saWN5CisgKi8K
K0VBUEkgdm9pZCBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb25zdCBFd2tfQ29u
dGV4dCAqY29udGV4dCwgRXdrX1RMU19FcnJvcl9Qb2xpY3kgdGxzX2Vycm9yX3BvbGljeSk7CisK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggNDZjMzcyZS4u
NGY0MDI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0X3ByaXZhdGUuaApAQCAtODEsNiArODEsMTAgQEAgcHVibGljOgogCiAgICAg
V2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbCogaGlzdG9yeUNsaWVudCgpOwogCisgICAg
RXdrX1RMU19FcnJvcl9Qb2xpY3kgaWdub3JlVExTRXJyb3JzKCkgY29uc3Q7CisKKyAgICB2b2lk
IHNldElnbm9yZVRMU0Vycm9ycyhFd2tfVExTX0Vycm9yX1BvbGljeSBUTFNFcnJvclBvbGljeSkg
Y29uc3Q7CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB2b2lkIHNldEFk
ZGl0aW9uYWxQbHVnaW5QYXRoKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJV
bml0VGVzdFNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0
cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAKaW5kZXggYmQ4YzY5My4uNDU4
OTk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
VW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVy
LmNwcApAQCAtMjEsMTMgKzIxLDIyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
RVdLMlVuaXRUZXN0U2VydmVyLmgiCiAKLUVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0
U2VydmVyKCkKK0VXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKEdUbHNDZXJ0
aWZpY2F0ZSogdGxzQ2VydCkKIHsKICAgICBTb3VwQWRkcmVzcyogYWRkcmVzcyA9IHNvdXBfYWRk
cmVzc19uZXcoIjEyNy4wLjAuMSIsIFNPVVBfQUREUkVTU19BTllfUE9SVCk7CiAgICAgc291cF9h
ZGRyZXNzX3Jlc29sdmVfc3luYyhhZGRyZXNzLCAwKTsKIAotICAgIG1fc291cFNlcnZlciA9IHNv
dXBfc2VydmVyX25ldyhTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0
PGNoYXIqPigwKSk7Ci0gICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJodHRwOi8vMTI3LjAu
MC4xLyIpOworICAgIGlmICh0bHNDZXJ0KSB7CisgICAgICAgIG1fc291cFNlcnZlciA9IHNvdXBf
c2VydmVyX25ldygKKyAgICAgICAgICAgIFNPVVBfU0VSVkVSX1RMU19DRVJUSUZJQ0FURSwgdGxz
Q2VydCwKKyAgICAgICAgICAgIFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRkcmVzcywgc3RhdGlj
X2Nhc3Q8Y2hhcio+KDApKTsKKworICAgICAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0
dHBzOi8vMTI3LjAuMC4xLyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fc291cFNlcnZlciA9
IHNvdXBfc2VydmVyX25ldyhTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19j
YXN0PGNoYXIqPigwKSk7CisgICAgICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJpX25ldygiaHR0cDov
LzEyNy4wLjAuMS8iKTsKKyAgICB9CisKICAgICBzb3VwX3VyaV9zZXRfcG9ydChtX2Jhc2VVUkws
IHNvdXBfc2VydmVyX2dldF9wb3J0KG1fc291cFNlcnZlcikpOwogICAgIGdfb2JqZWN0X3VucmVm
KGFkZHJlc3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2Vy
dmVyLmgKaW5kZXggODFkMjQ4Yy4uYzkwNzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0
aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAKIGNsYXNzIEVXSzJV
bml0VGVzdFNlcnZlciB7CiBwdWJsaWM6Ci0gICAgRVdLMlVuaXRUZXN0U2VydmVyKCk7CisgICAg
RVdLMlVuaXRUZXN0U2VydmVyKEdUbHNDZXJ0aWZpY2F0ZSogdGxzQ2VydCA9IG51bGxwdHIpOwog
ICAgIHZpcnR1YWwgfkVXSzJVbml0VGVzdFNlcnZlcigpOwogCiAgICAgQ1N0cmluZyBnZXRVUkxG
b3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3NsLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2FlMDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAKQEAg
LTAsMCArMSwyMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgU2Ftc3VuZyBFbGVjdHJv
bmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBVbml2ZXJz
aXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmgi
CisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaCIKKwordXNpbmcg
bmFtZXNwYWNlIEVXSzJVbml0VGVzdDsKKworZXh0ZXJuIEVXSzJVbml0VGVzdEVudmlyb25tZW50
KiBlbnZpcm9ubWVudDsKKworc3RhdGljIGNvbnN0IGNoYXIgaW5kZXhIVE1MU3RyaW5nW10gPQor
ICAgICI8aHRtbD4iCisgICAgIjxoZWFkPjx0aXRsZT5FRkxXZWJLaXQyIFNTTCB0ZXN0PC90aXRs
ZT48L2hlYWQ+IgorICAgICI8Ym9keT48L2JvZHk+PC9odG1sPiI7CisKK3N0YXRpYyBib29sIGZp
bmlzaFRlc3QgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHRlc3RUaW1lb3V0U2Vj
b25kcyA9IDIuMDsKKworI2RlZmluZSBTVFJJTkdJRlkyKHgpICN4CisjZGVmaW5lIFNUUklOR0lG
WSh4KSBTVFJJTkdJRlkyKHgpCisKK3N0YXRpYyBjb25zdCBnY2hhciBjZXJ0aWZpY2F0ZV9kYXRh
W10gPSBTVFJJTkdJRlkoLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQorTUlJQ1hRSUJB
QUtCZ1FDbWNYYnVzcnI4elFyOHNuSWIwT1ZRaWJWZmd2N3pQamgvNXhkY3JLT2VqSnpwM2VwQQor
QUY0VElUZUZSOXZ6V0l3a21rY1JvWStJYlFOaGg3a2VmR1VZRDQ3YnZWYW1KTXRxNWNHWVZzMEhu
Z1QrS1RNYQorTkdIL0c0NEtrRklPYXovYjVkL0pOS09Ocmxxd3hxWFMrbTZJWTRsL0UxRmYyNVpq
TkQ1VGFFdkkxd0lEQVFBQgorQW9HQkFJY0R2NEE5aDZVT0J2MlpHeXNwTnZzdjJlclNibEdPaFhK
cldPNGFOTmVtSkpzcElwNHNMaVBDYkRFMworYTFwbzE3WFJXQmtiUHoxaGdMNmF4RFhRbm9lbysr
ZWJmcnZSU2VkK0Z5czQrNlN2dVNyUE92NlBtV1RCVC9XYQorR3BPK3R2NDhKVU54Qy9EeThST2l4
QlhPVml1SUJFRnEzTmZWSDRIVTMrUkcyME5oQWtFQTFMM1JBaGRmUGtMSQorODJsdVNPWUUzRXE0
NGxJQ2IveVppK0pFaWh3U2VaVEpLZFpId1lEOEtWQ2pPdGpHck9teUV5dlRocmNJQUNRegorSkxF
cmVWaDMzd0pCQU1oSm05cHpKSk5rSXlCZ2lYQTY2RkF3YmhkRHpTVFB4ME9Cam9WV29qNnU3anpH
dklGVAorQ24xYWlUQll6enNpTUNhQ3grVzNlNnBLL0RjdkhTd0tyZ2tDUUhaTWN4d0JtU0hMQzJs
bm1EOExRV3FxVm5McgorZlpWK1ZuZlZ3NTAxRFFUMHVvUDhOdnlnV0JnMVVmOVlLZXBmTFhuQnBp
ZEVRanVwNVpLaXZuVUV2K3NDUUE4TgorNlZjTUhJMnZreXhWMVQ3SVRybm9TZjRackl1OXlsNTZt
SG5SUHpTeTlWbEFIdDhobk1JN1VlQitiR1VuZHJNTworVlhRZ3pIektVaGJieGJlUHZmRUNRUURU
dGtPdWhKeUtEZkhDeExEY3dOcGkrVDZPV1RFZkN3L2NxOVpXRGJBNworeUNYODFwUXhmWmtmTUlT
MVlGSU9HSG92SzByTU1UcmFDZStpRE5ZdFZ6L0wKKy0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0t
LS0tCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUI5ekNDQVdBQ0NRRGpXV1RlQzZC
UXZUQU5CZ2txaGtpRzl3MEJBUVFGQURCQU1Rc3dDUVlEVlFRR0V3SkIKK1ZURVRNQkVHQTFVRUNC
TUtVMjl0WlMxVGRHRjBaVEVjTUJvR0ExVUVDaE1UVjJWaVMybDBJRXhoZVc5MWRDQlUKK1pYTjBj
ekFlRncwd056QTNNVE14TWpVeE16SmFGdzAzTVRBMU1UTXdOakl6TVRaYU1FQXhDekFKQmdOVkJB
WVQKK0FrRlZNUk13RVFZRFZRUUlFd3BUYjIxbExWTjBZWFJsTVJ3d0dnWURWUVFLRXhOWFpXSkxh
WFFnVEdGNWIzVjAKK0lGUmxjM1J6TUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtC
Z1FDbWNYYnVzcnI4elFyOHNuSWIKKzBPVlFpYlZmZ3Y3elBqaC81eGRjcktPZWpKenAzZXBBQUY0
VElUZUZSOXZ6V0l3a21rY1JvWStJYlFOaGg3a2UKK2ZHVVlENDdidlZhbUpNdHE1Y0dZVnMwSG5n
VCtLVE1hTkdIL0c0NEtrRklPYXovYjVkL0pOS09Ocmxxd3hxWFMKKyttNklZNGwvRTFGZjI1WmpO
RDVUYUV2STF3SURBUUFCTUEwR0NTcUdTSWIzRFFFQkJBVUFBNEdCQUFmYlViZ0QKKzAxTzhEb1pB
MDJjMU1VTWJNSFJQU2IvcWRvazJweVdvQ1BhL0JTYU9JYU5QZVBjOGF1UFJiclMyWHNWV1NNZnQK
K0NUWGlYbXJLMlh4MStmSnVaTEFwMENVbmc0RGU0Y0RINWM4bnZsb2NZbVhvKzF4NTNTOURmRDBL
UHJ5akJSSTcKKzlMbkpxMnlzSEFVYXdpcUZYbHdCYWc2bVhhd0Q4WWp6Y1lhdAorLS0tLS1FTkQg
Q0VSVElGSUNBVEUtLS0tLSk7CisKK2NsYXNzIEVXSzJTU0xUZXN0IDogcHVibGljIEVXSzJVbml0
VGVzdEJhc2UgeworcHVibGljOgorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkUHJvdmlzaW9uYWxG
YWlsZWRGYWlsKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykK
KyAgICB7CisgICAgICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICAvLyBUaGUgdGVzdCBw
YXNzZXMgaWYgYW4gU1NMIGVycm9yIG9jY3Vycy4KKyAgICAgICAgQVNTRVJUX1RSVUUoZXdrX2Vy
cm9yX2NvZGVfZ2V0KHN0YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykpID09IFNPVVBf
U1RBVFVTX1NTTF9GQUlMRUQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZEZpbmlz
aGVkRmFpbCh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKikKKyAgICB7CisgICAg
ICAgIGJvb2wqIGlzRmluaXNoZWQgPSBzdGF0aWNfY2FzdDxib29sKj4odXNlckRhdGEpOworICAg
ICAgICBpZiAoaXNGaW5pc2hlZCkgeworICAgICAgICAgICAgZmluaXNoVGVzdCA9IHRydWU7Cisg
ICAgICAgICAgICAvLyBUaGUgdGVzdCBmYWlscyBpZiB0aGUgcGFnZSBpcyBsb2FkZWQuCisgICAg
ICAgICAgICBGQUlMKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBvbkxv
YWRQcm92aXNpb25hbEZhaWxlZElnbm9yZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2
b2lkKiBldmVudEluZm8pCisgICAgeworICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAg
ICAgaWYgKGV3a19lcnJvcl9jb2RlX2dldChzdGF0aWNfY2FzdDxFd2tfRXJyb3IqPihldmVudElu
Zm8pKSA9PSBTT1VQX1NUQVRVU19TU0xfRkFJTEVEKQorICAgICAgICAgICAgLy8gVGhlIHRlc3Qg
ZmFpbHMgaWYgYW4gU1NMIGVycm9yIG9jY3Vycy4KKyAgICAgICAgICAgIEZBSUwoKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgdm9pZCBvbkxvYWRGaW5pc2hlZElnbm9yZSh2b2lkKiB1c2VyRGF0YSwg
RXZhc19PYmplY3QqLCB2b2lkKikKKyAgICB7CisgICAgICAgIGJvb2wqIGlzRmluaXNoZWQgPSBz
dGF0aWNfY2FzdDxib29sKj4odXNlckRhdGEpOworICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsK
KyAgICAgICAgLy8gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwYWdlIGlzIGxvYWRlZC4KKyAgICAg
ICAgQVNTRVJUX1RSVUUoaXNGaW5pc2hlZCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgc2Vy
dmVyQ2FsbGJhY2tCYWRDZXJ0UGFnZUxvYWRUZXN0KFNvdXBTZXJ2ZXIqLCBTb3VwTWVzc2FnZSog
bWVzc2FnZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNvdXBDbGllbnRDb250ZXh0
Kiwgdm9pZCopCisgICAgeworICAgICAgICBpZiAobWVzc2FnZS0+bWV0aG9kICE9IFNPVVBfTUVU
SE9EX0dFVCkgeworICAgICAgICAgICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVzc2FnZSwg
U09VUF9TVEFUVVNfTk9UX0lNUExFTUVOVEVEKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICghc3RyY21wKHBhdGgsICIvaW5kZXguaHRtbCIpKSB7CisgICAg
ICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19PSyk7
CisgICAgICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2Vf
Ym9keSwgU09VUF9NRU1PUllfQ09QWSwgaW5kZXhIVE1MU3RyaW5nLCBzdHJsZW4oaW5kZXhIVE1M
U3RyaW5nKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc291cF9tZXNzYWdlX3NldF9z
dGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfTk9UX0ZPVU5EKTsKKworICAgICAgICBzb3VwX21l
c3NhZ2VfYm9keV9jb21wbGV0ZShtZXNzYWdlLT5yZXNwb25zZV9ib2R5KTsKKyAgICB9Cit9Owor
CitzdGF0aWMgR1Rsc0NlcnRpZmljYXRlKiBnZXRDZXJ0aWZpY2F0ZSgpCit7CisgICAgR0Vycm9y
KiogZ2Vycm9yOworICAgIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUgPSBnX3Rsc19jZXJ0
aWZpY2F0ZV9uZXdfZnJvbV9wZW0oCisgICAgICAgIGNlcnRpZmljYXRlX2RhdGEsIHNpemVvZihj
ZXJ0aWZpY2F0ZV9kYXRhKSwgZ2Vycm9yKTsKKworICAgIGlmICghY2VydGlmaWNhdGUpCisgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGNyZWF0ZSBjZXJ0aWZpY2F0ZSBmcm9tIFBF
TVxuIik7CisKKyAgICByZXR1cm4gY2VydGlmaWNhdGU7Cit9CisKK1RFU1RfRihFV0syU1NMVGVz
dCwgZXdrX3NzbF9zZXRfdGxzX2Vycm9yX3BvbGljeV9pZ25vcmUpCit7CisgICAgRXdrX0NvbnRl
eHQqIGNvbnRleHQgPSBld2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworCisgICAgZXdr
X2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQoY29udGV4dCwgRVdLX1RMU19FUlJPUl9QT0xJ
Q1lfSUdOT1JFKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xp
Y3lfZ2V0KGNvbnRleHQpID09IEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSk7Cit9CisKK1RF
U1RfRihFV0syU1NMVGVzdCwgZXdrX3NzbF9zZXRfdGxzX2Vycm9yX3BvbGljeV9mYWlsKQorewor
ICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygp
KTsKKworICAgIGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19U
TFNfRVJST1JfUE9MSUNZX0ZBSUwpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX2NvbnRleHRfdGxz
X2Vycm9yX3BvbGljeV9nZXQoY29udGV4dCkgPT0gRVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCk7
Cit9CisKK1RFU1RfRihFV0syU1NMVGVzdCwgZXdrX3NzbF9iYWRfY2VydF9wYWdlX2xvYWRfdGVz
dF9wb2xpY3lfaWdub3JlKQoreworICAgIGZpbmlzaFRlc3QgPSBmYWxzZTsKKworICAgIEV3a19D
b250ZXh0KiBjb250ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsKKyAgICBl
d2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb250ZXh0LCBFV0tfVExTX0VSUk9SX1BP
TElDWV9JR05PUkUpOworCisgICAgR1Rsc0NlcnRpZmljYXRlKiBUTFNDZXJ0aWZpY2F0ZSA9IGdl
dENlcnRpZmljYXRlKCk7CisKKyAgICBpZiAoIVRMU0NlcnRpZmljYXRlKQorICAgICAgICBGQUlM
KCk7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RVdLMlVuaXRUZXN0U2VydmVyPiBodHRwc1NlcnZl
ciA9IHN0ZDo6bWFrZV91bmlxdWU8RVdLMlVuaXRUZXN0U2VydmVyPihUTFNDZXJ0aWZpY2F0ZSk7
CisgICAgaHR0cHNTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRlc3Qp
OworCisgICAgRXdrX0Vycm9yKiBlcnJvciA9IG51bGxwdHI7CisgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQscHJvdmlzaW9uYWwsZmFpbGVkIiwgb25M
b2FkUHJvdmlzaW9uYWxGYWlsZWRJZ25vcmUsICZlcnJvcik7CisKKyAgICBib29sIGlzRmluaXNo
ZWQgPSBmYWxzZTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygp
LCAibG9hZCxmaW5pc2hlZCIsIG9uTG9hZEZpbmlzaGVkSWdub3JlLCAmaXNGaW5pc2hlZCk7CisK
KyAgICBld2tfdmlld191cmxfc2V0KHdlYlZpZXcoKSwgaHR0cHNTZXJ2ZXItPmdldFVSTEZvclBh
dGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKKworICAgIHdhaXRVbnRpbFRydWUoZmluaXNoVGVz
dCwgdGVzdFRpbWVvdXRTZWNvbmRzKTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3Ns
X2JhZF9jZXJ0X3BhZ2VfbG9hZF90ZXN0X3BvbGljeV9mYWlsKQoreworICAgIGZpbmlzaFRlc3Qg
PSBmYWxzZTsKKworICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9n
ZXQod2ViVmlldygpKTsKKyAgICBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb250
ZXh0LCBFV0tfVExTX0VSUk9SX1BPTElDWV9GQUlMKTsKKworICAgIEdUbHNDZXJ0aWZpY2F0ZSog
VExTQ2VydGlmaWNhdGUgPSBnZXRDZXJ0aWZpY2F0ZSgpOworCisgICAgaWYgKCFUTFNDZXJ0aWZp
Y2F0ZSkKKyAgICAgICAgRkFJTCgpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPEVXSzJVbml0VGVz
dFNlcnZlcj4gaHR0cHNTZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEVXSzJVbml0VGVzdFNlcnZl
cj4oVExTQ2VydGlmaWNhdGUpOworICAgIGh0dHBzU2VydmVyLT5ydW4oc2VydmVyQ2FsbGJhY2tC
YWRDZXJ0UGFnZUxvYWRUZXN0KTsKKworICAgIEV3a19FcnJvciogZXJyb3IgPSBudWxscHRyOwor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3KCksICJsb2FkLHByb3Zp
c2lvbmFsLGZhaWxlZCIsIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVkRmFpbCwgJmVycm9yKTsKKwor
ICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZhbHNlOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxi
YWNrX2FkZCh3ZWJWaWV3KCksICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmluaXNoZWRGYWlsLCAm
aXNGaW5pc2hlZCk7CisKKyAgICBld2tfdmlld191cmxfc2V0KHdlYlZpZXcoKSwgaHR0cHNTZXJ2
ZXItPmdldFVSTEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKKworICAgIHdhaXRVbnRp
bFRydWUoZmluaXNoVGVzdCwgdGVzdFRpbWVvdXRTZWNvbmRzKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227659</attachid>
            <date>2014-03-24 09:44:17 -0700</date>
            <delta_ts>2014-03-25 08:55:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v8.patch</filename>
            <type>text/plain</type>
            <size>16111</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhNGU0ZjQyLi4zZTViNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMjQgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBld2sgQVBJcyB0byBjb250cm9s
IFRMUyBlcnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFk
ZGVkIHRoZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAg
ICAgICAoRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250
ZXh0X2lnbm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVf
dGxzX2Vycm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgor
ICAgICAgICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAg
ICAgKEVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
OgorICAgICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6Cisg
ICAgICAgIEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0w
My0yNCAgRMOhbmllbCBCw6F0eWFpICA8ZGJhdHlhaS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gQnVpbGRmaXggYWZ0ZXIgcjE2NjE1OS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNDI0OThhYi4uNmYzZmJmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTQ4Nyw2ICs0ODcsNyBAQCBzZXQoRVdLMlVuaXRUZXN0c19CSU5BUklF
UwogICAgIHRlc3RfZXdrMl9wb3B1cF9tZW51CiAgICAgdGVzdF9ld2syX3JlZnB0cl9ldmFzX29i
amVjdAogICAgIHRlc3RfZXdrMl9zZXR0aW5ncworICAgIHRlc3RfZXdrMl9zc2wKICAgICB0ZXN0
X2V3azJfc3RvcmFnZV9tYW5hZ2VyCiAgICAgdGVzdF9ld2syX3RleHRfY2hlY2tlcgogICAgIHRl
c3RfZXdrMl92aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5jcHAKaW5kZXggMjNmYzZlYy4uYzdhNDU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtMzcxLDYgKzM3MSwxNiBA
QCB2b2lkIEV3a0NvbnRleHQ6OnByb2Nlc3NSZWNlaXZlZE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbQogICAgICAgICBtX2NhbGxiYWNrRm9yTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZS5jYWxsYmFjayhuYW1lLmRhdGEoKSwgYm9keS5kYXRhKCksIG51bGxw
dHIsIG1fY2FsbGJhY2tGb3JNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLnVzZXJEYXRhKTsKIH0K
IAorRXdrX1RMU19FcnJvcl9Qb2xpY3kgRXdrQ29udGV4dDo6aWdub3JlVExTRXJyb3JzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdG9JbXBsKG1fY29udGV4dC5nZXQoKSktPmlnbm9yZVRMU0Vycm9y
cygpID8gRVdLX1RMU19FUlJPUl9QT0xJQ1lfSUdOT1JFIDogRVdLX1RMU19FUlJPUl9QT0xJQ1lf
RkFJTDsKK30KKwordm9pZCBFd2tDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMoRXdrX1RMU19F
cnJvcl9Qb2xpY3kgVExTRXJyb3JQb2xpY3kpIGNvbnN0Cit7CisgICAgdG9JbXBsKG1fY29udGV4
dC5nZXQoKSktPnNldElnbm9yZVRMU0Vycm9ycyhUTFNFcnJvclBvbGljeSA9PSBFV0tfVExTX0VS
Uk9SX1BPTElDWV9JR05PUkUpOworfQorCiBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfZGVmYXVs
dF9nZXQoKQogewogICAgIHJldHVybiBFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpOwpAQCAt
NDY5LDMgKzQ3OSwxNiBAQCB2b2lkIGV3a19jb250ZXh0X21lc3NhZ2VfZnJvbV9pbmplY3RlZF9i
dW5kbGVfY2FsbGJhY2tfc2V0KEV3a19Db250ZXh0KiBld2tDb250ZQogCiAgICAgaW1wbC0+c2V0
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZUNhbGxiYWNrKGNhbGxiYWNrLCB1c2VyRGF0YSk7CiB9
CisKK0V3a19UTFNfRXJyb3JfUG9saWN5IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0
KGNvbnN0IEV3a19Db250ZXh0ICpjb250ZXh0KQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1Jf
UkVUVVJOKGNvbnN0IEV3a0NvbnRleHQsIGNvbnRleHQsIGltcGwsIEVXS19UTFNfRVJST1JfUE9M
SUNZX0ZBSUwpOworCisgICAgcmV0dXJuIGltcGwtPmlnbm9yZVRMU0Vycm9ycygpOworfQorCit2
b2lkIGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnN0IEV3a19Db250ZXh0ICpj
b250ZXh0LCBFd2tfVExTX0Vycm9yX1BvbGljeSB0bHNfZXJyb3JfcG9saWN5KQoreworICAgIEVX
S19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0NvbnRleHQsIGNvbnRleHQsIGltcGwp
OworICAgIGltcGwtPnNldElnbm9yZVRMU0Vycm9ycyh0bHNfZXJyb3JfcG9saWN5KTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCmluZGV4IDQy
OGQ3ZjEuLjNmNTcyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuaApAQCAtNzUsNiArNzUsMTkgQEAgZW51bSBFd2tfQ2FjaGVfTW9kZWwgewog
dHlwZWRlZiBlbnVtIEV3a19DYWNoZV9Nb2RlbCBFd2tfQ2FjaGVfTW9kZWw7CiAKIC8qKgorICog
XGVudW0gICAgRXdrX1RMU19FcnJvcl9Qb2xpY3kKKyAqCisgKiBAYnJpZWYgICBDb250YWlucyBv
cHRpb24gZm9yIFRMUyBlcnJvciBwb2xpY3kKKyAqLworZW51bSBFd2tfVExTX0Vycm9yX1BvbGlj
eSB7CisgICAgRVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCwgLy8gRmFpbCBvbiBUTFMgZXJyb3Jz
LgorICAgIEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSAvLyBJZ25vcmUgVExTIGVycm9ycy4K
K307CisKKy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIHRoZSBFd2tfVExTX0Vycm9yX1BvbGlj
eS4KK3R5cGVkZWYgZW51bSBFd2tfVExTX0Vycm9yX1BvbGljeSBFd2tfVExTX0Vycm9yX1BvbGlj
eTsKKworLyoqCiAgKiBAdHlwZWRlZiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIEV3a19Vcmxf
U2NoZW1lX1JlcXVlc3RfQ2IKICAqIEBicmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBl
d2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKCkuCiAgKi8KQEAgLTM2Miw2ICszNzUsMjMg
QEAgRUFQSSB2b2lkIGV3a19jb250ZXh0X21lc3NhZ2VfcG9zdF90b19pbmplY3RlZF9idW5kbGUo
RXdrX0NvbnRleHQgKmNvbnRleHQsIGNvbnMKICAqLwogRUFQSSB2b2lkIGV3a19jb250ZXh0X21l
c3NhZ2VfZnJvbV9pbmplY3RlZF9idW5kbGVfY2FsbGJhY2tfc2V0KEV3a19Db250ZXh0ICpjb250
ZXh0LCBFd2tfQ29udGV4dF9NZXNzYWdlX0Zyb21fSW5qZWN0ZWRfQnVuZGxlX0NiIGNhbGxiYWNr
LCB2b2lkICp1c2VyX2RhdGEpOwogCisvKioKKyAqIEdldHMgVExTIGVycm9yIHBvbGljeSBmb3Ig
QGEgY29udGV4dC4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBnZXQg
VExTIGVycm9yIHBvbGljeSBmb3IKKyAqCisgKiBAcmV0dXJuIFRoZSBUTFMgZXJyb3JzIHBvbGlj
eSBmb3IgdGhlIGNvbnRleHQKKyAqLworRXdrX1RMU19FcnJvcl9Qb2xpY3kgZXdrX2NvbnRleHRf
dGxzX2Vycm9yX3BvbGljeV9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNvbnRleHQpOworCisvKioK
KyAqIFNldHMgVExTIGVycm9yIHBvbGljeSBmb3IgQGEgY29udGV4dC4KKyAqCisgKiBAcGFyYW0g
Y29udGV4dCBjb250ZXh0IG9iamVjdCB0byBzZXQgVExTIGVycm9yIHBvbGljeSBmb3IKKyAqIEBw
YXJhbSBpZ25vcmVfdGxzX2Vycm9ycyBhICNFd2tfVExTX0Vycm9yX1BvbGljeQorICovCitFQVBJ
IHZvaWQgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQoY29uc3QgRXdrX0NvbnRleHQg
KmNvbnRleHQsIEV3a19UTFNfRXJyb3JfUG9saWN5IHRsc19lcnJvcl9wb2xpY3kpOworCiAjaWZk
ZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCmluZGV4IDQ2YzM3MmUuLjRmNDAy
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dF9wcml2YXRlLmgKQEAgLTgxLDYgKzgxLDEwIEBAIHB1YmxpYzoKIAogICAgIFdlYktp
dDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwqIGhpc3RvcnlDbGllbnQoKTsKIAorICAgIEV3a19U
TFNfRXJyb3JfUG9saWN5IGlnbm9yZVRMU0Vycm9ycygpIGNvbnN0OworCisgICAgdm9pZCBzZXRJ
Z25vcmVUTFNFcnJvcnMoRXdrX1RMU19FcnJvcl9Qb2xpY3kgVExTRXJyb3JQb2xpY3kpIGNvbnN0
OworCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBzZXRBZGRpdGlv
bmFsUGx1Z2luUGF0aChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRl
c3RTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5p
dFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IGJkOGM2OTMuLjQ1ODk5NTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRU
ZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAK
QEAgLTIxLDEzICsyMSwyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVXSzJV
bml0VGVzdFNlcnZlci5oIgogCi1FV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZl
cigpCitFV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZlcihHVGxzQ2VydGlmaWNh
dGUqIHRsc0NlcnQpCiB7CiAgICAgU291cEFkZHJlc3MqIGFkZHJlc3MgPSBzb3VwX2FkZHJlc3Nf
bmV3KCIxMjcuMC4wLjEiLCBTT1VQX0FERFJFU1NfQU5ZX1BPUlQpOwogICAgIHNvdXBfYWRkcmVz
c19yZXNvbHZlX3N5bmMoYWRkcmVzcywgMCk7CiAKLSAgICBtX3NvdXBTZXJ2ZXIgPSBzb3VwX3Nl
cnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxjaGFy
Kj4oMCkpOwotICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJpX25ldygiaHR0cDovLzEyNy4wLjAuMS8i
KTsKKyAgICBpZiAodGxzQ2VydCkgeworICAgICAgICBtX3NvdXBTZXJ2ZXIgPSBzb3VwX3NlcnZl
cl9uZXcoCisgICAgICAgICAgICBTT1VQX1NFUlZFUl9UTFNfQ0VSVElGSUNBVEUsIHRsc0NlcnQs
CisgICAgICAgICAgICBTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0
PGNoYXIqPigwKSk7CisKKyAgICAgICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJodHRwczov
LzEyNy4wLjAuMS8iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3NvdXBTZXJ2ZXIgPSBzb3Vw
X3NlcnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxj
aGFyKj4oMCkpOworICAgICAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0dHA6Ly8xMjcu
MC4wLjEvIik7CisgICAgfQorCiAgICAgc291cF91cmlfc2V0X3BvcnQobV9iYXNlVVJMLCBzb3Vw
X3NlcnZlcl9nZXRfcG9ydChtX3NvdXBTZXJ2ZXIpKTsKICAgICBnX29iamVjdF91bnJlZihhZGRy
ZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
CmluZGV4IDgxZDI0OGMuLmM5MDc5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9F
V0syVW5pdFRlc3RTZXJ2ZXIuaApAQCAtMjYsNyArMjYsNyBAQAogCiBjbGFzcyBFV0syVW5pdFRl
c3RTZXJ2ZXIgewogcHVibGljOgotICAgIEVXSzJVbml0VGVzdFNlcnZlcigpOworICAgIEVXSzJV
bml0VGVzdFNlcnZlcihHVGxzQ2VydGlmaWNhdGUqIHRsc0NlcnQgPSBudWxscHRyKTsKICAgICB2
aXJ0dWFsIH5FV0syVW5pdFRlc3RTZXJ2ZXIoKTsKIAogICAgIENTdHJpbmcgZ2V0VVJMRm9yUGF0
aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOTdhZTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwCkBAIC0wLDAg
KzEsMjA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3Mu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgVW5pdmVyc2l0eSBv
ZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5oIgorI2lu
Y2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBFV0syVW5pdFRlc3Q7CisKK2V4dGVybiBFV0syVW5pdFRlc3RFbnZpcm9ubWVudCogZW52
aXJvbm1lbnQ7CisKK3N0YXRpYyBjb25zdCBjaGFyIGluZGV4SFRNTFN0cmluZ1tdID0KKyAgICAi
PGh0bWw+IgorICAgICI8aGVhZD48dGl0bGU+RUZMV2ViS2l0MiBTU0wgdGVzdDwvdGl0bGU+PC9o
ZWFkPiIKKyAgICAiPGJvZHk+PC9ib2R5PjwvaHRtbD4iOworCitzdGF0aWMgYm9vbCBmaW5pc2hU
ZXN0ID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSB0ZXN0VGltZW91dFNlY29uZHMg
PSAyLjA7CisKKyNkZWZpbmUgU1RSSU5HSUZZMih4KSAjeAorI2RlZmluZSBTVFJJTkdJRlkoeCkg
U1RSSU5HSUZZMih4KQorCitzdGF0aWMgY29uc3QgZ2NoYXIgY2VydGlmaWNhdGVfZGF0YVtdID0g
U1RSSU5HSUZZKC0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KK01JSUNYUUlCQUFLQmdR
Q21jWGJ1c3JyOHpRcjhzbkliME9WUWliVmZndjd6UGpoLzV4ZGNyS09lakp6cDNlcEEKK0FGNFRJ
VGVGUjl2eldJd2tta2NSb1krSWJRTmhoN2tlZkdVWUQ0N2J2VmFtSk10cTVjR1lWczBIbmdUK0tU
TWEKK05HSC9HNDRLa0ZJT2F6L2I1ZC9KTktPTnJscXd4cVhTK202SVk0bC9FMUZmMjVaak5ENVRh
RXZJMXdJREFRQUIKK0FvR0JBSWNEdjRBOWg2VU9CdjJaR3lzcE52c3YyZXJTYmxHT2hYSnJXTzRh
Tk5lbUpKc3BJcDRzTGlQQ2JERTMKK2ExcG8xN1hSV0JrYlB6MWhnTDZheERYUW5vZW8rK2ViZnJ2
UlNlZCtGeXM0KzZTdnVTclBPdjZQbVdUQlQvV2EKK0dwTyt0djQ4SlVOeEMvRHk4Uk9peEJYT1Zp
dUlCRUZxM05mVkg0SFUzK1JHMjBOaEFrRUExTDNSQWhkZlBrTEkKKzgybHVTT1lFM0VxNDRsSUNi
L3laaStKRWlod1NlWlRKS2RaSHdZRDhLVkNqT3RqR3JPbXlFeXZUaHJjSUFDUXoKK0pMRXJlVmgz
M3dKQkFNaEptOXB6SkpOa0l5QmdpWEE2NkZBd2JoZER6U1RQeDBPQmpvVldvajZ1N2p6R3ZJRlQK
K0NuMWFpVEJZenpzaU1DYUN4K1czZTZwSy9EY3ZIU3dLcmdrQ1FIWk1jeHdCbVNITEMybG5tRDhM
UVdxcVZuTHIKK2ZaVitWbmZWdzUwMURRVDB1b1A4TnZ5Z1dCZzFVZjlZS2VwZkxYbkJwaWRFUWp1
cDVaS2l2blVFditzQ1FBOE4KKzZWY01ISTJ2a3l4VjFUN0lUcm5vU2Y0WnJJdTl5bDU2bUhuUlB6
U3k5VmxBSHQ4aG5NSTdVZUIrYkdVbmRyTU8KK1ZYUWd6SHpLVWhiYnhiZVB2ZkVDUVFEVHRrT3Vo
SnlLRGZIQ3hMRGN3TnBpK1Q2T1dURWZDdy9jcTlaV0RiQTcKK3lDWDgxcFF4ZlprZk1JUzFZRklP
R0hvdkswck1NVHJhQ2UraUROWXRWei9MCistLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQor
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlCOXpDQ0FXQUNDUURqV1dUZUM2QlF2VEFO
QmdrcWhraUc5dzBCQVFRRkFEQkFNUXN3Q1FZRFZRUUdFd0pCCitWVEVUTUJFR0ExVUVDQk1LVTI5
dFpTMVRkR0YwWlRFY01Cb0dBMVVFQ2hNVFYyVmlTMmwwSUV4aGVXOTFkQ0JVCitaWE4wY3pBZUZ3
MHdOekEzTVRNeE1qVXhNekphRncwM01UQTFNVE13TmpJek1UWmFNRUF4Q3pBSkJnTlZCQVlUCitB
a0ZWTVJNd0VRWURWUVFJRXdwVGIyMWxMVk4wWVhSbE1Sd3dHZ1lEVlFRS0V4TlhaV0pMYVhRZ1RH
RjViM1YwCitJRlJsYzNSek1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdRQ21j
WGJ1c3JyOHpRcjhzbkliCiswT1ZRaWJWZmd2N3pQamgvNXhkY3JLT2VqSnpwM2VwQUFGNFRJVGVG
Ujl2eldJd2tta2NSb1krSWJRTmhoN2tlCitmR1VZRDQ3YnZWYW1KTXRxNWNHWVZzMEhuZ1QrS1RN
YU5HSC9HNDRLa0ZJT2F6L2I1ZC9KTktPTnJscXd4cVhTCisrbTZJWTRsL0UxRmYyNVpqTkQ1VGFF
dkkxd0lEQVFBQk1BMEdDU3FHU0liM0RRRUJCQVVBQTRHQkFBZmJVYmdECiswMU84RG9aQTAyYzFN
VU1iTUhSUFNiL3Fkb2sycHlXb0NQYS9CU2FPSWFOUGVQYzhhdVBSYnJTMlhzVldTTWZ0CitDVFhp
WG1ySzJYeDErZkp1WkxBcDBDVW5nNERlNGNESDVjOG52bG9jWW1YbysxeDUzUzlEZkQwS1ByeWpC
Ukk3Cis5TG5KcTJ5c0hBVWF3aXFGWGx3QmFnNm1YYXdEOFlqemNZYXQKKy0tLS0tRU5EIENFUlRJ
RklDQVRFLS0tLS0pOworCitjbGFzcyBFV0syU1NMVGVzdCA6IHB1YmxpYyBFV0syVW5pdFRlc3RC
YXNlIHsKK3B1YmxpYzoKKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVk
RmFpbCh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCisgICAg
eworICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAgICAgLy8gVGhlIHRlc3QgcGFzc2Vz
IGlmIGFuIFNTTCBlcnJvciBvY2N1cnMuCisgICAgICAgIEFTU0VSVF9UUlVFKGV3a19lcnJvcl9j
b2RlX2dldChzdGF0aWNfY2FzdDxFd2tfRXJyb3IqPihldmVudEluZm8pKSA9PSBTT1VQX1NUQVRV
U19TU0xfRkFJTEVEKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBvbkxvYWRGaW5pc2hlZEZh
aWwodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCopCisgICAgeworICAgICAgICBi
b29sKiBpc0ZpbmlzaGVkID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsKKyAgICAgICAg
aWYgKGlzRmluaXNoZWQpIHsKKyAgICAgICAgICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAg
ICAgICAgLy8gVGhlIHRlc3QgZmFpbHMgaWYgdGhlIHBhZ2UgaXMgbG9hZGVkLgorICAgICAgICAg
ICAgRkFJTCgpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkUHJv
dmlzaW9uYWxGYWlsZWRJZ25vcmUodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCog
ZXZlbnRJbmZvKQorICAgIHsKKyAgICAgICAgZmluaXNoVGVzdCA9IHRydWU7CisgICAgICAgIGlm
IChld2tfZXJyb3JfY29kZV9nZXQoc3RhdGljX2Nhc3Q8RXdrX0Vycm9yKj4oZXZlbnRJbmZvKSkg
PT0gU09VUF9TVEFUVVNfU1NMX0ZBSUxFRCkKKyAgICAgICAgICAgIC8vIFRoZSB0ZXN0IGZhaWxz
IGlmIGFuIFNTTCBlcnJvciBvY2N1cnMuCisgICAgICAgICAgICBGQUlMKCk7CisgICAgfQorCisg
ICAgc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWRJZ25vcmUodm9pZCogdXNlckRhdGEsIEV2YXNf
T2JqZWN0Kiwgdm9pZCopCisgICAgeworICAgICAgICBib29sKiBpc0ZpbmlzaGVkID0gc3RhdGlj
X2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsKKyAgICAgICAgZmluaXNoVGVzdCA9IHRydWU7CisgICAg
ICAgIC8vIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcGFnZSBpcyBsb2FkZWQuCisgICAgICAgIEFT
U0VSVF9UUlVFKGlzRmluaXNoZWQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNlcnZlckNh
bGxiYWNrQmFkQ2VydFBhZ2VMb2FkVGVzdChTb3VwU2VydmVyKiwgU291cE1lc3NhZ2UqIG1lc3Nh
Z2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIHZv
aWQqKQorICAgIHsKKyAgICAgICAgaWYgKG1lc3NhZ2UtPm1ldGhvZCAhPSBTT1VQX01FVEhPRF9H
RVQpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBf
U1RBVFVTX05PVF9JTVBMRU1FTlRFRCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAoIXN0cmNtcChwYXRoLCAiL2luZGV4Lmh0bWwiKSkgeworICAgICAgICAg
ICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfT0spOworICAg
ICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHks
IFNPVVBfTUVNT1JZX0NPUFksIGluZGV4SFRNTFN0cmluZywgc3RybGVuKGluZGV4SFRNTFN0cmlu
ZykpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVz
KG1lc3NhZ2UsIFNPVVBfU1RBVFVTX05PVF9GT1VORCk7CisKKyAgICAgICAgc291cF9tZXNzYWdl
X2JvZHlfY29tcGxldGUobWVzc2FnZS0+cmVzcG9uc2VfYm9keSk7CisgICAgfQorfTsKKworc3Rh
dGljIEdUbHNDZXJ0aWZpY2F0ZSogZ2V0Q2VydGlmaWNhdGUoKQoreworICAgIEdFcnJvcioqIGdl
cnJvcjsKKyAgICBHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlID0gZ190bHNfY2VydGlmaWNh
dGVfbmV3X2Zyb21fcGVtKAorICAgICAgICBjZXJ0aWZpY2F0ZV9kYXRhLCBzaXplb2YoY2VydGlm
aWNhdGVfZGF0YSksIGdlcnJvcik7CisKKyAgICBpZiAoIWNlcnRpZmljYXRlKQorICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBjcmVhdGUgY2VydGlmaWNhdGUgZnJvbSBQRU1cbiIp
OworCisgICAgcmV0dXJuIGNlcnRpZmljYXRlOworfQorCitURVNUX0YoRVdLMlNTTFRlc3QsIGV3
a19zc2xfc2V0X3Rsc19lcnJvcl9wb2xpY3lfaWdub3JlKQoreworICAgIEV3a19Db250ZXh0KiBj
b250ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsKKworICAgIGV3a19jb250
ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1JfUE9MSUNZX0lH
Tk9SRSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X2dl
dChjb250ZXh0KSA9PSBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkUpOworfQorCitURVNUX0Yo
RVdLMlNTTFRlc3QsIGV3a19zc2xfc2V0X3Rsc19lcnJvcl9wb2xpY3lfZmFpbCkKK3sKKyAgICBF
d2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7CisK
KyAgICBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb250ZXh0LCBFV0tfVExTX0VS
Uk9SX1BPTElDWV9GQUlMKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19jb250ZXh0X3Rsc19lcnJv
cl9wb2xpY3lfZ2V0KGNvbnRleHQpID09IEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOworfQor
CitURVNUX0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rlc3RfcG9s
aWN5X2lnbm9yZSkKK3sKKyAgICBmaW5pc2hUZXN0ID0gZmFsc2U7CisKKyAgICBFd2tfQ29udGV4
dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7CisgICAgZXdrX2Nv
bnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQoY29udGV4dCwgRVdLX1RMU19FUlJPUl9QT0xJQ1lf
SUdOT1JFKTsKKworICAgIEdUbHNDZXJ0aWZpY2F0ZSogVExTQ2VydGlmaWNhdGUgPSBnZXRDZXJ0
aWZpY2F0ZSgpOworCisgICAgaWYgKCFUTFNDZXJ0aWZpY2F0ZSkKKyAgICAgICAgRkFJTCgpOwor
CisgICAgc3RkOjp1bmlxdWVfcHRyPEVXSzJVbml0VGVzdFNlcnZlcj4gaHR0cHNTZXJ2ZXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPEVXSzJVbml0VGVzdFNlcnZlcj4oVExTQ2VydGlmaWNhdGUpOworICAg
IGh0dHBzU2VydmVyLT5ydW4oc2VydmVyQ2FsbGJhY2tCYWRDZXJ0UGFnZUxvYWRUZXN0KTsKKwor
ICAgIEV3a19FcnJvciogZXJyb3IgPSBudWxscHRyOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZCh3ZWJWaWV3KCksICJsb2FkLHByb3Zpc2lvbmFsLGZhaWxlZCIsIG9uTG9hZFBy
b3Zpc2lvbmFsRmFpbGVkSWdub3JlLCAmZXJyb3IpOworCisgICAgYm9vbCBpc0ZpbmlzaGVkID0g
ZmFsc2U7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxv
YWQsZmluaXNoZWQiLCBvbkxvYWRGaW5pc2hlZElnbm9yZSwgJmlzRmluaXNoZWQpOworCisgICAg
ZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5nZXRVUkxGb3JQYXRoKCIv
aW5kZXguaHRtbCIpLmRhdGEoKSk7CisKKyAgICB3YWl0VW50aWxUcnVlKGZpbmlzaFRlc3QsIHRl
c3RUaW1lb3V0U2Vjb25kcyk7Cit9CisKK1RFU1RfRihFV0syU1NMVGVzdCwgZXdrX3NzbF9iYWRf
Y2VydF9wYWdlX2xvYWRfdGVzdF9wb2xpY3lfZmFpbCkKK3sKKyAgICBmaW5pc2hUZXN0ID0gZmFs
c2U7CisKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdl
YlZpZXcoKSk7CisgICAgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQoY29udGV4dCwg
RVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCk7CisKKyAgICBHVGxzQ2VydGlmaWNhdGUqIFRMU0Nl
cnRpZmljYXRlID0gZ2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICghVExTQ2VydGlmaWNhdGUp
CisgICAgICAgIEZBSUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFV0syVW5pdFRlc3RTZXJ2
ZXI+IGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5pdFRlc3RTZXJ2ZXI+KFRM
U0NlcnRpZmljYXRlKTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZlckNhbGxiYWNrQmFkQ2Vy
dFBhZ2VMb2FkVGVzdCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0gbnVsbHB0cjsKKyAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxwcm92aXNpb25h
bCxmYWlsZWQiLCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZEZhaWwsICZlcnJvcik7CisKKyAgICBi
b29sIGlzRmluaXNoZWQgPSBmYWxzZTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19h
ZGQod2ViVmlldygpLCAibG9hZCxmaW5pc2hlZCIsIG9uTG9hZEZpbmlzaGVkRmFpbCwgJmlzRmlu
aXNoZWQpOworCisgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5n
ZXRVUkxGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CisKKyAgICB3YWl0VW50aWxUcnVl
KGZpbmlzaFRlc3QsIHRlc3RUaW1lb3V0U2Vjb25kcyk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227754</attachid>
            <date>2014-03-25 08:55:25 -0700</date>
            <delta_ts>2014-03-26 01:56:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v9.patch</filename>
            <type>text/plain</type>
            <size>16120</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhNGU0ZjQyLi4zZTViNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMjQgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBld2sgQVBJcyB0byBjb250cm9s
IFRMUyBlcnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFk
ZGVkIHRoZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAg
ICAgICAoRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250
ZXh0X2lnbm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVf
dGxzX2Vycm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgor
ICAgICAgICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAg
ICAgKEVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
OgorICAgICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6Cisg
ICAgICAgIEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0w
My0yNCAgRMOhbmllbCBCw6F0eWFpICA8ZGJhdHlhaS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gQnVpbGRmaXggYWZ0ZXIgcjE2NjE1OS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNDI0OThhYi4uNmYzZmJmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTQ4Nyw2ICs0ODcsNyBAQCBzZXQoRVdLMlVuaXRUZXN0c19CSU5BUklF
UwogICAgIHRlc3RfZXdrMl9wb3B1cF9tZW51CiAgICAgdGVzdF9ld2syX3JlZnB0cl9ldmFzX29i
amVjdAogICAgIHRlc3RfZXdrMl9zZXR0aW5ncworICAgIHRlc3RfZXdrMl9zc2wKICAgICB0ZXN0
X2V3azJfc3RvcmFnZV9tYW5hZ2VyCiAgICAgdGVzdF9ld2syX3RleHRfY2hlY2tlcgogICAgIHRl
c3RfZXdrMl92aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5jcHAKaW5kZXggMjNmYzZlYy4uYzdhNDU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtMzcxLDYgKzM3MSwxNiBA
QCB2b2lkIEV3a0NvbnRleHQ6OnByb2Nlc3NSZWNlaXZlZE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbQogICAgICAgICBtX2NhbGxiYWNrRm9yTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZS5jYWxsYmFjayhuYW1lLmRhdGEoKSwgYm9keS5kYXRhKCksIG51bGxw
dHIsIG1fY2FsbGJhY2tGb3JNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLnVzZXJEYXRhKTsKIH0K
IAorRXdrX1RMU19FcnJvcl9Qb2xpY3kgRXdrQ29udGV4dDo6aWdub3JlVExTRXJyb3JzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdG9JbXBsKG1fY29udGV4dC5nZXQoKSktPmlnbm9yZVRMU0Vycm9y
cygpID8gRVdLX1RMU19FUlJPUl9QT0xJQ1lfSUdOT1JFIDogRVdLX1RMU19FUlJPUl9QT0xJQ1lf
RkFJTDsKK30KKwordm9pZCBFd2tDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMoRXdrX1RMU19F
cnJvcl9Qb2xpY3kgVExTRXJyb3JQb2xpY3kpIGNvbnN0Cit7CisgICAgdG9JbXBsKG1fY29udGV4
dC5nZXQoKSktPnNldElnbm9yZVRMU0Vycm9ycyhUTFNFcnJvclBvbGljeSA9PSBFV0tfVExTX0VS
Uk9SX1BPTElDWV9JR05PUkUpOworfQorCiBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfZGVmYXVs
dF9nZXQoKQogewogICAgIHJldHVybiBFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpOwpAQCAt
NDY5LDMgKzQ3OSwxNiBAQCB2b2lkIGV3a19jb250ZXh0X21lc3NhZ2VfZnJvbV9pbmplY3RlZF9i
dW5kbGVfY2FsbGJhY2tfc2V0KEV3a19Db250ZXh0KiBld2tDb250ZQogCiAgICAgaW1wbC0+c2V0
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZUNhbGxiYWNrKGNhbGxiYWNrLCB1c2VyRGF0YSk7CiB9
CisKK0V3a19UTFNfRXJyb3JfUG9saWN5IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0
KGNvbnN0IEV3a19Db250ZXh0ICpjb250ZXh0KQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1Jf
UkVUVVJOKGNvbnN0IEV3a0NvbnRleHQsIGNvbnRleHQsIGltcGwsIEVXS19UTFNfRVJST1JfUE9M
SUNZX0ZBSUwpOworCisgICAgcmV0dXJuIGltcGwtPmlnbm9yZVRMU0Vycm9ycygpOworfQorCit2
b2lkIGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnN0IEV3a19Db250ZXh0ICpj
b250ZXh0LCBFd2tfVExTX0Vycm9yX1BvbGljeSB0bHNfZXJyb3JfcG9saWN5KQoreworICAgIEVX
S19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0NvbnRleHQsIGNvbnRleHQsIGltcGwp
OworICAgIGltcGwtPnNldElnbm9yZVRMU0Vycm9ycyh0bHNfZXJyb3JfcG9saWN5KTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCmluZGV4IDQy
OGQ3ZjEuLjNmNTcyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuaApAQCAtNzUsNiArNzUsMTkgQEAgZW51bSBFd2tfQ2FjaGVfTW9kZWwgewog
dHlwZWRlZiBlbnVtIEV3a19DYWNoZV9Nb2RlbCBFd2tfQ2FjaGVfTW9kZWw7CiAKIC8qKgorICog
XGVudW0gICAgRXdrX1RMU19FcnJvcl9Qb2xpY3kKKyAqCisgKiBAYnJpZWYgICBDb250YWlucyBv
cHRpb24gZm9yIFRMUyBlcnJvciBwb2xpY3kKKyAqLworZW51bSBFd2tfVExTX0Vycm9yX1BvbGlj
eSB7CisgICAgRVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCwgLy8gRmFpbCBvbiBUTFMgZXJyb3Jz
LgorICAgIEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSAvLyBJZ25vcmUgVExTIGVycm9ycy4K
K307CisKKy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIHRoZSBFd2tfVExTX0Vycm9yX1BvbGlj
eS4KK3R5cGVkZWYgZW51bSBFd2tfVExTX0Vycm9yX1BvbGljeSBFd2tfVExTX0Vycm9yX1BvbGlj
eTsKKworLyoqCiAgKiBAdHlwZWRlZiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIEV3a19Vcmxf
U2NoZW1lX1JlcXVlc3RfQ2IKICAqIEBicmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBl
d2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKCkuCiAgKi8KQEAgLTM2Miw2ICszNzUsMjMg
QEAgRUFQSSB2b2lkIGV3a19jb250ZXh0X21lc3NhZ2VfcG9zdF90b19pbmplY3RlZF9idW5kbGUo
RXdrX0NvbnRleHQgKmNvbnRleHQsIGNvbnMKICAqLwogRUFQSSB2b2lkIGV3a19jb250ZXh0X21l
c3NhZ2VfZnJvbV9pbmplY3RlZF9idW5kbGVfY2FsbGJhY2tfc2V0KEV3a19Db250ZXh0ICpjb250
ZXh0LCBFd2tfQ29udGV4dF9NZXNzYWdlX0Zyb21fSW5qZWN0ZWRfQnVuZGxlX0NiIGNhbGxiYWNr
LCB2b2lkICp1c2VyX2RhdGEpOwogCisvKioKKyAqIEdldHMgVExTIGVycm9yIHBvbGljeSBmb3Ig
QGEgY29udGV4dC4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBnZXQg
VExTIGVycm9yIHBvbGljeSBmb3IKKyAqCisgKiBAcmV0dXJuIFRoZSBUTFMgZXJyb3JzIHBvbGlj
eSBmb3IgdGhlIGNvbnRleHQKKyAqLworRXdrX1RMU19FcnJvcl9Qb2xpY3kgZXdrX2NvbnRleHRf
dGxzX2Vycm9yX3BvbGljeV9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNvbnRleHQpOworCisvKioK
KyAqIFNldHMgVExTIGVycm9yIHBvbGljeSBmb3IgQGEgY29udGV4dC4KKyAqCisgKiBAcGFyYW0g
Y29udGV4dCBjb250ZXh0IG9iamVjdCB0byBzZXQgVExTIGVycm9yIHBvbGljeSBmb3IKKyAqIEBw
YXJhbSBpZ25vcmVfdGxzX2Vycm9ycyBhICNFd2tfVExTX0Vycm9yX1BvbGljeQorICovCitFQVBJ
IHZvaWQgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQoY29uc3QgRXdrX0NvbnRleHQg
KmNvbnRleHQsIEV3a19UTFNfRXJyb3JfUG9saWN5IHRsc19lcnJvcl9wb2xpY3kpOworCiAjaWZk
ZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCmluZGV4IDQ2YzM3MmUuLjRmNDAy
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dF9wcml2YXRlLmgKQEAgLTgxLDYgKzgxLDEwIEBAIHB1YmxpYzoKIAogICAgIFdlYktp
dDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwqIGhpc3RvcnlDbGllbnQoKTsKIAorICAgIEV3a19U
TFNfRXJyb3JfUG9saWN5IGlnbm9yZVRMU0Vycm9ycygpIGNvbnN0OworCisgICAgdm9pZCBzZXRJ
Z25vcmVUTFNFcnJvcnMoRXdrX1RMU19FcnJvcl9Qb2xpY3kgVExTRXJyb3JQb2xpY3kpIGNvbnN0
OworCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBzZXRBZGRpdGlv
bmFsUGx1Z2luUGF0aChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRl
c3RTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5p
dFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IGJkOGM2OTMuLjQ1ODk5NTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRU
ZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAK
QEAgLTIxLDEzICsyMSwyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVXSzJV
bml0VGVzdFNlcnZlci5oIgogCi1FV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZl
cigpCitFV0syVW5pdFRlc3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZlcihHVGxzQ2VydGlmaWNh
dGUqIHRsc0NlcnQpCiB7CiAgICAgU291cEFkZHJlc3MqIGFkZHJlc3MgPSBzb3VwX2FkZHJlc3Nf
bmV3KCIxMjcuMC4wLjEiLCBTT1VQX0FERFJFU1NfQU5ZX1BPUlQpOwogICAgIHNvdXBfYWRkcmVz
c19yZXNvbHZlX3N5bmMoYWRkcmVzcywgMCk7CiAKLSAgICBtX3NvdXBTZXJ2ZXIgPSBzb3VwX3Nl
cnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxjaGFy
Kj4oMCkpOwotICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJpX25ldygiaHR0cDovLzEyNy4wLjAuMS8i
KTsKKyAgICBpZiAodGxzQ2VydCkgeworICAgICAgICBtX3NvdXBTZXJ2ZXIgPSBzb3VwX3NlcnZl
cl9uZXcoCisgICAgICAgICAgICBTT1VQX1NFUlZFUl9UTFNfQ0VSVElGSUNBVEUsIHRsc0NlcnQs
CisgICAgICAgICAgICBTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0
PGNoYXIqPigwKSk7CisKKyAgICAgICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJodHRwczov
LzEyNy4wLjAuMS8iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3NvdXBTZXJ2ZXIgPSBzb3Vw
X3NlcnZlcl9uZXcoU09VUF9TRVJWRVJfSU5URVJGQUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxj
aGFyKj4oMCkpOworICAgICAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0dHA6Ly8xMjcu
MC4wLjEvIik7CisgICAgfQorCiAgICAgc291cF91cmlfc2V0X3BvcnQobV9iYXNlVVJMLCBzb3Vw
X3NlcnZlcl9nZXRfcG9ydChtX3NvdXBTZXJ2ZXIpKTsKICAgICBnX29iamVjdF91bnJlZihhZGRy
ZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
CmluZGV4IDgxZDI0OGMuLjJiODE5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9F
V0syVW5pdFRlc3RTZXJ2ZXIuaApAQCAtMjYsNyArMjYsNyBAQAogCiBjbGFzcyBFV0syVW5pdFRl
c3RTZXJ2ZXIgewogcHVibGljOgotICAgIEVXSzJVbml0VGVzdFNlcnZlcigpOworICAgIGV4cGxp
Y2l0IEVXSzJVbml0VGVzdFNlcnZlcihHVGxzQ2VydGlmaWNhdGUqIHRsc0NlcnQgPSBudWxscHRy
KTsKICAgICB2aXJ0dWFsIH5FV0syVW5pdFRlc3RTZXJ2ZXIoKTsKIAogICAgIENTdHJpbmcgZ2V0
VVJMRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdhZTA3ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zc2wuY3Bw
CkBAIC0wLDAgKzEsMjA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgVW5p
dmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0QmFz
ZS5oIgorI2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBFV0syVW5pdFRlc3Q7CisKK2V4dGVybiBFV0syVW5pdFRlc3RFbnZpcm9u
bWVudCogZW52aXJvbm1lbnQ7CisKK3N0YXRpYyBjb25zdCBjaGFyIGluZGV4SFRNTFN0cmluZ1td
ID0KKyAgICAiPGh0bWw+IgorICAgICI8aGVhZD48dGl0bGU+RUZMV2ViS2l0MiBTU0wgdGVzdDwv
dGl0bGU+PC9oZWFkPiIKKyAgICAiPGJvZHk+PC9ib2R5PjwvaHRtbD4iOworCitzdGF0aWMgYm9v
bCBmaW5pc2hUZXN0ID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSB0ZXN0VGltZW91
dFNlY29uZHMgPSAyLjA7CisKKyNkZWZpbmUgU1RSSU5HSUZZMih4KSAjeAorI2RlZmluZSBTVFJJ
TkdJRlkoeCkgU1RSSU5HSUZZMih4KQorCitzdGF0aWMgY29uc3QgZ2NoYXIgY2VydGlmaWNhdGVf
ZGF0YVtdID0gU1RSSU5HSUZZKC0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KK01JSUNY
UUlCQUFLQmdRQ21jWGJ1c3JyOHpRcjhzbkliME9WUWliVmZndjd6UGpoLzV4ZGNyS09lakp6cDNl
cEEKK0FGNFRJVGVGUjl2eldJd2tta2NSb1krSWJRTmhoN2tlZkdVWUQ0N2J2VmFtSk10cTVjR1lW
czBIbmdUK0tUTWEKK05HSC9HNDRLa0ZJT2F6L2I1ZC9KTktPTnJscXd4cVhTK202SVk0bC9FMUZm
MjVaak5ENVRhRXZJMXdJREFRQUIKK0FvR0JBSWNEdjRBOWg2VU9CdjJaR3lzcE52c3YyZXJTYmxH
T2hYSnJXTzRhTk5lbUpKc3BJcDRzTGlQQ2JERTMKK2ExcG8xN1hSV0JrYlB6MWhnTDZheERYUW5v
ZW8rK2ViZnJ2UlNlZCtGeXM0KzZTdnVTclBPdjZQbVdUQlQvV2EKK0dwTyt0djQ4SlVOeEMvRHk4
Uk9peEJYT1ZpdUlCRUZxM05mVkg0SFUzK1JHMjBOaEFrRUExTDNSQWhkZlBrTEkKKzgybHVTT1lF
M0VxNDRsSUNiL3laaStKRWlod1NlWlRKS2RaSHdZRDhLVkNqT3RqR3JPbXlFeXZUaHJjSUFDUXoK
K0pMRXJlVmgzM3dKQkFNaEptOXB6SkpOa0l5QmdpWEE2NkZBd2JoZER6U1RQeDBPQmpvVldvajZ1
N2p6R3ZJRlQKK0NuMWFpVEJZenpzaU1DYUN4K1czZTZwSy9EY3ZIU3dLcmdrQ1FIWk1jeHdCbVNI
TEMybG5tRDhMUVdxcVZuTHIKK2ZaVitWbmZWdzUwMURRVDB1b1A4TnZ5Z1dCZzFVZjlZS2VwZkxY
bkJwaWRFUWp1cDVaS2l2blVFditzQ1FBOE4KKzZWY01ISTJ2a3l4VjFUN0lUcm5vU2Y0WnJJdTl5
bDU2bUhuUlB6U3k5VmxBSHQ4aG5NSTdVZUIrYkdVbmRyTU8KK1ZYUWd6SHpLVWhiYnhiZVB2ZkVD
UVFEVHRrT3VoSnlLRGZIQ3hMRGN3TnBpK1Q2T1dURWZDdy9jcTlaV0RiQTcKK3lDWDgxcFF4Zlpr
Zk1JUzFZRklPR0hvdkswck1NVHJhQ2UraUROWXRWei9MCistLS0tLUVORCBSU0EgUFJJVkFURSBL
RVktLS0tLQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlCOXpDQ0FXQUNDUURqV1dU
ZUM2QlF2VEFOQmdrcWhraUc5dzBCQVFRRkFEQkFNUXN3Q1FZRFZRUUdFd0pCCitWVEVUTUJFR0Ex
VUVDQk1LVTI5dFpTMVRkR0YwWlRFY01Cb0dBMVVFQ2hNVFYyVmlTMmwwSUV4aGVXOTFkQ0JVCita
WE4wY3pBZUZ3MHdOekEzTVRNeE1qVXhNekphRncwM01UQTFNVE13TmpJek1UWmFNRUF4Q3pBSkJn
TlZCQVlUCitBa0ZWTVJNd0VRWURWUVFJRXdwVGIyMWxMVk4wWVhSbE1Sd3dHZ1lEVlFRS0V4Tlha
V0pMYVhRZ1RHRjViM1YwCitJRlJsYzNSek1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05BRENC
aVFLQmdRQ21jWGJ1c3JyOHpRcjhzbkliCiswT1ZRaWJWZmd2N3pQamgvNXhkY3JLT2VqSnpwM2Vw
QUFGNFRJVGVGUjl2eldJd2tta2NSb1krSWJRTmhoN2tlCitmR1VZRDQ3YnZWYW1KTXRxNWNHWVZz
MEhuZ1QrS1RNYU5HSC9HNDRLa0ZJT2F6L2I1ZC9KTktPTnJscXd4cVhTCisrbTZJWTRsL0UxRmYy
NVpqTkQ1VGFFdkkxd0lEQVFBQk1BMEdDU3FHU0liM0RRRUJCQVVBQTRHQkFBZmJVYmdECiswMU84
RG9aQTAyYzFNVU1iTUhSUFNiL3Fkb2sycHlXb0NQYS9CU2FPSWFOUGVQYzhhdVBSYnJTMlhzVldT
TWZ0CitDVFhpWG1ySzJYeDErZkp1WkxBcDBDVW5nNERlNGNESDVjOG52bG9jWW1YbysxeDUzUzlE
ZkQwS1ByeWpCUkk3Cis5TG5KcTJ5c0hBVWF3aXFGWGx3QmFnNm1YYXdEOFlqemNZYXQKKy0tLS0t
RU5EIENFUlRJRklDQVRFLS0tLS0pOworCitjbGFzcyBFV0syU1NMVGVzdCA6IHB1YmxpYyBFV0sy
VW5pdFRlc3RCYXNlIHsKK3B1YmxpYzoKKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZFByb3Zpc2lv
bmFsRmFpbGVkRmFpbCh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudElu
Zm8pCisgICAgeworICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAgICAgLy8gVGhlIHRl
c3QgcGFzc2VzIGlmIGFuIFNTTCBlcnJvciBvY2N1cnMuCisgICAgICAgIEFTU0VSVF9UUlVFKGV3
a19lcnJvcl9jb2RlX2dldChzdGF0aWNfY2FzdDxFd2tfRXJyb3IqPihldmVudEluZm8pKSA9PSBT
T1VQX1NUQVRVU19TU0xfRkFJTEVEKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBvbkxvYWRG
aW5pc2hlZEZhaWwodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCopCisgICAgewor
ICAgICAgICBib29sKiBpc0ZpbmlzaGVkID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsK
KyAgICAgICAgaWYgKGlzRmluaXNoZWQpIHsKKyAgICAgICAgICAgIGZpbmlzaFRlc3QgPSB0cnVl
OworICAgICAgICAgICAgLy8gVGhlIHRlc3QgZmFpbHMgaWYgdGhlIHBhZ2UgaXMgbG9hZGVkLgor
ICAgICAgICAgICAgRkFJTCgpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIHZvaWQg
b25Mb2FkUHJvdmlzaW9uYWxGYWlsZWRJZ25vcmUodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0
Kiwgdm9pZCogZXZlbnRJbmZvKQorICAgIHsKKyAgICAgICAgZmluaXNoVGVzdCA9IHRydWU7Cisg
ICAgICAgIGlmIChld2tfZXJyb3JfY29kZV9nZXQoc3RhdGljX2Nhc3Q8RXdrX0Vycm9yKj4oZXZl
bnRJbmZvKSkgPT0gU09VUF9TVEFUVVNfU1NMX0ZBSUxFRCkKKyAgICAgICAgICAgIC8vIFRoZSB0
ZXN0IGZhaWxzIGlmIGFuIFNTTCBlcnJvciBvY2N1cnMuCisgICAgICAgICAgICBGQUlMKCk7Cisg
ICAgfQorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWRJZ25vcmUodm9pZCogdXNlckRh
dGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCopCisgICAgeworICAgICAgICBib29sKiBpc0ZpbmlzaGVk
ID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsKKyAgICAgICAgZmluaXNoVGVzdCA9IHRy
dWU7CisgICAgICAgIC8vIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcGFnZSBpcyBsb2FkZWQuCisg
ICAgICAgIEFTU0VSVF9UUlVFKGlzRmluaXNoZWQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lk
IHNlcnZlckNhbGxiYWNrQmFkQ2VydFBhZ2VMb2FkVGVzdChTb3VwU2VydmVyKiwgU291cE1lc3Nh
Z2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29u
dGV4dCosIHZvaWQqKQorICAgIHsKKyAgICAgICAgaWYgKG1lc3NhZ2UtPm1ldGhvZCAhPSBTT1VQ
X01FVEhPRF9HRVQpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3Nh
Z2UsIFNPVVBfU1RBVFVTX05PVF9JTVBMRU1FTlRFRCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoIXN0cmNtcChwYXRoLCAiL2luZGV4Lmh0bWwiKSkgewor
ICAgICAgICAgICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNf
T0spOworICAgICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3Bv
bnNlX2JvZHksIFNPVVBfTUVNT1JZX0NPUFksIGluZGV4SFRNTFN0cmluZywgc3RybGVuKGluZGV4
SFRNTFN0cmluZykpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9z
ZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX05PVF9GT1VORCk7CisKKyAgICAgICAgc291
cF9tZXNzYWdlX2JvZHlfY29tcGxldGUobWVzc2FnZS0+cmVzcG9uc2VfYm9keSk7CisgICAgfQor
fTsKKworc3RhdGljIEdUbHNDZXJ0aWZpY2F0ZSogZ2V0Q2VydGlmaWNhdGUoKQoreworICAgIEdF
cnJvcioqIGdlcnJvcjsKKyAgICBHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlID0gZ190bHNf
Y2VydGlmaWNhdGVfbmV3X2Zyb21fcGVtKAorICAgICAgICBjZXJ0aWZpY2F0ZV9kYXRhLCBzaXpl
b2YoY2VydGlmaWNhdGVfZGF0YSksIGdlcnJvcik7CisKKyAgICBpZiAoIWNlcnRpZmljYXRlKQor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBjcmVhdGUgY2VydGlmaWNhdGUgZnJv
bSBQRU1cbiIpOworCisgICAgcmV0dXJuIGNlcnRpZmljYXRlOworfQorCitURVNUX0YoRVdLMlNT
TFRlc3QsIGV3a19zc2xfc2V0X3Rsc19lcnJvcl9wb2xpY3lfaWdub3JlKQoreworICAgIEV3a19D
b250ZXh0KiBjb250ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsKKworICAg
IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1Jf
UE9MSUNZX0lHTk9SRSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfY29udGV4dF90bHNfZXJyb3Jf
cG9saWN5X2dldChjb250ZXh0KSA9PSBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkUpOworfQor
CitURVNUX0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfc2V0X3Rsc19lcnJvcl9wb2xpY3lfZmFpbCkK
K3sKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZp
ZXcoKSk7CisKKyAgICBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb250ZXh0LCBF
V0tfVExTX0VSUk9SX1BPTElDWV9GQUlMKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19jb250ZXh0
X3Rsc19lcnJvcl9wb2xpY3lfZ2V0KGNvbnRleHQpID09IEVXS19UTFNfRVJST1JfUE9MSUNZX0ZB
SUwpOworfQorCitURVNUX0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2Fk
X3Rlc3RfcG9saWN5X2lnbm9yZSkKK3sKKyAgICBmaW5pc2hUZXN0ID0gZmFsc2U7CisKKyAgICBF
d2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7Cisg
ICAgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQoY29udGV4dCwgRVdLX1RMU19FUlJP
Ul9QT0xJQ1lfSUdOT1JFKTsKKworICAgIEdUbHNDZXJ0aWZpY2F0ZSogVExTQ2VydGlmaWNhdGUg
PSBnZXRDZXJ0aWZpY2F0ZSgpOworCisgICAgaWYgKCFUTFNDZXJ0aWZpY2F0ZSkKKyAgICAgICAg
RkFJTCgpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPEVXSzJVbml0VGVzdFNlcnZlcj4gaHR0cHNT
ZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEVXSzJVbml0VGVzdFNlcnZlcj4oVExTQ2VydGlmaWNh
dGUpOworICAgIGh0dHBzU2VydmVyLT5ydW4oc2VydmVyQ2FsbGJhY2tCYWRDZXJ0UGFnZUxvYWRU
ZXN0KTsKKworICAgIEV3a19FcnJvciogZXJyb3IgPSBudWxscHRyOworICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3KCksICJsb2FkLHByb3Zpc2lvbmFsLGZhaWxlZCIs
IG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVkSWdub3JlLCAmZXJyb3IpOworCisgICAgYm9vbCBpc0Zp
bmlzaGVkID0gZmFsc2U7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZp
ZXcoKSwgImxvYWQsZmluaXNoZWQiLCBvbkxvYWRGaW5pc2hlZElnbm9yZSwgJmlzRmluaXNoZWQp
OworCisgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIGh0dHBzU2VydmVyLT5nZXRVUkxG
b3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CisKKyAgICB3YWl0VW50aWxUcnVlKGZpbmlz
aFRlc3QsIHRlc3RUaW1lb3V0U2Vjb25kcyk7Cit9CisKK1RFU1RfRihFV0syU1NMVGVzdCwgZXdr
X3NzbF9iYWRfY2VydF9wYWdlX2xvYWRfdGVzdF9wb2xpY3lfZmFpbCkKK3sKKyAgICBmaW5pc2hU
ZXN0ID0gZmFsc2U7CisKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRl
eHRfZ2V0KHdlYlZpZXcoKSk7CisgICAgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQo
Y29udGV4dCwgRVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCk7CisKKyAgICBHVGxzQ2VydGlmaWNh
dGUqIFRMU0NlcnRpZmljYXRlID0gZ2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICghVExTQ2Vy
dGlmaWNhdGUpCisgICAgICAgIEZBSUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFV0syVW5p
dFRlc3RTZXJ2ZXI+IGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5pdFRlc3RT
ZXJ2ZXI+KFRMU0NlcnRpZmljYXRlKTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZlckNhbGxi
YWNrQmFkQ2VydFBhZ2VMb2FkVGVzdCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0gbnVsbHB0
cjsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxw
cm92aXNpb25hbCxmYWlsZWQiLCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZEZhaWwsICZlcnJvcik7
CisKKyAgICBib29sIGlzRmluaXNoZWQgPSBmYWxzZTsKKyAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxmaW5pc2hlZCIsIG9uTG9hZEZpbmlzaGVkRmFp
bCwgJmlzRmluaXNoZWQpOworCisgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIGh0dHBz
U2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CisKKyAgICB3YWl0
VW50aWxUcnVlKGZpbmlzaFRlc3QsIHRlc3RUaW1lb3V0U2Vjb25kcyk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227837</attachid>
            <date>2014-03-26 01:56:43 -0700</date>
            <delta_ts>2014-03-31 03:50:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v10.patch</filename>
            <type>text/plain</type>
            <size>16236</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhNGU0ZjQyLi4zZTViNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMjQgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBld2sgQVBJcyB0byBjb250cm9s
IFRMUyBlcnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFk
ZGVkIHRoZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAg
ICAgICAoRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250
ZXh0X2lnbm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVf
dGxzX2Vycm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgor
ICAgICAgICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAg
ICAgKEVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
OgorICAgICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6Cisg
ICAgICAgIEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0w
My0yNCAgRMOhbmllbCBCw6F0eWFpICA8ZGJhdHlhaS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gQnVpbGRmaXggYWZ0ZXIgcjE2NjE1OS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNDI0OThhYi4uNmYzZmJmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTQ4Nyw2ICs0ODcsNyBAQCBzZXQoRVdLMlVuaXRUZXN0c19CSU5BUklF
UwogICAgIHRlc3RfZXdrMl9wb3B1cF9tZW51CiAgICAgdGVzdF9ld2syX3JlZnB0cl9ldmFzX29i
amVjdAogICAgIHRlc3RfZXdrMl9zZXR0aW5ncworICAgIHRlc3RfZXdrMl9zc2wKICAgICB0ZXN0
X2V3azJfc3RvcmFnZV9tYW5hZ2VyCiAgICAgdGVzdF9ld2syX3RleHRfY2hlY2tlcgogICAgIHRl
c3RfZXdrMl92aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5jcHAKaW5kZXggMjNmYzZlYy4uMGZiNGNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtMzcxLDYgKzM3MSwyMCBA
QCB2b2lkIEV3a0NvbnRleHQ6OnByb2Nlc3NSZWNlaXZlZE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbQogICAgICAgICBtX2NhbGxiYWNrRm9yTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZS5jYWxsYmFjayhuYW1lLmRhdGEoKSwgYm9keS5kYXRhKCksIG51bGxw
dHIsIG1fY2FsbGJhY2tGb3JNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLnVzZXJEYXRhKTsKIH0K
IAorRXdrX1RMU19FcnJvcl9Qb2xpY3kgRXdrQ29udGV4dDo6aWdub3JlVExTRXJyb3JzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdG9JbXBsKG1fY29udGV4dC5nZXQoKSktPmlnbm9yZVRMU0Vycm9y
cygpID8gRVdLX1RMU19FUlJPUl9QT0xJQ1lfSUdOT1JFIDogRVdLX1RMU19FUlJPUl9QT0xJQ1lf
RkFJTDsKK30KKwordm9pZCBFd2tDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMoRXdrX1RMU19F
cnJvcl9Qb2xpY3kgVExTRXJyb3JQb2xpY3kpIGNvbnN0Cit7CisgICAgYm9vbCBpc05ld1BvbGlj
eSA9IFRMU0Vycm9yUG9saWN5ID09IEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRTsKKyAgICBp
ZiAodG9JbXBsKG1fY29udGV4dC5nZXQoKSktPmlnbm9yZVRMU0Vycm9ycygpID09IGlzTmV3UG9s
aWN5KQorICAgICAgICByZXR1cm47CisKKyAgICB0b0ltcGwobV9jb250ZXh0LmdldCgpKS0+c2V0
SWdub3JlVExTRXJyb3JzKGlzTmV3UG9saWN5KTsKK30KKwogRXdrX0NvbnRleHQqIGV3a19jb250
ZXh0X2RlZmF1bHRfZ2V0KCkKIHsKICAgICByZXR1cm4gRXdrQ29udGV4dDo6ZGVmYXVsdENvbnRl
eHQoKTsKQEAgLTQ2OSwzICs0ODMsMTYgQEAgdm9pZCBld2tfY29udGV4dF9tZXNzYWdlX2Zyb21f
aW5qZWN0ZWRfYnVuZGxlX2NhbGxiYWNrX3NldChFd2tfQ29udGV4dCogZXdrQ29udGUKIAogICAg
IGltcGwtPnNldE1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjayhjYWxsYmFjaywgdXNl
ckRhdGEpOwogfQorCitFd2tfVExTX0Vycm9yX1BvbGljeSBld2tfY29udGV4dF90bHNfZXJyb3Jf
cG9saWN5X2dldChjb25zdCBFd2tfQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBFV0tfT0JKX0dF
VF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tDb250ZXh0LCBjb250ZXh0LCBpbXBsLCBFV0tfVExT
X0VSUk9SX1BPTElDWV9GQUlMKTsKKworICAgIHJldHVybiBpbXBsLT5pZ25vcmVUTFNFcnJvcnMo
KTsKK30KKwordm9pZCBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb25zdCBFd2tf
Q29udGV4dCogY29udGV4dCwgRXdrX1RMU19FcnJvcl9Qb2xpY3kgdGxzX2Vycm9yX3BvbGljeSkK
K3sKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tDb250ZXh0LCBjb250
ZXh0LCBpbXBsKTsKKyAgICBpbXBsLT5zZXRJZ25vcmVUTFNFcnJvcnModGxzX2Vycm9yX3BvbGlj
eSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQu
aAppbmRleCA0MjhkN2YxLi4wMjkwNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAgLTc1LDYgKzc1LDE5IEBAIGVudW0gRXdrX0NhY2hl
X01vZGVsIHsKIHR5cGVkZWYgZW51bSBFd2tfQ2FjaGVfTW9kZWwgRXdrX0NhY2hlX01vZGVsOwog
CiAvKioKKyAqIFxlbnVtICAgIEV3a19UTFNfRXJyb3JfUG9saWN5CisgKgorICogQGJyaWVmICAg
Q29udGFpbnMgb3B0aW9uIGZvciBUTFMgZXJyb3IgcG9saWN5CisgKi8KK2VudW0gRXdrX1RMU19F
cnJvcl9Qb2xpY3kgeworICAgIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwsIC8vIEZhaWwgb24g
VExTIGVycm9ycy4KKyAgICBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkUgLy8gSWdub3JlIFRM
UyBlcnJvcnMuCit9OworCisvLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciB0aGUgRXdrX1RMU19F
cnJvcl9Qb2xpY3kuCit0eXBlZGVmIGVudW0gRXdrX1RMU19FcnJvcl9Qb2xpY3kgRXdrX1RMU19F
cnJvcl9Qb2xpY3k7CisKKy8qKgogICogQHR5cGVkZWYgRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9D
YiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiCiAgKiBAYnJpZWYgQ2FsbGJhY2sgdHlwZSBmb3Ig
dXNlIHdpdGggZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcigpLgogICovCkBAIC0zNjIs
NiArMzc1LDIzIEBAIEVBUEkgdm9pZCBld2tfY29udGV4dF9tZXNzYWdlX3Bvc3RfdG9faW5qZWN0
ZWRfYnVuZGxlKEV3a19Db250ZXh0ICpjb250ZXh0LCBjb25zCiAgKi8KIEVBUEkgdm9pZCBld2tf
Y29udGV4dF9tZXNzYWdlX2Zyb21faW5qZWN0ZWRfYnVuZGxlX2NhbGxiYWNrX3NldChFd2tfQ29u
dGV4dCAqY29udGV4dCwgRXdrX0NvbnRleHRfTWVzc2FnZV9Gcm9tX0luamVjdGVkX0J1bmRsZV9D
YiBjYWxsYmFjaywgdm9pZCAqdXNlcl9kYXRhKTsKIAorLyoqCisgKiBHZXRzIFRMUyBlcnJvciBw
b2xpY3kgZm9yIEBhIGNvbnRleHQuCisgKgorICogQHBhcmFtIGNvbnRleHQgY29udGV4dCBvYmpl
Y3QgdG8gZ2V0IFRMUyBlcnJvciBwb2xpY3kKKyAqCisgKiBAcmV0dXJuIFRoZSBUTFMgZXJyb3Jz
IHBvbGljeSBmb3IgdGhlIGNvbnRleHQKKyAqLworRXdrX1RMU19FcnJvcl9Qb2xpY3kgZXdrX2Nv
bnRleHRfdGxzX2Vycm9yX3BvbGljeV9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNvbnRleHQpOwor
CisvKioKKyAqIFNldHMgVExTIGVycm9yIHBvbGljeSBmb3IgQGEgY29udGV4dC4KKyAqCisgKiBA
cGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBzZXQgVExTIGVycm9yIHBvbGljeQorICog
QHBhcmFtIGlnbm9yZV90bHNfZXJyb3JzIGEgI0V3a19UTFNfRXJyb3JfUG9saWN5CisgKi8KK0VB
UEkgdm9pZCBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb25zdCBFd2tfQ29udGV4
dCAqY29udGV4dCwgRXdrX1RMU19FcnJvcl9Qb2xpY3kgdGxzX2Vycm9yX3BvbGljeSk7CisKICNp
ZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggNDZjMzcyZS4uNGY0
MDI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb250ZXh0X3ByaXZhdGUuaApAQCAtODEsNiArODEsMTAgQEAgcHVibGljOgogCiAgICAgV2Vi
S2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbCogaGlzdG9yeUNsaWVudCgpOwogCisgICAgRXdr
X1RMU19FcnJvcl9Qb2xpY3kgaWdub3JlVExTRXJyb3JzKCkgY29uc3Q7CisKKyAgICB2b2lkIHNl
dElnbm9yZVRMU0Vycm9ycyhFd2tfVExTX0Vycm9yX1BvbGljeSBUTFNFcnJvclBvbGljeSkgY29u
c3Q7CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB2b2lkIHNldEFkZGl0
aW9uYWxQbHVnaW5QYXRoKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0
VGVzdFNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9V
bml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAKaW5kZXggYmQ4YzY5My4uNDU4OTk1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5p
dFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNw
cApAQCAtMjEsMTMgKzIxLDIyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRVdL
MlVuaXRUZXN0U2VydmVyLmgiCiAKLUVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2Vy
dmVyKCkKK0VXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKEdUbHNDZXJ0aWZp
Y2F0ZSogdGxzQ2VydCkKIHsKICAgICBTb3VwQWRkcmVzcyogYWRkcmVzcyA9IHNvdXBfYWRkcmVz
c19uZXcoIjEyNy4wLjAuMSIsIFNPVVBfQUREUkVTU19BTllfUE9SVCk7CiAgICAgc291cF9hZGRy
ZXNzX3Jlc29sdmVfc3luYyhhZGRyZXNzLCAwKTsKIAotICAgIG1fc291cFNlcnZlciA9IHNvdXBf
c2VydmVyX25ldyhTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0PGNo
YXIqPigwKSk7Ci0gICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJodHRwOi8vMTI3LjAuMC4x
LyIpOworICAgIGlmICh0bHNDZXJ0KSB7CisgICAgICAgIG1fc291cFNlcnZlciA9IHNvdXBfc2Vy
dmVyX25ldygKKyAgICAgICAgICAgIFNPVVBfU0VSVkVSX1RMU19DRVJUSUZJQ0FURSwgdGxzQ2Vy
dCwKKyAgICAgICAgICAgIFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRkcmVzcywgc3RhdGljX2Nh
c3Q8Y2hhcio+KDApKTsKKworICAgICAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXcoImh0dHBz
Oi8vMTI3LjAuMC4xLyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fc291cFNlcnZlciA9IHNv
dXBfc2VydmVyX25ldyhTT1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0
PGNoYXIqPigwKSk7CisgICAgICAgIG1fYmFzZVVSTCA9IHNvdXBfdXJpX25ldygiaHR0cDovLzEy
Ny4wLjAuMS8iKTsKKyAgICB9CisKICAgICBzb3VwX3VyaV9zZXRfcG9ydChtX2Jhc2VVUkwsIHNv
dXBfc2VydmVyX2dldF9wb3J0KG1fc291cFNlcnZlcikpOwogICAgIGdfb2JqZWN0X3VucmVmKGFk
ZHJlc3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
dGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVy
LmgKaW5kZXggODFkMjQ4Yy4uMmI4MTlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxz
L0VXSzJVbml0VGVzdFNlcnZlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAKIGNsYXNzIEVXSzJVbml0
VGVzdFNlcnZlciB7CiBwdWJsaWM6Ci0gICAgRVdLMlVuaXRUZXN0U2VydmVyKCk7CisgICAgZXhw
bGljaXQgRVdLMlVuaXRUZXN0U2VydmVyKEdUbHNDZXJ0aWZpY2F0ZSogdGxzQ2VydCA9IG51bGxw
dHIpOwogICAgIHZpcnR1YWwgfkVXSzJVbml0VGVzdFNlcnZlcigpOwogCiAgICAgQ1N0cmluZyBn
ZXRVUkxGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3NsLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2FlMDdkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5j
cHAKQEAgLTAsMCArMSwyMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBV
bml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RC
YXNlLmgiCisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIEVXSzJVbml0VGVzdDsKKworZXh0ZXJuIEVXSzJVbml0VGVzdEVudmly
b25tZW50KiBlbnZpcm9ubWVudDsKKworc3RhdGljIGNvbnN0IGNoYXIgaW5kZXhIVE1MU3RyaW5n
W10gPQorICAgICI8aHRtbD4iCisgICAgIjxoZWFkPjx0aXRsZT5FRkxXZWJLaXQyIFNTTCB0ZXN0
PC90aXRsZT48L2hlYWQ+IgorICAgICI8Ym9keT48L2JvZHk+PC9odG1sPiI7CisKK3N0YXRpYyBi
b29sIGZpbmlzaFRlc3QgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHRlc3RUaW1l
b3V0U2Vjb25kcyA9IDIuMDsKKworI2RlZmluZSBTVFJJTkdJRlkyKHgpICN4CisjZGVmaW5lIFNU
UklOR0lGWSh4KSBTVFJJTkdJRlkyKHgpCisKK3N0YXRpYyBjb25zdCBnY2hhciBjZXJ0aWZpY2F0
ZV9kYXRhW10gPSBTVFJJTkdJRlkoLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQorTUlJ
Q1hRSUJBQUtCZ1FDbWNYYnVzcnI4elFyOHNuSWIwT1ZRaWJWZmd2N3pQamgvNXhkY3JLT2VqSnpw
M2VwQQorQUY0VElUZUZSOXZ6V0l3a21rY1JvWStJYlFOaGg3a2VmR1VZRDQ3YnZWYW1KTXRxNWNH
WVZzMEhuZ1QrS1RNYQorTkdIL0c0NEtrRklPYXovYjVkL0pOS09Ocmxxd3hxWFMrbTZJWTRsL0Ux
RmYyNVpqTkQ1VGFFdkkxd0lEQVFBQgorQW9HQkFJY0R2NEE5aDZVT0J2MlpHeXNwTnZzdjJlclNi
bEdPaFhKcldPNGFOTmVtSkpzcElwNHNMaVBDYkRFMworYTFwbzE3WFJXQmtiUHoxaGdMNmF4RFhR
bm9lbysrZWJmcnZSU2VkK0Z5czQrNlN2dVNyUE92NlBtV1RCVC9XYQorR3BPK3R2NDhKVU54Qy9E
eThST2l4QlhPVml1SUJFRnEzTmZWSDRIVTMrUkcyME5oQWtFQTFMM1JBaGRmUGtMSQorODJsdVNP
WUUzRXE0NGxJQ2IveVppK0pFaWh3U2VaVEpLZFpId1lEOEtWQ2pPdGpHck9teUV5dlRocmNJQUNR
egorSkxFcmVWaDMzd0pCQU1oSm05cHpKSk5rSXlCZ2lYQTY2RkF3YmhkRHpTVFB4ME9Cam9WV29q
NnU3anpHdklGVAorQ24xYWlUQll6enNpTUNhQ3grVzNlNnBLL0RjdkhTd0tyZ2tDUUhaTWN4d0Jt
U0hMQzJsbm1EOExRV3FxVm5McgorZlpWK1ZuZlZ3NTAxRFFUMHVvUDhOdnlnV0JnMVVmOVlLZXBm
TFhuQnBpZEVRanVwNVpLaXZuVUV2K3NDUUE4TgorNlZjTUhJMnZreXhWMVQ3SVRybm9TZjRackl1
OXlsNTZtSG5SUHpTeTlWbEFIdDhobk1JN1VlQitiR1VuZHJNTworVlhRZ3pIektVaGJieGJlUHZm
RUNRUURUdGtPdWhKeUtEZkhDeExEY3dOcGkrVDZPV1RFZkN3L2NxOVpXRGJBNworeUNYODFwUXhm
WmtmTUlTMVlGSU9HSG92SzByTU1UcmFDZStpRE5ZdFZ6L0wKKy0tLS0tRU5EIFJTQSBQUklWQVRF
IEtFWS0tLS0tCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUI5ekNDQVdBQ0NRRGpX
V1RlQzZCUXZUQU5CZ2txaGtpRzl3MEJBUVFGQURCQU1Rc3dDUVlEVlFRR0V3SkIKK1ZURVRNQkVH
QTFVRUNCTUtVMjl0WlMxVGRHRjBaVEVjTUJvR0ExVUVDaE1UVjJWaVMybDBJRXhoZVc5MWRDQlUK
K1pYTjBjekFlRncwd056QTNNVE14TWpVeE16SmFGdzAzTVRBMU1UTXdOakl6TVRaYU1FQXhDekFK
QmdOVkJBWVQKK0FrRlZNUk13RVFZRFZRUUlFd3BUYjIxbExWTjBZWFJsTVJ3d0dnWURWUVFLRXhO
WFpXSkxhWFFnVEdGNWIzVjAKK0lGUmxjM1J6TUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFE
Q0JpUUtCZ1FDbWNYYnVzcnI4elFyOHNuSWIKKzBPVlFpYlZmZ3Y3elBqaC81eGRjcktPZWpKenAz
ZXBBQUY0VElUZUZSOXZ6V0l3a21rY1JvWStJYlFOaGg3a2UKK2ZHVVlENDdidlZhbUpNdHE1Y0dZ
VnMwSG5nVCtLVE1hTkdIL0c0NEtrRklPYXovYjVkL0pOS09Ocmxxd3hxWFMKKyttNklZNGwvRTFG
ZjI1WmpORDVUYUV2STF3SURBUUFCTUEwR0NTcUdTSWIzRFFFQkJBVUFBNEdCQUFmYlViZ0QKKzAx
TzhEb1pBMDJjMU1VTWJNSFJQU2IvcWRvazJweVdvQ1BhL0JTYU9JYU5QZVBjOGF1UFJiclMyWHNW
V1NNZnQKK0NUWGlYbXJLMlh4MStmSnVaTEFwMENVbmc0RGU0Y0RINWM4bnZsb2NZbVhvKzF4NTNT
OURmRDBLUHJ5akJSSTcKKzlMbkpxMnlzSEFVYXdpcUZYbHdCYWc2bVhhd0Q4WWp6Y1lhdAorLS0t
LS1FTkQgQ0VSVElGSUNBVEUtLS0tLSk7CisKK2NsYXNzIEVXSzJTU0xUZXN0IDogcHVibGljIEVX
SzJVbml0VGVzdEJhc2UgeworcHVibGljOgorCisgICAgc3RhdGljIHZvaWQgb25Mb2FkUHJvdmlz
aW9uYWxGYWlsZWRGYWlsKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50
SW5mbykKKyAgICB7CisgICAgICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICAvLyBUaGUg
dGVzdCBwYXNzZXMgaWYgYW4gU1NMIGVycm9yIG9jY3Vycy4KKyAgICAgICAgQVNTRVJUX1RSVUUo
ZXdrX2Vycm9yX2NvZGVfZ2V0KHN0YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykpID09
IFNPVVBfU1RBVFVTX1NTTF9GQUlMRUQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9h
ZEZpbmlzaGVkRmFpbCh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKikKKyAgICB7
CisgICAgICAgIGJvb2wqIGlzRmluaXNoZWQgPSBzdGF0aWNfY2FzdDxib29sKj4odXNlckRhdGEp
OworICAgICAgICBpZiAoaXNGaW5pc2hlZCkgeworICAgICAgICAgICAgZmluaXNoVGVzdCA9IHRy
dWU7CisgICAgICAgICAgICAvLyBUaGUgdGVzdCBmYWlscyBpZiB0aGUgcGFnZSBpcyBsb2FkZWQu
CisgICAgICAgICAgICBGQUlMKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgdm9p
ZCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZElnbm9yZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmpl
Y3QqLCB2b2lkKiBldmVudEluZm8pCisgICAgeworICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsK
KyAgICAgICAgaWYgKGV3a19lcnJvcl9jb2RlX2dldChzdGF0aWNfY2FzdDxFd2tfRXJyb3IqPihl
dmVudEluZm8pKSA9PSBTT1VQX1NUQVRVU19TU0xfRkFJTEVEKQorICAgICAgICAgICAgLy8gVGhl
IHRlc3QgZmFpbHMgaWYgYW4gU1NMIGVycm9yIG9jY3Vycy4KKyAgICAgICAgICAgIEZBSUwoKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBvbkxvYWRGaW5pc2hlZElnbm9yZSh2b2lkKiB1c2Vy
RGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKikKKyAgICB7CisgICAgICAgIGJvb2wqIGlzRmluaXNo
ZWQgPSBzdGF0aWNfY2FzdDxib29sKj4odXNlckRhdGEpOworICAgICAgICBmaW5pc2hUZXN0ID0g
dHJ1ZTsKKyAgICAgICAgLy8gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwYWdlIGlzIGxvYWRlZC4K
KyAgICAgICAgQVNTRVJUX1RSVUUoaXNGaW5pc2hlZCk7CisgICAgfQorCisgICAgc3RhdGljIHZv
aWQgc2VydmVyQ2FsbGJhY2tCYWRDZXJ0UGFnZUxvYWRUZXN0KFNvdXBTZXJ2ZXIqLCBTb3VwTWVz
c2FnZSogbWVzc2FnZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNvdXBDbGllbnRD
b250ZXh0Kiwgdm9pZCopCisgICAgeworICAgICAgICBpZiAobWVzc2FnZS0+bWV0aG9kICE9IFNP
VVBfTUVUSE9EX0dFVCkgeworICAgICAgICAgICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVz
c2FnZSwgU09VUF9TVEFUVVNfTk9UX0lNUExFTUVOVEVEKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIGlmICghc3RyY21wKHBhdGgsICIvaW5kZXguaHRtbCIpKSB7
CisgICAgICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRV
U19PSyk7CisgICAgICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVz
cG9uc2VfYm9keSwgU09VUF9NRU1PUllfQ09QWSwgaW5kZXhIVE1MU3RyaW5nLCBzdHJsZW4oaW5k
ZXhIVE1MU3RyaW5nKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc291cF9tZXNzYWdl
X3NldF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfTk9UX0ZPVU5EKTsKKworICAgICAgICBz
b3VwX21lc3NhZ2VfYm9keV9jb21wbGV0ZShtZXNzYWdlLT5yZXNwb25zZV9ib2R5KTsKKyAgICB9
Cit9OworCitzdGF0aWMgR1Rsc0NlcnRpZmljYXRlKiBnZXRDZXJ0aWZpY2F0ZSgpCit7CisgICAg
R0Vycm9yKiogZ2Vycm9yOworICAgIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUgPSBnX3Rs
c19jZXJ0aWZpY2F0ZV9uZXdfZnJvbV9wZW0oCisgICAgICAgIGNlcnRpZmljYXRlX2RhdGEsIHNp
emVvZihjZXJ0aWZpY2F0ZV9kYXRhKSwgZ2Vycm9yKTsKKworICAgIGlmICghY2VydGlmaWNhdGUp
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGNyZWF0ZSBjZXJ0aWZpY2F0ZSBm
cm9tIFBFTVxuIik7CisKKyAgICByZXR1cm4gY2VydGlmaWNhdGU7Cit9CisKK1RFU1RfRihFV0sy
U1NMVGVzdCwgZXdrX3NzbF9zZXRfdGxzX2Vycm9yX3BvbGljeV9pZ25vcmUpCit7CisgICAgRXdr
X0NvbnRleHQqIGNvbnRleHQgPSBld2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworCisg
ICAgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9zZXQoY29udGV4dCwgRVdLX1RMU19FUlJP
Ul9QT0xJQ1lfSUdOT1JFKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a19jb250ZXh0X3Rsc19lcnJv
cl9wb2xpY3lfZ2V0KGNvbnRleHQpID09IEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSk7Cit9
CisKK1RFU1RfRihFV0syU1NMVGVzdCwgZXdrX3NzbF9zZXRfdGxzX2Vycm9yX3BvbGljeV9mYWls
KQoreworICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9nZXQod2Vi
VmlldygpKTsKKworICAgIGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnRleHQs
IEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX2NvbnRl
eHRfdGxzX2Vycm9yX3BvbGljeV9nZXQoY29udGV4dCkgPT0gRVdLX1RMU19FUlJPUl9QT0xJQ1lf
RkFJTCk7Cit9CisKK1RFU1RfRihFV0syU1NMVGVzdCwgZXdrX3NzbF9iYWRfY2VydF9wYWdlX2xv
YWRfdGVzdF9wb2xpY3lfaWdub3JlKQoreworICAgIGZpbmlzaFRlc3QgPSBmYWxzZTsKKworICAg
IEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKTsK
KyAgICBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb250ZXh0LCBFV0tfVExTX0VS
Uk9SX1BPTElDWV9JR05PUkUpOworCisgICAgR1Rsc0NlcnRpZmljYXRlKiBUTFNDZXJ0aWZpY2F0
ZSA9IGdldENlcnRpZmljYXRlKCk7CisKKyAgICBpZiAoIVRMU0NlcnRpZmljYXRlKQorICAgICAg
ICBGQUlMKCk7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RVdLMlVuaXRUZXN0U2VydmVyPiBodHRw
c1NlcnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8RVdLMlVuaXRUZXN0U2VydmVyPihUTFNDZXJ0aWZp
Y2F0ZSk7CisgICAgaHR0cHNTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9h
ZFRlc3QpOworCisgICAgRXdrX0Vycm9yKiBlcnJvciA9IG51bGxwdHI7CisgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQscHJvdmlzaW9uYWwsZmFpbGVk
Iiwgb25Mb2FkUHJvdmlzaW9uYWxGYWlsZWRJZ25vcmUsICZlcnJvcik7CisKKyAgICBib29sIGlz
RmluaXNoZWQgPSBmYWxzZTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2Vi
VmlldygpLCAibG9hZCxmaW5pc2hlZCIsIG9uTG9hZEZpbmlzaGVkSWdub3JlLCAmaXNGaW5pc2hl
ZCk7CisKKyAgICBld2tfdmlld191cmxfc2V0KHdlYlZpZXcoKSwgaHR0cHNTZXJ2ZXItPmdldFVS
TEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKKworICAgIHdhaXRVbnRpbFRydWUoZmlu
aXNoVGVzdCwgdGVzdFRpbWVvdXRTZWNvbmRzKTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBl
d2tfc3NsX2JhZF9jZXJ0X3BhZ2VfbG9hZF90ZXN0X3BvbGljeV9mYWlsKQoreworICAgIGZpbmlz
aFRlc3QgPSBmYWxzZTsKKworICAgIEV3a19Db250ZXh0KiBjb250ZXh0ID0gZXdrX3ZpZXdfY29u
dGV4dF9nZXQod2ViVmlldygpKTsKKyAgICBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3Nl
dChjb250ZXh0LCBFV0tfVExTX0VSUk9SX1BPTElDWV9GQUlMKTsKKworICAgIEdUbHNDZXJ0aWZp
Y2F0ZSogVExTQ2VydGlmaWNhdGUgPSBnZXRDZXJ0aWZpY2F0ZSgpOworCisgICAgaWYgKCFUTFND
ZXJ0aWZpY2F0ZSkKKyAgICAgICAgRkFJTCgpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPEVXSzJV
bml0VGVzdFNlcnZlcj4gaHR0cHNTZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEVXSzJVbml0VGVz
dFNlcnZlcj4oVExTQ2VydGlmaWNhdGUpOworICAgIGh0dHBzU2VydmVyLT5ydW4oc2VydmVyQ2Fs
bGJhY2tCYWRDZXJ0UGFnZUxvYWRUZXN0KTsKKworICAgIEV3a19FcnJvciogZXJyb3IgPSBudWxs
cHRyOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3KCksICJsb2Fk
LHByb3Zpc2lvbmFsLGZhaWxlZCIsIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVkRmFpbCwgJmVycm9y
KTsKKworICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZhbHNlOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2FkZCh3ZWJWaWV3KCksICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmluaXNoZWRG
YWlsLCAmaXNGaW5pc2hlZCk7CisKKyAgICBld2tfdmlld191cmxfc2V0KHdlYlZpZXcoKSwgaHR0
cHNTZXJ2ZXItPmdldFVSTEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKKworICAgIHdh
aXRVbnRpbFRydWUoZmluaXNoVGVzdCwgdGVzdFRpbWVvdXRTZWNvbmRzKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228168</attachid>
            <date>2014-03-31 03:50:22 -0700</date>
            <delta_ts>2014-03-31 03:55:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v11.patch</filename>
            <type>text/plain</type>
            <size>16259</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkODVjZTUyLi4zZThkNzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMzEgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBld2sgQVBJcyB0byBjb250cm9s
IFRMUyBlcnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFk
ZGVkIHRoZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAg
ICAgICAoRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250
ZXh0X2lnbm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVf
dGxzX2Vycm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgor
ICAgICAgICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAg
ICAgKEVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
OgorICAgICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6Cisg
ICAgICAgIEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0w
My0yNyAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
UyBXZWJLaXQyXSBUd2VhayBjYWNoZSBzaXplcyBmb3IgaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNt
YWtlCmluZGV4IDVmY2QyNmYuLjEyNTI3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBA
IC00OTIsNiArNDkyLDcgQEAgc2V0KEVXSzJVbml0VGVzdHNfQklOQVJJRVMKICAgICB0ZXN0X2V3
azJfcG9wdXBfbWVudQogICAgIHRlc3RfZXdrMl9yZWZwdHJfZXZhc19vYmplY3QKICAgICB0ZXN0
X2V3azJfc2V0dGluZ3MKKyAgICB0ZXN0X2V3azJfc3NsCiAgICAgdGVzdF9ld2syX3N0b3JhZ2Vf
bWFuYWdlcgogICAgIHRlc3RfZXdrMl90ZXh0X2NoZWNrZXIKICAgICB0ZXN0X2V3azJfdmlldwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCmlu
ZGV4IGIzNmRhYjEuLjgyMDExMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTQxMyw2ICs0MTMsMjAgQEAgdm9pZCBFd2tDb250
ZXh0Ojpwcm9jZXNzUmVjZWl2ZWRNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVm
IG1lc3NhZ2VOYW0KICAgICAgICAgbV9jYWxsYmFja0Zvck1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUuY2FsbGJhY2sobmFtZS5kYXRhKCksIGJvZHkuZGF0YSgpLCBudWxscHRyLCBtX2NhbGxiYWNr
Rm9yTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZS51c2VyRGF0YSk7CiB9CiAKK0V3a19UTFNfRXJy
b3JfUG9saWN5IEV3a0NvbnRleHQ6Omlnbm9yZVRMU0Vycm9ycygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRvSW1wbChtX2NvbnRleHQuZ2V0KCkpLT5pZ25vcmVUTFNFcnJvcnMoKSA/IEVXS19UTFNf
RVJST1JfUE9MSUNZX0lHTk9SRSA6IEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUw7Cit9CisKK3Zv
aWQgRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKEV3a19UTFNfRXJyb3JfUG9saWN5IFRM
U0Vycm9yUG9saWN5KSBjb25zdAoreworICAgIGJvb2wgaXNOZXdQb2xpY3kgPSBUTFNFcnJvclBv
bGljeSA9PSBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkU7CisgICAgaWYgKHRvSW1wbChtX2Nv
bnRleHQuZ2V0KCkpLT5pZ25vcmVUTFNFcnJvcnMoKSA9PSBpc05ld1BvbGljeSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgdG9JbXBsKG1fY29udGV4dC5nZXQoKSktPnNldElnbm9yZVRMU0Vycm9y
cyhpc05ld1BvbGljeSk7Cit9CisKIEV3a19Db250ZXh0KiBld2tfY29udGV4dF9kZWZhdWx0X2dl
dCgpCiB7CiAgICAgcmV0dXJuIEV3a0NvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7CkBAIC01Mzgs
MyArNTUyLDE2IEBAIEV3a19Qcm9jZXNzX01vZGVsIGV3a19jb250ZXh0X3Byb2Nlc3NfbW9kZWxf
Z2V0KGNvbnN0IEV3a19Db250ZXh0KiBld2tDb250ZXh0KQogICAgIHJldHVybiBFV0tfUFJPQ0VT
U19NT0RFTF9TSEFSRURfU0VDT05EQVJZOwogI2VuZGlmCiB9CisKK0V3a19UTFNfRXJyb3JfUG9s
aWN5IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0KGNvbnN0IEV3a19Db250ZXh0KiBj
b250ZXh0KQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0NvbnRl
eHQsIGNvbnRleHQsIGltcGwsIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOworCisgICAgcmV0
dXJuIGltcGwtPmlnbm9yZVRMU0Vycm9ycygpOworfQorCit2b2lkIGV3a19jb250ZXh0X3Rsc19l
cnJvcl9wb2xpY3lfc2V0KGNvbnN0IEV3a19Db250ZXh0KiBjb250ZXh0LCBFd2tfVExTX0Vycm9y
X1BvbGljeSB0bHNfZXJyb3JfcG9saWN5KQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVU
VVJOKGNvbnN0IEV3a0NvbnRleHQsIGNvbnRleHQsIGltcGwpOworICAgIGltcGwtPnNldElnbm9y
ZVRMU0Vycm9ycyh0bHNfZXJyb3JfcG9saWN5KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCmluZGV4IGE2MDNiMTUuLmMzMzcxNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaApAQCAtODgs
NiArODgsMTkgQEAgZW51bSBFd2tfUHJvY2Vzc19Nb2RlbCB7CiB0eXBlZGVmIGVudW0gRXdrX1By
b2Nlc3NfTW9kZWwgRXdrX1Byb2Nlc3NfTW9kZWw7CiAKIC8qKgorICogXGVudW0gICAgRXdrX1RM
U19FcnJvcl9Qb2xpY3kKKyAqCisgKiBAYnJpZWYgICBDb250YWlucyBvcHRpb24gZm9yIFRMUyBl
cnJvciBwb2xpY3kKKyAqLworZW51bSBFd2tfVExTX0Vycm9yX1BvbGljeSB7CisgICAgRVdLX1RM
U19FUlJPUl9QT0xJQ1lfRkFJTCwgLy8gRmFpbCBvbiBUTFMgZXJyb3JzLgorICAgIEVXS19UTFNf
RVJST1JfUE9MSUNZX0lHTk9SRSAvLyBJZ25vcmUgVExTIGVycm9ycy4KK307CisKKy8vIENyZWF0
ZXMgYSB0eXBlIG5hbWUgZm9yIHRoZSBFd2tfVExTX0Vycm9yX1BvbGljeS4KK3R5cGVkZWYgZW51
bSBFd2tfVExTX0Vycm9yX1BvbGljeSBFd2tfVExTX0Vycm9yX1BvbGljeTsKKworLyoqCiAgKiBA
dHlwZWRlZiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIEV3a19VcmxfU2NoZW1lX1JlcXVlc3Rf
Q2IKICAqIEBicmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBld2tfY29udGV4dF91cmxf
c2NoZW1lX3JlZ2lzdGVyKCkuCiAgKi8KQEAgLTM5OSw2ICs0MTIsMjUgQEAgRUFQSSBFaW5hX0Jv
b2wgZXdrX2NvbnRleHRfcHJvY2Vzc19tb2RlbF9zZXQoRXdrX0NvbnRleHQgKmNvbnRleHQsIEV3
a19Qcm9jZXNzX00KICAqLwogRUFQSSBFd2tfUHJvY2Vzc19Nb2RlbCBld2tfY29udGV4dF9wcm9j
ZXNzX21vZGVsX2dldChjb25zdCBFd2tfQ29udGV4dCAqY29udGV4dCk7CiAKKy8qKgorICogR2V0
cyBUTFMgZXJyb3IgcG9saWN5IGZvciBAYSBjb250ZXh0LgorICoKKyAqIEBwYXJhbSBjb250ZXh0
IGNvbnRleHQgb2JqZWN0IHRvIGdldCBUTFMgZXJyb3IgcG9saWN5CisgKgorICogQHJldHVybiBU
aGUgVExTIGVycm9ycyBwb2xpY3kgZm9yIHRoZSBjb250ZXh0CisgKi8KK0V3a19UTFNfRXJyb3Jf
UG9saWN5IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0KGNvbnN0IEV3a19Db250ZXh0
ICpjb250ZXh0KTsKKworLyoqCisgKiBTZXRzIFRMUyBlcnJvciBwb2xpY3kgZm9yIEBhIGNvbnRl
eHQuCisgKgorICogU2V0cyBob3cgVExTIGNlcnRpZmljYXRlIGVycm9ycyBzaG91bGQgYmUgaGFu
ZGxlZC4gVGhlIGF2YWlsYWJsZSBwb2xpY2llcyBhcmUgbGlzdGVkIGluICNFd2tfVExTX0Vycm9y
X1BvbGljeSBlbnVtZXJhdGlvbi4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVj
dCB0byBzZXQgVExTIGVycm9yIHBvbGljeQorICogQHBhcmFtIHRsc19lcnJvcl9wb2xpY3kgYSAj
RXdrX1RMU19FcnJvcl9Qb2xpY3kKKyAqLworRUFQSSB2b2lkIGV3a19jb250ZXh0X3Rsc19lcnJv
cl9wb2xpY3lfc2V0KEV3a19Db250ZXh0ICpjb250ZXh0LCBFd2tfVExTX0Vycm9yX1BvbGljeSB0
bHNfZXJyb3JfcG9saWN5KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZh
dGUuaAppbmRleCBiZGUwNzY1Li5kMDdmNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCkBAIC04NSw2ICs4NSwx
MCBAQCBwdWJsaWM6CiAKICAgICBXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKiBoaXN0
b3J5Q2xpZW50KCk7CiAKKyAgICBFd2tfVExTX0Vycm9yX1BvbGljeSBpZ25vcmVUTFNFcnJvcnMo
KSBjb25zdDsKKworICAgIHZvaWQgc2V0SWdub3JlVExTRXJyb3JzKEV3a19UTFNfRXJyb3JfUG9s
aWN5IFRMU0Vycm9yUG9saWN5KSBjb25zdDsKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogICAgIHZvaWQgc2V0QWRkaXRpb25hbFBsdWdpblBhdGgoY29uc3QgU3RyaW5nJik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNw
cAppbmRleCBiZDhjNjkzLi40NTg5OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGls
cy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwCkBAIC0yMSwxMyArMjEsMjIgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJFV0syVW5pdFRlc3RTZXJ2ZXIuaCIKIAotRVdLMlVuaXRUZXN0
U2VydmVyOjpFV0syVW5pdFRlc3RTZXJ2ZXIoKQorRVdLMlVuaXRUZXN0U2VydmVyOjpFV0syVW5p
dFRlc3RTZXJ2ZXIoR1Rsc0NlcnRpZmljYXRlKiB0bHNDZXJ0KQogewogICAgIFNvdXBBZGRyZXNz
KiBhZGRyZXNzID0gc291cF9hZGRyZXNzX25ldygiMTI3LjAuMC4xIiwgU09VUF9BRERSRVNTX0FO
WV9QT1JUKTsKICAgICBzb3VwX2FkZHJlc3NfcmVzb2x2ZV9zeW5jKGFkZHJlc3MsIDApOwogCi0g
ICAgbV9zb3VwU2VydmVyID0gc291cF9zZXJ2ZXJfbmV3KFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwg
YWRkcmVzcywgc3RhdGljX2Nhc3Q8Y2hhcio+KDApKTsKLSAgICBtX2Jhc2VVUkwgPSBzb3VwX3Vy
aV9uZXcoImh0dHA6Ly8xMjcuMC4wLjEvIik7CisgICAgaWYgKHRsc0NlcnQpIHsKKyAgICAgICAg
bV9zb3VwU2VydmVyID0gc291cF9zZXJ2ZXJfbmV3KAorICAgICAgICAgICAgU09VUF9TRVJWRVJf
VExTX0NFUlRJRklDQVRFLCB0bHNDZXJ0LAorICAgICAgICAgICAgU09VUF9TRVJWRVJfSU5URVJG
QUNFLCBhZGRyZXNzLCBzdGF0aWNfY2FzdDxjaGFyKj4oMCkpOworCisgICAgICAgIG1fYmFzZVVS
TCA9IHNvdXBfdXJpX25ldygiaHR0cHM6Ly8xMjcuMC4wLjEvIik7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgbV9zb3VwU2VydmVyID0gc291cF9zZXJ2ZXJfbmV3KFNPVVBfU0VSVkVSX0lOVEVSRkFD
RSwgYWRkcmVzcywgc3RhdGljX2Nhc3Q8Y2hhcio+KDApKTsKKyAgICAgICAgbV9iYXNlVVJMID0g
c291cF91cmlfbmV3KCJodHRwOi8vMTI3LjAuMC4xLyIpOworICAgIH0KKwogICAgIHNvdXBfdXJp
X3NldF9wb3J0KG1fYmFzZVVSTCwgc291cF9zZXJ2ZXJfZ2V0X3BvcnQobV9zb3VwU2VydmVyKSk7
CiAgICAgZ19vYmplY3RfdW5yZWYoYWRkcmVzcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNl
cnZlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RV
dGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaAppbmRleCA4MWQyNDhjLi4yYjgxOWQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxz
L0VXSzJVbml0VGVzdFNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgKQEAgLTI2LDcgKzI2
LDcgQEAKIAogY2xhc3MgRVdLMlVuaXRUZXN0U2VydmVyIHsKIHB1YmxpYzoKLSAgICBFV0syVW5p
dFRlc3RTZXJ2ZXIoKTsKKyAgICBleHBsaWNpdCBFV0syVW5pdFRlc3RTZXJ2ZXIoR1Rsc0NlcnRp
ZmljYXRlKiB0bHNDZXJ0ID0gbnVsbHB0cik7CiAgICAgdmlydHVhbCB+RVdLMlVuaXRUZXN0U2Vy
dmVyKCk7CiAKICAgICBDU3RyaW5nIGdldFVSTEZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90
ZXN0X2V3azJfc3NsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L3Rlc3RfZXdrMl9zc2wuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3
YWUwN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC90ZXN0cy90ZXN0X2V3azJfc3NsLmNwcApAQCAtMCwwICsxLDIwOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJVbml0
VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2UuaCIKKyNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VX
SzJVbml0VGVzdFNlcnZlci5oIgorCit1c2luZyBuYW1lc3BhY2UgRVdLMlVuaXRUZXN0OworCitl
eHRlcm4gRVdLMlVuaXRUZXN0RW52aXJvbm1lbnQqIGVudmlyb25tZW50OworCitzdGF0aWMgY29u
c3QgY2hhciBpbmRleEhUTUxTdHJpbmdbXSA9CisgICAgIjxodG1sPiIKKyAgICAiPGhlYWQ+PHRp
dGxlPkVGTFdlYktpdDIgU1NMIHRlc3Q8L3RpdGxlPjwvaGVhZD4iCisgICAgIjxib2R5PjwvYm9k
eT48L2h0bWw+IjsKKworc3RhdGljIGJvb2wgZmluaXNoVGVzdCA9IGZhbHNlOworc3RhdGljIGNv
bnN0ZXhwciBkb3VibGUgdGVzdFRpbWVvdXRTZWNvbmRzID0gMi4wOworCisjZGVmaW5lIFNUUklO
R0lGWTIoeCkgI3gKKyNkZWZpbmUgU1RSSU5HSUZZKHgpIFNUUklOR0lGWTIoeCkKKworc3RhdGlj
IGNvbnN0IGdjaGFyIGNlcnRpZmljYXRlX2RhdGFbXSA9IFNUUklOR0lGWSgtLS0tLUJFR0lOIFJT
QSBQUklWQVRFIEtFWS0tLS0tCitNSUlDWFFJQkFBS0JnUUNtY1hidXNycjh6UXI4c25JYjBPVlFp
YlZmZ3Y3elBqaC81eGRjcktPZWpKenAzZXBBCitBRjRUSVRlRlI5dnpXSXdrbWtjUm9ZK0liUU5o
aDdrZWZHVVlENDdidlZhbUpNdHE1Y0dZVnMwSG5nVCtLVE1hCitOR0gvRzQ0S2tGSU9hei9iNWQv
Sk5LT05ybHF3eHFYUyttNklZNGwvRTFGZjI1WmpORDVUYUV2STF3SURBUUFCCitBb0dCQUljRHY0
QTloNlVPQnYyWkd5c3BOdnN2MmVyU2JsR09oWEpyV080YU5OZW1KSnNwSXA0c0xpUENiREUzCith
MXBvMTdYUldCa2JQejFoZ0w2YXhEWFFub2VvKytlYmZydlJTZWQrRnlzNCs2U3Z1U3JQT3Y2UG1X
VEJUL1dhCitHcE8rdHY0OEpVTnhDL0R5OFJPaXhCWE9WaXVJQkVGcTNOZlZINEhVMytSRzIwTmhB
a0VBMUwzUkFoZGZQa0xJCis4Mmx1U09ZRTNFcTQ0bElDYi95WmkrSkVpaHdTZVpUSktkWkh3WUQ4
S1ZDak90akdyT215RXl2VGhyY0lBQ1F6CitKTEVyZVZoMzN3SkJBTWhKbTlwekpKTmtJeUJnaVhB
NjZGQXdiaGREelNUUHgwT0Jqb1ZXb2o2dTdqekd2SUZUCitDbjFhaVRCWXp6c2lNQ2FDeCtXM2U2
cEsvRGN2SFN3S3Jna0NRSFpNY3h3Qm1TSExDMmxubUQ4TFFXcXFWbkxyCitmWlYrVm5mVnc1MDFE
UVQwdW9QOE52eWdXQmcxVWY5WUtlcGZMWG5CcGlkRVFqdXA1Wktpdm5VRXYrc0NRQThOCis2VmNN
SEkydmt5eFYxVDdJVHJub1NmNFpySXU5eWw1Nm1IblJQelN5OVZsQUh0OGhuTUk3VWVCK2JHVW5k
ck1PCitWWFFnekh6S1VoYmJ4YmVQdmZFQ1FRRFR0a091aEp5S0RmSEN4TERjd05waStUNk9XVEVm
Q3cvY3E5WldEYkE3Cit5Q1g4MXBReGZaa2ZNSVMxWUZJT0dIb3ZLMHJNTVRyYUNlK2lETll0Vnov
TAorLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUt
LS0tLQorTUlJQjl6Q0NBV0FDQ1FEaldXVGVDNkJRdlRBTkJna3Foa2lHOXcwQkFRUUZBREJBTVFz
d0NRWURWUVFHRXdKQgorVlRFVE1CRUdBMVVFQ0JNS1UyOXRaUzFUZEdGMFpURWNNQm9HQTFVRUNo
TVRWMlZpUzJsMElFeGhlVzkxZENCVQorWlhOMGN6QWVGdzB3TnpBM01UTXhNalV4TXpKYUZ3MDNN
VEExTVRNd05qSXpNVFphTUVBeEN6QUpCZ05WQkFZVAorQWtGVk1STXdFUVlEVlFRSUV3cFRiMjFs
TFZOMFlYUmxNUnd3R2dZRFZRUUtFeE5YWldKTGFYUWdUR0Y1YjNWMAorSUZSbGMzUnpNSUdmTUEw
R0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUUNtY1hidXNycjh6UXI4c25JYgorME9WUWli
VmZndjd6UGpoLzV4ZGNyS09lakp6cDNlcEFBRjRUSVRlRlI5dnpXSXdrbWtjUm9ZK0liUU5oaDdr
ZQorZkdVWUQ0N2J2VmFtSk10cTVjR1lWczBIbmdUK0tUTWFOR0gvRzQ0S2tGSU9hei9iNWQvSk5L
T05ybHF3eHFYUworK202SVk0bC9FMUZmMjVaak5ENVRhRXZJMXdJREFRQUJNQTBHQ1NxR1NJYjNE
UUVCQkFVQUE0R0JBQWZiVWJnRAorMDFPOERvWkEwMmMxTVVNYk1IUlBTYi9xZG9rMnB5V29DUGEv
QlNhT0lhTlBlUGM4YXVQUmJyUzJYc1ZXU01mdAorQ1RYaVhtcksyWHgxK2ZKdVpMQXAwQ1VuZzRE
ZTRjREg1YzhudmxvY1ltWG8rMXg1M1M5RGZEMEtQcnlqQlJJNworOUxuSnEyeXNIQVVhd2lxRlhs
d0JhZzZtWGF3RDhZanpjWWF0CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tKTsKKworY2xhc3Mg
RVdLMlNTTFRlc3QgOiBwdWJsaWMgRVdLMlVuaXRUZXN0QmFzZSB7CitwdWJsaWM6CisKKyAgICBz
dGF0aWMgdm9pZCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZEZhaWwodm9pZCogdXNlckRhdGEsIEV2
YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQorICAgIHsKKyAgICAgICAgZmluaXNoVGVzdCA9
IHRydWU7CisgICAgICAgIC8vIFRoZSB0ZXN0IHBhc3NlcyBpZiBhbiBTU0wgZXJyb3Igb2NjdXJz
LgorICAgICAgICBBU1NFUlRfVFJVRShld2tfZXJyb3JfY29kZV9nZXQoc3RhdGljX2Nhc3Q8RXdr
X0Vycm9yKj4oZXZlbnRJbmZvKSkgPT0gU09VUF9TVEFUVVNfU1NMX0ZBSUxFRCk7CisgICAgfQor
CisgICAgc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWRGYWlsKHZvaWQqIHVzZXJEYXRhLCBFdmFz
X09iamVjdCosIHZvaWQqKQorICAgIHsKKyAgICAgICAgYm9vbCogaXNGaW5pc2hlZCA9IHN0YXRp
Y19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAgIGlmIChpc0ZpbmlzaGVkKSB7CisgICAg
ICAgICAgICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIC8vIFRoZSB0ZXN0IGZhaWxz
IGlmIHRoZSBwYWdlIGlzIGxvYWRlZC4KKyAgICAgICAgICAgIEZBSUwoKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVkSWdub3JlKHZv
aWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKKyAgICB7CisgICAg
ICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZXdrX2Vycm9yX2NvZGVfZ2V0KHN0
YXRpY19jYXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykpID09IFNPVVBfU1RBVFVTX1NTTF9GQUlM
RUQpCisgICAgICAgICAgICAvLyBUaGUgdGVzdCBmYWlscyBpZiBhbiBTU0wgZXJyb3Igb2NjdXJz
LgorICAgICAgICAgICAgRkFJTCgpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZEZp
bmlzaGVkSWdub3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqKQorICAgIHsK
KyAgICAgICAgYm9vbCogaXNGaW5pc2hlZCA9IHN0YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7
CisgICAgICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICAvLyBUaGUgdGVzdCBwYXNzZXMg
aWYgdGhlIHBhZ2UgaXMgbG9hZGVkLgorICAgICAgICBBU1NFUlRfVFJVRShpc0ZpbmlzaGVkKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRl
c3QoU291cFNlcnZlciosIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRoLCBH
SGFzaFRhYmxlKiwgU291cENsaWVudENvbnRleHQqLCB2b2lkKikKKyAgICB7CisgICAgICAgIGlm
IChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CisgICAgICAgICAgICBzb3Vw
X21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1RfSU1QTEVNRU5URUQp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFzdHJjbXAo
cGF0aCwgIi9pbmRleC5odG1sIikpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3Rh
dHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX09LKTsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9i
b2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9DT1BZLCBpbmRl
eEhUTUxTdHJpbmcsIHN0cmxlbihpbmRleEhUTUxTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19O
T1RfRk9VTkQpOworCisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2Ut
PnJlc3BvbnNlX2JvZHkpOworICAgIH0KK307CisKK3N0YXRpYyBHVGxzQ2VydGlmaWNhdGUqIGdl
dENlcnRpZmljYXRlKCkKK3sKKyAgICBHRXJyb3IqKiBnZXJyb3I7CisgICAgR1Rsc0NlcnRpZmlj
YXRlKiBjZXJ0aWZpY2F0ZSA9IGdfdGxzX2NlcnRpZmljYXRlX25ld19mcm9tX3BlbSgKKyAgICAg
ICAgY2VydGlmaWNhdGVfZGF0YSwgc2l6ZW9mKGNlcnRpZmljYXRlX2RhdGEpLCBnZXJyb3IpOwor
CisgICAgaWYgKCFjZXJ0aWZpY2F0ZSkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUg
dG8gY3JlYXRlIGNlcnRpZmljYXRlIGZyb20gUEVNXG4iKTsKKworICAgIHJldHVybiBjZXJ0aWZp
Y2F0ZTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3NsX3NldF90bHNfZXJyb3JfcG9s
aWN5X2lnbm9yZSkKK3sKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRl
eHRfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3Nl
dChjb250ZXh0LCBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkUpOworCisgICAgQVNTRVJUX1RS
VUUoZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9nZXQoY29udGV4dCkgPT0gRVdLX1RMU19F
UlJPUl9QT0xJQ1lfSUdOT1JFKTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3NsX3Nl
dF90bHNfZXJyb3JfcG9saWN5X2ZhaWwpCit7CisgICAgRXdrX0NvbnRleHQqIGNvbnRleHQgPSBl
d2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworCisgICAgZXdrX2NvbnRleHRfdGxzX2Vy
cm9yX3BvbGljeV9zZXQoY29udGV4dCwgRVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCk7CisKKyAg
ICBBU1NFUlRfVFJVRShld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X2dldChjb250ZXh0KSA9
PSBFV0tfVExTX0VSUk9SX1BPTElDWV9GQUlMKTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBl
d2tfc3NsX2JhZF9jZXJ0X3BhZ2VfbG9hZF90ZXN0X3BvbGljeV9pZ25vcmUpCit7CisgICAgZmlu
aXNoVGVzdCA9IGZhbHNlOworCisgICAgRXdrX0NvbnRleHQqIGNvbnRleHQgPSBld2tfdmlld19j
b250ZXh0X2dldCh3ZWJWaWV3KCkpOworICAgIGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lf
c2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSk7CisKKyAgICBHVGxzQ2Vy
dGlmaWNhdGUqIFRMU0NlcnRpZmljYXRlID0gZ2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICgh
VExTQ2VydGlmaWNhdGUpCisgICAgICAgIEZBSUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxF
V0syVW5pdFRlc3RTZXJ2ZXI+IGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5p
dFRlc3RTZXJ2ZXI+KFRMU0NlcnRpZmljYXRlKTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZl
ckNhbGxiYWNrQmFkQ2VydFBhZ2VMb2FkVGVzdCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0g
bnVsbHB0cjsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAi
bG9hZCxwcm92aXNpb25hbCxmYWlsZWQiLCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZElnbm9yZSwg
JmVycm9yKTsKKworICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZhbHNlOworICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3KCksICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmlu
aXNoZWRJZ25vcmUsICZpc0ZpbmlzaGVkKTsKKworICAgIGV3a192aWV3X3VybF9zZXQod2ViVmll
dygpLCBodHRwc1NlcnZlci0+Z2V0VVJMRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOwor
CisgICAgd2FpdFVudGlsVHJ1ZShmaW5pc2hUZXN0LCB0ZXN0VGltZW91dFNlY29uZHMpOworfQor
CitURVNUX0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rlc3RfcG9s
aWN5X2ZhaWwpCit7CisgICAgZmluaXNoVGVzdCA9IGZhbHNlOworCisgICAgRXdrX0NvbnRleHQq
IGNvbnRleHQgPSBld2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworICAgIGV3a19jb250
ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZB
SUwpOworCisgICAgR1Rsc0NlcnRpZmljYXRlKiBUTFNDZXJ0aWZpY2F0ZSA9IGdldENlcnRpZmlj
YXRlKCk7CisKKyAgICBpZiAoIVRMU0NlcnRpZmljYXRlKQorICAgICAgICBGQUlMKCk7CisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RVdLMlVuaXRUZXN0U2VydmVyPiBodHRwc1NlcnZlciA9IHN0ZDo6
bWFrZV91bmlxdWU8RVdLMlVuaXRUZXN0U2VydmVyPihUTFNDZXJ0aWZpY2F0ZSk7CisgICAgaHR0
cHNTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRlc3QpOworCisgICAg
RXdrX0Vycm9yKiBlcnJvciA9IG51bGxwdHI7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfYWRkKHdlYlZpZXcoKSwgImxvYWQscHJvdmlzaW9uYWwsZmFpbGVkIiwgb25Mb2FkUHJvdmlz
aW9uYWxGYWlsZWRGYWlsLCAmZXJyb3IpOworCisgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7
CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQsZmlu
aXNoZWQiLCBvbkxvYWRGaW5pc2hlZEZhaWwsICZpc0ZpbmlzaGVkKTsKKworICAgIGV3a192aWV3
X3VybF9zZXQod2ViVmlldygpLCBodHRwc1NlcnZlci0+Z2V0VVJMRm9yUGF0aCgiL2luZGV4Lmh0
bWwiKS5kYXRhKCkpOworCisgICAgd2FpdFVudGlsVHJ1ZShmaW5pc2hUZXN0LCB0ZXN0VGltZW91
dFNlY29uZHMpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228170</attachid>
            <date>2014-03-31 03:55:09 -0700</date>
            <delta_ts>2014-03-31 06:01:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wk2-api-tls-v12.patch</filename>
            <type>text/plain</type>
            <size>16253</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkODVjZTUyLi4zZThkNzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTQtMDMtMzEgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5z
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBld2sgQVBJcyB0byBjb250cm9s
IFRMUyBlcnJvciBwb2xpY3kgb24gV2ViQ29udGV4dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgIEFk
ZGVkIHRoZSBuZXcgU1NMIHRlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjppZ25vcmVUTFNFcnJvcnMpOgorICAg
ICAgICAoRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKGV3a19jb250
ZXh0X2lnbm9yZV90bHNfZXJyb3JzX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9pZ25vcmVf
dGxzX2Vycm9yc19zZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgor
ICAgICAgICBBZGRlZCB0aGUgQVBJIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcDoKKyAgICAg
ICAgKEVXSzJVbml0VGVzdFNlcnZlcjo6RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
OgorICAgICAgICBFeHRlbmRlZCB0aGUgdW5pdCB0ZXN0IHNlcnZlciB0byBoYW5kbGUgVExTLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NzbC5jcHA6Cisg
ICAgICAgIEFkZGVkIHRlc3RzIHRvIGNoZWNrIHRoZSBUTFMgcG9saWN5IEFQSS4KKwogMjAxNC0w
My0yNyAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
UyBXZWJLaXQyXSBUd2VhayBjYWNoZSBzaXplcyBmb3IgaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNt
YWtlCmluZGV4IDVmY2QyNmYuLjEyNTI3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBA
IC00OTIsNiArNDkyLDcgQEAgc2V0KEVXSzJVbml0VGVzdHNfQklOQVJJRVMKICAgICB0ZXN0X2V3
azJfcG9wdXBfbWVudQogICAgIHRlc3RfZXdrMl9yZWZwdHJfZXZhc19vYmplY3QKICAgICB0ZXN0
X2V3azJfc2V0dGluZ3MKKyAgICB0ZXN0X2V3azJfc3NsCiAgICAgdGVzdF9ld2syX3N0b3JhZ2Vf
bWFuYWdlcgogICAgIHRlc3RfZXdrMl90ZXh0X2NoZWNrZXIKICAgICB0ZXN0X2V3azJfdmlldwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCmlu
ZGV4IGIzNmRhYjEuLjY3MTU3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTQxMyw2ICs0MTMsMjAgQEAgdm9pZCBFd2tDb250
ZXh0Ojpwcm9jZXNzUmVjZWl2ZWRNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVm
IG1lc3NhZ2VOYW0KICAgICAgICAgbV9jYWxsYmFja0Zvck1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUuY2FsbGJhY2sobmFtZS5kYXRhKCksIGJvZHkuZGF0YSgpLCBudWxscHRyLCBtX2NhbGxiYWNr
Rm9yTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZS51c2VyRGF0YSk7CiB9CiAKK0V3a19UTFNfRXJy
b3JfUG9saWN5IEV3a0NvbnRleHQ6Omlnbm9yZVRMU0Vycm9ycygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRvSW1wbChtX2NvbnRleHQuZ2V0KCkpLT5pZ25vcmVUTFNFcnJvcnMoKSA/IEVXS19UTFNf
RVJST1JfUE9MSUNZX0lHTk9SRSA6IEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUw7Cit9CisKK3Zv
aWQgRXdrQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKEV3a19UTFNfRXJyb3JfUG9saWN5IFRM
U0Vycm9yUG9saWN5KSBjb25zdAoreworICAgIGJvb2wgaXNOZXdQb2xpY3kgPSBUTFNFcnJvclBv
bGljeSA9PSBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkU7CisgICAgaWYgKHRvSW1wbChtX2Nv
bnRleHQuZ2V0KCkpLT5pZ25vcmVUTFNFcnJvcnMoKSA9PSBpc05ld1BvbGljeSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgdG9JbXBsKG1fY29udGV4dC5nZXQoKSktPnNldElnbm9yZVRMU0Vycm9y
cyhpc05ld1BvbGljeSk7Cit9CisKIEV3a19Db250ZXh0KiBld2tfY29udGV4dF9kZWZhdWx0X2dl
dCgpCiB7CiAgICAgcmV0dXJuIEV3a0NvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7CkBAIC01Mzgs
MyArNTUyLDE2IEBAIEV3a19Qcm9jZXNzX01vZGVsIGV3a19jb250ZXh0X3Byb2Nlc3NfbW9kZWxf
Z2V0KGNvbnN0IEV3a19Db250ZXh0KiBld2tDb250ZXh0KQogICAgIHJldHVybiBFV0tfUFJPQ0VT
U19NT0RFTF9TSEFSRURfU0VDT05EQVJZOwogI2VuZGlmCiB9CisKK0V3a19UTFNfRXJyb3JfUG9s
aWN5IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0KGNvbnN0IEV3a19Db250ZXh0KiBj
b250ZXh0KQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a0NvbnRl
eHQsIGNvbnRleHQsIGltcGwsIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOworCisgICAgcmV0
dXJuIGltcGwtPmlnbm9yZVRMU0Vycm9ycygpOworfQorCit2b2lkIGV3a19jb250ZXh0X3Rsc19l
cnJvcl9wb2xpY3lfc2V0KEV3a19Db250ZXh0KiBjb250ZXh0LCBFd2tfVExTX0Vycm9yX1BvbGlj
eSB0bHNfZXJyb3JfcG9saWN5KQoreworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNv
bnN0IEV3a0NvbnRleHQsIGNvbnRleHQsIGltcGwpOworICAgIGltcGwtPnNldElnbm9yZVRMU0Vy
cm9ycyh0bHNfZXJyb3JfcG9saWN5KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dC5oCmluZGV4IGE2MDNiMTUuLmMzMzcxNTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaApAQCAtODgsNiArODgs
MTkgQEAgZW51bSBFd2tfUHJvY2Vzc19Nb2RlbCB7CiB0eXBlZGVmIGVudW0gRXdrX1Byb2Nlc3Nf
TW9kZWwgRXdrX1Byb2Nlc3NfTW9kZWw7CiAKIC8qKgorICogXGVudW0gICAgRXdrX1RMU19FcnJv
cl9Qb2xpY3kKKyAqCisgKiBAYnJpZWYgICBDb250YWlucyBvcHRpb24gZm9yIFRMUyBlcnJvciBw
b2xpY3kKKyAqLworZW51bSBFd2tfVExTX0Vycm9yX1BvbGljeSB7CisgICAgRVdLX1RMU19FUlJP
Ul9QT0xJQ1lfRkFJTCwgLy8gRmFpbCBvbiBUTFMgZXJyb3JzLgorICAgIEVXS19UTFNfRVJST1Jf
UE9MSUNZX0lHTk9SRSAvLyBJZ25vcmUgVExTIGVycm9ycy4KK307CisKKy8vIENyZWF0ZXMgYSB0
eXBlIG5hbWUgZm9yIHRoZSBFd2tfVExTX0Vycm9yX1BvbGljeS4KK3R5cGVkZWYgZW51bSBFd2tf
VExTX0Vycm9yX1BvbGljeSBFd2tfVExTX0Vycm9yX1BvbGljeTsKKworLyoqCiAgKiBAdHlwZWRl
ZiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IKICAq
IEBicmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBld2tfY29udGV4dF91cmxfc2NoZW1l
X3JlZ2lzdGVyKCkuCiAgKi8KQEAgLTM5OSw2ICs0MTIsMjUgQEAgRUFQSSBFaW5hX0Jvb2wgZXdr
X2NvbnRleHRfcHJvY2Vzc19tb2RlbF9zZXQoRXdrX0NvbnRleHQgKmNvbnRleHQsIEV3a19Qcm9j
ZXNzX00KICAqLwogRUFQSSBFd2tfUHJvY2Vzc19Nb2RlbCBld2tfY29udGV4dF9wcm9jZXNzX21v
ZGVsX2dldChjb25zdCBFd2tfQ29udGV4dCAqY29udGV4dCk7CiAKKy8qKgorICogR2V0cyBUTFMg
ZXJyb3IgcG9saWN5IGZvciBAYSBjb250ZXh0LgorICoKKyAqIEBwYXJhbSBjb250ZXh0IGNvbnRl
eHQgb2JqZWN0IHRvIGdldCBUTFMgZXJyb3IgcG9saWN5CisgKgorICogQHJldHVybiBUaGUgVExT
IGVycm9ycyBwb2xpY3kgZm9yIHRoZSBjb250ZXh0CisgKi8KK0V3a19UTFNfRXJyb3JfUG9saWN5
IGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfZ2V0KGNvbnN0IEV3a19Db250ZXh0ICpjb250
ZXh0KTsKKworLyoqCisgKiBTZXRzIFRMUyBlcnJvciBwb2xpY3kgZm9yIEBhIGNvbnRleHQuCisg
KgorICogU2V0cyBob3cgVExTIGNlcnRpZmljYXRlIGVycm9ycyBzaG91bGQgYmUgaGFuZGxlZC4g
VGhlIGF2YWlsYWJsZSBwb2xpY2llcyBhcmUgbGlzdGVkIGluICNFd2tfVExTX0Vycm9yX1BvbGlj
eSBlbnVtZXJhdGlvbi4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBz
ZXQgVExTIGVycm9yIHBvbGljeQorICogQHBhcmFtIHRsc19lcnJvcl9wb2xpY3kgYSAjRXdrX1RM
U19FcnJvcl9Qb2xpY3kKKyAqLworRUFQSSB2b2lkIGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xp
Y3lfc2V0KEV3a19Db250ZXh0ICpjb250ZXh0LCBFd2tfVExTX0Vycm9yX1BvbGljeSB0bHNfZXJy
b3JfcG9saWN5KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaApp
bmRleCBiZGUwNzY1Li5kMDdmNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCkBAIC04NSw2ICs4NSwxMCBAQCBw
dWJsaWM6CiAKICAgICBXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKiBoaXN0b3J5Q2xp
ZW50KCk7CiAKKyAgICBFd2tfVExTX0Vycm9yX1BvbGljeSBpZ25vcmVUTFNFcnJvcnMoKSBjb25z
dDsKKworICAgIHZvaWQgc2V0SWdub3JlVExTRXJyb3JzKEV3a19UTFNfRXJyb3JfUG9saWN5IFRM
U0Vycm9yUG9saWN5KSBjb25zdDsKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
ICAgIHZvaWQgc2V0QWRkaXRpb25hbFBsdWdpblBhdGgoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRU
ZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNwcAppbmRl
eCBiZDhjNjkzLi40NTg5OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0sy
VW5pdFRlc3RTZXJ2ZXIuY3BwCkBAIC0yMSwxMyArMjEsMjIgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJFV0syVW5pdFRlc3RTZXJ2ZXIuaCIKIAotRVdLMlVuaXRUZXN0U2VydmVy
OjpFV0syVW5pdFRlc3RTZXJ2ZXIoKQorRVdLMlVuaXRUZXN0U2VydmVyOjpFV0syVW5pdFRlc3RT
ZXJ2ZXIoR1Rsc0NlcnRpZmljYXRlKiB0bHNDZXJ0KQogewogICAgIFNvdXBBZGRyZXNzKiBhZGRy
ZXNzID0gc291cF9hZGRyZXNzX25ldygiMTI3LjAuMC4xIiwgU09VUF9BRERSRVNTX0FOWV9QT1JU
KTsKICAgICBzb3VwX2FkZHJlc3NfcmVzb2x2ZV9zeW5jKGFkZHJlc3MsIDApOwogCi0gICAgbV9z
b3VwU2VydmVyID0gc291cF9zZXJ2ZXJfbmV3KFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRkcmVz
cywgc3RhdGljX2Nhc3Q8Y2hhcio+KDApKTsKLSAgICBtX2Jhc2VVUkwgPSBzb3VwX3VyaV9uZXco
Imh0dHA6Ly8xMjcuMC4wLjEvIik7CisgICAgaWYgKHRsc0NlcnQpIHsKKyAgICAgICAgbV9zb3Vw
U2VydmVyID0gc291cF9zZXJ2ZXJfbmV3KAorICAgICAgICAgICAgU09VUF9TRVJWRVJfVExTX0NF
UlRJRklDQVRFLCB0bHNDZXJ0LAorICAgICAgICAgICAgU09VUF9TRVJWRVJfSU5URVJGQUNFLCBh
ZGRyZXNzLCBzdGF0aWNfY2FzdDxjaGFyKj4oMCkpOworCisgICAgICAgIG1fYmFzZVVSTCA9IHNv
dXBfdXJpX25ldygiaHR0cHM6Ly8xMjcuMC4wLjEvIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
bV9zb3VwU2VydmVyID0gc291cF9zZXJ2ZXJfbmV3KFNPVVBfU0VSVkVSX0lOVEVSRkFDRSwgYWRk
cmVzcywgc3RhdGljX2Nhc3Q8Y2hhcio+KDApKTsKKyAgICAgICAgbV9iYXNlVVJMID0gc291cF91
cmlfbmV3KCJodHRwOi8vMTI3LjAuMC4xLyIpOworICAgIH0KKwogICAgIHNvdXBfdXJpX3NldF9w
b3J0KG1fYmFzZVVSTCwgc291cF9zZXJ2ZXJfZ2V0X3BvcnQobV9zb3VwU2VydmVyKSk7CiAgICAg
Z19vYmplY3RfdW5yZWYoYWRkcmVzcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9F
V0syVW5pdFRlc3RTZXJ2ZXIuaAppbmRleCA4MWQyNDhjLi4yYjgxOWQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJV
bml0VGVzdFNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgKQEAgLTI2LDcgKzI2LDcgQEAK
IAogY2xhc3MgRVdLMlVuaXRUZXN0U2VydmVyIHsKIHB1YmxpYzoKLSAgICBFV0syVW5pdFRlc3RT
ZXJ2ZXIoKTsKKyAgICBleHBsaWNpdCBFV0syVW5pdFRlc3RTZXJ2ZXIoR1Rsc0NlcnRpZmljYXRl
KiB0bHNDZXJ0ID0gbnVsbHB0cik7CiAgICAgdmlydHVhbCB+RVdLMlVuaXRUZXN0U2VydmVyKCk7
CiAKICAgICBDU3RyaW5nIGdldFVSTEZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3
azJfc3NsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3Rf
ZXdrMl9zc2wuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3YWUwN2QK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0
cy90ZXN0X2V3azJfc3NsLmNwcApAQCAtMCwwICsxLDIwOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJVbml0VGVzdFV0
aWxzL0VXSzJVbml0VGVzdEJhc2UuaCIKKyNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VXSzJVbml0
VGVzdFNlcnZlci5oIgorCit1c2luZyBuYW1lc3BhY2UgRVdLMlVuaXRUZXN0OworCitleHRlcm4g
RVdLMlVuaXRUZXN0RW52aXJvbm1lbnQqIGVudmlyb25tZW50OworCitzdGF0aWMgY29uc3QgY2hh
ciBpbmRleEhUTUxTdHJpbmdbXSA9CisgICAgIjxodG1sPiIKKyAgICAiPGhlYWQ+PHRpdGxlPkVG
TFdlYktpdDIgU1NMIHRlc3Q8L3RpdGxlPjwvaGVhZD4iCisgICAgIjxib2R5PjwvYm9keT48L2h0
bWw+IjsKKworc3RhdGljIGJvb2wgZmluaXNoVGVzdCA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhw
ciBkb3VibGUgdGVzdFRpbWVvdXRTZWNvbmRzID0gMi4wOworCisjZGVmaW5lIFNUUklOR0lGWTIo
eCkgI3gKKyNkZWZpbmUgU1RSSU5HSUZZKHgpIFNUUklOR0lGWTIoeCkKKworc3RhdGljIGNvbnN0
IGdjaGFyIGNlcnRpZmljYXRlX2RhdGFbXSA9IFNUUklOR0lGWSgtLS0tLUJFR0lOIFJTQSBQUklW
QVRFIEtFWS0tLS0tCitNSUlDWFFJQkFBS0JnUUNtY1hidXNycjh6UXI4c25JYjBPVlFpYlZmZ3Y3
elBqaC81eGRjcktPZWpKenAzZXBBCitBRjRUSVRlRlI5dnpXSXdrbWtjUm9ZK0liUU5oaDdrZWZH
VVlENDdidlZhbUpNdHE1Y0dZVnMwSG5nVCtLVE1hCitOR0gvRzQ0S2tGSU9hei9iNWQvSk5LT05y
bHF3eHFYUyttNklZNGwvRTFGZjI1WmpORDVUYUV2STF3SURBUUFCCitBb0dCQUljRHY0QTloNlVP
QnYyWkd5c3BOdnN2MmVyU2JsR09oWEpyV080YU5OZW1KSnNwSXA0c0xpUENiREUzCithMXBvMTdY
UldCa2JQejFoZ0w2YXhEWFFub2VvKytlYmZydlJTZWQrRnlzNCs2U3Z1U3JQT3Y2UG1XVEJUL1dh
CitHcE8rdHY0OEpVTnhDL0R5OFJPaXhCWE9WaXVJQkVGcTNOZlZINEhVMytSRzIwTmhBa0VBMUwz
UkFoZGZQa0xJCis4Mmx1U09ZRTNFcTQ0bElDYi95WmkrSkVpaHdTZVpUSktkWkh3WUQ4S1ZDak90
akdyT215RXl2VGhyY0lBQ1F6CitKTEVyZVZoMzN3SkJBTWhKbTlwekpKTmtJeUJnaVhBNjZGQXdi
aGREelNUUHgwT0Jqb1ZXb2o2dTdqekd2SUZUCitDbjFhaVRCWXp6c2lNQ2FDeCtXM2U2cEsvRGN2
SFN3S3Jna0NRSFpNY3h3Qm1TSExDMmxubUQ4TFFXcXFWbkxyCitmWlYrVm5mVnc1MDFEUVQwdW9Q
OE52eWdXQmcxVWY5WUtlcGZMWG5CcGlkRVFqdXA1Wktpdm5VRXYrc0NRQThOCis2VmNNSEkydmt5
eFYxVDdJVHJub1NmNFpySXU5eWw1Nm1IblJQelN5OVZsQUh0OGhuTUk3VWVCK2JHVW5kck1PCitW
WFFnekh6S1VoYmJ4YmVQdmZFQ1FRRFR0a091aEp5S0RmSEN4TERjd05waStUNk9XVEVmQ3cvY3E5
WldEYkE3Cit5Q1g4MXBReGZaa2ZNSVMxWUZJT0dIb3ZLMHJNTVRyYUNlK2lETll0VnovTAorLS0t
LS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQor
TUlJQjl6Q0NBV0FDQ1FEaldXVGVDNkJRdlRBTkJna3Foa2lHOXcwQkFRUUZBREJBTVFzd0NRWURW
UVFHRXdKQgorVlRFVE1CRUdBMVVFQ0JNS1UyOXRaUzFUZEdGMFpURWNNQm9HQTFVRUNoTVRWMlZp
UzJsMElFeGhlVzkxZENCVQorWlhOMGN6QWVGdzB3TnpBM01UTXhNalV4TXpKYUZ3MDNNVEExTVRN
d05qSXpNVFphTUVBeEN6QUpCZ05WQkFZVAorQWtGVk1STXdFUVlEVlFRSUV3cFRiMjFsTFZOMFlY
UmxNUnd3R2dZRFZRUUtFeE5YWldKTGFYUWdUR0Y1YjNWMAorSUZSbGMzUnpNSUdmTUEwR0NTcUdT
SWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUUNtY1hidXNycjh6UXI4c25JYgorME9WUWliVmZndjd6
UGpoLzV4ZGNyS09lakp6cDNlcEFBRjRUSVRlRlI5dnpXSXdrbWtjUm9ZK0liUU5oaDdrZQorZkdV
WUQ0N2J2VmFtSk10cTVjR1lWczBIbmdUK0tUTWFOR0gvRzQ0S2tGSU9hei9iNWQvSk5LT05ybHF3
eHFYUworK202SVk0bC9FMUZmMjVaak5ENVRhRXZJMXdJREFRQUJNQTBHQ1NxR1NJYjNEUUVCQkFV
QUE0R0JBQWZiVWJnRAorMDFPOERvWkEwMmMxTVVNYk1IUlBTYi9xZG9rMnB5V29DUGEvQlNhT0lh
TlBlUGM4YXVQUmJyUzJYc1ZXU01mdAorQ1RYaVhtcksyWHgxK2ZKdVpMQXAwQ1VuZzREZTRjREg1
YzhudmxvY1ltWG8rMXg1M1M5RGZEMEtQcnlqQlJJNworOUxuSnEyeXNIQVVhd2lxRlhsd0JhZzZt
WGF3RDhZanpjWWF0CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tKTsKKworY2xhc3MgRVdLMlNT
TFRlc3QgOiBwdWJsaWMgRVdLMlVuaXRUZXN0QmFzZSB7CitwdWJsaWM6CisKKyAgICBzdGF0aWMg
dm9pZCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZEZhaWwodm9pZCogdXNlckRhdGEsIEV2YXNfT2Jq
ZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQorICAgIHsKKyAgICAgICAgZmluaXNoVGVzdCA9IHRydWU7
CisgICAgICAgIC8vIFRoZSB0ZXN0IHBhc3NlcyBpZiBhbiBTU0wgZXJyb3Igb2NjdXJzLgorICAg
ICAgICBBU1NFUlRfVFJVRShld2tfZXJyb3JfY29kZV9nZXQoc3RhdGljX2Nhc3Q8RXdrX0Vycm9y
Kj4oZXZlbnRJbmZvKSkgPT0gU09VUF9TVEFUVVNfU1NMX0ZBSUxFRCk7CisgICAgfQorCisgICAg
c3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWRGYWlsKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVj
dCosIHZvaWQqKQorICAgIHsKKyAgICAgICAgYm9vbCogaXNGaW5pc2hlZCA9IHN0YXRpY19jYXN0
PGJvb2wqPih1c2VyRGF0YSk7CisgICAgICAgIGlmIChpc0ZpbmlzaGVkKSB7CisgICAgICAgICAg
ICBmaW5pc2hUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIC8vIFRoZSB0ZXN0IGZhaWxzIGlmIHRo
ZSBwYWdlIGlzIGxvYWRlZC4KKyAgICAgICAgICAgIEZBSUwoKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIHN0YXRpYyB2b2lkIG9uTG9hZFByb3Zpc2lvbmFsRmFpbGVkSWdub3JlKHZvaWQqIHVz
ZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKKyAgICB7CisgICAgICAgIGZp
bmlzaFRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZXdrX2Vycm9yX2NvZGVfZ2V0KHN0YXRpY19j
YXN0PEV3a19FcnJvcio+KGV2ZW50SW5mbykpID09IFNPVVBfU1RBVFVTX1NTTF9GQUlMRUQpCisg
ICAgICAgICAgICAvLyBUaGUgdGVzdCBmYWlscyBpZiBhbiBTU0wgZXJyb3Igb2NjdXJzLgorICAg
ICAgICAgICAgRkFJTCgpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uTG9hZEZpbmlzaGVk
SWdub3JlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqKQorICAgIHsKKyAgICAg
ICAgYm9vbCogaXNGaW5pc2hlZCA9IHN0YXRpY19jYXN0PGJvb2wqPih1c2VyRGF0YSk7CisgICAg
ICAgIGZpbmlzaFRlc3QgPSB0cnVlOworICAgICAgICAvLyBUaGUgdGVzdCBwYXNzZXMgaWYgdGhl
IHBhZ2UgaXMgbG9hZGVkLgorICAgICAgICBBU1NFUlRfVFJVRShpc0ZpbmlzaGVkKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRlc3QoU291
cFNlcnZlciosIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRoLCBHSGFzaFRh
YmxlKiwgU291cENsaWVudENvbnRleHQqLCB2b2lkKikKKyAgICB7CisgICAgICAgIGlmIChtZXNz
YWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CisgICAgICAgICAgICBzb3VwX21lc3Nh
Z2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1RfSU1QTEVNRU5URUQpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFzdHJjbXAocGF0aCwg
Ii9pbmRleC5odG1sIikpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1l
c3NhZ2UsIFNPVVBfU1RBVFVTX09LKTsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2Fw
cGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9DT1BZLCBpbmRleEhUTUxT
dHJpbmcsIHN0cmxlbihpbmRleEhUTUxTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1RfRk9V
TkQpOworCisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2UtPnJlc3Bv
bnNlX2JvZHkpOworICAgIH0KK307CisKK3N0YXRpYyBHVGxzQ2VydGlmaWNhdGUqIGdldENlcnRp
ZmljYXRlKCkKK3sKKyAgICBHRXJyb3IqKiBnZXJyb3I7CisgICAgR1Rsc0NlcnRpZmljYXRlKiBj
ZXJ0aWZpY2F0ZSA9IGdfdGxzX2NlcnRpZmljYXRlX25ld19mcm9tX3BlbSgKKyAgICAgICAgY2Vy
dGlmaWNhdGVfZGF0YSwgc2l6ZW9mKGNlcnRpZmljYXRlX2RhdGEpLCBnZXJyb3IpOworCisgICAg
aWYgKCFjZXJ0aWZpY2F0ZSkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gY3Jl
YXRlIGNlcnRpZmljYXRlIGZyb20gUEVNXG4iKTsKKworICAgIHJldHVybiBjZXJ0aWZpY2F0ZTsK
K30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3NsX3NldF90bHNfZXJyb3JfcG9saWN5X2ln
bm9yZSkKK3sKKyAgICBFd2tfQ29udGV4dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0
KHdlYlZpZXcoKSk7CisKKyAgICBld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X3NldChjb250
ZXh0LCBFV0tfVExTX0VSUk9SX1BPTElDWV9JR05PUkUpOworCisgICAgQVNTRVJUX1RSVUUoZXdr
X2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9nZXQoY29udGV4dCkgPT0gRVdLX1RMU19FUlJPUl9Q
T0xJQ1lfSUdOT1JFKTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3NsX3NldF90bHNf
ZXJyb3JfcG9saWN5X2ZhaWwpCit7CisgICAgRXdrX0NvbnRleHQqIGNvbnRleHQgPSBld2tfdmll
d19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworCisgICAgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3Bv
bGljeV9zZXQoY29udGV4dCwgRVdLX1RMU19FUlJPUl9QT0xJQ1lfRkFJTCk7CisKKyAgICBBU1NF
UlRfVFJVRShld2tfY29udGV4dF90bHNfZXJyb3JfcG9saWN5X2dldChjb250ZXh0KSA9PSBFV0tf
VExTX0VSUk9SX1BPTElDWV9GQUlMKTsKK30KKworVEVTVF9GKEVXSzJTU0xUZXN0LCBld2tfc3Ns
X2JhZF9jZXJ0X3BhZ2VfbG9hZF90ZXN0X3BvbGljeV9pZ25vcmUpCit7CisgICAgZmluaXNoVGVz
dCA9IGZhbHNlOworCisgICAgRXdrX0NvbnRleHQqIGNvbnRleHQgPSBld2tfdmlld19jb250ZXh0
X2dldCh3ZWJWaWV3KCkpOworICAgIGV3a19jb250ZXh0X3Rsc19lcnJvcl9wb2xpY3lfc2V0KGNv
bnRleHQsIEVXS19UTFNfRVJST1JfUE9MSUNZX0lHTk9SRSk7CisKKyAgICBHVGxzQ2VydGlmaWNh
dGUqIFRMU0NlcnRpZmljYXRlID0gZ2V0Q2VydGlmaWNhdGUoKTsKKworICAgIGlmICghVExTQ2Vy
dGlmaWNhdGUpCisgICAgICAgIEZBSUwoKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFV0syVW5p
dFRlc3RTZXJ2ZXI+IGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxFV0syVW5pdFRlc3RT
ZXJ2ZXI+KFRMU0NlcnRpZmljYXRlKTsKKyAgICBodHRwc1NlcnZlci0+cnVuKHNlcnZlckNhbGxi
YWNrQmFkQ2VydFBhZ2VMb2FkVGVzdCk7CisKKyAgICBFd2tfRXJyb3IqIGVycm9yID0gbnVsbHB0
cjsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldygpLCAibG9hZCxw
cm92aXNpb25hbCxmYWlsZWQiLCBvbkxvYWRQcm92aXNpb25hbEZhaWxlZElnbm9yZSwgJmVycm9y
KTsKKworICAgIGJvb2wgaXNGaW5pc2hlZCA9IGZhbHNlOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2FkZCh3ZWJWaWV3KCksICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmluaXNoZWRJ
Z25vcmUsICZpc0ZpbmlzaGVkKTsKKworICAgIGV3a192aWV3X3VybF9zZXQod2ViVmlldygpLCBo
dHRwc1NlcnZlci0+Z2V0VVJMRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOworCisgICAg
d2FpdFVudGlsVHJ1ZShmaW5pc2hUZXN0LCB0ZXN0VGltZW91dFNlY29uZHMpOworfQorCitURVNU
X0YoRVdLMlNTTFRlc3QsIGV3a19zc2xfYmFkX2NlcnRfcGFnZV9sb2FkX3Rlc3RfcG9saWN5X2Zh
aWwpCit7CisgICAgZmluaXNoVGVzdCA9IGZhbHNlOworCisgICAgRXdrX0NvbnRleHQqIGNvbnRl
eHQgPSBld2tfdmlld19jb250ZXh0X2dldCh3ZWJWaWV3KCkpOworICAgIGV3a19jb250ZXh0X3Rs
c19lcnJvcl9wb2xpY3lfc2V0KGNvbnRleHQsIEVXS19UTFNfRVJST1JfUE9MSUNZX0ZBSUwpOwor
CisgICAgR1Rsc0NlcnRpZmljYXRlKiBUTFNDZXJ0aWZpY2F0ZSA9IGdldENlcnRpZmljYXRlKCk7
CisKKyAgICBpZiAoIVRMU0NlcnRpZmljYXRlKQorICAgICAgICBGQUlMKCk7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8RVdLMlVuaXRUZXN0U2VydmVyPiBodHRwc1NlcnZlciA9IHN0ZDo6bWFrZV91
bmlxdWU8RVdLMlVuaXRUZXN0U2VydmVyPihUTFNDZXJ0aWZpY2F0ZSk7CisgICAgaHR0cHNTZXJ2
ZXItPnJ1bihzZXJ2ZXJDYWxsYmFja0JhZENlcnRQYWdlTG9hZFRlc3QpOworCisgICAgRXdrX0Vy
cm9yKiBlcnJvciA9IG51bGxwdHI7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KHdlYlZpZXcoKSwgImxvYWQscHJvdmlzaW9uYWwsZmFpbGVkIiwgb25Mb2FkUHJvdmlzaW9uYWxG
YWlsZWRGYWlsLCAmZXJyb3IpOworCisgICAgYm9vbCBpc0ZpbmlzaGVkID0gZmFsc2U7CisgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQsZmluaXNoZWQi
LCBvbkxvYWRGaW5pc2hlZEZhaWwsICZpc0ZpbmlzaGVkKTsKKworICAgIGV3a192aWV3X3VybF9z
ZXQod2ViVmlldygpLCBodHRwc1NlcnZlci0+Z2V0VVJMRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5k
YXRhKCkpOworCisgICAgd2FpdFVudGlsVHJ1ZShmaW5pc2hUZXN0LCB0ZXN0VGltZW91dFNlY29u
ZHMpOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>