<?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>55086</bug_id>
          
          <creation_ts>2011-02-23 14:49:50 -0800</creation_ts>
          <short_desc>WebKit2: Need a way to manage cookies from the web process</short_desc>
          <delta_ts>2011-02-25 17:15:44 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>beidson</cc>
    
    <cc>eric</cc>
    
    <cc>jberlin</cc>
    
    <cc>sam</cc>
    
    <cc>shaun.keller</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>356439</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-23 14:49:50 -0800</bug_when>
    <thetext>We need a way to manage cookies from the Web Process in WebKit2.

We need to be able to:
1) Get a list of origins that have cookies.
2) Remove all cookies for a given origin.
3) Remove all cookies.

&lt;rdar://problem/8971738&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356443</commentid>
    <comment_count>1</comment_count>
      <attachid>83553</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-23 14:52:00 -0800</bug_when>
    <thetext>Created attachment 83553
[PATCH] Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356448</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-23 14:56:26 -0800</bug_when>
    <thetext>Attachment 83553 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/UIProcess/WebCookieManagerProxy.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/WebProcess/Cookies/WebCookieManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 28 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>356458</commentid>
    <comment_count>3</comment_count>
      <attachid>83553</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-23 15:07:11 -0800</bug_when>
    <thetext>Comment on attachment 83553
[PATCH] Fix

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

You should probably let the EWS chew on this a bit. Looks nice!

&gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:63
&gt; +    if (!m_webContext-&gt;hasValidProcess()) {

Seems like you need to null-check m_webContext here and everywhere else you use it, since clearContext could have been called. Or, if it couldn&apos;t have been called, you should assert that m_webContext is non-null.

&gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:79
&gt; +void WebCookieManagerProxy::deleteCookiesForOrigin(WebSecurityOrigin* origin)

Can that be a const WebSecurityOrigin*?

&gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.h:35
&gt; +#include &quot;APIObject.h&quot;
&gt; +#include &quot;GenericCallback.h&quot;
&gt; +#include &quot;ImmutableArray.h&quot;
&gt; +
&gt; +#include &lt;wtf/PassRefPtr.h&gt;
&gt; +#include &lt;wtf/RefPtr.h&gt;
&gt; +#include &lt;wtf/Vector.h&gt;

We don&apos;t normally separate #includes like this.

&gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.h:47
&gt; +struct SecurityOriginData;
&gt; +class WebContext;
&gt; +class WebSecurityOrigin;

I personally like to put struct and class declarations in separate paragraphs, but I don&apos;t know if that&apos;s our prevailing style.

&gt; Source/WebKit2/UIProcess/API/C/WKCookieManager.cpp:52
&gt; +void WKCookieManagerGetCookieOrigins(WKCookieManagerRef cookieManagerRef, void* context, WKCookieManagerGetCookieOriginsFunction callback)
&gt; +{
&gt; +    toImpl(cookieManagerRef)-&gt;getCookieOrigins(ArrayCallback::create(context, callback));
&gt; +}
&gt; +
&gt; +void WKCookieManagerDeleteCookiesForOrigin(WKCookieManagerRef cookieManagerRef, WKSecurityOriginRef originRef)
&gt; +{
&gt; +    toImpl(cookieManagerRef)-&gt;deleteCookiesForOrigin(toImpl(originRef));
&gt; +}
&gt; +
&gt; +void WKCookieManagerDeleteAllCookies(WKCookieManagerRef cookieManagerRef)
&gt; +{
&gt; +    toImpl(cookieManagerRef)-&gt;deleteAllCookies();
&gt; +}

I don&apos;t really see the point of all the &quot;Ref&quot; suffixes, though I know that&apos;s what we do elsewhere.

&gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:42
&gt; +    static WebCookieManager&amp; shared = *new WebCookieManager;

DEFINE_STATIC_LOCAL would be better.

&gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:59
&gt; +    // FIXME &lt;rdar://problem/8971738&gt;: Implement.

Huh? This function looks pretty implemented to the uninitiated. You should say what is still missing here.

&gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:65
&gt; +    HashSet&lt;RefPtr&lt;SecurityOrigin&gt;, SecurityOriginHash&gt;::iterator i = origins.begin();

It&apos;s weird to use &quot;i&quot; as the name of an iterator. We normally use &quot;it&quot;.

&gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:67
&gt; +        RefPtr&lt;SecurityOrigin&gt; origin = *i;

This could be a const RefPtr&amp; to save an extra ref/deref.

&gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:74
&gt; +        SecurityOriginData originData;
&gt; +        originData.protocol = origin-&gt;protocol();
&gt; +        originData.host = origin-&gt;host();
&gt; +        originData.port = origin-&gt;port();
&gt; +
&gt; +        identifiers.uncheckedAppend(originData);

If we had a SecurityOriginData constructor that took a single const RefPtr&lt;SecurityOrigin&gt;&amp; argument, you could just use copyKeysToVector instead of writing this loop manually. Such a constructor would need to be marked &quot;explicit&quot;, and would probably warrant a comment about why we have it (since we would normally just take a bare SecurityOrigin*). You might want to post a new patch if you do this, or do it separately.

&gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:82
&gt; +    // FIXME &lt;rdar://problem/8971738&gt;: Implement.

A notImplemented() call would be nice. It would also be nice if we had a Bugzilla bug to reference instead of a silly private Radar.

&gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:87
&gt; +    // FIXME &lt;rdar://problem/8971738&gt;: Implement.

Ditto.

&gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.h:45
&gt; +    WTF_MAKE_NONCOPYABLE(WebCookieManager);
&gt; +
&gt; +public:

No need for the blank line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356475</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-23 15:16:40 -0800</bug_when>
    <thetext>I&apos;m going to send out a new patch that addresses these comments + switches the passing of cookies across the wire to use hostnames instead of SecurityOrigins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356523</commentid>
    <comment_count>5</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-23 16:15:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 83553 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83553&amp;action=review
&gt; 
&gt; You should probably let the EWS chew on this a bit. Looks nice!
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:63
&gt; &gt; +    if (!m_webContext-&gt;hasValidProcess()) {
&gt; 
&gt; Seems like you need to null-check m_webContext here and everywhere else you use it, since clearContext could have been called. Or, if it couldn&apos;t have been called, you should assert that m_webContext is non-null.

Added ASSERTS. We have this code style a lot, and asserts are valuable here, because if we hit an assert here (which I doubt), it would be useful information to have.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:79
&gt; &gt; +void WebCookieManagerProxy::deleteCookiesForOrigin(WebSecurityOrigin* origin)
&gt; 
&gt; Can that be a const WebSecurityOrigin*?

Made it a string.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.h:35
&gt; &gt; +#include &quot;APIObject.h&quot;
&gt; &gt; +#include &quot;GenericCallback.h&quot;
&gt; &gt; +#include &quot;ImmutableArray.h&quot;
&gt; &gt; +
&gt; &gt; +#include &lt;wtf/PassRefPtr.h&gt;
&gt; &gt; +#include &lt;wtf/RefPtr.h&gt;
&gt; &gt; +#include &lt;wtf/Vector.h&gt;
&gt; 
&gt; We don&apos;t normally separate #includes like this.

Fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.h:47
&gt; &gt; +struct SecurityOriginData;
&gt; &gt; +class WebContext;
&gt; &gt; +class WebSecurityOrigin;
&gt; 
&gt; I personally like to put struct and class declarations in separate paragraphs, but I don&apos;t know if that&apos;s our prevailing style.

Removed the SecurityOrigin information.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKCookieManager.cpp:52
&gt; &gt; +void WKCookieManagerGetCookieOrigins(WKCookieManagerRef cookieManagerRef, void* context, WKCookieManagerGetCookieOriginsFunction callback)
&gt; &gt; +{
&gt; &gt; +    toImpl(cookieManagerRef)-&gt;getCookieOrigins(ArrayCallback::create(context, callback));
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void WKCookieManagerDeleteCookiesForOrigin(WKCookieManagerRef cookieManagerRef, WKSecurityOriginRef originRef)
&gt; &gt; +{
&gt; &gt; +    toImpl(cookieManagerRef)-&gt;deleteCookiesForOrigin(toImpl(originRef));
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void WKCookieManagerDeleteAllCookies(WKCookieManagerRef cookieManagerRef)
&gt; &gt; +{
&gt; &gt; +    toImpl(cookieManagerRef)-&gt;deleteAllCookies();
&gt; &gt; +}
&gt; 
&gt; I don&apos;t really see the point of all the &quot;Ref&quot; suffixes, though I know that&apos;s what we do elsewhere.

I&apos;ll keep it like this for now.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:42
&gt; &gt; +    static WebCookieManager&amp; shared = *new WebCookieManager;
&gt; 
&gt; DEFINE_STATIC_LOCAL would be better.

Fixed.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:59
&gt; &gt; +    // FIXME &lt;rdar://problem/8971738&gt;: Implement.
&gt; 
&gt; Huh? This function looks pretty implemented to the uninitiated. You should say what is still missing here.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:65
&gt; &gt; +    HashSet&lt;RefPtr&lt;SecurityOrigin&gt;, SecurityOriginHash&gt;::iterator i = origins.begin();
&gt; 
&gt; It&apos;s weird to use &quot;i&quot; as the name of an iterator. We normally use &quot;it&quot;.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:67
&gt; &gt; +        RefPtr&lt;SecurityOrigin&gt; origin = *i;
&gt; 
&gt; This could be a const RefPtr&amp; to save an extra ref/deref.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:74
&gt; &gt; +        SecurityOriginData originData;
&gt; &gt; +        originData.protocol = origin-&gt;protocol();
&gt; &gt; +        originData.host = origin-&gt;host();
&gt; &gt; +        originData.port = origin-&gt;port();
&gt; &gt; +
&gt; &gt; +        identifiers.uncheckedAppend(originData);
&gt; 
&gt; If we had a SecurityOriginData constructor that took a single const RefPtr&lt;SecurityOrigin&gt;&amp; argument, you could just use copyKeysToVector instead of writing this loop manually. Such a constructor would need to be marked &quot;explicit&quot;, and would probably warrant a comment about why we have it (since we would normally just take a bare SecurityOrigin*). You might want to post a new patch if you do this, or do it separately.


I cleaned this all up since I am using Strings, now it is just copyKeysToVector.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:82
&gt; &gt; +    // FIXME &lt;rdar://problem/8971738&gt;: Implement.
&gt; 
&gt; A notImplemented() call would be nice. It would also be nice if we had a Bugzilla bug to reference instead of a silly private Radar.

Fixed.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:87
&gt; &gt; +    // FIXME &lt;rdar://problem/8971738&gt;: Implement.
&gt; 
&gt; Ditto.

Ditto.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Cookies/WebCookieManager.h:45
&gt; &gt; +    WTF_MAKE_NONCOPYABLE(WebCookieManager);
&gt; &gt; +
&gt; &gt; +public:
&gt; 
&gt; No need for the blank line here.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356537</commentid>
    <comment_count>6</comment_count>
      <attachid>83575</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-23 16:35:12 -0800</bug_when>
    <thetext>Created attachment 83575
[PATCH] Fix v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356542</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-23 16:38:42 -0800</bug_when>
    <thetext>Attachment 83575 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/UIProcess/WebCookieManagerProxy.h:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/WebProcess/Cookies/WebCookieManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 28 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>356548</commentid>
    <comment_count>8</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-02-23 16:45:58 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=83575) [details]
&gt; [PATCH] Fix v2

I am not thrilled with getCookieHostnames. It implies that it is getting the hostnames for a single cookie. Maybe something like &quot;getHostnamesWithCookies&quot; would be better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356550</commentid>
    <comment_count>9</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-23 16:50:12 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; Created an attachment (id=83575) [details] [details]
&gt; &gt; [PATCH] Fix v2
&gt; 
&gt; I am not thrilled with getCookieHostnames. It implies that it is getting the hostnames for a single cookie. Maybe something like &quot;getHostnamesWithCookies&quot; would be better?

Sure, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356566</commentid>
    <comment_count>10</comment_count>
      <attachid>83585</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-23 17:03:12 -0800</bug_when>
    <thetext>Created attachment 83585
[PATCH] Fix v3 (Renaming)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356571</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-23 17:06:28 -0800</bug_when>
    <thetext>Attachment 83585 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/UIProcess/WebCookieManagerProxy.h:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/WebProcess/Cookies/WebCookieManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 28 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>356923</commentid>
    <comment_count>12</comment_count>
      <attachid>83585</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-24 06:04:14 -0800</bug_when>
    <thetext>Comment on attachment 83585
[PATCH] Fix v3 (Renaming)

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

Looks great. Maybe Jessie should take a look before you land, since she caught the origin vs. hostname issue earlier.

&gt; Source/WebKit2/ChangeLog:56
&gt; +        (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): Call through to the web process to get origins with cookies.

s/origins/hostnames/

&gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:79
&gt; +        // FIXME: Log error or assert.

Why leave this as a FIXME? Why not just do it?

&gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:88
&gt; +    Vector&lt;RefPtr&lt;APIObject&gt; &gt; hostnames;
&gt; +    hostnames.reserveCapacity(hostnameCount);
&gt; +
&gt; +    for (size_t i = 0; i &lt; hostnameCount; ++i)
&gt; +        hostnames.uncheckedAppend(WebString::create(hostnameList[i]));

Another nearly-equivalent option is:

Vector&lt;RefPtr&lt;APIObject&gt; &gt; hostnames(hostnameCount);
for (size_t i = 0; i &lt; hostnameCount; ++i)
    hostnames[i] = WebString::create(hostnameList[i]);

I think that would be ever-so-slightly clearer. Maybe ever-so-slightly more efficient, too.

&gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.h:59
&gt; +    void deleteCookiesForHostname(String hostname);

Should be a const String&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357085</commentid>
    <comment_count>13</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-24 09:22:23 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 83585 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83585&amp;action=review
&gt; 
&gt; Looks great. Maybe Jessie should take a look before you land, since she caught the origin vs. hostname issue earlier.
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:56
&gt; &gt; +        (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): Call through to the web process to get origins with cookies.
&gt; 
&gt; s/origins/hostnames/
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:79
&gt; &gt; +        // FIXME: Log error or assert.
&gt; 
&gt; Why leave this as a FIXME? Why not just do it?

This FIXME has been in a lot of places, and I&apos;m not sure what kind of logging or asserting should be there. I will follow-up with Sam or Anders and ask then what we should do there, and fix all of the FIXMEs.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:88
&gt; &gt; +    Vector&lt;RefPtr&lt;APIObject&gt; &gt; hostnames;
&gt; &gt; +    hostnames.reserveCapacity(hostnameCount);
&gt; &gt; +
&gt; &gt; +    for (size_t i = 0; i &lt; hostnameCount; ++i)
&gt; &gt; +        hostnames.uncheckedAppend(WebString::create(hostnameList[i]));
&gt; 
&gt; Another nearly-equivalent option is:
&gt; 
&gt; Vector&lt;RefPtr&lt;APIObject&gt; &gt; hostnames(hostnameCount);
&gt; for (size_t i = 0; i &lt; hostnameCount; ++i)
&gt;     hostnames[i] = WebString::create(hostnameList[i]);
&gt; 
&gt; I think that would be ever-so-slightly clearer. Maybe ever-so-slightly more efficient, too.

When I had the uncheckedAppend, it was using SecurityOrigins which had the possibility of being null. With strings that doesn&apos;t make much sense. Fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebCookieManagerProxy.h:59
&gt; &gt; +    void deleteCookiesForHostname(String hostname);
&gt; 
&gt; Should be a const String&amp;.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357103</commentid>
    <comment_count>14</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-02-24 09:36:07 -0800</bug_when>
    <thetext>The latest patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357129</commentid>
    <comment_count>15</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-24 10:03:36 -0800</bug_when>
    <thetext>Landed WebCookieManager (that doesn&apos;t do anything yet) in r79585. More functionality will be added to it as part of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358098</commentid>
    <comment_count>16</comment_count>
      <attachid>83859</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-25 11:50:49 -0800</bug_when>
    <thetext>Created attachment 83859
[PATCH] Cookie Managing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358108</commentid>
    <comment_count>17</comment_count>
      <attachid>83859</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-02-25 12:08:23 -0800</bug_when>
    <thetext>Comment on attachment 83859
[PATCH] Cookie Managing

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

&gt; Source/WebCore/platform/mac/CookieJar.mm:218
&gt; +    

Did you mean to implement this?

&gt; Source/WebCore/platform/network/cf/CookieJarCFNet.cpp:243
&gt; +    CFIndex count = cookiesCF ? CFArrayGetCount(cookiesCF.get()) : 0;

I think it is better to have an early return here if !cookiesCF

&gt; Source/WebCore/platform/network/cf/CookieJarCFNet.cpp:258
&gt; +    CFIndex count = cookiesCF ? CFArrayGetCount(cookiesCF.get()) : 0;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358109</commentid>
    <comment_count>18</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-02-25 12:09:20 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 83859 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83859&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mac/CookieJar.mm:218
&gt; &gt; +    
&gt; 
&gt; Did you mean to implement this?
&gt; 
&gt; &gt; Source/WebCore/platform/network/cf/CookieJarCFNet.cpp:243
&gt; &gt; +    CFIndex count = cookiesCF ? CFArrayGetCount(cookiesCF.get()) : 0;
&gt; 
&gt; I think it is better to have an early return here if !cookiesCF
&gt; 
&gt; &gt; Source/WebCore/platform/network/cf/CookieJarCFNet.cpp:258
&gt; &gt; +    CFIndex count = cookiesCF ? CFArrayGetCount(cookiesCF.get()) : 0;
&gt; 
&gt; Ditto.

Note: I don&apos;t have review privileges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358112</commentid>
    <comment_count>19</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-25 12:11:32 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 83859 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83859&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mac/CookieJar.mm:218
&gt; &gt; +    
&gt; 
&gt; Did you mean to implement this?

I did. Oops.

&gt; 
&gt; &gt; Source/WebCore/platform/network/cf/CookieJarCFNet.cpp:243
&gt; &gt; +    CFIndex count = cookiesCF ? CFArrayGetCount(cookiesCF.get()) : 0;
&gt; 
&gt; I think it is better to have an early return here if !cookiesCF

I agree. Fixed.

&gt; 
&gt; &gt; Source/WebCore/platform/network/cf/CookieJarCFNet.cpp:258
&gt; &gt; +    CFIndex count = cookiesCF ? CFArrayGetCount(cookiesCF.get()) : 0;
&gt; 
&gt; Ditto.

Fixed.

New patch coming soon!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358128</commentid>
    <comment_count>20</comment_count>
      <attachid>83863</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-25 12:50:45 -0800</bug_when>
    <thetext>Created attachment 83863
[PATCH] Cookie Managing v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358130</commentid>
    <comment_count>21</comment_count>
      <attachid>83863</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-02-25 12:55:42 -0800</bug_when>
    <thetext>Comment on attachment 83863
[PATCH] Cookie Managing v2

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

Looks good to me overall. Again, I don&apos;t have review privileges.

&gt; Source/WebCore/ChangeLog:12
&gt; +        No change in behavior.

It took me a moment to realize this referred to not needing new tests. You should mention tests here, maybe something like &quot;No change in behavior needing tests&quot;.

You probably could write WebKit2 API tests for this. Maybe file a bug about adding those tests?

&gt; Source/WebCore/platform/mac/CookieJar.mm:222
&gt; +    

Extra space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358139</commentid>
    <comment_count>22</comment_count>
      <attachid>83863</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-25 13:13:53 -0800</bug_when>
    <thetext>Comment on attachment 83863
[PATCH] Cookie Managing v2

r+ but fix the space Jessie mentioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358146</commentid>
    <comment_count>23</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-25 13:23:32 -0800</bug_when>
    <thetext>Landed the rest in r79722.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358291</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-25 17:15:44 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/79722 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83553</attachid>
            <date>2011-02-23 14:52:00 -0800</date>
            <delta_ts>2011-02-23 16:35:12 -0800</delta_ts>
            <desc>[PATCH] Fix</desc>
            <filename>cookie_manager.patch</filename>
            <type>text/plain</type>
            <size>64582</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDkwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODAgQEAKKzIwMTEtMDItMjMgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgV2ViS2l0MjogTmVlZCBhIHdheSB0byBt
YW5hZ2UgY29va2llcyBmcm9tIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUwODYKKyAgICAgICAgCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyB0aGUgcGx1bWJpbmcgYW5kIGNsYXNzZXMgdGhhdCBhcmUgbmVlZGVkIHRvIG1h
bmFnZSBjb29raWVzIGZyb20gdGhlIHdlYiBwcm9jZXNzLgorICAgICAgICBUaGUgZnVuY3Rpb25z
IHRoYXQgdGhlIEFQSSBjYWxscyBhcmUgY3VycmVudGx5IHN0dWJzLCBidXQgd2lsbCBiZSBpbXBs
ZW1lbnRlZCBpbiBhIGZvbGxvdy11cCBwYXRjaC4KKworICAgICAgICBQcm9qZWN0IGZpbGUgY2hh
bmdlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLnBybzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJLaXQy
LnByaToKKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorICAgICAg
ICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6CisgICAgICAgICogd2luL1dlYktpdDJHZW5l
cmF0ZWQubWFrZToKKworICAgICAgICBBZGQgc29tZSBuZWVkZWQgcGx1bWJpbmcgZm9yIFdlYkNv
b2tpZU1hbmFnZXJ7UHJveHl9LgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlE
Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9B
UElPYmplY3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4
dEdldENvb2tpZU1hbmFnZXIpOiBHZXRzIHRoZSBjb29raWUgbWFuYWdlciBwcm94eS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29va2llTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tDb29raWVNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlckdldENvb2tpZU9yaWdpbnMpOiBD
YWxscyB0aHJvdWdoIHRvIFdlYkNvb2tpZU1hbmFnZXJQcm94eS4KKyAgICAgICAgKFdLQ29va2ll
TWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JPcmlnaW4pOiBEaXR0by4KKyAgICAgICAgKFdLQ29va2ll
TWFuYWdlckRlbGV0ZUFsbENvb2tpZXMpOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tDb29raWVNYW5hZ2VyLmg6IEFkZGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOiBBZGQgYSBjYXNlIGZvciB0aGUgY29va2llIG1hbmFnZXIuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
OjpXZWJDb250ZXh0KTogSW5pdGlhbGl6ZSB0aGUgY29va2llIG1hbmFnZXIuCisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KTogSW52YWxpZGF0ZSB0aGUgY29va2llIG1h
bmFnZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpc2Nvbm5lY3RQcm9jZXNzKTog
RGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKTog
QWRkIGEgY2FzZSBmb3IgdGhlIGNvb2tpZSBtYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNvb2tpZU1hbmFnZXJQ
cm94eSk6IFJldHVybnMgdGhlIGNvb2tpZSBtYW5hZ2VyLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVN
ZXNzYWdlKTogQWRkIGEgY2FzZSBmb3IgdGhlIGNvb2tpZSBtYW5hZ2VyLgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5Ojp+V2ViQ29va2llTWFuYWdlclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6IAor
ICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldENvb2tpZU9yaWdpbnMp
OiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGdldCBvcmlnaW5zIHdpdGggY29v
a2llcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRDb29r
aWVPcmlnaW5zKTogQ2FsbCB0aGUgY2FsbGJhY2sgd2Ugd2VyZSBwYXNzZWQgaW4gZ2V0Q29va2ll
T3JpZ2lucy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVD
b29raWVzRm9yT3JpZ2luKTogQ2FsbCB0aHJvdWdoIHRvIHRoZSB3ZWIgcHJvY2VzcyB0byBkZWxl
dGUgY29va2llcworICAgICAgICAgICAgZm9yIHRoZSBvcmlnaW4uCisgICAgICAgIChXZWJLaXQ6
OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcyk6IENhbGwgdGhyb3VnaCB0
byB0aGUgd2ViIHByb2Nlc3MgdG8gZGVsZXRlIGFsbCBjb29raWVzLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29va2llTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
Q29va2llczogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6c2hh
cmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KTogQ2FsbCB0aHJvdWdoIHRvIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6Z2V0Q29va2llT3JpZ2lucyk6IEJ1aWxk
IGFuIGFycmF5IGZyb20gYSBIYXNoU2V0ICh0aGF0IGlzbid0IGZpbGxlZCB5ZXQpLCBhbmQgCisg
ICAgICAgICAgICBjb252ZXJ0IHRoYXQgSGFzaFNldCB0byBhIFZlY3RvciB0byBzZW5kIHRvIHRo
ZSBVSSBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVD
b29raWVzRm9yT3JpZ2luKTogQWRkZWQgYSBzdHViLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorCiAyMDExLTAy
LTIzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQko
cmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0Mikv
U2hhcmVkL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNh
Y2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAorICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9Db29raWVzIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCkBAIC00OCw2ICs0OSw4IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb3h5IFwKICAgICBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlciBcCiAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSBcCisg
ICAgV2ViQ29va2llTWFuYWdlciBcCisgICAgV2ViQ29va2llTWFuYWdlclByb3h5IFwKICAgICBX
ZWJDb250ZXh0IFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXIgXAogICAgIFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5IFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8JKHJldmlzaW9uIDc5
NDcyKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCSh3b3JraW5nIGNvcHkp
CkBAIC03Nyw2ICs3Nyw3IEBAIFZQQVRIID0gXAogICAgIFBsdWdpblByb2Nlc3MgXAogICAgIFdl
YlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
biBcCisgICAgV2ViUHJvY2Vzcy9Db29raWVzIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9u
IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSBcCkBAIC05NSw2ICs5Niw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgUGx1Z2luUHJveHkubWVzc2FnZXMuaW4gXAog
ICAgIFdlYkNvbnRleHQubWVzc2FnZXMuaW4gXAorICAgIFdlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gXAorICAgIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2Vi
RGF0YWJhc2VNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluIFwK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIGxpYldl
YktpdDJfbGFfSEVBREVSUyA9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tG
b3J3YXJkTGlzdEl0ZW0uaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCisJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmggXAogCSQoV2ViS2l0
MikvVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vz
cy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBlcy5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkv
Qy9XS0RhdGFiYXNlTWFuYWdlci5oIFwKQEAgLTI5Nyw2ICsyOTgsOCBAQCBsaWJXZWJLaXQyX2xh
X1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCisJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ3JlZGVudGlhbFR5cGVzLmggXApAQCAtMzk5LDYgKzQwMiw4IEBAIGxpYldlYktp
dDJfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dE1l
bnVQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVBy
b3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3NhZ2VD
b2RlcnMuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5Q2xp
ZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5Q2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eS5jcHAgXApAQCAtNDU2LDYgKzQ2MSw4IEBAIGxpYldlYktpdDJfbGFfU09VUkNFUyA9
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAorCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggXAorCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvY3VybC9Eb3dubG9hZEN1cmwuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmggXApAQCAtNjU4LDYg
KzY2NSw3IEBAIGxpYldlYktpdDJfbGFfQ1BQRkxBR1MgPSBcCiAJLUkkKHNyY2RpcikvU291cmNl
L1dlYktpdDIvV2ViUHJvY2VzcyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0Nvb2tpZXMgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RG93bmxvYWRzIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ayBcCkBA
IC04MTMsNiArODIxLDEwIEBAIHdlYmtpdDJfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb250ZXh0TWVzc2FnZXMuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEYXRhYmFzZU1hbmFn
ZXJNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRhdGFiYXNlTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC04NjEsNiArODczLDcgQEAgdnBhdGggJS5t
ZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MgXAogCSQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0aGVu
dGljYXRpb24gXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Db29raWVzIFwKIAkkKFdlYktpdDIp
L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5z
IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
LnByaQkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBXRUJLSVQyX0lOQ0xVREVQQVRIID0gXAogICAg
ICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MgXAogICAgICQkU09VUkNFX0RJUi9XZWJL
aXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktp
dDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIv
V2ViUHJvY2Vzcy9Db29raWVzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Rvd25sb2FkcyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvcXQgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24g
XApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIv
V2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDggQEAgV0VCS0lUMl9HRU5F
UkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2Fn
ZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb29raWVNYW5h
Z2VyTWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJD
b29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NP
VVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwK
ICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkdlb2xvY2F0aW9uTWFuYWdl
ck1lc3NhZ2VzLmggXApAQCAtNTksNiArNjEsOCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
ID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVE
X1NPVVJDRVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkNvbnRleHRN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBcCkBAIC0xNjUsNiArMTY5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQ
cm9jZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3Mv
V2ViQ29udGV4dE1lbnVQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJNZXNz
YWdlQ29kZXJzLmggXAorICAgIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBcCiAg
ICAgVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9X
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViRG93bmxv
YWRDbGllbnQuaCBcCkBAIC0xOTUsNiArMjAwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9j
ZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuaCBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlv
bkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIFwKICAg
ICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmggXApAQCAtMzM3LDYgKzM0Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNs
aWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBcCisgICAg
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJE
YXRhYmFzZU1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJEb3dubG9hZENsaWVudC5jcHAg
XApAQCAtMzc1LDYgKzM4Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQ
cmVmZXJlbmNlc1F0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIFwKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNw
cCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBcCiAgICAg
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAgXApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJ
RC5oCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAgZW51bSBNZXNzYWdl
Q2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhTGVnYWN5LAogICAgIE1lc3NhZ2VD
bGFzc0luamVjdGVkQnVuZGxlLAogICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyLAorICAgIE1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNs
YXNzV2ViRGF0YWJhc2VNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkluc3BlY3RvciwKQEAgLTU0LDYgKzU1LDcg
QEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4dCwKICAgICBNZXNzYWdl
Q2xhc3NXZWJDb250ZXh0TGVnYWN5LAorICAgIE1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1hbmFnZXJQ
cm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwKICAgICBNZXNz
YWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViSW5zcGVj
dG9yUHJveHksCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShyZXZpc2lvbiA3OTQ3
MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExpc3RJdGVt
LAogICAgICAgICBUeXBlQ2FjaGVNYW5hZ2VyLAogICAgICAgICBUeXBlQ29udGV4dCwKKyAgICAg
ICAgVHlwZUNvb2tpZU1hbmFnZXIsCiAgICAgICAgIFR5cGVEYXRhYmFzZU1hbmFnZXIsCiAgICAg
ICAgIFR5cGVEb3dubG9hZCwKICAgICAgICAgVHlwZUZvcm1TdWJtaXNzaW9uTGlzdGVuZXIsCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCShyZXZpc2lvbiA3OTQ3MikKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAt
NzQsNiArNzQsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkCiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkTGlzdEl0ZW0qIFdLQmFja0Zv
cndhcmRMaXN0SXRlbVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUmVzb3VyY2VD
YWNoZU1hbmFnZXIqIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS0NvbnRleHQqIFdLQ29udGV4dFJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLQ29va2llTWFuYWdlciogV0tDb29raWVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tDcmVkZW50aWFsKiBXS0NyZWRlbnRpYWxSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0RhdGFiYXNlTWFuYWdlciogV0tEYXRhYmFzZU1hbmFnZXJSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Rvd25sb2FkKiBXS0Rvd25sb2FkUmVmOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gNzk0
NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oIgogI2luY2x1
ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1h
bmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkuaCIKQEAgLTExMSw2ICsxMTIsNyBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0
KFByb2Nlc3NNb2RlbCBwcm9jCiAgICAgLCBtX21lbW9yeVNhbXBsZXJFbmFibGVkKGZhbHNlKQog
ICAgICwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWwoMTQwMC4wKQogICAgICwgbV9hcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5KFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0
ZSh0aGlzKSkKKyAgICAsIG1fY29va2llTWFuYWdlclByb3h5KFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9kYXRhYmFzZU1hbmFnZXJQcm94eShXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9nZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eShXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9w
bHVnaW5TaXRlRGF0YU1hbmFnZXIoV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpjcmVhdGUodGhp
cykpCkBAIC0xNDAsNiArMTQyLDkgQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogICAgIG1f
YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fYXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CiAKKyAgICBtX2Nvb2tpZU1h
bmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fY29va2llTWFuYWdlclByb3h5LT5jbGVh
ckNvbnRleHQoKTsKKwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUo
KTsKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKIApAQCAt
MjkyLDYgKzI5Nyw3IEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlzY29ubmVjdFByb2Nlc3MoV2ViUHIK
ICAgICBtX2Rvd25sb2Fkcy5jbGVhcigpOwogCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgbV9jb29raWVNYW5hZ2VyUHJveHktPmludmFsaWRh
dGUoKTsKICAgICBtX2RhdGFiYXNlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9n
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fcmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwpAQCAtNTY0LDYgKzU3MCwxMSBAQCB2b2lkIFdl
YkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1h
bmFnZXJQcm94eT4oKSkgeworICAgICAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX2RhdGFiYXNlTWFuYWdlclBy
b3h5LT5kaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OworY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5
OwogY2xhc3MgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKQEAgLTEzNiw2ICsxMzcsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IHBkZkFuZFBv
c3RTY3JpcHRNSU1FVHlwZXMoKTsKIAogICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHkqIGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KKyAgICBXZWJDb29raWVNYW5hZ2VyUHJv
eHkqIGNvb2tpZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fY29va2llTWFuYWdlclBy
b3h5LmdldCgpOyB9CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkqIGRhdGFiYXNlTWFuYWdl
clByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eS5nZXQoKTsgfQog
ICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgp
IGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAgICBX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIHBsdWdpblNpdGVEYXRhTWFuYWdlcigpIGNvbnN0IHsg
cmV0dXJuIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmdldCgpOyB9CkBAIC0yMjEsNiArMjIzLDcg
QEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWw7CiAKICAgICBS
ZWZQdHI8V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4gbV9hcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5OworICAgIFJlZlB0cjxXZWJDb29raWVNYW5hZ2VyUHJveHk+IG1fY29va2ll
TWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4gbV9kYXRh
YmFzZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+
IG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdlYlBsdWdpblNpdGVEYXRh
TWFuYWdlcj4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkNvb2tpZU1hbmFnZXJQcm94
eT4gV2ViQ29va2llTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvb2tpZU1hbmFnZXJQcm94eShjb250ZXh0KSk7
Cit9CisKK1dlYkNvb2tpZU1hbmFnZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KFdlYkNv
bnRleHQqIGNvbnRleHQpCisgICAgOiBtX3dlYkNvbnRleHQoY29udGV4dCkKK3sKK30KKworV2Vi
Q29va2llTWFuYWdlclByb3h5Ojp+V2ViQ29va2llTWFuYWdlclByb3h5KCkKK3sKK30KKwordm9p
ZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIGludmFsaWRhdGVD
YWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwordm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJDb29raWVN
YW5hZ2VyUHJveHk6OmdldENvb2tpZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBw
cnBDYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBD
YWxsYmFjazsKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpIHsKKyAg
ICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAg
ICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOwor
ICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5h
Z2VyOjpHZXRDb29raWVPcmlnaW5zKGNhbGxiYWNrSUQpLCAwKTsKK30KKyAgICAKK3ZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5OjpkaWRHZXRDb29raWVPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1
cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAg
ICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2Uo
Y2FsbGJhY2tJRCk7CisgICAgcGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0
YVZlY3RvcihvcmlnaW5EYXRhcywgY2FsbGJhY2suZ2V0KCkpOworfQorCit2b2lkIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ29va2llc0Zvck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiog
b3JpZ2luKQoreworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdp
bkRhdGE7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2Nv
bCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7CisgICAg
c2VjdXJpdHlPcmlnaW5EYXRhLnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsKKworICAgIG1fd2ViQ29u
dGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVD
b29raWVzRm9yT3JpZ2luKHNlY3VyaXR5T3JpZ2luRGF0YSksIDApOworfQorCit2b2lkIFdlYkNv
b2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcygpCit7CisgICAgaWYgKCFtX3dlYkNv
bnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJDb250
ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFs
bENvb2tpZXMoKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
Q29va2llTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViQ29va2llTWFuYWdlclByb3h5X2gKKwor
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2lu
Y2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQ29u
bmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworY2xhc3MgV2ViQ29udGV4dDsKK2NsYXNzIFdl
YlNlY3VyaXR5T3JpZ2luOworCit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBB
cnJheUNhbGxiYWNrOworCitjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJ
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUNv
b2tpZU1hbmFnZXI7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb29raWVNYW5hZ2VyUHJv
eHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViQ29va2llTWFuYWdlclBy
b3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgp
IHsgbV93ZWJDb250ZXh0ID0gMDsgfQorICAgIAorICAgIHZvaWQgZ2V0Q29va2llT3JpZ2lucyhQ
YXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JPcmln
aW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKTsKKwor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAg
V2ViQ29va2llTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgdm9pZCBkaWRHZXRDb29raWVP
cmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKworICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDb29raWVNYW5h
Z2VyUHJveHlfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisj
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJDb29raWVNYW5hZ2VyUHJveHkgeworICAgIERp
ZEdldENvb2tpZU9yaWdpbnMoVmVjdG9yPFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmln
aW5JZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7Cit9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gNzk0NzIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQ5LDYgKzI0OSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZSgKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dl
YkNvbnRleHRMZWdhY3k+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc0Rvd25sb2FkUHJveHk+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk+KCkKKyAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1hbmFnZXJQcm94
eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpCiAgICAgICAgIHx8IG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
PigpKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
CShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBXZWJCYWNrRm9y
d2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkNvbnRleHQ7CitjbGFzcyBXZWJDb29raWVN
YW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJDcmVkZW50aWFsOwogY2xhc3MgV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHk7CiBjbGFzcyBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk7CkBAIC03NCw2
ICs3NSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdEl0ZW0KIFdLX0FE
RF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdFJlZiwgV2ViQmFja0ZvcndhcmRMaXN0KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYsIFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0UmVmLCBXZWJD
b250ZXh0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29va2llTWFuYWdlclJlZiwgV2ViQ29va2ll
TWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ3JlZGVudGlhbFJlZiwgV2ViQ3Jl
ZGVudGlhbCkKIFdLX0FERF9BUElfTUFQUElORyhXS0RhdGFiYXNlTWFuYWdlclJlZiwgV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tEb3dubG9hZFJlZiwgRG93
bmxvYWRQcm94eSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNiArMTU4LDExIEBAIHZv
aWQgV0tDb250ZXh0Q2xlYXJBcHBsaWNhdGlvbkNhY2hlKFdLQ28KICAgICB0b0ltcGwoY29udGV4
dFJlZiktPmNsZWFyQXBwbGljYXRpb25DYWNoZSgpOwogfQogCitXS0Nvb2tpZU1hbmFnZXJSZWYg
V0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAg
ICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5jb29raWVNYW5hZ2VyUHJveHkoKSk7
Cit9CisKIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0QXBwbGljYXRp
b25DYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgcmV0dXJuIHRv
QVBJKHRvSW1wbChjb250ZXh0UmVmKS0+YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJKHJldmlz
aW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNiArMTI0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250
ZXh0U3RhcnRNZW1vcnlTYW1wbAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9yeVNh
bXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiBXS19FWFBPUlQgV0tBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihXS0NvbnRl
eHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tDb29raWVNYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dENvb2tpZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLRGF0YWJh
c2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYgY29u
dGV4dCk7CiBXS19FWFBPUlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0R2Vv
bG9jYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdp
blNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tD
b250ZXh0UmVmIGNvbnRleHQpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29va2llTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXS0Nvb2tpZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUg
IldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitX
S1R5cGVJRCBXS0Nvb2tpZU1hbmFnZXJHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLQ29va2llTWFuYWdl
ckdldENvb2tpZU9yaWdpbnMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYsIHZv
aWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldENvb2tpZU9yaWdpbnNGdW5jdGlvbiBjYWxs
YmFjaykKK3sKKyAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmdldENvb2tpZU9yaWdpbnMo
QXJyYXlDYWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgV0tD
b29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvck9yaWdpbihXS0Nvb2tpZU1hbmFnZXJSZWYgY29v
a2llTWFuYWdlclJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW5SZWYpCit7CisgICAgdG9J
bXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5kZWxldGVDb29raWVzRm9yT3JpZ2luKHRvSW1wbChvcmln
aW5SZWYpKTsKK30KKwordm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmKQoreworICAgIHRvSW1wbChjb29raWVNYW5h
Z2VyUmVmKS0+ZGVsZXRlQWxsQ29va2llcygpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tDb29raWVNYW5hZ2Vy
X2gKKyNkZWZpbmUgV0tDb29raWVNYW5hZ2VyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNl
Lmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQ
T1JUIFdLVHlwZUlEIFdLQ29va2llTWFuYWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQg
KCpXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVPcmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdL
RXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldENvb2tp
ZU9yaWdpbnMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQs
IFdLQ29va2llTWFuYWdlckdldENvb2tpZU9yaWdpbnNGdW5jdGlvbiBmdW5jdGlvbik7CisKK1dL
X0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JPcmlnaW4oV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKTsK
K1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb29raWVN
YW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRp
ZgorCisjZW5kaWYgLy8gV0tDb29raWVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc5NDkwKQor
KysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDUsNiArMjQ1LDE2IEBACiAJCTFDQThCOTU0MTI3Qzg5MTUwMDU3NkMy
QiAvKiBXZWJJbnNwZWN0b3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzhFMkRBRDEyNzhDNUIyMDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWFj
Lm1tICovOyB9OwogCQkyOUNENTVBQTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dC5oICovOyB9OwogCQkyOUNENTVBQjEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3QubW0gKi87IH07CisJCTMzMDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzMDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzMwOTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8q
IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1h
bmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkzMzA5MzQ0OTEzMTVCOTIyMDA5N0E3QkMgLyogV2Vi
Q29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkzMzA5MzQ0
QTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ2MTMxNUI5
MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OworCQkz
MzA5MzQ0RjEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0QzEzMTVCOTREMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5jcHAgKi87IH07CisJCTMzMDkzNDUwMTMxNUI5NEQw
MDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0RDEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlci5oICovOyB9OworCQkzMzA5MzQ1NTEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMzMDkzNDUyMTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHku
Y3BwICovOyB9OworCQkzMzA5MzQ1NjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MzA5MzQ1MzEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggKi87IH07
CisJCTMzMDkzNDVBMTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NTgxMzE1Qjk5
ODAwOTdBN0JDIC8qIFdLQ29va2llTWFuYWdlci5jcHAgKi87IH07CisJCTMzMDkzNDVCMTMxNUI5
OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDU5MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tp
ZU1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07
CiAJCTMzMTUyOTc1MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMxNTI5NzMxMzBE
MENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5jcHAgKi87IH07CiAJCTMzMTUyOTc2
MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMTUyOTc0MTMwRDBDQjIwMEVEMjQ4MyAv
KiBTZWN1cml0eU9yaWdpbkRhdGEuaCAqLzsgfTsKIAkJMzMzNjc2MkYxMzBDOTk5ODAwNkM5REUy
IC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMzY3NjJDMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlci5jcHAgKi87IH07CkBAIC0xMDQ2LDYgKzEwNTYsMTggQEAKIAkJMjlD
RDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4
NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMkRCQ0Y1RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0
MlByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXQyUHJlZml4
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzMDkzNDQzMTMxNUI5MjIwMDk3QTdC
QyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMzA5MzQ0NTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTMzMDkzNDQ2MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
b29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMzA5MzQ0QzEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJDb29raWVNYW5hZ2VyLmNwcDsgcGF0
aCA9IENvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMzMDkzNDREMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXIuaDsgcGF0aCA9
IENvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMzA5MzQ0RTEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBw
YXRoID0gQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMzA5MzQ1MjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFu
YWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNv
b2tpZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzMDkz
NDUzMTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29va2llTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzMDkzNDU0MTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29r
aWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQ29v
a2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMzA5MzQ1ODEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ29va2llTWFuYWdlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzMDkzNDU5MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nv
b2tpZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb29raWVN
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMTUyOTczMTMwRDBDQjIw
MEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2VjdXJpdHlPcmlnaW5EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzMxNTI5NzQxMzBEMENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWN1cml0eU9yaWdpbkRhdGEu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMzNjc2MkMxMzBDOTk5ODAwNkM5REUy
IC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcDsgcGF0aCA9IFJlc291cmNl
Q2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjA3Niw2ICsyMDk4LDE2IEBACiAJCQl0YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFi
cyA9IDA7CiAJCX07CisJCTMzMDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzMzA5MzQ0QzEzMTVC
OTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5jcHAgKi8sCisJCQkJMzMwOTM0NEQxMzE1
Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuaCAqLywKKwkJCQkzMzA5MzQ0RTEzMTVC
OTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJ
CQluYW1lID0gQ29va2llczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTMz
MzY3NjJCMTMwQzk5NzgwMDZDOURFMiAvKiBSZXNvdXJjZUNhY2hlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIxNDUsNiArMjE3Nyw3IEBACiAJCQljaGls
ZHJlbiA9ICgKIAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNo
ZSAqLywKIAkJCQk1MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb24gKi8s
CisJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tpZXMgKi8sCiAJCQkJMUE2MTYx
NEMxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkcyAqLywKIAkJCQlCQzBFNUZDQjEyRDY5NkRE
MDAxMkE3MkEgLyogR2VvbG9jYXRpb24gKi8sCiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1
IC8qIEluamVjdGVkQnVuZGxlICovLApAQCAtMjI5MSw2ICsyMzI0LDkgQEAKIAkJCQk1MUE4NENF
MjEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgKi8sCiAJCQkJNTFB
Q0JCODExMjdBOEJBRDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHkuaCAqLywKIAkJCQlC
Q0IwQjBEQjEyMzA1QTI1MDBCMTM0MUUgLyogV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgg
Ki8sCisJCQkJMzMwOTM0NTIxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHAgKi8sCisJCQkJMzMwOTM0NTMxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eS5oICovLAorCQkJCTMzMDkzNDU0MTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJRjYyQTc2NTkxMkIxQUJDMzAwMDVGMUI2
IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQlGNjJBNzY1QTEyQjFBQkMz
MDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCAqLywKIAkJCQlGNjJBNzY1QjEy
QjFBQkMzMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8s
CkBAIC0yMzg0LDYgKzI0MjAsOCBAQAogCQkJCUJDQjlFMjRBMTEyMEUxNUMwMEExMzdFMCAvKiBX
S0NvbnRleHQuY3BwICovLAogCQkJCUJDQjlFMjQ5MTEyMEUxNUMwMEExMzdFMCAvKiBXS0NvbnRl
eHQuaCAqLywKIAkJCQlCQ0M5MzhFMDExODBERTQ0MDA4NUU1RkUgLyogV0tDb250ZXh0UHJpdmF0
ZS5oICovLAorCQkJCTMzMDkzNDU4MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIu
Y3BwICovLAorCQkJCTMzMDkzNDU5MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIu
aCAqLywKIAkJCQk1MTJGNThGMTEyQTg4QTU0MDA2Mjk1MzAgLyogV0tDcmVkZW50aWFsLmNwcCAq
LywKIAkJCQk1MTJGNThGMjEyQTg4QTU0MDA2Mjk1MzAgLyogV0tDcmVkZW50aWFsLmggKi8sCiAJ
CQkJNTE4QUNGMTAxMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggKi8sCkBA
IC0yODc0LDYgKzI5MTIsMTAgQEAKIAkJCQk1MTJFMzVGNzEzMEI2NDJFMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQkNFRTdEMEIx
Mjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CUJDRUU3RDBDMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZXMuaCAqLywKKwkJ
CQkzMzA5MzQ0MzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCisJCQkJMzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1h
bmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTMzMDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJD
b29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTMzMDkzNDQ2MTMx
NUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJ
CUY2MkE3NkIyMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCUY2MkE3NkIzMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFz
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUY2MkE3NkI0MTJCMUIyNUYwMDA1RjFCNiAvKiBX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0zMjk5LDYg
KzMzNDEsMTEgQEAKIAkJCQkzMzM2NzY1NjEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2NTgxMzBDOUVD
QjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzMxNTI5NzYxMzBEMENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2lu
RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzMwOTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8qIFdl
YkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzMwOTM0NEExMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMzA5MzQ1MDEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzMwOTM0NTYxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzMwOTM0NUIxMzE1Qjk5ODAwOTdB
N0JDIC8qIFdLQ29va2llTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zNzkyLDYgKzM4Mzks
MTEgQEAKIAkJCQkzMzM2NzY1NzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzE1Mjk3
NTEzMEQwQ0IyMDBFRDI0ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMzRjlENUI5MTMxMkYxRUUwMDBENjgzRiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
ckNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzMDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAv
KiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTMzMDkzNDQ5MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzMwOTM0NEYxMzE1Qjk0RDAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzMwOTM0NTUxMzE1
Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkzMzA5MzQ1QTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTYW5kYm94
RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKICNp
bmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0
YWJhc2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTUzNiw2ICs1MzcsMTEg
QEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAgICAgICByZXR1
cm47CiAgICAgfQogCisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJDb29raWVNYW5hZ2VyPigpKSB7CisgICAgICAgIFdlYkNvb2tpZU1hbmFnZXI6OnNoYXJlZCgp
LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyPigpKSB7CiAgICAgICAgIFdlYkRhdGFiYXNlTWFu
YWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIk1l
c3NhZ2VJRC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldl
YkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luSGFzaC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYkNvb2tpZU1hbmFnZXImIFdlYkNvb2tpZU1hbmFnZXI6OnNoYXJl
ZCgpCit7CisgICAgc3RhdGljIFdlYkNvb2tpZU1hbmFnZXImIHNoYXJlZCA9ICpuZXcgV2ViQ29v
a2llTWFuYWdlcjsKKyAgICByZXR1cm4gc2hhcmVkOworfQorCitXZWJDb29raWVNYW5hZ2VyOjpX
ZWJDb29raWVNYW5hZ2VyKCkKK3sKK30KKwordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sK
KyAgICBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldENvb2tpZU9y
aWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD4gb3JpZ2luczsKKworICAgIC8vIEZJWE1FIDxy
ZGFyOi8vcHJvYmxlbS84OTcxNzM4PjogSW1wbGVtZW50LgorCisgICAgVmVjdG9yPFNlY3VyaXR5
T3JpZ2luRGF0YT4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMucmVzZXJ2ZUNhcGFjaXR5
KG9yaWdpbnMuc2l6ZSgpKTsKKworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
U2VjdXJpdHlPcmlnaW5IYXNoPjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKKyAgICBI
YXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD46Oml0ZXJh
dG9yIGkgPSBvcmlnaW5zLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kpIHsKKyAg
ICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKKyAgICAgICAgCisgICAg
ICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhOworICAgICAgICBvcmlnaW5EYXRhLnBy
b3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOworICAgICAgICBvcmlnaW5EYXRhLmhvc3QgPSBv
cmlnaW4tPmhvc3QoKTsKKyAgICAgICAgb3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7
CisKKyAgICAgICAgaWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbkRhdGEpOworICAg
IH0KKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRHZXRDb29raWVPcmlnaW5zKGlkZW50aWZpZXJz
LCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29v
a2llc0Zvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbkRhdGEpCit7Cisg
ICAgLy8gRklYTUUgPHJkYXI6Ly9wcm9ibGVtLzg5NzE3Mzg+OiBJbXBsZW1lbnQuCit9CisKK3Zv
aWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llcygpCit7CisgICAgLy8gRklYTUUg
PHJkYXI6Ly9wcm9ibGVtLzg5NzE3Mzg+OiBJbXBsZW1lbnQuCit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tp
ZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29va2llTWFuYWdlcl9oCisjZGVmaW5l
IFdlYkNvb2tpZU1hbmFnZXJfaAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKyAgICBj
bGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBN
ZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgU2VjdXJpdHlPcmln
aW5EYXRhOworCitjbGFzcyBXZWJDb29raWVNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShXZWJDb29raWVNYW5hZ2VyKTsKKworcHVibGljOgorICAgIHN0YXRpYyBXZWJDb29raWVN
YW5hZ2VyJiBzaGFyZWQoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CisKK3ByaXZhdGU6CisgICAgV2ViQ29va2llTWFuYWdlcigpOworICAgIAorICAgIHZvaWQg
Z2V0Q29va2llT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZUNv
b2tpZXNGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CisgICAgdm9pZCBkZWxl
dGVBbGxDb29raWVzKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gV2ViQ29va2llTWFuYWdlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29r
aWVNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKyAKKyBtZXNzYWdlcyAtPiBXZWJDb29raWVNYW5hZ2VyIHsKKyAgICB2b2lkIEdldENv
b2tpZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUNvb2tpZXNG
b3JPcmlnaW4oV2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAg
ICB2b2lkIERlbGV0ZUFsbENvb2tpZXMoKQorfQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZj
cHJvagkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oJKHdvcmtpbmcgY29weSkKQEAgLTEzOTQsNiArMTM5NCwyMiBAQAogCQkJCQk+CiAJCQkJPC9G
aWxlPgogICAgICAgICAgICAgPC9GaWx0ZXI+CisgICAgICAgICAgICA8RmlsdGVyCisgICAgICAg
ICAgICAgICAgTmFtZT0iQ29va2llcyIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAg
ICAgPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXENvb2tpZXNcV2ViQ29v
a2llTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXENvb2tpZXNcV2ViQ29va2llTWFuYWdlci5oIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJv
Y2Vzc1xDb29raWVzXFdlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4iCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisgICAgICAgICAgICA8L0ZpbHRlcj4KIAkJCTxGaWx0ZXIKIAkJCQlOYW1lPSJXZWJD
b3JlU3VwcG9ydCIKIAkJCQk+CkBAIC0yMzYyLDYgKzIzNzgsMTggQEAKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb250ZXh0TWVudVByb3h5LmgiCiAJCQkJPgogCQkJPC9GaWxl
PgorICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJD
b29raWVNYW5hZ2VyUHJveHkuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29va2llTWFuYWdlclByb3h5LmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xX
ZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCisJCQkJPgorCQkJPC9GaWxlPgogCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb250ZXh0VXNlck1lc3Nh
Z2VDb2RlcnMuaCIKIAkJCQk+CkBAIC0yNjY0LDYgKzI2OTIsMTQgQEAKIAkJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXHdpblxXS0NvbnRleHRXaW4uY3BwIgogCQkJCQkJPgog
CQkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0Nvb2tpZU1hbmFnZXIuY3BwIgorCQkJCQkJPgorCQkJ
CQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xB
UElcQ1xXS0Nvb2tpZU1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgogCQkJCQk8Rmls
ZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tDcmVkZW50aWFsLmNw
cCIKIAkJCQkJCT4KQEAgLTM0MTEsNiArMzQ0NywyMiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KICAg
ICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkNvb2tpZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisgICAgICAgICAgICA8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDog
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCShyZXZpc2lvbiA3OTQ3MikK
KysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcgY29w
eSkKQEAgLTYsNyArNiw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
Ci0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZv
cm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3Jl
SVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nl
c3NcQVBJXENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxj
cHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xB
cHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xB
dXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93
bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNc
Y2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVv
dDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJz
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2Fy
ZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90
OyQoUHJvamVjdERpcilcLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxj
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdp
bnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nl
c3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50
aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3Vw
cG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBv
cnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcQ29va2llcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xE
b3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xv
Y2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNh
Y2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXElu
Y2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0
ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDsk
KFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7
JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7
JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRp
bmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNv
cmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCiAJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJf
VVNSRExMO1dFQktJVF9FWFBPUlRTO0ZSQU1FV09SS19OQU1FPVdlYktpdDtCVUlMRElOR19XRUJL
SVQiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQcmVjb21waWxlZEhlYWRlclRocm91
Z2g9IldlYktpdDJQcmVmaXguaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2Vu
ZXJhdGVkLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5l
cmF0ZWQubWFrZQkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkdlbmVyYXRlZC5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIGFsbDoKICAg
ICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0SXRlbS5o
IiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95
IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb250ZXh0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxk
RGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElc
Q1xXS0NvbnRleHRQcml2YXRlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdl
YktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0Nvb2tpZU1hbmFn
ZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29w
eSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ3JlZGVudGlhbC5oIiAiJUNvbmZpZ3VyYXRp
b25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nl
c3NcQVBJXENcV0tDcmVkZW50aWFsVHlwZXMuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLRGF0
YWJhc2VNYW5hZ2VyLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIi
Cg==
</data>
<flag name="review"
          id="75389"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83575</attachid>
            <date>2011-02-23 16:35:12 -0800</date>
            <delta_ts>2011-02-23 17:03:12 -0800</delta_ts>
            <desc>[PATCH] Fix v2</desc>
            <filename>cookie_manager.patch</filename>
            <type>text/plain</type>
            <size>64307</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDkwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODAgQEAKKzIwMTEtMDItMjMgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgV2ViS2l0MjogTmVlZCBhIHdheSB0byBt
YW5hZ2UgY29va2llcyBmcm9tIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUwODYKKyAgICAgICAgCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyB0aGUgcGx1bWJpbmcgYW5kIGNsYXNzZXMgdGhhdCBhcmUgbmVlZGVkIHRvIG1h
bmFnZSBjb29raWVzIGZyb20gdGhlIHdlYiBwcm9jZXNzLgorICAgICAgICBUaGUgZnVuY3Rpb25z
IHRoYXQgdGhlIEFQSSBjYWxscyBhcmUgY3VycmVudGx5IHN0dWJzLCBidXQgd2lsbCBiZSBpbXBs
ZW1lbnRlZCBpbiBhIGZvbGxvdy11cCBwYXRjaC4KKworICAgICAgICBQcm9qZWN0IGZpbGUgY2hh
bmdlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLnBybzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJLaXQy
LnByaToKKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorICAgICAg
ICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6CisgICAgICAgICogd2luL1dlYktpdDJHZW5l
cmF0ZWQubWFrZToKKworICAgICAgICBBZGQgc29tZSBuZWVkZWQgcGx1bWJpbmcgZm9yIFdlYkNv
b2tpZU1hbmFnZXJ7UHJveHl9LgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlE
Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9B
UElPYmplY3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4
dEdldENvb2tpZU1hbmFnZXIpOiBHZXRzIHRoZSBjb29raWUgbWFuYWdlciBwcm94eS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29va2llTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tDb29raWVNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lcyk6
IENhbGxzIHRocm91Z2ggdG8gV2ViQ29va2llTWFuYWdlclByb3h5LgorICAgICAgICAoV0tDb29r
aWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKTogRGl0dG8uCisgICAgICAgIChXS0Nv
b2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29va2llTWFuYWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKTogQWRkIGEgY2FzZSBmb3IgdGhlIGNvb2tpZSBtYW5hZ2VyLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6V2ViQ29udGV4dCk6IEluaXRpYWxpemUgdGhlIGNvb2tpZSBtYW5hZ2VyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6IEludmFsaWRhdGUgdGhlIGNvb2tp
ZSBtYW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaXNjb25uZWN0UHJvY2Vz
cyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2Fn
ZSk6IEFkZCBhIGNhc2UgZm9yIHRoZSBjb29raWUgbWFuYWdlci4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpjb29raWVNYW5h
Z2VyUHJveHkpOiBSZXR1cm5zIHRoZSBjb29raWUgbWFuYWdlci4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZSk6IEFkZCBhIGNhc2UgZm9yIHRoZSBjb29raWUgbWFuYWdlci4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OldlYkNvb2tpZU1hbmFnZXJQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6fldlYkNvb2tpZU1hbmFnZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OiAKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRDb29raWVIb3N0
bmFtZXMpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGdldCBvcmlnaW5zIHdp
dGggY29va2llcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRH
ZXRDb29raWVIb3N0bmFtZXMpOiBDYWxsIHRoZSBjYWxsYmFjayB3ZSB3ZXJlIHBhc3NlZCBpbiBn
ZXRDb29raWVPcmlnaW5zLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6
OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6IENhbGwgdGhyb3VnaCB0byB0aGUgd2ViIHByb2Nl
c3MgdG8gZGVsZXRlIGNvb2tpZXMKKyAgICAgICAgICAgIGZvciB0aGUgb3JpZ2luLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXMpOiBDYWxs
IHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGRlbGV0ZSBhbGwgY29va2llcy4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6dHlwZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0Nvb2tpZXM6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9X
ZWJDb29raWVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1h
bmFnZXI6OnNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OldlYkNv
b2tpZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZSk6IENhbGwgdGhyb3VnaCB0byBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlck1l
c3NhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmdldENvb2tpZUhvc3Ru
YW1lcyk6IEJ1aWxkIGFuIGFycmF5IGZyb20gYSBIYXNoU2V0ICh0aGF0IGlzbid0IGZpbGxlZCB5
ZXQpLCBhbmQgCisgICAgICAgICAgICBjb252ZXJ0IHRoYXQgSGFzaFNldCB0byBhIFZlY3RvciB0
byBzZW5kIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5h
Z2VyOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOiBBZGRlZCBhIHN0dWIuCisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMpOiBEaXR0by4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbjogQWRk
ZWQuCisKIDIwMTEtMDItMjMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogU291cmNlL1dlYktpdDIv
RGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVk
U291cmNlcy5tYWtlCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAgVlBBVEggPSBcCiAg
ICAgJChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNh
dGlvbiBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogICAgICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Bs
dWdpbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKQEAgLTQ4
LDYgKzQ5LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1Z2luUHJveHkgXAogICAg
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIFwKICAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5IFwKKyAgICBXZWJDb29raWVNYW5hZ2VyIFwKKyAgICBXZWJDb29raWVNYW5hZ2Vy
UHJveHkgXAogICAgIFdlYkNvbnRleHQgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXApJbmRleDogU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBy
bwkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8J
KHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDcgQEAgVlBBVEggPSBcCiAgICAgUGx1Z2luUHJv
Y2VzcyBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICBXZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uIFwKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMgXAogICAgIFdlYlByb2Nl
c3MvR2VvbG9jYXRpb24gXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgV2ViUHJvY2Vz
cy9SZXNvdXJjZUNhY2hlIFwKQEAgLTk1LDYgKzk2LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBQbHVnaW5Qcm94eS5t
ZXNzYWdlcy5pbiBcCiAgICAgV2ViQ29udGV4dC5tZXNzYWdlcy5pbiBcCisgICAgV2ViQ29va2ll
TWFuYWdlci5tZXNzYWdlcy5pbiBcCisgICAgV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXIu
bWVzc2FnZXMuaW4gXApJbmRleDogU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDc5NDcyKQor
KysgU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYg
KzQ1LDcgQEAgbGliV2ViS2l0Ml9sYV9IRUFERVJTID0gXAogCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
UHJpdmF0ZS5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIu
aCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbFR5cGVzLmggXAogCSQoV2ViS2l0Mikv
VUlQcm9jZXNzL0FQSS9DL1dLRGF0YWJhc2VNYW5hZ2VyLmggXApAQCAtMjk3LDYgKzI5OCw4IEBA
IGxpYldlYktpdDJfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgg
XAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlwZXMuaCBcCkBAIC0zOTksNiArNDAy
LDggQEAgbGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0TWVudVByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHRVc2VyTWVzc2FnZUNvZGVycy5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVN
YW5hZ2VyUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHlDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHlDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcCBcCkBAIC00NTYsNiArNDYxLDggQEAgbGliV2ViS2l0
Ml9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25D
YWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9jdXJsL0Rvd25s
b2FkQ3VybC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
aCBcCkBAIC02NTgsNiArNjY1LDcgQEAgbGliV2ViS2l0Ml9sYV9DUFBGTEFHUyA9IFwKIAktSSQo
c3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAorCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvR2VvbG9jYXRpb24gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvZ3RrIFwKQEAgLTgxMyw2ICs4MjEsMTAgQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdl
UmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdl
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvb2tpZU1hbmFnZXJNZXNz
YWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29va2llTWFu
YWdlclByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEYXRhYmFz
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTg2MSw2ICs4NzMs
NyBAQCB2cGF0aCAlLm1lc3NhZ2VzLmluID0gXAogCSQoV2ViS2l0MikvV2ViUHJvY2VzcyBcCiAJ
JChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogCSQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMg
XAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAJJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1BsdWdpbnMgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIucHJpCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YktpdDIucHJpCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBAIFdFQktJVDJfSU5DTFVE
RVBBVEggPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2VzcyBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkJFNP
VVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKKyAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogICAgICQkU09VUkNFX0RJUi9XZWJL
aXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0Rvd25sb2Fkcy9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vz
cy9HZW9sb2NhdGlvbiBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gNzk0NzIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOCBA
QCBXRUJLSVQyX0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURf
U09VUkNFU19ESVIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIFwKICAgICAk
JFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
YkNvbnRleHRNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NP
VVJDRVNfRElSL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lU
Ml9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZXMuaCBcCiAg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBcCkBAIC01OSw2ICs2MSw4IEBAIFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQ29va2llTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJHZW9sb2NhdGlv
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTE2NSw2ICsxNjksNyBAQCBIRUFERVJT
ICs9IFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggXAog
ICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJD
b250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCBcCisgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCBcCiAg
ICAgVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5Q2xpZW50LmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJEb3dubG9hZENsaWVudC5oIFwKQEAgLTE5NSw2ICsyMDAsNyBAQCBIRUFERVJTICs9
IFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5oIFwKICAgICBXZWJQcm9j
ZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCiAgICAg
V2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCisgICAg
V2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWQuaCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCBcCkBAIC0zMzcsNiArMzQzLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJv
eHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcCBcCiAgICAg
VUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dl
YkRhdGFiYXNlTWFuYWdlclByb3h5Q2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkRvd25s
b2FkQ2xpZW50LmNwcCBcCkBAIC0zNzUsNiArMzgyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQ
cm9jZXNzL3F0L1dlYlByZWZlcmVuY2VzUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgXAorICAgIFdlYlByb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFn
ZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VJRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmgJKHJldmlzaW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBA
QCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFMZWdhY3ks
CiAgICAgTWVzc2FnZUNsYXNzSW5qZWN0ZWRCdW5kbGUsCiAgICAgTWVzc2FnZUNsYXNzV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXIsCisgICAgTWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlciwK
ICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9yLApA
QCAtNTQsNiArNTUsNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0
LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3ksCisgICAgTWVzc2FnZUNsYXNzV2Vi
Q29va2llTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlciwKICAgICBNZXNzYWdl
Q2xhc3NXZWJJbnNwZWN0b3JQcm94eSwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJ
KHJldmlzaW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZUJhY2tG
b3J3YXJkTGlzdEl0ZW0sCiAgICAgICAgIFR5cGVDYWNoZU1hbmFnZXIsCiAgICAgICAgIFR5cGVD
b250ZXh0LAorICAgICAgICBUeXBlQ29va2llTWFuYWdlciwKICAgICAgICAgVHlwZURhdGFiYXNl
TWFuYWdlciwKICAgICAgICAgVHlwZURvd25sb2FkLAogICAgICAgICBUeXBlRm9ybVN1Ym1pc3Np
b25MaXN0ZW5lciwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHJldmlz
aW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NCw2ICs3NCw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
QmFja0ZvcndhcmQKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQmFja0ZvcndhcmRMaXN0
SXRlbSogV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tSZXNvdXJjZUNhY2hlTWFuYWdlciogV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250ZXh0UmVmOwordHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb29raWVNYW5hZ2VyKiBXS0Nvb2tpZU1hbmFnZXJSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0NyZWRlbnRpYWwqIFdLQ3JlZGVudGlhbFJl
ZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRGF0YWJhc2VNYW5hZ2VyKiBXS0RhdGFi
YXNlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRG93bmxvYWQqIFdL
RG93bmxvYWRSZWY7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
CShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIldlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZUtp
bmRzLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgiCisjaW5jbHVk
ZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIgpAQCAtMTExLDYgKzExMiw3IEBAIFdlYkNvbnRl
eHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2MKICAgICAsIG1fbWVtb3J5U2FtcGxlckVu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbCgxNDAwLjApCiAgICAg
LCBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9jb29raWVNYW5hZ2VyUHJveHkoV2ViQ29v
a2llTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2RhdGFiYXNlTWFuYWdlclBy
b3h5KFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2dlb2xv
Y2F0aW9uTWFuYWdlclByb3h5KFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhp
cykpCiAgICAgLCBtX3BsdWdpblNpdGVEYXRhTWFuYWdlcihXZWJQbHVnaW5TaXRlRGF0YU1hbmFn
ZXI6OmNyZWF0ZSh0aGlzKSkKQEAgLTE0MCw2ICsxNDIsOSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29u
dGV4dCgpCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7
CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKIAor
ICAgIG1fY29va2llTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgbV9jb29raWVNYW5h
Z2VyUHJveHktPmNsZWFyQ29udGV4dCgpOworCiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94
eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmNsZWFyQ29u
dGV4dCgpOwogCkBAIC0yOTIsNiArMjk3LDcgQEAgdm9pZCBXZWJDb250ZXh0OjpkaXNjb25uZWN0
UHJvY2VzcyhXZWJQcgogICAgIG1fZG93bmxvYWRzLmNsZWFyKCk7CiAKICAgICBtX2FwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX2Nvb2tpZU1hbmFnZXJQ
cm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHktPmludmFsaWRh
dGUoKTsKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAg
bV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CkBAIC01NjQsNiArNTcw
LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViQ29va2llTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIG1fY29va2llTWFuYWdlclBy
b3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1fZGF0
YWJhc2VNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDc5NDcyKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94
eTsKIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJDb29r
aWVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwpAQCAtMTM2LDYg
KzEzNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5n
SGFzaD4gcGRmQW5kUG9zdFNjcmlwdE1JTUVUeXBlcygpOwogCiAgICAgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eSogYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsg
cmV0dXJuIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5nZXQoKTsgfQorICAgIFdlYkNv
b2tpZU1hbmFnZXJQcm94eSogY29va2llTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9j
b29raWVNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSog
ZGF0YWJhc2VNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlTWFuYWdlclBy
b3h5LmdldCgpOyB9CiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9u
TWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5n
ZXQoKTsgfQogICAgIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciogcGx1Z2luU2l0ZURhdGFNYW5h
Z2VyKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXIuZ2V0KCk7IH0KQEAg
LTIyMSw2ICsyMjMsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX21lbW9yeVNhbXBsZXJJbnRl
cnZhbDsKIAogICAgIFJlZlB0cjxXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5PiBtX2Fw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CisgICAgUmVmUHRyPFdlYkNvb2tpZU1hbmFnZXJQ
cm94eT4gbV9jb29raWVNYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdlYkRhdGFiYXNlTWFuYWdl
clByb3h5PiBtX2RhdGFiYXNlTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eT4gbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2Vi
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyPiBtX3BsdWdpblNpdGVEYXRhTWFuYWdlcjsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgor
CisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYlNl
Y3VyaXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkNv
b2tpZU1hbmFnZXJQcm94eT4gV2ViQ29va2llTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4
dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvb2tpZU1hbmFnZXJQ
cm94eShjb250ZXh0KSk7Cit9CisKK1dlYkNvb2tpZU1hbmFnZXJQcm94eTo6V2ViQ29va2llTWFu
YWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX3dlYkNvbnRleHQoY29udGV4
dCkKK3sKK30KKworV2ViQ29va2llTWFuYWdlclByb3h5Ojp+V2ViQ29va2llTWFuYWdlclByb3h5
KCkKK3sKK30KKwordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQorewor
ICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwordm9pZCBX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJDb29raWVNYW5h
Z2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwor
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldENvb2tpZUhvc3RuYW1lcyhQYXNzUmVmUHRy
PEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIEFTU0VSVChtX3dlYkNvbnRleHQp
OworCisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJhY2s7Cisg
ICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKSB7CisgICAgICAgIGNhbGxi
YWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9hcnJheUNh
bGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKKyAgICBtX3dlYkNv
bnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0Q29v
a2llSG9zdG5hbWVzKGNhbGxiYWNrSUQpLCAwKTsKK30KKyAgICAKK3ZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpkaWRHZXRDb29raWVIb3N0bmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGhv
c3RuYW1lTGlzdCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxs
YmFjaz4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAg
aWYgKCFjYWxsYmFjaykgeworICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNpemVfdCBob3N0bmFtZUNvdW50ID0gaG9z
dG5hbWVMaXN0LnNpemUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiBob3N0bmFt
ZXM7CisgICAgaG9zdG5hbWVzLnJlc2VydmVDYXBhY2l0eShob3N0bmFtZUNvdW50KTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaG9zdG5hbWVDb3VudDsgKytpKQorICAgICAgICBob3N0
bmFtZXMudW5jaGVja2VkQXBwZW5kKFdlYlN0cmluZzo6Y3JlYXRlKGhvc3RuYW1lTGlzdFtpXSkp
OworCisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShJbW11dGFi
bGVBcnJheTo6YWRvcHQoaG9zdG5hbWVzKS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5OjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoU3RyaW5nIGhvc3RuYW1lKQorewor
ICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxp
ZFByb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2Vzcygp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29raWVzRm9ySG9zdG5h
bWUoaG9zdG5hbWUpLCAwKTsKK30KKwordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0
ZUFsbENvb2tpZXMoKQoreworICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOworICAgIGlmICghbV93
ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fd2Vi
Q29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxl
dGVBbGxDb29raWVzKCksIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYkNvb2tpZU1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYkNvb2tpZU1hbmFnZXJQcm94eV9o
CisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIK
KyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIENvcmVJUEMgeworICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBD
b25uZWN0aW9uOworICAgIGNsYXNzIE1lc3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYkNvbnRleHQ7CisKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlS
ZWY+IEFycmF5Q2FsbGJhY2s7CisKK2NsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eSA6IHB1Ymxp
YyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBU
eXBlQ29va2llTWFuYWdlcjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvb2tpZU1hbmFn
ZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJDb29raWVNYW5h
Z2VyUHJveHkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgY2xlYXJDb250
ZXh0KCkgeyBtX3dlYkNvbnRleHQgPSAwOyB9CisgICAgCisgICAgdm9pZCBnZXRDb29raWVIb3N0
bmFtZXMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxldGVDb29raWVz
Rm9ySG9zdG5hbWUoU3RyaW5nIGhvc3RuYW1lKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMo
KTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6
CisgICAgV2ViQ29va2llTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwg
VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgdm9pZCBkaWRHZXRD
b29raWVIb3N0bmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKKyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworCisgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OworICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
IyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYkNvb2tpZU1hbmFnZXJQcm94eSB7CisgICAgRGlkR2V0
Q29va2llSG9zdG5hbWVzKFZlY3RvcjxXVEY6OlN0cmluZz4gaG9zdG5hbWVzLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNiArMjQ5LDcgQEAg
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKAogICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQogICAgICAg
ICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKQog
ICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eT4oKQorICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlclByb3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKQogICAg
ICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDc5NDcyKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01MCw2ICs1MCw3IEBAIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwogY2xh
c3MgV2ViQ29udGV4dDsKK2NsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkNy
ZWRlbnRpYWw7CiBjbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkZvcm1T
dWJtaXNzaW9uTGlzdGVuZXJQcm94eTsKQEAgLTc0LDYgKzc1LDcgQEAgV0tfQUREX0FQSV9NQVBQ
SU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0Zvcndh
cmRMaXN0UmVmLCBXZWJCYWNrRm9yd2FyZExpc3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tSZXNv
dXJjZUNhY2hlTWFuYWdlclJlZiwgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FE
RF9BUElfTUFQUElORyhXS0NvbnRleHRSZWYsIFdlYkNvbnRleHQpCitXS19BRERfQVBJX01BUFBJ
TkcoV0tDb29raWVNYW5hZ2VyUmVmLCBXZWJDb29raWVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tDcmVkZW50aWFsUmVmLCBXZWJDcmVkZW50aWFsKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLRGF0YWJhc2VNYW5hZ2VyUmVmLCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSkKIFdLX0FE
RF9BUElfTUFQUElORyhXS0Rvd25sb2FkUmVmLCBEb3dubG9hZFByb3h5KQpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHJldmlzaW9uIDc5NDcy
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE1OCw2ICsxNTgsMTEgQEAgdm9pZCBXS0NvbnRleHRDbGVhckFwcGxpY2F0
aW9uQ2FjaGUoV0tDbwogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+Y2xlYXJBcHBsaWNhdGlvbkNh
Y2hlKCk7CiB9CiAKK1dLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29u
dGV4dFJlZiktPmNvb2tpZU1hbmFnZXJQcm94eSgpKTsKK30KKwogV0tBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclJlZiBXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihXS0NvbnRleHRS
ZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5h
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KCkpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw2
ICsxMjQsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTdGFydE1lbW9yeVNhbXBsCiBXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRTdG9wTWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4
dCk7CiAKIFdLX0VYUE9SVCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VYUE9S
VCBXS0Nvb2tpZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihXS0NvbnRleHRS
ZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tEYXRhYmFzZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
RGF0YWJhc2VNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0dlb2xv
Y2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1hbmFnZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29u
dGV4dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2Vy
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
b2tpZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQ29va2llTWFuYWdlci5oIjkKKwor
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5o
IgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0Nvb2tpZU1hbmFnZXJH
ZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJDb29raWVNYW5hZ2VyUHJveHk6OkFQ
SVR5cGUpOworfQorCit2b2lkIFdLQ29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lcyhXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgdm9pZCogY29udGV4dCwgV0tDb29raWVN
YW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24gY2FsbGJhY2spCit7CisgICAgdG9JbXBs
KGNvb2tpZU1hbmFnZXJSZWYpLT5nZXRDb29raWVIb3N0bmFtZXMoQXJyYXlDYWxsYmFjazo6Y3Jl
YXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBX
S1N0cmluZ1JlZiBob3N0bmFtZSkKK3sKKyAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSh0b0ltcGwoaG9zdG5hbWUpLT5zdHJpbmcoKSk7Cit9CisK
K3ZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tpZU1hbmFnZXJSZWYg
Y29va2llTWFuYWdlclJlZikKK3sKKyAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0
ZUFsbENvb2tpZXMoKTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0Nvb2tpZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb29raWVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQ29va2llTWFuYWdlcl9oCisjZGVmaW5lIFdL
Q29va2llTWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBX
S0Nvb2tpZU1hbmFnZXJHZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tDb29raWVNYW5h
Z2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdLRXJyb3JSZWYsIHZv
aWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lcyhX
S0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgdm9pZCogY29udGV4dCwgV0tDb29raWVN
YW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24gZnVuY3Rpb24pOworCitXS19FWFBPUlQg
dm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV0tDb29raWVNYW5h
Z2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLU3RyaW5nUmVmIGhvc3RuYW1lKTsKK1dLX0VYUE9SVCB2
b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNv
b2tpZU1hbmFnZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
Ly8gV0tDb29raWVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc5NDkwKQorKysgU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0yNDUsNiArMjQ1LDE2IEBACiAJCTFDQThCOTU0MTI3Qzg5MTUwMDU3NkMyQiAvKiBXZWJJbnNw
ZWN0b3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzhFMkRBRDEyNzhDNUIyMDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWFjLm1tICovOyB9Owog
CQkyOUNENTVBQTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4
MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovOyB9Owog
CQkyOUNENTVBQjEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Qu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVB
OTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi87IH07
CisJCTMzMDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMzMDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKKwkJMzMwOTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdl
cy5oICovOyB9OworCQkzMzA5MzQ0OTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkzMzA5MzQ0QTEzMTVCOTIyMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ2MTMxNUI5MjIwMDk3QTdCQyAv
KiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OworCQkzMzA5MzQ0RjEzMTVC
OTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0QzEzMTVCOTREMDA5N0E3QkMgLyogV2Vi
Q29va2llTWFuYWdlci5jcHAgKi87IH07CisJCTMzMDkzNDUwMTMxNUI5NEQwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMzA5MzQ0RDEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5oICov
OyB9OworCQkzMzA5MzQ1NTEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkz
NDUyMTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwICovOyB9Owor
CQkzMzA5MzQ1NjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ1MzEzMTVC
OTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggKi87IH07CisJCTMzMDkzNDVB
MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NTgxMzE1Qjk5ODAwOTdBN0JDIC8q
IFdLQ29va2llTWFuYWdlci5jcHAgKi87IH07CisJCTMzMDkzNDVCMTMxNUI5OTgwMDk3QTdCQyAv
KiBXS0Nvb2tpZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMzMDkzNDU5MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTMzMTUyOTc1
MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMxNTI5NzMxMzBEMENCMjAwRUQyNDgz
IC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5jcHAgKi87IH07CiAJCTMzMTUyOTc2MTMwRDBDQjIwMEVE
MjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMzMTUyOTc0MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0eU9y
aWdpbkRhdGEuaCAqLzsgfTsKIAkJMzMzNjc2MkYxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMzMzY3NjJDMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlci5jcHAgKi87IH07CkBAIC0xMDQ2LDYgKzEwNTYsMTggQEAKIAkJMjlDRDU1QTgxMjhFMjk0
RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3Np
YmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMkRCQ0Y1RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0MlByZWZpeC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXQyUHJlZml4Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzMDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29r
aWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
b2tpZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzA5
MzQ0NTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMzMDkzNDQ2MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb29raWVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzA5MzQ0QzEz
MTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJDb29raWVNYW5hZ2VyLmNwcDsgcGF0aCA9IENvb2tpZXMv
V2ViQ29va2llTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzMDkz
NDREMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXIuaDsgcGF0aCA9IENvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzA5MzQ0RTEz
MTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBXZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gQ29va2ll
cy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMzA5MzQ1MjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJQ
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzMDkzNDUzMTMxNUI5NzUw
MDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29va2llTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTMzMDkzNDU0MTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQ29va2llTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzA5MzQ1ODEz
MTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ29va2llTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMzMDkzNDU5MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb29raWVNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMTUyOTczMTMwRDBDQjIwMEVEMjQ4MyAvKiBT
ZWN1cml0eU9yaWdpbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VjdXJpdHlPcmlnaW5EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzMxNTI5NzQxMzBEMENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWN1cml0eU9yaWdpbkRhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMzNjc2MkMxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcDsgcGF0aCA9IFJlc291cmNlQ2FjaGUvV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3
Niw2ICsyMDk4LDE2IEBACiAJCQl0YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07
CisJCTMzMDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzMzA5MzQ0QzEzMTVCOTREMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlci5jcHAgKi8sCisJCQkJMzMwOTM0NEQxMzE1Qjk0RDAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXIuaCAqLywKKwkJCQkzMzA5MzQ0RTEzMTVCOTREMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQluYW1lID0gQ29v
a2llczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTMzMzY3NjJCMTMwQzk5
NzgwMDZDOURFMiAvKiBSZXNvdXJjZUNhY2hlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTIxNDUsNiArMjE3Nyw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQk1
MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb24gKi8sCisJCQkJMzMwOTM0
NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tpZXMgKi8sCiAJCQkJMUE2MTYxNEMxMjc3OThCNTAw
M0FDRDg2IC8qIERvd25sb2FkcyAqLywKIAkJCQlCQzBFNUZDQjEyRDY5NkREMDAxMkE3MkEgLyog
R2VvbG9jYXRpb24gKi8sCiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1IC8qIEluamVjdGVk
QnVuZGxlICovLApAQCAtMjI5MSw2ICsyMzI0LDkgQEAKIAkJCQk1MUE4NENFMjEyN0YzODZCMDBD
QTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgKi8sCiAJCQkJNTFBQ0JCODExMjdBOEJB
RDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHkuaCAqLywKIAkJCQlCQ0IwQjBEQjEyMzA1
QTI1MDBCMTM0MUUgLyogV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmggKi8sCisJCQkJMzMw
OTM0NTIxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgKi8sCisJ
CQkJMzMwOTM0NTMxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5oICov
LAorCQkJCTMzMDkzNDU0MTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4gKi8sCiAJCQkJRjYyQTc2NTkxMkIxQUJDMzAwMDVGMUI2IC8qIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQlGNjJBNzY1QTEyQjFBQkMzMDAwNUYxQjYgLyog
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCAqLywKIAkJCQlGNjJBNzY1QjEyQjFBQkMzMDAwNUYx
QjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC0yMzg0LDYg
KzI0MjAsOCBAQAogCQkJCUJDQjlFMjRBMTEyMEUxNUMwMEExMzdFMCAvKiBXS0NvbnRleHQuY3Bw
ICovLAogCQkJCUJDQjlFMjQ5MTEyMEUxNUMwMEExMzdFMCAvKiBXS0NvbnRleHQuaCAqLywKIAkJ
CQlCQ0M5MzhFMDExODBERTQ0MDA4NUU1RkUgLyogV0tDb250ZXh0UHJpdmF0ZS5oICovLAorCQkJ
CTMzMDkzNDU4MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuY3BwICovLAorCQkJ
CTMzMDkzNDU5MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuaCAqLywKIAkJCQk1
MTJGNThGMTEyQTg4QTU0MDA2Mjk1MzAgLyogV0tDcmVkZW50aWFsLmNwcCAqLywKIAkJCQk1MTJG
NThGMjEyQTg4QTU0MDA2Mjk1MzAgLyogV0tDcmVkZW50aWFsLmggKi8sCiAJCQkJNTE4QUNGMTAx
MkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVudGlhbFR5cGVzLmggKi8sCkBAIC0yODc0LDYgKzI5
MTIsMTAgQEAKIAkJCQk1MTJFMzVGNzEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQkNFRTdEMEIxMjg0NkY2OTAwOTgy
N0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUJDRUU3RDBDMTI4
NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZXMuaCAqLywKKwkJCQkzMzA5MzQ0MzEz
MTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJMzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdl
cy5oICovLAorCQkJCTMzMDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTMzMDkzNDQ2MTMxNUI5MjIwMDk3QTdC
QyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUY2MkE3NkIyMTJC
MUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCUY2MkE3NkIzMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJNZXNz
YWdlcy5oICovLAogCQkJCUY2MkE3NkI0MTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0zMjk5LDYgKzMzNDEsMTEgQEAK
IAkJCQkzMzM2NzY1NjEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2NTgxMzBDOUVDQjAwNkM5REUyIC8q
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzMxNTI5NzYxMzBEMENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMzMwOTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzMwOTM0NEExMzE1QjkyMjAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkz
MzA5MzQ1MDEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMzMwOTM0NTYxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzMwOTM0NUIxMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29v
a2llTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zNzkyLDYgKzM4MzksMTEgQEAKIAkJCQkz
MzM2NzY1NzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzE1Mjk3NTEzMEQwQ0IyMDBF
RDI0ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzRjlE
NUI5MTMxMkYxRUUwMDBENjgzRiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMzMDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzMDkzNDQ5MTMx
NUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMzMwOTM0NEYxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzMwOTM0NTUxMzE1Qjk3NTAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMzA5MzQ1
QTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3
OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTUzNiw2ICs1MzcsMTEgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQog
CisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5h
Z2VyPigpKSB7CisgICAgICAgIFdlYkNvb2tpZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
RGF0YWJhc2VNYW5hZ2VyPigpKSB7CiAgICAgICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVk
KCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwog
ICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMv
V2ViQ29va2llTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgor
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb29raWVNYW5hZ2Vy
JiBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
V2ViQ29va2llTWFuYWdlciwgc2hhcmVkLCAoKSk7CisgICAgcmV0dXJuIHNoYXJlZDsKK30KKwor
V2ViQ29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdlcigpCit7Cit9CisKK3ZvaWQgV2ViQ29v
a2llTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJDb29raWVN
YW5hZ2VyOjpnZXRDb29raWVIb3N0bmFtZXModWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBI
YXNoU2V0PFN0cmluZz4gaG9zdG5hbWVzOworCisgICAgLy8gRklYTUUgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvNTUwODY+OiBHZXQgYSBsaXN0IG9mIGFsbCBjb29raWVzLCBhbmQgYWRkIHRoZWlyIGhv
c3RuYW1lcyB0byB0aGUgc2V0IG9mIGhvc3RuYW1lcy4KKworICAgIFZlY3RvcjxTdHJpbmc+IGhv
c3RuYW1lTGlzdDsKKyAgICBjb3B5VG9WZWN0b3IoaG9zdG5hbWVzLCBob3N0bmFtZUxpc3QpOwor
CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldENvb2tpZUhvc3RuYW1lcyhob3N0bmFtZUxpc3Qs
IGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKK3sKKyAgICAvLyBGSVhNRSA8
aHR0cDovL3dlYmtpdC5vcmcvYi81NTA4Nj46IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMoKQorewor
ICAgIC8vIEZJWE1FIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU1MDg2PjogSW1wbGVtZW50LgorICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dl
YkNvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViQ29va2llTWFuYWdlcl9oCisjZGVmaW5lIFdlYkNvb2tpZU1hbmFnZXJf
aAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29k
ZXI7CisgICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworCitjbGFzcyBX
ZWJDb29raWVNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJDb29raWVNYW5h
Z2VyKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViQ29va2llTWFuYWdlciYgc2hhcmVkKCk7CisK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAg
IFdlYkNvb2tpZU1hbmFnZXIoKTsKKyAgICAKKyAgICB2b2lkIGdldENvb2tpZUhvc3RuYW1lcyh1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShj
b25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKTsKKworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDb29raWVNYW5hZ2VyX2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9X
ZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorIG1lc3NhZ2VzIC0+IFdlYkNv
b2tpZU1hbmFnZXIgeworICAgIHZvaWQgR2V0Q29va2llSG9zdG5hbWVzKHVpbnQ2NF90IGNhbGxi
YWNrSUQpCisgICAgdm9pZCBEZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV1RGOjpTdHJpbmcgaG9z
dG5hbWUpCisgICAgdm9pZCBEZWxldGVBbGxDb29raWVzKCkKK30KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi52Y3Byb2oJKHJldmlzaW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzk0LDYgKzEzOTQsMjIgQEAKIAkJCQkJ
PgogCQkJCTwvRmlsZT4KICAgICAgICAgICAgIDwvRmlsdGVyPgorICAgICAgICAgICAgPEZpbHRl
cgorICAgICAgICAgICAgICAgIE5hbWU9IkNvb2tpZXMiCisgICAgICAgICAgICAgICAgPgorICAg
ICAgICAgICAgICAgIDxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xDb29r
aWVzXFdlYkNvb2tpZU1hbmFnZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xDb29raWVzXFdlYkNvb2tpZU1hbmFn
ZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFdlYlByb2Nlc3NcQ29va2llc1xXZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorICAgICAgICAgICAgPC9GaWx0ZXI+CiAJCQk8RmlsdGVyCiAJCQkJ
TmFtZT0iV2ViQ29yZVN1cHBvcnQiCiAJCQkJPgpAQCAtMjM2Miw2ICsyMzc4LDE4IEBACiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29udGV4dE1lbnVQcm94eS5oIgogCQkJCT4K
IAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVBy
b2Nlc3NcV2ViQ29va2llTWFuYWdlclByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkNvb2tpZU1hbmFnZXJQcm94
eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxV
SVByb2Nlc3NcV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwv
RmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29udGV4
dFVzZXJNZXNzYWdlQ29kZXJzLmgiCiAJCQkJPgpAQCAtMjY2NCw2ICsyNjkyLDE0IEBACiAJCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1x3aW5cV0tDb250ZXh0V2luLmNwcCIK
IAkJCQkJCT4KIAkJCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICA8RmlsZQorCQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb29raWVNYW5hZ2VyLmNwcCIKKwkJ
CQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxV
SVByb2Nlc3NcQVBJXENcV0tDb29raWVNYW5hZ2VyLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4K
IAkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ3Jl
ZGVudGlhbC5jcHAiCiAJCQkJCQk+CkBAIC0zNDExLDYgKzM0NDcsMjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAgICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJDb29raWVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJDb29raWVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwkocmV2aXNp
b24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCSh3
b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2pl
Y3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Q
cm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRc
UGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNj
YXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
RG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9s
b2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUmVzb3VyY2VD
YWNoZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJ
bmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZh
dGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7
JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJk
aW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJD
b3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7IgorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
UGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hh
cmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9j
ZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nl
c3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
RG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVy
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
V2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdl
YkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
V2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxB
UElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5k
bGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
UmVzb3VyY2VDYWNoZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNs
dWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVv
dDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlw
dENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29y
ZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5j
bHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz0iX1VTUkRMTDtXRUJLSVRfRVhQT1JUUztGUkFNRVdPUktfTkFNRT1XZWJLaXQ7QlVJ
TERJTkdfV0VCS0lUIgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRI
ZWFkZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0MkdlbmVyYXRlZC5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyR2VuZXJhdGVkLm1ha2UJKHJldmlzaW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBA
QCBhbGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJk
TGlzdEl0ZW0uaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAg
ICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dC5oIiAiJUNvbmZpZ3Vy
YXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tDb250ZXh0UHJpdmF0ZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVc
aW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tD
b29raWVNYW5hZ2VyLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIi
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NyZWRlbnRpYWwuaCIgIiVD
b25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAi
Li5cVUlQcm9jZXNzXEFQSVxDXFdLQ3JlZGVudGlhbFR5cGVzLmgiICIlQ29uZmlndXJhdGlvbkJ1
aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xB
UElcQ1xXS0RhdGFiYXNlTWFuYWdlci5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVk
ZVxXZWJLaXQyIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83585</attachid>
            <date>2011-02-23 17:03:12 -0800</date>
            <delta_ts>2011-02-24 06:04:14 -0800</delta_ts>
            <desc>[PATCH] Fix v3 (Renaming)</desc>
            <filename>cookie_manager.patch</filename>
            <type>text/plain</type>
            <size>64391</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NDkwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODAgQEAKKzIwMTEtMDItMjMgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgV2ViS2l0MjogTmVlZCBhIHdheSB0byBt
YW5hZ2UgY29va2llcyBmcm9tIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUwODYKKyAgICAgICAgCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyB0aGUgcGx1bWJpbmcgYW5kIGNsYXNzZXMgdGhhdCBhcmUgbmVlZGVkIHRvIG1h
bmFnZSBjb29raWVzIGZyb20gdGhlIHdlYiBwcm9jZXNzLgorICAgICAgICBUaGUgZnVuY3Rpb25z
IHRoYXQgdGhlIEFQSSBjYWxscyBhcmUgY3VycmVudGx5IHN0dWJzLCBidXQgd2lsbCBiZSBpbXBs
ZW1lbnRlZCBpbiBhIGZvbGxvdy11cCBwYXRjaC4KKworICAgICAgICBQcm9qZWN0IGZpbGUgY2hh
bmdlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLnBybzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJLaXQy
LnByaToKKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorICAgICAg
ICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6CisgICAgICAgICogd2luL1dlYktpdDJHZW5l
cmF0ZWQubWFrZToKKworICAgICAgICBBZGQgc29tZSBuZWVkZWQgcGx1bWJpbmcgZm9yIFdlYkNv
b2tpZU1hbmFnZXJ7UHJveHl9LgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlE
Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9B
UElPYmplY3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4
dEdldENvb2tpZU1hbmFnZXIpOiBHZXRzIHRoZSBjb29raWUgbWFuYWdlciBwcm94eS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29va2llTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tDb29raWVNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llTWFuYWdlckdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKTogQ2FsbHMgdGhyb3VnaCB0byBXZWJDb29raWVNYW5hZ2VyUHJveHkuCisgICAgICAgIChX
S0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOiBEaXR0by4KKyAgICAgICAg
KFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMpOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmg6IEFkZGVkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBBZGQgYSBjYXNlIGZvciB0aGUgY29va2llIG1hbmFnZXIu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0OjpXZWJDb250ZXh0KTogSW5pdGlhbGl6ZSB0aGUgY29va2llIG1hbmFnZXIuCisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KTogSW52YWxpZGF0ZSB0aGUg
Y29va2llIG1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpc2Nvbm5lY3RQ
cm9jZXNzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVN
ZXNzYWdlKTogQWRkIGEgY2FzZSBmb3IgdGhlIGNvb2tpZSBtYW5hZ2VyLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNvb2tp
ZU1hbmFnZXJQcm94eSk6IFJldHVybnMgdGhlIGNvb2tpZSBtYW5hZ2VyLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKTogQWRkIGEgY2FzZSBmb3IgdGhlIGNvb2tpZSBtYW5hZ2VyLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6V2ViQ29va2llTWFuYWdlclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5Ojp+V2ViQ29va2llTWFuYWdlclBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjppbnZhbGlkYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVz
c2FnZSk6IAorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKTogQ2FsbCB0aHJvdWdoIHRvIHRoZSB3ZWIgcHJvY2VzcyB0byBnZXQg
b3JpZ2lucyB3aXRoIGNvb2tpZXMuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6ZGlkR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOiBDYWxsIHRoZSBjYWxsYmFjayB3ZSB3
ZXJlIHBhc3NlZCBpbiBnZXRDb29raWVPcmlnaW5zLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6IENhbGwgdGhyb3VnaCB0
byB0aGUgd2ViIHByb2Nlc3MgdG8gZGVsZXRlIGNvb2tpZXMKKyAgICAgICAgICAgIGZvciB0aGUg
b3JpZ2luLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFs
bENvb2tpZXMpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGRlbGV0ZSBhbGwg
Y29va2llcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6dHlwZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nvb2tpZXM6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZU1hbmFnZXI6OldlYkNvb2tpZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVN
YW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZSk6IENhbGwgdGhyb3VnaCB0byBkaWRSZWNlaXZlV2Vi
Q29va2llTWFuYWdlck1lc3NhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6
OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKTogQnVpbGQgYW4gYXJyYXkgZnJvbSBhIEhhc2hTZXQg
KHRoYXQgaXNuJ3QgZmlsbGVkIHlldCksIGFuZCAKKyAgICAgICAgICAgIGNvbnZlcnQgdGhhdCBI
YXNoU2V0IHRvIGEgVmVjdG9yIHRvIHNlbmQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6IEFkZGVk
IGEgc3R1Yi4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29v
a2llcyk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKwogMjAxMS0wMi0yMyAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDc5NDcyKQorKysgU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiAr
MjUsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAgICAgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQ29v
a2llcyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUgXApAQCAtNDgsNiArNDksOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAg
ICBQbHVnaW5Qcm94eSBcCiAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIgXAogICAgIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkgXAorICAgIFdlYkNvb2tpZU1hbmFnZXIgXAor
ICAgIFdlYkNvb2tpZU1hbmFnZXJQcm94eSBcCiAgICAgV2ViQ29udGV4dCBcCiAgICAgV2ViRGF0
YWJhc2VNYW5hZ2VyIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSBcCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQy
L0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsNyBAQCBWUEFU
SCA9IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUgXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAorICAgIFdlYlByb2Nlc3MvQ29v
a2llcyBcCiAgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAgICAgV2ViUHJvY2Vzcy9QbHVn
aW5zIFwKICAgICBXZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXApAQCAtOTUsNiArOTYsOCBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4g
XAogICAgIFBsdWdpblByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJDb250ZXh0Lm1lc3NhZ2Vz
LmluIFwKKyAgICBXZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKKyAgICBXZWJDb29raWVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlci5tZXNzYWdl
cy5pbiBcCiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQkod29y
a2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBsaWJXZWJLaXQyX2xhX0hFQURFUlMgPSBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggXAogCSQo
V2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKIAkkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29va2llTWFuYWdlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0Ny
ZWRlbnRpYWwuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlw
ZXMuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tEYXRhYmFzZU1hbmFnZXIuaCBc
CkBAIC0yOTcsNiArMjk4LDggQEAgbGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHRQcml2YXRlLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0Nvb2tpZU1hbmFnZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29va2llTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Ny
ZWRlbnRpYWwuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50
aWFsLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBl
cy5oIFwKQEAgLTM5OSw2ICs0MDIsOCBAQCBsaWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmggXAorCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eUNsaWVudC5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIFwKQEAgLTQ1Niw2
ICs0NjEsOCBAQCBsaWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RG93bmxvYWRzL2N1cmwvRG93bmxvYWRDdXJsLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZC5oIFwKQEAgLTY1OCw2ICs2NjUsNyBAQCBsaWJXZWJLaXQyX2xh
X0NQUEZMQUdTID0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MgXAog
CS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBc
CisJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzIFwKIAktSSQo
c3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2FkcyBcCiAJLUkkKHNyY2Rp
cikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsgXApAQCAtODEzLDYgKzgyMSwxMCBAQCB3ZWJr
aXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViQ29udGV4dE1lc3NhZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29v
a2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
Q29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZXMuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgXApAQCAtODYxLDYgKzg3Myw3IEBAIHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJL
aXQyKS9XZWJQcm9jZXNzIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKKwkkKFdlYktpdDIp
L1dlYlByb2Nlc3MvQ29va2llcyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9u
IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL1Jlc291cmNlQ2FjaGUgXApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkJKHJldmlzaW9uIDc5NDcyKQor
KysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQw
LDcgQEAgV0VCS0lUMl9JTkNMVURFUEFUSCA9IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9X
ZWJQcm9jZXNzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24gXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcyBcCiAg
ICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMgXAogICAgICQkU09V
UkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3F0IFwKICAgICAkJFNPVVJDRV9E
SVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShy
ZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSw2ICszNSw4IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMgPSBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ck1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvV2ViQ29udGV4dE1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFU19ESVIvV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggXAorICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1h
bmFnZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
YkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKQEAgLTU5LDYg
KzYxLDggQEAgV0VCS0lUMl9HRU5FUkFURURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb29raWVNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJD
b29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
XAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtMTY1
LDYgKzE2OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0
ZWRCdW5kbGVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIFwKKyAgICBVSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlD
bGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkRvd25sb2FkQ2xpZW50LmggXApAQCAtMTk1LDYg
KzIwMCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94
eVF0LmggXAogICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oIFwKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5o
IFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oIFwKICAgICBXZWJQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9HZW9sb2NhdGlv
bi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIFwKQEAgLTMzNyw2ICszNDMs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5h
Z2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3Bw
IFwKICAgICBVSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlDbGllbnQuY3BwIFwKICAg
ICBVSVByb2Nlc3MvV2ViRG93bmxvYWRDbGllbnQuY3BwIFwKQEAgLTM3NSw2ICszODIsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUHJlZmVyZW5jZXNRdC5jcHAgXAogICAg
IFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5j
cHAgXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24v
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAkocmV2aXNpb24gNzk0NzIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xh
c3NEcmF3aW5nQXJlYUxlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKICAg
ICBNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwKKyAgICBNZXNzYWdlQ2xh
c3NXZWJDb29raWVNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlciwK
ICAgICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdl
Q2xhc3NXZWJJbnNwZWN0b3IsCkBAIC01NCw2ICs1NSw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsK
ICAgICBNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LAogICAgIE1l
c3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeSwK
KyAgICBNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNz
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25N
YW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkluc3BlY3RvclByb3h5LApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaAkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGlj
OgogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0SXRlbSwKICAgICAgICAgVHlwZUNhY2hlTWFu
YWdlciwKICAgICAgICAgVHlwZUNvbnRleHQsCisgICAgICAgIFR5cGVDb29raWVNYW5hZ2VyLAog
ICAgICAgICBUeXBlRGF0YWJhc2VNYW5hZ2VyLAogICAgICAgICBUeXBlRG93bmxvYWQsCiAgICAg
ICAgIFR5cGVGb3JtU3VibWlzc2lvbkxpc3RlbmVyLApJbmRleDogU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaAkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDcgQEAgdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tCYWNrRm9yd2FyZExpc3RJdGVtKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyKiBXS1Jlc291cmNl
Q2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBX
S0NvbnRleHRSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Nvb2tpZU1hbmFnZXIq
IFdLQ29va2llTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ3JlZGVu
dGlhbCogV0tDcmVkZW50aWFsUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tEYXRh
YmFzZU1hbmFnZXIqIFdLRGF0YWJhc2VNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tEb3dubG9hZCogV0tEb3dubG9hZFJlZjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUg
IldlYkNvbnRleHRNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0VXNlck1lc3Nh
Z2VDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgiCkBAIC0xMTEs
NiArMTEyLDcgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvYwogICAg
ICwgbV9tZW1vcnlTYW1wbGVyRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxlcklu
dGVydmFsKDE0MDAuMCkKICAgICAsIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eShXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCisgICAgLCBtX2Nvb2tp
ZU1hbmFnZXJQcm94eShXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAs
IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHkoV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0
aGlzKSkKICAgICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdl
YlBsdWdpblNpdGVEYXRhTWFuYWdlcjo6Y3JlYXRlKHRoaXMpKQpAQCAtMTQwLDYgKzE0Miw5IEBA
IFdlYkNvbnRleHQ6On5XZWJDb250ZXh0KCkKICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkt
PmNsZWFyQ29udGV4dCgpOwogCisgICAgbV9jb29raWVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUo
KTsKKyAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CisKICAgICBtX2dl
b2xvY2F0aW9uTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9nZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CiAKQEAgLTI5Miw2ICsyOTcsNyBAQCB2b2lkIFdl
YkNvbnRleHQ6OmRpc2Nvbm5lY3RQcm9jZXNzKFdlYlByCiAgICAgbV9kb3dubG9hZHMuY2xlYXIo
KTsKIAogICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwor
ICAgIG1fY29va2llTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9kYXRhYmFzZU1h
bmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkt
PmludmFsaWRhdGUoKTsKICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRh
dGUoKTsKQEAgLTU2NCw2ICs1NzAsMTEgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAg
ICAgbV9jb29raWVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+
KCkpIHsKICAgICAgICAgbV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYkRhdGFi
YXNlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aAkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eTsKK2NsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5OwogY2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQ
YWdlR3JvdXA7CkBAIC0xMzYsNiArMTM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBIYXNoU2V0
PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBwZGZBbmRQb3N0U2NyaXB0TUlNRVR5cGVzKCk7CiAK
ICAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KiBhcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmdldCgpOyB9CisgICAgV2ViQ29va2llTWFuYWdlclByb3h5KiBjb29raWVNYW5hZ2VyUHJveHko
KSBjb25zdCB7IHJldHVybiBtX2Nvb2tpZU1hbmFnZXJQcm94eS5nZXQoKTsgfQogICAgIFdlYkRh
dGFiYXNlTWFuYWdlclByb3h5KiBkYXRhYmFzZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAgICBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2dlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
KiBwbHVnaW5TaXRlRGF0YU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpblNpdGVEYXRh
TWFuYWdlci5nZXQoKTsgfQpAQCAtMjIxLDYgKzIyMyw3IEBAIHByaXZhdGU6CiAgICAgZG91Ymxl
IG1fbWVtb3J5U2FtcGxlckludGVydmFsOwogCiAgICAgUmVmUHRyPFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk+IG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKKyAgICBSZWZQ
dHI8V2ViQ29va2llTWFuYWdlclByb3h5PiBtX2Nvb2tpZU1hbmFnZXJQcm94eTsKICAgICBSZWZQ
dHI8V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHk7CiAgICAg
UmVmUHRyPFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PiBtX2dlb2xvY2F0aW9uTWFuYWdlclBy
b3h5OwogICAgIFJlZlB0cjxXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI+IG1fcGx1Z2luU2l0ZURh
dGFNYW5hZ2VyOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29v
a2llTWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNp
bmNsdWRlICJXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0
LmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1Bhc3NSZWZQdHI8V2ViQ29va2llTWFuYWdlclByb3h5PiBXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29va2llTWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViQ29va2llTWFuYWdl
clByb3h5OjpXZWJDb29raWVNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKKyAgICA6
IG1fd2ViQ29udGV4dChjb250ZXh0KQoreworfQorCitXZWJDb29raWVNYW5hZ2VyUHJveHk6On5X
ZWJDb29raWVNYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6aW52YWxpZGF0ZSgpCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxs
YmFja3MpOworfQorCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlk
UmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5h
bWVzV2l0aENvb2tpZXMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKK3sK
KyAgICBBU1NFUlQobV93ZWJDb250ZXh0KTsKKworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBj
YWxsYmFjayA9IHBycENhbGxiYWNrOworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFBy
b2Nlc3MoKSkgeworICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIAorICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2Fs
bGJhY2tJRCgpOworICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNr
LnJlbGVhc2UoKSk7CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXI6OkdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNhbGxiYWNrSUQpLCAw
KTsKK30KKyAgICAKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRIb3N0bmFtZXNX
aXRoQ29va2llcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgaG9zdG5hbWVMaXN0LCB1aW50NjRfdCBj
YWxsYmFja0lEKQoreworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJy
YXlDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBpZiAoIWNhbGxiYWNrKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0LgorICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc2l6ZV90IGhvc3RuYW1lQ291bnQgPSBob3N0bmFtZUxpc3Quc2l6ZSgpOworICAg
IFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IGhvc3RuYW1lczsKKyAgICBob3N0bmFtZXMucmVz
ZXJ2ZUNhcGFjaXR5KGhvc3RuYW1lQ291bnQpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBob3N0bmFtZUNvdW50OyArK2kpCisgICAgICAgIGhvc3RuYW1lcy51bmNoZWNrZWRBcHBlbmQo
V2ViU3RyaW5nOjpjcmVhdGUoaG9zdG5hbWVMaXN0W2ldKSk7CisKKyAgICBjYWxsYmFjay0+cGVy
Zm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKEltbXV0YWJsZUFycmF5OjphZG9wdChob3N0bmFt
ZXMpLmdldCgpKTsKK30KKwordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tp
ZXNGb3JIb3N0bmFtZShTdHJpbmcgaG9zdG5hbWUpCit7CisgICAgQVNTRVJUKG1fd2ViQ29udGV4
dCk7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKQorICAgICAgICBy
ZXR1cm47CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkNv
b2tpZU1hbmFnZXI6OkRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShob3N0bmFtZSksIDApOworfQor
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcygpCit7CisgICAg
QVNTRVJUKG1fd2ViQ29udGV4dCk7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJv
Y2VzcygpKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNl
bmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMoKSwgMCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29va2llTWFuYWdlclByb3h5
X2gKKyNkZWZpbmUgV2ViQ29va2llTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFy
cmF5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAg
Y2xhc3MgQXJndW1lbnREZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3Mg
TWVzc2FnZUlEOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsK
KwordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKKwor
Y2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6
CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVDb29raWVNYW5hZ2VyOworCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29va2llTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29u
dGV4dCopOworICAgIHZpcnR1YWwgfldlYkNvb2tpZU1hbmFnZXJQcm94eSgpOworCisgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CisgICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1fd2ViQ29udGV4dCA9
IDA7IH0KKyAgICAKKyAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBhc3NSZWZQdHI8
QXJyYXlDYWxsYmFjaz4pOworICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFN0cmlu
ZyBob3N0bmFtZSk7CisgICAgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CisKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIFdlYkNvb2tpZU1h
bmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAgIHZvaWQgZGlkR2V0SG9zdG5hbWVzV2l0aENvb2tp
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICAKKyAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworCisgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OworICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkNvb2tpZU1hbmFnZXJQcm94eV9oCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21l
c3NhZ2VzIC0+IFdlYkNvb2tpZU1hbmFnZXJQcm94eSB7CisgICAgRGlkR2V0SG9zdG5hbWVzV2l0
aENvb2tpZXMoVmVjdG9yPFdURjo6U3RyaW5nPiBob3N0bmFtZXMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAJKHJldmlzaW9uIDc5NDcyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OSw2ICsyNDksNyBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5PigpCiAgICAgICAgIHx8IG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5PigpCiAgICAgICAg
IHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJDb29raWVNYW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5PigpCiAgICAgICAgIHx8
IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYg
KzUwLDcgQEAgY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbTsKIGNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJD
b250ZXh0OworY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQ3JlZGVudGlh
bDsKIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViRm9ybVN1Ym1pc3Np
b25MaXN0ZW5lclByb3h5OwpAQCAtNzQsNiArNzUsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tC
YWNrRm9yd2FyZExpc3RJdGVtCiBXS19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RS
ZWYsIFdlYkJhY2tGb3J3YXJkTGlzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyUmVmLCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLQ29udGV4dFJlZiwgV2ViQ29udGV4dCkKK1dLX0FERF9BUElfTUFQUElORyhXS0Nv
b2tpZU1hbmFnZXJSZWYsIFdlYkNvb2tpZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0NyZWRlbnRpYWxSZWYsIFdlYkNyZWRlbnRpYWwpCiBXS19BRERfQVBJX01BUFBJTkcoV0tE
YXRhYmFzZU1hbmFnZXJSZWYsIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLRG93bmxvYWRSZWYsIERvd25sb2FkUHJveHkpCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkocmV2aXNpb24gNzk0NzIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU4LDYgKzE1OCwxMSBAQCB2b2lkIFdLQ29udGV4dENsZWFyQXBwbGljYXRpb25DYWNo
ZShXS0NvCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jbGVhckFwcGxpY2F0aW9uQ2FjaGUoKTsK
IH0KIAorV0tDb29raWVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIoV0tDb250
ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVm
KS0+Y29va2llTWFuYWdlclByb3h5KCkpOworfQorCiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UmVmIFdLQ29udGV4dEdldEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPmFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHkoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oCShyZXZpc2lvbiA3OTQ3MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDYgKzEyNCw3
IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGwKIFdLX0VYUE9SVCB2
b2lkIFdLQ29udGV4dFN0b3BNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAog
V0tfRVhQT1JUIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0QXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLQ29v
a2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250
ZXh0KTsKIFdLX0VYUE9SVCBXS0RhdGFiYXNlTWFuYWdlclJlZiBXS0NvbnRleHRHZXREYXRhYmFz
ZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLR2VvbG9jYXRpb25N
YW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29u
dGV4dCk7CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFu
YWdlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tDb29raWVNYW5hZ2VyLmgiCisKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKwordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tDb29raWVNYW5hZ2VyR2V0VHlwZUlE
KCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViQ29va2llTWFuYWdlclByb3h5OjpBUElUeXBlKTsK
K30KKwordm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZiwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5h
Z2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKGNv
b2tpZU1hbmFnZXJSZWYpLT5nZXRIb3N0bmFtZXNXaXRoQ29va2llcyhBcnJheUNhbGxiYWNrOjpj
cmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwordm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxl
dGVDb29raWVzRm9ySG9zdG5hbWUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYs
IFdLU3RyaW5nUmVmIGhvc3RuYW1lKQoreworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+
ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKHRvSW1wbChob3N0bmFtZSktPnN0cmluZygpKTsKK30K
Kwordm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdlclJl
ZiBjb29raWVNYW5hZ2VyUmVmKQoreworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+ZGVs
ZXRlQWxsQ29va2llcygpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29va2llTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tDb29raWVNYW5hZ2VyX2gKKyNkZWZpbmUg
V0tDb29raWVNYW5hZ2VyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlE
IFdLQ29va2llTWFuYWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1h
bmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwg
dm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdL
Q29va2llTWFuYWdlckdldENvb2tpZUhvc3RuYW1lc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKworV0tf
RVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS1N0cmluZ1JlZiBob3N0bmFtZSk7CitXS19F
WFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdl
clJlZiBjb29raWVNYW5hZ2VyKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKwor
I2VuZGlmIC8vIFdLQ29va2llTWFuYWdlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3OTQ5MCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMjQ1LDYgKzI0NSwxNiBAQAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyog
V2ViSW5zcGVjdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAq
LzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAq
LzsgfTsKIAkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1t
ICovOyB9OworCQkzMzA5MzQ0NzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMzA5MzQ0MzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CisJCTMzMDkzNDQ4MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJD
b29raWVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzMDkzNDQ0MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZXMuaCAqLzsgfTsKKwkJMzMwOTM0NDkxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29v
a2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzMwOTM0NEExMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NjEzMTVCOTIyMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJMzMwOTM0
NEYxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NEMxMzE1Qjk0RDAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXIuY3BwICovOyB9OworCQkzMzA5MzQ1MDEzMTVCOTREMDA5N0E3
QkMgLyogV2ViQ29va2llTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzMwOTM0NEQxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXIuaCAqLzsgfTsKKwkJMzMwOTM0NTUxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMzA5MzQ1MjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmNwcCAq
LzsgfTsKKwkJMzMwOTM0NTYxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0
NTMxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5oICovOyB9OworCQkz
MzA5MzQ1QTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDU4MTMxNUI5OTgwMDk3
QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuY3BwICovOyB9OworCQkzMzA5MzQ1QjEzMTVCOTk4MDA5
N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ1OTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQkz
MzE1Mjk3NTEzMEQwQ0IyMDBFRDI0ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMTUyOTczMTMwRDBDQjIw
MEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuY3BwICovOyB9OwogCQkzMzE1Mjk3NjEzMEQw
Q0IyMDBFRDI0ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzE1Mjk3NDEzMEQwQ0IyMDBFRDI0ODMgLyogU2Vj
dXJpdHlPcmlnaW5EYXRhLmggKi87IH07CiAJCTMzMzY3NjJGMTMwQzk5OTgwMDZDOURFMiAvKiBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYyQzEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXIuY3BwICovOyB9OwpAQCAtMTA0Niw2ICsxMDU2LDE4IEBACiAJCTI5Q0Q1NUE4
MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyog
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzJEQkNGNUUwMzcwQURFRTAwQzkxNzgzIC8qIFdlYktpdDJQcmVm
aXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0MlByZWZpeC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzA5MzQ0MzEzMTVCOTIyMDA5N0E3QkMgLyog
V2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdl
YkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzMwOTM0NDUxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJD
b29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzMzA5MzQ0NjEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29va2ll
TWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMw
OTM0NEMxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQ29va2llTWFuYWdlci5jcHA7IHBhdGggPSBD
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMzA5MzQ0RDEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJDb29raWVNYW5hZ2VyLmg7IHBhdGggPSBDb29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMw
OTM0NEUxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9
IENvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzMwOTM0NTIxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb29raWVN
YW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzA5MzQ1MzEz
MTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMzA5MzQ1NDEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNvb2tpZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMw
OTM0NTgxMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2llTWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0Nvb2tpZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMzA5MzQ1OTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29va2llTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzE1Mjk3MzEzMEQwQ0IyMDBFRDI0
ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNlY3VyaXR5T3JpZ2luRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMzMTUyOTc0MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjdXJpdHlPcmlnaW5EYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMzY3NjJDMTMwQzk5OTgwMDZDOURFMiAvKiBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHA7IHBhdGggPSBSZXNvdXJjZUNhY2hl
L1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwNzYsNiArMjA5OCwxNiBAQAogCQkJdGFiV2lkdGggPSA4OwogCQkJdXNlc1RhYnMgPSAw
OwogCQl9OworCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzMwOTM0NEMxMzE1Qjk0RDAw
OTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuY3BwICovLAorCQkJCTMzMDkzNDREMTMxNUI5NEQw
MDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggKi8sCisJCQkJMzMwOTM0NEUxMzE1Qjk0RDAw
OTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJbmFt
ZSA9IENvb2tpZXM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkzMzM2NzYy
QjEzMEM5OTc4MDA2QzlERTIgLyogUmVzb3VyY2VDYWNoZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTQ1LDYgKzIxNzcsNyBAQAogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0aW9uQ2FjaGUgKi8s
CiAJCQkJNTEyRjU4ODYxMkE4ODM0NzAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovLAorCQkJ
CTMzMDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICovLAogCQkJCTFBNjE2MTRDMTI3
Nzk4QjUwMDNBQ0Q4NiAvKiBEb3dubG9hZHMgKi8sCiAJCQkJQkMwRTVGQ0IxMkQ2OTZERDAwMTJB
NzJBIC8qIEdlb2xvY2F0aW9uICovLAogCQkJCUJDMjA0RURGMTFDODNFNzIwMDhGMzM3NSAvKiBJ
bmplY3RlZEJ1bmRsZSAqLywKQEAgLTIyOTEsNiArMjMyNCw5IEBACiAJCQkJNTFBODRDRTIxMjdG
Mzg2QjAwQ0E2RUE0IC8qIFdlYkNvbnRleHRNZW51UHJveHkuY3BwICovLAogCQkJCTUxQUNCQjgx
MTI3QThCQUQwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5LmggKi8sCiAJCQkJQkNCMEIw
REIxMjMwNUEyNTAwQjEzNDFFIC8qIFdlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oICovLAor
CQkJCTMzMDkzNDUyMTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHkuY3Bw
ICovLAorCQkJCTMzMDkzNDUzMTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCAqLywKKwkJCQkzMzA5MzQ1NDEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUY2MkE3NjU5MTJCMUFCQzMwMDA1RjFCNiAvKiBX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJRjYyQTc2NUExMkIxQUJDMzAwMDVG
MUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5LmggKi8sCiAJCQkJRjYyQTc2NUIxMkIxQUJD
MzAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLApAQCAt
MjM4NCw2ICsyNDIwLDggQEAKIAkJCQlCQ0I5RTI0QTExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250
ZXh0LmNwcCAqLywKIAkJCQlCQ0I5RTI0OTExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0Lmgg
Ki8sCiAJCQkJQkNDOTM4RTAxMTgwREU0NDAwODVFNUZFIC8qIFdLQ29udGV4dFByaXZhdGUuaCAq
LywKKwkJCQkzMzA5MzQ1ODEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCAq
LywKKwkJCQkzMzA5MzQ1OTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmggKi8s
CiAJCQkJNTEyRjU4RjExMkE4OEE1NDAwNjI5NTMwIC8qIFdLQ3JlZGVudGlhbC5jcHAgKi8sCiAJ
CQkJNTEyRjU4RjIxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQ3JlZGVudGlhbC5oICovLAogCQkJCTUx
OEFDRjEwMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oICovLApAQCAtMjg3
NCw2ICsyOTEyLDEwIEBACiAJCQkJNTEyRTM1RjcxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUJDRUU3RDBCMTI4NDZG
NjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlCQ0VF
N0QwQzEyODQ2RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VzLmggKi8sCisJCQkJMzMw
OTM0NDMxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCTMzMDkzNDQ0MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZXMuaCAqLywKKwkJCQkzMzA5MzQ0NTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzMzA5MzQ0NjEzMTVCOTIy
MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlGNjJB
NzZCMjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQlGNjJBNzZCMzEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5h
Z2VyTWVzc2FnZXMuaCAqLywKIAkJCQlGNjJBNzZCNDEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMzI5OSw2ICszMzQx
LDExIEBACiAJCQkJMzMzNjc2NTYxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMzY3NjU4MTMwQzlFQ0IwMDZD
OURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMzMTUyOTc2MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEu
aCBpbiBIZWFkZXJzICovLAorCQkJCTMzMDkzNDQ4MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29r
aWVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzMDkzNDRBMTMxNUI5MjIw
MDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzMwOTM0NTAxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTMzMDkzNDU2MTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzMDkzNDVCMTMxNUI5OTgwMDk3QTdCQyAv
KiBXS0Nvb2tpZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzc5Miw2ICszODM5LDExIEBA
CiAJCQkJMzMzNjc2NTcxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMxNTI5NzUxMzBE
MENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzM0Y5RDVCOTEzMTJGMUVFMDAwRDY4M0YgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJDRk5l
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMzA5MzQ0NzEzMTVCOTIyMDA5N0E3QkMgLyogV2Vi
Q29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMzA5
MzQ0OTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzMDkzNDRGMTMxNUI5NEQwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzMDkzNDU1MTMxNUI5NzUw
MDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MzMwOTM0NUExMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2llTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2
aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNl
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCkBAIC01MzYsNiArNTM3LDExIEBAIHZv
aWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29v
a2llTWFuYWdlcj4oKSkgeworICAgICAgICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYkRhdGFiYXNlTWFuYWdlcj4oKSkgewogICAgICAgICBXZWJEYXRhYmFzZU1hbmFnZXI6
OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJNZXNzYWdl
SUQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJDb29r
aWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0
eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29va2ll
TWFuYWdlciYgV2ViQ29va2llTWFuYWdlcjo6c2hhcmVkKCkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFdlYkNvb2tpZU1hbmFnZXIsIHNoYXJlZCwgKCkpOworICAgIHJldHVybiBzaGFyZWQ7
Cit9CisKK1dlYkNvb2tpZU1hbmFnZXI6OldlYkNvb2tpZU1hbmFnZXIoKQoreworfQorCit2b2lk
IFdlYkNvb2tpZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXModWludDY0X3QgY2FsbGJhY2tJ
RCkKK3sKKyAgICBIYXNoU2V0PFN0cmluZz4gaG9zdG5hbWVzOworCisgICAgLy8gRklYTUUgPGh0
dHA6Ly93ZWJraXQub3JnL2IvNTUwODY+OiBHZXQgYSBsaXN0IG9mIGFsbCBjb29raWVzLCBhbmQg
YWRkIHRoZWlyIGhvc3RuYW1lcyB0byB0aGUgc2V0IG9mIGhvc3RuYW1lcy4KKworICAgIFZlY3Rv
cjxTdHJpbmc+IGhvc3RuYW1lTGlzdDsKKyAgICBjb3B5VG9WZWN0b3IoaG9zdG5hbWVzLCBob3N0
bmFtZUxpc3QpOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKGhvc3RuYW1lTGlzdCwgY2FsbGJhY2tJRCksIDApOworfQorCit2b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQor
eworICAgIC8vIEZJWE1FIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU1MDg2PjogSW1wbGVtZW50Lgor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRl
QWxsQ29va2llcygpCit7CisgICAgLy8gRklYTUUgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTUwODY+
OiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2ll
cy9XZWJDb29raWVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb29raWVNYW5hZ2VyX2gKKyNkZWZpbmUg
V2ViQ29va2llTWFuYWdlcl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworICAgIGNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBDb25uZWN0aW9uOworICAgIGNsYXNzIE1l
c3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTZWN1cml0eU9yaWdp
bkRhdGE7CisKK2NsYXNzIFdlYkNvb2tpZU1hbmFnZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFdlYkNvb2tpZU1hbmFnZXIpOworcHVibGljOgorICAgIHN0YXRpYyBXZWJDb29raWVNYW5h
Z2VyJiBzaGFyZWQoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisKK3ByaXZhdGU6CisgICAgV2ViQ29va2llTWFuYWdlcigpOworICAgIAorICAgIHZvaWQgZ2V0
SG9zdG5hbWVzV2l0aENvb2tpZXModWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxl
dGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkZWxldGVBbGxD
b29raWVzKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2Vi
Q29va2llTWFuYWdlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMv
V2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KyAKKyBtZXNzYWdlcyAtPiBXZWJDb29raWVNYW5hZ2VyIHsKKyAgICB2b2lkIEdldEhvc3RuYW1l
c1dpdGhDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVDb29raWVz
Rm9ySG9zdG5hbWUoV1RGOjpTdHJpbmcgaG9zdG5hbWUpCisgICAgdm9pZCBEZWxldGVBbGxDb29r
aWVzKCkKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHJldmlzaW9uIDc5NDcy
KQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzk0LDYgKzEzOTQsMjIgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KICAgICAgICAgICAgIDwv
RmlsdGVyPgorICAgICAgICAgICAgPEZpbHRlcgorICAgICAgICAgICAgICAgIE5hbWU9IkNvb2tp
ZXMiCisgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xDb29raWVzXFdlYkNvb2tpZU1hbmFnZXIuY3BwIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJv
Y2Vzc1xDb29raWVzXFdlYkNvb2tpZU1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQ29va2llc1xXZWJDb29r
aWVNYW5hZ2VyLm1lc3NhZ2VzLmluIgorCQkJCQk+CisJCQkJPC9GaWxlPgorICAgICAgICAgICAg
PC9GaWx0ZXI+CiAJCQk8RmlsdGVyCiAJCQkJTmFtZT0iV2ViQ29yZVN1cHBvcnQiCiAJCQkJPgpA
QCAtMjM2Miw2ICsyMzc4LDE4IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2Vi
Q29udGV4dE1lbnVQcm94eS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXFdlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29va2llTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgiCiAJCQkJPgpA
QCAtMjY2NCw2ICsyNjkyLDE0IEBACiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xB
UElcQ1x3aW5cV0tDb250ZXh0V2luLmNwcCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgorICAgICAg
ICAgICAgICAgICAgICA8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJ
XENcV0tDb29raWVNYW5hZ2VyLmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8Rmls
ZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb29raWVNYW5hZ2Vy
LmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ3JlZGVudGlhbC5jcHAiCiAJCQkJCQk+CkBAIC0zNDEx
LDYgKzM0NDcsMjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAgICAgICAgICAgICA8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJDb29raWVN
YW5hZ2VyTWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkNvb2tpZU1h
bmFnZXJQcm94eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyQ29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJDb21tb24udnNwcm9wcwkocmV2aXNpb24gNzk0NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQAog
CT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxj
ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFNoYXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxB
UElcY1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxD
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxV
SVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
V2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVj
dGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3Rl
ZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5q
ZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJ
bmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNc
TmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcUmVzb3VyY2VDYWNoZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90
OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVc
cHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFk
cyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxKYXZhU2NyaXB0
Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRl
XEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRl
XEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRl
XHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7Igor
CQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3Jt
XENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQ
Q1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3Bw
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBw
bGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0
aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tp
ZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUmVzb3VyY2VDYWNoZSZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVk
ZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0
aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJz
JnF1b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtXRUJLSVRfRVhQT1JU
UztGUkFNRVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJTkdfV0VCS0lUIgogCQlVc2VQcmVjb21waWxl
ZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4Lmgi
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UJKHJldmlzaW9u
IDc5NDcyKQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJ
UHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCIgIiVDb25maWd1cmF0aW9uQnVp
bGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLQ29udGV4dC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQy
IgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb250ZXh0UHJpdmF0ZS5o
IiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95
IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb29raWVNYW5hZ2VyLmgiICIlQ29uZmlndXJhdGlv
bkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vz
c1xBUElcQ1xXS0NyZWRlbnRpYWwuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVc
V2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ3JlZGVudGlh
bFR5cGVzLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAg
eGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0RhdGFiYXNlTWFuYWdlci5oIiAiJUNv
bmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgo=
</data>
<flag name="review"
          id="75427"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83859</attachid>
            <date>2011-02-25 11:50:49 -0800</date>
            <delta_ts>2011-02-25 12:50:45 -0800</delta_ts>
            <desc>[PATCH] Cookie Managing</desc>
            <filename>cookie_managing_jar.patch</filename>
            <type>text/plain</type>
            <size>15289</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NzEwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDItMjUgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIGNv
b2tpZXMgZnJvbSB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU1MDg2CisgICAgICAgIAorICAgICAgICBJbXBsZW1lbnQgdGhl
IGZ1bmN0aW9ucyBuZWVkZWQgdG8gbWFuYWdlIGNvb2tpZXMgaW4gQ29va2llSmFyIChnZXRIb3N0
bmFtZXNXaXRoQ29va2llcywKKyAgICAgICAgZGVsZXRlQ29va2llc1dpdGhIb3N0bmFtZSwgYW5k
IGRlbGV0ZUFsbENvb2tpZXMpIGZvciBNYWMgYW5kIENGTmV0d29yayAoc3R1YiBvdXQgdGhlIHJl
c3QpLAorICAgICAgICBhbmQgY2FsbCB0aGVtIGZyb20gV2ViS2l0MidzIFdlYkNvb2tpZU1hbmFn
ZXIuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZGVkIG5lZWRlZCBmdW5jdGlvbnMgdG8gZXhwb3J0LgorICAgICAgICAqIHBs
YXRmb3JtL0Nvb2tpZUphci5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL0Nvb2tpZUphci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKTogR2V0cyBhbGwg
aG9zdG5hbWVzIHdpdGggY29va2llcyBmcm9tIE5TSFRUUENvb2tpZVN0b3JhZ2UuCisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOiBEZWxldGVzIGFsbCBjb29raWVz
IHdpdGggYSBnaXZlbiBob3N0bmFtZSBmcm9tCisgICAgICAgICAgICBOU0hUVFBDb29raWVTdG9y
YWdlLgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcyk6IERlbGV0ZXMgYWxsIGNv
b2tpZXMgZnJvbSBOU0hUVFBDb29raWVTdG9yYWdlLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omdl
dEhvc3RuYW1lc1dpdGhDb29raWVzKTogSW1wbGVtZW50IHVzaW5nIENGTmV0d29yayBjb29raWUg
QVBJcy4KKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcyk6IERpdHRvLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL0Nvb2tpZUphckVmbC5jcHA6IEFkZGVkIHN0dWIgZnVuY3Rpb25zLgor
ICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L0Nvb2tpZUphckhhaWt1LmNwcDogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL0Nvb2tpZUphckFuZHJvaWQuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL0Nvb2tpZUphckNocm9taXVt
LmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1
cmwuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFy
U291cC5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL0Nvb2tpZUph
cldpbi5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3F0L0Nvb2tpZUphclF0LmNwcDog
RGl0dG8uCisKIDIwMTEtMDItMjUgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgko
cmV2aXNpb24gNzk1OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNDUzLDYgKzQ1Myw3IEBAIF9fWk43V2ViQ29yZTE2VmlzaWJsZVNlbGVjdGlv
bkMxRVJLTlNfMTUKIF9fWk43V2ViQ29yZTE2Y29sb3JGcm9tTlNDb2xvckVQN05TQ29sb3IKIF9f
Wk43V2ViQ29yZTE2Y3JlYXRlRnVsbE1hcmt1cEVQS05TXzROb2RlRQogX19aTjdXZWJDb3JlMTZj
cmVhdGVGdWxsTWFya3VwRVBLTlNfNVJhbmdlRQorX19aTjdXZWJDb3JlMTZkZWxldGVBbGxDb29r
aWVzRXYKIF9fWk43V2ViQ29yZTE2ZW5jbG9zaW5nSW50UmVjdEVSSzdfTlNSZWN0CiBfX1pON1dl
YkNvcmUxNmVuY2xvc2luZ0ludFJlY3RFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTZp
c0VuZE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FTlNfMjdFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGVFCkBAIC01NDUsNiArNTQ2LDcgQEAgX19aTjdXZWJDb3JlMjJleHRlcm5h
bFJlcHJlc2VudGF0aW9uRVBOUwogX19aTjdXZWJDb3JlMjNBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUMxRVJLTlNfMTVQcm90ZWN0aW9uU3BhY2VFUktOU18xMENyZWRlbnRpYWxFalJLTlNfMTZSZXNv
dXJjZVJlc3BvbnNlRVJLTlNfMTNSZXNvdXJjZUVycm9yRQogX19aTjdXZWJDb3JlMjNSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1lbnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZE
b2N1bWVudEZyYWdtZW50RUVFak5TXzEwRWRpdEFjdGlvbkUKIF9fWk43V2ViQ29yZTIzY3JlYXRl
RnJhZ21lbnRGcm9tTm9kZXNFUE5TXzhEb2N1bWVudEVSS04zV1RGNlZlY3RvcklQTlNfNE5vZGVF
TG0wRUVFCitfX1pON1dlYkNvcmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJOM1dURjdIYXNo
U2V0SU5TMF82U3RyaW5nRU5TMF8xMFN0cmluZ0hhc2hFTlMwXzEwSGFzaFRyYWl0c0lTMl9FRUVF
CiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVsdExhbmd1YWdlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRlUHJvcGVydHlMaXN0
RXYKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJz
RWoKQEAgLTU1NSw2ICs1NTcsNyBAQCBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ0l0
YWxpY0V2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1N0eWxlc0V2CiBfX1pON1dl
YkNvcmUyNGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cEVQTlNfOERvY3VtZW50RVJLTjNXVEY2U3Ry
aW5nRVM1X05TXzI3RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uRQogX19aTjdXZWJDb3JlMjRk
ZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUyNGRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTI0Zmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRub3Rp
ZnlIaXN0b3J5SXRlbUNoYW5nZWRFCiBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RX
cml0ZXIxMXJlbGVhc2VEYXRhRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tp
ZUphci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5o
CShyZXZpc2lvbiA3OTU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIENvb2tpZUphcl9oCiAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw2ICs0NiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50KiwgY29uc3QgS1VSTCYsIFZl
Y3RvcjxDb29raWU+Jik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1lbnQqLCBj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJik7CiAKKyAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhD
b29raWVzKEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tp
ZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKKyAgICB2b2lkIGRlbGV0ZUFs
bENvb2tpZXMoKTsKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9Db29raWVKYXJFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9Db29raWVKYXJFZmwuY3BwCShyZXZpc2lvbiA3OTU5OCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Db29raWVKYXJFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw0
ICs1MiwxOSBAQCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50KiBkb2N1CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxT
dHJpbmc+JiBob3N0bmFtZXMpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQK
K30KKwordm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJiBob3N0bmFt
ZSkKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCit2b2lkIGRlbGV0
ZUFsbENvb2tpZXMoKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0Nvb2tpZUphckhhaWt1LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Db29raWVKYXJI
YWlrdS5jcHAJKHJldmlzaW9uIDc5NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFp
a3UvQ29va2llSmFySGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw1ICs3NSwyMCBAQCB2
b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0CiAgICAgLy8gRklYTUU6IE5v
dCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhIYXNo
U2V0PFN0cmluZz4mIGhvc3RuYW1lcykKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1l
bnRlZAorfQorCit2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhv
c3RuYW1lKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKK3ZvaWQg
ZGVsZXRlQWxsQ29va2llcygpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvQ29va2llSmFyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9Db29raWVKYXIubW0JKHJldmlzaW9uIDc5NTk4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0Nvb2tpZUphci5tbQkod29ya2luZyBjb3B5KQpAQCAtMTc3LDQgKzE3Nyw0
NiBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0CiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAordm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhI
YXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcykKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgCisgICAgTlNIVFRQQ29va2llU3RvcmFnZSAqY29va2llU3RvcmFnZSA9IFtO
U0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXTsKKyAgICBOU0FycmF5
ICpjb29raWVzID0gW2Nvb2tpZVN0b3JhZ2UgY29va2llc107CisgICAgCisgICAgTlNVSW50ZWdl
ciBjb3VudCA9IFtjb29raWVzIGNvdW50XTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkg
PCBjb3VudDsgKytpKSB7CisgICAgICAgIE5TSFRUUENvb2tpZSAqY29va2llID0gKE5TSFRUUENv
b2tpZSAqKVtjb29raWVzIG9iamVjdEF0SW5kZXg6aV07CisgICAgICAgIGhvc3RuYW1lcy5hZGQo
W2Nvb2tpZSBkb21haW5dKTsKKyAgICB9CisgICAgCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKK30KKwordm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJiBo
b3N0bmFtZSkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgCisgICAg
TlNIVFRQQ29va2llU3RvcmFnZSAqY29va2llU3RvcmFnZSA9IFtOU0hUVFBDb29raWVTdG9yYWdl
IHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXTsKKyAgICBOU0FycmF5ICpjb29raWVzID0gW2Nvb2tp
ZVN0b3JhZ2UgY29va2llc107CisgICAgCisgICAgTlNJbnRlZ2VyIGNvdW50ID0gW2Nvb2tpZXMg
Y291bnRdOworICAgIGZvciAoTlNJbnRlZ2VyIGkgPSBjb3VudCAtIDE7IGkgPj0gMDsgaS0tKSB7
CisgICAgICAgIE5TSFRUUENvb2tpZSAqY29va2llID0gKE5TSFRUUENvb2tpZSAqKVtjb29raWVz
IG9iamVjdEF0SW5kZXg6aV07CisgICAgICAgIGlmIChob3N0bmFtZSA9PSBTdHJpbmcoW2Nvb2tp
ZSBkb21haW5dKSkKKyAgICAgICAgICAgIFtjb29raWVTdG9yYWdlIGRlbGV0ZUNvb2tpZTpjb29r
aWVdOworICAgIH0KKyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworfQorCit2
b2lkIGRlbGV0ZUFsbENvb2tpZXMoKQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICAKKyAgICAKKyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworfQor
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2FuZHJvaWQvQ29va2ll
SmFyQW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9hbmRyb2lkL0Nvb2tpZUphckFuZHJvaWQuY3BwCShyZXZpc2lvbiA3OTU5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9Db29raWVKYXJBbmRyb2lkLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTIsNCArNTIsMTkgQEAgYm9vbCBjb29raWVzRW5hYmxlZChj
b25zdCBEb2N1bWVudCogZG9jdQogICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6Y29va2llc0Vu
YWJsZWQoZG9jdW1lbnQpOwogfQogCit2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKEhhc2hT
ZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVu
dGVkCit9CisKK3ZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9z
dG5hbWUpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKK30KKwordm9pZCBk
ZWxldGVBbGxDb29raWVzKCkKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAor
fQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUph
ckNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL0Nvb2tpZUphckNGTmV0LmNwcAkocmV2aXNpb24gNzk1OTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjMzLDYgKzIzMyw0NiBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNv
bnN0CiAgICAgfQogfQogCit2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKEhhc2hTZXQ8U3Ry
aW5nPiYgaG9zdG5hbWVzKQoreworICAgIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3Rv
cmFnZSA9IGN1cnJlbnRDb29raWVTdG9yYWdlKCk7CisgICAgaWYgKCFjb29raWVTdG9yYWdlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gY29va2llc0NGKEFk
b3B0Q0YsIENGSFRUUENvb2tpZVN0b3JhZ2VDb3B5Q29va2llcyhjb29raWVTdG9yYWdlKSk7Cisg
ICAgQ0ZJbmRleCBjb3VudCA9IGNvb2tpZXNDRiA/IENGQXJyYXlHZXRDb3VudChjb29raWVzQ0Yu
Z2V0KCkpIDogMDsKKyAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Cisg
ICAgICAgIENGSFRUUENvb2tpZVJlZiBjb29raWUgPSBzdGF0aWNfY2FzdDxDRkhUVFBDb29raWVS
ZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoY29va2llc0NGLmdldCgpLCBpKSk7CisgICAgICAg
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZG9tYWluID0gY29va2llRG9tYWluKGNvb2tpZSk7Cisg
ICAgICAgIGhvc3RuYW1lcy5hZGQoZG9tYWluLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgZGVs
ZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCit7CisgICAgQ0ZI
VFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlID0gY3VycmVudENvb2tpZVN0b3JhZ2Uo
KTsKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFJldGFp
blB0cjxDRkFycmF5UmVmPiBjb29raWVzQ0YoQWRvcHRDRiwgQ0ZIVFRQQ29va2llU3RvcmFnZUNv
cHlDb29raWVzKGNvb2tpZVN0b3JhZ2UpKTsKKyAgICBDRkluZGV4IGNvdW50ID0gY29va2llc0NG
ID8gQ0ZBcnJheUdldENvdW50KGNvb2tpZXNDRi5nZXQoKSkgOiAwOworICAgIGZvciAoQ0ZJbmRl
eCBpID0gY291bnQgLSAxOyBpID49MDsgaS0tKSB7CisgICAgICAgIENGSFRUUENvb2tpZVJlZiBj
b29raWUgPSBzdGF0aWNfY2FzdDxDRkhUVFBDb29raWVSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5k
ZXgoY29va2llc0NGLmdldCgpLCBpKSk7CisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
ZG9tYWluID0gY29va2llRG9tYWluKGNvb2tpZSk7CisgICAgICAgIGlmIChTdHJpbmcoZG9tYWlu
LmdldCgpKSA9PSBob3N0bmFtZSkKKyAgICAgICAgICAgIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxl
dGVDb29raWUoY29va2llU3RvcmFnZSwgY29va2llKTsKKyAgICB9Cit9CisKK3ZvaWQgZGVsZXRl
QWxsQ29va2llcygpCit7CisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdl
ID0gY3VycmVudENvb2tpZVN0b3JhZ2UoKTsKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxldGVBbGxDb29raWVzKGNv
b2tpZVN0b3JhZ2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBV
U0UoQ0ZORVRXT1JLKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9Db29raWVKYXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9Db29raWVKYXJDaHJvbWl1bS5jcHAJKHJldmlzaW9u
IDc5NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9Db29r
aWVKYXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDQgKzY3LDE5IEBAIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50KiBkb2N1bWUKICAgICByZXR1cm4gUGxhdGZvcm1C
cmlkZ2U6OmRlbGV0ZUNvb2tpZShkb2N1bWVudCwgdXJsLCBjb29raWVOYW1lKTsKIH0KIAordm9p
ZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcykKK3sK
KyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCit2b2lkIGRlbGV0ZUNvb2tp
ZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQoreworICAgIC8vIEZJWE1FOiBO
b3QgeWV0IGltcGxlbWVudGVkCit9CisKK3ZvaWQgZGVsZXRlQWxsQ29va2llcygpCit7CisgICAg
Ly8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1
cmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmNwcAkocmV2aXNpb24gNzk1OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY4LDQgKzY4LDE5IEBAIHZvaWQgc2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0VuYWIK
IH0KICNlbmRpZgogCit2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKEhhc2hTZXQ8U3RyaW5n
PiYgaG9zdG5hbWVzKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisK
K3ZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCit7
CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKK30KKwordm9pZCBkZWxldGVBbGxD
b29raWVzKCkKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nv
b2tpZUphclNvdXAuY3BwCShyZXZpc2lvbiA3OTU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIy
LDQgKzEyMiwxOSBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0CiAg
ICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBnZXRIb3N0bmFtZXNX
aXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcykKK3sKKyAgICAvLyBGSVhNRTog
Tm90IHlldCBpbXBsZW1lbnRlZAorfQorCit2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShj
b25zdCBTdHJpbmcmIGhvc3RuYW1lKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVu
dGVkCit9CisKK3ZvaWQgZGVsZXRlQWxsQ29va2llcygpCit7CisgICAgLy8gRklYTUU6IE5vdCB5
ZXQgaW1wbGVtZW50ZWQKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay93aW4vQ29va2llSmFyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3dpbi9Db29raWVKYXJXaW4uY3BwCShyZXZpc2lvbiA3OTU5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Nvb2tpZUphcldpbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg2LDQgKzg2LDE5IEBAIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERv
Y3VtZW50KiwgY29uc3QKICAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAogfQogCit2
b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKQor
eworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKK3ZvaWQgZGVsZXRlQ29v
a2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCit7CisgICAgLy8gRklYTUU6
IE5vdCB5ZXQgaW1wbGVtZW50ZWQKK30KKwordm9pZCBkZWxldGVBbGxDb29raWVzKCkKK3sKKyAg
ICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9Db29raWVKYXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvQ29va2llSmFyUXQuY3BwCShyZXZpc2lvbiA3OTU5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Nvb2tpZUphclF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM0LDYgKzEzNCwyMSBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNv
bnN0CiAgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBnZXRIb3N0
bmFtZXNXaXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcykKK3sKKyAgICAvLyBG
SVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCit2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0
bmFtZShjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGlt
cGxlbWVudGVkCit9CisKK3ZvaWQgZGVsZXRlQWxsQ29va2llcygpCit7CisgICAgLy8gRklYTUU6
IE5vdCB5ZXQgaW1wbGVtZW50ZWQKK30KKwogfQogCiAvLyB2aW06IHRzPTQgc3c9NCBldApJbmRl
eDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gNzk3MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMi0yNSAgQnJpYW4gV2VpbnN0
ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogTmVlZCBhIHdheSB0byBtYW5hZ2UgY29va2ll
cyBmcm9tIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTUwODYKKyAgICAgICAgCisgICAgICAgIENhbGwgdGhyb3VnaCB0byBX
ZWJDb3JlOjpDb29raWVKYXIgaW4gb3VyIFdlYkNvb2tpZU1hbmFnZXIgZnVuY3Rpb25zLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMp
OgorCiAyMDExLTAyLTI1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAJKHJldmlz
aW9uIDc5NTk4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tp
ZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db29r
aWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW5IYXNoLmg+CkBAIC01Nyw3ICs1OCw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SG9z
dG5hbWVzV2l0aEMKIHsKICAgICBIYXNoU2V0PFN0cmluZz4gaG9zdG5hbWVzOwogCi0gICAgLy8g
RklYTUUgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTUwODY+OiBHZXQgYSBsaXN0IG9mIGFsbCBjb29r
aWVzLCBhbmQgYWRkIHRoZWlyIGhvc3RuYW1lcyB0byB0aGUgc2V0IG9mIGhvc3RuYW1lcy4KKyAg
ICBXZWJDb3JlOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhob3N0bmFtZXMpOwogCiAgICAgVmVj
dG9yPFN0cmluZz4gaG9zdG5hbWVMaXN0OwogICAgIGNvcHlUb1ZlY3Rvcihob3N0bmFtZXMsIGhv
c3RuYW1lTGlzdCk7CkBAIC02NywxNCArNjgsMTIgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpn
ZXRIb3N0bmFtZXNXaXRoQwogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZXNG
b3JIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogewotICAgIC8vIEZJWE1FIDxodHRw
Oi8vd2Via2l0Lm9yZy9iLzU1MDg2PjogSW1wbGVtZW50LgotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGhvc3RuYW1lKTsKIH0KIAog
dm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzKCkKIHsKLSAgICAvLyBGSVhN
RSA8aHR0cDovL3dlYmtpdC5vcmcvYi81NTA4Nj46IEltcGxlbWVudC4KLSAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIFdlYkNvcmU6OmRlbGV0ZUFsbENvb2tpZXMoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83863</attachid>
            <date>2011-02-25 12:50:45 -0800</date>
            <delta_ts>2011-02-25 13:13:53 -0800</delta_ts>
            <desc>[PATCH] Cookie Managing v2</desc>
            <filename>cookie_managing_jar.patch</filename>
            <type>text/plain</type>
            <size>15396</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NzEwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDItMjUgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIGNv
b2tpZXMgZnJvbSB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU1MDg2CisgICAgICAgIAorICAgICAgICBJbXBsZW1lbnQgdGhl
IGZ1bmN0aW9ucyBuZWVkZWQgdG8gbWFuYWdlIGNvb2tpZXMgaW4gQ29va2llSmFyIChnZXRIb3N0
bmFtZXNXaXRoQ29va2llcywKKyAgICAgICAgZGVsZXRlQ29va2llc1dpdGhIb3N0bmFtZSwgYW5k
IGRlbGV0ZUFsbENvb2tpZXMpIGZvciBNYWMgYW5kIENGTmV0d29yayAoc3R1YiBvdXQgdGhlIHJl
c3QpLAorICAgICAgICBhbmQgY2FsbCB0aGVtIGZyb20gV2ViS2l0MidzIFdlYkNvb2tpZU1hbmFn
ZXIuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZGVkIG5lZWRlZCBmdW5jdGlvbnMgdG8gZXhwb3J0LgorICAgICAgICAqIHBs
YXRmb3JtL0Nvb2tpZUphci5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL0Nvb2tpZUphci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKTogR2V0cyBhbGwg
aG9zdG5hbWVzIHdpdGggY29va2llcyBmcm9tIE5TSFRUUENvb2tpZVN0b3JhZ2UuCisgICAgICAg
IChXZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUpOiBEZWxldGVzIGFsbCBjb29raWVz
IHdpdGggYSBnaXZlbiBob3N0bmFtZSBmcm9tCisgICAgICAgICAgICBOU0hUVFBDb29raWVTdG9y
YWdlLgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcyk6IERlbGV0ZXMgYWxsIGNv
b2tpZXMgZnJvbSBOU0hUVFBDb29raWVTdG9yYWdlLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omdl
dEhvc3RuYW1lc1dpdGhDb29raWVzKTogSW1wbGVtZW50IHVzaW5nIENGTmV0d29yayBjb29raWUg
QVBJcy4KKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcyk6IERpdHRvLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL0Nvb2tpZUphckVmbC5jcHA6IEFkZGVkIHN0dWIgZnVuY3Rpb25zLgor
ICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L0Nvb2tpZUphckhhaWt1LmNwcDogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL0Nvb2tpZUphckFuZHJvaWQuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL0Nvb2tpZUphckNocm9taXVt
LmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1
cmwuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFy
U291cC5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL0Nvb2tpZUph
cldpbi5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3F0L0Nvb2tpZUphclF0LmNwcDog
RGl0dG8uCisKIDIwMTEtMDItMjUgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgko
cmV2aXNpb24gNzk1OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNDUzLDYgKzQ1Myw3IEBAIF9fWk43V2ViQ29yZTE2VmlzaWJsZVNlbGVjdGlv
bkMxRVJLTlNfMTUKIF9fWk43V2ViQ29yZTE2Y29sb3JGcm9tTlNDb2xvckVQN05TQ29sb3IKIF9f
Wk43V2ViQ29yZTE2Y3JlYXRlRnVsbE1hcmt1cEVQS05TXzROb2RlRQogX19aTjdXZWJDb3JlMTZj
cmVhdGVGdWxsTWFya3VwRVBLTlNfNVJhbmdlRQorX19aTjdXZWJDb3JlMTZkZWxldGVBbGxDb29r
aWVzRXYKIF9fWk43V2ViQ29yZTE2ZW5jbG9zaW5nSW50UmVjdEVSSzdfTlNSZWN0CiBfX1pON1dl
YkNvcmUxNmVuY2xvc2luZ0ludFJlY3RFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTZp
c0VuZE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FTlNfMjdFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGVFCkBAIC01NDUsNiArNTQ2LDcgQEAgX19aTjdXZWJDb3JlMjJleHRlcm5h
bFJlcHJlc2VudGF0aW9uRVBOUwogX19aTjdXZWJDb3JlMjNBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUMxRVJLTlNfMTVQcm90ZWN0aW9uU3BhY2VFUktOU18xMENyZWRlbnRpYWxFalJLTlNfMTZSZXNv
dXJjZVJlc3BvbnNlRVJLTlNfMTNSZXNvdXJjZUVycm9yRQogX19aTjdXZWJDb3JlMjNSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1lbnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZE
b2N1bWVudEZyYWdtZW50RUVFak5TXzEwRWRpdEFjdGlvbkUKIF9fWk43V2ViQ29yZTIzY3JlYXRl
RnJhZ21lbnRGcm9tTm9kZXNFUE5TXzhEb2N1bWVudEVSS04zV1RGNlZlY3RvcklQTlNfNE5vZGVF
TG0wRUVFCitfX1pON1dlYkNvcmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJOM1dURjdIYXNo
U2V0SU5TMF82U3RyaW5nRU5TMF8xMFN0cmluZ0hhc2hFTlMwXzEwSGFzaFRyYWl0c0lTMl9FRUVF
CiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVsdExhbmd1YWdlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRlUHJvcGVydHlMaXN0
RXYKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJz
RWoKQEAgLTU1NSw2ICs1NTcsNyBAQCBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ0l0
YWxpY0V2CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ1N0eWxlc0V2CiBfX1pON1dl
YkNvcmUyNGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cEVQTlNfOERvY3VtZW50RVJLTjNXVEY2U3Ry
aW5nRVM1X05TXzI3RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uRQogX19aTjdXZWJDb3JlMjRk
ZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUyNGRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTI0Zmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRub3Rp
ZnlIaXN0b3J5SXRlbUNoYW5nZWRFCiBfX1pON1dlYkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RX
cml0ZXIxMXJlbGVhc2VEYXRhRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tp
ZUphci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5o
CShyZXZpc2lvbiA3OTU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIENvb2tpZUphcl9oCiAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw2ICs0NiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50KiwgY29uc3QgS1VSTCYsIFZl
Y3RvcjxDb29raWU+Jik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1lbnQqLCBj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJik7CiAKKyAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhD
b29raWVzKEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tp
ZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKKyAgICB2b2lkIGRlbGV0ZUFs
bENvb2tpZXMoKTsKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9Db29raWVKYXJFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9Db29raWVKYXJFZmwuY3BwCShyZXZpc2lvbiA3OTU5OCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Db29raWVKYXJFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw0
ICs1MiwxOSBAQCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50KiBkb2N1CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxT
dHJpbmc+JiBob3N0bmFtZXMpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQK
K30KKwordm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJiBob3N0bmFt
ZSkKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCit2b2lkIGRlbGV0
ZUFsbENvb2tpZXMoKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0Nvb2tpZUphckhhaWt1LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Db29raWVKYXJI
YWlrdS5jcHAJKHJldmlzaW9uIDc5NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFp
a3UvQ29va2llSmFySGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw1ICs3NSwyMCBAQCB2
b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0CiAgICAgLy8gRklYTUU6IE5v
dCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhIYXNo
U2V0PFN0cmluZz4mIGhvc3RuYW1lcykKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1l
bnRlZAorfQorCit2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhv
c3RuYW1lKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKK3ZvaWQg
ZGVsZXRlQWxsQ29va2llcygpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvQ29va2llSmFyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9Db29raWVKYXIubW0JKHJldmlzaW9uIDc5NTk4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0Nvb2tpZUphci5tbQkod29ya2luZyBjb3B5KQpAQCAtMTc3LDQgKzE3Nyw1
MCBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0CiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAordm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhI
YXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcykKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgCisgICAgTlNIVFRQQ29va2llU3RvcmFnZSAqY29va2llU3RvcmFnZSA9IFtO
U0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXTsKKyAgICBOU0FycmF5
ICpjb29raWVzID0gW2Nvb2tpZVN0b3JhZ2UgY29va2llc107CisgICAgCisgICAgZm9yIChOU0hU
VFBDb29raWUqIGNvb2tpZSBpbiBjb29raWVzKQorICAgICAgICBob3N0bmFtZXMuYWRkKFtjb29r
aWUgZG9tYWluXSk7CisgICAgCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKK30KKwor
dm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKK3sK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgCisgICAgTlNIVFRQQ29va2ll
U3RvcmFnZSAqY29va2llU3RvcmFnZSA9IFtOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBD
b29raWVTdG9yYWdlXTsKKyAgICBOU0FycmF5ICpjb29raWVzID0gW2Nvb2tpZVN0b3JhZ2UgY29v
a2llc107CisgICAgaWYgKCFjb29raWVzKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgZm9y
IChOU0hUVFBDb29raWUqIGNvb2tpZSBpbiBjb29raWVzKSB7CisgICAgICAgIGlmIChob3N0bmFt
ZSA9PSBTdHJpbmcoW2Nvb2tpZSBkb21haW5dKSkKKyAgICAgICAgICAgIFtjb29raWVTdG9yYWdl
IGRlbGV0ZUNvb2tpZTpjb29raWVdOworICAgIH0KKyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworfQorCit2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKQoreworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAKKyAgICBOU0hUVFBDb29raWVTdG9yYWdlICpjb29r
aWVTdG9yYWdlID0gW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2Vd
OworICAgIE5TQXJyYXkgKmNvb2tpZXMgPSBbY29va2llU3RvcmFnZSBjb29raWVzXTsKKyAgICBp
ZiAoIWNvb2tpZXMpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBmb3IgKE5TSFRUUENvb2tp
ZSogY29va2llIGluIGNvb2tpZXMpCisgICAgICAgIFtjb29raWVTdG9yYWdlIGRlbGV0ZUNvb2tp
ZTpjb29raWVdOworICAgIAorICAgIAorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cit9
CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9Db29r
aWVKYXJBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2FuZHJvaWQvQ29va2llSmFyQW5kcm9pZC5jcHAJKHJldmlzaW9uIDc5NTk4KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL0Nvb2tpZUphckFuZHJvaWQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw0ICs1MiwxOSBAQCBib29sIGNvb2tpZXNFbmFibGVk
KGNvbnN0IERvY3VtZW50KiBkb2N1CiAgICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjpjb29raWVz
RW5hYmxlZChkb2N1bWVudCk7CiB9CiAKK3ZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFz
aFNldDxTdHJpbmc+JiBob3N0bmFtZXMpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVt
ZW50ZWQKK30KKwordm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJiBo
b3N0bmFtZSkKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCit2b2lk
IGRlbGV0ZUFsbENvb2tpZXMoKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVk
Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2ll
SmFyQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvQ29va2llSmFyQ0ZOZXQuY3BwCShyZXZpc2lvbiA3OTU5OCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llSmFyQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMzMsNiArMjMzLDUyIEBAIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50Kiwg
Y29uc3QKICAgICB9CiB9CiAKK3ZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxT
dHJpbmc+JiBob3N0bmFtZXMpCit7CisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVT
dG9yYWdlID0gY3VycmVudENvb2tpZVN0b3JhZ2UoKTsKKyAgICBpZiAoIWNvb2tpZVN0b3JhZ2Up
CisgICAgICAgIHJldHVybjsKKworICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBjb29raWVzQ0Yo
QWRvcHRDRiwgQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlDb29raWVzKGNvb2tpZVN0b3JhZ2UpKTsK
KyAgICBpZiAoIWNvb2tpZXNDRikKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0ZJbmRleCBjb3Vu
dCA9IENGQXJyYXlHZXRDb3VudChjb29raWVzQ0YuZ2V0KCkpOworICAgIGZvciAoQ0ZJbmRleCBp
ID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgQ0ZIVFRQQ29va2llUmVmIGNvb2tpZSA9
IHN0YXRpY19jYXN0PENGSFRUUENvb2tpZVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChjb29r
aWVzQ0YuZ2V0KCksIGkpKTsKKyAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkb21haW4g
PSBjb29raWVEb21haW4oY29va2llKTsKKyAgICAgICAgaG9zdG5hbWVzLmFkZChkb21haW4uZ2V0
KCkpOworICAgIH0KK30KKwordm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3Ry
aW5nJiBob3N0bmFtZSkKK3sKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3Jh
Z2UgPSBjdXJyZW50Q29va2llU3RvcmFnZSgpOworICAgIGlmICghY29va2llU3RvcmFnZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGNvb2tpZXNDRihBZG9w
dENGLCBDRkhUVFBDb29raWVTdG9yYWdlQ29weUNvb2tpZXMoY29va2llU3RvcmFnZSkpOworICAg
IGlmICghY29va2llc0NGKQorICAgICAgICByZXR1cm47CisKKyAgICBDRkluZGV4IGNvdW50ID0g
Q0ZBcnJheUdldENvdW50KGNvb2tpZXNDRi5nZXQoKSk7CisgICAgZm9yIChDRkluZGV4IGkgPSBj
b3VudCAtIDE7IGkgPj0wOyBpLS0pIHsKKyAgICAgICAgQ0ZIVFRQQ29va2llUmVmIGNvb2tpZSA9
IHN0YXRpY19jYXN0PENGSFRUUENvb2tpZVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChjb29r
aWVzQ0YuZ2V0KCksIGkpKTsKKyAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBkb21haW4g
PSBjb29raWVEb21haW4oY29va2llKTsKKyAgICAgICAgaWYgKFN0cmluZyhkb21haW4uZ2V0KCkp
ID09IGhvc3RuYW1lKQorICAgICAgICAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZURlbGV0ZUNvb2tp
ZShjb29raWVTdG9yYWdlLCBjb29raWUpOworICAgIH0KK30KKwordm9pZCBkZWxldGVBbGxDb29r
aWVzKCkKK3sKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UgPSBjdXJy
ZW50Q29va2llU3RvcmFnZSgpOworICAgIGlmICghY29va2llU3RvcmFnZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZURlbGV0ZUFsbENvb2tpZXMoY29va2llU3Rv
cmFnZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShDRk5F
VFdPUkspCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL0Nv
b2tpZUphckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2Nocm9taXVtL0Nvb2tpZUphckNocm9taXVtLmNwcAkocmV2aXNpb24gNzk1OTgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL0Nvb2tpZUphckNo
cm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsNCArNjcsMTkgQEAgdm9pZCBkZWxldGVD
b29raWUoY29uc3QgRG9jdW1lbnQqIGRvY3VtZQogICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6
ZGVsZXRlQ29va2llKGRvY3VtZW50LCB1cmwsIGNvb2tpZU5hbWUpOwogfQogCit2b2lkIGdldEhv
c3RuYW1lc1dpdGhDb29raWVzKEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKQoreworICAgIC8v
IEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKK3ZvaWQgZGVsZXRlQ29va2llc0Zvckhv
c3RuYW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQg
aW1wbGVtZW50ZWQKK30KKwordm9pZCBkZWxldGVBbGxDb29raWVzKCkKK3sKKyAgICAvLyBGSVhN
RTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tp
ZUphckN1cmwuY3BwCShyZXZpc2lvbiA3OTU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNCAr
NjgsMTkgQEAgdm9pZCBzZXRDb29raWVTdG9yYWdlUHJpdmF0ZUJyb3dzaW5nRW5hYgogfQogI2Vu
ZGlmCiAKK3ZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0
bmFtZXMpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKK30KKwordm9pZCBk
ZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKK3sKKyAgICAv
LyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCit2b2lkIGRlbGV0ZUFsbENvb2tpZXMo
KQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFy
U291cC5jcHAJKHJldmlzaW9uIDc5NTk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNCArMTIy
LDE5IEBAIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50KiwgY29uc3QKICAgICAvLyBG
SVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAogfQogCit2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0
IGltcGxlbWVudGVkCit9CisKK3ZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0
cmluZyYgaG9zdG5hbWUpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKK30K
Kwordm9pZCBkZWxldGVBbGxDb29raWVzKCkKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBs
ZW1lbnRlZAorfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dp
bi9Db29raWVKYXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvd2luL0Nvb2tpZUphcldpbi5jcHAJKHJldmlzaW9uIDc5NTk4KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vQ29va2llSmFyV2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODYsNCArODYsMTkgQEAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1lbnQq
LCBjb25zdAogICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCiB9CiAKK3ZvaWQgZ2V0
SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpCit7CisgICAg
Ly8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKK30KKwordm9pZCBkZWxldGVDb29raWVzRm9y
SG9zdG5hbWUoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKK3sKKyAgICAvLyBGSVhNRTogTm90IHll
dCBpbXBsZW1lbnRlZAorfQorCit2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKQoreworICAgIC8vIEZJ
WE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0Nvb2tpZUphclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9Db29raWVKYXJRdC5jcHAJKHJldmlzaW9uIDc5NTk4KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvQ29va2llSmFyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQs
NiArMTM0LDIxIEBAIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50KiwgY29uc3QKICAg
ICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAogfQogCit2b2lkIGdldEhvc3RuYW1lc1dp
dGhDb29raWVzKEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKQoreworICAgIC8vIEZJWE1FOiBO
b3QgeWV0IGltcGxlbWVudGVkCit9CisKK3ZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGNv
bnN0IFN0cmluZyYgaG9zdG5hbWUpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50
ZWQKK30KKwordm9pZCBkZWxldGVBbGxDb29raWVzKCkKK3sKKyAgICAvLyBGSVhNRTogTm90IHll
dCBpbXBsZW1lbnRlZAorfQorCiB9CiAKIC8vIHZpbTogdHM9NCBzdz00IGV0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3OTcxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDExLTAyLTI1ICBCcmlhbiBXZWluc3RlaW4gIDxi
d2VpbnN0ZWluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQyOiBOZWVkIGEgd2F5IHRvIG1hbmFnZSBjb29raWVzIGZyb20g
dGhlIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NTA4NgorICAgICAgICAKKyAgICAgICAgQ2FsbCB0aHJvdWdoIHRvIFdlYkNvcmU6
OkNvb2tpZUphciBpbiBvdXIgV2ViQ29va2llTWFuYWdlciBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXI6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llcyk6CisKIDIw
MTEtMDItMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24gNzk1
OTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2gu
aD4KQEAgLTU3LDcgKzU4LDcgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIb3N0bmFtZXNX
aXRoQwogewogICAgIEhhc2hTZXQ8U3RyaW5nPiBob3N0bmFtZXM7CiAKLSAgICAvLyBGSVhNRSA8
aHR0cDovL3dlYmtpdC5vcmcvYi81NTA4Nj46IEdldCBhIGxpc3Qgb2YgYWxsIGNvb2tpZXMsIGFu
ZCBhZGQgdGhlaXIgaG9zdG5hbWVzIHRvIHRoZSBzZXQgb2YgaG9zdG5hbWVzLgorICAgIFdlYkNv
cmU6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKGhvc3RuYW1lcyk7CiAKICAgICBWZWN0b3I8U3Ry
aW5nPiBob3N0bmFtZUxpc3Q7CiAgICAgY29weVRvVmVjdG9yKGhvc3RuYW1lcywgaG9zdG5hbWVM
aXN0KTsKQEAgLTY3LDE0ICs2OCwxMiBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEhvc3Ru
YW1lc1dpdGhDCiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3Ru
YW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiB7Ci0gICAgLy8gRklYTUUgPGh0dHA6Ly93ZWJr
aXQub3JnL2IvNTUwODY+OiBJbXBsZW1lbnQuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBX
ZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoaG9zdG5hbWUpOwogfQogCiB2b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMoKQogewotICAgIC8vIEZJWE1FIDxodHRw
Oi8vd2Via2l0Lm9yZy9iLzU1MDg2PjogSW1wbGVtZW50LgotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgV2ViQ29yZTo6ZGVsZXRlQWxsQ29va2llcygpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQK
</data>
<flag name="review"
          id="75752"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>