<?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>127104</bug_id>
          
          <creation_ts>2014-01-16 05:59:07 -0800</creation_ts>
          <short_desc>[SOUP] Remove soupURIToKURL</short_desc>
          <delta_ts>2014-01-29 01:22:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Soup</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>danw</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mpakulavelrutka</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>svillar</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968719</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-16 05:59:07 -0800</bug_when>
    <thetext>In favor of a URL constructor receiving a SoupURI. We can also add a method to URL to create a soupURI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968720</commentid>
    <comment_count>1</comment_count>
      <attachid>221371</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-16 06:06:42 -0800</bug_when>
    <thetext>Created attachment 221371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968734</commentid>
    <comment_count>2</comment_count>
      <attachid>221371</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-16 06:53:31 -0800</bug_when>
    <thetext>Comment on attachment 221371
Patch

Attachment 221371 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/6191449162907648</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968758</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-16 08:03:21 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 221371 [details])
&gt; Attachment 221371 [details] did not pass efl-wk2-ews (efl-wk2):
&gt; Output: http://webkit-queues.appspot.com/results/6191449162907648

Last 500 characters of output:
ir/__/__/DerivedSources/WebCore/JSSVGAnimatedEnumeration.cpp.o
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See &lt;file:///usr/share/doc/gcc-4.7/README.Bugs&gt; for instructions.
make[2]: *** [Source/WebCore/CMakeFiles/WebCore.dir/__/__/DerivedSources/WebCore/JSDOMWindow.cpp.o] Error 4
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Source/WebCore/CMakeFiles/WebCore.dir/all] Error 2
make: *** [all] Error 2

That doesn&apos;t seem to be my fault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969026</commentid>
    <comment_count>4</comment_count>
      <attachid>221371</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-16 20:40:43 -0800</bug_when>
    <thetext>Comment on attachment 221371
Patch

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

&gt; Source/WebCore/platform/URL.h:169
&gt; +    SoupURI* createSoupURI() const;

Why can&apos;t you make createSoupURI() return a GOwnPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969060</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-16 23:10:13 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 221371 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221371&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/URL.h:169
&gt; &gt; +    SoupURI* createSoupURI() const;
&gt; 
&gt; Why can&apos;t you make createSoupURI() return a GOwnPtr?

Because our GOwnPtr is non copyable. We don&apos;t have PassGOwnPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969104</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-17 04:07:39 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 221371 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221371&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/URL.h:169
&gt; &gt; &gt; +    SoupURI* createSoupURI() const;
&gt; &gt; 
&gt; &gt; Why can&apos;t you make createSoupURI() return a GOwnPtr?
&gt; 
&gt; Because our GOwnPtr is non copyable. We don&apos;t have PassGOwnPtr.

See https://bugs.webkit.org/show_bug.cgi?id=127170</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971218</commentid>
    <comment_count>7</comment_count>
      <attachid>221996</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 10:21:33 -0800</bug_when>
    <thetext>Created attachment 221996
New patch

Rebased and changed to return GUniquePtr when a new allocated SoupURI is returned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972187</commentid>
    <comment_count>8</comment_count>
      <attachid>222271</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-26 06:38:22 -0800</bug_when>
    <thetext>Created attachment 222271
Try to fix EFL build

Not sure I did it right, I haven&apos;t found the way yo add include paths only for the webcore test, so I&apos;ve added to the global includes (which seems to mix includes from webcore, JavaScriptCore, WebKit2, etc.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972188</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-26 06:39:33 -0800</bug_when>
    <thetext>Attachment 222271 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/CMakeLists.txt:18:  Alphabetical sorting problem. &quot;JavaScriptCore&quot; should be before &quot;WTF&quot;.  [list/order] [5]
Total errors found: 1 in 14 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>972190</commentid>
    <comment_count>10</comment_count>
      <attachid>222272</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-26 07:29:18 -0800</bug_when>
    <thetext>Created attachment 222272
Try to fix EFL build

This time it was WTR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972191</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-26 07:30:51 -0800</bug_when>
    <thetext>Attachment 222272 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/CMakeLists.txt:18:  Alphabetical sorting problem. &quot;JavaScriptCore&quot; should be before &quot;WTF&quot;.  [list/order] [5]
Total errors found: 1 in 15 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>972452</commentid>
    <comment_count>12</comment_count>
      <attachid>222272</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-01-27 10:21:31 -0800</bug_when>
    <thetext>Comment on attachment 222272
Try to fix EFL build

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

&gt; Source/WebCore/platform/URL.h:168
&gt; +    URL(SoupURI*);

Perhaps this should be marked &quot;explicit.&quot;

&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:129
&gt; +GUniquePtr&lt;SoupURI&gt; ResourceRequest::createSoupURI() const
&gt;  {
&gt; -    // WebKit does not support fragment identifiers in data URLs, but soup does.
&gt; -    // Before passing the URL to soup, we should make sure to urlencode any &apos;#&apos;
&gt; -    // characters, so that soup does not interpret them as fragment identifiers.
&gt; -    // See http://wkbug.com/68089
&gt; -    if (m_url.protocolIsData()) {
&gt; -        String urlString = m_url.string();
&gt; -        urlString.replace(&quot;#&quot;, &quot;%23&quot;);
&gt; -        return soup_uri_new(urlString.utf8().data());
&gt; -    }
&gt; -
&gt;      URL url = m_url;
&gt;      url.removeFragmentIdentifier();
&gt; -    SoupURI* uri = soup_uri_new(url.string().utf8().data());
&gt; -
&gt; -    // Versions of libsoup prior to 2.42 have a soup_uri_new that will convert empty passwords that are not
&gt; -    // prefixed by a colon into null. Some parts of soup like the SoupAuthenticationManager will only be active
&gt; -    // when both the username and password are non-null. When we have credentials, empty usernames and passwords
&gt; -    // should be empty strings instead of null.
&gt; -    if (!url.user().isEmpty() || !url.pass().isEmpty()) {
&gt; -        soup_uri_set_user(uri, url.user().utf8().data());
&gt; -        soup_uri_set_password(uri, url.pass().utf8().data());
&gt; -    }
&gt; -    return uri;
&gt; +    return url.createSoupURI();
&gt;  }

Can we just get rid of this entirely in favor of url().createSoupURI()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972456</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-27 10:28:13 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 222272 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=222272&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/URL.h:168
&gt; &gt; +    URL(SoupURI*);
&gt; 
&gt; Perhaps this should be marked &quot;explicit.&quot;

I thought about it, but other platform constructor don&apos;t do that so I followed it :-P

&gt; &gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:129
&gt; &gt; +GUniquePtr&lt;SoupURI&gt; ResourceRequest::createSoupURI() const
&gt; &gt;  {
&gt; &gt; -    // WebKit does not support fragment identifiers in data URLs, but soup does.
&gt; &gt; -    // Before passing the URL to soup, we should make sure to urlencode any &apos;#&apos;
&gt; &gt; -    // characters, so that soup does not interpret them as fragment identifiers.
&gt; &gt; -    // See http://wkbug.com/68089
&gt; &gt; -    if (m_url.protocolIsData()) {
&gt; &gt; -        String urlString = m_url.string();
&gt; &gt; -        urlString.replace(&quot;#&quot;, &quot;%23&quot;);
&gt; &gt; -        return soup_uri_new(urlString.utf8().data());
&gt; &gt; -    }
&gt; &gt; -
&gt; &gt;      URL url = m_url;
&gt; &gt;      url.removeFragmentIdentifier();
&gt; &gt; -    SoupURI* uri = soup_uri_new(url.string().utf8().data());
&gt; &gt; -
&gt; &gt; -    // Versions of libsoup prior to 2.42 have a soup_uri_new that will convert empty passwords that are not
&gt; &gt; -    // prefixed by a colon into null. Some parts of soup like the SoupAuthenticationManager will only be active
&gt; &gt; -    // when both the username and password are non-null. When we have credentials, empty usernames and passwords
&gt; &gt; -    // should be empty strings instead of null.
&gt; &gt; -    if (!url.user().isEmpty() || !url.pass().isEmpty()) {
&gt; &gt; -        soup_uri_set_user(uri, url.user().utf8().data());
&gt; &gt; -        soup_uri_set_password(uri, url.pass().utf8().data());
&gt; &gt; -    }
&gt; &gt; -    return uri;
&gt; &gt; +    return url.createSoupURI();
&gt; &gt;  }
&gt; 
&gt; Can we just get rid of this entirely in favor of url().createSoupURI()?

I left this just because of the url.removeFragmentIdentifier(); I assumed that&apos;s desired only in the cases where this method is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972460</commentid>
    <comment_count>14</comment_count>
      <attachid>222272</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-01-27 10:42:29 -0800</bug_when>
    <thetext>Comment on attachment 222272
Try to fix EFL build

Okay. That all sounds reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972833</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-28 01:04:15 -0800</bug_when>
    <thetext>Committed r162922: &lt;http://trac.webkit.org/changeset/162922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972971</commentid>
    <comment_count>16</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2014-01-28 09:43:27 -0800</bug_when>
    <thetext>It seems that r162922 broke 9 tests in EFL: 
fast/css/import-style-update.html fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html fast/events/attribute-listener-cloned-from-frameless-doc-context.html fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html fast/events/attribute-listener-extracted-from-frameless-doc-context.html fast/html/link-rel-stylesheet.html fast/loader/data-url-encoding-html.html fast/loader/data-url-encoding-svg.html fast/spatial-navigation/snav-iframe-nested.html

According to flakiness dashboard there are failures also in GTK i.e. http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fcss%2Fimport-style-update.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973313</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-28 23:43:30 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; It seems that r162922 broke 9 tests in EFL: 
&gt; fast/css/import-style-update.html fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html fast/events/attribute-listener-cloned-from-frameless-doc-context.html fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html fast/events/attribute-listener-extracted-from-frameless-doc-context.html fast/html/link-rel-stylesheet.html fast/loader/data-url-encoding-html.html fast/loader/data-url-encoding-svg.html fast/spatial-navigation/snav-iframe-nested.html
&gt; 
&gt; According to flakiness dashboard there are failures also in GTK i.e. http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fcss%2Fimport-style-update.html

Ok, I&apos;m looking at it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973322</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-29 01:22:50 -0800</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=127836</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221371</attachid>
            <date>2014-01-16 06:06:42 -0800</date>
            <delta_ts>2014-01-23 10:21:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-url-soup-uri.diff</filename>
            <type>text/plain</type>
            <size>21582</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YTFjZTcwLi5hZDc5NTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUg
QEAKKzIwMTQtMDEtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTT1VQXSBSZW1vdmUgc291cFVSSVRvS1VSTAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gZmF2b3Igb2YgYSBVUkwgY29uc3Ry
dWN0b3IgcmVjZWl2aW5nIGEgU291cFVSSS4gQWxzbyBhZGQgYQorICAgICAgICBtZXRob2QgdG8g
VVJMIHRvIGNyZWF0ZSBhIHNvdXBVUkkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OiBSZW1vdmUgU291cFVSSVV0aWxzIGFuZCBhZGQgVVJMU291cC4KKyAgICAgICAgKiBQbGF0Zm9y
bUVmbC5jbWFrZTogRGl0dG8uCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL1VSTC5oOiBBZGQgVVJMIGNvbnN0cnVjdG9yIHJlY2VpdmluZyBh
IFNvdXBVUkkgYW5kCisgICAgICAgIGNyZWF0ZVNvdXBVUkkoKSB0byBjcmVhdGUgYSBuZXcgc291
cFVSSSBmb3IgdGhlIFVSTC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2ll
SmFyU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTSk6IFVzZSBV
Ukw6OmNyZWF0ZVNvdXBVUkkoKS4KKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9u
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpnZXRSYXdDb29raWVzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpkZWxldGVDb29raWUpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRv
UmVkaXJlY3QpOiBVc2UgdGhlIG5ldyBVUkwgY29uc3RydWN0b3IgaW5zdGVhZCBvZgorICAgICAg
ICBzb3VwVVJJVG9LVVJMLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU291cFJlcXVlc3RBbmRN
ZXNzYWdlRm9ySGFuZGxlKTogVXNlIFVSTDo6Y3JlYXRlU291cFVSSSgpLgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaDogUmVuYW1lIHNvdXBVUkkgYXMK
KyAgICAgICAgY3JlYXRlU291cFVSSSB0byBtYWtlIGl0IGNsZWFyIHRoYXQgdGhlIG1ldGhvZCBy
ZXR1cm5zIGEgbmV3bHkKKyAgICAgICAgY3JlYXRlZCBTb3VwVVJJLgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2VNZW1iZXJzKTogVXNlIFVSTDo6
Y3JlYXRlU291cFVSSSgpLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRh
dGVTb3VwTWVzc2FnZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UpOiBVc2UgdGhlIG5ldyBVUkwKKyAgICAgICAgY29uc3Ry
dWN0b3IgaW5zdGVhZCBvZiBzb3VwVVJJVG9LVVJMLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0OjpjcmVhdGVTb3VwVVJJKTogVXNlIFVSTDo6Y3JlYXRlU291cFVSSSgpLgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2Up
OiBVc2UgdGhlIG5ldworICAgICAgICBVUkwgY29uc3RydWN0b3IgaW5zdGVhZCBvZiBzb3VwVVJJ
VG9LVVJMLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlVSTDo6VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6Y3Jl
YXRlU291cFVSSSk6CisKIDIwMTQtMDEtMTYgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIEZpeCBidWlsZCBpc3N1ZXMgd2l0aCBleHBvcnRlZCBoZWFkZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA2YTgyYmQwLi42N2NiOTFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU5MzgsOCArNTkzOCw2IEBAIHBsYXRmb3Jt
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2Nr
ZXRTdHJlYW1FcnJvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
U29ja2V0U3RyZWFtSGFuZGxlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Tb2NrZXRTdHJlYW1IYW5kbGVTb3VwLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGlscy5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50LmggXApA
QCAtNTk3OCw2ICs1OTc2LDcgQEAgcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291cC5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9lbmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXIuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1FZmwuY21ha2UKaW5kZXggNzEwNWVjNC4uYzY1NDI5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTE2NywxMyArMTY3LDEzIEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5jcHAKICAgICBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAotICAgIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50U291cC5jcHAKIAogICAgIHBsYXRmb3JtL3Bvc2l4L0Zp
bGVTeXN0ZW1QT1NJWC5jcHAKICAgICBwbGF0Zm9ybS9wb3NpeC9TaGFyZWRCdWZmZXJQT1NJWC5j
cHAKIAogICAgIHBsYXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9y
bS9zb3VwL1VSTFNvdXAuY3BwCiAKICAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAwMTQ4YjM2Li42YzJmMTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTI1LDEwICsxMjUsMTAgQEAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3Vw
LmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVTb3VwLmNw
cAogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCi0gICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGlscy5jcHAKICAgICBwbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvU3luY2hyb25vdXNMb2FkZXJDbGllbnRTb3VwLmNwcAogCiAgICAgcGxhdGZvcm0v
c291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAorICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAK
IAogICAgIHBsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXIuY3BwCiAgICAgcGxhdGZvcm0v
dGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGluMS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKaW5kZXgg
NzEzYmRjZS4uMzA1MjZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJM
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKQEAgLTM1LDYgKzM1LDEwIEBA
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGVVJMKiBDRlVSTFJlZjsKICNlbmRpZgogCisjaWYg
VVNFKFNPVVApCit0eXBlZGVmIHN0cnVjdCBfU291cFVSSSBTb3VwVVJJOworI2VuZGlmCisKICNp
ZiBQTEFURk9STShNQUMpCiBPQkpDX0NMQVNTIE5TVVJMOwogI2VuZGlmCkBAIC0xNjAsNiArMTY0
LDExIEBAIHB1YmxpYzoKICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGNyZWF0ZUNGVVJMKCkgY29u
c3Q7CiAjZW5kaWYKIAorI2lmIFVTRShTT1VQKQorICAgIFVSTChTb3VwVVJJKik7CisgICAgU291
cFVSSSogY3JlYXRlU291cFVSSSgpIGNvbnN0OworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMp
CiAgICAgVVJMKE5TVVJMKik7CiAgICAgb3BlcmF0b3IgTlNVUkwqKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5j
cHAKaW5kZXggMTVmZDdjNS4uN2E5MzBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtODgsOCArODgsOCBA
QCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcgogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBHT3duUHRyPFNvdXBVUkk+IG9yaWdpbihzb3VwX3VyaV9uZXcodXJsLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpKTsKLSAgICBHT3duUHRyPFNvdXBVUkk+IGZpcnN0UGFydHlVUkkoc291
cF91cmlfbmV3KGZpcnN0UGFydHkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEdPd25Q
dHI8U291cFVSST4gb3JpZ2luKHVybC5jcmVhdGVTb3VwVVJJKCkpOworICAgIEdPd25QdHI8U291
cFVSST4gZmlyc3RQYXJ0eVVSSShmaXJzdFBhcnR5LmNyZWF0ZVNvdXBVUkkoKSk7CiAKICAgICAv
LyBHZXQgZXhpc3RpbmcgY29va2llcyBmb3IgdGhpcyBvcmlnaW4uCiAgICAgR1NMaXN0KiBleGlz
dGluZ0Nvb2tpZXMgPSBzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZV9saXN0KGphciwgb3JpZ2lu
LmdldCgpLCBUUlVFKTsKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgU3RyaW5nIGNvb2tpZXNG
b3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJM
JgogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBHT3duUHRy
PFNvdXBVUkk+IHVyaShzb3VwX3VyaV9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsK
KyAgICBHT3duUHRyPFNvdXBVUkk+IHVyaSh1cmwuY3JlYXRlU291cFVSSSgpKTsKICAgICBHT3du
UHRyPGNoYXI+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVzKGphciwgdXJpLmdl
dCgpLCBmb3JIVFRQSGVhZGVyKSk7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoY29va2ll
cy5nZXQoKSk7CiB9CkBAIC0xNDksNyArMTQ5LDcgQEAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiAvKmZpcnN0UGFydHkK
ICAgICBpZiAoIWphcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgR093blB0cjxTb3Vw
VVJJPiB1cmkoc291cF91cmlfbmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
R093blB0cjxTb3VwVVJJPiB1cmkodXJsLmNyZWF0ZVNvdXBVUkkoKSk7CiAgICAgR093blB0cjxH
U0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdChqYXIsIHVyaS5n
ZXQoKSwgVFJVRSkpOwogICAgIGlmICghY29va2llcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMTcxLDcgKzE3MSw3IEBAIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0CiAgICAgaWYgKCFqYXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEdPd25QdHI8U291cFVSST4gdXJpKHNvdXBfdXJpX25l
dyh1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEdPd25QdHI8U291cFVSST4gdXJp
KHVybC5jcmVhdGVTb3VwVVJJKCkpOwogICAgIEdPd25QdHI8R1NMaXN0PiBjb29raWVzKHNvdXBf
Y29va2llX2phcl9nZXRfY29va2llX2xpc3QoamFyLCB1cmkuZ2V0KCksIFRSVUUpKTsKICAgICBp
ZiAoIWNvb2tpZXMpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXgg
NGM3MDc0OS4uNDliODE5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC00NCw3ICs0NCw2
IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lvbi5oIgotI2luY2x1ZGUgIlNvdXBVUklV
dGlscy5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgPGVycm5vLmg+CiAj
aW5jbHVkZSA8ZmNudGwuaD4KQEAgLTQ1Miw3ICs0NTEsNyBAQCBzdGF0aWMgdm9pZCBkb1JlZGly
ZWN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVl
c3QgPSBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpOwogICAgIFNvdXBNZXNzYWdlKiBtZXNzYWdlID0g
ZC0+bV9zb3VwTWVzc2FnZS5nZXQoKTsKICAgICBjb25zdCBjaGFyKiBsb2NhdGlvbiA9IHNvdXBf
bWVzc2FnZV9oZWFkZXJzX2dldF9vbmUobWVzc2FnZS0+cmVzcG9uc2VfaGVhZGVycywgIkxvY2F0
aW9uIik7Ci0gICAgVVJMIG5ld1VSTCA9IFVSTChzb3VwVVJJVG9LVVJMKHNvdXBfbWVzc2FnZV9n
ZXRfdXJpKG1lc3NhZ2UpKSwgbG9jYXRpb24pOworICAgIFVSTCBuZXdVUkwgPSBVUkwoVVJMKHNv
dXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpKSwgbG9jYXRpb24pOwogICAgIGJvb2wgY3Jvc3NP
cmlnaW4gPSAhcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0
KCkudXJsKCksIG5ld1VSTCk7CiAgICAgbmV3UmVxdWVzdC5zZXRVUkwobmV3VVJMKTsKICAgICBu
ZXdSZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKG5ld1VSTCk7CkBAIC05OTIsNyArOTkx
LDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cFJlcXVlc3RBbmRNZXNzYWdlRm9ySGFuZGxlKFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFIKIAogICAgIEdPd25QdHI8R0Vycm9yPiBlcnJv
cjsKIAotICAgIEdPd25QdHI8U291cFVSST4gc291cFVSSShyZXF1ZXN0LnNvdXBVUkkoKSk7Cisg
ICAgR093blB0cjxTb3VwVVJJPiBzb3VwVVJJKHJlcXVlc3QuY3JlYXRlU291cFVSSSgpKTsKICAg
ICBpZiAoIXNvdXBVUkkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCmluZGV4
IGNmMjI2YzEuLjI0M2JlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTg1LDcgKzg1LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBTb3VwTWVzc2FnZUZsYWdzIHNvdXBNZXNzYWdlRmxhZ3Mo
KSBjb25zdCB7IHJldHVybiBtX3NvdXBGbGFnczsgfQogICAgICAgICB2b2lkIHNldFNvdXBNZXNz
YWdlRmxhZ3MoU291cE1lc3NhZ2VGbGFncyBzb3VwRmxhZ3MpIHsgbV9zb3VwRmxhZ3MgPSBzb3Vw
RmxhZ3M7IH0KIAotICAgICAgICBTb3VwVVJJKiBzb3VwVVJJKCkgY29uc3Q7CisgICAgICAgIFNv
dXBVUkkqIGNyZWF0ZVNvdXBVUkkoKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZy
aWVuZCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmlu
ZGV4IDQzMDcxNWMuLjZiNzk1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTIzLDcg
KzIzLDYgQEAKICNpbmNsdWRlICJHT3duUHRyU291cC5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJz
LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNvdXBVUklVdGls
cy5oIgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNiwxMSAr
MzUsOSBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2VNZW1iZXJzKFNv
dXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKIHsKICAgICB1cGRhdGVTb3VwTWVzc2FnZUhl
YWRlcnMoc291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycyk7CiAKLSAgICBTdHJpbmcgZmlyc3RQ
YXJ0eVN0cmluZyA9IGZpcnN0UGFydHlGb3JDb29raWVzKCkuc3RyaW5nKCk7Ci0gICAgaWYgKCFm
aXJzdFBhcnR5U3RyaW5nLmlzRW1wdHkoKSkgewotICAgICAgICBHT3duUHRyPFNvdXBVUkk+IGZp
cnN0UGFydHkoc291cF91cmlfbmV3KGZpcnN0UGFydHlTdHJpbmcudXRmOCgpLmRhdGEoKSkpOwor
ICAgIEdPd25QdHI8U291cFVSST4gZmlyc3RQYXJ0eShmaXJzdFBhcnR5Rm9yQ29va2llcygpLmNy
ZWF0ZVNvdXBVUkkoKSk7CisgICAgaWYgKGZpcnN0UGFydHkpCiAgICAgICAgIHNvdXBfbWVzc2Fn
ZV9zZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UsIGZpcnN0UGFydHkuZ2V0KCkpOwotICAgIH0K
IAogICAgIHNvdXBfbWVzc2FnZV9zZXRfZmxhZ3Moc291cE1lc3NhZ2UsIG1fc291cEZsYWdzKTsK
IApAQCAtNzMsNyArNzAsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3Nh
Z2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKSBjb25zdAogewogICAgIGdfb2JqZWN0X3NldChz
b3VwTWVzc2FnZSwgU09VUF9NRVNTQUdFX01FVEhPRCwgaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRh
KCksIE5VTEwpOwogCi0gICAgR093blB0cjxTb3VwVVJJPiB1cmkoc291cFVSSSgpKTsKKyAgICBH
T3duUHRyPFNvdXBVUkk+IHVyaShjcmVhdGVTb3VwVVJJKCkpOwogICAgIHNvdXBfbWVzc2FnZV9z
ZXRfdXJpKHNvdXBNZXNzYWdlLCB1cmkuZ2V0KCkpOwogCiAgICAgdXBkYXRlU291cE1lc3NhZ2VN
ZW1iZXJzKHNvdXBNZXNzYWdlKTsKQEAgLTk2LDcgKzkzLDcgQEAgU291cE1lc3NhZ2UqIFJlc291
cmNlUmVxdWVzdDo6dG9Tb3VwTWVzc2FnZSgpIGNvbnN0CiB2b2lkIFJlc291cmNlUmVxdWVzdDo6
dXBkYXRlRnJvbVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKIHsKICAgICBi
b29sIHNob3VsZFBvcnRCZVJlc2V0VG9aZXJvID0gbV91cmwuaGFzUG9ydCgpICYmICFtX3VybC5w
b3J0KCk7Ci0gICAgbV91cmwgPSBzb3VwVVJJVG9LVVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNv
dXBNZXNzYWdlKSk7CisgICAgbV91cmwgPSBVUkwoc291cF9tZXNzYWdlX2dldF91cmkoc291cE1l
c3NhZ2UpKTsKIAogICAgIC8vIFNvdXBVUkkgY2Fubm90IGRpZmZlcmVuaWF0ZSBiZXR3ZWVuIGFu
IGV4cGxpY2l0bHkgc3BlY2lmaWVkIHBvcnQgMCBhbmQKICAgICAvLyBubyBwb3J0IHNwZWNpZmll
ZC4KQEAgLTExMCw5ICsxMDcsOCBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNv
dXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKICAgICBpZiAoc291cE1lc3NhZ2Ut
PnJlcXVlc3RfYm9keS0+ZGF0YSkKICAgICAgICAgbV9odHRwQm9keSA9IEZvcm1EYXRhOjpjcmVh
dGUoc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keS0+ZGF0YSwgc291cE1lc3NhZ2UtPnJlcXVlc3Rf
Ym9keS0+bGVuZ3RoKTsKIAotICAgIFNvdXBVUkkqIGZpcnN0UGFydHkgPSBzb3VwX21lc3NhZ2Vf
Z2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlKTsKLSAgICBpZiAoZmlyc3RQYXJ0eSkKLSAgICAg
ICAgbV9maXJzdFBhcnR5Rm9yQ29va2llcyA9IHNvdXBVUklUb0tVUkwoZmlyc3RQYXJ0eSk7Cisg
ICAgaWYgKFNvdXBVUkkqIGZpcnN0UGFydHkgPSBzb3VwX21lc3NhZ2VfZ2V0X2ZpcnN0X3BhcnR5
KHNvdXBNZXNzYWdlKSkKKyAgICAgICAgbV9maXJzdFBhcnR5Rm9yQ29va2llcyA9IFVSTChmaXJz
dFBhcnR5KTsKIAogICAgIG1fc291cEZsYWdzID0gc291cF9tZXNzYWdlX2dldF9mbGFncyhzb3Vw
TWVzc2FnZSk7CiAKQEAgLTEyOCwzMSArMTI0LDExIEBAIHVuc2lnbmVkIGluaXRpYWxpemVNYXhp
bXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQogICAgIHJldHVybiAxMDAwMDsKIH0KIAot
U291cFVSSSogUmVzb3VyY2VSZXF1ZXN0Ojpzb3VwVVJJKCkgY29uc3QKK1NvdXBVUkkqIFJlc291
cmNlUmVxdWVzdDo6Y3JlYXRlU291cFVSSSgpIGNvbnN0CiB7Ci0gICAgLy8gV2ViS2l0IGRvZXMg
bm90IHN1cHBvcnQgZnJhZ21lbnQgaWRlbnRpZmllcnMgaW4gZGF0YSBVUkxzLCBidXQgc291cCBk
b2VzLgotICAgIC8vIEJlZm9yZSBwYXNzaW5nIHRoZSBVUkwgdG8gc291cCwgd2Ugc2hvdWxkIG1h
a2Ugc3VyZSB0byB1cmxlbmNvZGUgYW55ICcjJwotICAgIC8vIGNoYXJhY3RlcnMsIHNvIHRoYXQg
c291cCBkb2VzIG5vdCBpbnRlcnByZXQgdGhlbSBhcyBmcmFnbWVudCBpZGVudGlmaWVycy4KLSAg
ICAvLyBTZWUgaHR0cDovL3drYnVnLmNvbS82ODA4OQotICAgIGlmIChtX3VybC5wcm90b2NvbElz
RGF0YSgpKSB7Ci0gICAgICAgIFN0cmluZyB1cmxTdHJpbmcgPSBtX3VybC5zdHJpbmcoKTsKLSAg
ICAgICAgdXJsU3RyaW5nLnJlcGxhY2UoIiMiLCAiJTIzIik7Ci0gICAgICAgIHJldHVybiBzb3Vw
X3VyaV9uZXcodXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLQogICAgIFVSTCB1cmwg
PSBtX3VybDsKICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7Ci0gICAgU291cFVS
SSogdXJpID0gc291cF91cmlfbmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLQotICAg
IC8vIFZlcnNpb25zIG9mIGxpYnNvdXAgcHJpb3IgdG8gMi40MiBoYXZlIGEgc291cF91cmlfbmV3
IHRoYXQgd2lsbCBjb252ZXJ0IGVtcHR5IHBhc3N3b3JkcyB0aGF0IGFyZSBub3QKLSAgICAvLyBw
cmVmaXhlZCBieSBhIGNvbG9uIGludG8gbnVsbC4gU29tZSBwYXJ0cyBvZiBzb3VwIGxpa2UgdGhl
IFNvdXBBdXRoZW50aWNhdGlvbk1hbmFnZXIgd2lsbCBvbmx5IGJlIGFjdGl2ZQotICAgIC8vIHdo
ZW4gYm90aCB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSBub24tbnVsbC4gV2hlbiB3ZSBo
YXZlIGNyZWRlbnRpYWxzLCBlbXB0eSB1c2VybmFtZXMgYW5kIHBhc3N3b3JkcwotICAgIC8vIHNo
b3VsZCBiZSBlbXB0eSBzdHJpbmdzIGluc3RlYWQgb2YgbnVsbC4KLSAgICBpZiAoIXVybC51c2Vy
KCkuaXNFbXB0eSgpIHx8ICF1cmwucGFzcygpLmlzRW1wdHkoKSkgewotICAgICAgICBzb3VwX3Vy
aV9zZXRfdXNlcih1cmksIHVybC51c2VyKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHNvdXBf
dXJpX3NldF9wYXNzd29yZCh1cmksIHVybC5wYXNzKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQot
ICAgIHJldHVybiB1cmk7CisgICAgcmV0dXJuIHVybC5jcmVhdGVTb3VwVVJJKCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCmluZGV4IDljM2IwZWQuLmU2NjA0NDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNl
U291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dPd25QdHIuaD4KICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVU
eXBlUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJTb3VwVVJJVXRpbHMuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNjAsNyArNTksNyBAQCBTb3VwTWVzc2Fn
ZSogUmVzb3VyY2VSZXNwb25zZTo6dG9Tb3VwTWVzc2FnZSgpIGNvbnN0CiAKIHZvaWQgUmVzb3Vy
Y2VSZXNwb25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2Fn
ZSkKIHsKLSAgICBtX3VybCA9IHNvdXBVUklUb0tVUkwoc291cF9tZXNzYWdlX2dldF91cmkoc291
cE1lc3NhZ2UpKTsKKyAgICBtX3VybCA9IFVSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShzb3VwTWVz
c2FnZSkpOwogCiAgICAgbV9odHRwU3RhdHVzQ29kZSA9IHNvdXBNZXNzYWdlLT5zdGF0dXNfY29k
ZTsKICAgICBzZXRIVFRQU3RhdHVzVGV4dChzb3VwTWVzc2FnZS0+cmVhc29uX3BocmFzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0
aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRp
bHMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTNiYWQ5Li4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIw
MDEwIElnYWxpYSBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwot
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU291cFVSSVV0aWxzLmgiCi0KLSNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HT3duUHRyLmg+Ci0jaW5jbHVkZSA8bGlic291cC9zb3VwLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotLy8gTW90aXZhdGVkIGJ5IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODk1Ni4gbGlic291cAotLy8gZG9lcyBub3QgYWRkIHRoZSBwYXNzd29y
ZCB0byB0aGUgVVJMIHdoZW4gY2FsbGluZwotLy8gc291cF91cmlfdG9fc3RyaW5nLCBhbmQgdGh1
cyB0aGUgcmVxdWVzdHMgYXJlIG5vdCBwcm9wZXJseQotLy8gYnVpbHQuIEZpeGluZyBzb3VwX3Vy
aV90b19zdHJpbmcgaXMgYSBuby1ubyBhcyB0aGUgbWFpbnRhaW5lciBkb2VzCi0vLyBub3Qgd2Fu
dCB0byBicmVhayBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgaW1wbGVtZW50YXRpb25zCi1V
Ukwgc291cFVSSVRvS1VSTChTb3VwVVJJKiBzb3VwVVJJKQotewotICAgIEdPd25QdHI8Z2NoYXI+
IHVybFN0cmluZyhzb3VwX3VyaV90b19zdHJpbmcoc291cFVSSSwgRkFMU0UpKTsKLSAgICBVUkwg
dXJsKFVSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVybFN0cmluZy5nZXQoKSkpOwotCi0gICAgaWYg
KCFzb3VwVVJJLT5wYXNzd29yZCkKLSAgICAgICAgcmV0dXJuIHVybDsKLQotICAgIHVybC5zZXRQ
YXNzKFN0cmluZzo6ZnJvbVVURjgoc291cFVSSS0+cGFzc3dvcmQpKTsKLSAgICByZXR1cm4gdXJs
OwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvU291cFVSSVV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
U291cFVSSVV0aWxzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmNmU4ZDUuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklV
dGlscy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU291cFVSSVV0aWxzX2gKLSNkZWZp
bmUgU291cFVSSVV0aWxzX2gKLQotI2luY2x1ZGUgIlVSTC5oIgotCi10eXBlZGVmIHN0cnVjdCBf
U291cFVSSSBTb3VwVVJJOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1VUkwgc291cFVSSVRvS1VS
TChTb3VwVVJJKiBzb3VwVVJJKTsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c291cC9VUkxTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzQ2
Y2M5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291cC9VUkxT
b3VwLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVSTC5oIgorCisj
aW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitVUkw6OlVSTChTb3VwVVJJKiBzb3VwVVJJKQoreworICAgIGlmICghc291cFVSSSkgeworICAg
ICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBHT3duUHRy
PGdjaGFyPiB1cmxTdHJpbmcoc291cF91cmlfdG9fc3RyaW5nKHNvdXBVUkksIEZBTFNFKSk7Cisg
ICAgcGFyc2UoU3RyaW5nOjpmcm9tVVRGOCh1cmxTdHJpbmcuZ2V0KCkpKTsKKyAgICBpZiAoIWlz
VmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gTW90aXZhdGVkIGJ5IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODk1Ni4gbGlic291cAorICAgIC8vIGRv
ZXMgbm90IGFkZCB0aGUgcGFzc3dvcmQgdG8gdGhlIFVSTCB3aGVuIGNhbGxpbmcKKyAgICAvLyBz
b3VwX3VyaV90b19zdHJpbmcsIGFuZCB0aHVzIHRoZSByZXF1ZXN0cyBhcmUgbm90IHByb3Blcmx5
CisgICAgLy8gYnVpbHQuIEZpeGluZyBzb3VwX3VyaV90b19zdHJpbmcgaXMgYSBuby1ubyBhcyB0
aGUgbWFpbnRhaW5lciBkb2VzCisgICAgLy8gbm90IHdhbnQgdG8gYnJlYWsgY29tcGF0aWJpbGl0
eSB3aXRoIHByZXZpb3VzIGltcGxlbWVudGF0aW9ucworICAgIGlmIChzb3VwVVJJLT5wYXNzd29y
ZCkKKyAgICAgICAgc2V0UGFzcyhTdHJpbmc6OmZyb21VVEY4KHNvdXBVUkktPnBhc3N3b3JkKSk7
Cit9CisKK1NvdXBVUkkqIFVSTDo6Y3JlYXRlU291cFVSSSgpIGNvbnN0Cit7CisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgLy8gV2ViS2l0IGRvZXMg
bm90IHN1cHBvcnQgZnJhZ21lbnQgaWRlbnRpZmllcnMgaW4gZGF0YSBVUkxzLCBidXQgc291cCBk
b2VzLgorICAgIC8vIEJlZm9yZSBwYXNzaW5nIHRoZSBVUkwgdG8gc291cCwgd2Ugc2hvdWxkIG1h
a2Ugc3VyZSB0byB1cmxlbmNvZGUgYW55ICcjJworICAgIC8vIGNoYXJhY3RlcnMsIHNvIHRoYXQg
c291cCBkb2VzIG5vdCBpbnRlcnByZXQgdGhlbSBhcyBmcmFnbWVudCBpZGVudGlmaWVycy4KKyAg
ICAvLyBTZWUgaHR0cDovL3drYnVnLmNvbS82ODA4OQorICAgIGlmIChwcm90b2NvbElzRGF0YSgp
KSB7CisgICAgICAgIFN0cmluZyB1cmxTdHJpbmcgPSBzdHJpbmcoKTsKKyAgICAgICAgdXJsU3Ry
aW5nLnJlcGxhY2UoIiMiLCAiJTIzIik7CisgICAgICAgIHJldHVybiBzb3VwX3VyaV9uZXcodXJs
U3RyaW5nLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKworICAgIFNvdXBVUkkqIHNvdXBVUkkgPSBz
b3VwX3VyaV9uZXcoc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICAvLyBWZXJzaW9ucyBv
ZiBsaWJzb3VwIHByaW9yIHRvIDIuNDIgaGF2ZSBhIHNvdXBfdXJpX25ldyB0aGF0IHdpbGwgY29u
dmVydCBlbXB0eSBwYXNzd29yZHMgdGhhdCBhcmUgbm90CisgICAgLy8gcHJlZml4ZWQgYnkgYSBj
b2xvbiBpbnRvIG51bGwuIFNvbWUgcGFydHMgb2Ygc291cCBsaWtlIHRoZSBTb3VwQXV0aGVudGlj
YXRpb25NYW5hZ2VyIHdpbGwgb25seSBiZSBhY3RpdmUKKyAgICAvLyB3aGVuIGJvdGggdGhlIHVz
ZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgbm9uLW51bGwuIFdoZW4gd2UgaGF2ZSBjcmVkZW50aWFs
cywgZW1wdHkgdXNlcm5hbWVzIGFuZCBwYXNzd29yZHMKKyAgICAvLyBzaG91bGQgYmUgZW1wdHkg
c3RyaW5ncyBpbnN0ZWFkIG9mIG51bGwuCisgICAgU3RyaW5nIHVybFVzZXIgPSB1c2VyKCk7Cisg
ICAgU3RyaW5nIHVybFBhc3MgPSBwYXNzKCk7CisgICAgaWYgKCF1cmxVc2VyLmlzRW1wdHkoKSB8
fCAhdXJsUGFzcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgc291cF91cmlfc2V0X3VzZXIoc291cFVS
SSwgdXJsVXNlci51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgc291cF91cmlfc2V0X3Bhc3N3b3Jk
KHNvdXBVUkksIHVybFBhc3MudXRmOCgpLmRhdGEoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHNv
dXBVUkk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="commit-queue"
          id="245273"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221996</attachid>
            <date>2014-01-23 10:21:33 -0800</date>
            <delta_ts>2014-01-26 06:38:22 -0800</delta_ts>
            <desc>New patch</desc>
            <filename>wcore-soup-uri.diff</filename>
            <type>text/plain</type>
            <size>23070</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMmUzNjNlLi4yOGMwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDcg
QEAKIDIwMTQtMDEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtTT1VQXSBSZW1vdmUgc291cFVSSVRvS1VSTAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gZmF2b3Igb2YgYSBVUkwgY29uc3Ry
dWN0b3IgcmVjZWl2aW5nIGEgU291cFVSSS4gQWxzbyBhZGQgYQorICAgICAgICBtZXRob2QgdG8g
VVJMIHRvIGNyZWF0ZSBhIHNvdXBVUkkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OiBSZW1vdmUgU291cFVSSVV0aWxzIGFuZCBhZGQgVVJMU291cC4KKyAgICAgICAgKiBQbGF0Zm9y
bUVmbC5jbWFrZTogRGl0dG8uCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL1VSTC5oOiBBZGQgVVJMIGNvbnN0cnVjdG9yIHJlY2VpdmluZyBh
IFNvdXBVUkkgYW5kCisgICAgICAgIGNyZWF0ZVNvdXBVUkkoKSB0byBjcmVhdGUgYSBuZXcgc291
cFVSSSBmb3IgdGhlIFVSTC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2ll
SmFyU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTSk6IFVzZSBV
Ukw6OmNyZWF0ZVNvdXBVUkkoKS4KKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9u
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpnZXRSYXdDb29raWVzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpkZWxldGVDb29raWUpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRv
UmVkaXJlY3QpOiBVc2UgdGhlIG5ldyBVUkwgY29uc3RydWN0b3IgaW5zdGVhZCBvZgorICAgICAg
ICBzb3VwVVJJVG9LVVJMLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU291cFJlcXVlc3RBbmRN
ZXNzYWdlRm9ySGFuZGxlKTogVXNlIFVSTDo6Y3JlYXRlU291cFVSSSgpLgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaDogUmVuYW1lIHNvdXBVUkkgYXMK
KyAgICAgICAgY3JlYXRlU291cFVSSSB0byBtYWtlIGl0IGNsZWFyIHRoYXQgdGhlIG1ldGhvZCBy
ZXR1cm5zIGEgbmV3bHkKKyAgICAgICAgY3JlYXRlZCBTb3VwVVJJLgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2VNZW1iZXJzKTogVXNlIFVSTDo6
Y3JlYXRlU291cFVSSSgpLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRh
dGVTb3VwTWVzc2FnZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UpOiBVc2UgdGhlIG5ldyBVUkwKKyAgICAgICAgY29uc3Ry
dWN0b3IgaW5zdGVhZCBvZiBzb3VwVVJJVG9LVVJMLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0OjpjcmVhdGVTb3VwVVJJKTogVXNlIFVSTDo6Y3JlYXRlU291cFVSSSgpLgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2Up
OiBVc2UgdGhlIG5ldworICAgICAgICBVUkwgY29uc3RydWN0b3IgaW5zdGVhZCBvZiBzb3VwVVJJ
VG9LVVJMLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlVSTDo6VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6Y3Jl
YXRlU291cFVSSSk6CisKKzIwMTQtMDEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBhdXRvbWFrZSB3YXJuaW5n
LgogCiAgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogUmVtb3ZlIHRyYWlsaW5nIHdoaXRl
c3BhY2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWNlYmJjNi4uOTM5ZDYz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01OTM1LDggKzU5MzUsNiBAQCBw
bGF0Zm9ybV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvU29ja2V0U3RyZWFtRXJyb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5jcHAgXAotCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3BwIFwKLQlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNsaWVu
dC5oIFwKQEAgLTU5NzUsNiArNTk3Myw3IEBAIHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3VwL1NoYXJlZEJ1ZmZlclNvdXAuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQvVGV4dENoZWNrZXJFbmNoYW50LmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyLmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDcxMDVlYzQuLmM2NTQyOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtRWZsLmNtYWtlCkBAIC0xNjcsMTMgKzE2NywxMyBAQCBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAu
Y3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZVNvdXAuY3Bw
CiAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAKLSAgICBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmNwcAogICAgIHBsYXRmb3JtL25ldHdv
cmsvc291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVudFNvdXAuY3BwCiAKICAgICBwbGF0Zm9ybS9w
b3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCiAgICAgcGxhdGZvcm0vcG9zaXgvU2hhcmVkQnVmZmVy
UE9TSVguY3BwCiAKICAgICBwbGF0Zm9ybS9zb3VwL1NoYXJlZEJ1ZmZlclNvdXAuY3BwCisgICAg
cGxhdGZvcm0vc291cC9VUkxTb3VwLmNwcAogCiAgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1Uu
Y3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZGZlMzhjYy4uYmYyMjcyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEyNSwxMCArMTI1LDEwIEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3Bv
bnNlU291cC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxl
U291cC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNw
cAotICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3BwCiAgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50U291cC5jcHAKIAogICAgIHBs
YXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNv
dXAuY3BwCiAKICAgICBwbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyLmNwcAogICAgIHBs
YXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5o
CmluZGV4IDM0OTkzYTMuLjhhYjEzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1VSTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCkBAIC0zNSw2ICsz
NSwxMCBAQAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DRlVSTCogQ0ZVUkxSZWY7CiAjZW5kaWYK
IAorI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgIkdVbmlxdWVQdHJTb3VwLmgiCisjZW5kaWYKKwog
I2lmIFBMQVRGT1JNKE1BQykKIE9CSkNfQ0xBU1MgTlNVUkw7CiAjZW5kaWYKQEAgLTE2MCw2ICsx
NjQsMTEgQEAgcHVibGljOgogICAgIFJldGFpblB0cjxDRlVSTFJlZj4gY3JlYXRlQ0ZVUkwoKSBj
b25zdDsKICNlbmRpZgogCisjaWYgVVNFKFNPVVApCisgICAgVVJMKFNvdXBVUkkqKTsKKyAgICBH
VW5pcXVlUHRyPFNvdXBVUkk+IGNyZWF0ZVNvdXBVUkkoKSBjb25zdDsKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIFVSTChOU1VSTCopOwogICAgIG9wZXJhdG9yIE5TVVJMKigpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwCmluZGV4IDgxMDFlNTIuLmZlYzlkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKQEAg
LTg4LDggKzg4LDggQEAgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXIKICAgICBpZiAoIWphcikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBvcmlnaW4oc291cF91cmlf
bmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgR1VuaXF1ZVB0cjxTb3VwVVJJ
PiBmaXJzdFBhcnR5VVJJKHNvdXBfdXJpX25ldyhmaXJzdFBhcnR5LnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IG9yaWdpbiA9IHVybC5jcmVhdGVTb3Vw
VVJJKCk7CisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBmaXJzdFBhcnR5VVJJID0gZmlyc3RQYXJ0
eS5jcmVhdGVTb3VwVVJJKCk7CiAKICAgICAvLyBHZXQgZXhpc3RpbmcgY29va2llcyBmb3IgdGhp
cyBvcmlnaW4uCiAgICAgR1NMaXN0KiBleGlzdGluZ0Nvb2tpZXMgPSBzb3VwX2Nvb2tpZV9qYXJf
Z2V0X2Nvb2tpZV9saXN0KGphciwgb3JpZ2luLmdldCgpLCBUUlVFKTsKQEAgLTEyMiw3ICsxMjIs
NyBAQCBzdGF0aWMgU3RyaW5nIGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJgogICAgIGlmICghamFyKQogICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CiAKLSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHVyaShzb3VwX3VyaV9uZXco
dXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHVy
aSA9IHVybC5jcmVhdGVTb3VwVVJJKCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjb29raWVzKHNv
dXBfY29va2llX2phcl9nZXRfY29va2llcyhqYXIsIHVyaS5nZXQoKSwgZm9ySFRUUEhlYWRlcikp
OwogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGNvb2tpZXMuZ2V0KCkpOwogfQpAQCAtMTQ5
LDcgKzE0OSw3IEBAIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHNlc3Npb24sIGNvbnN0IFVSTCYgLypmaXJzdFBhcnR5CiAgICAgaWYgKCFqYXIpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIEdVbmlxdWVQdHI8U291cFVSST4gdXJpKHNvdXBfdXJp
X25ldyh1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEdVbmlxdWVQdHI8U291cFVS
ST4gdXJpID0gdXJsLmNyZWF0ZVNvdXBVUkkoKTsKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29v
a2llcyhzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZV9saXN0KGphciwgdXJpLmdldCgpLCBUUlVF
KSk7CiAgICAgaWYgKCFjb29raWVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzEsNyAr
MTcxLDcgQEAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3QKICAgICBpZiAoIWphcikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkoc291cF91cmlfbmV3KHVybC5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkgPSB1
cmwuY3JlYXRlU291cFVSSSgpOwogICAgIEdVbmlxdWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBf
Y29va2llX2phcl9nZXRfY29va2llX2xpc3QoamFyLCB1cmkuZ2V0KCksIFRSVUUpKTsKICAgICBp
ZiAoIWNvb2tpZXMpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXgg
N2E2Nzc2ZS4uNDQzMWVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQ0LDcgKzQ0LDYg
QEAKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAjaW5jbHVkZSAiU291cE5ldHdvcmtTZXNzaW9uLmgiCi0jaW5jbHVkZSAiU291cFVSSVV0
aWxzLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNp
bmNsdWRlIDxmY250bC5oPgpAQCAtNDUzLDcgKzQ1Miw3IEBAIHN0YXRpYyB2b2lkIGRvUmVkaXJl
Y3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVz
dCA9IGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCk7CiAgICAgU291cE1lc3NhZ2UqIG1lc3NhZ2UgPSBk
LT5tX3NvdXBNZXNzYWdlLmdldCgpOwogICAgIGNvbnN0IGNoYXIqIGxvY2F0aW9uID0gc291cF9t
ZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShtZXNzYWdlLT5yZXNwb25zZV9oZWFkZXJzLCAiTG9jYXRp
b24iKTsKLSAgICBVUkwgbmV3VVJMID0gVVJMKHNvdXBVUklUb0tVUkwoc291cF9tZXNzYWdlX2dl
dF91cmkobWVzc2FnZSkpLCBsb2NhdGlvbik7CisgICAgVVJMIG5ld1VSTCA9IFVSTChVUkwoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSkpLCBsb2NhdGlvbik7CiAgICAgYm9vbCBjcm9zc09y
aWdpbiA9ICFwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwoaGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS51cmwoKSwgbmV3VVJMKTsKICAgICBuZXdSZXF1ZXN0LnNldFVSTChuZXdVUkwpOwogICAgIG5l
d1JlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMobmV3VVJMKTsKQEAgLTk5Myw3ICs5OTIs
NyBAQCBzdGF0aWMgYm9vbCBjcmVhdGVTb3VwUmVxdWVzdEFuZE1lc3NhZ2VGb3JIYW5kbGUoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUgogCiAgICAgR093blB0cjxHRXJyb3I+IGVycm9y
OwogCi0gICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBzb3VwVVJJKHJlcXVlc3Quc291cFVSSSgpKTsK
KyAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNvdXBVUkkgPSByZXF1ZXN0LmNyZWF0ZVNvdXBVUkko
KTsKICAgICBpZiAoIXNvdXBVUkkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5o
CmluZGV4IGNmMjI2YzEuLjVkZWIwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpZm5kZWYgUmVzb3VyY2VSZXF1ZXN0X2gKICNkZWZpbmUgUmVzb3VyY2VSZXF1ZXN0X2gKIAor
I2luY2x1ZGUgIkdVbmlxdWVQdHJTb3VwLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0QmFz
ZS5oIgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogCkBAIC04NSw3ICs4Niw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgU291cE1lc3NhZ2VGbGFncyBzb3VwTWVzc2FnZUZsYWdz
KCkgY29uc3QgeyByZXR1cm4gbV9zb3VwRmxhZ3M7IH0KICAgICAgICAgdm9pZCBzZXRTb3VwTWVz
c2FnZUZsYWdzKFNvdXBNZXNzYWdlRmxhZ3Mgc291cEZsYWdzKSB7IG1fc291cEZsYWdzID0gc291
cEZsYWdzOyB9CiAKLSAgICAgICAgU291cFVSSSogc291cFVSSSgpIGNvbnN0OworICAgICAgICBH
VW5pcXVlUHRyPFNvdXBVUkk+IGNyZWF0ZVNvdXBVUkkoKSBjb25zdDsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVz
dFNvdXAuY3BwCmluZGV4IDIzNTlmZDYuLjE4OWY1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5j
cHAKQEAgLTIzLDcgKzIzLDYgQEAKICNpbmNsdWRlICJHVW5pcXVlUHRyU291cC5oIgogI2luY2x1
ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgotI2luY2x1
ZGUgIlNvdXBVUklVdGlscy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzMsMTEgKzMyLDkgQEAgdm9pZCBSZXNv
dXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyhTb3VwTWVzc2FnZSogc291cE1l
c3NhZ2UpIGNvbnN0CiB7CiAgICAgdXBkYXRlU291cE1lc3NhZ2VIZWFkZXJzKHNvdXBNZXNzYWdl
LT5yZXF1ZXN0X2hlYWRlcnMpOwogCi0gICAgU3RyaW5nIGZpcnN0UGFydHlTdHJpbmcgPSBmaXJz
dFBhcnR5Rm9yQ29va2llcygpLnN0cmluZygpOwotICAgIGlmICghZmlyc3RQYXJ0eVN0cmluZy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBmaXJzdFBhcnR5KHNvdXBf
dXJpX25ldyhmaXJzdFBhcnR5U3RyaW5nLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRy
PFNvdXBVUkk+IGZpcnN0UGFydHkgPSBmaXJzdFBhcnR5Rm9yQ29va2llcygpLmNyZWF0ZVNvdXBV
UkkoKTsKKyAgICBpZiAoZmlyc3RQYXJ0eSkKICAgICAgICAgc291cF9tZXNzYWdlX3NldF9maXJz
dF9wYXJ0eShzb3VwTWVzc2FnZSwgZmlyc3RQYXJ0eS5nZXQoKSk7Ci0gICAgfQogCiAgICAgc291
cF9tZXNzYWdlX3NldF9mbGFncyhzb3VwTWVzc2FnZSwgbV9zb3VwRmxhZ3MpOwogCkBAIC03MCw3
ICs2Nyw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2FnZShTb3VwTWVz
c2FnZSogc291cE1lc3NhZ2UpIGNvbnN0CiB7CiAgICAgZ19vYmplY3Rfc2V0KHNvdXBNZXNzYWdl
LCBTT1VQX01FU1NBR0VfTUVUSE9ELCBodHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSwgTlVMTCk7
CiAKLSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHVyaShzb3VwVVJJKCkpOworICAgIEdVbmlxdWVQ
dHI8U291cFVSST4gdXJpID0gY3JlYXRlU291cFVSSSgpOwogICAgIHNvdXBfbWVzc2FnZV9zZXRf
dXJpKHNvdXBNZXNzYWdlLCB1cmkuZ2V0KCkpOwogCiAgICAgdXBkYXRlU291cE1lc3NhZ2VNZW1i
ZXJzKHNvdXBNZXNzYWdlKTsKQEAgLTkzLDcgKzkwLDcgQEAgU291cE1lc3NhZ2UqIFJlc291cmNl
UmVxdWVzdDo6dG9Tb3VwTWVzc2FnZSgpIGNvbnN0CiB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBk
YXRlRnJvbVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKIHsKICAgICBib29s
IHNob3VsZFBvcnRCZVJlc2V0VG9aZXJvID0gbV91cmwuaGFzUG9ydCgpICYmICFtX3VybC5wb3J0
KCk7Ci0gICAgbV91cmwgPSBzb3VwVVJJVG9LVVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBN
ZXNzYWdlKSk7CisgICAgbV91cmwgPSBVUkwoc291cF9tZXNzYWdlX2dldF91cmkoc291cE1lc3Nh
Z2UpKTsKIAogICAgIC8vIFNvdXBVUkkgY2Fubm90IGRpZmZlcmVuaWF0ZSBiZXR3ZWVuIGFuIGV4
cGxpY2l0bHkgc3BlY2lmaWVkIHBvcnQgMCBhbmQKICAgICAvLyBubyBwb3J0IHNwZWNpZmllZC4K
QEAgLTEwNyw5ICsxMDQsOCBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJvbVNvdXBN
ZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKICAgICBpZiAoc291cE1lc3NhZ2UtPnJl
cXVlc3RfYm9keS0+ZGF0YSkKICAgICAgICAgbV9odHRwQm9keSA9IEZvcm1EYXRhOjpjcmVhdGUo
c291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keS0+ZGF0YSwgc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9k
eS0+bGVuZ3RoKTsKIAotICAgIFNvdXBVUkkqIGZpcnN0UGFydHkgPSBzb3VwX21lc3NhZ2VfZ2V0
X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlKTsKLSAgICBpZiAoZmlyc3RQYXJ0eSkKLSAgICAgICAg
bV9maXJzdFBhcnR5Rm9yQ29va2llcyA9IHNvdXBVUklUb0tVUkwoZmlyc3RQYXJ0eSk7CisgICAg
aWYgKFNvdXBVUkkqIGZpcnN0UGFydHkgPSBzb3VwX21lc3NhZ2VfZ2V0X2ZpcnN0X3BhcnR5KHNv
dXBNZXNzYWdlKSkKKyAgICAgICAgbV9maXJzdFBhcnR5Rm9yQ29va2llcyA9IFVSTChmaXJzdFBh
cnR5KTsKIAogICAgIG1fc291cEZsYWdzID0gc291cF9tZXNzYWdlX2dldF9mbGFncyhzb3VwTWVz
c2FnZSk7CiAKQEAgLTEyNSwzMSArMTIxLDExIEBAIHVuc2lnbmVkIGluaXRpYWxpemVNYXhpbXVt
SFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQogICAgIHJldHVybiAxMDAwMDsKIH0KIAotU291
cFVSSSogUmVzb3VyY2VSZXF1ZXN0Ojpzb3VwVVJJKCkgY29uc3QKK0dVbmlxdWVQdHI8U291cFVS
ST4gUmVzb3VyY2VSZXF1ZXN0OjpjcmVhdGVTb3VwVVJJKCkgY29uc3QKIHsKLSAgICAvLyBXZWJL
aXQgZG9lcyBub3Qgc3VwcG9ydCBmcmFnbWVudCBpZGVudGlmaWVycyBpbiBkYXRhIFVSTHMsIGJ1
dCBzb3VwIGRvZXMuCi0gICAgLy8gQmVmb3JlIHBhc3NpbmcgdGhlIFVSTCB0byBzb3VwLCB3ZSBz
aG91bGQgbWFrZSBzdXJlIHRvIHVybGVuY29kZSBhbnkgJyMnCi0gICAgLy8gY2hhcmFjdGVycywg
c28gdGhhdCBzb3VwIGRvZXMgbm90IGludGVycHJldCB0aGVtIGFzIGZyYWdtZW50IGlkZW50aWZp
ZXJzLgotICAgIC8vIFNlZSBodHRwOi8vd2tidWcuY29tLzY4MDg5Ci0gICAgaWYgKG1fdXJsLnBy
b3RvY29sSXNEYXRhKCkpIHsKLSAgICAgICAgU3RyaW5nIHVybFN0cmluZyA9IG1fdXJsLnN0cmlu
ZygpOwotICAgICAgICB1cmxTdHJpbmcucmVwbGFjZSgiIyIsICIlMjMiKTsKLSAgICAgICAgcmV0
dXJuIHNvdXBfdXJpX25ldyh1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotCiAgICAg
VVJMIHVybCA9IG1fdXJsOwogICAgIHVybC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKLSAg
ICBTb3VwVVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotCi0gICAgLy8gVmVyc2lvbnMgb2YgbGlic291cCBwcmlvciB0byAyLjQyIGhhdmUgYSBzb3Vw
X3VyaV9uZXcgdGhhdCB3aWxsIGNvbnZlcnQgZW1wdHkgcGFzc3dvcmRzIHRoYXQgYXJlIG5vdAot
ICAgIC8vIHByZWZpeGVkIGJ5IGEgY29sb24gaW50byBudWxsLiBTb21lIHBhcnRzIG9mIHNvdXAg
bGlrZSB0aGUgU291cEF1dGhlbnRpY2F0aW9uTWFuYWdlciB3aWxsIG9ubHkgYmUgYWN0aXZlCi0g
ICAgLy8gd2hlbiBib3RoIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIG5vbi1udWxsLiBX
aGVuIHdlIGhhdmUgY3JlZGVudGlhbHMsIGVtcHR5IHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzCi0g
ICAgLy8gc2hvdWxkIGJlIGVtcHR5IHN0cmluZ3MgaW5zdGVhZCBvZiBudWxsLgotICAgIGlmICgh
dXJsLnVzZXIoKS5pc0VtcHR5KCkgfHwgIXVybC5wYXNzKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IHNvdXBfdXJpX3NldF91c2VyKHVyaSwgdXJsLnVzZXIoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgc291cF91cmlfc2V0X3Bhc3N3b3JkKHVyaSwgdXJsLnBhc3MoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICB9Ci0gICAgcmV0dXJuIHVyaTsKKyAgICByZXR1cm4gdXJsLmNyZWF0ZVNvdXBVUkkoKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKaW5kZXggZTM2MmY3Yi4uYzg5MWMwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
UmVzcG9uc2VTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCkBAIC0yMyw3ICsyMyw2IEBACiAKICNpbmNsdWRl
ICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKLSNpbmNsdWRl
ICJTb3VwVVJJVXRpbHMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgpAQCAtNTcsNyArNTYsNyBAQCBTb3VwTWVzc2FnZSogUmVzb3VyY2VSZXNwb25zZTo6dG9T
b3VwTWVzc2FnZSgpIGNvbnN0CiAKIHZvaWQgUmVzb3VyY2VSZXNwb25zZTo6dXBkYXRlRnJvbVNv
dXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKIHsKLSAgICBtX3VybCA9IHNvdXBV
UklUb0tVUkwoc291cF9tZXNzYWdlX2dldF91cmkoc291cE1lc3NhZ2UpKTsKKyAgICBtX3VybCA9
IFVSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShzb3VwTWVzc2FnZSkpOwogCiAgICAgbV9odHRwU3Rh
dHVzQ29kZSA9IHNvdXBNZXNzYWdlLT5zdGF0dXNfY29kZTsKICAgICBzZXRIVFRQU3RhdHVzVGV4
dChzb3VwTWVzc2FnZS0+cmVhc29uX3BocmFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlYTg5MDJhLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDQg
KzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDEwIElnYWxpYSBTLkwuCi0gKgotICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
ICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
U291cFVSSVV0aWxzLmgiCi0KLSNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KLSNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gTW90
aXZhdGVkIGJ5IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODk1Ni4g
bGlic291cAotLy8gZG9lcyBub3QgYWRkIHRoZSBwYXNzd29yZCB0byB0aGUgVVJMIHdoZW4gY2Fs
bGluZwotLy8gc291cF91cmlfdG9fc3RyaW5nLCBhbmQgdGh1cyB0aGUgcmVxdWVzdHMgYXJlIG5v
dCBwcm9wZXJseQotLy8gYnVpbHQuIEZpeGluZyBzb3VwX3VyaV90b19zdHJpbmcgaXMgYSBuby1u
byBhcyB0aGUgbWFpbnRhaW5lciBkb2VzCi0vLyBub3Qgd2FudCB0byBicmVhayBjb21wYXRpYmls
aXR5IHdpdGggcHJldmlvdXMgaW1wbGVtZW50YXRpb25zCi1VUkwgc291cFVSSVRvS1VSTChTb3Vw
VVJJKiBzb3VwVVJJKQotewotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHVybFN0cmluZyhzb3VwX3Vy
aV90b19zdHJpbmcoc291cFVSSSwgRkFMU0UpKTsKLSAgICBVUkwgdXJsKFVSTCgpLCBTdHJpbmc6
OmZyb21VVEY4KHVybFN0cmluZy5nZXQoKSkpOwotCi0gICAgaWYgKCFzb3VwVVJJLT5wYXNzd29y
ZCkKLSAgICAgICAgcmV0dXJuIHVybDsKLQotICAgIHVybC5zZXRQYXNzKFN0cmluZzo6ZnJvbVVU
Rjgoc291cFVSSS0+cGFzc3dvcmQpKTsKLSAgICByZXR1cm4gdXJsOwotfQotCi19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmNmU4ZDUuLjAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGlscy5oCisrKyAvZGV2L251
bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5M
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgU291cFVSSVV0aWxzX2gKLSNkZWZpbmUgU291cFVSSVV0aWxzX2gK
LQotI2luY2x1ZGUgIlVSTC5oIgotCi10eXBlZGVmIHN0cnVjdCBfU291cFVSSSBTb3VwVVJJOwot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1VUkwgc291cFVSSVRvS1VSTChTb3VwVVJJKiBzb3VwVVJJ
KTsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3Vw
L1VSTFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291cC9VUkxTb3VwLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZThlM2YzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291cC9VUkxTb3VwLmNwcApAQCAtMCwwICsx
LDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVSTC5oIgorCisjaW5jbHVkZSA8bGlic291cC9z
b3VwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1VSTDo6VVJMKFNvdXBVUkkqIHNvdXBVUkkpCit7CisgICAgaWYgKCFzb3VwVVJJKSB7
CisgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IHVybFN0cmluZyhzb3VwX3VyaV90b19zdHJpbmcoc291cFVSSSwgRkFM
U0UpKTsKKyAgICBwYXJzZShTdHJpbmc6OmZyb21VVEY4KHVybFN0cmluZy5nZXQoKSkpOworICAg
IGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBNb3RpdmF0ZWQgYnkg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTU2LiBsaWJzb3VwCisg
ICAgLy8gZG9lcyBub3QgYWRkIHRoZSBwYXNzd29yZCB0byB0aGUgVVJMIHdoZW4gY2FsbGluZwor
ICAgIC8vIHNvdXBfdXJpX3RvX3N0cmluZywgYW5kIHRodXMgdGhlIHJlcXVlc3RzIGFyZSBub3Qg
cHJvcGVybHkKKyAgICAvLyBidWlsdC4gRml4aW5nIHNvdXBfdXJpX3RvX3N0cmluZyBpcyBhIG5v
LW5vIGFzIHRoZSBtYWludGFpbmVyIGRvZXMKKyAgICAvLyBub3Qgd2FudCB0byBicmVhayBjb21w
YXRpYmlsaXR5IHdpdGggcHJldmlvdXMgaW1wbGVtZW50YXRpb25zCisgICAgaWYgKHNvdXBVUkkt
PnBhc3N3b3JkKQorICAgICAgICBzZXRQYXNzKFN0cmluZzo6ZnJvbVVURjgoc291cFVSSS0+cGFz
c3dvcmQpKTsKK30KKworR1VuaXF1ZVB0cjxTb3VwVVJJPiBVUkw6OmNyZWF0ZVNvdXBVUkkoKSBj
b25zdAoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIC8vIFdlYktpdCBkb2VzIG5vdCBzdXBwb3J0IGZyYWdtZW50IGlkZW50aWZpZXJzIGluIGRh
dGEgVVJMcywgYnV0IHNvdXAgZG9lcy4KKyAgICAvLyBCZWZvcmUgcGFzc2luZyB0aGUgVVJMIHRv
IHNvdXAsIHdlIHNob3VsZCBtYWtlIHN1cmUgdG8gdXJsZW5jb2RlIGFueSAnIycKKyAgICAvLyBj
aGFyYWN0ZXJzLCBzbyB0aGF0IHNvdXAgZG9lcyBub3QgaW50ZXJwcmV0IHRoZW0gYXMgZnJhZ21l
bnQgaWRlbnRpZmllcnMuCisgICAgLy8gU2VlIGh0dHA6Ly93a2J1Zy5jb20vNjgwODkKKyAgICBp
ZiAocHJvdG9jb2xJc0RhdGEoKSkgeworICAgICAgICBTdHJpbmcgdXJsU3RyaW5nID0gc3RyaW5n
KCk7CisgICAgICAgIHVybFN0cmluZy5yZXBsYWNlKCIjIiwgIiUyMyIpOworICAgICAgICByZXR1
cm4gR1VuaXF1ZVB0cjxTb3VwVVJJPihzb3VwX3VyaV9uZXcodXJsU3RyaW5nLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICB9CisKKyAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNvdXBVUkkoc291cF91cmlf
bmV3KHN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKworICAgIC8vIFZlcnNpb25zIG9mIGxpYnNv
dXAgcHJpb3IgdG8gMi40MiBoYXZlIGEgc291cF91cmlfbmV3IHRoYXQgd2lsbCBjb252ZXJ0IGVt
cHR5IHBhc3N3b3JkcyB0aGF0IGFyZSBub3QKKyAgICAvLyBwcmVmaXhlZCBieSBhIGNvbG9uIGlu
dG8gbnVsbC4gU29tZSBwYXJ0cyBvZiBzb3VwIGxpa2UgdGhlIFNvdXBBdXRoZW50aWNhdGlvbk1h
bmFnZXIgd2lsbCBvbmx5IGJlIGFjdGl2ZQorICAgIC8vIHdoZW4gYm90aCB0aGUgdXNlcm5hbWUg
YW5kIHBhc3N3b3JkIGFyZSBub24tbnVsbC4gV2hlbiB3ZSBoYXZlIGNyZWRlbnRpYWxzLCBlbXB0
eSB1c2VybmFtZXMgYW5kIHBhc3N3b3JkcworICAgIC8vIHNob3VsZCBiZSBlbXB0eSBzdHJpbmdz
IGluc3RlYWQgb2YgbnVsbC4KKyAgICBTdHJpbmcgdXJsVXNlciA9IHVzZXIoKTsKKyAgICBTdHJp
bmcgdXJsUGFzcyA9IHBhc3MoKTsKKyAgICBpZiAoIXVybFVzZXIuaXNFbXB0eSgpIHx8ICF1cmxQ
YXNzLmlzRW1wdHkoKSkgeworICAgICAgICBzb3VwX3VyaV9zZXRfdXNlcihzb3VwVVJJLmdldCgp
LCB1cmxVc2VyLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBzb3VwX3VyaV9zZXRfcGFzc3dvcmQo
c291cFVSSS5nZXQoKSwgdXJsUGFzcy51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gc291cFVSSTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFmMTMzN2EuLjM2ZTBhNTggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxNC0wMS0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW1NPVVBdIFJlbW92ZSBzb3VwVVJJVG9LVVJMCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcxMDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvR05V
bWFrZWZpbGUuYW06IEFkZCBzb3VwIGNwcGZsYWdzIHRvIFdlYkNvcmUgdW5pdAorICAgICAgICB0
ZXN0cywgYmVjYXVzZSBVUkwuaCBub3cgaW5jbHVkZXMgR1VuaXF1ZVB0clNvdXAuaC4KKwogMjAx
NC0wMS0yMyAgTMOhc3psw7MgTGFuZ8OzICA8bGxhbmdvLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgUmVtb3ZlIGEgRklYTUUgY29tbWVudCB0aGF0IGlzIGFscmVhZHkg
Zml4ZWQuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQppbmRleCAzZDMwYzJhLi5jYzQxNWEz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0KQEAgLTI4NCw3ICsyODQsOSBAQCBESVNU
Q0xFQU5GSUxFUyArPSBcCiAKIFByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViQ29yZV9UZXN0V2Vi
Q29yZV9DUFBGTEFHUyA9IFwKIAkkKExpYnJhcmllc19saWJUZXN0V2ViS2l0QVBJTWFpbl9sYV9D
UFBGTEFHUykgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvaW5j
bHVkZQorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cCBc
CisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9pbmNsdWRlIFwKKwkk
KExJQlNPVVBfQ0ZMQUdTKQogCiBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYkNvcmVfVGVzdFdl
YkNvcmVfQ1hYRkxBR1MgPSBcCiAJLURHVEVTVF9IQVNfUlRUST0wIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222271</attachid>
            <date>2014-01-26 06:38:22 -0800</date>
            <delta_ts>2014-01-26 07:29:18 -0800</delta_ts>
            <desc>Try to fix EFL build</desc>
            <filename>wkcore-soup-uri.diff</filename>
            <type>text/plain</type>
            <size>23637</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYTM1N2NmLi44YWRhOWRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3
IEBACiAyMDE0LTAxLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAorICAgICAgICBbU09VUF0gUmVtb3ZlIHNvdXBVUklUb0tVUkwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzEwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGZhdm9yIG9mIGEgVVJMIGNvbnN0
cnVjdG9yIHJlY2VpdmluZyBhIFNvdXBVUkkuIEFsc28gYWRkIGEKKyAgICAgICAgbWV0aG9kIHRv
IFVSTCB0byBjcmVhdGUgYSBzb3VwVVJJLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bTogUmVtb3ZlIFNvdXBVUklVdGlscyBhbmQgYWRkIFVSTFNvdXAuCisgICAgICAgICogUGxhdGZv
cm1FZmwuY21ha2U6IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuaDogQWRkIFVSTCBjb25zdHJ1Y3RvciByZWNlaXZpbmcg
YSBTb3VwVVJJIGFuZAorICAgICAgICBjcmVhdGVTb3VwVVJJKCkgdG8gY3JlYXRlIGEgbmV3IHNv
dXBVUkkgZm9yIHRoZSBVUkwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tp
ZUphclNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Q29va2llc0Zyb21ET00pOiBVc2Ug
VVJMOjpjcmVhdGVTb3VwVVJJKCkuCisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRm9yU2Vzc2lv
bik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0UmF3Q29va2llcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6ZGVsZXRlQ29va2llKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpk
b1JlZGlyZWN0KTogVXNlIHRoZSBuZXcgVVJMIGNvbnN0cnVjdG9yIGluc3RlYWQgb2YKKyAgICAg
ICAgc291cFVSSVRvS1VSTC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNvdXBSZXF1ZXN0QW5k
TWVzc2FnZUZvckhhbmRsZSk6IFVzZSBVUkw6OmNyZWF0ZVNvdXBVUkkoKS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0Lmg6IFJlbmFtZSBzb3VwVVJJIGFz
CisgICAgICAgIGNyZWF0ZVNvdXBVUkkgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRoZSBtZXRob2Qg
cmV0dXJucyBhIG5ld2x5CisgICAgICAgIGNyZWF0ZWQgU291cFVSSS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyk6IFVzZSBVUkw6
OmNyZWF0ZVNvdXBVUkkoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6dXBk
YXRlU291cE1lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlKTogVXNlIHRoZSBuZXcgVVJMCisgICAgICAgIGNvbnN0
cnVjdG9yIGluc3RlYWQgb2Ygc291cFVSSVRvS1VSTC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdDo6Y3JlYXRlU291cFVSSSk6IFVzZSBVUkw6OmNyZWF0ZVNvdXBVUkkoKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdl
KTogVXNlIHRoZSBuZXcKKyAgICAgICAgVVJMIGNvbnN0cnVjdG9yIGluc3RlYWQgb2Ygc291cFVS
SVRvS1VSTC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxz
Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vc291cC9VUkxTb3VwLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpVUkw6OlVSTCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OmNy
ZWF0ZVNvdXBVUkkpOgorCisyMDE0LTAxLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBBdm9pZCB1bm5lY2Vzc2FyeSBzdHJpbmcg
ZHVwbGljYXRpb25zIGluIEZpbGVTeXN0ZW1HdGsKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQ2OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA1ZWY4N2RkLi5lNjJkZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTU4NjcsOCArNTg2Nyw2IEBAIHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1FcnJvci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVTb3Vw
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGls
cy5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRp
bHMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50LmggXApAQCAtNTkwNyw2ICs1OTA1LDcgQEAgcGxhdGZv
cm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvVVJM
U291cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hl
Y2tlckVuY2hhbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9lbmNoYW50L1Rl
eHRDaGVja2VyRW5jaGFudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaWN1
L1VUZXh0UHJvdmlkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOTk2Yjc2
Zi4uNjFmYmZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTE2NywxMyArMTY3LDEz
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29j
a2V0U3RyZWFtSGFuZGxlU291cC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5l
dHdvcmtTZXNzaW9uLmNwcAotICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMu
Y3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50U291
cC5jcHAKIAogICAgIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKICAgICBwbGF0
Zm9ybS9wb3NpeC9TaGFyZWRCdWZmZXJQT1NJWC5jcHAKIAogICAgIHBsYXRmb3JtL3NvdXAvU2hh
cmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCiAKICAgICBw
bGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRl
eCBmZjZlN2VlLi5iZjBmMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdU
Sy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTI1LDEw
ICsxMjUsMTAgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9Tb2NrZXRTdHJlYW1IYW5kbGVTb3VwLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCi0gICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBV
UklVdGlscy5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU3luY2hyb25vdXNMb2FkZXJD
bGllbnRTb3VwLmNwcAogCiAgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKIAogICAgIHBsYXRmb3JtL3RleHQvaWN1L1VU
ZXh0UHJvdmlkZXIuY3BwCiAgICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGlu
MS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKaW5kZXggMzQ5OTNhMy4uOGFiMTM3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVVJMLmgKQEAgLTM1LDYgKzM1LDEwIEBACiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NG
VVJMKiBDRlVSTFJlZjsKICNlbmRpZgogCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSAiR1VuaXF1
ZVB0clNvdXAuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogT0JKQ19DTEFTUyBOU1VS
TDsKICNlbmRpZgpAQCAtMTYwLDYgKzE2NCwxMSBAQCBwdWJsaWM6CiAgICAgUmV0YWluUHRyPENG
VVJMUmVmPiBjcmVhdGVDRlVSTCgpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBVU0UoU09VUCkKKyAg
ICBVUkwoU291cFVSSSopOworICAgIEdVbmlxdWVQdHI8U291cFVSST4gY3JlYXRlU291cFVSSSgp
IGNvbnN0OworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpCiAgICAgVVJMKE5TVVJMKik7CiAg
ICAgb3BlcmF0b3IgTlNVUkwqKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggODEwMWU1Mi4uZmVj
OWRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9Db29raWVKYXJTb3VwLmNwcApAQCAtODgsOCArODgsOCBAQCB2b2lkIHNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJz
dFBhcgogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBHVW5pcXVlUHRyPFNv
dXBVUkk+IG9yaWdpbihzb3VwX3VyaV9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsK
LSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IGZpcnN0UGFydHlVUkkoc291cF91cmlfbmV3KGZpcnN0
UGFydHkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEdVbmlxdWVQdHI8U291cFVSST4g
b3JpZ2luID0gdXJsLmNyZWF0ZVNvdXBVUkkoKTsKKyAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IGZp
cnN0UGFydHlVUkkgPSBmaXJzdFBhcnR5LmNyZWF0ZVNvdXBVUkkoKTsKIAogICAgIC8vIEdldCBl
eGlzdGluZyBjb29raWVzIGZvciB0aGlzIG9yaWdpbi4KICAgICBHU0xpc3QqIGV4aXN0aW5nQ29v
a2llcyA9IHNvdXBfY29va2llX2phcl9nZXRfY29va2llX2xpc3QoamFyLCBvcmlnaW4uZ2V0KCks
IFRSVUUpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRpYyBTdHJpbmcgY29va2llc0ZvclNlc3Np
b24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmCiAgICAg
aWYgKCFqYXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIEdVbmlxdWVQdHI8U291
cFVSST4gdXJpKHNvdXBfdXJpX25ldyh1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAg
IEdVbmlxdWVQdHI8U291cFVSST4gdXJpID0gdXJsLmNyZWF0ZVNvdXBVUkkoKTsKICAgICBHVW5p
cXVlUHRyPGNoYXI+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVzKGphciwgdXJp
LmdldCgpLCBmb3JIVFRQSGVhZGVyKSk7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoY29v
a2llcy5nZXQoKSk7CiB9CkBAIC0xNDksNyArMTQ5LDcgQEAgYm9vbCBnZXRSYXdDb29raWVzKGNv
bnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiAvKmZpcnN0UGFy
dHkKICAgICBpZiAoIWphcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgR1VuaXF1ZVB0
cjxTb3VwVVJJPiB1cmkoc291cF91cmlfbmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
CisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkgPSB1cmwuY3JlYXRlU291cFVSSSgpOwogICAg
IEdVbmlxdWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9nZXRfY29va2llX2xp
c3QoamFyLCB1cmkuZ2V0KCksIFRSVUUpKTsKICAgICBpZiAoIWNvb2tpZXMpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdAog
ICAgIGlmICghamFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+
IHVyaShzb3VwX3VyaV9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBHVW5p
cXVlUHRyPFNvdXBVUkk+IHVyaSA9IHVybC5jcmVhdGVTb3VwVVJJKCk7CiAgICAgR1VuaXF1ZVB0
cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdChqYXIsIHVy
aS5nZXQoKSwgVFJVRSkpOwogICAgIGlmICghY29va2llcykKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAppbmRleCA3YTY3NzZlLi40NDMxZWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
ICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb3VwTmV0d29ya1Nlc3Npb24u
aCIKLSNpbmNsdWRlICJTb3VwVVJJVXRpbHMuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIK
ICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CkBAIC00NTMsNyArNDUyLDcg
QEAgc3RhdGljIHZvaWQgZG9SZWRpcmVjdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIFJl
c291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0ID0gaGFuZGxlLT5maXJzdFJlcXVlc3QoKTsKICAgICBT
b3VwTWVzc2FnZSogbWVzc2FnZSA9IGQtPm1fc291cE1lc3NhZ2UuZ2V0KCk7CiAgICAgY29uc3Qg
Y2hhciogbG9jYXRpb24gPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKG1lc3NhZ2UtPnJl
c3BvbnNlX2hlYWRlcnMsICJMb2NhdGlvbiIpOwotICAgIFVSTCBuZXdVUkwgPSBVUkwoc291cFVS
SVRvS1VSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSksIGxvY2F0aW9uKTsKKyAgICBV
UkwgbmV3VVJMID0gVVJMKFVSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSksIGxvY2F0
aW9uKTsKICAgICBib29sIGNyb3NzT3JpZ2luID0gIXByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVh
bChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLCBuZXdVUkwpOwogICAgIG5ld1JlcXVlc3Qu
c2V0VVJMKG5ld1VSTCk7CiAgICAgbmV3UmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhu
ZXdVUkwpOwpAQCAtOTkzLDcgKzk5Miw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBSZXF1ZXN0
QW5kTWVzc2FnZUZvckhhbmRsZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSCiAKICAg
ICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CiAKLSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNvdXBV
UkkocmVxdWVzdC5zb3VwVVJJKCkpOworICAgIEdVbmlxdWVQdHI8U291cFVSST4gc291cFVSSSA9
IHJlcXVlc3QuY3JlYXRlU291cFVSSSgpOwogICAgIGlmICghc291cFVSSSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggY2YyMjZjMS4uNWRlYjA2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVl
c3QuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBSZXNvdXJjZVJlcXVlc3RfaAogI2RlZmlu
ZSBSZXNvdXJjZVJlcXVlc3RfaAogCisjaW5jbHVkZSAiR1VuaXF1ZVB0clNvdXAuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3RCYXNlLmgiCiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAK
QEAgLTg1LDcgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTb3VwTWVzc2Fn
ZUZsYWdzIHNvdXBNZXNzYWdlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NvdXBGbGFnczsgfQog
ICAgICAgICB2b2lkIHNldFNvdXBNZXNzYWdlRmxhZ3MoU291cE1lc3NhZ2VGbGFncyBzb3VwRmxh
Z3MpIHsgbV9zb3VwRmxhZ3MgPSBzb3VwRmxhZ3M7IH0KIAotICAgICAgICBTb3VwVVJJKiBzb3Vw
VVJJKCkgY29uc3Q7CisgICAgICAgIEdVbmlxdWVQdHI8U291cFVSST4gY3JlYXRlU291cFVSSSgp
IGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVx
dWVzdEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggMjM1OWZkNi4uMTg5ZjVjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
UmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMjMsNyArMjMsNiBAQAogI2luY2x1ZGUgIkdV
bmlxdWVQdHJTb3VwLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiU291cFVSSVV0aWxzLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0z
MywxMSArMzIsOSBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2VNZW1i
ZXJzKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKIHsKICAgICB1cGRhdGVTb3VwTWVz
c2FnZUhlYWRlcnMoc291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycyk7CiAKLSAgICBTdHJpbmcg
Zmlyc3RQYXJ0eVN0cmluZyA9IGZpcnN0UGFydHlGb3JDb29raWVzKCkuc3RyaW5nKCk7Ci0gICAg
aWYgKCFmaXJzdFBhcnR5U3RyaW5nLmlzRW1wdHkoKSkgewotICAgICAgICBHVW5pcXVlUHRyPFNv
dXBVUkk+IGZpcnN0UGFydHkoc291cF91cmlfbmV3KGZpcnN0UGFydHlTdHJpbmcudXRmOCgpLmRh
dGEoKSkpOworICAgIEdVbmlxdWVQdHI8U291cFVSST4gZmlyc3RQYXJ0eSA9IGZpcnN0UGFydHlG
b3JDb29raWVzKCkuY3JlYXRlU291cFVSSSgpOworICAgIGlmIChmaXJzdFBhcnR5KQogICAgICAg
ICBzb3VwX21lc3NhZ2Vfc2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlLCBmaXJzdFBhcnR5Lmdl
dCgpKTsKLSAgICB9CiAKICAgICBzb3VwX21lc3NhZ2Vfc2V0X2ZsYWdzKHNvdXBNZXNzYWdlLCBt
X3NvdXBGbGFncyk7CiAKQEAgLTcwLDcgKzY3LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVw
ZGF0ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKIHsKICAgICBn
X29iamVjdF9zZXQoc291cE1lc3NhZ2UsIFNPVVBfTUVTU0FHRV9NRVRIT0QsIGh0dHBNZXRob2Qo
KS51dGY4KCkuZGF0YSgpLCBOVUxMKTsKIAotICAgIEdVbmlxdWVQdHI8U291cFVSST4gdXJpKHNv
dXBVUkkoKSk7CisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkgPSBjcmVhdGVTb3VwVVJJKCk7
CiAgICAgc291cF9tZXNzYWdlX3NldF91cmkoc291cE1lc3NhZ2UsIHVyaS5nZXQoKSk7CiAKICAg
ICB1cGRhdGVTb3VwTWVzc2FnZU1lbWJlcnMoc291cE1lc3NhZ2UpOwpAQCAtOTMsNyArOTAsNyBA
QCBTb3VwTWVzc2FnZSogUmVzb3VyY2VSZXF1ZXN0Ojp0b1NvdXBNZXNzYWdlKCkgY29uc3QKIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNv
dXBNZXNzYWdlKQogewogICAgIGJvb2wgc2hvdWxkUG9ydEJlUmVzZXRUb1plcm8gPSBtX3VybC5o
YXNQb3J0KCkgJiYgIW1fdXJsLnBvcnQoKTsKLSAgICBtX3VybCA9IHNvdXBVUklUb0tVUkwoc291
cF9tZXNzYWdlX2dldF91cmkoc291cE1lc3NhZ2UpKTsKKyAgICBtX3VybCA9IFVSTChzb3VwX21l
c3NhZ2VfZ2V0X3VyaShzb3VwTWVzc2FnZSkpOwogCiAgICAgLy8gU291cFVSSSBjYW5ub3QgZGlm
ZmVyZW5pYXRlIGJldHdlZW4gYW4gZXhwbGljaXRseSBzcGVjaWZpZWQgcG9ydCAwIGFuZAogICAg
IC8vIG5vIHBvcnQgc3BlY2lmaWVkLgpAQCAtMTA3LDkgKzEwNCw4IEBAIHZvaWQgUmVzb3VyY2VS
ZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKQog
ICAgIGlmIChzb3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LT5kYXRhKQogICAgICAgICBtX2h0dHBC
b2R5ID0gRm9ybURhdGE6OmNyZWF0ZShzb3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LT5kYXRhLCBz
b3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LT5sZW5ndGgpOwogCi0gICAgU291cFVSSSogZmlyc3RQ
YXJ0eSA9IHNvdXBfbWVzc2FnZV9nZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UpOwotICAgIGlm
IChmaXJzdFBhcnR5KQotICAgICAgICBtX2ZpcnN0UGFydHlGb3JDb29raWVzID0gc291cFVSSVRv
S1VSTChmaXJzdFBhcnR5KTsKKyAgICBpZiAoU291cFVSSSogZmlyc3RQYXJ0eSA9IHNvdXBfbWVz
c2FnZV9nZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UpKQorICAgICAgICBtX2ZpcnN0UGFydHlG
b3JDb29raWVzID0gVVJMKGZpcnN0UGFydHkpOwogCiAgICAgbV9zb3VwRmxhZ3MgPSBzb3VwX21l
c3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlKTsKIApAQCAtMTI1LDMxICsxMjEsMTEgQEAgdW5z
aWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAg
cmV0dXJuIDEwMDAwOwogfQogCi1Tb3VwVVJJKiBSZXNvdXJjZVJlcXVlc3Q6OnNvdXBVUkkoKSBj
b25zdAorR1VuaXF1ZVB0cjxTb3VwVVJJPiBSZXNvdXJjZVJlcXVlc3Q6OmNyZWF0ZVNvdXBVUkko
KSBjb25zdAogewotICAgIC8vIFdlYktpdCBkb2VzIG5vdCBzdXBwb3J0IGZyYWdtZW50IGlkZW50
aWZpZXJzIGluIGRhdGEgVVJMcywgYnV0IHNvdXAgZG9lcy4KLSAgICAvLyBCZWZvcmUgcGFzc2lu
ZyB0aGUgVVJMIHRvIHNvdXAsIHdlIHNob3VsZCBtYWtlIHN1cmUgdG8gdXJsZW5jb2RlIGFueSAn
IycKLSAgICAvLyBjaGFyYWN0ZXJzLCBzbyB0aGF0IHNvdXAgZG9lcyBub3QgaW50ZXJwcmV0IHRo
ZW0gYXMgZnJhZ21lbnQgaWRlbnRpZmllcnMuCi0gICAgLy8gU2VlIGh0dHA6Ly93a2J1Zy5jb20v
NjgwODkKLSAgICBpZiAobV91cmwucHJvdG9jb2xJc0RhdGEoKSkgewotICAgICAgICBTdHJpbmcg
dXJsU3RyaW5nID0gbV91cmwuc3RyaW5nKCk7Ci0gICAgICAgIHVybFN0cmluZy5yZXBsYWNlKCIj
IiwgIiUyMyIpOwotICAgICAgICByZXR1cm4gc291cF91cmlfbmV3KHVybFN0cmluZy51dGY4KCku
ZGF0YSgpKTsKLSAgICB9Ci0KICAgICBVUkwgdXJsID0gbV91cmw7CiAgICAgdXJsLnJlbW92ZUZy
YWdtZW50SWRlbnRpZmllcigpOwotICAgIFNvdXBVUkkqIHVyaSA9IHNvdXBfdXJpX25ldyh1cmwu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICAvLyBWZXJzaW9ucyBvZiBsaWJzb3VwIHBy
aW9yIHRvIDIuNDIgaGF2ZSBhIHNvdXBfdXJpX25ldyB0aGF0IHdpbGwgY29udmVydCBlbXB0eSBw
YXNzd29yZHMgdGhhdCBhcmUgbm90Ci0gICAgLy8gcHJlZml4ZWQgYnkgYSBjb2xvbiBpbnRvIG51
bGwuIFNvbWUgcGFydHMgb2Ygc291cCBsaWtlIHRoZSBTb3VwQXV0aGVudGljYXRpb25NYW5hZ2Vy
IHdpbGwgb25seSBiZSBhY3RpdmUKLSAgICAvLyB3aGVuIGJvdGggdGhlIHVzZXJuYW1lIGFuZCBw
YXNzd29yZCBhcmUgbm9uLW51bGwuIFdoZW4gd2UgaGF2ZSBjcmVkZW50aWFscywgZW1wdHkgdXNl
cm5hbWVzIGFuZCBwYXNzd29yZHMKLSAgICAvLyBzaG91bGQgYmUgZW1wdHkgc3RyaW5ncyBpbnN0
ZWFkIG9mIG51bGwuCi0gICAgaWYgKCF1cmwudXNlcigpLmlzRW1wdHkoKSB8fCAhdXJsLnBhc3Mo
KS5pc0VtcHR5KCkpIHsKLSAgICAgICAgc291cF91cmlfc2V0X3VzZXIodXJpLCB1cmwudXNlcigp
LnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBzb3VwX3VyaV9zZXRfcGFzc3dvcmQodXJpLCB1cmwu
cGFzcygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLSAgICByZXR1cm4gdXJpOworICAgIHJldHVy
biB1cmwuY3JlYXRlU291cFVSSSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApp
bmRleCBlMzYyZjdiLi5jODkxYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTIz
LDcgKzIzLDYgQEAKIAogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNvdXBVUklVdGlscy5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01Nyw3ICs1Niw3IEBAIFNvdXBNZXNzYWdl
KiBSZXNvdXJjZVJlc3BvbnNlOjp0b1NvdXBNZXNzYWdlKCkgY29uc3QKIAogdm9pZCBSZXNvdXJj
ZVJlc3BvbnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdl
KQogewotICAgIG1fdXJsID0gc291cFVSSVRvS1VSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShzb3Vw
TWVzc2FnZSkpOworICAgIG1fdXJsID0gVVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBNZXNz
YWdlKSk7CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291cE1lc3NhZ2UtPnN0YXR1c19jb2Rl
OwogICAgIHNldEhUVFBTdGF0dXNUZXh0KHNvdXBNZXNzYWdlLT5yZWFzb25fcGhyYXNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRp
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGls
cy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhODkwMmEuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGlscy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAw
MTAgSWdhbGlhIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJTb3VwVVJJVXRpbHMuaCIKLQotI2luY2x1ZGUgPGxpYnNv
dXAvc291cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi0vLyBNb3RpdmF0ZWQgYnkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM4OTU2LiBsaWJzb3VwCi0vLyBkb2VzIG5vdCBhZGQgdGhlIHBhc3N3
b3JkIHRvIHRoZSBVUkwgd2hlbiBjYWxsaW5nCi0vLyBzb3VwX3VyaV90b19zdHJpbmcsIGFuZCB0
aHVzIHRoZSByZXF1ZXN0cyBhcmUgbm90IHByb3Blcmx5Ci0vLyBidWlsdC4gRml4aW5nIHNvdXBf
dXJpX3RvX3N0cmluZyBpcyBhIG5vLW5vIGFzIHRoZSBtYWludGFpbmVyIGRvZXMKLS8vIG5vdCB3
YW50IHRvIGJyZWFrIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbnMK
LVVSTCBzb3VwVVJJVG9LVVJMKFNvdXBVUkkqIHNvdXBVUkkpCi17Ci0gICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gdXJsU3RyaW5nKHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSkpOwotICAg
IFVSTCB1cmwoVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJsU3RyaW5nLmdldCgpKSk7Ci0KLSAg
ICBpZiAoIXNvdXBVUkktPnBhc3N3b3JkKQotICAgICAgICByZXR1cm4gdXJsOwotCi0gICAgdXJs
LnNldFBhc3MoU3RyaW5nOjpmcm9tVVRGOChzb3VwVVJJLT5wYXNzd29yZCkpOwotICAgIHJldHVy
biB1cmw7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Tb3VwVVJJVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Tb3VwVVJJVXRpbHMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY2ZThk
NS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291
cFVSSVV0aWxzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTb3VwVVJJVXRpbHNfaAot
I2RlZmluZSBTb3VwVVJJVXRpbHNfaAotCi0jaW5jbHVkZSAiVVJMLmgiCi0KLXR5cGVkZWYgc3Ry
dWN0IF9Tb3VwVVJJIFNvdXBVUkk7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLVVSTCBzb3VwVVJJ
VG9LVVJMKFNvdXBVUkkqIHNvdXBVUkkpOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmJlOGUzZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3Vw
L1VSTFNvdXAuY3BwCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVVJMLmgi
CisKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVVJMOjpVUkwoU291cFVSSSogc291cFVSSSkK
K3sKKyAgICBpZiAoIXNvdXBVUkkpIHsKKyAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gdXJsU3RyaW5nKHNvdXBfdXJp
X3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSkpOworICAgIHBhcnNlKFN0cmluZzo6ZnJvbVVURjgo
dXJsU3RyaW5nLmdldCgpKSk7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIE1vdGl2YXRlZCBieSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg5NTYuIGxpYnNvdXAKKyAgICAvLyBkb2VzIG5vdCBhZGQgdGhlIHBhc3N3b3JkIHRv
IHRoZSBVUkwgd2hlbiBjYWxsaW5nCisgICAgLy8gc291cF91cmlfdG9fc3RyaW5nLCBhbmQgdGh1
cyB0aGUgcmVxdWVzdHMgYXJlIG5vdCBwcm9wZXJseQorICAgIC8vIGJ1aWx0LiBGaXhpbmcgc291
cF91cmlfdG9fc3RyaW5nIGlzIGEgbm8tbm8gYXMgdGhlIG1haW50YWluZXIgZG9lcworICAgIC8v
IG5vdCB3YW50IHRvIGJyZWFrIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyBpbXBsZW1lbnRh
dGlvbnMKKyAgICBpZiAoc291cFVSSS0+cGFzc3dvcmQpCisgICAgICAgIHNldFBhc3MoU3RyaW5n
Ojpmcm9tVVRGOChzb3VwVVJJLT5wYXNzd29yZCkpOworfQorCitHVW5pcXVlUHRyPFNvdXBVUkk+
IFVSTDo6Y3JlYXRlU291cFVSSSgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgLy8gV2ViS2l0IGRvZXMgbm90IHN1cHBvcnQgZnJh
Z21lbnQgaWRlbnRpZmllcnMgaW4gZGF0YSBVUkxzLCBidXQgc291cCBkb2VzLgorICAgIC8vIEJl
Zm9yZSBwYXNzaW5nIHRoZSBVUkwgdG8gc291cCwgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0byB1cmxl
bmNvZGUgYW55ICcjJworICAgIC8vIGNoYXJhY3RlcnMsIHNvIHRoYXQgc291cCBkb2VzIG5vdCBp
bnRlcnByZXQgdGhlbSBhcyBmcmFnbWVudCBpZGVudGlmaWVycy4KKyAgICAvLyBTZWUgaHR0cDov
L3drYnVnLmNvbS82ODA4OQorICAgIGlmIChwcm90b2NvbElzRGF0YSgpKSB7CisgICAgICAgIFN0
cmluZyB1cmxTdHJpbmcgPSBzdHJpbmcoKTsKKyAgICAgICAgdXJsU3RyaW5nLnJlcGxhY2UoIiMi
LCAiJTIzIik7CisgICAgICAgIHJldHVybiBHVW5pcXVlUHRyPFNvdXBVUkk+KHNvdXBfdXJpX25l
dyh1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSkpOworICAgIH0KKworICAgIEdVbmlxdWVQdHI8U291
cFVSST4gc291cFVSSShzb3VwX3VyaV9uZXcoc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworCisg
ICAgLy8gVmVyc2lvbnMgb2YgbGlic291cCBwcmlvciB0byAyLjQyIGhhdmUgYSBzb3VwX3VyaV9u
ZXcgdGhhdCB3aWxsIGNvbnZlcnQgZW1wdHkgcGFzc3dvcmRzIHRoYXQgYXJlIG5vdAorICAgIC8v
IHByZWZpeGVkIGJ5IGEgY29sb24gaW50byBudWxsLiBTb21lIHBhcnRzIG9mIHNvdXAgbGlrZSB0
aGUgU291cEF1dGhlbnRpY2F0aW9uTWFuYWdlciB3aWxsIG9ubHkgYmUgYWN0aXZlCisgICAgLy8g
d2hlbiBib3RoIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIG5vbi1udWxsLiBXaGVuIHdl
IGhhdmUgY3JlZGVudGlhbHMsIGVtcHR5IHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzCisgICAgLy8g
c2hvdWxkIGJlIGVtcHR5IHN0cmluZ3MgaW5zdGVhZCBvZiBudWxsLgorICAgIFN0cmluZyB1cmxV
c2VyID0gdXNlcigpOworICAgIFN0cmluZyB1cmxQYXNzID0gcGFzcygpOworICAgIGlmICghdXJs
VXNlci5pc0VtcHR5KCkgfHwgIXVybFBhc3MuaXNFbXB0eSgpKSB7CisgICAgICAgIHNvdXBfdXJp
X3NldF91c2VyKHNvdXBVUkkuZ2V0KCksIHVybFVzZXIudXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IHNvdXBfdXJpX3NldF9wYXNzd29yZChzb3VwVVJJLmdldCgpLCB1cmxQYXNzLnV0ZjgoKS5kYXRh
KCkpOworICAgIH0KKworICAgIHJldHVybiBzb3VwVVJJOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggZjU3NTFjNi4uZmUwMDI0OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTIzICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gUmVtb3ZlIHNv
dXBVUklUb0tVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzEwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbTogQWRkIHNvdXAgY3BwZmxhZ3MgdG8g
V2ViQ29yZSB1bml0CisgICAgICAgIHRlc3RzLCBiZWNhdXNlIFVSTC5oIG5vdyBpbmNsdWRlcyBH
VW5pcXVlUHRyU291cC5oLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQ6
IERpdHRvLgorCiAyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDYWxsIGRlcHJlY2F0ZWRDaGFyYWN0ZXJzIGluc3RlYWQgb2YgY2hhcmFjdGVycyBh
dCBtb3JlIGNhbGwgc2l0ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VM
aXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CmluZGV4IDJiN2Vh
ZTEuLjllZDQ4ODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50
eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMTUsNiArMTUs
NyBAQCBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7Q01BS0VfQklOQVJZX0RJUn0KICAgICAke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcwogICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3Rl
eHQKICAgICAke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrCisgICAgJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vbmV0d29yay9zb3VwCiAgICAgJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vSVBD
CiAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkCiAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQppbmRleCAzZDMwYzJhLi5jYzQxNWEzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0KQEAgLTI4NCw3ICsyODQsOSBAQCBESVNUQ0xF
QU5GSUxFUyArPSBcCiAKIFByb2dyYW1zX1Rlc3RXZWJLaXRBUElfV2ViQ29yZV9UZXN0V2ViQ29y
ZV9DUFBGTEFHUyA9IFwKIAkkKExpYnJhcmllc19saWJUZXN0V2ViS2l0QVBJTWFpbl9sYV9DUFBG
TEFHUykgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvaW5jbHVk
ZQorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cCBcCisJ
LUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9pbmNsdWRlIFwKKwkkKExJ
QlNPVVBfQ0ZMQUdTKQogCiBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYkNvcmVfVGVzdFdlYkNv
cmVfQ1hYRkxBR1MgPSBcCiAJLURHVEVTVF9IQVNfUlRUST0wIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222272</attachid>
            <date>2014-01-26 07:29:18 -0800</date>
            <delta_ts>2014-01-27 10:42:29 -0800</delta_ts>
            <desc>Try to fix EFL build</desc>
            <filename>wkcore-soup-uri2.diff</filename>
            <type>text/plain</type>
            <size>24291</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYTM1N2NmLi44YWRhOWRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3
IEBACiAyMDE0LTAxLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAorICAgICAgICBbU09VUF0gUmVtb3ZlIHNvdXBVUklUb0tVUkwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzEwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGZhdm9yIG9mIGEgVVJMIGNvbnN0
cnVjdG9yIHJlY2VpdmluZyBhIFNvdXBVUkkuIEFsc28gYWRkIGEKKyAgICAgICAgbWV0aG9kIHRv
IFVSTCB0byBjcmVhdGUgYSBzb3VwVVJJLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bTogUmVtb3ZlIFNvdXBVUklVdGlscyBhbmQgYWRkIFVSTFNvdXAuCisgICAgICAgICogUGxhdGZv
cm1FZmwuY21ha2U6IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuaDogQWRkIFVSTCBjb25zdHJ1Y3RvciByZWNlaXZpbmcg
YSBTb3VwVVJJIGFuZAorICAgICAgICBjcmVhdGVTb3VwVVJJKCkgdG8gY3JlYXRlIGEgbmV3IHNv
dXBVUkkgZm9yIHRoZSBVUkwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tp
ZUphclNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Q29va2llc0Zyb21ET00pOiBVc2Ug
VVJMOjpjcmVhdGVTb3VwVVJJKCkuCisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRm9yU2Vzc2lv
bik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0UmF3Q29va2llcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6ZGVsZXRlQ29va2llKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpk
b1JlZGlyZWN0KTogVXNlIHRoZSBuZXcgVVJMIGNvbnN0cnVjdG9yIGluc3RlYWQgb2YKKyAgICAg
ICAgc291cFVSSVRvS1VSTC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNvdXBSZXF1ZXN0QW5k
TWVzc2FnZUZvckhhbmRsZSk6IFVzZSBVUkw6OmNyZWF0ZVNvdXBVUkkoKS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0Lmg6IFJlbmFtZSBzb3VwVVJJIGFz
CisgICAgICAgIGNyZWF0ZVNvdXBVUkkgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRoZSBtZXRob2Qg
cmV0dXJucyBhIG5ld2x5CisgICAgICAgIGNyZWF0ZWQgU291cFVSSS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyk6IFVzZSBVUkw6
OmNyZWF0ZVNvdXBVUkkoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6dXBk
YXRlU291cE1lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dDo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlKTogVXNlIHRoZSBuZXcgVVJMCisgICAgICAgIGNvbnN0
cnVjdG9yIGluc3RlYWQgb2Ygc291cFVSSVRvS1VSTC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdDo6Y3JlYXRlU291cFVSSSk6IFVzZSBVUkw6OmNyZWF0ZVNvdXBVUkkoKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdl
KTogVXNlIHRoZSBuZXcKKyAgICAgICAgVVJMIGNvbnN0cnVjdG9yIGluc3RlYWQgb2Ygc291cFVS
SVRvS1VSTC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxz
Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vc291cC9VUkxTb3VwLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpVUkw6OlVSTCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OmNy
ZWF0ZVNvdXBVUkkpOgorCisyMDE0LTAxLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBBdm9pZCB1bm5lY2Vzc2FyeSBzdHJpbmcg
ZHVwbGljYXRpb25zIGluIEZpbGVTeXN0ZW1HdGsKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQ2OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA1ZWY4N2RkLi5lNjJkZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTU4NjcsOCArNTg2Nyw2IEBAIHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1FcnJvci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVTb3Vw
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGls
cy5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRp
bHMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50LmggXApAQCAtNTkwNyw2ICs1OTA1LDcgQEAgcGxhdGZv
cm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvVVJM
U291cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hl
Y2tlckVuY2hhbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9lbmNoYW50L1Rl
eHRDaGVja2VyRW5jaGFudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaWN1
L1VUZXh0UHJvdmlkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOTk2Yjc2
Zi4uNjFmYmZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTE2NywxMyArMTY3LDEz
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29j
a2V0U3RyZWFtSGFuZGxlU291cC5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5l
dHdvcmtTZXNzaW9uLmNwcAotICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMu
Y3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50U291
cC5jcHAKIAogICAgIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKICAgICBwbGF0
Zm9ybS9wb3NpeC9TaGFyZWRCdWZmZXJQT1NJWC5jcHAKIAogICAgIHBsYXRmb3JtL3NvdXAvU2hh
cmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCiAKICAgICBw
bGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRl
eCBmZjZlN2VlLi5iZjBmMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdU
Sy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTI1LDEw
ICsxMjUsMTAgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9Tb2NrZXRTdHJlYW1IYW5kbGVTb3VwLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCi0gICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBV
UklVdGlscy5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU3luY2hyb25vdXNMb2FkZXJD
bGllbnRTb3VwLmNwcAogCiAgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKIAogICAgIHBsYXRmb3JtL3RleHQvaWN1L1VU
ZXh0UHJvdmlkZXIuY3BwCiAgICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlckxhdGlu
MS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKaW5kZXggMzQ5OTNhMy4uOGFiMTM3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVVJMLmgKQEAgLTM1LDYgKzM1LDEwIEBACiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NG
VVJMKiBDRlVSTFJlZjsKICNlbmRpZgogCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSAiR1VuaXF1
ZVB0clNvdXAuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogT0JKQ19DTEFTUyBOU1VS
TDsKICNlbmRpZgpAQCAtMTYwLDYgKzE2NCwxMSBAQCBwdWJsaWM6CiAgICAgUmV0YWluUHRyPENG
VVJMUmVmPiBjcmVhdGVDRlVSTCgpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBVU0UoU09VUCkKKyAg
ICBVUkwoU291cFVSSSopOworICAgIEdVbmlxdWVQdHI8U291cFVSST4gY3JlYXRlU291cFVSSSgp
IGNvbnN0OworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpCiAgICAgVVJMKE5TVVJMKik7CiAg
ICAgb3BlcmF0b3IgTlNVUkwqKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggODEwMWU1Mi4uZmVj
OWRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9Db29raWVKYXJTb3VwLmNwcApAQCAtODgsOCArODgsOCBAQCB2b2lkIHNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJz
dFBhcgogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBHVW5pcXVlUHRyPFNv
dXBVUkk+IG9yaWdpbihzb3VwX3VyaV9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsK
LSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IGZpcnN0UGFydHlVUkkoc291cF91cmlfbmV3KGZpcnN0
UGFydHkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEdVbmlxdWVQdHI8U291cFVSST4g
b3JpZ2luID0gdXJsLmNyZWF0ZVNvdXBVUkkoKTsKKyAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IGZp
cnN0UGFydHlVUkkgPSBmaXJzdFBhcnR5LmNyZWF0ZVNvdXBVUkkoKTsKIAogICAgIC8vIEdldCBl
eGlzdGluZyBjb29raWVzIGZvciB0aGlzIG9yaWdpbi4KICAgICBHU0xpc3QqIGV4aXN0aW5nQ29v
a2llcyA9IHNvdXBfY29va2llX2phcl9nZXRfY29va2llX2xpc3QoamFyLCBvcmlnaW4uZ2V0KCks
IFRSVUUpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRpYyBTdHJpbmcgY29va2llc0ZvclNlc3Np
b24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmCiAgICAg
aWYgKCFqYXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIEdVbmlxdWVQdHI8U291
cFVSST4gdXJpKHNvdXBfdXJpX25ldyh1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAg
IEdVbmlxdWVQdHI8U291cFVSST4gdXJpID0gdXJsLmNyZWF0ZVNvdXBVUkkoKTsKICAgICBHVW5p
cXVlUHRyPGNoYXI+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVzKGphciwgdXJp
LmdldCgpLCBmb3JIVFRQSGVhZGVyKSk7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoY29v
a2llcy5nZXQoKSk7CiB9CkBAIC0xNDksNyArMTQ5LDcgQEAgYm9vbCBnZXRSYXdDb29raWVzKGNv
bnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiAvKmZpcnN0UGFy
dHkKICAgICBpZiAoIWphcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgR1VuaXF1ZVB0
cjxTb3VwVVJJPiB1cmkoc291cF91cmlfbmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
CisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkgPSB1cmwuY3JlYXRlU291cFVSSSgpOwogICAg
IEdVbmlxdWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9nZXRfY29va2llX2xp
c3QoamFyLCB1cmkuZ2V0KCksIFRSVUUpKTsKICAgICBpZiAoIWNvb2tpZXMpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdAog
ICAgIGlmICghamFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+
IHVyaShzb3VwX3VyaV9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBHVW5p
cXVlUHRyPFNvdXBVUkk+IHVyaSA9IHVybC5jcmVhdGVTb3VwVVJJKCk7CiAgICAgR1VuaXF1ZVB0
cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdChqYXIsIHVy
aS5nZXQoKSwgVFJVRSkpOwogICAgIGlmICghY29va2llcykKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAppbmRleCA3YTY3NzZlLi40NDMxZWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
ICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb3VwTmV0d29ya1Nlc3Npb24u
aCIKLSNpbmNsdWRlICJTb3VwVVJJVXRpbHMuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIK
ICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CkBAIC00NTMsNyArNDUyLDcg
QEAgc3RhdGljIHZvaWQgZG9SZWRpcmVjdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIFJl
c291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0ID0gaGFuZGxlLT5maXJzdFJlcXVlc3QoKTsKICAgICBT
b3VwTWVzc2FnZSogbWVzc2FnZSA9IGQtPm1fc291cE1lc3NhZ2UuZ2V0KCk7CiAgICAgY29uc3Qg
Y2hhciogbG9jYXRpb24gPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKG1lc3NhZ2UtPnJl
c3BvbnNlX2hlYWRlcnMsICJMb2NhdGlvbiIpOwotICAgIFVSTCBuZXdVUkwgPSBVUkwoc291cFVS
SVRvS1VSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSksIGxvY2F0aW9uKTsKKyAgICBV
UkwgbmV3VVJMID0gVVJMKFVSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSksIGxvY2F0
aW9uKTsKICAgICBib29sIGNyb3NzT3JpZ2luID0gIXByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVh
bChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLCBuZXdVUkwpOwogICAgIG5ld1JlcXVlc3Qu
c2V0VVJMKG5ld1VSTCk7CiAgICAgbmV3UmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhu
ZXdVUkwpOwpAQCAtOTkzLDcgKzk5Miw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBSZXF1ZXN0
QW5kTWVzc2FnZUZvckhhbmRsZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSCiAKICAg
ICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CiAKLSAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNvdXBV
UkkocmVxdWVzdC5zb3VwVVJJKCkpOworICAgIEdVbmlxdWVQdHI8U291cFVSST4gc291cFVSSSA9
IHJlcXVlc3QuY3JlYXRlU291cFVSSSgpOwogICAgIGlmICghc291cFVSSSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggY2YyMjZjMS4uNWRlYjA2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVl
c3QuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBSZXNvdXJjZVJlcXVlc3RfaAogI2RlZmlu
ZSBSZXNvdXJjZVJlcXVlc3RfaAogCisjaW5jbHVkZSAiR1VuaXF1ZVB0clNvdXAuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3RCYXNlLmgiCiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAK
QEAgLTg1LDcgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTb3VwTWVzc2Fn
ZUZsYWdzIHNvdXBNZXNzYWdlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NvdXBGbGFnczsgfQog
ICAgICAgICB2b2lkIHNldFNvdXBNZXNzYWdlRmxhZ3MoU291cE1lc3NhZ2VGbGFncyBzb3VwRmxh
Z3MpIHsgbV9zb3VwRmxhZ3MgPSBzb3VwRmxhZ3M7IH0KIAotICAgICAgICBTb3VwVVJJKiBzb3Vw
VVJJKCkgY29uc3Q7CisgICAgICAgIEdVbmlxdWVQdHI8U291cFVSST4gY3JlYXRlU291cFVSSSgp
IGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFJlc291cmNlUmVx
dWVzdEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5kZXggMjM1OWZkNi4uMTg5ZjVjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
UmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMjMsNyArMjMsNiBAQAogI2luY2x1ZGUgIkdV
bmlxdWVQdHJTb3VwLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiU291cFVSSVV0aWxzLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0z
MywxMSArMzIsOSBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3NhZ2VNZW1i
ZXJzKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKIHsKICAgICB1cGRhdGVTb3VwTWVz
c2FnZUhlYWRlcnMoc291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycyk7CiAKLSAgICBTdHJpbmcg
Zmlyc3RQYXJ0eVN0cmluZyA9IGZpcnN0UGFydHlGb3JDb29raWVzKCkuc3RyaW5nKCk7Ci0gICAg
aWYgKCFmaXJzdFBhcnR5U3RyaW5nLmlzRW1wdHkoKSkgewotICAgICAgICBHVW5pcXVlUHRyPFNv
dXBVUkk+IGZpcnN0UGFydHkoc291cF91cmlfbmV3KGZpcnN0UGFydHlTdHJpbmcudXRmOCgpLmRh
dGEoKSkpOworICAgIEdVbmlxdWVQdHI8U291cFVSST4gZmlyc3RQYXJ0eSA9IGZpcnN0UGFydHlG
b3JDb29raWVzKCkuY3JlYXRlU291cFVSSSgpOworICAgIGlmIChmaXJzdFBhcnR5KQogICAgICAg
ICBzb3VwX21lc3NhZ2Vfc2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlLCBmaXJzdFBhcnR5Lmdl
dCgpKTsKLSAgICB9CiAKICAgICBzb3VwX21lc3NhZ2Vfc2V0X2ZsYWdzKHNvdXBNZXNzYWdlLCBt
X3NvdXBGbGFncyk7CiAKQEAgLTcwLDcgKzY3LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVw
ZGF0ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKIHsKICAgICBn
X29iamVjdF9zZXQoc291cE1lc3NhZ2UsIFNPVVBfTUVTU0FHRV9NRVRIT0QsIGh0dHBNZXRob2Qo
KS51dGY4KCkuZGF0YSgpLCBOVUxMKTsKIAotICAgIEdVbmlxdWVQdHI8U291cFVSST4gdXJpKHNv
dXBVUkkoKSk7CisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkgPSBjcmVhdGVTb3VwVVJJKCk7
CiAgICAgc291cF9tZXNzYWdlX3NldF91cmkoc291cE1lc3NhZ2UsIHVyaS5nZXQoKSk7CiAKICAg
ICB1cGRhdGVTb3VwTWVzc2FnZU1lbWJlcnMoc291cE1lc3NhZ2UpOwpAQCAtOTMsNyArOTAsNyBA
QCBTb3VwTWVzc2FnZSogUmVzb3VyY2VSZXF1ZXN0Ojp0b1NvdXBNZXNzYWdlKCkgY29uc3QKIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNv
dXBNZXNzYWdlKQogewogICAgIGJvb2wgc2hvdWxkUG9ydEJlUmVzZXRUb1plcm8gPSBtX3VybC5o
YXNQb3J0KCkgJiYgIW1fdXJsLnBvcnQoKTsKLSAgICBtX3VybCA9IHNvdXBVUklUb0tVUkwoc291
cF9tZXNzYWdlX2dldF91cmkoc291cE1lc3NhZ2UpKTsKKyAgICBtX3VybCA9IFVSTChzb3VwX21l
c3NhZ2VfZ2V0X3VyaShzb3VwTWVzc2FnZSkpOwogCiAgICAgLy8gU291cFVSSSBjYW5ub3QgZGlm
ZmVyZW5pYXRlIGJldHdlZW4gYW4gZXhwbGljaXRseSBzcGVjaWZpZWQgcG9ydCAwIGFuZAogICAg
IC8vIG5vIHBvcnQgc3BlY2lmaWVkLgpAQCAtMTA3LDkgKzEwNCw4IEBAIHZvaWQgUmVzb3VyY2VS
ZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKQog
ICAgIGlmIChzb3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LT5kYXRhKQogICAgICAgICBtX2h0dHBC
b2R5ID0gRm9ybURhdGE6OmNyZWF0ZShzb3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LT5kYXRhLCBz
b3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LT5sZW5ndGgpOwogCi0gICAgU291cFVSSSogZmlyc3RQ
YXJ0eSA9IHNvdXBfbWVzc2FnZV9nZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UpOwotICAgIGlm
IChmaXJzdFBhcnR5KQotICAgICAgICBtX2ZpcnN0UGFydHlGb3JDb29raWVzID0gc291cFVSSVRv
S1VSTChmaXJzdFBhcnR5KTsKKyAgICBpZiAoU291cFVSSSogZmlyc3RQYXJ0eSA9IHNvdXBfbWVz
c2FnZV9nZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UpKQorICAgICAgICBtX2ZpcnN0UGFydHlG
b3JDb29raWVzID0gVVJMKGZpcnN0UGFydHkpOwogCiAgICAgbV9zb3VwRmxhZ3MgPSBzb3VwX21l
c3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlKTsKIApAQCAtMTI1LDMxICsxMjEsMTEgQEAgdW5z
aWduZWQgaW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAg
cmV0dXJuIDEwMDAwOwogfQogCi1Tb3VwVVJJKiBSZXNvdXJjZVJlcXVlc3Q6OnNvdXBVUkkoKSBj
b25zdAorR1VuaXF1ZVB0cjxTb3VwVVJJPiBSZXNvdXJjZVJlcXVlc3Q6OmNyZWF0ZVNvdXBVUkko
KSBjb25zdAogewotICAgIC8vIFdlYktpdCBkb2VzIG5vdCBzdXBwb3J0IGZyYWdtZW50IGlkZW50
aWZpZXJzIGluIGRhdGEgVVJMcywgYnV0IHNvdXAgZG9lcy4KLSAgICAvLyBCZWZvcmUgcGFzc2lu
ZyB0aGUgVVJMIHRvIHNvdXAsIHdlIHNob3VsZCBtYWtlIHN1cmUgdG8gdXJsZW5jb2RlIGFueSAn
IycKLSAgICAvLyBjaGFyYWN0ZXJzLCBzbyB0aGF0IHNvdXAgZG9lcyBub3QgaW50ZXJwcmV0IHRo
ZW0gYXMgZnJhZ21lbnQgaWRlbnRpZmllcnMuCi0gICAgLy8gU2VlIGh0dHA6Ly93a2J1Zy5jb20v
NjgwODkKLSAgICBpZiAobV91cmwucHJvdG9jb2xJc0RhdGEoKSkgewotICAgICAgICBTdHJpbmcg
dXJsU3RyaW5nID0gbV91cmwuc3RyaW5nKCk7Ci0gICAgICAgIHVybFN0cmluZy5yZXBsYWNlKCIj
IiwgIiUyMyIpOwotICAgICAgICByZXR1cm4gc291cF91cmlfbmV3KHVybFN0cmluZy51dGY4KCku
ZGF0YSgpKTsKLSAgICB9Ci0KICAgICBVUkwgdXJsID0gbV91cmw7CiAgICAgdXJsLnJlbW92ZUZy
YWdtZW50SWRlbnRpZmllcigpOwotICAgIFNvdXBVUkkqIHVyaSA9IHNvdXBfdXJpX25ldyh1cmwu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICAvLyBWZXJzaW9ucyBvZiBsaWJzb3VwIHBy
aW9yIHRvIDIuNDIgaGF2ZSBhIHNvdXBfdXJpX25ldyB0aGF0IHdpbGwgY29udmVydCBlbXB0eSBw
YXNzd29yZHMgdGhhdCBhcmUgbm90Ci0gICAgLy8gcHJlZml4ZWQgYnkgYSBjb2xvbiBpbnRvIG51
bGwuIFNvbWUgcGFydHMgb2Ygc291cCBsaWtlIHRoZSBTb3VwQXV0aGVudGljYXRpb25NYW5hZ2Vy
IHdpbGwgb25seSBiZSBhY3RpdmUKLSAgICAvLyB3aGVuIGJvdGggdGhlIHVzZXJuYW1lIGFuZCBw
YXNzd29yZCBhcmUgbm9uLW51bGwuIFdoZW4gd2UgaGF2ZSBjcmVkZW50aWFscywgZW1wdHkgdXNl
cm5hbWVzIGFuZCBwYXNzd29yZHMKLSAgICAvLyBzaG91bGQgYmUgZW1wdHkgc3RyaW5ncyBpbnN0
ZWFkIG9mIG51bGwuCi0gICAgaWYgKCF1cmwudXNlcigpLmlzRW1wdHkoKSB8fCAhdXJsLnBhc3Mo
KS5pc0VtcHR5KCkpIHsKLSAgICAgICAgc291cF91cmlfc2V0X3VzZXIodXJpLCB1cmwudXNlcigp
LnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBzb3VwX3VyaV9zZXRfcGFzc3dvcmQodXJpLCB1cmwu
cGFzcygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLSAgICByZXR1cm4gdXJpOworICAgIHJldHVy
biB1cmwuY3JlYXRlU291cFVSSSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcApp
bmRleCBlMzYyZjdiLi5jODkxYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTIz
LDcgKzIzLDYgQEAKIAogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNvdXBVUklVdGlscy5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01Nyw3ICs1Niw3IEBAIFNvdXBNZXNzYWdl
KiBSZXNvdXJjZVJlc3BvbnNlOjp0b1NvdXBNZXNzYWdlKCkgY29uc3QKIAogdm9pZCBSZXNvdXJj
ZVJlc3BvbnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdl
KQogewotICAgIG1fdXJsID0gc291cFVSSVRvS1VSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShzb3Vw
TWVzc2FnZSkpOworICAgIG1fdXJsID0gVVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBNZXNz
YWdlKSk7CiAKICAgICBtX2h0dHBTdGF0dXNDb2RlID0gc291cE1lc3NhZ2UtPnN0YXR1c19jb2Rl
OwogICAgIHNldEhUVFBTdGF0dXNUZXh0KHNvdXBNZXNzYWdlLT5yZWFzb25fcGhyYXNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRp
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGls
cy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhODkwMmEuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGlscy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAw
MTAgSWdhbGlhIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJTb3VwVVJJVXRpbHMuaCIKLQotI2luY2x1ZGUgPGxpYnNv
dXAvc291cC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi0vLyBNb3RpdmF0ZWQgYnkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM4OTU2LiBsaWJzb3VwCi0vLyBkb2VzIG5vdCBhZGQgdGhlIHBhc3N3
b3JkIHRvIHRoZSBVUkwgd2hlbiBjYWxsaW5nCi0vLyBzb3VwX3VyaV90b19zdHJpbmcsIGFuZCB0
aHVzIHRoZSByZXF1ZXN0cyBhcmUgbm90IHByb3Blcmx5Ci0vLyBidWlsdC4gRml4aW5nIHNvdXBf
dXJpX3RvX3N0cmluZyBpcyBhIG5vLW5vIGFzIHRoZSBtYWludGFpbmVyIGRvZXMKLS8vIG5vdCB3
YW50IHRvIGJyZWFrIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbnMK
LVVSTCBzb3VwVVJJVG9LVVJMKFNvdXBVUkkqIHNvdXBVUkkpCi17Ci0gICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gdXJsU3RyaW5nKHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSkpOwotICAg
IFVSTCB1cmwoVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJsU3RyaW5nLmdldCgpKSk7Ci0KLSAg
ICBpZiAoIXNvdXBVUkktPnBhc3N3b3JkKQotICAgICAgICByZXR1cm4gdXJsOwotCi0gICAgdXJs
LnNldFBhc3MoU3RyaW5nOjpmcm9tVVRGOChzb3VwVVJJLT5wYXNzd29yZCkpOwotICAgIHJldHVy
biB1cmw7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Tb3VwVVJJVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Tb3VwVVJJVXRpbHMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY2ZThk
NS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291
cFVSSVV0aWxzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTb3VwVVJJVXRpbHNfaAot
I2RlZmluZSBTb3VwVVJJVXRpbHNfaAotCi0jaW5jbHVkZSAiVVJMLmgiCi0KLXR5cGVkZWYgc3Ry
dWN0IF9Tb3VwVVJJIFNvdXBVUkk7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLVVSTCBzb3VwVVJJ
VG9LVVJMKFNvdXBVUkkqIHNvdXBVUkkpOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmJlOGUzZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3Vw
L1VSTFNvdXAuY3BwCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVVJMLmgi
CisKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVVJMOjpVUkwoU291cFVSSSogc291cFVSSSkK
K3sKKyAgICBpZiAoIXNvdXBVUkkpIHsKKyAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gdXJsU3RyaW5nKHNvdXBfdXJp
X3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSkpOworICAgIHBhcnNlKFN0cmluZzo6ZnJvbVVURjgo
dXJsU3RyaW5nLmdldCgpKSk7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIE1vdGl2YXRlZCBieSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzg5NTYuIGxpYnNvdXAKKyAgICAvLyBkb2VzIG5vdCBhZGQgdGhlIHBhc3N3b3JkIHRv
IHRoZSBVUkwgd2hlbiBjYWxsaW5nCisgICAgLy8gc291cF91cmlfdG9fc3RyaW5nLCBhbmQgdGh1
cyB0aGUgcmVxdWVzdHMgYXJlIG5vdCBwcm9wZXJseQorICAgIC8vIGJ1aWx0LiBGaXhpbmcgc291
cF91cmlfdG9fc3RyaW5nIGlzIGEgbm8tbm8gYXMgdGhlIG1haW50YWluZXIgZG9lcworICAgIC8v
IG5vdCB3YW50IHRvIGJyZWFrIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyBpbXBsZW1lbnRh
dGlvbnMKKyAgICBpZiAoc291cFVSSS0+cGFzc3dvcmQpCisgICAgICAgIHNldFBhc3MoU3RyaW5n
Ojpmcm9tVVRGOChzb3VwVVJJLT5wYXNzd29yZCkpOworfQorCitHVW5pcXVlUHRyPFNvdXBVUkk+
IFVSTDo6Y3JlYXRlU291cFVSSSgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgLy8gV2ViS2l0IGRvZXMgbm90IHN1cHBvcnQgZnJh
Z21lbnQgaWRlbnRpZmllcnMgaW4gZGF0YSBVUkxzLCBidXQgc291cCBkb2VzLgorICAgIC8vIEJl
Zm9yZSBwYXNzaW5nIHRoZSBVUkwgdG8gc291cCwgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0byB1cmxl
bmNvZGUgYW55ICcjJworICAgIC8vIGNoYXJhY3RlcnMsIHNvIHRoYXQgc291cCBkb2VzIG5vdCBp
bnRlcnByZXQgdGhlbSBhcyBmcmFnbWVudCBpZGVudGlmaWVycy4KKyAgICAvLyBTZWUgaHR0cDov
L3drYnVnLmNvbS82ODA4OQorICAgIGlmIChwcm90b2NvbElzRGF0YSgpKSB7CisgICAgICAgIFN0
cmluZyB1cmxTdHJpbmcgPSBzdHJpbmcoKTsKKyAgICAgICAgdXJsU3RyaW5nLnJlcGxhY2UoIiMi
LCAiJTIzIik7CisgICAgICAgIHJldHVybiBHVW5pcXVlUHRyPFNvdXBVUkk+KHNvdXBfdXJpX25l
dyh1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSkpOworICAgIH0KKworICAgIEdVbmlxdWVQdHI8U291
cFVSST4gc291cFVSSShzb3VwX3VyaV9uZXcoc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworCisg
ICAgLy8gVmVyc2lvbnMgb2YgbGlic291cCBwcmlvciB0byAyLjQyIGhhdmUgYSBzb3VwX3VyaV9u
ZXcgdGhhdCB3aWxsIGNvbnZlcnQgZW1wdHkgcGFzc3dvcmRzIHRoYXQgYXJlIG5vdAorICAgIC8v
IHByZWZpeGVkIGJ5IGEgY29sb24gaW50byBudWxsLiBTb21lIHBhcnRzIG9mIHNvdXAgbGlrZSB0
aGUgU291cEF1dGhlbnRpY2F0aW9uTWFuYWdlciB3aWxsIG9ubHkgYmUgYWN0aXZlCisgICAgLy8g
d2hlbiBib3RoIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIG5vbi1udWxsLiBXaGVuIHdl
IGhhdmUgY3JlZGVudGlhbHMsIGVtcHR5IHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzCisgICAgLy8g
c2hvdWxkIGJlIGVtcHR5IHN0cmluZ3MgaW5zdGVhZCBvZiBudWxsLgorICAgIFN0cmluZyB1cmxV
c2VyID0gdXNlcigpOworICAgIFN0cmluZyB1cmxQYXNzID0gcGFzcygpOworICAgIGlmICghdXJs
VXNlci5pc0VtcHR5KCkgfHwgIXVybFBhc3MuaXNFbXB0eSgpKSB7CisgICAgICAgIHNvdXBfdXJp
X3NldF91c2VyKHNvdXBVUkkuZ2V0KCksIHVybFVzZXIudXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IHNvdXBfdXJpX3NldF9wYXNzd29yZChzb3VwVVJJLmdldCgpLCB1cmxQYXNzLnV0ZjgoKS5kYXRh
KCkpOworICAgIH0KKworICAgIHJldHVybiBzb3VwVVJJOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggZjU3NTFjNi4uOTY5YTk4MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTAxLTIzICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gUmVtb3ZlIHNv
dXBVUklUb0tVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzEwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbTogQWRkIHNvdXAgY3BwZmxhZ3MgdG8g
V2ViQ29yZSB1bml0CisgICAgICAgIHRlc3RzLCBiZWNhdXNlIFVSTC5oIG5vdyBpbmNsdWRlcyBH
VW5pcXVlUHRyU291cC5oLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQ6
IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1FZmwuY21ha2U6IEFk
ZCBzb3VwIGNwcGZsYWdzIHRvIFdUUiwKKyAgICAgICAgYmVjYXVzZSBVUkwuaCBub3cgaW5jbHVk
ZXMgR1VuaXF1ZVB0clNvdXAuaC4KKwogMjAxNC0wMS0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBkZXByZWNhdGVkQ2hhcmFjdGVycyBpbnN0ZWFkIG9m
IGNoYXJhY3RlcnMgYXQgbW9yZSBjYWxsIHNpdGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4
dAppbmRleCAyYjdlYWUxLi45ZWQ0ODg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQK
QEAgLTE1LDYgKzE1LDcgQEAgaW5jbHVkZV9kaXJlY3Rvcmllcygke0NNQUtFX0JJTkFSWV9ESVJ9
CiAgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MKICAgICAke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS90ZXh0CiAgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yaworICAg
ICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cAogICAgICR7V0VCS0lUMl9ESVJ9
L1BsYXRmb3JtL0lQQwogICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZAogICAgICR7V0VCS0lUMl9E
SVJ9L1NoYXJlZC9BUEkvYwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtl
ZmlsZS5hbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0KaW5kZXggM2QzMGMy
YS4uY2M0MTVhMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5h
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCkBAIC0yODQsNyArMjg0
LDkgQEAgRElTVENMRUFORklMRVMgKz0gXAogCiBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1dlYkNv
cmVfVGVzdFdlYkNvcmVfQ1BQRkxBR1MgPSBcCiAJJChMaWJyYXJpZXNfbGliVGVzdFdlYktpdEFQ
SU1haW5fbGFfQ1BQRkxBR1MpIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL2luY2x1ZGUKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvaW5j
bHVkZSBcCisJJChMSUJTT1VQX0NGTEFHUykKIAogUHJvZ3JhbXNfVGVzdFdlYktpdEFQSV9XZWJD
b3JlX1Rlc3RXZWJDb3JlX0NYWEZMQUdTID0gXAogCS1ER1RFU1RfSEFTX1JUVEk9MCBcCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRWZsLmNtYWtlIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmYmFhZmRlLi5iNmYxZGZj
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRWZsLmNtYWtlCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTIzLDYgKzIz
LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9JTkNMVURFX0RJUkVDVE9SSUVTCiAg
ICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2VmbC8KICAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL2VmbAogICAgICIke1dURl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAgICR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cAogICAgICR7Q0FJUk9fSU5DTFVERV9ESVJT
fQogICAgICR7RUNPUkVfRVZBU19JTkNMVURFX0RJUlN9CiAgICAgJHtFQ09SRV9GSUxFX0lOQ0xV
REVfRElSU30K
</data>
<flag name="review"
          id="246249"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>