<?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>204137</bug_id>
          
          <creation_ts>2019-11-12 18:47:50 -0800</creation_ts>
          <short_desc>[GTK][WPE] Add same-site cookie support</short_desc>
          <delta_ts>2020-02-07 01:39:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick Griffis">pgriffis</reporter>
          <assigned_to name="Patrick Griffis">pgriffis</assigned_to>
          <cc>agomez</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>ltilve</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1589744</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-11-12 18:47:50 -0800</bug_when>
    <thetext>[GTK][WPE] Add same-site cookie support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589746</commentid>
    <comment_count>1</comment_count>
      <attachid>383419</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-11-12 18:58:18 -0800</bug_when>
    <thetext>Created attachment 383419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589747</commentid>
    <comment_count>2</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-11-12 19:00:13 -0800</bug_when>
    <thetext>Note that this requires libsoup to be merged: https://gitlab.gnome.org/GNOME/libsoup/merge_requests/36

Once merged do we build the development release in JHBuild?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589748</commentid>
    <comment_count>3</comment_count>
      <attachid>383420</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2019-11-12 19:06:33 -0800</bug_when>
    <thetext>Created attachment 383420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589847</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-11-13 07:01:12 -0800</bug_when>
    <thetext>(In reply to Patrick Griffis from comment #2)
&gt; Once merged do we build the development release in JHBuild?

You&apos;ll want to update the jhbuild moduleset in your patch here to ensure you don&apos;t break the test expectations with your expectations changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605117</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-01-10 08:41:51 -0800</bug_when>
    <thetext>*** Bug 184955 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611371</commentid>
    <comment_count>6</comment_count>
      <attachid>383420</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-01-27 05:37:33 -0800</bug_when>
    <thetext>Comment on attachment 383420
Patch

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

r- because tests will fail, we need to update the libsoup in jhbuild too.

&gt; Source/WebCore/ChangeLog:11
&gt; +        Added an httpMethod argument to cookie lookup functions for the
&gt; +        soup API to use. Modified other backends to simply ignore this.

Do you know why other ports don&apos;t need the http method?

&gt; Source/WebCore/loader/CookieJar.cpp:84
&gt; +        result = session-&gt;cookiesForDOM(document.firstPartyForCookies(), sameSiteInfo(document), url, frameID, pageID, includeSecureCookies, httpMethod);

We only need the http method to determine whether it&apos;s safe, right? and it&apos;s only used by same site cookies, right? If that&apos;s the case maybe it would be easier to add bool isSafeHTTPMethod to SameSitoInfo and we don&apos;t need to add a new parameter. We still have time to change the libsoup API or we can use any safe HTTP method when it&apos;s safe, since it&apos;s only used for that.

&gt; Source/WebCore/platform/network/soup/CookieSoup.cpp:35
&gt; +#if SOUP_CHECK_VERSION(2, 69, 0)

Better use the first version including the new api, even if it&apos;s an unstable release. That way we don&apos;t need to wait until the next stable release to test this.

&gt; Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp:486
&gt; +        httpMethodStr = httpMethod-&gt;ascii().data();

This is a temporary, either cache the CString returned by ascii() or do httpMethod ? httpMethod-&gt;ascii().data() : nullptr directly in the call to soup_cookie_jar_get_cookie_list_with_same_site_info().

&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:187
&gt; +        URL cookieURL = soupURIToURL(siteForCookies);
&gt; +        setIsSameSite(areRegistrableDomainsEqual(cookieURL, m_url));

This could be one line.

&gt; LayoutTests/ChangeLog:9
&gt; +        Updated GTK/WPE test expectations to pass most same-site cookie tests
&gt; +        matching the Apple ports.

To do this, we need to wait for the next libsoup unstable release and use it in out jhbuild, otherwise the tests will fail in the bots that use a previous version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614492</commentid>
    <comment_count>7</comment_count>
      <attachid>389653</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-04 05:38:32 -0800</bug_when>
    <thetext>Created attachment 389653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614493</commentid>
    <comment_count>8</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-04 05:41:57 -0800</bug_when>
    <thetext>GNOME ftp doesn&apos;t have the tarball yet, not sure how long that is cached for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614497</commentid>
    <comment_count>9</comment_count>
      <attachid>389654</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-04 05:55:03 -0800</bug_when>
    <thetext>Created attachment 389654
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614499</commentid>
    <comment_count>10</comment_count>
      <attachid>389654</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-04 06:24:09 -0800</bug_when>
    <thetext>Comment on attachment 389654
Patch

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

&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:189
&gt; +    else
&gt; +#endif
&gt; +        m_sameSiteDisposition = SameSiteDisposition::Unspecified;

I can tell you Carlos doesn&apos;t like to mix #if #endif and runtime conditionals like this. -Wmisleading-indentation won&apos;t like it either.

Look how much cleaner it is this way, with just one line of code duplication:

#if SOUP_CHECK_VERSION(2, 69, 90)
    setIsTopSite(soup_message_get_is_top_level_navigation(soupMessage));

    if (SoupURI* siteForCookies = soup_message_get_site_for_cookies(soupMessage))
        setIsSameSite(areRegistrableDomainsEqual(soupURIToURL(siteForCookies), m_url));
    else
        m_sameSiteDisposition = SameSiteDisposition::Unspecified;
#else
    m_sameSiteDisposition = SameSiteDisposition::Unspecified;
#endif

&gt; Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:688
&gt; +    if (isTopLevelNavigation()) {
&gt; +        request.setFirstPartyForCookies(request.url());
&gt; +#if SOUP_CHECK_VERSION(2, 69, 90)
&gt; +        soup_message_set_is_top_level_navigation(m_soupMessage.get(), true);
&gt; +    }
&gt; +
&gt; +    if (request.isSameSite()) {
&gt; +        GUniquePtr&lt;SoupURI&gt; requestURI = urlToSoupURI(request.url());
&gt; +        soup_message_set_site_for_cookies(m_soupMessage.get(), requestURI.get());
&gt; +#endif
&gt; +    }

if (isTopLevelNavigation()) {
        request.setFirstPartyForCookies(request.url());
#if SOUP_CHECK_VERSION(2, 69, 90)
        soup_message_set_is_top_level_navigation(m_soupMessage.get(), true);
#endif
    }

#if SOUP_CHECK_VERSION(2, 69, 90)
    if (request.isSameSite()) {
        GUniquePtr&lt;SoupURI&gt; requestURI = urlToSoupURI(request.url());
        soup_message_set_site_for_cookies(m_soupMessage.get(), requestURI.get());
    }
#endif

&gt; Tools/gtk/jhbuild.modules:56
&gt;    &lt;repository type=&quot;tarball&quot; name=&quot;ftp.gnome.org&quot;
&gt;        href=&quot;http://ftp.gnome.org&quot;/&gt;

Future work: everything should switch to use download.gnome.org.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614524</commentid>
    <comment_count>11</comment_count>
      <attachid>389654</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-04 07:36:41 -0800</bug_when>
    <thetext>Comment on attachment 389654
Patch

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

&gt; Source/WebCore/platform/network/SameSiteInfo.cpp:36
&gt; +static bool httpMethodIsSafe(const String&amp; method)
&gt; +{
&gt; +    return method == &quot;GET&quot; || method == &quot;HEAD&quot; || method == &quot;OPTIONS&quot; || method == &quot;TRACE&quot;;
&gt; +}

I think this could be moved to HTTPParsers.cpp as isSafeMethod(). We should also use equalLettersIgnoringASCIICase() instead of checking the uppercase method names directly.

&gt; Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp:459
&gt; +    GUniquePtr&lt;SoupURI&gt; cookieURI = sameSiteInfo.isSameSite ? urlToSoupURI(url) : nullptr;

Move this after the if (!firstPartyURI) because this is not needed if we return early.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614567</commentid>
    <comment_count>12</comment_count>
      <attachid>389666</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-04 08:54:47 -0800</bug_when>
    <thetext>Created attachment 389666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614963</commentid>
    <comment_count>13</comment_count>
      <attachid>389666</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-05 00:23:48 -0800</bug_when>
    <thetext>Comment on attachment 389666
Patch

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

LGTM

&gt; Source/WebCore/platform/network/HTTPParsers.cpp:988
&gt; +bool isSafeMethod(const String&amp; method)

Add a comment linking to https://tools.ietf.org/html/rfc7231#section-4.2.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615218</commentid>
    <comment_count>14</comment_count>
      <attachid>389855</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-05 13:06:41 -0800</bug_when>
    <thetext>Created attachment 389855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615557</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-05 23:55:43 -0800</bug_when>
    <thetext>Has libsoup 2.69.90 been released? the tarball doesn&apos;t exist, at least in the url https://download.gnome.org/libsoup/2.69/libsoup-2.69.90.tar.xz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615558</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-05 23:56:52 -0800</bug_when>
    <thetext>Ok, the right url is https://download.gnome.org/sources/libsoup/2.69/libsoup-2.69.90.tar.xz so the repo in the jhbuild moduleset is wrong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615559</commentid>
    <comment_count>17</comment_count>
      <attachid>389855</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-05 23:59:01 -0800</bug_when>
    <thetext>Comment on attachment 389855
Patch

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

&gt; Tools/gtk/jhbuild.modules:58
&gt; +  &lt;repository type=&quot;tarball&quot; name=&quot;download.gnome.org&quot;
&gt; +      href=&quot;https://download.gnome.org/sources&quot;/&gt;

Maybe thi needs a trailing slash? https://download.gnome.org/sources/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615598</commentid>
    <comment_count>18</comment_count>
      <attachid>389945</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2020-02-06 06:21:11 -0800</bug_when>
    <thetext>Created attachment 389945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616084</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-07 01:38:24 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 389945:

imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html bug 207335 (author: graouts@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616085</commentid>
    <comment_count>20</comment_count>
      <attachid>389945</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-07 01:39:08 -0800</bug_when>
    <thetext>Comment on attachment 389945
Patch

Clearing flags on attachment: 389945

Committed r256013: &lt;https://trac.webkit.org/changeset/256013&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616086</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-07 01:39:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383419</attachid>
            <date>2019-11-12 18:58:18 -0800</date>
            <delta_ts>2019-11-12 19:06:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204137-20191112185817.patch</filename>
            <type>text/plain</type>
            <size>34813</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc1OGIzOWY0NTM5NDU5
OTMwOGM2ODQ2OTU2M2E5NjgxYTk1ZWY2NS4uODUwYWFmMGE3ZGNhOTJmY2UzZGQ2NWFiMjg3NTE3
YmJhYTJmY2M0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTExLTEyICBQYXRy
aWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
QWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQg
aW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICBBZGRlZCBhbiBodHRwTWV0aG9kIGFyZ3Vt
ZW50IHRvIGNvb2tpZSBsb29rdXAgZnVuY3Rpb25zIGZvciB0aGUKKyAgICAgICAgc291cCBBUEkg
dG8gdXNlLiBNb2RpZmllZCBvdGhlciBiYWNrZW5kcyB0byBzaW1wbHkgaWdub3JlIHRoaXMuCisK
KyAgICAgICAgKiBsb2FkZXIvQ29va2llSmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tp
ZUphcjo6Y29va2llcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29va2llSmFyQ3VybDo6Y29va2llc0ZvckRPTSBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00gY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvcmVTYW1lU2l0ZVBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpzb3VwU2FtZVNpdGVQ
b2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llOjpDb29raWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29va2llOjp0b1NvdXBDb29raWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2Fn
ZU1lbWJlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRh
dGVGcm9tU291cE1lc3NhZ2UpOgorCiAyMDE5LTExLTEyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gSW5saW5lRm9ybWF0dGluZ1N0YXRlOjphZGRJbmxp
bmVSdW4gc2hvdWxkIHRha2UgYSB1bmlxdWVfcHRyPERpc3BsYXk6OlJ1bj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NzQwNzI5NWJiYWU1OGI1Mjc4ZWIxNWY4NmJhMWRkZmQwOTAxOWJkYi4uMmQyNWEzOWFhNTI4YTAw
NjIxMDAwZmEzYzU5NWRjZTUzMjI0MzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
OS0xMS0xMiAgUGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXVtXUEVdIEFkZCBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDEzNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudHMgc2FtZS1zaXRlIGNv
b2tpZSBzdXBwb3J0IGluIHRoZSBzb3VwIGJhY2tlbmQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJl
ZGlyZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKwogMjAx
OS0xMS0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBXS1dlYlZpZXcgZG9lcyBub3QgcmVzcGVjdCBzeXN0ZW0gc3BlbGxjaGVja2luZyBw
cmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IGExMDAxNWNiMTk3
OGY2YzU2ZjhmMmZlMDk4YjYxODg3MDY3MDFkNGMuLmU1M2FjYjdiMzY0YWJkOGIyNGE0NjZkNjVi
YjQ5ZmMxOWI0ZDE0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVK
YXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC03MCw2
ICs3MCw3IEBAIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBVUkwmIHVybCkgY29uc3QKICAgICBUcmFjZVNjb3BlIHNjb3BlKEZldGNoQ29va2llc1N0
YXJ0LCBGZXRjaENvb2tpZXNFbmQpOwogCiAgICAgYXV0byBpbmNsdWRlU2VjdXJlQ29va2llcyA9
IHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVzKGRvY3VtZW50LCB1cmwpOworICAgIGF1dG8gaHR0
cE1ldGhvZCA9IGRvY3VtZW50LmxvYWRlcigpLT5yZXF1ZXN0KCkuaHR0cE1ldGhvZCgpOwogCiAg
ICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQ7CkBAIC04MCw3ICs4MSw3IEBAIFN0cmluZyBDb29raWVKYXI6OmNv
b2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogICAgIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IHJlc3VsdDsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1f
c3RvcmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkKLSAgICAgICAgcmVzdWx0
ID0gc2Vzc2lvbi0+Y29va2llc0ZvckRPTShkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpOworICAgICAgICByZXN1bHQgPSBzZXNzaW9uLT5jb29raWVzRm9yRE9NKGRv
Y3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRlSW5mbyhkb2N1bWVudCksIHVy
bCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcywgaHR0cE1ldGhvZCk7CiAg
ICAgZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5k
ZXggNjY5OWI1ZDc1NWNlM2YyYjY1MGZkZWNmNjZmYmQ5MzViNDVhMjEwNy4uMzRmMzg2NzllYzhl
NGNjMjExZjI3NjVmMzU0NTM3OGEwYmU5ZjZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0xMzgsNyAr
MTM4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2llcyhj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgVmVjdG9y
PENvb2tpZT4mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZsdXNoQ29va2llU3Rv
cmUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKEhh
c2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMsIGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4s
IEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ0ZOZXRXaW4uY3BwCmluZGV4IGViODFjMDUyZWJkYTcyZGEwNmRiZTdjZDI0OTRmNGQz
MmFlZTBmZDQuLjdlNDdkNGVkY2QxMjc4YWQxYTg3ODYyNjUxMTRlNDZmMzJjN2EyN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ0ZOZXRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCkBAIC0yMjUsMTAgKzIyNSwxMSBA
QCBzdGF0aWMgYm9vbCBjb250YWluc1NlY3VyZUNvb2tpZXMoQ0ZBcnJheVJlZiBjb29raWVzKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgY29uc3QgU3RyaW5nJiBodHRw
TWV0aG9kKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURf
UEFSQU0ocGFnZUlEKTsKKyAgICBVTlVTRURfUEFSQU0oaHR0cE1ldGhvZCk7CiAgICAgUmV0YWlu
UHRyPENGQXJyYXlSZWY+IGNvb2tpZXNDRiA9IGNvcHlDb29raWVzRm9yVVJMV2l0aEZpcnN0UGFy
dHlVUkwoKnRoaXMsIGZpcnN0UGFydHksIHVybCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogICAg
IAogICAgIGF1dG8gZmlsdGVyZWRDb29raWVzID0gZmlsdGVyQ29va2llcyhjb29raWVzQ0YuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggZGRjYTJjNjNj
Y2UzMGE2YzJjZTAwM2RiNzc5ODRjMjE5ODg3YjQ3ZC4uOTFjZTM0MGFhNzVmZTk3N2M2MTQxYmY2
NjFkZDY3Njc5ZDk0NGZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1t
CkBAIC0zNzcsOCArMzc3LDkgQEAgc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZI
VFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0b3Jh
Z2VEZWxldGVBbGxDb29raWVzKGNvb2tpZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
IGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCkgY29uc3QK
IHsKKyAgICBVTlVTRURfUEFSQU0oaHR0cE1ldGhvZCk7CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JT
ZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFn
ZUlELCBEb05vdEluY2x1ZGVIVFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
Q3VybC5jcHAKaW5kZXggNWVjYmE2NmVmOTQ5ODRlYmZmNWUzZmYwMzQzNzVhYmI2OGNhNzJmYS4u
ZGNjZTU0OGMzZTRlNjdhNzJiZDE5YWY4YmJiZmUyODhhMmE5ZjY1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcApA
QCAtNzMsMTAgKzczLDExIEBAIHZvaWQgQ29va2llSmFyQ3VybDo6c2V0Q29va2llc0Zyb21IVFRQ
UmVzcG9uc2UoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzCiAgICAgY29va2llSmFy
REIuc2V0Q29va2llKGZpcnN0UGFydHksIHVybCwgdmFsdWUsIENvb2tpZUphckRCOjpTb3VyY2U6
Ok5ldHdvcmspOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsOjpj
b29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IENvb2tpZUphckN1cmw6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzLCBjb25zdCBT
dHJpbmcmIGh0dHBNZXRob2QpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwog
ICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOworICAgIFVOVVNFRF9QQVJBTShodHRwTWV0aG9kKTsK
IAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBmaWx0ZXIgc2VjdXJlIGNvb2tpZXMgb3V0IGlm
IHRoZSBjYWxsZXIgcmVxdWVzdHMgaXQuCiAgICAgcmV0dXJuIHsgY29va2llc0ZvclNlc3Npb24o
c2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmYWxzZSksIGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaAppbmRleCA1
ZTk3NGY1ZmJkYjhjMDQ5NzVhNTUxMWIwZGM0YTE0MmQxMDFhMzA4Li5iZDAyYTVlYTg5YzJiOWYz
Njg2OTZlYjg1NWVjNGE1YzllNTNiNzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgZW51
bSBjbGFzcyBDb29raWVBY2NlcHRQb2xpY3k7CiBjbGFzcyBDb29raWVKYXJDdXJsIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1
ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcywg
Y29uc3QgU3RyaW5nJiBodHRwTWV0aG9kKSBjb25zdDsKICAgICB2b2lkIHNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0
OwogICAgIHZvaWQgc2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2UoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmKSBjb25zdDsKICAgICB2b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBDb29raWVBY2NlcHRQb2xpY3kpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bkN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmluZGV4IGYyYTE5MDM1NjFhYzFhNTBiMGJiZDhmNzU3YTBl
NTY1NDYzYmI1MmEuLjJkZmI2MTU5ZTM1ZDI3YzZmZjMyNjkwM2RhZmZmOTEyNjZjM2ExOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25DdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAKQEAgLTkwLDkgKzkwLDkgQEAgYm9v
bCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKICAgICByZXR1
cm4gY29va2llU3RvcmFnZSgpLmNvb2tpZXNFbmFibGVkKCp0aGlzKTsKIH0KIAotc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBjb25zdCBTdHJpbmcmIGh0dHBNZXRob2Qp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvb2tpZVN0b3JhZ2UoKS5jb29raWVzRm9yRE9NKCp0aGlz
LCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRl
U2VjdXJlQ29va2llcyk7CisgICAgcmV0dXJuIGNvb2tpZVN0b3JhZ2UoKS5jb29raWVzRm9yRE9N
KCp0aGlzLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBp
bmNsdWRlU2VjdXJlQ29va2llcywgaHR0cE1ldGhvZCk7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgY29uc3QgVVJMJiwg
Y29uc3QgVVJMJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Db29raWVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9Db29raWVTb3VwLmNwcAppbmRleCBlNDRjNGFlNjcwNjU0MmQzMGM0ZTczZTIyNTY0MDY3NzMx
NTliYWE1Li5kZjkxOTRmNjUyMzRkYWVmOGI2YmM1ZWRhODJiOWExNTA5MWQzODhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU291cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVNvdXAuY3Bw
CkBAIC0zMiw2ICszMiwzOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBTT1VQX0NI
RUNLX1ZFUlNJT04oMiwgNjksIDApCitzdGF0aWMgQ29va2llOjpTYW1lU2l0ZVBvbGljeSBjb3Jl
U2FtZVNpdGVQb2xpY3koU291cFNhbWVTaXRlUG9saWN5IHBvbGljeSkKK3sKKyAgICBzd2l0Y2gg
KHBvbGljeSkgeworICAgIGNhc2UgU09VUF9TQU1FX1NJVEVfUE9MSUNZX05PTkU6CisgICAgICAg
IHJldHVybiBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpOb25lOworICAgIGNhc2UgU09VUF9TQU1F
X1NJVEVfUE9MSUNZX0xBWDoKKyAgICAgICAgcmV0dXJuIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6
OkxheDsKKyAgICBjYXNlIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9TVFJJQ1Q6CisgICAgICAgIHJl
dHVybiBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpTdHJpY3Q7CisgICAgfQorCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6Ok5vbmU7
Cit9CisKK3N0YXRpYyBTb3VwU2FtZVNpdGVQb2xpY3kgc291cFNhbWVTaXRlUG9saWN5KENvb2tp
ZTo6U2FtZVNpdGVQb2xpY3kgcG9saWN5KQoreworICAgIHN3aXRjaCAocG9saWN5KSB7CisgICAg
Y2FzZSBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpOb25lOgorICAgICAgICByZXR1cm4gU09VUF9T
QU1FX1NJVEVfUE9MSUNZX05PTkU7CisgICAgY2FzZSBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpM
YXg6CisgICAgICAgIHJldHVybiBTT1VQX1NBTUVfU0lURV9QT0xJQ1lfTEFYOworICAgIGNhc2Ug
Q29va2llOjpTYW1lU2l0ZVBvbGljeTo6U3RyaWN0OgorICAgICAgICByZXR1cm4gU09VUF9TQU1F
X1NJVEVfUE9MSUNZX1NUUklDVDsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gU09VUF9TQU1FX1NJVEVfUE9MSUNZX05PTkU7Cit9CisjZW5kaWYKKwogQ29v
a2llOjpDb29raWUoU291cENvb2tpZSogY29va2llKQogICAgIDogbmFtZShTdHJpbmc6OmZyb21V
VEY4KGNvb2tpZS0+bmFtZSkpCiAgICAgLCB2YWx1ZShTdHJpbmc6OmZyb21VVEY4KGNvb2tpZS0+
dmFsdWUpKQpAQCAtNDMsNiArNzUsOSBAQCBDb29raWU6OkNvb2tpZShTb3VwQ29va2llKiBjb29r
aWUpCiAgICAgLCBzZXNzaW9uKCFjb29raWUtPmV4cGlyZXMpCiAKIHsKKyNpZiBTT1VQX0NIRUNL
X1ZFUlNJT04oMiwgNjksIDApCisgICAgc2FtZVNpdGUgPSBjb3JlU2FtZVNpdGVQb2xpY3koc291
cF9jb29raWVfZ2V0X3NhbWVfc2l0ZV9wb2xpY3koY29va2llKSk7CisjZW5kaWYKIH0KIAogc3Rh
dGljIFNvdXBEYXRlKiBtc1RvU291cERhdGUoZG91YmxlIG1zKQpAQCAtNjYsNiArMTAxLDkgQEAg
U291cENvb2tpZSogQ29va2llOjp0b1NvdXBDb29raWUoKSBjb25zdAogCiAgICAgc291cF9jb29r
aWVfc2V0X2h0dHBfb25seShzb3VwQ29va2llLCBodHRwT25seSk7CiAgICAgc291cF9jb29raWVf
c2V0X3NlY3VyZShzb3VwQ29va2llLCBzZWN1cmUpOworI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigy
LCA2OSwgMCkKKyAgICBzb3VwX2Nvb2tpZV9zZXRfc2FtZV9zaXRlX3BvbGljeShzb3VwQ29va2ll
LCBzb3VwU2FtZVNpdGVQb2xpY3koc2FtZVNpdGUpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFzZXNz
aW9uKSB7CiAgICAgICAgIFNvdXBEYXRlKiBkYXRlID0gbXNUb1NvdXBEYXRlKGV4cGlyZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGRmYzQ5MGQyYTBiOGFiMmM4
NGFmZjE0MjNhNDM0NDZjODk4MmY5OWIuLjY5NjAyODBhOTdiZjhlM2I2ZWE3YjE1OWNjNDM0YmU0
MzM4ZmQ3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQyMCw0
NiArNDIwLDc4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29raWVzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2ll
cyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7Ci0gICAgVU5VU0VEX1BB
UkFNKGZpcnN0UGFydHkpOworICAgIHJhd0Nvb2tpZXMuY2xlYXIoKTsKKworI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgaWYgKHNob3VsZEJsb2NrQ29va2llcyhmaXJz
dFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7
Ci0gICAgcmF3Q29va2llcy5jbGVhcigpOworI2VuZGlmCisKICAgICBHVW5pcXVlUHRyPFNvdXBV
Ukk+IHVyaSA9IHVybFRvU291cFVSSSh1cmwpOwogICAgIGlmICghdXJpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDApCisgICAgR1VuaXF1
ZVB0cjxTb3VwVVJJPiBjb29raWVVUkkgPSBzYW1lU2l0ZUluZm8uaXNTYW1lU2l0ZSA/IHVybFRv
U291cFVSSSh1cmwpIDogbnVsbHB0cjsKKworICAgIEdVbmlxdWVQdHI8U291cFVSST4gZmlyc3RQ
YXJ0eVVSSSA9IHVybFRvU291cFVSSShzYW1lU2l0ZUluZm8uaXNTYW1lU2l0ZSA/IHVybCA6IGZp
cnN0UGFydHkpOworICAgIGlmICghZmlyc3RQYXJ0eVVSSSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9j
b29raWVfbGlzdF93aXRoX3NhbWVfc2l0ZV9pbmZvKGNvb2tpZVN0b3JhZ2UoKSwgdXJpLmdldCgp
LCBmaXJzdFBhcnR5VVJJLmdldCgpLCBjb29raWVVUkkuZ2V0KCksIG51bGxwdHIsIFRSVUUsIHNh
bWVTaXRlSW5mby5pc1RvcFNpdGUpKTsKKyNlbHNlCiAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNv
b2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdChjb29raWVTdG9yYWdlKCksIHVy
aS5nZXQoKSwgVFJVRSkpOworICAgIFVOVVNFRF9QQVJBTShzYW1lU2l0ZUluZm8pOworI2VuZGlm
CiAgICAgaWYgKCFjb29raWVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKEdT
TGlzdCogaXRlciA9IGNvb2tpZXMuZ2V0KCk7IGl0ZXI7IGl0ZXIgPSBnX3NsaXN0X25leHQoaXRl
cikpIHsKICAgICAgICAgU291cENvb2tpZSogc291cENvb2tpZSA9IHN0YXRpY19jYXN0PFNvdXBD
b29raWUqPihpdGVyLT5kYXRhKTsKLSAgICAgICAgQ29va2llIGNvb2tpZTsKLSAgICAgICAgY29v
a2llLm5hbWUgPSBTdHJpbmc6OmZyb21VVEY4KHNvdXBDb29raWUtPm5hbWUpOwotICAgICAgICBj
b29raWUudmFsdWUgPSBTdHJpbmc6OmZyb21VVEY4KHNvdXBDb29raWUtPnZhbHVlKTsKLSAgICAg
ICAgY29va2llLmRvbWFpbiA9IFN0cmluZzo6ZnJvbVVURjgoc291cENvb2tpZS0+ZG9tYWluKTsK
LSAgICAgICAgY29va2llLnBhdGggPSBTdHJpbmc6OmZyb21VVEY4KHNvdXBDb29raWUtPnBhdGgp
OwotICAgICAgICBjb29raWUuY3JlYXRlZCA9IDA7Ci0gICAgICAgIGNvb2tpZS5leHBpcmVzID0g
c291cENvb2tpZS0+ZXhwaXJlcyA/IHN0YXRpY19jYXN0PGRvdWJsZT4oc291cF9kYXRlX3RvX3Rp
bWVfdChzb3VwQ29va2llLT5leHBpcmVzKSkgKiAxMDAwIDogMDsKLSAgICAgICAgY29va2llLmh0
dHBPbmx5ID0gc291cENvb2tpZS0+aHR0cF9vbmx5OwotICAgICAgICBjb29raWUuc2VjdXJlID0g
c291cENvb2tpZS0+c2VjdXJlOwotICAgICAgICBjb29raWUuc2Vzc2lvbiA9ICFzb3VwQ29va2ll
LT5leHBpcmVzOwotICAgICAgICByYXdDb29raWVzLmFwcGVuZChXVEZNb3ZlKGNvb2tpZSkpOwor
ICAgICAgICByYXdDb29raWVzLmFwcGVuZChDb29raWUoc291cENvb2tpZSkpOwogICAgICAgICBz
b3VwX2Nvb2tpZV9mcmVlKHNvdXBDb29raWUpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwog
fQogCi1zdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIHVybCwgYm9vbCBm
b3JIVFRQSGVhZGVyLCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykK
K3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMsIE9wdGlvbmFsPGNvbnN0IFN0cmluZyY+IGh0dHBNZXRob2QpCiB7CisjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nv
b2tpZXMoZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQorICAgICAgICByZXR1cm4g
eyB7IH0sIGZhbHNlIH07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKKyAgICBV
TlVTRURfUEFSQU0ocGFnZUlEKTsKKyNlbmRpZgorCiAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1
cmkgPSB1cmxUb1NvdXBVUkkodXJsKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAgcmV0dXJuIHsg
eyB9LCBmYWxzZSB9OwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCAwKQorICAgIEdV
bmlxdWVQdHI8U291cFVSST4gZmlyc3RQYXJ0eVVSSSA9IHVybFRvU291cFVSSShmaXJzdFBhcnR5
KTsKKyAgICBpZiAoIWZpcnN0UGFydHlVUkkpCisgICAgICAgIHJldHVybiB7IHsgfSwgZmFsc2Ug
fTsKKworICAgIEdVbmlxdWVQdHI8U291cFVSST4gY29va2llVVJJID0gc2FtZVNpdGVJbmZvLmlz
U2FtZVNpdGUgPyB1cmxUb1NvdXBVUkkodXJsKSA6IG51bGxwdHI7CisKKyAgICBjb25zdCBjaGFy
KiBodHRwTWV0aG9kU3RyID0gbnVsbHB0cjsKKyAgICBpZiAoaHR0cE1ldGhvZCkKKyAgICAgICAg
aHR0cE1ldGhvZFN0ciA9IGh0dHBNZXRob2QtPmFzY2lpKCkuZGF0YSgpOworCisgICAgR1NMaXN0
KiBjb29raWVzID0gc291cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdF93aXRoX3NhbWVfc2l0
ZV9pbmZvKHNlc3Npb24uY29va2llU3RvcmFnZSgpLCB1cmkuZ2V0KCksIGZpcnN0UGFydHlVUkku
Z2V0KCksIGNvb2tpZVVSSS5nZXQoKSwgaHR0cE1ldGhvZFN0ciwgZm9ySFRUUEhlYWRlciwgc2Ft
ZVNpdGVJbmZvLmlzVG9wU2l0ZSk7CisjZWxzZQogICAgIEdTTGlzdCogY29va2llcyA9IHNvdXBf
Y29va2llX2phcl9nZXRfY29va2llX2xpc3Qoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCksIHVyaS5n
ZXQoKSwgZm9ySFRUUEhlYWRlcik7CisgICAgVU5VU0VEX1BBUkFNKGh0dHBNZXRob2QpOworICAg
IFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKKyAgICBVTlVTRURfUEFSQU0oc2FtZVNpdGVJbmZv
KTsKKyNlbmRpZgogICAgIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcyA9IGZhbHNlOwogCiAg
ICAgLy8gbGlic291cCBzaG91bGQgb21pdCBzZWN1cmUgY29va2llcyBpdHNlbGYgaWYgdGhlIHBy
b3RvY29sIGlzIG5vdCBodHRwcy4KQEAgLTQ5MCwyMSArNTIyLDE1IEBAIHN0YXRpYyBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlCiAgICAgcmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRGOChjb29raWVIZWFkZXIuZ2V0
KCkpLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIElu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzLCBjb25zdCBTdHJpbmcmIGh0dHBNZXRob2QpIGNvbnN0CiB7Ci0gICAgVU5VU0VEX1BB
UkFNKGZpcnN0UGFydHkpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKLSAgICBVTlVTRURf
UEFSQU0ocGFnZUlEKTsKLSAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIHVybCwg
ZmFsc2UsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICByZXR1cm4gY29va2llc0ZvclNlc3Np
b24oKnRoaXMsIGZpcnN0UGFydHksIHVybCwgc2FtZVNpdGVJbmZvLCBmcmFtZUlELCBwYWdlSUQs
IGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2llcywgaHR0cE1ldGhvZCk7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
CiB7Ci0gICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwotICAgIFVOVVNFRF9QQVJBTShmcmFt
ZUlEKTsKLSAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKICAgICAvLyBTZWN1cmUgY29va2llcyB3
aWxsIHN0aWxsIG9ubHkgYmUgaW5jbHVkZWQgaWYgdXJsJ3MgcHJvdG9jb2wgaXMgaHR0cHMuCi0g
ICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCB1cmwsIHRydWUsIGluY2x1ZGVTZWN1
cmVDb29raWVzKTsKKyAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFy
dHksIHVybCwgc2FtZVNpdGVJbmZvLCBmcmFtZUlELCBwYWdlSUQsIHRydWUsIGluY2x1ZGVTZWN1
cmVDb29raWVzLCBXVEY6Om51bGxvcHQpOwogfQogCiBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JiBoZWFkZXJGaWVsZFByb3h5KSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
UmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDljY2ZiMmQ2ZmJjZjAzYzM5NjczM2RhYmVlY2U1
OTBkMmMzOWQ1MWYuLjVkOTA3MzFiOGY1NzQyYjNmNTFhNjNiZDhkNjBiYWViNDY3ZTE1Y2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
cXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTExMCw2ICsxMTAsMTUgQEAgdm9pZCBSZXNvdXJj
ZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyhTb3VwTWVzc2FnZSogc291cE1lc3Nh
Z2UpIGNvbnN0CiAgICAgaWYgKGZpcnN0UGFydHkpCiAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRf
Zmlyc3RfcGFydHkoc291cE1lc3NhZ2UsIGZpcnN0UGFydHkuZ2V0KCkpOwogCisjaWYgU09VUF9D
SEVDS19WRVJTSU9OKDIsIDY5LCAwKQorICAgIGlmIChtX3NhbWVTaXRlRGlzcG9zaXRpb24gPT0g
UmVzb3VyY2VSZXF1ZXN0OjpTYW1lU2l0ZURpc3Bvc2l0aW9uOjpTYW1lU2l0ZSkgeworICAgICAg
ICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNpdGVGb3JDb29raWVzID0gdXJsVG9Tb3VwVVJJKG1fdXJs
KTsKKyAgICAgICAgc291cF9tZXNzYWdlX3NldF9zaXRlX2Zvcl9jb29raWVzKHNvdXBNZXNzYWdl
LCBzaXRlRm9yQ29va2llcy5nZXQoKSk7CisgICAgfQorCisgICAgc291cF9tZXNzYWdlX3NldF9p
c190b3BfbGV2ZWxfbmF2aWdhdGlvbihzb3VwTWVzc2FnZSwgaXNUb3BTaXRlKCkpOworI2VuZGlm
CisKICAgICBzb3VwX21lc3NhZ2Vfc2V0X2ZsYWdzKHNvdXBNZXNzYWdlLCBtX3NvdXBGbGFncyk7
CiAKICAgICBpZiAoIWFjY2VwdEVuY29kaW5nKCkpCkBAIC0xNzAsNiArMTc5LDE2IEBAIHZvaWQg
UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBN
ZXNzYWdlKQogICAgIGlmIChTb3VwVVJJKiBmaXJzdFBhcnR5ID0gc291cF9tZXNzYWdlX2dldF9m
aXJzdF9wYXJ0eShzb3VwTWVzc2FnZSkpCiAgICAgICAgIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXMg
PSBzb3VwVVJJVG9VUkwoZmlyc3RQYXJ0eSk7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwg
NjksIDApCisgICAgc2V0SXNUb3BTaXRlKHNvdXBfbWVzc2FnZV9nZXRfaXNfdG9wX2xldmVsX25h
dmlnYXRpb24oc291cE1lc3NhZ2UpKTsKKworICAgIGlmIChTb3VwVVJJKiBzaXRlRm9yQ29va2ll
cyA9IHNvdXBfbWVzc2FnZV9nZXRfc2l0ZV9mb3JfY29va2llcyhzb3VwTWVzc2FnZSkpIHsKKyAg
ICAgICAgVVJMIGNvb2tpZVVSTCA9IHNvdXBVUklUb1VSTChzaXRlRm9yQ29va2llcyk7CisgICAg
ICAgIHNldElzU2FtZVNpdGUoYXJlUmVnaXN0cmFibGVEb21haW5zRXF1YWwoY29va2llVVJMLCBt
X3VybCkpOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlv
biA9IFNhbWVTaXRlRGlzcG9zaXRpb246OlVuc3BlY2lmaWVkOworCiAgICAgbV9zb3VwRmxhZ3Mg
PSBzb3VwX21lc3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlKTsKIAogICAgIC8vIEZJWE1FOiBt
X2FsbG93Q29va2llcyBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBoZXJlIGFuZCBvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1YWI1OThkNTViNDNhYjAxN2MyN2Q4Y2Y5ZmQx
NjcwNjlmN2EwNzQ4Li4wMzRhZDA1NjZjNmQ0ZWFiZWMyNDlmNTdiNjA4NTFjZjgxMTFmOWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTYxLDEyICs1NjEsMTIgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVzQXNDT1JTRW5h
YmxlZChWZWN0b3I8U3RyaW4KICAgICAgICAgbV9zY2hlbWVSZWdpc3RyeS0+cmVnaXN0ZXJVUkxT
Y2hlbWVBc0NPUlNFbmFibGVkKFdURk1vdmUoc2NoZW1lKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNj
ZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRl
U2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgY29uc3QgU3RyaW5nJiBodHRwTWV0
aG9kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2Vj
dXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbigpOwogICAgIGlmICghbmV0d29y
a1N0b3JhZ2VTZXNzaW9uKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9LCBm
YWxzZSk7Ci0gICAgYXV0byByZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPmNvb2tpZXNG
b3JET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpOworICAgIGF1dG8gcmVzdWx0ID0gbmV0d29ya1N0b3JhZ2VTZXNz
aW9uLT5jb29raWVzRm9yRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlE
LCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzLCBodHRwTWV0aG9kKTsKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKCkpIHsKICAgICAgICAgaWYgKHNlc3Np
b24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggZjM5YWJlMmRiNTNlMTA5NzgxMmQyYmVlMGE1YjgyYWQwYTQwNWViNy4uYzQzN2MwOTdl
YWE4NGE1NjViZmE4NjM0ZDZjZDM5ZGNmMGYwY2YyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtMTk4LDcgKzE5OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2No
ZW1lc0FzQ09SU0VuYWJsZWQoVmVjdG9yPFN0cmluZz4mJiBzY2hlbWVzKTsKIAotICAgIHZvaWQg
Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9v
bCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBjb25zdCBT
dHJpbmcmIGh0dHBNZXRob2QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0
cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKICAgICB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IGNvb2tpZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZv
aWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmlu
ZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4YTdjMDQxN2YxODMyYzI1
YWEzMDg1NzE0MDQ2ZDRmYjE0NWYwMmNkLi4yODU2YmFjMGQxYWM2Nzk2YjUwODFjYzYzODZmZmRm
ZTVmZjFhYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
QEAgLTM0LDcgKzM0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQoV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3Vn
Z2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0
X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9h
ZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZSkKIAotICAgIENvb2tpZXNGb3JET00oVVJMIGZpcnN0UGFydHksIHN0
cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wg
ZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBDb29raWVzRm9yRE9NKFVS
TCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywg
VVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFN0cmluZyBodHRwTWV0
aG9kKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVz
KSBTeW5jaHJvbm91cwogICAgIFNldENvb2tpZXNGcm9tRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1
Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQogICAgIENvb2tpZXNFbmFi
bGVkKCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKICAgICBDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5m
byBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51
bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
KSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBT
eW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IGZjYjI2MDVjY2QwMzhhZjIzYTMzOWYw
YjI2NmZlM2I4MTk0ZTcxMzIuLjdjOTljZGQ2NDAwNzVjYWM5YTZhY2U1NTRlYjU4NmUyOWVkODBi
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3Jr
RGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
TmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTY2NCw2ICs2NjQsMTggQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAgICAgbV9sYXN0SFRUUE1l
dGhvZCA9IHJlcXVlc3QuaHR0cE1ldGhvZCgpOwogICAgIHJlcXVlc3QucmVtb3ZlQ3JlZGVudGlh
bHMoKTsKIAorICAgIGlmIChpc1RvcExldmVsTmF2aWdhdGlvbigpKSB7CisgICAgICAgIHJlcXVl
c3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdC51cmwoKSk7CisjaWYgU09VUF9DSEVD
S19WRVJTSU9OKDIsIDY1LCAxKQorICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X2lzX3RvcF9sZXZl
bF9uYXZpZ2F0aW9uKG1fc291cE1lc3NhZ2UuZ2V0KCksIHRydWUpOworICAgIH0KKworICAgIGlm
IChyZXF1ZXN0LmlzU2FtZVNpdGUoKSkgeworICAgICAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHJl
cXVlc3RVUkkgPSB1cmxUb1NvdXBVUkkocmVxdWVzdC51cmwoKSk7CisgICAgICAgIHNvdXBfbWVz
c2FnZV9zZXRfc2l0ZV9mb3JfY29va2llcyhtX3NvdXBNZXNzYWdlLmdldCgpLCByZXF1ZXN0VVJJ
LmdldCgpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIGlmIChpc0Nyb3NzT3JpZ2luKSB7CiAgICAg
ICAgIC8vIFRoZSBuZXR3b3JrIGxheWVyIG1pZ2h0IGNhcnJ5IG92ZXIgc29tZSBoZWFkZXJzIGZy
b20gdGhlIG9yaWdpbmFsIHJlcXVlc3QgdGhhdAogICAgICAgICAvLyB3ZSB3YW50IHRvIHN0cmlw
IGhlcmUgYmVjYXVzZSB0aGUgcmVkaXJlY3QgaXMgY3Jvc3Mtb3JpZ2luLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5kZXggNzM4MmZk
OWE2MTM4MGY1NzNhM2Q4YjQyMDM3NDU3YzEzMzQ1MTU3ZC4uMDI2MWJmMzRhNjMyNGE5NmZhY2Ix
NTBkMDRiY2E0YmI4MGFiMGViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJv
eHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVu
dC5oPgpAQCAtNTAsNiArNTEsNyBAQCBXZWJDb29raWVKYXI6OldlYkNvb2tpZUphcigpCiAKIFN0
cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBVUkwmIHVybCkgY29uc3QKIHsKKyAgICBhdXRvIGh0dHBNZXRob2QgPSBkb2N1bWVudC5s
b2FkZXIoKS0+cmVxdWVzdCgpLmh0dHBNZXRob2QoKTsKICAgICBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAg
ICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CkBAIC01OSw3ICs2MSw3IEBA
IFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogICAgIFN0cmluZyBjb29raWVTdHJpbmc7CiAgICAg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tp
ZXNGb3JET00oZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZvKGRv
Y3VtZW50KSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVz
KGRvY3VtZW50LCB1cmwpKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpDb29raWVzRm9yRE9NOjpSZXBseShjb29raWVTdHJpbmcsIHNlY3VyZUNvb2tpZXNBY2Nlc3Nl
ZCksIDApKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTShkb2N1bWVudC5maXJzdFBhcnR5
Rm9yQ29va2llcygpLCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmwsIGZyYW1lSUQsIHBhZ2VJ
RCwgc2hvdWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVybCksIGh0dHBNZXRob2Qp
LCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006
OlJlcGx5KGNvb2tpZVN0cmluZywgc2VjdXJlQ29va2llc0FjY2Vzc2VkKSwgMCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKICAgICByZXR1cm4gY29va2llU3RyaW5nOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM5OTAxYTI5
OTMwOGJjZWZkMDU3YzZjNGZhNjYzYjIxN2YzMTBmMDQuLjdkNDAyNzYzZGE0ODVhOWViZGM0ZTgz
ZjdiZjIyNTM4NTQzODIxYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMS0xMiAgUGF0
cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVd
IEFkZCBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDEzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgR1RLL1dQRSB0ZXN0IGV4cGVjdGF0aW9ucyB0
byBwYXNzIG1vc3Qgc2FtZS1zaXRlIGNvb2tpZSB0ZXN0cworICAgICAgICBtYXRjaGluZyB0aGUg
QXBwbGUgcG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOS0xMS0xMiAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBX
S1dlYlZpZXcgZG9lcyBub3QgcmVzcGVjdCBzeXN0ZW0gc3BlbGxjaGVja2luZyBwcmVmZXJlbmNl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQ4ZGRkNzMy
ZTYyZjNhOGZlNmVlMGVmZGEwYTllMzc3NDM2OGUwNWMuLjVjMDg4NWQ3OWY2ZWY4ZjUyMGNiMzAy
OGZmZjU2Y2Y2ZDhjNmZmOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCkBAIC0zODc1LDYgKzM4NzUsOCBAQCB3ZWJraXQub3JnL2IvMjAzNjc3IHN2Zy9XM0Mt
U1ZHLTEuMS9wYWludGluZy1maWxsLTA1LWIuc3ZnIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
OTkwMzYgcG9pbnRlci1sb2NrL2xvY2tlZC1lbGVtZW50LWlmcmFtZS1yZW1vdmVkLWZyb20tZG9t
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85OTAzNiBwb2ludGVyLWxvY2svcG9pbnRl
cmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMuaHRtbCBbIEZhaWx1cmUgXQogCit3
ZWJraXQub3JnL2IvMTk0OTMzIGh0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvdXNlci1sb2Fk
LWNyb3NzLXNpdGUtcmVkaXJlY3QucGhwIFsgRmFpbHVyZSBdCisKICMvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBub24tY3Jhc2hpbmcsIG5vbi1mbGFreSB0ZXN0cyBm
YWlsaW5nCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtNDAyNSw2ICs0MDI3
LDggQEAgd2Via2l0Lm9yZy9iLzIwNDExNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3QKIHdlYmtpdC5vcmcvYi8yMDQxMTUgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF90b3Vj
aC1hY3Rpb24tcGFuLXgtcGFuLXlfdG91Y2guaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIw
NDExNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRl
cmV2ZW50X3BvaW50ZXJvdXRfcGVuLmh0bWwgWyBTa2lwIF0KIAoraHR0cC90ZXN0cy9jb29raWVz
L3NhbWUtc2l0ZSBbIFBhc3MgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog
IyBFbmQgb2YgUEFTU0lORyB0ZXN0cy4gU2VlIHRvcCBvZiBmaWxlIHdoZXJlIHRvIHB1dCBuZXcg
ZXhwZWN0YXRpb25zLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzk5OTUzYmI5Mzc4ZWY4YmM1
NGQzOWE5Zjk0NDc1M2ZiOTU3MDg4Mi4uMGUzN2NhZTAzMjBlYWQyZWJiZjk1ODgyNTNlZDdlYzg2
NjJhZmMxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTc2Nyw2ICs3NjcsOCBAQCB3ZWJraXQub3JnL2IvMjA0MTE1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfdAogd2Via2l0Lm9yZy9iLzIw
NDExNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRl
cmV2ZW50X3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teV90b3VjaC5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvMjA0MTE1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2
ZW50cy9wb2ludGVyZXZlbnRfcG9pbnRlcm91dF9wZW4uaHRtbCBbIFNraXAgXQogCitodHRwL3Rl
c3RzL2Nvb2tpZXMvc2FtZS1zaXRlIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAjIDUuIFRFU1RTIENSQVNISU5HCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwpAQCAtMjAyMSw2ICsyMDIzLDcgQEAgd2Via2l0Lm9yZy9iLzIwMzY3NyBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N2Zy9pbXBvcnQvcGFpbnRpbmctZmlsbC0wNS0KIHdl
YmtpdC5vcmcvYi8yMDM2NzcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvaW1w
b3J0L3BhaW50aW5nLXN0cm9rZS0wOC10LW1hbnVhbC5zdmcgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8yMDM2Nzcgc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLWZpbGwtMDUtYi5zdmcgWyBGYWls
dXJlIF0KIAord2Via2l0Lm9yZy9iLzE5NDkzMyBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L3VzZXItbG9hZC1jcm9zcy1zaXRlLXJlZGlyZWN0LnBocCBbIEZhaWx1cmUgXQogCiAjLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyAgPj4gTk9USUNFIDw8Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383420</attachid>
            <date>2019-11-12 19:06:33 -0800</date>
            <delta_ts>2020-02-04 05:38:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204137-20191112190633.patch</filename>
            <type>text/plain</type>
            <size>34813</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc1OGIzOWY0NTM5NDU5
OTMwOGM2ODQ2OTU2M2E5NjgxYTk1ZWY2NS4uODUwYWFmMGE3ZGNhOTJmY2UzZGQ2NWFiMjg3NTE3
YmJhYTJmY2M0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE5LTExLTEyICBQYXRy
aWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
QWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQg
aW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICBBZGRlZCBhbiBodHRwTWV0aG9kIGFyZ3Vt
ZW50IHRvIGNvb2tpZSBsb29rdXAgZnVuY3Rpb25zIGZvciB0aGUKKyAgICAgICAgc291cCBBUEkg
dG8gdXNlLiBNb2RpZmllZCBvdGhlciBiYWNrZW5kcyB0byBzaW1wbHkgaWdub3JlIHRoaXMuCisK
KyAgICAgICAgKiBsb2FkZXIvQ29va2llSmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tp
ZUphcjo6Y29va2llcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNGTmV0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29va2llSmFyQ3VybDo6Y29va2llc0ZvckRPTSBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00gY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvcmVTYW1lU2l0ZVBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpzb3VwU2FtZVNpdGVQ
b2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llOjpDb29raWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29va2llOjp0b1NvdXBDb29raWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2Fn
ZU1lbWJlcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRh
dGVGcm9tU291cE1lc3NhZ2UpOgorCiAyMDE5LTExLTEyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gSW5saW5lRm9ybWF0dGluZ1N0YXRlOjphZGRJbmxp
bmVSdW4gc2hvdWxkIHRha2UgYSB1bmlxdWVfcHRyPERpc3BsYXk6OlJ1bj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NzQwNzI5NWJiYWU1OGI1Mjc4ZWIxNWY4NmJhMWRkZmQwOTAxOWJkYi4uMmQyNWEzOWFhNTI4YTAw
NjIxMDAwZmEzYzU5NWRjZTUzMjI0MzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
OS0xMS0xMiAgUGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXVtXUEVdIEFkZCBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDEzNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudHMgc2FtZS1zaXRlIGNv
b2tpZSBzdXBwb3J0IGluIHRoZSBzb3VwIGJhY2tlbmQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJl
ZGlyZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKwogMjAx
OS0xMS0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBXS1dlYlZpZXcgZG9lcyBub3QgcmVzcGVjdCBzeXN0ZW0gc3BlbGxjaGVja2luZyBw
cmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IGExMDAxNWNiMTk3
OGY2YzU2ZjhmMmZlMDk4YjYxODg3MDY3MDFkNGMuLmU1M2FjYjdiMzY0YWJkOGIyNGE0NjZkNjVi
YjQ5ZmMxOWI0ZDE0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVK
YXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC03MCw2
ICs3MCw3IEBAIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBVUkwmIHVybCkgY29uc3QKICAgICBUcmFjZVNjb3BlIHNjb3BlKEZldGNoQ29va2llc1N0
YXJ0LCBGZXRjaENvb2tpZXNFbmQpOwogCiAgICAgYXV0byBpbmNsdWRlU2VjdXJlQ29va2llcyA9
IHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVzKGRvY3VtZW50LCB1cmwpOworICAgIGF1dG8gaHR0
cE1ldGhvZCA9IGRvY3VtZW50LmxvYWRlcigpLT5yZXF1ZXN0KCkuaHR0cE1ldGhvZCgpOwogCiAg
ICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQ7CkBAIC04MCw3ICs4MSw3IEBAIFN0cmluZyBDb29raWVKYXI6OmNv
b2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogICAgIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IHJlc3VsdDsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1f
c3RvcmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkKLSAgICAgICAgcmVzdWx0
ID0gc2Vzc2lvbi0+Y29va2llc0ZvckRPTShkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpOworICAgICAgICByZXN1bHQgPSBzZXNzaW9uLT5jb29raWVzRm9yRE9NKGRv
Y3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRlSW5mbyhkb2N1bWVudCksIHVy
bCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcywgaHR0cE1ldGhvZCk7CiAg
ICAgZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5k
ZXggNjY5OWI1ZDc1NWNlM2YyYjY1MGZkZWNmNjZmYmQ5MzViNDVhMjEwNy4uMzRmMzg2NzllYzhl
NGNjMjExZjI3NjVmMzU0NTM3OGEwYmU5ZjZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0xMzgsNyAr
MTM4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2llcyhj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgVmVjdG9y
PENvb2tpZT4mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZsdXNoQ29va2llU3Rv
cmUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKEhh
c2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMsIGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4s
IEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0V2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ0ZOZXRXaW4uY3BwCmluZGV4IGViODFjMDUyZWJkYTcyZGEwNmRiZTdjZDI0OTRmNGQz
MmFlZTBmZDQuLjdlNDdkNGVkY2QxMjc4YWQxYTg3ODYyNjUxMTRlNDZmMzJjN2EyN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ0ZOZXRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCkBAIC0yMjUsMTAgKzIyNSwxMSBA
QCBzdGF0aWMgYm9vbCBjb250YWluc1NlY3VyZUNvb2tpZXMoQ0ZBcnJheVJlZiBjb29raWVzKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgY29uc3QgU3RyaW5nJiBodHRw
TWV0aG9kKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURf
UEFSQU0ocGFnZUlEKTsKKyAgICBVTlVTRURfUEFSQU0oaHR0cE1ldGhvZCk7CiAgICAgUmV0YWlu
UHRyPENGQXJyYXlSZWY+IGNvb2tpZXNDRiA9IGNvcHlDb29raWVzRm9yVVJMV2l0aEZpcnN0UGFy
dHlVUkwoKnRoaXMsIGZpcnN0UGFydHksIHVybCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogICAg
IAogICAgIGF1dG8gZmlsdGVyZWRDb29raWVzID0gZmlsdGVyQ29va2llcyhjb29raWVzQ0YuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggZGRjYTJjNjNj
Y2UzMGE2YzJjZTAwM2RiNzc5ODRjMjE5ODg3YjQ3ZC4uOTFjZTM0MGFhNzVmZTk3N2M2MTQxYmY2
NjFkZDY3Njc5ZDk0NGZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1t
CkBAIC0zNzcsOCArMzc3LDkgQEAgc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZI
VFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0b3Jh
Z2VEZWxldGVBbGxDb29raWVzKGNvb2tpZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
IGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCkgY29uc3QK
IHsKKyAgICBVTlVTRURfUEFSQU0oaHR0cE1ldGhvZCk7CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JT
ZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFn
ZUlELCBEb05vdEluY2x1ZGVIVFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
Q3VybC5jcHAKaW5kZXggNWVjYmE2NmVmOTQ5ODRlYmZmNWUzZmYwMzQzNzVhYmI2OGNhNzJmYS4u
ZGNjZTU0OGMzZTRlNjdhNzJiZDE5YWY4YmJiZmUyODhhMmE5ZjY1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcApA
QCAtNzMsMTAgKzczLDExIEBAIHZvaWQgQ29va2llSmFyQ3VybDo6c2V0Q29va2llc0Zyb21IVFRQ
UmVzcG9uc2UoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzCiAgICAgY29va2llSmFy
REIuc2V0Q29va2llKGZpcnN0UGFydHksIHVybCwgdmFsdWUsIENvb2tpZUphckRCOjpTb3VyY2U6
Ok5ldHdvcmspOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsOjpj
b29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IENvb2tpZUphckN1cmw6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzLCBjb25zdCBT
dHJpbmcmIGh0dHBNZXRob2QpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwog
ICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOworICAgIFVOVVNFRF9QQVJBTShodHRwTWV0aG9kKTsK
IAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBmaWx0ZXIgc2VjdXJlIGNvb2tpZXMgb3V0IGlm
IHRoZSBjYWxsZXIgcmVxdWVzdHMgaXQuCiAgICAgcmV0dXJuIHsgY29va2llc0ZvclNlc3Npb24o
c2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmYWxzZSksIGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaAppbmRleCA1
ZTk3NGY1ZmJkYjhjMDQ5NzVhNTUxMWIwZGM0YTE0MmQxMDFhMzA4Li5iZDAyYTVlYTg5YzJiOWYz
Njg2OTZlYjg1NWVjNGE1YzllNTNiNzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgZW51
bSBjbGFzcyBDb29raWVBY2NlcHRQb2xpY3k7CiBjbGFzcyBDb29raWVKYXJDdXJsIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1
ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcywg
Y29uc3QgU3RyaW5nJiBodHRwTWV0aG9kKSBjb25zdDsKICAgICB2b2lkIHNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0
OwogICAgIHZvaWQgc2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2UoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmKSBjb25zdDsKICAgICB2b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBDb29raWVBY2NlcHRQb2xpY3kpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bkN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmluZGV4IGYyYTE5MDM1NjFhYzFhNTBiMGJiZDhmNzU3YTBl
NTY1NDYzYmI1MmEuLjJkZmI2MTU5ZTM1ZDI3YzZmZjMyNjkwM2RhZmZmOTEyNjZjM2ExOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25DdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5jcHAKQEAgLTkwLDkgKzkwLDkgQEAgYm9v
bCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKICAgICByZXR1
cm4gY29va2llU3RvcmFnZSgpLmNvb2tpZXNFbmFibGVkKCp0aGlzKTsKIH0KIAotc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBjb25zdCBTdHJpbmcmIGh0dHBNZXRob2Qp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvb2tpZVN0b3JhZ2UoKS5jb29raWVzRm9yRE9NKCp0aGlz
LCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRl
U2VjdXJlQ29va2llcyk7CisgICAgcmV0dXJuIGNvb2tpZVN0b3JhZ2UoKS5jb29raWVzRm9yRE9N
KCp0aGlzLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBp
bmNsdWRlU2VjdXJlQ29va2llcywgaHR0cE1ldGhvZCk7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgY29uc3QgVVJMJiwg
Y29uc3QgVVJMJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Db29raWVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9Db29raWVTb3VwLmNwcAppbmRleCBlNDRjNGFlNjcwNjU0MmQzMGM0ZTczZTIyNTY0MDY3NzMx
NTliYWE1Li5kZjkxOTRmNjUyMzRkYWVmOGI2YmM1ZWRhODJiOWExNTA5MWQzODhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU291cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVNvdXAuY3Bw
CkBAIC0zMiw2ICszMiwzOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBTT1VQX0NI
RUNLX1ZFUlNJT04oMiwgNjksIDApCitzdGF0aWMgQ29va2llOjpTYW1lU2l0ZVBvbGljeSBjb3Jl
U2FtZVNpdGVQb2xpY3koU291cFNhbWVTaXRlUG9saWN5IHBvbGljeSkKK3sKKyAgICBzd2l0Y2gg
KHBvbGljeSkgeworICAgIGNhc2UgU09VUF9TQU1FX1NJVEVfUE9MSUNZX05PTkU6CisgICAgICAg
IHJldHVybiBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpOb25lOworICAgIGNhc2UgU09VUF9TQU1F
X1NJVEVfUE9MSUNZX0xBWDoKKyAgICAgICAgcmV0dXJuIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6
OkxheDsKKyAgICBjYXNlIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9TVFJJQ1Q6CisgICAgICAgIHJl
dHVybiBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpTdHJpY3Q7CisgICAgfQorCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6Ok5vbmU7
Cit9CisKK3N0YXRpYyBTb3VwU2FtZVNpdGVQb2xpY3kgc291cFNhbWVTaXRlUG9saWN5KENvb2tp
ZTo6U2FtZVNpdGVQb2xpY3kgcG9saWN5KQoreworICAgIHN3aXRjaCAocG9saWN5KSB7CisgICAg
Y2FzZSBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpOb25lOgorICAgICAgICByZXR1cm4gU09VUF9T
QU1FX1NJVEVfUE9MSUNZX05PTkU7CisgICAgY2FzZSBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpM
YXg6CisgICAgICAgIHJldHVybiBTT1VQX1NBTUVfU0lURV9QT0xJQ1lfTEFYOworICAgIGNhc2Ug
Q29va2llOjpTYW1lU2l0ZVBvbGljeTo6U3RyaWN0OgorICAgICAgICByZXR1cm4gU09VUF9TQU1F
X1NJVEVfUE9MSUNZX1NUUklDVDsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gU09VUF9TQU1FX1NJVEVfUE9MSUNZX05PTkU7Cit9CisjZW5kaWYKKwogQ29v
a2llOjpDb29raWUoU291cENvb2tpZSogY29va2llKQogICAgIDogbmFtZShTdHJpbmc6OmZyb21V
VEY4KGNvb2tpZS0+bmFtZSkpCiAgICAgLCB2YWx1ZShTdHJpbmc6OmZyb21VVEY4KGNvb2tpZS0+
dmFsdWUpKQpAQCAtNDMsNiArNzUsOSBAQCBDb29raWU6OkNvb2tpZShTb3VwQ29va2llKiBjb29r
aWUpCiAgICAgLCBzZXNzaW9uKCFjb29raWUtPmV4cGlyZXMpCiAKIHsKKyNpZiBTT1VQX0NIRUNL
X1ZFUlNJT04oMiwgNjksIDApCisgICAgc2FtZVNpdGUgPSBjb3JlU2FtZVNpdGVQb2xpY3koc291
cF9jb29raWVfZ2V0X3NhbWVfc2l0ZV9wb2xpY3koY29va2llKSk7CisjZW5kaWYKIH0KIAogc3Rh
dGljIFNvdXBEYXRlKiBtc1RvU291cERhdGUoZG91YmxlIG1zKQpAQCAtNjYsNiArMTAxLDkgQEAg
U291cENvb2tpZSogQ29va2llOjp0b1NvdXBDb29raWUoKSBjb25zdAogCiAgICAgc291cF9jb29r
aWVfc2V0X2h0dHBfb25seShzb3VwQ29va2llLCBodHRwT25seSk7CiAgICAgc291cF9jb29raWVf
c2V0X3NlY3VyZShzb3VwQ29va2llLCBzZWN1cmUpOworI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigy
LCA2OSwgMCkKKyAgICBzb3VwX2Nvb2tpZV9zZXRfc2FtZV9zaXRlX3BvbGljeShzb3VwQ29va2ll
LCBzb3VwU2FtZVNpdGVQb2xpY3koc2FtZVNpdGUpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFzZXNz
aW9uKSB7CiAgICAgICAgIFNvdXBEYXRlKiBkYXRlID0gbXNUb1NvdXBEYXRlKGV4cGlyZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGRmYzQ5MGQyYTBiOGFiMmM4
NGFmZjE0MjNhNDM0NDZjODk4MmY5OWIuLjY5NjAyODBhOTdiZjhlM2I2ZWE3YjE1OWNjNDM0YmU0
MzM4ZmQ3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQyMCw0
NiArNDIwLDc4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29raWVzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2ll
cyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7Ci0gICAgVU5VU0VEX1BB
UkFNKGZpcnN0UGFydHkpOworICAgIHJhd0Nvb2tpZXMuY2xlYXIoKTsKKworI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgaWYgKHNob3VsZEJsb2NrQ29va2llcyhmaXJz
dFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7
Ci0gICAgcmF3Q29va2llcy5jbGVhcigpOworI2VuZGlmCisKICAgICBHVW5pcXVlUHRyPFNvdXBV
Ukk+IHVyaSA9IHVybFRvU291cFVSSSh1cmwpOwogICAgIGlmICghdXJpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDApCisgICAgR1VuaXF1
ZVB0cjxTb3VwVVJJPiBjb29raWVVUkkgPSBzYW1lU2l0ZUluZm8uaXNTYW1lU2l0ZSA/IHVybFRv
U291cFVSSSh1cmwpIDogbnVsbHB0cjsKKworICAgIEdVbmlxdWVQdHI8U291cFVSST4gZmlyc3RQ
YXJ0eVVSSSA9IHVybFRvU291cFVSSShzYW1lU2l0ZUluZm8uaXNTYW1lU2l0ZSA/IHVybCA6IGZp
cnN0UGFydHkpOworICAgIGlmICghZmlyc3RQYXJ0eVVSSSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9j
b29raWVfbGlzdF93aXRoX3NhbWVfc2l0ZV9pbmZvKGNvb2tpZVN0b3JhZ2UoKSwgdXJpLmdldCgp
LCBmaXJzdFBhcnR5VVJJLmdldCgpLCBjb29raWVVUkkuZ2V0KCksIG51bGxwdHIsIFRSVUUsIHNh
bWVTaXRlSW5mby5pc1RvcFNpdGUpKTsKKyNlbHNlCiAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNv
b2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdChjb29raWVTdG9yYWdlKCksIHVy
aS5nZXQoKSwgVFJVRSkpOworICAgIFVOVVNFRF9QQVJBTShzYW1lU2l0ZUluZm8pOworI2VuZGlm
CiAgICAgaWYgKCFjb29raWVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKEdT
TGlzdCogaXRlciA9IGNvb2tpZXMuZ2V0KCk7IGl0ZXI7IGl0ZXIgPSBnX3NsaXN0X25leHQoaXRl
cikpIHsKICAgICAgICAgU291cENvb2tpZSogc291cENvb2tpZSA9IHN0YXRpY19jYXN0PFNvdXBD
b29raWUqPihpdGVyLT5kYXRhKTsKLSAgICAgICAgQ29va2llIGNvb2tpZTsKLSAgICAgICAgY29v
a2llLm5hbWUgPSBTdHJpbmc6OmZyb21VVEY4KHNvdXBDb29raWUtPm5hbWUpOwotICAgICAgICBj
b29raWUudmFsdWUgPSBTdHJpbmc6OmZyb21VVEY4KHNvdXBDb29raWUtPnZhbHVlKTsKLSAgICAg
ICAgY29va2llLmRvbWFpbiA9IFN0cmluZzo6ZnJvbVVURjgoc291cENvb2tpZS0+ZG9tYWluKTsK
LSAgICAgICAgY29va2llLnBhdGggPSBTdHJpbmc6OmZyb21VVEY4KHNvdXBDb29raWUtPnBhdGgp
OwotICAgICAgICBjb29raWUuY3JlYXRlZCA9IDA7Ci0gICAgICAgIGNvb2tpZS5leHBpcmVzID0g
c291cENvb2tpZS0+ZXhwaXJlcyA/IHN0YXRpY19jYXN0PGRvdWJsZT4oc291cF9kYXRlX3RvX3Rp
bWVfdChzb3VwQ29va2llLT5leHBpcmVzKSkgKiAxMDAwIDogMDsKLSAgICAgICAgY29va2llLmh0
dHBPbmx5ID0gc291cENvb2tpZS0+aHR0cF9vbmx5OwotICAgICAgICBjb29raWUuc2VjdXJlID0g
c291cENvb2tpZS0+c2VjdXJlOwotICAgICAgICBjb29raWUuc2Vzc2lvbiA9ICFzb3VwQ29va2ll
LT5leHBpcmVzOwotICAgICAgICByYXdDb29raWVzLmFwcGVuZChXVEZNb3ZlKGNvb2tpZSkpOwor
ICAgICAgICByYXdDb29raWVzLmFwcGVuZChDb29raWUoc291cENvb2tpZSkpOwogICAgICAgICBz
b3VwX2Nvb2tpZV9mcmVlKHNvdXBDb29raWUpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwog
fQogCi1zdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIHVybCwgYm9vbCBm
b3JIVFRQSGVhZGVyLCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykK
K3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMsIE9wdGlvbmFsPGNvbnN0IFN0cmluZyY+IGh0dHBNZXRob2QpCiB7CisjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nv
b2tpZXMoZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQorICAgICAgICByZXR1cm4g
eyB7IH0sIGZhbHNlIH07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKKyAgICBV
TlVTRURfUEFSQU0ocGFnZUlEKTsKKyNlbmRpZgorCiAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1
cmkgPSB1cmxUb1NvdXBVUkkodXJsKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAgcmV0dXJuIHsg
eyB9LCBmYWxzZSB9OwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCAwKQorICAgIEdV
bmlxdWVQdHI8U291cFVSST4gZmlyc3RQYXJ0eVVSSSA9IHVybFRvU291cFVSSShmaXJzdFBhcnR5
KTsKKyAgICBpZiAoIWZpcnN0UGFydHlVUkkpCisgICAgICAgIHJldHVybiB7IHsgfSwgZmFsc2Ug
fTsKKworICAgIEdVbmlxdWVQdHI8U291cFVSST4gY29va2llVVJJID0gc2FtZVNpdGVJbmZvLmlz
U2FtZVNpdGUgPyB1cmxUb1NvdXBVUkkodXJsKSA6IG51bGxwdHI7CisKKyAgICBjb25zdCBjaGFy
KiBodHRwTWV0aG9kU3RyID0gbnVsbHB0cjsKKyAgICBpZiAoaHR0cE1ldGhvZCkKKyAgICAgICAg
aHR0cE1ldGhvZFN0ciA9IGh0dHBNZXRob2QtPmFzY2lpKCkuZGF0YSgpOworCisgICAgR1NMaXN0
KiBjb29raWVzID0gc291cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdF93aXRoX3NhbWVfc2l0
ZV9pbmZvKHNlc3Npb24uY29va2llU3RvcmFnZSgpLCB1cmkuZ2V0KCksIGZpcnN0UGFydHlVUkku
Z2V0KCksIGNvb2tpZVVSSS5nZXQoKSwgaHR0cE1ldGhvZFN0ciwgZm9ySFRUUEhlYWRlciwgc2Ft
ZVNpdGVJbmZvLmlzVG9wU2l0ZSk7CisjZWxzZQogICAgIEdTTGlzdCogY29va2llcyA9IHNvdXBf
Y29va2llX2phcl9nZXRfY29va2llX2xpc3Qoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCksIHVyaS5n
ZXQoKSwgZm9ySFRUUEhlYWRlcik7CisgICAgVU5VU0VEX1BBUkFNKGh0dHBNZXRob2QpOworICAg
IFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKKyAgICBVTlVTRURfUEFSQU0oc2FtZVNpdGVJbmZv
KTsKKyNlbmRpZgogICAgIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcyA9IGZhbHNlOwogCiAg
ICAgLy8gbGlic291cCBzaG91bGQgb21pdCBzZWN1cmUgY29va2llcyBpdHNlbGYgaWYgdGhlIHBy
b3RvY29sIGlzIG5vdCBodHRwcy4KQEAgLTQ5MCwyMSArNTIyLDE1IEBAIHN0YXRpYyBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlCiAgICAgcmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRGOChjb29raWVIZWFkZXIuZ2V0
KCkpLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIElu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzLCBjb25zdCBTdHJpbmcmIGh0dHBNZXRob2QpIGNvbnN0CiB7Ci0gICAgVU5VU0VEX1BB
UkFNKGZpcnN0UGFydHkpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKLSAgICBVTlVTRURf
UEFSQU0ocGFnZUlEKTsKLSAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIHVybCwg
ZmFsc2UsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICByZXR1cm4gY29va2llc0ZvclNlc3Np
b24oKnRoaXMsIGZpcnN0UGFydHksIHVybCwgc2FtZVNpdGVJbmZvLCBmcmFtZUlELCBwYWdlSUQs
IGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2llcywgaHR0cE1ldGhvZCk7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
CiB7Ci0gICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwotICAgIFVOVVNFRF9QQVJBTShmcmFt
ZUlEKTsKLSAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKICAgICAvLyBTZWN1cmUgY29va2llcyB3
aWxsIHN0aWxsIG9ubHkgYmUgaW5jbHVkZWQgaWYgdXJsJ3MgcHJvdG9jb2wgaXMgaHR0cHMuCi0g
ICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCB1cmwsIHRydWUsIGluY2x1ZGVTZWN1
cmVDb29raWVzKTsKKyAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFy
dHksIHVybCwgc2FtZVNpdGVJbmZvLCBmcmFtZUlELCBwYWdlSUQsIHRydWUsIGluY2x1ZGVTZWN1
cmVDb29raWVzLCBXVEY6Om51bGxvcHQpOwogfQogCiBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JiBoZWFkZXJGaWVsZFByb3h5KSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
UmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IDljY2ZiMmQ2ZmJjZjAzYzM5NjczM2RhYmVlY2U1
OTBkMmMzOWQ1MWYuLjVkOTA3MzFiOGY1NzQyYjNmNTFhNjNiZDhkNjBiYWViNDY3ZTE1Y2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
cXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAgLTExMCw2ICsxMTAsMTUgQEAgdm9pZCBSZXNvdXJj
ZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyhTb3VwTWVzc2FnZSogc291cE1lc3Nh
Z2UpIGNvbnN0CiAgICAgaWYgKGZpcnN0UGFydHkpCiAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRf
Zmlyc3RfcGFydHkoc291cE1lc3NhZ2UsIGZpcnN0UGFydHkuZ2V0KCkpOwogCisjaWYgU09VUF9D
SEVDS19WRVJTSU9OKDIsIDY5LCAwKQorICAgIGlmIChtX3NhbWVTaXRlRGlzcG9zaXRpb24gPT0g
UmVzb3VyY2VSZXF1ZXN0OjpTYW1lU2l0ZURpc3Bvc2l0aW9uOjpTYW1lU2l0ZSkgeworICAgICAg
ICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNpdGVGb3JDb29raWVzID0gdXJsVG9Tb3VwVVJJKG1fdXJs
KTsKKyAgICAgICAgc291cF9tZXNzYWdlX3NldF9zaXRlX2Zvcl9jb29raWVzKHNvdXBNZXNzYWdl
LCBzaXRlRm9yQ29va2llcy5nZXQoKSk7CisgICAgfQorCisgICAgc291cF9tZXNzYWdlX3NldF9p
c190b3BfbGV2ZWxfbmF2aWdhdGlvbihzb3VwTWVzc2FnZSwgaXNUb3BTaXRlKCkpOworI2VuZGlm
CisKICAgICBzb3VwX21lc3NhZ2Vfc2V0X2ZsYWdzKHNvdXBNZXNzYWdlLCBtX3NvdXBGbGFncyk7
CiAKICAgICBpZiAoIWFjY2VwdEVuY29kaW5nKCkpCkBAIC0xNzAsNiArMTc5LDE2IEBAIHZvaWQg
UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBN
ZXNzYWdlKQogICAgIGlmIChTb3VwVVJJKiBmaXJzdFBhcnR5ID0gc291cF9tZXNzYWdlX2dldF9m
aXJzdF9wYXJ0eShzb3VwTWVzc2FnZSkpCiAgICAgICAgIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXMg
PSBzb3VwVVJJVG9VUkwoZmlyc3RQYXJ0eSk7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwg
NjksIDApCisgICAgc2V0SXNUb3BTaXRlKHNvdXBfbWVzc2FnZV9nZXRfaXNfdG9wX2xldmVsX25h
dmlnYXRpb24oc291cE1lc3NhZ2UpKTsKKworICAgIGlmIChTb3VwVVJJKiBzaXRlRm9yQ29va2ll
cyA9IHNvdXBfbWVzc2FnZV9nZXRfc2l0ZV9mb3JfY29va2llcyhzb3VwTWVzc2FnZSkpIHsKKyAg
ICAgICAgVVJMIGNvb2tpZVVSTCA9IHNvdXBVUklUb1VSTChzaXRlRm9yQ29va2llcyk7CisgICAg
ICAgIHNldElzU2FtZVNpdGUoYXJlUmVnaXN0cmFibGVEb21haW5zRXF1YWwoY29va2llVVJMLCBt
X3VybCkpOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlv
biA9IFNhbWVTaXRlRGlzcG9zaXRpb246OlVuc3BlY2lmaWVkOworCiAgICAgbV9zb3VwRmxhZ3Mg
PSBzb3VwX21lc3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlKTsKIAogICAgIC8vIEZJWE1FOiBt
X2FsbG93Q29va2llcyBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBoZXJlIGFuZCBvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1YWI1OThkNTViNDNhYjAxN2MyN2Q4Y2Y5ZmQx
NjcwNjlmN2EwNzQ4Li4wMzRhZDA1NjZjNmQ0ZWFiZWMyNDlmNTdiNjA4NTFjZjgxMTFmOWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTYxLDEyICs1NjEsMTIgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVzQXNDT1JTRW5h
YmxlZChWZWN0b3I8U3RyaW4KICAgICAgICAgbV9zY2hlbWVSZWdpc3RyeS0+cmVnaXN0ZXJVUkxT
Y2hlbWVBc0NPUlNFbmFibGVkKFdURk1vdmUoc2NoZW1lKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNj
ZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRl
U2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgY29uc3QgU3RyaW5nJiBodHRwTWV0
aG9kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2Vj
dXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbigpOwogICAgIGlmICghbmV0d29y
a1N0b3JhZ2VTZXNzaW9uKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9LCBm
YWxzZSk7Ci0gICAgYXV0byByZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPmNvb2tpZXNG
b3JET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpOworICAgIGF1dG8gcmVzdWx0ID0gbmV0d29ya1N0b3JhZ2VTZXNz
aW9uLT5jb29raWVzRm9yRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlE
LCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzLCBodHRwTWV0aG9kKTsKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKCkpIHsKICAgICAgICAgaWYgKHNlc3Np
b24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggZjM5YWJlMmRiNTNlMTA5NzgxMmQyYmVlMGE1YjgyYWQwYTQwNWViNy4uYzQzN2MwOTdl
YWE4NGE1NjViZmE4NjM0ZDZjZDM5ZGNmMGYwY2YyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtMTk4LDcgKzE5OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2No
ZW1lc0FzQ09SU0VuYWJsZWQoVmVjdG9yPFN0cmluZz4mJiBzY2hlbWVzKTsKIAotICAgIHZvaWQg
Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9v
bCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBjb25zdCBT
dHJpbmcmIGh0dHBNZXRob2QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0
cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKICAgICB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IGNvb2tpZXNFbmFibGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZv
aWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmlu
ZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4YTdjMDQxN2YxODMyYzI1
YWEzMDg1NzE0MDQ2ZDRmYjE0NWYwMmNkLi4yODU2YmFjMGQxYWM2Nzk2YjUwODFjYzYzODZmZmRm
ZTVmZjFhYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
QEAgLTM0LDcgKzM0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQoV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3Vn
Z2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQodWludDY0
X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9h
ZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZSkKIAotICAgIENvb2tpZXNGb3JET00oVVJMIGZpcnN0UGFydHksIHN0
cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wg
ZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBDb29raWVzRm9yRE9NKFVS
TCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywg
VVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFN0cmluZyBodHRwTWV0
aG9kKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVz
KSBTeW5jaHJvbm91cwogICAgIFNldENvb2tpZXNGcm9tRE9NKFVSTCBmaXJzdFBhcnR5LCBzdHJ1
Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQogICAgIENvb2tpZXNFbmFi
bGVkKCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKICAgICBDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5m
byBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51
bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
KSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBT
eW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IGZjYjI2MDVjY2QwMzhhZjIzYTMzOWYw
YjI2NmZlM2I4MTk0ZTcxMzIuLmUzMGViMTVkNjFlYTUwMGVjMTJiNzQ0NGRkYzI3YTM0NzllZGZk
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3Jr
RGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
TmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTY2NCw2ICs2NjQsMTggQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpjb250aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAgICAgbV9sYXN0SFRUUE1l
dGhvZCA9IHJlcXVlc3QuaHR0cE1ldGhvZCgpOwogICAgIHJlcXVlc3QucmVtb3ZlQ3JlZGVudGlh
bHMoKTsKIAorICAgIGlmIChpc1RvcExldmVsTmF2aWdhdGlvbigpKSB7CisgICAgICAgIHJlcXVl
c3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdC51cmwoKSk7CisjaWYgU09VUF9DSEVD
S19WRVJTSU9OKDIsIDY5LCAwKQorICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X2lzX3RvcF9sZXZl
bF9uYXZpZ2F0aW9uKG1fc291cE1lc3NhZ2UuZ2V0KCksIHRydWUpOworICAgIH0KKworICAgIGlm
IChyZXF1ZXN0LmlzU2FtZVNpdGUoKSkgeworICAgICAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHJl
cXVlc3RVUkkgPSB1cmxUb1NvdXBVUkkocmVxdWVzdC51cmwoKSk7CisgICAgICAgIHNvdXBfbWVz
c2FnZV9zZXRfc2l0ZV9mb3JfY29va2llcyhtX3NvdXBNZXNzYWdlLmdldCgpLCByZXF1ZXN0VVJJ
LmdldCgpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIGlmIChpc0Nyb3NzT3JpZ2luKSB7CiAgICAg
ICAgIC8vIFRoZSBuZXR3b3JrIGxheWVyIG1pZ2h0IGNhcnJ5IG92ZXIgc29tZSBoZWFkZXJzIGZy
b20gdGhlIG9yaWdpbmFsIHJlcXVlc3QgdGhhdAogICAgICAgICAvLyB3ZSB3YW50IHRvIHN0cmlw
IGhlcmUgYmVjYXVzZSB0aGUgcmVkaXJlY3QgaXMgY3Jvc3Mtb3JpZ2luLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5kZXggNzM4MmZk
OWE2MTM4MGY1NzNhM2Q4YjQyMDM3NDU3YzEzMzQ1MTU3ZC4uMDI2MWJmMzRhNjMyNGE5NmZhY2Ix
NTBkMDRiY2E0YmI4MGFiMGViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJv
eHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVu
dC5oPgpAQCAtNTAsNiArNTEsNyBAQCBXZWJDb29raWVKYXI6OldlYkNvb2tpZUphcigpCiAKIFN0
cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBVUkwmIHVybCkgY29uc3QKIHsKKyAgICBhdXRvIGh0dHBNZXRob2QgPSBkb2N1bWVudC5s
b2FkZXIoKS0+cmVxdWVzdCgpLmh0dHBNZXRob2QoKTsKICAgICBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAg
ICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CkBAIC01OSw3ICs2MSw3IEBA
IFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogICAgIFN0cmluZyBjb29raWVTdHJpbmc7CiAgICAg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tp
ZXNGb3JET00oZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZvKGRv
Y3VtZW50KSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVz
KGRvY3VtZW50LCB1cmwpKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpDb29raWVzRm9yRE9NOjpSZXBseShjb29raWVTdHJpbmcsIHNlY3VyZUNvb2tpZXNBY2Nlc3Nl
ZCksIDApKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTShkb2N1bWVudC5maXJzdFBhcnR5
Rm9yQ29va2llcygpLCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmwsIGZyYW1lSUQsIHBhZ2VJ
RCwgc2hvdWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVybCksIGh0dHBNZXRob2Qp
LCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006
OlJlcGx5KGNvb2tpZVN0cmluZywgc2VjdXJlQ29va2llc0FjY2Vzc2VkKSwgMCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKICAgICByZXR1cm4gY29va2llU3RyaW5nOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM5OTAxYTI5
OTMwOGJjZWZkMDU3YzZjNGZhNjYzYjIxN2YzMTBmMDQuLjdkNDAyNzYzZGE0ODVhOWViZGM0ZTgz
ZjdiZjIyNTM4NTQzODIxYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMS0xMiAgUGF0
cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVd
IEFkZCBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDEzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgR1RLL1dQRSB0ZXN0IGV4cGVjdGF0aW9ucyB0
byBwYXNzIG1vc3Qgc2FtZS1zaXRlIGNvb2tpZSB0ZXN0cworICAgICAgICBtYXRjaGluZyB0aGUg
QXBwbGUgcG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOS0xMS0xMiAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBX
S1dlYlZpZXcgZG9lcyBub3QgcmVzcGVjdCBzeXN0ZW0gc3BlbGxjaGVja2luZyBwcmVmZXJlbmNl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQ4ZGRkNzMy
ZTYyZjNhOGZlNmVlMGVmZGEwYTllMzc3NDM2OGUwNWMuLjVjMDg4NWQ3OWY2ZWY4ZjUyMGNiMzAy
OGZmZjU2Y2Y2ZDhjNmZmOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCkBAIC0zODc1LDYgKzM4NzUsOCBAQCB3ZWJraXQub3JnL2IvMjAzNjc3IHN2Zy9XM0Mt
U1ZHLTEuMS9wYWludGluZy1maWxsLTA1LWIuc3ZnIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
OTkwMzYgcG9pbnRlci1sb2NrL2xvY2tlZC1lbGVtZW50LWlmcmFtZS1yZW1vdmVkLWZyb20tZG9t
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85OTAzNiBwb2ludGVyLWxvY2svcG9pbnRl
cmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMuaHRtbCBbIEZhaWx1cmUgXQogCit3
ZWJraXQub3JnL2IvMTk0OTMzIGh0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvdXNlci1sb2Fk
LWNyb3NzLXNpdGUtcmVkaXJlY3QucGhwIFsgRmFpbHVyZSBdCisKICMvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBub24tY3Jhc2hpbmcsIG5vbi1mbGFreSB0ZXN0cyBm
YWlsaW5nCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtNDAyNSw2ICs0MDI3
LDggQEAgd2Via2l0Lm9yZy9iLzIwNDExNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3QKIHdlYmtpdC5vcmcvYi8yMDQxMTUgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF90b3Vj
aC1hY3Rpb24tcGFuLXgtcGFuLXlfdG91Y2guaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIw
NDExNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRl
cmV2ZW50X3BvaW50ZXJvdXRfcGVuLmh0bWwgWyBTa2lwIF0KIAoraHR0cC90ZXN0cy9jb29raWVz
L3NhbWUtc2l0ZSBbIFBhc3MgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog
IyBFbmQgb2YgUEFTU0lORyB0ZXN0cy4gU2VlIHRvcCBvZiBmaWxlIHdoZXJlIHRvIHB1dCBuZXcg
ZXhwZWN0YXRpb25zLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzk5OTUzYmI5Mzc4ZWY4YmM1
NGQzOWE5Zjk0NDc1M2ZiOTU3MDg4Mi4uMGUzN2NhZTAzMjBlYWQyZWJiZjk1ODgyNTNlZDdlYzg2
NjJhZmMxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTc2Nyw2ICs3NjcsOCBAQCB3ZWJraXQub3JnL2IvMjA0MTE1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfdAogd2Via2l0Lm9yZy9iLzIw
NDExNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRl
cmV2ZW50X3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teV90b3VjaC5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvMjA0MTE1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2
ZW50cy9wb2ludGVyZXZlbnRfcG9pbnRlcm91dF9wZW4uaHRtbCBbIFNraXAgXQogCitodHRwL3Rl
c3RzL2Nvb2tpZXMvc2FtZS1zaXRlIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAjIDUuIFRFU1RTIENSQVNISU5HCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwpAQCAtMjAyMSw2ICsyMDIzLDcgQEAgd2Via2l0Lm9yZy9iLzIwMzY3NyBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N2Zy9pbXBvcnQvcGFpbnRpbmctZmlsbC0wNS0KIHdl
YmtpdC5vcmcvYi8yMDM2NzcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvaW1w
b3J0L3BhaW50aW5nLXN0cm9rZS0wOC10LW1hbnVhbC5zdmcgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8yMDM2Nzcgc3ZnL1czQy1TVkctMS4xL3BhaW50aW5nLWZpbGwtMDUtYi5zdmcgWyBGYWls
dXJlIF0KIAord2Via2l0Lm9yZy9iLzE5NDkzMyBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L3VzZXItbG9hZC1jcm9zcy1zaXRlLXJlZGlyZWN0LnBocCBbIEZhaWx1cmUgXQogCiAjLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyAgPj4gTk9USUNFIDw8Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389653</attachid>
            <date>2020-02-04 05:38:32 -0800</date>
            <delta_ts>2020-02-04 05:55:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204137-20200204053831.patch</filename>
            <type>text/plain</type>
            <size>21633</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEwZTE0MGI5NDhhYWQz
YTZhMjU1MWVhNzI1ZjIwZDZhZTExMWUyMy4uN2M5NjcxODQxMWQ4ZjgyZTc3NjAzMDNiNmE4YTQ4
NDExNTkzMWYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAyLTA0ICBQYXRy
aWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
QWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQg
aW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU2FtZVNp
dGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omh0dHBNZXRob2RJc1NhZmUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2FtZVNpdGVJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvU2FtZVNpdGVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpTYW1lU2l0ZUluZm86OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTYW1lU2l0ZUluZm86OmRlY29kZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29yZVNhbWVTaXRlUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OnNvdXBTYW1l
U2l0ZVBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWU6OkNvb2tpZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb29raWU6OnRvU291cENvb2tpZSBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0
U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBN
ZXNzYWdlTWVtYmVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6
OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6CisKIDIwMjAtMDItMDQgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhRGV2aWNlcyBzaG91bGQgaGFuZGxlIGNo
YW5nZXMgb2YgaWZyYW1lIGFsbG93IGF0dHJpYnV0ZSB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5MWI5ZTNl
ZjgzNjVlYWJiODMyNWUyNGZlNjVkYjhhMWUwOTAwNWZhLi5lYzFjMWE4YzkwNTRiMjU3MDljOWVl
ZDJiMDMwY2MxZDNjODYwMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAyLTA0
ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtd
W1dQRV0gQWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1
cHBvcnQgaW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRh
VGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0aW9uKToKKwogMjAyMC0wMi0wNCAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luXVtDbGFu
Z10gV2ViUHJvY2Vzc01haW4uaCgyOCwxNCk6IGVycm9yOiB0b2tlbiBpcyBub3QgYSB2YWxpZCBi
aW5hcnkgb3BlcmF0b3IgaW4gYSBwcmVwcm9jZXNzb3Igc3ViZXhwcmVzc2lvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uY3BwCmluZGV4IDllZGI1
NmFiZDE5NjMzNTBjNWU4YWUyY2Y2ZTU5YWJmNjg3YjQ4OWMuLmExNzY4NDAzZDlhMWM2NzcwNWIx
NDFjNDY3MDA5Y2U5ZjQyZTAxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU2FtZVNpdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1NhbWVTaXRlSW5mby5jcHAKQEAgLTMwLDkgKzMwLDE0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorc3RhdGljIGJvb2wgaHR0cE1ldGhvZElzU2FmZShjb25zdCBTdHJpbmcmIG1l
dGhvZCkKK3sKKyAgICByZXR1cm4gbWV0aG9kID09ICJHRVQiIHx8IG1ldGhvZCA9PSAiSEVBRCIg
fHwgbWV0aG9kID09ICJPUFRJT05TIiB8fCBtZXRob2QgPT0gIlRSQUNFIjsKK30KKwogU2FtZVNp
dGVJbmZvIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKIHsKLSAgICByZXR1cm4geyByZXF1ZXN0LmlzU2FtZVNpdGUoKSwgcmVxdWVzdC5pc1RvcFNp
dGUoKSB9OworICAgIHJldHVybiB7IHJlcXVlc3QuaXNTYW1lU2l0ZSgpLCByZXF1ZXN0LmlzVG9w
U2l0ZSgpLCBodHRwTWV0aG9kSXNTYWZlKHJlcXVlc3QuaHR0cE1ldGhvZCgpKSB9OwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uaAppbmRleCBmZWE3NTljN2I1ODNlNDFjNGU5MTY0NDRmYjU1ZjBjZWM5
YTNkOGY4Li5kOGExOTdhY2FkYzA0ODI2Nzg0ODZiZTc2ZTVjZDFiNTFhOTYxZDJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU2FtZVNpdGVJbmZvLmgKQEAgLTM0LDYg
KzM0LDcgQEAgc3RydWN0IFNhbWVTaXRlSW5mbyB7CiAKICAgICBib29sIGlzU2FtZVNpdGUgeyBm
YWxzZSB9OwogICAgIGJvb2wgaXNUb3BTaXRlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzU2FmZUhU
VFBNZXRob2QgeyBmYWxzZSB9OwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTYW1lU2l0ZUluZm8mKTsKQEAgLTQ0LDYgKzQ1LDcg
QEAgdm9pZCBTYW1lU2l0ZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGVuY29kZXIgPDwgaXNTYW1lU2l0ZTsKICAgICBlbmNvZGVyIDw8IGlzVG9wU2l0ZTsKKyAg
ICBlbmNvZGVyIDw8IGlzU2FmZUhUVFBNZXRob2Q7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBEZWNv
ZGVyPgpAQCAtNTMsNiArNTUsOCBAQCBib29sIFNhbWVTaXRlSW5mbzo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFNhbWVTaXRlSW5mbyYgaW5mbykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1RvcFNpdGUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzU2FmZUhUVFBNZXRob2QpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcAppbmRleCBlNDRj
NGFlNjcwNjU0MmQzMGM0ZTczZTIyNTY0MDY3NzMxNTliYWE1Li4xOTViNWY2ODMzZWNhZjViZjRi
MDEzZDMxOTlmOGZjYTc0OWQ3OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZVNvdXAuY3BwCkBAIC0zMiw2ICszMiwzOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQorc3Rh
dGljIENvb2tpZTo6U2FtZVNpdGVQb2xpY3kgY29yZVNhbWVTaXRlUG9saWN5KFNvdXBTYW1lU2l0
ZVBvbGljeSBwb2xpY3kpCit7CisgICAgc3dpdGNoIChwb2xpY3kpIHsKKyAgICBjYXNlIFNPVVBf
U0FNRV9TSVRFX1BPTElDWV9OT05FOgorICAgICAgICByZXR1cm4gQ29va2llOjpTYW1lU2l0ZVBv
bGljeTo6Tm9uZTsKKyAgICBjYXNlIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9MQVg6CisgICAgICAg
IHJldHVybiBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpMYXg7CisgICAgY2FzZSBTT1VQX1NBTUVf
U0lURV9QT0xJQ1lfU1RSSUNUOgorICAgICAgICByZXR1cm4gQ29va2llOjpTYW1lU2l0ZVBvbGlj
eTo6U3RyaWN0OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpOb25lOworfQorCitzdGF0aWMgU291cFNhbWVTaXRl
UG9saWN5IHNvdXBTYW1lU2l0ZVBvbGljeShDb29raWU6OlNhbWVTaXRlUG9saWN5IHBvbGljeSkK
K3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgQ29va2llOjpTYW1lU2l0ZVBvbGlj
eTo6Tm9uZToKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9OT05FOworICAg
IGNhc2UgQ29va2llOjpTYW1lU2l0ZVBvbGljeTo6TGF4OgorICAgICAgICByZXR1cm4gU09VUF9T
QU1FX1NJVEVfUE9MSUNZX0xBWDsKKyAgICBjYXNlIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6OlN0
cmljdDoKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9TVFJJQ1Q7CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRF
X1BPTElDWV9OT05FOworfQorI2VuZGlmCisKIENvb2tpZTo6Q29va2llKFNvdXBDb29raWUqIGNv
b2tpZSkKICAgICA6IG5hbWUoU3RyaW5nOjpmcm9tVVRGOChjb29raWUtPm5hbWUpKQogICAgICwg
dmFsdWUoU3RyaW5nOjpmcm9tVVRGOChjb29raWUtPnZhbHVlKSkKQEAgLTQzLDYgKzc1LDkgQEAg
Q29va2llOjpDb29raWUoU291cENvb2tpZSogY29va2llKQogICAgICwgc2Vzc2lvbighY29va2ll
LT5leHBpcmVzKQogCiB7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBz
YW1lU2l0ZSA9IGNvcmVTYW1lU2l0ZVBvbGljeShzb3VwX2Nvb2tpZV9nZXRfc2FtZV9zaXRlX3Bv
bGljeShjb29raWUpKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgU291cERhdGUqIG1zVG9Tb3VwRGF0
ZShkb3VibGUgbXMpCkBAIC02Niw2ICsxMDEsOSBAQCBTb3VwQ29va2llKiBDb29raWU6OnRvU291
cENvb2tpZSgpIGNvbnN0CiAKICAgICBzb3VwX2Nvb2tpZV9zZXRfaHR0cF9vbmx5KHNvdXBDb29r
aWUsIGh0dHBPbmx5KTsKICAgICBzb3VwX2Nvb2tpZV9zZXRfc2VjdXJlKHNvdXBDb29raWUsIHNl
Y3VyZSk7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBzb3VwX2Nvb2tp
ZV9zZXRfc2FtZV9zaXRlX3BvbGljeShzb3VwQ29va2llLCBzb3VwU2FtZVNpdGVQb2xpY3koc2Ft
ZVNpdGUpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFzZXNzaW9uKSB7CiAgICAgICAgIFNvdXBEYXRl
KiBkYXRlID0gbXNUb1NvdXBEYXRlKGV4cGlyZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCmluZGV4IDk0N2UyM2U1YTIyMTYyZTcxNmI1YTMyMDNmNGJiMjk1NmQ5Nzc0YzAu
LjU4N2Y4NTNmMmNmMjI2MmZiNTIxMmQwNzAzNzRhZWU2NmRjNGY4MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQzOSw0NiArNDM5LDcyIEBAIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29t
cGxldGlvbkhhbmRsCiAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi1ib29sIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFz
a0lUUCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91
bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewotICAgIFVOVVNF
RF9QQVJBTShmaXJzdFBhcnR5KTsKKyAgICByYXdDb29raWVzLmNsZWFyKCk7CisKKyNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMo
Zmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdl
SUQpOwotICAgIHJhd0Nvb2tpZXMuY2xlYXIoKTsKKyNlbmRpZgorCiAgICAgR1VuaXF1ZVB0cjxT
b3VwVVJJPiB1cmkgPSB1cmxUb1NvdXBVUkkodXJsKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBH
VW5pcXVlUHRyPFNvdXBVUkk+IGNvb2tpZVVSSSA9IHNhbWVTaXRlSW5mby5pc1NhbWVTaXRlID8g
dXJsVG9Tb3VwVVJJKHVybCkgOiBudWxscHRyOworCisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBm
aXJzdFBhcnR5VVJJID0gdXJsVG9Tb3VwVVJJKHNhbWVTaXRlSW5mby5pc1NhbWVTaXRlID8gdXJs
IDogZmlyc3RQYXJ0eSk7CisgICAgaWYgKCFmaXJzdFBhcnR5VVJJKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
Z2V0X2Nvb2tpZV9saXN0X3dpdGhfc2FtZV9zaXRlX2luZm8oY29va2llU3RvcmFnZSgpLCB1cmku
Z2V0KCksIGZpcnN0UGFydHlVUkkuZ2V0KCksIGNvb2tpZVVSSS5nZXQoKSwgVFJVRSwgc2FtZVNp
dGVJbmZvLmlzU2FmZUhUVFBNZXRob2QsIHNhbWVTaXRlSW5mby5pc1RvcFNpdGUpKTsKKyNlbHNl
CiAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29r
aWVfbGlzdChjb29raWVTdG9yYWdlKCksIHVyaS5nZXQoKSwgVFJVRSkpOworICAgIFVOVVNFRF9Q
QVJBTShzYW1lU2l0ZUluZm8pOworI2VuZGlmCiAgICAgaWYgKCFjb29raWVzKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKEdTTGlzdCogaXRlciA9IGNvb2tpZXMuZ2V0KCk7IGl0
ZXI7IGl0ZXIgPSBnX3NsaXN0X25leHQoaXRlcikpIHsKICAgICAgICAgU291cENvb2tpZSogc291
cENvb2tpZSA9IHN0YXRpY19jYXN0PFNvdXBDb29raWUqPihpdGVyLT5kYXRhKTsKLSAgICAgICAg
Q29va2llIGNvb2tpZTsKLSAgICAgICAgY29va2llLm5hbWUgPSBTdHJpbmc6OmZyb21VVEY4KHNv
dXBDb29raWUtPm5hbWUpOwotICAgICAgICBjb29raWUudmFsdWUgPSBTdHJpbmc6OmZyb21VVEY4
KHNvdXBDb29raWUtPnZhbHVlKTsKLSAgICAgICAgY29va2llLmRvbWFpbiA9IFN0cmluZzo6ZnJv
bVVURjgoc291cENvb2tpZS0+ZG9tYWluKTsKLSAgICAgICAgY29va2llLnBhdGggPSBTdHJpbmc6
OmZyb21VVEY4KHNvdXBDb29raWUtPnBhdGgpOwotICAgICAgICBjb29raWUuY3JlYXRlZCA9IDA7
Ci0gICAgICAgIGNvb2tpZS5leHBpcmVzID0gc291cENvb2tpZS0+ZXhwaXJlcyA/IHN0YXRpY19j
YXN0PGRvdWJsZT4oc291cF9kYXRlX3RvX3RpbWVfdChzb3VwQ29va2llLT5leHBpcmVzKSkgKiAx
MDAwIDogMDsKLSAgICAgICAgY29va2llLmh0dHBPbmx5ID0gc291cENvb2tpZS0+aHR0cF9vbmx5
OwotICAgICAgICBjb29raWUuc2VjdXJlID0gc291cENvb2tpZS0+c2VjdXJlOwotICAgICAgICBj
b29raWUuc2Vzc2lvbiA9ICFzb3VwQ29va2llLT5leHBpcmVzOwotICAgICAgICByYXdDb29raWVz
LmFwcGVuZChXVEZNb3ZlKGNvb2tpZSkpOworICAgICAgICByYXdDb29raWVzLmFwcGVuZChDb29r
aWUoc291cENvb2tpZSkpOwogICAgICAgICBzb3VwX2Nvb2tpZV9mcmVlKHNvdXBDb29raWUpOwog
ICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIHVybCwgYm9vbCBmb3JIVFRQSGVhZGVyLCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CisjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nvb2tpZXMoZmly
c3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQorICAgICAgICByZXR1cm4geyB7IH0sIGZh
bHNlIH07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKKyAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKKyNlbmRpZgorCiAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkgPSB1cmxU
b1NvdXBVUkkodXJsKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAgcmV0dXJuIHsgeyB9LCBmYWxz
ZSB9OwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBHVW5pcXVlUHRy
PFNvdXBVUkk+IGZpcnN0UGFydHlVUkkgPSB1cmxUb1NvdXBVUkkoZmlyc3RQYXJ0eSk7CisgICAg
aWYgKCFmaXJzdFBhcnR5VVJJKQorICAgICAgICByZXR1cm4geyB7IH0sIGZhbHNlIH07CisKKyAg
ICBHVW5pcXVlUHRyPFNvdXBVUkk+IGNvb2tpZVVSSSA9IHNhbWVTaXRlSW5mby5pc1NhbWVTaXRl
ID8gdXJsVG9Tb3VwVVJJKHVybCkgOiBudWxscHRyOworICAgIEdTTGlzdCogY29va2llcyA9IHNv
dXBfY29va2llX2phcl9nZXRfY29va2llX2xpc3Rfd2l0aF9zYW1lX3NpdGVfaW5mbyhzZXNzaW9u
LmNvb2tpZVN0b3JhZ2UoKSwgdXJpLmdldCgpLCBmaXJzdFBhcnR5VVJJLmdldCgpLCBjb29raWVV
UkkuZ2V0KCksIGZvckhUVFBIZWFkZXIsIHNhbWVTaXRlSW5mby5pc1NhZmVIVFRQTWV0aG9kLCBz
YW1lU2l0ZUluZm8uaXNUb3BTaXRlKTsKKyNlbHNlCiAgICAgR1NMaXN0KiBjb29raWVzID0gc291
cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdChzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKSwgdXJp
LmdldCgpLCBmb3JIVFRQSGVhZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7Cisg
ICAgVU5VU0VEX1BBUkFNKHNhbWVTaXRlSW5mbyk7CisjZW5kaWYKICAgICBib29sIGRpZEFjY2Vz
c1NlY3VyZUNvb2tpZXMgPSBmYWxzZTsKIAogICAgIC8vIGxpYnNvdXAgc2hvdWxkIG9taXQgc2Vj
dXJlIGNvb2tpZXMgaXRzZWxmIGlmIHRoZSBwcm90b2NvbCBpcyBub3QgaHR0cHMuCkBAIC01MDks
MjEgKzUzNSwxNSBAQCBzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNl
c3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZQogICAgIHJldHVybiB7IFN0cmlu
Zzo6ZnJvbVVURjgoY29va2llSGVhZGVyLmdldCgpKSwgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9
OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBTaG91bGRB
c2tJVFApIGNvbnN0CiB7Ci0gICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwotICAgIFVOVVNF
RF9QQVJBTShmcmFtZUlEKTsKLSAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKLSAgICByZXR1cm4g
Y29va2llc0ZvclNlc3Npb24oKnRoaXMsIHVybCwgZmFsc2UsIGluY2x1ZGVTZWN1cmVDb29raWVz
KTsKKyAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHksIHVybCwg
c2FtZVNpdGVJbmZvLCBmcmFtZUlELCBwYWdlSUQsIGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2ll
cyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdAorc3RkOjpw
YWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYg
c2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdAogewotICAgIFVO
VVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7Ci0gICAg
VU5VU0VEX1BBUkFNKHBhZ2VJRCk7CiAgICAgLy8gU2VjdXJlIGNvb2tpZXMgd2lsbCBzdGlsbCBv
bmx5IGJlIGluY2x1ZGVkIGlmIHVybCdzIHByb3RvY29sIGlzIGh0dHBzLgotICAgIHJldHVybiBj
b29raWVzRm9yU2Vzc2lvbigqdGhpcywgdXJsLCB0cnVlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CisgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCB1cmwsIHNh
bWVTaXRlSW5mbywgZnJhbWVJRCwgcGFnZUlELCB0cnVlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CiB9CiAKIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxk
UHJveHkmIGhlYWRlckZpZWxkUHJveHkpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5k
ZXggOWNjZmIyZDZmYmNmMDNjMzk2NzMzZGFiZWVjZTU5MGQyYzM5ZDUxZi4uYjAxNDE4N2QxODYz
YTlhYzI2ZWYwZGRlZjg1MjhkYTE0MTRmYWIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApA
QCAtMTEwLDYgKzExMCwxNSBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3Nh
Z2VNZW1iZXJzKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKICAgICBpZiAoZmlyc3RQ
YXJ0eSkKICAgICAgICAgc291cF9tZXNzYWdlX3NldF9maXJzdF9wYXJ0eShzb3VwTWVzc2FnZSwg
Zmlyc3RQYXJ0eS5nZXQoKSk7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQor
ICAgIGlmIChtX3NhbWVTaXRlRGlzcG9zaXRpb24gPT0gUmVzb3VyY2VSZXF1ZXN0OjpTYW1lU2l0
ZURpc3Bvc2l0aW9uOjpTYW1lU2l0ZSkgeworICAgICAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNp
dGVGb3JDb29raWVzID0gdXJsVG9Tb3VwVVJJKG1fdXJsKTsKKyAgICAgICAgc291cF9tZXNzYWdl
X3NldF9zaXRlX2Zvcl9jb29raWVzKHNvdXBNZXNzYWdlLCBzaXRlRm9yQ29va2llcy5nZXQoKSk7
CisgICAgfQorCisgICAgc291cF9tZXNzYWdlX3NldF9pc190b3BfbGV2ZWxfbmF2aWdhdGlvbihz
b3VwTWVzc2FnZSwgaXNUb3BTaXRlKCkpOworI2VuZGlmCisKICAgICBzb3VwX21lc3NhZ2Vfc2V0
X2ZsYWdzKHNvdXBNZXNzYWdlLCBtX3NvdXBGbGFncyk7CiAKICAgICBpZiAoIWFjY2VwdEVuY29k
aW5nKCkpCkBAIC0xNzAsNiArMTc5LDE1IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVG
cm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKQogICAgIGlmIChTb3VwVVJJ
KiBmaXJzdFBhcnR5ID0gc291cF9tZXNzYWdlX2dldF9maXJzdF9wYXJ0eShzb3VwTWVzc2FnZSkp
CiAgICAgICAgIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXMgPSBzb3VwVVJJVG9VUkwoZmlyc3RQYXJ0
eSk7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQorICAgIHNldElzVG9wU2l0
ZShzb3VwX21lc3NhZ2VfZ2V0X2lzX3RvcF9sZXZlbF9uYXZpZ2F0aW9uKHNvdXBNZXNzYWdlKSk7
CisKKyAgICBpZiAoU291cFVSSSogc2l0ZUZvckNvb2tpZXMgPSBzb3VwX21lc3NhZ2VfZ2V0X3Np
dGVfZm9yX2Nvb2tpZXMoc291cE1lc3NhZ2UpKQorICAgICAgICBzZXRJc1NhbWVTaXRlKGFyZVJl
Z2lzdHJhYmxlRG9tYWluc0VxdWFsKHNvdXBVUklUb1VSTChzaXRlRm9yQ29va2llcyksIG1fdXJs
KSk7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlvbiA9IFNh
bWVTaXRlRGlzcG9zaXRpb246OlVuc3BlY2lmaWVkOworCiAgICAgbV9zb3VwRmxhZ3MgPSBzb3Vw
X21lc3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlKTsKIAogICAgIC8vIEZJWE1FOiBtX2FsbG93
Q29va2llcyBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBoZXJlIGFuZCBvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwCmluZGV4IDY4MTdmMGRjYzk5ZjdiNzlhMjliODJkYzM2YzdlNTBlOGM1MWQ3YmUuLjE0
ZjczYmY5MGRmMzU0NzBhN2UzYjE1ZjhiZWI3Nzg3MjkyNjk5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5j
cHAKQEAgLTY3NSw2ICs2NzUsMTggQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51
ZUhUVFBSZWRpcmVjdGlvbigpCiAgICAgbV9sYXN0SFRUUE1ldGhvZCA9IHJlcXVlc3QuaHR0cE1l
dGhvZCgpOwogICAgIHJlcXVlc3QucmVtb3ZlQ3JlZGVudGlhbHMoKTsKIAorICAgIGlmIChpc1Rv
cExldmVsTmF2aWdhdGlvbigpKSB7CisgICAgICAgIHJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNv
b2tpZXMocmVxdWVzdC51cmwoKSk7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkK
KyAgICAgICAgc291cF9tZXNzYWdlX3NldF9pc190b3BfbGV2ZWxfbmF2aWdhdGlvbihtX3NvdXBN
ZXNzYWdlLmdldCgpLCB0cnVlKTsKKyAgICB9CisKKyAgICBpZiAocmVxdWVzdC5pc1NhbWVTaXRl
KCkpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiByZXF1ZXN0VVJJID0gdXJsVG9Tb3Vw
VVJJKHJlcXVlc3QudXJsKCkpOworICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3NpdGVfZm9yX2Nv
b2tpZXMobV9zb3VwTWVzc2FnZS5nZXQoKSwgcmVxdWVzdFVSSS5nZXQoKSk7CisjZW5kaWYKKyAg
ICB9CisKICAgICBpZiAoaXNDcm9zc09yaWdpbikgewogICAgICAgICAvLyBUaGUgbmV0d29yayBs
YXllciBtaWdodCBjYXJyeSBvdmVyIHNvbWUgaGVhZGVycyBmcm9tIHRoZSBvcmlnaW5hbCByZXF1
ZXN0IHRoYXQKICAgICAgICAgLy8gd2Ugd2FudCB0byBzdHJpcCBoZXJlIGJlY2F1c2UgdGhlIHJl
ZGlyZWN0IGlzIGNyb3NzLW9yaWdpbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA0MzUzN2MyYTIzNTc3Yjc2Mzc0ODVmYzg1OWYzOTI1N2JkODBl
ZDU2Li40OWM1YWUyY2E0NTQ0YjYzYmI0ZjkzM2MyYTQ3YjlmMjlhMDg5MzllIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMjAtMDItMDQgIFBhdHJpY2sgR3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dUS11bV1BFXSBBZGQgc2FtZS1zaXRlIGNvb2tpZSBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxMzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgbGlic291cCB0byAy
LjY5LjkwIGluIEpIQnVpbGQuCisKKyAgICAgICAgKiBndGsvamhidWlsZC5tb2R1bGVzOgorICAg
ICAgICAqIHdwZS9qaGJ1aWxkLm1vZHVsZXM6CisKIDIwMjAtMDItMDMgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXNzIGEgaGludCBmcm9tIHRoZSBleHRl
bnNpb24gdG8gZGVjaWRlUG9saWN5Rm9yU09BdXRob3JpemF0aW9uTG9hZFdpdGhDdXJyZW50UG9s
aWN5CmRpZmYgLS1naXQgYS9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvZ3RrL2po
YnVpbGQubW9kdWxlcwppbmRleCA4ZjUwNzZjNWExOGRhNWM1OGRjNmUxMWI5YWY1N2ViYTQ1MmUx
NGE3Li4xZTFkMjRjNDhkZDJlOGViNGJmN2VkYzc3MTk3ZjBiMDM5OWJmODYyIDEwMDY0NAotLS0g
YS9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVs
ZXMKQEAgLTIzOCw5ICsyMzgsOSBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJnbGliLW5ldHdvcmtp
bmciLz4KICAgICAgIDxkZXAgcGFja2FnZT0ibGlicHNsIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+
Ci0gICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNjgvbGli
c291cC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMi42OC4zIgorICAgIDxicmFuY2ggbW9k
dWxlPSIvcHViL0dOT01FL3NvdXJjZXMvbGlic291cC8yLjY5L2xpYnNvdXAtJHt2ZXJzaW9ufS50
YXIueHoiIHZlcnNpb249IjIuNjkuOTAiCiAgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3Jn
IgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjUzNGJiMDhlMzViMGZmMzcwMmYzYWRmZGU4N2Qz
NDQxZTI3YzEyZjlmNWVjMzUxZjA1NmZlMDRjYmEwMmJhZmIiPgorICAgICAgICAgICAgaGFzaD0i
c2hhMjU2OjhlZDE4MDkyY2ZiMjdkODcwYTdjN2M0NTk5MmYzYTIxNmJkMjJkZDZmZDZkMmM5ZmJm
MWFkYzJkNjk1N2NhYjgiPgogICAgIDwvYnJhbmNoPgogICA8L21lc29uPgogCmRpZmYgLS1naXQg
YS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwpp
bmRleCAwY2RlNGI3NTJhMzZmYmM0MWVmYjA1Njc5YjdhYjYyYjg0Y2M4YjIxLi43YWU4Y2E3NTcy
ZjM4M2EwYzY2NjZhOTlmMzcyOWY2ZGZmMTdjNzhkIDEwMDY0NAotLS0gYS9Ub29scy93cGUvamhi
dWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTEwMCw5ICsx
MDAsOSBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJnbGliLW5ldHdvcmtpbmciLz4KICAgICAgIDxk
ZXAgcGFja2FnZT0ibGlicHNsIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBt
b2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNjgvbGlic291cC0ke3ZlcnNpb259
LnRhci54eiIgdmVyc2lvbj0iMi42OC4zIgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01F
L3NvdXJjZXMvbGlic291cC8yLjY5L2xpYnNvdXAtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249
IjIuNjkuOTAiCiAgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgotICAgICAgICAgICAg
aGFzaD0ic2hhMjU2OjUzNGJiMDhlMzViMGZmMzcwMmYzYWRmZGU4N2QzNDQxZTI3YzEyZjlmNWVj
MzUxZjA1NmZlMDRjYmEwMmJhZmIiPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjhlZDE4MDky
Y2ZiMjdkODcwYTdjN2M0NTk5MmYzYTIxNmJkMjJkZDZmZDZkMmM5ZmJmMWFkYzJkNjk1N2NhYjgi
PgogICAgIDwvYnJhbmNoPgogICA8L21lc29uPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2JlYzI4NTQ5ZjUzNTA1YzQ1
OWM0NWFiYjRlODRiY2EwNDI2YWQ4Yi4uZTRhNGU3YzRhNzVmOGM5ZmZkMTE2MzEzYjBjOTI1NDhh
MjQ5ZmU5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAyLTA0ICBQYXRyaWNrIEdyaWZm
aXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIHNhbWUt
c2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRlZCBHVEsvV1BFIHRlc3QgZXhwZWN0YXRpb25zIHRvIHBhc3MgbW9z
dCBzYW1lLXNpdGUgY29va2llIHRlc3RzCisgICAgICAgIG1hdGNoaW5nIHRoZSBBcHBsZSBwb3J0
cy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAyLTA0ICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYURldmljZXMgc2hvdWxkIGhh
bmRsZSBjaGFuZ2VzIG9mIGlmcmFtZSBhbGxvdyBhdHRyaWJ1dGUgdmFsdWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODQ5MDI2NGEyYmI5ZWI3MGY3MDhh
MTQ5MTc5MDIwNDMzMjA2M2JiMS4uZjU2OWNhMDE0NjUxMmE2ODI1YTNkYTBhMTYyNGZhZjQyNWM2
MjNkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQx
MzQsNiArNDEzNCw4IEBAIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1uCiB3ZWJraXQub3JnL2IvMjA2
ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9mb250LXZh
cmlhbnQtcG9zaXRpb24uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIw
Njg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvcXVvdGVk
LWdlbmVyaWMtaWdub3JlZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKK3dlYmtpdC5vcmcv
Yi8xOTQ5MzMgaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS91c2VyLWxvYWQtY3Jvc3Mtc2l0
ZS1yZWRpcmVjdC5waHAgWyBGYWlsdXJlIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KICMgRW5kIG9mIG5vbi1jcmFzaGluZywgbm9uLWZsYWt5IHRlc3RzIGZhaWxpbmcKICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBAIC00MzE1LDYgKzQzMTcsOCBAQCB3ZWJr
aXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1m
b250cy9zdGFuZGFyZC1mb250LQogd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvc3RhbmRhcmQtZm9udC1mYW1pbHktNy5odG1s
IFsgUGFzcyBdCiB3ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1mb250cy9zdGFuZGFyZC1mb250LWZhbWlseS5odG1sIFsgUGFzcyBdCiAK
K2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUgWyBQYXNzIF0KKwogIy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFBBU1NJTkcgdGVzdHMuIFNlZSB0b3Agb2YgZmls
ZSB3aGVyZSB0byBwdXQgbmV3IGV4cGVjdGF0aW9ucy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDVjZTM4NTI3ZTZhMWQzZDM5NTA4NWZmNmU5YzliNGY2MjcwNTBkMzEuLjJiNThhNjVkYzNkOGNk
Y2Y2NjYwMTJlMTMwOWU4ZGNjNTk3OTdlZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC05NDksNiArOTQ5LDggQEAgd2Via2l0Lm9yZy9iLzIwNDExNSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50
X3AKIGZhc3QvZ3JhZGllbnRzL2NvbmljLWdyYWRpZW50LWFscGhhLmh0bWwgWyBQYXNzIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1pbWFnZXMvbXVsdGlwbGUtcG9z
aXRpb24tY29sb3Itc3RvcC1jb25pYy5odG1sIFsgUGFzcyBdCiAKK2h0dHAvdGVzdHMvY29va2ll
cy9zYW1lLXNpdGUgWyBQYXNzIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
ICMgNS4gVEVTVFMgQ1JBU0hJTkcKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBA
IC0yMjAzLDYgKzIyMDUsOCBAQCB3ZWJraXQub3JnL2IvMjA0Njc1IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy9pbWFnZS1zbW9vdAogd2Via2l0Lm9yZy9i
LzIwNDY3NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMv
dGhlLW9mZnNjcmVlbi1jYW52YXMvaW5pdGlhbC5yZXNldC5wYXR0ZXJuLmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8yMDQ2NzUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9v
ZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL2luaXRpYWwucmVzZXQucGF0dGVy
bi53b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMTk0OTMzIGh0dHAvdGVz
dHMvY29va2llcy9zYW1lLXNpdGUvdXNlci1sb2FkLWNyb3NzLXNpdGUtcmVkaXJlY3QucGhwIFsg
RmFpbHVyZSBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjICA+PiBOT1RJ
Q0UgPDwKICMgUGxlYXNlIHNlZSBndWlkZWxpbmVzIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlIGFu
ZCBwbGFjZSBuZXcgdGVzdCBleHBlY3RhdGlvbnMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389654</attachid>
            <date>2020-02-04 05:55:03 -0800</date>
            <delta_ts>2020-02-04 08:54:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204137-20200204055503.patch</filename>
            <type>text/plain</type>
            <size>22522</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEwZTE0MGI5NDhhYWQz
YTZhMjU1MWVhNzI1ZjIwZDZhZTExMWUyMy4uN2M5NjcxODQxMWQ4ZjgyZTc3NjAzMDNiNmE4YTQ4
NDExNTkzMWYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAyLTA0ICBQYXRy
aWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
QWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQg
aW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU2FtZVNp
dGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omh0dHBNZXRob2RJc1NhZmUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2FtZVNpdGVJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvU2FtZVNpdGVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpTYW1lU2l0ZUluZm86OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTYW1lU2l0ZUluZm86OmRlY29kZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29yZVNhbWVTaXRlUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OnNvdXBTYW1l
U2l0ZVBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWU6OkNvb2tpZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb29raWU6OnRvU291cENvb2tpZSBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0
U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBN
ZXNzYWdlTWVtYmVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6
OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6CisKIDIwMjAtMDItMDQgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhRGV2aWNlcyBzaG91bGQgaGFuZGxlIGNo
YW5nZXMgb2YgaWZyYW1lIGFsbG93IGF0dHJpYnV0ZSB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5MWI5ZTNl
ZjgzNjVlYWJiODMyNWUyNGZlNjVkYjhhMWUwOTAwNWZhLi5lYzFjMWE4YzkwNTRiMjU3MDljOWVl
ZDJiMDMwY2MxZDNjODYwMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAyLTA0
ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtd
W1dQRV0gQWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1
cHBvcnQgaW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRh
VGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0aW9uKToKKwogMjAyMC0wMi0wNCAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luXVtDbGFu
Z10gV2ViUHJvY2Vzc01haW4uaCgyOCwxNCk6IGVycm9yOiB0b2tlbiBpcyBub3QgYSB2YWxpZCBi
aW5hcnkgb3BlcmF0b3IgaW4gYSBwcmVwcm9jZXNzb3Igc3ViZXhwcmVzc2lvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uY3BwCmluZGV4IDllZGI1
NmFiZDE5NjMzNTBjNWU4YWUyY2Y2ZTU5YWJmNjg3YjQ4OWMuLmExNzY4NDAzZDlhMWM2NzcwNWIx
NDFjNDY3MDA5Y2U5ZjQyZTAxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU2FtZVNpdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1NhbWVTaXRlSW5mby5jcHAKQEAgLTMwLDkgKzMwLDE0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorc3RhdGljIGJvb2wgaHR0cE1ldGhvZElzU2FmZShjb25zdCBTdHJpbmcmIG1l
dGhvZCkKK3sKKyAgICByZXR1cm4gbWV0aG9kID09ICJHRVQiIHx8IG1ldGhvZCA9PSAiSEVBRCIg
fHwgbWV0aG9kID09ICJPUFRJT05TIiB8fCBtZXRob2QgPT0gIlRSQUNFIjsKK30KKwogU2FtZVNp
dGVJbmZvIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKIHsKLSAgICByZXR1cm4geyByZXF1ZXN0LmlzU2FtZVNpdGUoKSwgcmVxdWVzdC5pc1RvcFNp
dGUoKSB9OworICAgIHJldHVybiB7IHJlcXVlc3QuaXNTYW1lU2l0ZSgpLCByZXF1ZXN0LmlzVG9w
U2l0ZSgpLCBodHRwTWV0aG9kSXNTYWZlKHJlcXVlc3QuaHR0cE1ldGhvZCgpKSB9OwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uaAppbmRleCBmZWE3NTljN2I1ODNlNDFjNGU5MTY0NDRmYjU1ZjBjZWM5
YTNkOGY4Li5kOGExOTdhY2FkYzA0ODI2Nzg0ODZiZTc2ZTVjZDFiNTFhOTYxZDJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU2FtZVNpdGVJbmZvLmgKQEAgLTM0LDYg
KzM0LDcgQEAgc3RydWN0IFNhbWVTaXRlSW5mbyB7CiAKICAgICBib29sIGlzU2FtZVNpdGUgeyBm
YWxzZSB9OwogICAgIGJvb2wgaXNUb3BTaXRlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzU2FmZUhU
VFBNZXRob2QgeyBmYWxzZSB9OwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTYW1lU2l0ZUluZm8mKTsKQEAgLTQ0LDYgKzQ1LDcg
QEAgdm9pZCBTYW1lU2l0ZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGVuY29kZXIgPDwgaXNTYW1lU2l0ZTsKICAgICBlbmNvZGVyIDw8IGlzVG9wU2l0ZTsKKyAg
ICBlbmNvZGVyIDw8IGlzU2FmZUhUVFBNZXRob2Q7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBEZWNv
ZGVyPgpAQCAtNTMsNiArNTUsOCBAQCBib29sIFNhbWVTaXRlSW5mbzo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFNhbWVTaXRlSW5mbyYgaW5mbykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1RvcFNpdGUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzU2FmZUhUVFBNZXRob2QpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcAppbmRleCBlNDRj
NGFlNjcwNjU0MmQzMGM0ZTczZTIyNTY0MDY3NzMxNTliYWE1Li4xOTViNWY2ODMzZWNhZjViZjRi
MDEzZDMxOTlmOGZjYTc0OWQ3OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZVNvdXAuY3BwCkBAIC0zMiw2ICszMiwzOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQorc3Rh
dGljIENvb2tpZTo6U2FtZVNpdGVQb2xpY3kgY29yZVNhbWVTaXRlUG9saWN5KFNvdXBTYW1lU2l0
ZVBvbGljeSBwb2xpY3kpCit7CisgICAgc3dpdGNoIChwb2xpY3kpIHsKKyAgICBjYXNlIFNPVVBf
U0FNRV9TSVRFX1BPTElDWV9OT05FOgorICAgICAgICByZXR1cm4gQ29va2llOjpTYW1lU2l0ZVBv
bGljeTo6Tm9uZTsKKyAgICBjYXNlIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9MQVg6CisgICAgICAg
IHJldHVybiBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpMYXg7CisgICAgY2FzZSBTT1VQX1NBTUVf
U0lURV9QT0xJQ1lfU1RSSUNUOgorICAgICAgICByZXR1cm4gQ29va2llOjpTYW1lU2l0ZVBvbGlj
eTo6U3RyaWN0OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpOb25lOworfQorCitzdGF0aWMgU291cFNhbWVTaXRl
UG9saWN5IHNvdXBTYW1lU2l0ZVBvbGljeShDb29raWU6OlNhbWVTaXRlUG9saWN5IHBvbGljeSkK
K3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgQ29va2llOjpTYW1lU2l0ZVBvbGlj
eTo6Tm9uZToKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9OT05FOworICAg
IGNhc2UgQ29va2llOjpTYW1lU2l0ZVBvbGljeTo6TGF4OgorICAgICAgICByZXR1cm4gU09VUF9T
QU1FX1NJVEVfUE9MSUNZX0xBWDsKKyAgICBjYXNlIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6OlN0
cmljdDoKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9TVFJJQ1Q7CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRF
X1BPTElDWV9OT05FOworfQorI2VuZGlmCisKIENvb2tpZTo6Q29va2llKFNvdXBDb29raWUqIGNv
b2tpZSkKICAgICA6IG5hbWUoU3RyaW5nOjpmcm9tVVRGOChjb29raWUtPm5hbWUpKQogICAgICwg
dmFsdWUoU3RyaW5nOjpmcm9tVVRGOChjb29raWUtPnZhbHVlKSkKQEAgLTQzLDYgKzc1LDkgQEAg
Q29va2llOjpDb29raWUoU291cENvb2tpZSogY29va2llKQogICAgICwgc2Vzc2lvbighY29va2ll
LT5leHBpcmVzKQogCiB7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBz
YW1lU2l0ZSA9IGNvcmVTYW1lU2l0ZVBvbGljeShzb3VwX2Nvb2tpZV9nZXRfc2FtZV9zaXRlX3Bv
bGljeShjb29raWUpKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgU291cERhdGUqIG1zVG9Tb3VwRGF0
ZShkb3VibGUgbXMpCkBAIC02Niw2ICsxMDEsOSBAQCBTb3VwQ29va2llKiBDb29raWU6OnRvU291
cENvb2tpZSgpIGNvbnN0CiAKICAgICBzb3VwX2Nvb2tpZV9zZXRfaHR0cF9vbmx5KHNvdXBDb29r
aWUsIGh0dHBPbmx5KTsKICAgICBzb3VwX2Nvb2tpZV9zZXRfc2VjdXJlKHNvdXBDb29raWUsIHNl
Y3VyZSk7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBzb3VwX2Nvb2tp
ZV9zZXRfc2FtZV9zaXRlX3BvbGljeShzb3VwQ29va2llLCBzb3VwU2FtZVNpdGVQb2xpY3koc2Ft
ZVNpdGUpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFzZXNzaW9uKSB7CiAgICAgICAgIFNvdXBEYXRl
KiBkYXRlID0gbXNUb1NvdXBEYXRlKGV4cGlyZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCmluZGV4IDk0N2UyM2U1YTIyMTYyZTcxNmI1YTMyMDNmNGJiMjk1NmQ5Nzc0YzAu
LjU4N2Y4NTNmMmNmMjI2MmZiNTIxMmQwNzAzNzRhZWU2NmRjNGY4MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQzOSw0NiArNDM5LDcyIEBAIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29t
cGxldGlvbkhhbmRsCiAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi1ib29sIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFz
a0lUUCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91
bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewotICAgIFVOVVNF
RF9QQVJBTShmaXJzdFBhcnR5KTsKKyAgICByYXdDb29raWVzLmNsZWFyKCk7CisKKyNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMo
Zmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdl
SUQpOwotICAgIHJhd0Nvb2tpZXMuY2xlYXIoKTsKKyNlbmRpZgorCiAgICAgR1VuaXF1ZVB0cjxT
b3VwVVJJPiB1cmkgPSB1cmxUb1NvdXBVUkkodXJsKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBH
VW5pcXVlUHRyPFNvdXBVUkk+IGNvb2tpZVVSSSA9IHNhbWVTaXRlSW5mby5pc1NhbWVTaXRlID8g
dXJsVG9Tb3VwVVJJKHVybCkgOiBudWxscHRyOworCisgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBm
aXJzdFBhcnR5VVJJID0gdXJsVG9Tb3VwVVJJKHNhbWVTaXRlSW5mby5pc1NhbWVTaXRlID8gdXJs
IDogZmlyc3RQYXJ0eSk7CisgICAgaWYgKCFmaXJzdFBhcnR5VVJJKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBHVW5pcXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJf
Z2V0X2Nvb2tpZV9saXN0X3dpdGhfc2FtZV9zaXRlX2luZm8oY29va2llU3RvcmFnZSgpLCB1cmku
Z2V0KCksIGZpcnN0UGFydHlVUkkuZ2V0KCksIGNvb2tpZVVSSS5nZXQoKSwgVFJVRSwgc2FtZVNp
dGVJbmZvLmlzU2FmZUhUVFBNZXRob2QsIHNhbWVTaXRlSW5mby5pc1RvcFNpdGUpKTsKKyNlbHNl
CiAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29r
aWVfbGlzdChjb29raWVTdG9yYWdlKCksIHVyaS5nZXQoKSwgVFJVRSkpOworICAgIFVOVVNFRF9Q
QVJBTShzYW1lU2l0ZUluZm8pOworI2VuZGlmCiAgICAgaWYgKCFjb29raWVzKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKEdTTGlzdCogaXRlciA9IGNvb2tpZXMuZ2V0KCk7IGl0
ZXI7IGl0ZXIgPSBnX3NsaXN0X25leHQoaXRlcikpIHsKICAgICAgICAgU291cENvb2tpZSogc291
cENvb2tpZSA9IHN0YXRpY19jYXN0PFNvdXBDb29raWUqPihpdGVyLT5kYXRhKTsKLSAgICAgICAg
Q29va2llIGNvb2tpZTsKLSAgICAgICAgY29va2llLm5hbWUgPSBTdHJpbmc6OmZyb21VVEY4KHNv
dXBDb29raWUtPm5hbWUpOwotICAgICAgICBjb29raWUudmFsdWUgPSBTdHJpbmc6OmZyb21VVEY4
KHNvdXBDb29raWUtPnZhbHVlKTsKLSAgICAgICAgY29va2llLmRvbWFpbiA9IFN0cmluZzo6ZnJv
bVVURjgoc291cENvb2tpZS0+ZG9tYWluKTsKLSAgICAgICAgY29va2llLnBhdGggPSBTdHJpbmc6
OmZyb21VVEY4KHNvdXBDb29raWUtPnBhdGgpOwotICAgICAgICBjb29raWUuY3JlYXRlZCA9IDA7
Ci0gICAgICAgIGNvb2tpZS5leHBpcmVzID0gc291cENvb2tpZS0+ZXhwaXJlcyA/IHN0YXRpY19j
YXN0PGRvdWJsZT4oc291cF9kYXRlX3RvX3RpbWVfdChzb3VwQ29va2llLT5leHBpcmVzKSkgKiAx
MDAwIDogMDsKLSAgICAgICAgY29va2llLmh0dHBPbmx5ID0gc291cENvb2tpZS0+aHR0cF9vbmx5
OwotICAgICAgICBjb29raWUuc2VjdXJlID0gc291cENvb2tpZS0+c2VjdXJlOwotICAgICAgICBj
b29raWUuc2Vzc2lvbiA9ICFzb3VwQ29va2llLT5leHBpcmVzOwotICAgICAgICByYXdDb29raWVz
LmFwcGVuZChXVEZNb3ZlKGNvb2tpZSkpOworICAgICAgICByYXdDb29raWVzLmFwcGVuZChDb29r
aWUoc291cENvb2tpZSkpOwogICAgICAgICBzb3VwX2Nvb2tpZV9mcmVlKHNvdXBDb29raWUpOwog
ICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIHVybCwgYm9vbCBmb3JIVFRQSGVhZGVyLCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CisjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nvb2tpZXMoZmly
c3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQorICAgICAgICByZXR1cm4geyB7IH0sIGZh
bHNlIH07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKKyAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKKyNlbmRpZgorCiAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiB1cmkgPSB1cmxU
b1NvdXBVUkkodXJsKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAgcmV0dXJuIHsgeyB9LCBmYWxz
ZSB9OwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBHVW5pcXVlUHRy
PFNvdXBVUkk+IGZpcnN0UGFydHlVUkkgPSB1cmxUb1NvdXBVUkkoZmlyc3RQYXJ0eSk7CisgICAg
aWYgKCFmaXJzdFBhcnR5VVJJKQorICAgICAgICByZXR1cm4geyB7IH0sIGZhbHNlIH07CisKKyAg
ICBHVW5pcXVlUHRyPFNvdXBVUkk+IGNvb2tpZVVSSSA9IHNhbWVTaXRlSW5mby5pc1NhbWVTaXRl
ID8gdXJsVG9Tb3VwVVJJKHVybCkgOiBudWxscHRyOworICAgIEdTTGlzdCogY29va2llcyA9IHNv
dXBfY29va2llX2phcl9nZXRfY29va2llX2xpc3Rfd2l0aF9zYW1lX3NpdGVfaW5mbyhzZXNzaW9u
LmNvb2tpZVN0b3JhZ2UoKSwgdXJpLmdldCgpLCBmaXJzdFBhcnR5VVJJLmdldCgpLCBjb29raWVV
UkkuZ2V0KCksIGZvckhUVFBIZWFkZXIsIHNhbWVTaXRlSW5mby5pc1NhZmVIVFRQTWV0aG9kLCBz
YW1lU2l0ZUluZm8uaXNUb3BTaXRlKTsKKyNlbHNlCiAgICAgR1NMaXN0KiBjb29raWVzID0gc291
cF9jb29raWVfamFyX2dldF9jb29raWVfbGlzdChzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKSwgdXJp
LmdldCgpLCBmb3JIVFRQSGVhZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7Cisg
ICAgVU5VU0VEX1BBUkFNKHNhbWVTaXRlSW5mbyk7CisjZW5kaWYKICAgICBib29sIGRpZEFjY2Vz
c1NlY3VyZUNvb2tpZXMgPSBmYWxzZTsKIAogICAgIC8vIGxpYnNvdXAgc2hvdWxkIG9taXQgc2Vj
dXJlIGNvb2tpZXMgaXRzZWxmIGlmIHRoZSBwcm90b2NvbCBpcyBub3QgaHR0cHMuCkBAIC01MDks
MjEgKzUzNSwxNSBAQCBzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNl
c3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZQogICAgIHJldHVybiB7IFN0cmlu
Zzo6ZnJvbVVURjgoY29va2llSGVhZGVyLmdldCgpKSwgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9
OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBTaG91bGRB
c2tJVFApIGNvbnN0CiB7Ci0gICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwotICAgIFVOVVNF
RF9QQVJBTShmcmFtZUlEKTsKLSAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKLSAgICByZXR1cm4g
Y29va2llc0ZvclNlc3Npb24oKnRoaXMsIHVybCwgZmFsc2UsIGluY2x1ZGVTZWN1cmVDb29raWVz
KTsKKyAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHksIHVybCwg
c2FtZVNpdGVJbmZvLCBmcmFtZUlELCBwYWdlSUQsIGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2ll
cyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdAorc3RkOjpw
YWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYg
c2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNrSVRQKSBjb25zdAogewotICAgIFVO
VVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7Ci0gICAg
VU5VU0VEX1BBUkFNKHBhZ2VJRCk7CiAgICAgLy8gU2VjdXJlIGNvb2tpZXMgd2lsbCBzdGlsbCBv
bmx5IGJlIGluY2x1ZGVkIGlmIHVybCdzIHByb3RvY29sIGlzIGh0dHBzLgotICAgIHJldHVybiBj
b29raWVzRm9yU2Vzc2lvbigqdGhpcywgdXJsLCB0cnVlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CisgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCB1cmwsIHNh
bWVTaXRlSW5mbywgZnJhbWVJRCwgcGFnZUlELCB0cnVlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CiB9CiAKIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxk
UHJveHkmIGhlYWRlckZpZWxkUHJveHkpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKaW5k
ZXggOWNjZmIyZDZmYmNmMDNjMzk2NzMzZGFiZWVjZTU5MGQyYzM5ZDUxZi4uYjAxNDE4N2QxODYz
YTlhYzI2ZWYwZGRlZjg1MjhkYTE0MTRmYWIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApA
QCAtMTEwLDYgKzExMCwxNSBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlU291cE1lc3Nh
Z2VNZW1iZXJzKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkgY29uc3QKICAgICBpZiAoZmlyc3RQ
YXJ0eSkKICAgICAgICAgc291cF9tZXNzYWdlX3NldF9maXJzdF9wYXJ0eShzb3VwTWVzc2FnZSwg
Zmlyc3RQYXJ0eS5nZXQoKSk7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQor
ICAgIGlmIChtX3NhbWVTaXRlRGlzcG9zaXRpb24gPT0gUmVzb3VyY2VSZXF1ZXN0OjpTYW1lU2l0
ZURpc3Bvc2l0aW9uOjpTYW1lU2l0ZSkgeworICAgICAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHNp
dGVGb3JDb29raWVzID0gdXJsVG9Tb3VwVVJJKG1fdXJsKTsKKyAgICAgICAgc291cF9tZXNzYWdl
X3NldF9zaXRlX2Zvcl9jb29raWVzKHNvdXBNZXNzYWdlLCBzaXRlRm9yQ29va2llcy5nZXQoKSk7
CisgICAgfQorCisgICAgc291cF9tZXNzYWdlX3NldF9pc190b3BfbGV2ZWxfbmF2aWdhdGlvbihz
b3VwTWVzc2FnZSwgaXNUb3BTaXRlKCkpOworI2VuZGlmCisKICAgICBzb3VwX21lc3NhZ2Vfc2V0
X2ZsYWdzKHNvdXBNZXNzYWdlLCBtX3NvdXBGbGFncyk7CiAKICAgICBpZiAoIWFjY2VwdEVuY29k
aW5nKCkpCkBAIC0xNzAsNiArMTc5LDE1IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVG
cm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKQogICAgIGlmIChTb3VwVVJJ
KiBmaXJzdFBhcnR5ID0gc291cF9tZXNzYWdlX2dldF9maXJzdF9wYXJ0eShzb3VwTWVzc2FnZSkp
CiAgICAgICAgIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXMgPSBzb3VwVVJJVG9VUkwoZmlyc3RQYXJ0
eSk7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQorICAgIHNldElzVG9wU2l0
ZShzb3VwX21lc3NhZ2VfZ2V0X2lzX3RvcF9sZXZlbF9uYXZpZ2F0aW9uKHNvdXBNZXNzYWdlKSk7
CisKKyAgICBpZiAoU291cFVSSSogc2l0ZUZvckNvb2tpZXMgPSBzb3VwX21lc3NhZ2VfZ2V0X3Np
dGVfZm9yX2Nvb2tpZXMoc291cE1lc3NhZ2UpKQorICAgICAgICBzZXRJc1NhbWVTaXRlKGFyZVJl
Z2lzdHJhYmxlRG9tYWluc0VxdWFsKHNvdXBVUklUb1VSTChzaXRlRm9yQ29va2llcyksIG1fdXJs
KSk7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlvbiA9IFNh
bWVTaXRlRGlzcG9zaXRpb246OlVuc3BlY2lmaWVkOworCiAgICAgbV9zb3VwRmxhZ3MgPSBzb3Vw
X21lc3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlKTsKIAogICAgIC8vIEZJWE1FOiBtX2FsbG93
Q29va2llcyBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBoZXJlIGFuZCBvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwCmluZGV4IDY4MTdmMGRjYzk5ZjdiNzlhMjliODJkYzM2YzdlNTBlOGM1MWQ3YmUuLjE0
ZjczYmY5MGRmMzU0NzBhN2UzYjE1ZjhiZWI3Nzg3MjkyNjk5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5j
cHAKQEAgLTY3NSw2ICs2NzUsMTggQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51
ZUhUVFBSZWRpcmVjdGlvbigpCiAgICAgbV9sYXN0SFRUUE1ldGhvZCA9IHJlcXVlc3QuaHR0cE1l
dGhvZCgpOwogICAgIHJlcXVlc3QucmVtb3ZlQ3JlZGVudGlhbHMoKTsKIAorICAgIGlmIChpc1Rv
cExldmVsTmF2aWdhdGlvbigpKSB7CisgICAgICAgIHJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNv
b2tpZXMocmVxdWVzdC51cmwoKSk7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkK
KyAgICAgICAgc291cF9tZXNzYWdlX3NldF9pc190b3BfbGV2ZWxfbmF2aWdhdGlvbihtX3NvdXBN
ZXNzYWdlLmdldCgpLCB0cnVlKTsKKyAgICB9CisKKyAgICBpZiAocmVxdWVzdC5pc1NhbWVTaXRl
KCkpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiByZXF1ZXN0VVJJID0gdXJsVG9Tb3Vw
VVJJKHJlcXVlc3QudXJsKCkpOworICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3NpdGVfZm9yX2Nv
b2tpZXMobV9zb3VwTWVzc2FnZS5nZXQoKSwgcmVxdWVzdFVSSS5nZXQoKSk7CisjZW5kaWYKKyAg
ICB9CisKICAgICBpZiAoaXNDcm9zc09yaWdpbikgewogICAgICAgICAvLyBUaGUgbmV0d29yayBs
YXllciBtaWdodCBjYXJyeSBvdmVyIHNvbWUgaGVhZGVycyBmcm9tIHRoZSBvcmlnaW5hbCByZXF1
ZXN0IHRoYXQKICAgICAgICAgLy8gd2Ugd2FudCB0byBzdHJpcCBoZXJlIGJlY2F1c2UgdGhlIHJl
ZGlyZWN0IGlzIGNyb3NzLW9yaWdpbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA0MzUzN2MyYTIzNTc3Yjc2Mzc0ODVmYzg1OWYzOTI1N2JkODBl
ZDU2Li40OWM1YWUyY2E0NTQ0YjYzYmI0ZjkzM2MyYTQ3YjlmMjlhMDg5MzllIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMjAtMDItMDQgIFBhdHJpY2sgR3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dUS11bV1BFXSBBZGQgc2FtZS1zaXRlIGNvb2tpZSBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxMzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgbGlic291cCB0byAy
LjY5LjkwIGluIEpIQnVpbGQuCisKKyAgICAgICAgKiBndGsvamhidWlsZC5tb2R1bGVzOgorICAg
ICAgICAqIHdwZS9qaGJ1aWxkLm1vZHVsZXM6CisKIDIwMjAtMDItMDMgIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXNzIGEgaGludCBmcm9tIHRoZSBleHRl
bnNpb24gdG8gZGVjaWRlUG9saWN5Rm9yU09BdXRob3JpemF0aW9uTG9hZFdpdGhDdXJyZW50UG9s
aWN5CmRpZmYgLS1naXQgYS9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvZ3RrL2po
YnVpbGQubW9kdWxlcwppbmRleCA4ZjUwNzZjNWExOGRhNWM1OGRjNmUxMWI5YWY1N2ViYTQ1MmUx
NGE3Li4wMDc0NjA3NjdiNDg1NDNhNzEzNjUzNzYwZTExZjE0MzVmMDcxOTIzIDEwMDY0NAotLS0g
YS9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVs
ZXMKQEAgLTU0LDYgKzU0LDggQEAKICAgICAgIGhyZWY9Imh0dHA6Ly9taXJyb3JzLmtlcm5lbC5v
cmcvc291cmNlcy5yZWRoYXQuY29tLyIvPgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBu
YW1lPSJmdHAuZ25vbWUub3JnIgogICAgICAgaHJlZj0iaHR0cDovL2Z0cC5nbm9tZS5vcmciLz4K
KyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZG93bmxvYWQuZ25vbWUub3JnIgor
ICAgICAgaHJlZj0iaHR0cHM6Ly9kb3dubG9hZC5nbm9tZS5vcmcvc291cmNlcyIvPgogICA8cmVw
b3NpdG9yeSB0eXBlPSJnaXQiIG5hbWU9ImdpdC5nbm9tZS5vcmciCiAgICAgICBocmVmPSJodHRw
czovL2dpdC5nbm9tZS5vcmcvYnJvd3NlLyIvPgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxs
IiBuYW1lPSJjYWlyb2dyYXBoaWNzLm9yZyIKQEAgLTIzOCw5ICsyNDAsOSBAQAogICAgICAgPGRl
cCBwYWNrYWdlPSJnbGliLW5ldHdvcmtpbmciLz4KICAgICAgIDxkZXAgcGFja2FnZT0ibGlicHNs
Ii8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUv
c291cmNlcy9saWJzb3VwLzIuNjgvbGlic291cC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0i
Mi42OC4zIgotICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKLSAgICAgICAgICAgIGhh
c2g9InNoYTI1Njo1MzRiYjA4ZTM1YjBmZjM3MDJmM2FkZmRlODdkMzQ0MWUyN2MxMmY5ZjVlYzM1
MWYwNTZmZTA0Y2JhMDJiYWZiIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL2xpYnNvdXAvMi42OS9s
aWJzb3VwLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIyLjY5LjkwIgorICAgICAgICAgICAg
cmVwbz0iZG93bmxvYWQuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjhlZDE4
MDkyY2ZiMjdkODcwYTdjN2M0NTk5MmYzYTIxNmJkMjJkZDZmZDZkMmM5ZmJmMWFkYzJkNjk1N2Nh
YjgiPgogICAgIDwvYnJhbmNoPgogICA8L21lc29uPgogCmRpZmYgLS1naXQgYS9Ub29scy93cGUv
amhidWlsZC5tb2R1bGVzIGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwppbmRleCAwY2RlNGI3
NTJhMzZmYmM0MWVmYjA1Njc5YjdhYjYyYjg0Y2M4YjIxLi4wMDc4NDMxMGNkMzVkMTM4NjE4MjBj
ZjI2Mzg4NjQ5MzgxNjQ1Yzk1IDEwMDY0NAotLS0gYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVz
CisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTM3LDYgKzM3LDggQEAKICAgICAg
IGhyZWY9Imh0dHA6Ly9taXJyb3JzLmtlcm5lbC5vcmcvc291cmNlcy5yZWRoYXQuY29tLyIvPgog
ICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmdHAuZ25vbWUub3JnIgogICAgICAg
aHJlZj0iaHR0cDovL2Z0cC5nbm9tZS5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFs
bCIgbmFtZT0iZG93bmxvYWQuZ25vbWUub3JnIgorICAgICAgaHJlZj0iaHR0cHM6Ly9kb3dubG9h
ZC5nbm9tZS5vcmcvc291cmNlcyIvPgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1l
PSJjYWlyb2dyYXBoaWNzLm9yZyIKICAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9y
ZyIvPgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3RvcC5vcmci
CkBAIC0xMDAsOSArMTAyLDkgQEAKICAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYi1uZXR3b3JraW5n
Ii8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnBzbCIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgot
ICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvbGlic291cC8yLjY4L2xpYnNv
dXAtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjIuNjguMyIKLSAgICAgICAgICAgIHJlcG89
ImZ0cC5nbm9tZS5vcmciCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6NTM0YmIwOGUzNWIwZmYz
NzAyZjNhZGZkZTg3ZDM0NDFlMjdjMTJmOWY1ZWMzNTFmMDU2ZmUwNGNiYTAyYmFmYiI+CisgICAg
PGJyYW5jaCBtb2R1bGU9Ii9saWJzb3VwLzIuNjkvbGlic291cC0ke3ZlcnNpb259LnRhci54eiIg
dmVyc2lvbj0iMi42OS45MCIKKyAgICAgICAgICAgIHJlcG89ImRvd25sb2FkLmdub21lLm9yZyIK
KyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo4ZWQxODA5MmNmYjI3ZDg3MGE3YzdjNDU5OTJmM2Ey
MTZiZDIyZGQ2ZmQ2ZDJjOWZiZjFhZGMyZDY5NTdjYWI4Ij4KICAgICA8L2JyYW5jaD4KICAgPC9t
ZXNvbj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGNiZWMyODU0OWY1MzUwNWM0NTljNDVhYmI0ZTg0YmNhMDQyNmFkOGIu
LmU0YTRlN2M0YTc1ZjhjOWZmZDExNjMxM2IwYzkyNTQ4YTI0OWZlOWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMC0wMi0wNCAgUGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNv
bT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDEzNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgR1RL
L1dQRSB0ZXN0IGV4cGVjdGF0aW9ucyB0byBwYXNzIG1vc3Qgc2FtZS1zaXRlIGNvb2tpZSB0ZXN0
cworICAgICAgICBtYXRjaGluZyB0aGUgQXBwbGUgcG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAyMC0wMi0wNCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWVkaWFEZXZpY2VzIHNob3VsZCBoYW5kbGUgY2hhbmdlcyBvZiBpZnJhbWUg
YWxsb3cgYXR0cmlidXRlIHZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDg0OTAyNjRhMmJiOWViNzBmNzA4YTE0OTE3OTAyMDQzMzIwNjNiYjEuLmY1
NjljYTAxNDY1MTJhNjgyNWEzZGEwYTE2MjRmYWY0MjVjNjIzZDMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC00MTM0LDYgKzQxMzQsOCBAQCB3ZWJraXQu
b3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250
cy9mb250LXZhcmlhbnQtbgogd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC12YXJpYW50LXBvc2l0aW9uLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3F1b3RlZC1nZW5lcmljLWlnbm9yZWQuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMTk0OTMzIGh0dHAvdGVzdHMvY29v
a2llcy9zYW1lLXNpdGUvdXNlci1sb2FkLWNyb3NzLXNpdGUtcmVkaXJlY3QucGhwIFsgRmFpbHVy
ZSBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBub24tY3Jh
c2hpbmcsIG5vbi1mbGFreSB0ZXN0cyBmYWlsaW5nCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwpAQCAtNDMxNSw2ICs0MzE3LDggQEAgd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvc3RhbmRhcmQtZm9udC0KIHdl
YmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWZvbnRzL3N0YW5kYXJkLWZvbnQtZmFtaWx5LTcuaHRtbCBbIFBhc3MgXQogd2Via2l0Lm9yZy9i
LzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvc3Rh
bmRhcmQtZm9udC1mYW1pbHkuaHRtbCBbIFBhc3MgXQogCitodHRwL3Rlc3RzL2Nvb2tpZXMvc2Ft
ZS1zaXRlIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVu
ZCBvZiBQQVNTSU5HIHRlc3RzLiBTZWUgdG9wIG9mIGZpbGUgd2hlcmUgdG8gcHV0IG5ldyBleHBl
Y3RhdGlvbnMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1Y2UzODUyN2U2YTFkM2QzOTUwODVm
ZjZlOWM5YjRmNjI3MDUwZDMxLi4yYjU4YTY1ZGMzZDhjZGNmNjY2MDEyZTEzMDllOGRjYzU5Nzk3
ZWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTQ5
LDYgKzk0OSw4IEBAIHdlYmtpdC5vcmcvYi8yMDQxMTUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF9wCiBmYXN0L2dyYWRpZW50cy9jb25p
Yy1ncmFkaWVudC1hbHBoYS5odG1sIFsgUGFzcyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtaW1hZ2VzL211bHRpcGxlLXBvc2l0aW9uLWNvbG9yLXN0b3AtY29uaWMu
aHRtbCBbIFBhc3MgXQogCitodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlIFsgUGFzcyBdCisK
ICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIDUuIFRFU1RTIENSQVNISU5HCiAj
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjIwMyw2ICsyMjA1LDggQEAgd2Vi
a2l0Lm9yZy9iLzIwNDY3NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvaW1hZ2Utc21vb3QKIHdlYmtpdC5vcmcvYi8yMDQ2NzUgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL2lu
aXRpYWwucmVzZXQucGF0dGVybi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA0Njc1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9pbml0aWFsLnJlc2V0LnBhdHRlcm4ud29ya2VyLmh0bWwgWyBGYWlsdXJl
IF0KIAord2Via2l0Lm9yZy9iLzE5NDkzMyBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3Vz
ZXItbG9hZC1jcm9zcy1zaXRlLXJlZGlyZWN0LnBocCBbIEZhaWx1cmUgXQorCiAjLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyAgPj4gTk9USUNFIDw8CiAjIFBsZWFzZSBzZWUgZ3Vp
ZGVsaW5lcyBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZSBhbmQgcGxhY2UgbmV3IHRlc3QgZXhwZWN0
YXRpb25zCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389666</attachid>
            <date>2020-02-04 08:54:47 -0800</date>
            <delta_ts>2020-02-05 13:06:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204137-20200204085447.patch</filename>
            <type>text/plain</type>
            <size>24164</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEwZTE0MGI5NDhhYWQz
YTZhMjU1MWVhNzI1ZjIwZDZhZTExMWUyMy4uM2VjOWRkNzJlYzFiNjMwOWJkZjUwMjBmZjk1Yjkw
NDNhMzRiYjEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAyLTA0ICBQYXRy
aWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
QWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQg
aW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTYWZlTWV0aG9kKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2FtZVNpdGVJbmZvOjpjcmVh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU2FtZVNpdGVJbmZvLmg6CisgICAgICAg
IChXZWJDb3JlOjpTYW1lU2l0ZUluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTYW1lU2l0ZUluZm86OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29yZVNhbWVTaXRlUG9saWN5KToK
KyAgICAgICAgKFdlYkNvcmU6OnNvdXBTYW1lU2l0ZVBvbGljeSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb29raWU6OkNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWU6OnRvU291cENvb2tp
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRSYXdDb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0Zv
ckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6CisKIDIw
MjAtMDItMDQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1l
ZGlhRGV2aWNlcyBzaG91bGQgaGFuZGxlIGNoYW5nZXMgb2YgaWZyYW1lIGFsbG93IGF0dHJpYnV0
ZSB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA5MWI5ZTNlZjgzNjVlYWJiODMyNWUyNGZlNjVkYjhhMWUwOTAw
NWZhLi5lYzFjMWE4YzkwNTRiMjU3MDljOWVlZDJiMDMwY2MxZDNjODYwMzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTAyLTA0ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0Bp
Z2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIHNhbWUtc2l0ZSBjb29raWUgc3Vw
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQgaW4gdGhlIHNvdXAgYmFja2VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0
aW9uKToKKwogMjAyMC0wMi0wNCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBbV2luXVtDbGFuZ10gV2ViUHJvY2Vzc01haW4uaCgyOCwxNCk6IGVy
cm9yOiB0b2tlbiBpcyBub3QgYSB2YWxpZCBiaW5hcnkgb3BlcmF0b3IgaW4gYSBwcmVwcm9jZXNz
b3Igc3ViZXhwcmVzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9IVFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmNwcAppbmRleCA2YTJkZWQwZWFkNzQ5OWU0ZmIyMTU1YjJiNDhkNjA4YzIwOTNm
M2UxLi44ZDdhMmM5NjY5ZmZhYmI2YWNiODQ2YzAwN2U4MDk5OTM1MDJiNjAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtOTg1LDYg
Kzk4NSwxNiBAQCBTdHJpbmcgbm9ybWFsaXplSFRUUE1ldGhvZChjb25zdCBTdHJpbmcmIG1ldGhv
ZCkKICAgICByZXR1cm4gbWV0aG9kOwogfQogCitib29sIGlzU2FmZU1ldGhvZChjb25zdCBTdHJp
bmcmIG1ldGhvZCkKK3sKKyAgICBjb25zdCBBU0NJSUxpdGVyYWwgc2FmZU1ldGhvZHNbXSA9IHsg
IkdFVCJfcywgIkhFQUQiX3MsICJPUFRJT05TIl9zLCAiVFJBQ0UiX3MgfTsKKyAgICBmb3IgKGF1
dG8gdmFsdWUgOiBzYWZlTWV0aG9kcykgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShtZXRob2QsIHZhbHVlLmNoYXJhY3RlcnMoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBDcm9zc09yaWdpblJlc291cmNlUG9s
aWN5IHBhcnNlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeUhlYWRlcihTdHJpbmdWaWV3IGhlYWRl
cikKIHsKICAgICBhdXRvIHN0cmlwcGVkSGVhZGVyID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdI
VFRQU3BhY2VzKGhlYWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgKaW5kZXggNjZiOTgwMjk5MDliOWVjNGQwMDRhNGFkMjg2Y2E0ZTNmNmIzYTFl
Mi4uNWQ4ZTIzNDNjMDFiODlkMDIzNTE0ZTBmMjM5N2FiN2ZhMmU0MzQxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaApAQCAtMTA4LDYgKzEwOCw3
IEBAIGJvb2wgaXNDcm9zc09yaWdpblNhZmVIZWFkZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgSFRU
UEhlYWRlclNldCYpOwogYm9vbCBpc0Nyb3NzT3JpZ2luU2FmZVJlcXVlc3RIZWFkZXIoSFRUUEhl
YWRlck5hbWUsIGNvbnN0IFN0cmluZyYpOwogCiBTdHJpbmcgbm9ybWFsaXplSFRUUE1ldGhvZChj
b25zdCBTdHJpbmcmKTsKK2Jvb2wgaXNTYWZlTWV0aG9kKGNvbnN0IFN0cmluZyYpOwogCiBXRUJD
T1JFX0VYUE9SVCBDcm9zc09yaWdpblJlc291cmNlUG9saWN5IHBhcnNlQ3Jvc3NPcmlnaW5SZXNv
dXJjZVBvbGljeUhlYWRlcihTdHJpbmdWaWV3KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uY3BwCmluZGV4IDllZGI1NmFiZDE5NjMzNTBjNWU4
YWUyY2Y2ZTU5YWJmNjg3YjQ4OWMuLjk1OWI3NzI2OTNhOTEyNjg2YjUwNDI5NzllNjc0ZWE0MDQy
YzIzNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU2FtZVNp
dGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRl
SW5mby5jcHAKQEAgLTI2LDEzICsyNiwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlNhbWVTaXRlSW5mby5oIgogCisjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlcXVlc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTYW1lU2l0ZUlu
Zm8gU2FtZVNpdGVJbmZvOjpjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQog
ewotICAgIHJldHVybiB7IHJlcXVlc3QuaXNTYW1lU2l0ZSgpLCByZXF1ZXN0LmlzVG9wU2l0ZSgp
IH07CisgICAgcmV0dXJuIHsgcmVxdWVzdC5pc1NhbWVTaXRlKCksIHJlcXVlc3QuaXNUb3BTaXRl
KCksIGlzU2FmZU1ldGhvZChyZXF1ZXN0Lmh0dHBNZXRob2QoKSkgfTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU2FtZVNp
dGVJbmZvLmgKaW5kZXggZmVhNzU5YzdiNTgzZTQxYzRlOTE2NDQ0ZmI1NWYwY2VjOWEzZDhmOC4u
ZDhhMTk3YWNhZGMwNDgyNjc4NDg2YmU3NmU1Y2QxYjUxYTk2MWQyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oCkBAIC0zNCw2ICszNCw3IEBA
IHN0cnVjdCBTYW1lU2l0ZUluZm8gewogCiAgICAgYm9vbCBpc1NhbWVTaXRlIHsgZmFsc2UgfTsK
ICAgICBib29sIGlzVG9wU2l0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1NhZmVIVFRQTWV0aG9k
IHsgZmFsc2UgfTsKIAogICAgIHRlbXBsYXRlIDxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgU2FtZVNpdGVJbmZvJik7CkBAIC00NCw2ICs0NSw3IEBAIHZvaWQg
U2FtZVNpdGVJbmZvOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNv
ZGVyIDw8IGlzU2FtZVNpdGU7CiAgICAgZW5jb2RlciA8PCBpc1RvcFNpdGU7CisgICAgZW5jb2Rl
ciA8PCBpc1NhZmVIVFRQTWV0aG9kOwogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KQEAg
LTUzLDYgKzU1LDggQEAgYm9vbCBTYW1lU2l0ZUluZm86OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBTYW1lU2l0ZUluZm8mIGluZm8pCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGluZm8uaXNUb3BTaXRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1NhZmVIVFRQTWV0aG9kKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU291cC5jcHAKaW5kZXggZTQ0YzRhZTY3MDY1
NDJkMzBjNGU3M2UyMjU2NDA2NzczMTU5YmFhNS4uMTk1YjVmNjgzM2VjYWY1YmY0YjAxM2QzMTk5
ZjhmY2E3NDlkNzhhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL0Nvb2tpZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVTb3VwLmNwcApAQCAtMzIsNiArMzIsMzggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKK3N0YXRpYyBDb29r
aWU6OlNhbWVTaXRlUG9saWN5IGNvcmVTYW1lU2l0ZVBvbGljeShTb3VwU2FtZVNpdGVQb2xpY3kg
cG9saWN5KQoreworICAgIHN3aXRjaCAocG9saWN5KSB7CisgICAgY2FzZSBTT1VQX1NBTUVfU0lU
RV9QT0xJQ1lfTk9ORToKKyAgICAgICAgcmV0dXJuIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6Ok5v
bmU7CisgICAgY2FzZSBTT1VQX1NBTUVfU0lURV9QT0xJQ1lfTEFYOgorICAgICAgICByZXR1cm4g
Q29va2llOjpTYW1lU2l0ZVBvbGljeTo6TGF4OworICAgIGNhc2UgU09VUF9TQU1FX1NJVEVfUE9M
SUNZX1NUUklDVDoKKyAgICAgICAgcmV0dXJuIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6OlN0cmlj
dDsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQ29va2ll
OjpTYW1lU2l0ZVBvbGljeTo6Tm9uZTsKK30KKworc3RhdGljIFNvdXBTYW1lU2l0ZVBvbGljeSBz
b3VwU2FtZVNpdGVQb2xpY3koQ29va2llOjpTYW1lU2l0ZVBvbGljeSBwb2xpY3kpCit7CisgICAg
c3dpdGNoIChwb2xpY3kpIHsKKyAgICBjYXNlIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6Ok5vbmU6
CisgICAgICAgIHJldHVybiBTT1VQX1NBTUVfU0lURV9QT0xJQ1lfTk9ORTsKKyAgICBjYXNlIENv
b2tpZTo6U2FtZVNpdGVQb2xpY3k6OkxheDoKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRF
X1BPTElDWV9MQVg7CisgICAgY2FzZSBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpTdHJpY3Q6Cisg
ICAgICAgIHJldHVybiBTT1VQX1NBTUVfU0lURV9QT0xJQ1lfU1RSSUNUOworICAgIH0KKworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTT1VQX1NBTUVfU0lURV9QT0xJQ1lf
Tk9ORTsKK30KKyNlbmRpZgorCiBDb29raWU6OkNvb2tpZShTb3VwQ29va2llKiBjb29raWUpCiAg
ICAgOiBuYW1lKFN0cmluZzo6ZnJvbVVURjgoY29va2llLT5uYW1lKSkKICAgICAsIHZhbHVlKFN0
cmluZzo6ZnJvbVVURjgoY29va2llLT52YWx1ZSkpCkBAIC00Myw2ICs3NSw5IEBAIENvb2tpZTo6
Q29va2llKFNvdXBDb29raWUqIGNvb2tpZSkKICAgICAsIHNlc3Npb24oIWNvb2tpZS0+ZXhwaXJl
cykKIAogeworI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2OSwgOTApCisgICAgc2FtZVNpdGUg
PSBjb3JlU2FtZVNpdGVQb2xpY3koc291cF9jb29raWVfZ2V0X3NhbWVfc2l0ZV9wb2xpY3koY29v
a2llKSk7CisjZW5kaWYKIH0KIAogc3RhdGljIFNvdXBEYXRlKiBtc1RvU291cERhdGUoZG91Ymxl
IG1zKQpAQCAtNjYsNiArMTAxLDkgQEAgU291cENvb2tpZSogQ29va2llOjp0b1NvdXBDb29raWUo
KSBjb25zdAogCiAgICAgc291cF9jb29raWVfc2V0X2h0dHBfb25seShzb3VwQ29va2llLCBodHRw
T25seSk7CiAgICAgc291cF9jb29raWVfc2V0X3NlY3VyZShzb3VwQ29va2llLCBzZWN1cmUpOwor
I2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2OSwgOTApCisgICAgc291cF9jb29raWVfc2V0X3Nh
bWVfc2l0ZV9wb2xpY3koc291cENvb2tpZSwgc291cFNhbWVTaXRlUG9saWN5KHNhbWVTaXRlKSk7
CisjZW5kaWYKIAogICAgIGlmICghc2Vzc2lvbikgewogICAgICAgICBTb3VwRGF0ZSogZGF0ZSA9
IG1zVG9Tb3VwRGF0ZShleHBpcmVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNw
cAppbmRleCA5NDdlMjNlNWEyMjE2MmU3MTZiNWEzMjAzZjRiYjI5NTZkOTc3NGMwLi4zZWU3N2Vj
NWY3NTk4NTdjNjc0Mjc4MGU4NjAyNjk0ZWMxYmE5ODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwCkBAIC00MzksNDYgKzQzOSw3MSBAQCB2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6aGFzQ29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbAogICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAotYm9vbCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAsIFZl
Y3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNrSVRQ
LCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKLSAgICBVTlVTRURfUEFSQU0o
Zmlyc3RQYXJ0eSk7CisgICAgcmF3Q29va2llcy5jbGVhcigpOworCisjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyAgICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKGZpcnN0UGFy
dHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKLSAg
ICByYXdDb29raWVzLmNsZWFyKCk7CisjZW5kaWYKKwogICAgIEdVbmlxdWVQdHI8U291cFVSST4g
dXJpID0gdXJsVG9Tb3VwVVJJKHVybCk7CiAgICAgaWYgKCF1cmkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2OSwgOTApCisgICAgR1VuaXF1ZVB0
cjxTb3VwVVJJPiBmaXJzdFBhcnR5VVJJID0gdXJsVG9Tb3VwVVJJKHNhbWVTaXRlSW5mby5pc1Nh
bWVTaXRlID8gdXJsIDogZmlyc3RQYXJ0eSk7CisgICAgaWYgKCFmaXJzdFBhcnR5VVJJKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IGNvb2tpZVVSSSA9
IHNhbWVTaXRlSW5mby5pc1NhbWVTaXRlID8gdXJsVG9Tb3VwVVJJKHVybCkgOiBudWxscHRyOwor
ICAgIEdVbmlxdWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9nZXRfY29va2ll
X2xpc3Rfd2l0aF9zYW1lX3NpdGVfaW5mbyhjb29raWVTdG9yYWdlKCksIHVyaS5nZXQoKSwgZmly
c3RQYXJ0eVVSSS5nZXQoKSwgY29va2llVVJJLmdldCgpLCBUUlVFLCBzYW1lU2l0ZUluZm8uaXNT
YWZlSFRUUE1ldGhvZCwgc2FtZVNpdGVJbmZvLmlzVG9wU2l0ZSkpOworI2Vsc2UKICAgICBHVW5p
cXVlUHRyPEdTTGlzdD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZV9saXN0KGNv
b2tpZVN0b3JhZ2UoKSwgdXJpLmdldCgpLCBUUlVFKSk7CisgICAgVU5VU0VEX1BBUkFNKHNhbWVT
aXRlSW5mbyk7CisjZW5kaWYKICAgICBpZiAoIWNvb2tpZXMpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGZvciAoR1NMaXN0KiBpdGVyID0gY29va2llcy5nZXQoKTsgaXRlcjsgaXRlciA9
IGdfc2xpc3RfbmV4dChpdGVyKSkgewogICAgICAgICBTb3VwQ29va2llKiBzb3VwQ29va2llID0g
c3RhdGljX2Nhc3Q8U291cENvb2tpZSo+KGl0ZXItPmRhdGEpOwotICAgICAgICBDb29raWUgY29v
a2llOwotICAgICAgICBjb29raWUubmFtZSA9IFN0cmluZzo6ZnJvbVVURjgoc291cENvb2tpZS0+
bmFtZSk7Ci0gICAgICAgIGNvb2tpZS52YWx1ZSA9IFN0cmluZzo6ZnJvbVVURjgoc291cENvb2tp
ZS0+dmFsdWUpOwotICAgICAgICBjb29raWUuZG9tYWluID0gU3RyaW5nOjpmcm9tVVRGOChzb3Vw
Q29va2llLT5kb21haW4pOwotICAgICAgICBjb29raWUucGF0aCA9IFN0cmluZzo6ZnJvbVVURjgo
c291cENvb2tpZS0+cGF0aCk7Ci0gICAgICAgIGNvb2tpZS5jcmVhdGVkID0gMDsKLSAgICAgICAg
Y29va2llLmV4cGlyZXMgPSBzb3VwQ29va2llLT5leHBpcmVzID8gc3RhdGljX2Nhc3Q8ZG91Ymxl
Pihzb3VwX2RhdGVfdG9fdGltZV90KHNvdXBDb29raWUtPmV4cGlyZXMpKSAqIDEwMDAgOiAwOwot
ICAgICAgICBjb29raWUuaHR0cE9ubHkgPSBzb3VwQ29va2llLT5odHRwX29ubHk7Ci0gICAgICAg
IGNvb2tpZS5zZWN1cmUgPSBzb3VwQ29va2llLT5zZWN1cmU7Ci0gICAgICAgIGNvb2tpZS5zZXNz
aW9uID0gIXNvdXBDb29raWUtPmV4cGlyZXM7Ci0gICAgICAgIHJhd0Nvb2tpZXMuYXBwZW5kKFdU
Rk1vdmUoY29va2llKSk7CisgICAgICAgIHJhd0Nvb2tpZXMuYXBwZW5kKENvb2tpZShzb3VwQ29v
a2llKSk7CiAgICAgICAgIHNvdXBfY29va2llX2ZyZWUoc291cENvb2tpZSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgdXJsLCBib29sIGZvckhUVFBIZWFkZXIsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzKQorc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNG
b3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgYm9vbCBmb3JIVFRQSGVhZGVyLCBJbmNsdWRlU2VjdXJlQ29va2ll
cyBpbmNsdWRlU2VjdXJlQ29va2llcykKIHsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorICAgIGlmIChzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1
cmwsIGZyYW1lSUQsIHBhZ2VJRCkpCisgICAgICAgIHJldHVybiB7IHsgfSwgZmFsc2UgfTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOworICAgIFVOVVNFRF9QQVJBTShwYWdlSUQp
OworI2VuZGlmCisKICAgICBHVW5pcXVlUHRyPFNvdXBVUkk+IHVyaSA9IHVybFRvU291cFVSSSh1
cmwpOwogICAgIGlmICghdXJpKQogICAgICAgICByZXR1cm4geyB7IH0sIGZhbHNlIH07CiAKKyNp
ZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQorICAgIEdVbmlxdWVQdHI8U291cFVSST4g
Zmlyc3RQYXJ0eVVSSSA9IHVybFRvU291cFVSSShmaXJzdFBhcnR5KTsKKyAgICBpZiAoIWZpcnN0
UGFydHlVUkkpCisgICAgICAgIHJldHVybiB7IHsgfSwgZmFsc2UgfTsKKworICAgIEdVbmlxdWVQ
dHI8U291cFVSST4gY29va2llVVJJID0gc2FtZVNpdGVJbmZvLmlzU2FtZVNpdGUgPyB1cmxUb1Nv
dXBVUkkodXJsKSA6IG51bGxwdHI7CisgICAgR1NMaXN0KiBjb29raWVzID0gc291cF9jb29raWVf
amFyX2dldF9jb29raWVfbGlzdF93aXRoX3NhbWVfc2l0ZV9pbmZvKHNlc3Npb24uY29va2llU3Rv
cmFnZSgpLCB1cmkuZ2V0KCksIGZpcnN0UGFydHlVUkkuZ2V0KCksIGNvb2tpZVVSSS5nZXQoKSwg
Zm9ySFRUUEhlYWRlciwgc2FtZVNpdGVJbmZvLmlzU2FmZUhUVFBNZXRob2QsIHNhbWVTaXRlSW5m
by5pc1RvcFNpdGUpOworI2Vsc2UKICAgICBHU0xpc3QqIGNvb2tpZXMgPSBzb3VwX2Nvb2tpZV9q
YXJfZ2V0X2Nvb2tpZV9saXN0KHNlc3Npb24uY29va2llU3RvcmFnZSgpLCB1cmkuZ2V0KCksIGZv
ckhUVFBIZWFkZXIpOworICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKKyAgICBVTlVTRURf
UEFSQU0oc2FtZVNpdGVJbmZvKTsKKyNlbmRpZgogICAgIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29v
a2llcyA9IGZhbHNlOwogCiAgICAgLy8gbGlic291cCBzaG91bGQgb21pdCBzZWN1cmUgY29va2ll
cyBpdHNlbGYgaWYgdGhlIHByb3RvY29sIGlzIG5vdCBodHRwcy4KQEAgLTUwOSwyMSArNTM0LDE1
IEBAIHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAgcmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRG
OChjb29raWVIZWFkZXIuZ2V0KCkpLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CiB9CiAKLXN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRP
TShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
LCBTaG91bGRBc2tJVFApIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29u
c3QKIHsKLSAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7Ci0gICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwotICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwotICAgIHJldHVybiBjb29raWVzRm9y
U2Vzc2lvbigqdGhpcywgdXJsLCBmYWxzZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOworICAgIHJl
dHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwgdXJsLCBzYW1lU2l0ZUlu
Zm8sIGZyYW1lSUQsIHBhZ2VJRCwgZmFsc2UsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAot
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzLCBTaG91bGRBc2tJVFApIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzLCBTaG91bGRBc2tJVFApIGNvbnN0CiB7Ci0gICAgVU5VU0VEX1BBUkFN
KGZpcnN0UGFydHkpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKLSAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKICAgICAvLyBTZWN1cmUgY29va2llcyB3aWxsIHN0aWxsIG9ubHkgYmUgaW5j
bHVkZWQgaWYgdXJsJ3MgcHJvdG9jb2wgaXMgaHR0cHMuCi0gICAgcmV0dXJuIGNvb2tpZXNGb3JT
ZXNzaW9uKCp0aGlzLCB1cmwsIHRydWUsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICByZXR1
cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHksIHVybCwgc2FtZVNpdGVJbmZv
LCBmcmFtZUlELCBwYWdlSUQsIHRydWUsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAogc3Rk
OjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYgaGVh
ZGVyRmllbGRQcm94eSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAppbmRleCA5Y2NmYjJk
NmZiY2YwM2MzOTY3MzNkYWJlZWNlNTkwZDJjMzlkNTFmLi4wYTExZTZkZmY0Yjk2NzI3YzQzZWZk
NmMwZTFmZDQyMDBkN2E1YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCkBAIC0xMTAsNiAr
MTEwLDE1IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2FnZU1lbWJlcnMo
U291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKSBjb25zdAogICAgIGlmIChmaXJzdFBhcnR5KQogICAg
ICAgICBzb3VwX21lc3NhZ2Vfc2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlLCBmaXJzdFBhcnR5
LmdldCgpKTsKIAorI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2OSwgOTApCisgICAgaWYgKG1f
c2FtZVNpdGVEaXNwb3NpdGlvbiA9PSBSZXNvdXJjZVJlcXVlc3Q6OlNhbWVTaXRlRGlzcG9zaXRp
b246OlNhbWVTaXRlKSB7CisgICAgICAgIEdVbmlxdWVQdHI8U291cFVSST4gc2l0ZUZvckNvb2tp
ZXMgPSB1cmxUb1NvdXBVUkkobV91cmwpOworICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3NpdGVf
Zm9yX2Nvb2tpZXMoc291cE1lc3NhZ2UsIHNpdGVGb3JDb29raWVzLmdldCgpKTsKKyAgICB9CisK
KyAgICBzb3VwX21lc3NhZ2Vfc2V0X2lzX3RvcF9sZXZlbF9uYXZpZ2F0aW9uKHNvdXBNZXNzYWdl
LCBpc1RvcFNpdGUoKSk7CisjZW5kaWYKKwogICAgIHNvdXBfbWVzc2FnZV9zZXRfZmxhZ3Moc291
cE1lc3NhZ2UsIG1fc291cEZsYWdzKTsKIAogICAgIGlmICghYWNjZXB0RW5jb2RpbmcoKSkKQEAg
LTE3MCw2ICsxNzksMTcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVz
c2FnZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpCiAgICAgaWYgKFNvdXBVUkkqIGZpcnN0UGFy
dHkgPSBzb3VwX21lc3NhZ2VfZ2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlKSkKICAgICAgICAg
bV9maXJzdFBhcnR5Rm9yQ29va2llcyA9IHNvdXBVUklUb1VSTChmaXJzdFBhcnR5KTsKIAorI2lm
IFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2OSwgOTApCisgICAgc2V0SXNUb3BTaXRlKHNvdXBfbWVz
c2FnZV9nZXRfaXNfdG9wX2xldmVsX25hdmlnYXRpb24oc291cE1lc3NhZ2UpKTsKKworICAgIGlm
IChTb3VwVVJJKiBzaXRlRm9yQ29va2llcyA9IHNvdXBfbWVzc2FnZV9nZXRfc2l0ZV9mb3JfY29v
a2llcyhzb3VwTWVzc2FnZSkpCisgICAgICAgIHNldElzU2FtZVNpdGUoYXJlUmVnaXN0cmFibGVE
b21haW5zRXF1YWwoc291cFVSSVRvVVJMKHNpdGVGb3JDb29raWVzKSwgbV91cmwpKTsKKyAgICBl
bHNlCisgICAgICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlvbiA9IFNhbWVTaXRlRGlzcG9zaXRpb246
OlVuc3BlY2lmaWVkOworI2Vsc2UKKyAgICBtX3NhbWVTaXRlRGlzcG9zaXRpb24gPSBTYW1lU2l0
ZURpc3Bvc2l0aW9uOjpVbnNwZWNpZmllZDsKKyNlbmRpZgorCiAgICAgbV9zb3VwRmxhZ3MgPSBz
b3VwX21lc3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlKTsKIAogICAgIC8vIEZJWE1FOiBtX2Fs
bG93Q29va2llcyBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBoZXJlIGFuZCBvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFz
a1NvdXAuY3BwCmluZGV4IDY4MTdmMGRjYzk5ZjdiNzlhMjliODJkYzM2YzdlNTBlOGM1MWQ3YmUu
LjNhNDU5MzZhMDIwYjE4MGQxMzRhMWVmMjk5MGQ1YWQ3N2M1OTQ3MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291
cC5jcHAKQEAgLTY3NSw2ICs2NzUsMjAgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250
aW51ZUhUVFBSZWRpcmVjdGlvbigpCiAgICAgbV9sYXN0SFRUUE1ldGhvZCA9IHJlcXVlc3QuaHR0
cE1ldGhvZCgpOwogICAgIHJlcXVlc3QucmVtb3ZlQ3JlZGVudGlhbHMoKTsKIAorICAgIGlmIChp
c1RvcExldmVsTmF2aWdhdGlvbigpKSB7CisgICAgICAgIHJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZv
ckNvb2tpZXMocmVxdWVzdC51cmwoKSk7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5
MCkKKyAgICAgICAgc291cF9tZXNzYWdlX3NldF9pc190b3BfbGV2ZWxfbmF2aWdhdGlvbihtX3Nv
dXBNZXNzYWdlLmdldCgpLCB0cnVlKTsKKyNlbmRpZgorICAgIH0KKworI2lmIFNPVVBfQ0hFQ0tf
VkVSU0lPTigyLCA2OSwgOTApCisgICAgaWYgKHJlcXVlc3QuaXNTYW1lU2l0ZSgpKSB7CisgICAg
ICAgIEdVbmlxdWVQdHI8U291cFVSST4gcmVxdWVzdFVSSSA9IHVybFRvU291cFVSSShyZXF1ZXN0
LnVybCgpKTsKKyAgICAgICAgc291cF9tZXNzYWdlX3NldF9zaXRlX2Zvcl9jb29raWVzKG1fc291
cE1lc3NhZ2UuZ2V0KCksIHJlcXVlc3RVUkkuZ2V0KCkpOworICAgIH0KKyNlbmRpZgorCiAgICAg
aWYgKGlzQ3Jvc3NPcmlnaW4pIHsKICAgICAgICAgLy8gVGhlIG5ldHdvcmsgbGF5ZXIgbWlnaHQg
Y2Fycnkgb3ZlciBzb21lIGhlYWRlcnMgZnJvbSB0aGUgb3JpZ2luYWwgcmVxdWVzdCB0aGF0CiAg
ICAgICAgIC8vIHdlIHdhbnQgdG8gc3RyaXAgaGVyZSBiZWNhdXNlIHRoZSByZWRpcmVjdCBpcyBj
cm9zcy1vcmlnaW4uCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggNDM1MzdjMmEyMzU3N2I3NjM3NDg1ZmM4NTlmMzkyNTdiZDgwZWQ1Ni4uNDljNWFl
MmNhNDU0NGI2M2JiNGY5MzNjMmE0N2I5ZjI5YTA4OTM5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAyLTA0
ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtd
W1dQRV0gQWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGxpYnNvdXAgdG8gMi42OS45MCBpbiBK
SEJ1aWxkLgorCisgICAgICAgICogZ3RrL2poYnVpbGQubW9kdWxlczoKKyAgICAgICAgKiB3cGUv
amhidWlsZC5tb2R1bGVzOgorCiAyMDIwLTAyLTAzICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUGFzcyBhIGhpbnQgZnJvbSB0aGUgZXh0ZW5zaW9uIHRvIGRl
Y2lkZVBvbGljeUZvclNPQXV0aG9yaXphdGlvbkxvYWRXaXRoQ3VycmVudFBvbGljeQpkaWZmIC0t
Z2l0IGEvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVs
ZXMKaW5kZXggOGY1MDc2YzVhMThkYTVjNThkYzZlMTFiOWFmNTdlYmE0NTJlMTRhNy4uMDA3NDYw
NzY3YjQ4NTQzYTcxMzY1Mzc2MGUxMWYxNDM1ZjA3MTkyMyAxMDA2NDQKLS0tIGEvVG9vbHMvZ3Rr
L2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzCkBAIC01NCw2
ICs1NCw4IEBACiAgICAgICBocmVmPSJodHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMu
cmVkaGF0LmNvbS8iLz4KICAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdu
b21lLm9yZyIKICAgICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0
b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImRvd25sb2FkLmdub21lLm9yZyIKKyAgICAgIGhyZWY9
Imh0dHBzOi8vZG93bmxvYWQuZ25vbWUub3JnL3NvdXJjZXMiLz4KICAgPHJlcG9zaXRvcnkgdHlw
ZT0iZ2l0IiBuYW1lPSJnaXQuZ25vbWUub3JnIgogICAgICAgaHJlZj0iaHR0cHM6Ly9naXQuZ25v
bWUub3JnL2Jyb3dzZS8iLz4KICAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iY2Fp
cm9ncmFwaGljcy5vcmciCkBAIC0yMzgsOSArMjQwLDkgQEAKICAgICAgIDxkZXAgcGFja2FnZT0i
Z2xpYi1uZXR3b3JraW5nIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnBzbCIvPgogICAgIDwv
ZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvbGli
c291cC8yLjY4L2xpYnNvdXAtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjIuNjguMyIKLSAg
ICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6
NTM0YmIwOGUzNWIwZmYzNzAyZjNhZGZkZTg3ZDM0NDFlMjdjMTJmOWY1ZWMzNTFmMDU2ZmUwNGNi
YTAyYmFmYiI+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9saWJzb3VwLzIuNjkvbGlic291cC0ke3Zl
cnNpb259LnRhci54eiIgdmVyc2lvbj0iMi42OS45MCIKKyAgICAgICAgICAgIHJlcG89ImRvd25s
b2FkLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo4ZWQxODA5MmNmYjI3ZDg3
MGE3YzdjNDU5OTJmM2EyMTZiZDIyZGQ2ZmQ2ZDJjOWZiZjFhZGMyZDY5NTdjYWI4Ij4KICAgICA8
L2JyYW5jaD4KICAgPC9tZXNvbj4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9k
dWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggMGNkZTRiNzUyYTM2ZmJjNDFl
ZmIwNTY3OWI3YWI2MmI4NGNjOGIyMS4uMDA3ODQzMTBjZDM1ZDEzODYxODIwY2YyNjM4ODY0OTM4
MTY0NWM5NSAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29s
cy93cGUvamhidWlsZC5tb2R1bGVzCkBAIC0zNyw2ICszNyw4IEBACiAgICAgICBocmVmPSJodHRw
Oi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMucmVkaGF0LmNvbS8iLz4KICAgPHJlcG9zaXRv
cnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21lLm9yZyIKICAgICAgIGhyZWY9Imh0dHA6
Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImRv
d25sb2FkLmdub21lLm9yZyIKKyAgICAgIGhyZWY9Imh0dHBzOi8vZG93bmxvYWQuZ25vbWUub3Jn
L3NvdXJjZXMiLz4KICAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iY2Fpcm9ncmFw
aGljcy5vcmciCiAgICAgICBocmVmPSJodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmciLz4KICAgPHJl
cG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnJlZWRlc2t0b3Aub3JnIgpAQCAtMTAwLDkg
KzEwMiw5IEBACiAgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0d29ya2luZyIvPgogICAgICAg
PGRlcCBwYWNrYWdlPSJsaWJwc2wiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNo
IG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2xpYnNvdXAvMi42OC9saWJzb3VwLSR7dmVyc2lv
bn0udGFyLnh6IiB2ZXJzaW9uPSIyLjY4LjMiCi0gICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUu
b3JnIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjUzNGJiMDhlMzViMGZmMzcwMmYzYWRmZGU4
N2QzNDQxZTI3YzEyZjlmNWVjMzUxZjA1NmZlMDRjYmEwMmJhZmIiPgorICAgIDxicmFuY2ggbW9k
dWxlPSIvbGlic291cC8yLjY5L2xpYnNvdXAtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjIu
NjkuOTAiCisgICAgICAgICAgICByZXBvPSJkb3dubG9hZC5nbm9tZS5vcmciCisgICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6OGVkMTgwOTJjZmIyN2Q4NzBhN2M3YzQ1OTkyZjNhMjE2YmQyMmRkNmZk
NmQyYzlmYmYxYWRjMmQ2OTU3Y2FiOCI+CiAgICAgPC9icmFuY2g+CiAgIDwvbWVzb24+CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBjYmVjMjg1NDlmNTM1MDVjNDU5YzQ1YWJiNGU4NGJjYTA0MjZhZDhiLi5lNGE0ZTdjNGE3
NWY4YzlmZmQxMTYzMTNiMGM5MjU0OGEyNDlmZTlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjAtMDItMDQgIFBhdHJpY2sgR3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBBZGQgc2FtZS1zaXRlIGNvb2tpZSBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxMzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIEdUSy9XUEUgdGVzdCBl
eHBlY3RhdGlvbnMgdG8gcGFzcyBtb3N0IHNhbWUtc2l0ZSBjb29raWUgdGVzdHMKKyAgICAgICAg
bWF0Y2hpbmcgdGhlIEFwcGxlIHBvcnRzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6CisK
IDIwMjAtMDItMDQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IE1lZGlhRGV2aWNlcyBzaG91bGQgaGFuZGxlIGNoYW5nZXMgb2YgaWZyYW1lIGFsbG93IGF0dHJp
YnV0ZSB2YWx1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA4NDkwMjY0YTJiYjllYjcwZjcwOGExNDkxNzkwMjA0MzMyMDYzYmIxLi5mNTY5Y2EwMTQ2NTEy
YTY4MjVhM2RhMGExNjI0ZmFmNDI1YzYyM2QzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNDEzNCw2ICs0MTM0LDggQEAgd2Via2l0Lm9yZy9iLzIwNjg4
NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC12YXJp
YW50LW4KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWZvbnRzL2ZvbnQtdmFyaWFudC1wb3NpdGlvbi5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1mb250cy9xdW90ZWQtZ2VuZXJpYy1pZ25vcmVkLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIAord2Via2l0Lm9yZy9iLzE5NDkzMyBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1z
aXRlL3VzZXItbG9hZC1jcm9zcy1zaXRlLXJlZGlyZWN0LnBocCBbIEZhaWx1cmUgXQorCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2Ygbm9uLWNyYXNoaW5nLCBub24t
Zmxha3kgdGVzdHMgZmFpbGluZwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAg
LTQzMTUsNiArNDMxNyw4IEBAIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3N0YW5kYXJkLWZvbnQtCiB3ZWJraXQub3JnL2Iv
MjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9zdGFu
ZGFyZC1mb250LWZhbWlseS03Lmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3N0YW5kYXJkLWZvbnQt
ZmFtaWx5Lmh0bWwgWyBQYXNzIF0KIAoraHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZSBbIFBh
c3MgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2YgUEFTU0lO
RyB0ZXN0cy4gU2VlIHRvcCBvZiBmaWxlIHdoZXJlIHRvIHB1dCBuZXcgZXhwZWN0YXRpb25zLgog
Iy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3Bl
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWNlMzg1MjdlNmExZDNkMzk1MDg1ZmY2ZTljOWI0ZjYy
NzA1MGQzMS4uMmI1OGE2NWRjM2Q4Y2RjZjY2NjAxMmUxMzA5ZThkY2M1OTc5N2VkMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk0OSw2ICs5NDksOCBA
QCB3ZWJraXQub3JnL2IvMjA0MTE1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9p
bnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfcAogZmFzdC9ncmFkaWVudHMvY29uaWMtZ3JhZGllbnQt
YWxwaGEuaHRtbCBbIFBhc3MgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWltYWdlcy9tdWx0aXBsZS1wb3NpdGlvbi1jb2xvci1zdG9wLWNvbmljLmh0bWwgWyBQYXNz
IF0KIAoraHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZSBbIFBhc3MgXQorCiAjLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyA1LiBURVNUUyBDUkFTSElORwogIy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTIyMDMsNiArMjIwNSw4IEBAIHdlYmtpdC5vcmcvYi8y
MDQ2NzUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL2lt
YWdlLXNtb290CiB3ZWJraXQub3JnL2IvMjA0Njc1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9pbml0aWFsLnJlc2V0
LnBhdHRlcm4uaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwNDY3NSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52
YXMvaW5pdGlhbC5yZXNldC5wYXR0ZXJuLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKK3dlYmtp
dC5vcmcvYi8xOTQ5MzMgaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS91c2VyLWxvYWQtY3Jv
c3Mtc2l0ZS1yZWRpcmVjdC5waHAgWyBGYWlsdXJlIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KICMgID4+IE5PVElDRSA8PAogIyBQbGVhc2Ugc2VlIGd1aWRlbGluZXMgYXQg
dGhlIHRvcCBvZiB0aGlzIGZpbGUgYW5kIHBsYWNlIG5ldyB0ZXN0IGV4cGVjdGF0aW9ucwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389855</attachid>
            <date>2020-02-05 13:06:41 -0800</date>
            <delta_ts>2020-02-06 06:21:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204137-20200205130640.patch</filename>
            <type>text/plain</type>
            <size>24229</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEwZTE0MGI5NDhhYWQz
YTZhMjU1MWVhNzI1ZjIwZDZhZTExMWUyMy4uM2VjOWRkNzJlYzFiNjMwOWJkZjUwMjBmZjk1Yjkw
NDNhMzRiYjEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAyLTA0ICBQYXRy
aWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
QWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQg
aW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTYWZlTWV0aG9kKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2FtZVNpdGVJbmZvOjpjcmVh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU2FtZVNpdGVJbmZvLmg6CisgICAgICAg
IChXZWJDb3JlOjpTYW1lU2l0ZUluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTYW1lU2l0ZUluZm86OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29yZVNhbWVTaXRlUG9saWN5KToK
KyAgICAgICAgKFdlYkNvcmU6OnNvdXBTYW1lU2l0ZVBvbGljeSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb29raWU6OkNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWU6OnRvU291cENvb2tp
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRSYXdDb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0Zv
ckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6CisKIDIw
MjAtMDItMDQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1l
ZGlhRGV2aWNlcyBzaG91bGQgaGFuZGxlIGNoYW5nZXMgb2YgaWZyYW1lIGFsbG93IGF0dHJpYnV0
ZSB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA5MWI5ZTNlZjgzNjVlYWJiODMyNWUyNGZlNjVkYjhhMWUwOTAw
NWZhLi5lYzFjMWE4YzkwNTRiMjU3MDljOWVlZDJiMDMwY2MxZDNjODYwMzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTAyLTA0ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0Bp
Z2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIHNhbWUtc2l0ZSBjb29raWUgc3Vw
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQgaW4gdGhlIHNvdXAgYmFja2VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0
aW9uKToKKwogMjAyMC0wMi0wNCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBbV2luXVtDbGFuZ10gV2ViUHJvY2Vzc01haW4uaCgyOCwxNCk6IGVy
cm9yOiB0b2tlbiBpcyBub3QgYSB2YWxpZCBiaW5hcnkgb3BlcmF0b3IgaW4gYSBwcmVwcm9jZXNz
b3Igc3ViZXhwcmVzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9IVFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmNwcAppbmRleCA2YTJkZWQwZWFkNzQ5OWU0ZmIyMTU1YjJiNDhkNjA4YzIwOTNm
M2UxLi5kMjg0YjYzMzZlNDVmNWRjMzA0OGVhY2Y2NzU4MDEyYjc5ZGM1ZmMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtOTg1LDYg
Kzk4NSwxNyBAQCBTdHJpbmcgbm9ybWFsaXplSFRUUE1ldGhvZChjb25zdCBTdHJpbmcmIG1ldGhv
ZCkKICAgICByZXR1cm4gbWV0aG9kOwogfQogCisvLyBEZWZpbmVkIGJ5IGh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNC4yLjEKK2Jvb2wgaXNTYWZlTWV0aG9kKGNv
bnN0IFN0cmluZyYgbWV0aG9kKQoreworICAgIGNvbnN0IEFTQ0lJTGl0ZXJhbCBzYWZlTWV0aG9k
c1tdID0geyAiR0VUIl9zLCAiSEVBRCJfcywgIk9QVElPTlMiX3MsICJUUkFDRSJfcyB9OworICAg
IGZvciAoYXV0byB2YWx1ZSA6IHNhZmVNZXRob2RzKSB7CisgICAgICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG1ldGhvZCwgdmFsdWUuY2hhcmFjdGVycygpKSkKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIENyb3NzT3JpZ2luUmVz
b3VyY2VQb2xpY3kgcGFyc2VDcm9zc09yaWdpblJlc291cmNlUG9saWN5SGVhZGVyKFN0cmluZ1Zp
ZXcgaGVhZGVyKQogewogICAgIGF1dG8gc3RyaXBwZWRIZWFkZXIgPSBzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUVFBTcGFjZXMoaGVhZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUFBhcnNlcnMuaAppbmRleCA2NmI5ODAyOTkwOWI5ZWM0ZDAwNGE0YWQyODZjYTRl
M2Y2YjNhMWUyLi41ZDhlMjM0M2MwMWI4OWQwMjM1MTRlMGYyMzk3YWI3ZmEyZTQzNDEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCkBAIC0xMDgs
NiArMTA4LDcgQEAgYm9vbCBpc0Nyb3NzT3JpZ2luU2FmZUhlYWRlcihjb25zdCBTdHJpbmcmLCBj
b25zdCBIVFRQSGVhZGVyU2V0Jik7CiBib29sIGlzQ3Jvc3NPcmlnaW5TYWZlUmVxdWVzdEhlYWRl
cihIVFRQSGVhZGVyTmFtZSwgY29uc3QgU3RyaW5nJik7CiAKIFN0cmluZyBub3JtYWxpemVIVFRQ
TWV0aG9kKGNvbnN0IFN0cmluZyYpOworYm9vbCBpc1NhZmVNZXRob2QoY29uc3QgU3RyaW5nJik7
CiAKIFdFQkNPUkVfRVhQT1JUIENyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kgcGFyc2VDcm9zc09y
aWdpblJlc291cmNlUG9saWN5SGVhZGVyKFN0cmluZ1ZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5jcHAKaW5kZXggOWVkYjU2YWJkMTk2
MzM1MGM1ZThhZTJjZjZlNTlhYmY2ODdiNDg5Yy4uOTU5Yjc3MjY5M2E5MTI2ODZiNTA0Mjk3OWU2
NzRlYTQwNDJjMjM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
U2FtZVNpdGVJbmZvLmNwcApAQCAtMjYsMTMgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiU2FtZVNpdGVJbmZvLmgiCiAKKyNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNh
bWVTaXRlSW5mbyBTYW1lU2l0ZUluZm86OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7Ci0gICAgcmV0dXJuIHsgcmVxdWVzdC5pc1NhbWVTaXRlKCksIHJlcXVlc3QuaXNU
b3BTaXRlKCkgfTsKKyAgICByZXR1cm4geyByZXF1ZXN0LmlzU2FtZVNpdGUoKSwgcmVxdWVzdC5p
c1RvcFNpdGUoKSwgaXNTYWZlTWV0aG9kKHJlcXVlc3QuaHR0cE1ldGhvZCgpKSB9OwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uaAppbmRleCBmZWE3NTljN2I1ODNlNDFjNGU5MTY0NDRmYjU1ZjBjZWM5
YTNkOGY4Li5kOGExOTdhY2FkYzA0ODI2Nzg0ODZiZTc2ZTVjZDFiNTFhOTYxZDJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU2FtZVNpdGVJbmZvLmgKQEAgLTM0LDYg
KzM0LDcgQEAgc3RydWN0IFNhbWVTaXRlSW5mbyB7CiAKICAgICBib29sIGlzU2FtZVNpdGUgeyBm
YWxzZSB9OwogICAgIGJvb2wgaXNUb3BTaXRlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzU2FmZUhU
VFBNZXRob2QgeyBmYWxzZSB9OwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTYW1lU2l0ZUluZm8mKTsKQEAgLTQ0LDYgKzQ1LDcg
QEAgdm9pZCBTYW1lU2l0ZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGVuY29kZXIgPDwgaXNTYW1lU2l0ZTsKICAgICBlbmNvZGVyIDw8IGlzVG9wU2l0ZTsKKyAg
ICBlbmNvZGVyIDw8IGlzU2FmZUhUVFBNZXRob2Q7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBEZWNv
ZGVyPgpAQCAtNTMsNiArNTUsOCBAQCBib29sIFNhbWVTaXRlSW5mbzo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFNhbWVTaXRlSW5mbyYgaW5mbykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1RvcFNpdGUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzU2FmZUhUVFBNZXRob2QpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcAppbmRleCBlNDRj
NGFlNjcwNjU0MmQzMGM0ZTczZTIyNTY0MDY3NzMxNTliYWE1Li4xOTViNWY2ODMzZWNhZjViZjRi
MDEzZDMxOTlmOGZjYTc0OWQ3OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZVNvdXAuY3BwCkBAIC0zMiw2ICszMiwzOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQorc3Rh
dGljIENvb2tpZTo6U2FtZVNpdGVQb2xpY3kgY29yZVNhbWVTaXRlUG9saWN5KFNvdXBTYW1lU2l0
ZVBvbGljeSBwb2xpY3kpCit7CisgICAgc3dpdGNoIChwb2xpY3kpIHsKKyAgICBjYXNlIFNPVVBf
U0FNRV9TSVRFX1BPTElDWV9OT05FOgorICAgICAgICByZXR1cm4gQ29va2llOjpTYW1lU2l0ZVBv
bGljeTo6Tm9uZTsKKyAgICBjYXNlIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9MQVg6CisgICAgICAg
IHJldHVybiBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpMYXg7CisgICAgY2FzZSBTT1VQX1NBTUVf
U0lURV9QT0xJQ1lfU1RSSUNUOgorICAgICAgICByZXR1cm4gQ29va2llOjpTYW1lU2l0ZVBvbGlj
eTo6U3RyaWN0OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpOb25lOworfQorCitzdGF0aWMgU291cFNhbWVTaXRl
UG9saWN5IHNvdXBTYW1lU2l0ZVBvbGljeShDb29raWU6OlNhbWVTaXRlUG9saWN5IHBvbGljeSkK
K3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgQ29va2llOjpTYW1lU2l0ZVBvbGlj
eTo6Tm9uZToKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9OT05FOworICAg
IGNhc2UgQ29va2llOjpTYW1lU2l0ZVBvbGljeTo6TGF4OgorICAgICAgICByZXR1cm4gU09VUF9T
QU1FX1NJVEVfUE9MSUNZX0xBWDsKKyAgICBjYXNlIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6OlN0
cmljdDoKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9TVFJJQ1Q7CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRF
X1BPTElDWV9OT05FOworfQorI2VuZGlmCisKIENvb2tpZTo6Q29va2llKFNvdXBDb29raWUqIGNv
b2tpZSkKICAgICA6IG5hbWUoU3RyaW5nOjpmcm9tVVRGOChjb29raWUtPm5hbWUpKQogICAgICwg
dmFsdWUoU3RyaW5nOjpmcm9tVVRGOChjb29raWUtPnZhbHVlKSkKQEAgLTQzLDYgKzc1LDkgQEAg
Q29va2llOjpDb29raWUoU291cENvb2tpZSogY29va2llKQogICAgICwgc2Vzc2lvbighY29va2ll
LT5leHBpcmVzKQogCiB7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBz
YW1lU2l0ZSA9IGNvcmVTYW1lU2l0ZVBvbGljeShzb3VwX2Nvb2tpZV9nZXRfc2FtZV9zaXRlX3Bv
bGljeShjb29raWUpKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgU291cERhdGUqIG1zVG9Tb3VwRGF0
ZShkb3VibGUgbXMpCkBAIC02Niw2ICsxMDEsOSBAQCBTb3VwQ29va2llKiBDb29raWU6OnRvU291
cENvb2tpZSgpIGNvbnN0CiAKICAgICBzb3VwX2Nvb2tpZV9zZXRfaHR0cF9vbmx5KHNvdXBDb29r
aWUsIGh0dHBPbmx5KTsKICAgICBzb3VwX2Nvb2tpZV9zZXRfc2VjdXJlKHNvdXBDb29raWUsIHNl
Y3VyZSk7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBzb3VwX2Nvb2tp
ZV9zZXRfc2FtZV9zaXRlX3BvbGljeShzb3VwQ29va2llLCBzb3VwU2FtZVNpdGVQb2xpY3koc2Ft
ZVNpdGUpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFzZXNzaW9uKSB7CiAgICAgICAgIFNvdXBEYXRl
KiBkYXRlID0gbXNUb1NvdXBEYXRlKGV4cGlyZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCmluZGV4IDk0N2UyM2U1YTIyMTYyZTcxNmI1YTMyMDNmNGJiMjk1NmQ5Nzc0YzAu
LjNlZTc3ZWM1Zjc1OTg1N2M2NzQyNzgwZTg2MDI2OTRlYzFiYTk4NDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQzOSw0NiArNDM5LDcxIEBAIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29t
cGxldGlvbkhhbmRsCiAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi1ib29sIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFz
a0lUUCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91
bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewotICAgIFVOVVNF
RF9QQVJBTShmaXJzdFBhcnR5KTsKKyAgICByYXdDb29raWVzLmNsZWFyKCk7CisKKyNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMo
Zmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdl
SUQpOwotICAgIHJhd0Nvb2tpZXMuY2xlYXIoKTsKKyNlbmRpZgorCiAgICAgR1VuaXF1ZVB0cjxT
b3VwVVJJPiB1cmkgPSB1cmxUb1NvdXBVUkkodXJsKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBH
VW5pcXVlUHRyPFNvdXBVUkk+IGZpcnN0UGFydHlVUkkgPSB1cmxUb1NvdXBVUkkoc2FtZVNpdGVJ
bmZvLmlzU2FtZVNpdGUgPyB1cmwgOiBmaXJzdFBhcnR5KTsKKyAgICBpZiAoIWZpcnN0UGFydHlV
UkkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdVbmlxdWVQdHI8U291cFVSST4gY29v
a2llVVJJID0gc2FtZVNpdGVJbmZvLmlzU2FtZVNpdGUgPyB1cmxUb1NvdXBVUkkodXJsKSA6IG51
bGxwdHI7CisgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dl
dF9jb29raWVfbGlzdF93aXRoX3NhbWVfc2l0ZV9pbmZvKGNvb2tpZVN0b3JhZ2UoKSwgdXJpLmdl
dCgpLCBmaXJzdFBhcnR5VVJJLmdldCgpLCBjb29raWVVUkkuZ2V0KCksIFRSVUUsIHNhbWVTaXRl
SW5mby5pc1NhZmVIVFRQTWV0aG9kLCBzYW1lU2l0ZUluZm8uaXNUb3BTaXRlKSk7CisjZWxzZQog
ICAgIEdVbmlxdWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9nZXRfY29va2ll
X2xpc3QoY29va2llU3RvcmFnZSgpLCB1cmkuZ2V0KCksIFRSVUUpKTsKKyAgICBVTlVTRURfUEFS
QU0oc2FtZVNpdGVJbmZvKTsKKyNlbmRpZgogICAgIGlmICghY29va2llcykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgZm9yIChHU0xpc3QqIGl0ZXIgPSBjb29raWVzLmdldCgpOyBpdGVy
OyBpdGVyID0gZ19zbGlzdF9uZXh0KGl0ZXIpKSB7CiAgICAgICAgIFNvdXBDb29raWUqIHNvdXBD
b29raWUgPSBzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRlci0+ZGF0YSk7Ci0gICAgICAgIENv
b2tpZSBjb29raWU7Ci0gICAgICAgIGNvb2tpZS5uYW1lID0gU3RyaW5nOjpmcm9tVVRGOChzb3Vw
Q29va2llLT5uYW1lKTsKLSAgICAgICAgY29va2llLnZhbHVlID0gU3RyaW5nOjpmcm9tVVRGOChz
b3VwQ29va2llLT52YWx1ZSk7Ci0gICAgICAgIGNvb2tpZS5kb21haW4gPSBTdHJpbmc6OmZyb21V
VEY4KHNvdXBDb29raWUtPmRvbWFpbik7Ci0gICAgICAgIGNvb2tpZS5wYXRoID0gU3RyaW5nOjpm
cm9tVVRGOChzb3VwQ29va2llLT5wYXRoKTsKLSAgICAgICAgY29va2llLmNyZWF0ZWQgPSAwOwot
ICAgICAgICBjb29raWUuZXhwaXJlcyA9IHNvdXBDb29raWUtPmV4cGlyZXMgPyBzdGF0aWNfY2Fz
dDxkb3VibGU+KHNvdXBfZGF0ZV90b190aW1lX3Qoc291cENvb2tpZS0+ZXhwaXJlcykpICogMTAw
MCA6IDA7Ci0gICAgICAgIGNvb2tpZS5odHRwT25seSA9IHNvdXBDb29raWUtPmh0dHBfb25seTsK
LSAgICAgICAgY29va2llLnNlY3VyZSA9IHNvdXBDb29raWUtPnNlY3VyZTsKLSAgICAgICAgY29v
a2llLnNlc3Npb24gPSAhc291cENvb2tpZS0+ZXhwaXJlczsKLSAgICAgICAgcmF3Q29va2llcy5h
cHBlbmQoV1RGTW92ZShjb29raWUpKTsKKyAgICAgICAgcmF3Q29va2llcy5hcHBlbmQoQ29va2ll
KHNvdXBDb29raWUpKTsKICAgICAgICAgc291cF9jb29raWVfZnJlZShzb3VwQ29va2llKTsKICAg
ICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lv
biwgY29uc3QgVVJMJiB1cmwsIGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
Y29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBib29sIGZvckhUVFBIZWFkZXIsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogeworI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisgICAgaWYgKHNlc3Npb24uc2hvdWxkQmxvY2tDb29raWVzKGZpcnN0
UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSkKKyAgICAgICAgcmV0dXJuIHsgeyB9LCBmYWxz
ZSB9OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CisgICAgVU5VU0VEX1BBUkFN
KHBhZ2VJRCk7CisjZW5kaWYKKwogICAgIEdVbmlxdWVQdHI8U291cFVSST4gdXJpID0gdXJsVG9T
b3VwVVJJKHVybCk7CiAgICAgaWYgKCF1cmkpCiAgICAgICAgIHJldHVybiB7IHsgfSwgZmFsc2Ug
fTsKIAorI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2OSwgOTApCisgICAgR1VuaXF1ZVB0cjxT
b3VwVVJJPiBmaXJzdFBhcnR5VVJJID0gdXJsVG9Tb3VwVVJJKGZpcnN0UGFydHkpOworICAgIGlm
ICghZmlyc3RQYXJ0eVVSSSkKKyAgICAgICAgcmV0dXJuIHsgeyB9LCBmYWxzZSB9OworCisgICAg
R1VuaXF1ZVB0cjxTb3VwVVJJPiBjb29raWVVUkkgPSBzYW1lU2l0ZUluZm8uaXNTYW1lU2l0ZSA/
IHVybFRvU291cFVSSSh1cmwpIDogbnVsbHB0cjsKKyAgICBHU0xpc3QqIGNvb2tpZXMgPSBzb3Vw
X2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZV9saXN0X3dpdGhfc2FtZV9zaXRlX2luZm8oc2Vzc2lvbi5j
b29raWVTdG9yYWdlKCksIHVyaS5nZXQoKSwgZmlyc3RQYXJ0eVVSSS5nZXQoKSwgY29va2llVVJJ
LmdldCgpLCBmb3JIVFRQSGVhZGVyLCBzYW1lU2l0ZUluZm8uaXNTYWZlSFRUUE1ldGhvZCwgc2Ft
ZVNpdGVJbmZvLmlzVG9wU2l0ZSk7CisjZWxzZQogICAgIEdTTGlzdCogY29va2llcyA9IHNvdXBf
Y29va2llX2phcl9nZXRfY29va2llX2xpc3Qoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCksIHVyaS5n
ZXQoKSwgZm9ySFRUUEhlYWRlcik7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOworICAg
IFVOVVNFRF9QQVJBTShzYW1lU2l0ZUluZm8pOworI2VuZGlmCiAgICAgYm9vbCBkaWRBY2Nlc3NT
ZWN1cmVDb29raWVzID0gZmFsc2U7CiAKICAgICAvLyBsaWJzb3VwIHNob3VsZCBvbWl0IHNlY3Vy
ZSBjb29raWVzIGl0c2VsZiBpZiB0aGUgcHJvdG9jb2wgaXMgbm90IGh0dHBzLgpAQCAtNTA5LDIx
ICs1MzQsMTUgQEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNz
aW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2UKICAgICByZXR1cm4geyBTdHJpbmc6
OmZyb21VVEY4KGNvb2tpZUhlYWRlci5nZXQoKSksIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsK
IH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNr
SVRQKSBjb25zdAogewotICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKLSAgICBVTlVTRURf
UEFSQU0oZnJhbWVJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7Ci0gICAgcmV0dXJuIGNv
b2tpZXNGb3JTZXNzaW9uKCp0aGlzLCB1cmwsIGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CisgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCB1cmwsIHNh
bWVTaXRlSW5mbywgZnJhbWVJRCwgcGFnZUlELCBmYWxzZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKK3N0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKIHsKLSAgICBVTlVT
RURfUEFSQU0oZmlyc3RQYXJ0eSk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwotICAgIFVO
VVNFRF9QQVJBTShwYWdlSUQpOwogICAgIC8vIFNlY3VyZSBjb29raWVzIHdpbGwgc3RpbGwgb25s
eSBiZSBpbmNsdWRlZCBpZiB1cmwncyBwcm90b2NvbCBpcyBodHRwcy4KLSAgICByZXR1cm4gY29v
a2llc0ZvclNlc3Npb24oKnRoaXMsIHVybCwgdHJ1ZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwor
ICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwgdXJsLCBzYW1l
U2l0ZUluZm8sIGZyYW1lSUQsIHBhZ2VJRCwgdHJ1ZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwog
fQogCiBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFBy
b3h5JiBoZWFkZXJGaWVsZFByb3h5KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4
IDljY2ZiMmQ2ZmJjZjAzYzM5NjczM2RhYmVlY2U1OTBkMmMzOWQ1MWYuLjBhMTFlNmRmZjRiOTY3
MjdjNDNlZmQ2YzBlMWZkNDIwMGQ3YTVhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAg
LTExMCw2ICsxMTAsMTUgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdl
TWVtYmVycyhTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpIGNvbnN0CiAgICAgaWYgKGZpcnN0UGFy
dHkpCiAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UsIGZp
cnN0UGFydHkuZ2V0KCkpOwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAg
ICBpZiAobV9zYW1lU2l0ZURpc3Bvc2l0aW9uID09IFJlc291cmNlUmVxdWVzdDo6U2FtZVNpdGVE
aXNwb3NpdGlvbjo6U2FtZVNpdGUpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBzaXRl
Rm9yQ29va2llcyA9IHVybFRvU291cFVSSShtX3VybCk7CisgICAgICAgIHNvdXBfbWVzc2FnZV9z
ZXRfc2l0ZV9mb3JfY29va2llcyhzb3VwTWVzc2FnZSwgc2l0ZUZvckNvb2tpZXMuZ2V0KCkpOwor
ICAgIH0KKworICAgIHNvdXBfbWVzc2FnZV9zZXRfaXNfdG9wX2xldmVsX25hdmlnYXRpb24oc291
cE1lc3NhZ2UsIGlzVG9wU2l0ZSgpKTsKKyNlbmRpZgorCiAgICAgc291cF9tZXNzYWdlX3NldF9m
bGFncyhzb3VwTWVzc2FnZSwgbV9zb3VwRmxhZ3MpOwogCiAgICAgaWYgKCFhY2NlcHRFbmNvZGlu
ZygpKQpAQCAtMTcwLDYgKzE3OSwxNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJv
bVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKICAgICBpZiAoU291cFVSSSog
Zmlyc3RQYXJ0eSA9IHNvdXBfbWVzc2FnZV9nZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UpKQog
ICAgICAgICBtX2ZpcnN0UGFydHlGb3JDb29raWVzID0gc291cFVSSVRvVVJMKGZpcnN0UGFydHkp
OwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBzZXRJc1RvcFNpdGUo
c291cF9tZXNzYWdlX2dldF9pc190b3BfbGV2ZWxfbmF2aWdhdGlvbihzb3VwTWVzc2FnZSkpOwor
CisgICAgaWYgKFNvdXBVUkkqIHNpdGVGb3JDb29raWVzID0gc291cF9tZXNzYWdlX2dldF9zaXRl
X2Zvcl9jb29raWVzKHNvdXBNZXNzYWdlKSkKKyAgICAgICAgc2V0SXNTYW1lU2l0ZShhcmVSZWdp
c3RyYWJsZURvbWFpbnNFcXVhbChzb3VwVVJJVG9VUkwoc2l0ZUZvckNvb2tpZXMpLCBtX3VybCkp
OworICAgIGVsc2UKKyAgICAgICAgbV9zYW1lU2l0ZURpc3Bvc2l0aW9uID0gU2FtZVNpdGVEaXNw
b3NpdGlvbjo6VW5zcGVjaWZpZWQ7CisjZWxzZQorICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlvbiA9
IFNhbWVTaXRlRGlzcG9zaXRpb246OlVuc3BlY2lmaWVkOworI2VuZGlmCisKICAgICBtX3NvdXBG
bGFncyA9IHNvdXBfbWVzc2FnZV9nZXRfZmxhZ3Moc291cE1lc3NhZ2UpOwogCiAgICAgLy8gRklY
TUU6IG1fYWxsb3dDb29raWVzIHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGhlcmUgYW5kIG9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0Rh
dGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a0RhdGFUYXNrU291cC5jcHAKaW5kZXggNjgxN2YwZGNjOTlmN2I3OWEyOWI4MmRjMzZjN2U1MGU4
YzUxZDdiZS4uM2E0NTkzNmEwMjBiMTgwZDEzNGExZWYyOTkwZDVhZDc3YzU5NDcyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmNwcApAQCAtNjc1LDYgKzY3NSwyMCBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0aW9uKCkKICAgICBtX2xhc3RIVFRQTWV0aG9kID0gcmVx
dWVzdC5odHRwTWV0aG9kKCk7CiAgICAgcmVxdWVzdC5yZW1vdmVDcmVkZW50aWFscygpOwogCisg
ICAgaWYgKGlzVG9wTGV2ZWxOYXZpZ2F0aW9uKCkpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRGaXJz
dFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0LnVybCgpKTsKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04o
MiwgNjksIDkwKQorICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X2lzX3RvcF9sZXZlbF9uYXZpZ2F0
aW9uKG1fc291cE1lc3NhZ2UuZ2V0KCksIHRydWUpOworI2VuZGlmCisgICAgfQorCisjaWYgU09V
UF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBpZiAocmVxdWVzdC5pc1NhbWVTaXRlKCkp
IHsKKyAgICAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiByZXF1ZXN0VVJJID0gdXJsVG9Tb3VwVVJJ
KHJlcXVlc3QudXJsKCkpOworICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3NpdGVfZm9yX2Nvb2tp
ZXMobV9zb3VwTWVzc2FnZS5nZXQoKSwgcmVxdWVzdFVSSS5nZXQoKSk7CisgICAgfQorI2VuZGlm
CisKICAgICBpZiAoaXNDcm9zc09yaWdpbikgewogICAgICAgICAvLyBUaGUgbmV0d29yayBsYXll
ciBtaWdodCBjYXJyeSBvdmVyIHNvbWUgaGVhZGVycyBmcm9tIHRoZSBvcmlnaW5hbCByZXF1ZXN0
IHRoYXQKICAgICAgICAgLy8gd2Ugd2FudCB0byBzdHJpcCBoZXJlIGJlY2F1c2UgdGhlIHJlZGly
ZWN0IGlzIGNyb3NzLW9yaWdpbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA0MzUzN2MyYTIzNTc3Yjc2Mzc0ODVmYzg1OWYzOTI1N2JkODBlZDU2
Li40OWM1YWUyY2E0NTQ0YjYzYmI0ZjkzM2MyYTQ3YjlmMjlhMDg5MzllIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjAtMDItMDQgIFBhdHJpY2sgR3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBBZGQgc2FtZS1zaXRlIGNvb2tpZSBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxMzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgbGlic291cCB0byAyLjY5
LjkwIGluIEpIQnVpbGQuCisKKyAgICAgICAgKiBndGsvamhidWlsZC5tb2R1bGVzOgorICAgICAg
ICAqIHdwZS9qaGJ1aWxkLm1vZHVsZXM6CisKIDIwMjAtMDItMDMgIEppZXdlbiBUYW4gIDxqaWV3
ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXNzIGEgaGludCBmcm9tIHRoZSBleHRlbnNp
b24gdG8gZGVjaWRlUG9saWN5Rm9yU09BdXRob3JpemF0aW9uTG9hZFdpdGhDdXJyZW50UG9saWN5
CmRpZmYgLS1naXQgYS9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvZ3RrL2poYnVp
bGQubW9kdWxlcwppbmRleCA4ZjUwNzZjNWExOGRhNWM1OGRjNmUxMWI5YWY1N2ViYTQ1MmUxNGE3
Li4wMDc0NjA3NjdiNDg1NDNhNzEzNjUzNzYwZTExZjE0MzVmMDcxOTIzIDEwMDY0NAotLS0gYS9U
b29scy9ndGsvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMK
QEAgLTU0LDYgKzU0LDggQEAKICAgICAgIGhyZWY9Imh0dHA6Ly9taXJyb3JzLmtlcm5lbC5vcmcv
c291cmNlcy5yZWRoYXQuY29tLyIvPgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1l
PSJmdHAuZ25vbWUub3JnIgogICAgICAgaHJlZj0iaHR0cDovL2Z0cC5nbm9tZS5vcmciLz4KKyAg
PHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZG93bmxvYWQuZ25vbWUub3JnIgorICAg
ICAgaHJlZj0iaHR0cHM6Ly9kb3dubG9hZC5nbm9tZS5vcmcvc291cmNlcyIvPgogICA8cmVwb3Np
dG9yeSB0eXBlPSJnaXQiIG5hbWU9ImdpdC5nbm9tZS5vcmciCiAgICAgICBocmVmPSJodHRwczov
L2dpdC5nbm9tZS5vcmcvYnJvd3NlLyIvPgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBu
YW1lPSJjYWlyb2dyYXBoaWNzLm9yZyIKQEAgLTIzOCw5ICsyNDAsOSBAQAogICAgICAgPGRlcCBw
YWNrYWdlPSJnbGliLW5ldHdvcmtpbmciLz4KICAgICAgIDxkZXAgcGFja2FnZT0ibGlicHNsIi8+
CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291
cmNlcy9saWJzb3VwLzIuNjgvbGlic291cC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMi42
OC4zIgotICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKLSAgICAgICAgICAgIGhhc2g9
InNoYTI1Njo1MzRiYjA4ZTM1YjBmZjM3MDJmM2FkZmRlODdkMzQ0MWUyN2MxMmY5ZjVlYzM1MWYw
NTZmZTA0Y2JhMDJiYWZiIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL2xpYnNvdXAvMi42OS9saWJz
b3VwLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIyLjY5LjkwIgorICAgICAgICAgICAgcmVw
bz0iZG93bmxvYWQuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjhlZDE4MDky
Y2ZiMjdkODcwYTdjN2M0NTk5MmYzYTIxNmJkMjJkZDZmZDZkMmM5ZmJmMWFkYzJkNjk1N2NhYjgi
PgogICAgIDwvYnJhbmNoPgogICA8L21lc29uPgogCmRpZmYgLS1naXQgYS9Ub29scy93cGUvamhi
dWlsZC5tb2R1bGVzIGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwppbmRleCAwY2RlNGI3NTJh
MzZmYmM0MWVmYjA1Njc5YjdhYjYyYjg0Y2M4YjIxLi4wMDc4NDMxMGNkMzVkMTM4NjE4MjBjZjI2
Mzg4NjQ5MzgxNjQ1Yzk1IDEwMDY0NAotLS0gYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCisr
KyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTM3LDYgKzM3LDggQEAKICAgICAgIGhy
ZWY9Imh0dHA6Ly9taXJyb3JzLmtlcm5lbC5vcmcvc291cmNlcy5yZWRoYXQuY29tLyIvPgogICA8
cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmdHAuZ25vbWUub3JnIgogICAgICAgaHJl
Zj0iaHR0cDovL2Z0cC5nbm9tZS5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIg
bmFtZT0iZG93bmxvYWQuZ25vbWUub3JnIgorICAgICAgaHJlZj0iaHR0cHM6Ly9kb3dubG9hZC5n
bm9tZS5vcmcvc291cmNlcyIvPgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJj
YWlyb2dyYXBoaWNzLm9yZyIKICAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyIv
PgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3RvcC5vcmciCkBA
IC0xMDAsOSArMTAyLDkgQEAKICAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+
CiAgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnBzbCIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAg
IDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvbGlic291cC8yLjY4L2xpYnNvdXAt
JHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjIuNjguMyIKLSAgICAgICAgICAgIHJlcG89ImZ0
cC5nbm9tZS5vcmciCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6NTM0YmIwOGUzNWIwZmYzNzAy
ZjNhZGZkZTg3ZDM0NDFlMjdjMTJmOWY1ZWMzNTFmMDU2ZmUwNGNiYTAyYmFmYiI+CisgICAgPGJy
YW5jaCBtb2R1bGU9Ii9saWJzb3VwLzIuNjkvbGlic291cC0ke3ZlcnNpb259LnRhci54eiIgdmVy
c2lvbj0iMi42OS45MCIKKyAgICAgICAgICAgIHJlcG89ImRvd25sb2FkLmdub21lLm9yZyIKKyAg
ICAgICAgICAgIGhhc2g9InNoYTI1Njo4ZWQxODA5MmNmYjI3ZDg3MGE3YzdjNDU5OTJmM2EyMTZi
ZDIyZGQ2ZmQ2ZDJjOWZiZjFhZGMyZDY5NTdjYWI4Ij4KICAgICA8L2JyYW5jaD4KICAgPC9tZXNv
bj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGNiZWMyODU0OWY1MzUwNWM0NTljNDVhYmI0ZTg0YmNhMDQyNmFkOGIuLmU0
YTRlN2M0YTc1ZjhjOWZmZDExNjMxM2IwYzkyNTQ4YTI0OWZlOWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMC0wMi0wNCAgUGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXVtXUEVdIEFkZCBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDEzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgR1RLL1dQ
RSB0ZXN0IGV4cGVjdGF0aW9ucyB0byBwYXNzIG1vc3Qgc2FtZS1zaXRlIGNvb2tpZSB0ZXN0cwor
ICAgICAgICBtYXRjaGluZyB0aGUgQXBwbGUgcG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAyMC0wMi0wNCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWVkaWFEZXZpY2VzIHNob3VsZCBoYW5kbGUgY2hhbmdlcyBvZiBpZnJhbWUgYWxs
b3cgYXR0cmlidXRlIHZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDg0OTAyNjRhMmJiOWViNzBmNzA4YTE0OTE3OTAyMDQzMzIwNjNiYjEuLmY1Njlj
YTAxNDY1MTJhNjgyNWEzZGEwYTE2MjRmYWY0MjVjNjIzZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC00MTM0LDYgKzQxMzQsOCBAQCB3ZWJraXQub3Jn
L2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9m
b250LXZhcmlhbnQtbgogd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC12YXJpYW50LXBvc2l0aW9uLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3F1b3RlZC1nZW5lcmljLWlnbm9yZWQuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMTk0OTMzIGh0dHAvdGVzdHMvY29va2ll
cy9zYW1lLXNpdGUvdXNlci1sb2FkLWNyb3NzLXNpdGUtcmVkaXJlY3QucGhwIFsgRmFpbHVyZSBd
CisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBub24tY3Jhc2hp
bmcsIG5vbi1mbGFreSB0ZXN0cyBmYWlsaW5nCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwpAQCAtNDMxNSw2ICs0MzE3LDggQEAgd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvc3RhbmRhcmQtZm9udC0KIHdlYmtp
dC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZv
bnRzL3N0YW5kYXJkLWZvbnQtZmFtaWx5LTcuaHRtbCBbIFBhc3MgXQogd2Via2l0Lm9yZy9iLzIw
Njg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvc3RhbmRh
cmQtZm9udC1mYW1pbHkuaHRtbCBbIFBhc3MgXQogCitodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1z
aXRlIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBv
ZiBQQVNTSU5HIHRlc3RzLiBTZWUgdG9wIG9mIGZpbGUgd2hlcmUgdG8gcHV0IG5ldyBleHBlY3Rh
dGlvbnMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1Y2UzODUyN2U2YTFkM2QzOTUwODVmZjZl
OWM5YjRmNjI3MDUwZDMxLi4yYjU4YTY1ZGMzZDhjZGNmNjY2MDEyZTEzMDllOGRjYzU5Nzk3ZWQx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTQ5LDYg
Kzk0OSw4IEBAIHdlYmtpdC5vcmcvYi8yMDQxMTUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF9wCiBmYXN0L2dyYWRpZW50cy9jb25pYy1n
cmFkaWVudC1hbHBoYS5odG1sIFsgUGFzcyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtaW1hZ2VzL211bHRpcGxlLXBvc2l0aW9uLWNvbG9yLXN0b3AtY29uaWMuaHRt
bCBbIFBhc3MgXQogCitodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlIFsgUGFzcyBdCisKICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIDUuIFRFU1RTIENSQVNISU5HCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjIwMyw2ICsyMjA1LDggQEAgd2Via2l0
Lm9yZy9iLzIwNDY3NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1j
YW52YXMvaW1hZ2Utc21vb3QKIHdlYmtpdC5vcmcvYi8yMDQ2NzUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL2luaXRp
YWwucmVzZXQucGF0dGVybi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA0Njc1IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9pbml0aWFsLnJlc2V0LnBhdHRlcm4ud29ya2VyLmh0bWwgWyBGYWlsdXJlIF0K
IAord2Via2l0Lm9yZy9iLzE5NDkzMyBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3VzZXIt
bG9hZC1jcm9zcy1zaXRlLXJlZGlyZWN0LnBocCBbIEZhaWx1cmUgXQorCiAjLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogIyAgPj4gTk9USUNFIDw8CiAjIFBsZWFzZSBzZWUgZ3VpZGVs
aW5lcyBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZSBhbmQgcGxhY2UgbmV3IHRlc3QgZXhwZWN0YXRp
b25zCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389945</attachid>
            <date>2020-02-06 06:21:11 -0800</date>
            <delta_ts>2020-02-07 01:39:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204137-20200206062110.patch</filename>
            <type>text/plain</type>
            <size>24229</size>
            <attacher name="Patrick Griffis">pgriffis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEwZTE0MGI5NDhhYWQz
YTZhMjU1MWVhNzI1ZjIwZDZhZTExMWUyMy4uM2VjOWRkNzJlYzFiNjMwOWJkZjUwMjBmZjk1Yjkw
NDNhMzRiYjEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAyLTA0ICBQYXRy
aWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
QWRkIHNhbWUtc2l0ZSBjb29raWUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQg
aW4gdGhlIHNvdXAgYmFja2VuZC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTYWZlTWV0aG9kKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2FtZVNpdGVJbmZvOjpjcmVh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU2FtZVNpdGVJbmZvLmg6CisgICAgICAg
IChXZWJDb3JlOjpTYW1lU2l0ZUluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTYW1lU2l0ZUluZm86OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29yZVNhbWVTaXRlUG9saWN5KToK
KyAgICAgICAgKFdlYkNvcmU6OnNvdXBTYW1lU2l0ZVBvbGljeSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb29raWU6OkNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWU6OnRvU291cENvb2tp
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRSYXdDb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0Zv
ckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6CisKIDIw
MjAtMDItMDQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1l
ZGlhRGV2aWNlcyBzaG91bGQgaGFuZGxlIGNoYW5nZXMgb2YgaWZyYW1lIGFsbG93IGF0dHJpYnV0
ZSB2YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA5MWI5ZTNlZjgzNjVlYWJiODMyNWUyNGZlNjVkYjhhMWUwOTAw
NWZhLi5lYzFjMWE4YzkwNTRiMjU3MDljOWVlZDJiMDMwY2MxZDNjODYwMzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTAyLTA0ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0Bp
Z2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIHNhbWUtc2l0ZSBjb29raWUgc3Vw
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50cyBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQgaW4gdGhlIHNvdXAgYmFja2VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0
aW9uKToKKwogMjAyMC0wMi0wNCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBbV2luXVtDbGFuZ10gV2ViUHJvY2Vzc01haW4uaCgyOCwxNCk6IGVy
cm9yOiB0b2tlbiBpcyBub3QgYSB2YWxpZCBiaW5hcnkgb3BlcmF0b3IgaW4gYSBwcmVwcm9jZXNz
b3Igc3ViZXhwcmVzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9IVFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmNwcAppbmRleCA2YTJkZWQwZWFkNzQ5OWU0ZmIyMTU1YjJiNDhkNjA4YzIwOTNm
M2UxLi5kMjg0YjYzMzZlNDVmNWRjMzA0OGVhY2Y2NzU4MDEyYjc5ZGM1ZmMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtOTg1LDYg
Kzk4NSwxNyBAQCBTdHJpbmcgbm9ybWFsaXplSFRUUE1ldGhvZChjb25zdCBTdHJpbmcmIG1ldGhv
ZCkKICAgICByZXR1cm4gbWV0aG9kOwogfQogCisvLyBEZWZpbmVkIGJ5IGh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNC4yLjEKK2Jvb2wgaXNTYWZlTWV0aG9kKGNv
bnN0IFN0cmluZyYgbWV0aG9kKQoreworICAgIGNvbnN0IEFTQ0lJTGl0ZXJhbCBzYWZlTWV0aG9k
c1tdID0geyAiR0VUIl9zLCAiSEVBRCJfcywgIk9QVElPTlMiX3MsICJUUkFDRSJfcyB9OworICAg
IGZvciAoYXV0byB2YWx1ZSA6IHNhZmVNZXRob2RzKSB7CisgICAgICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG1ldGhvZCwgdmFsdWUuY2hhcmFjdGVycygpKSkKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIENyb3NzT3JpZ2luUmVz
b3VyY2VQb2xpY3kgcGFyc2VDcm9zc09yaWdpblJlc291cmNlUG9saWN5SGVhZGVyKFN0cmluZ1Zp
ZXcgaGVhZGVyKQogewogICAgIGF1dG8gc3RyaXBwZWRIZWFkZXIgPSBzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUVFBTcGFjZXMoaGVhZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUFBhcnNlcnMuaAppbmRleCA2NmI5ODAyOTkwOWI5ZWM0ZDAwNGE0YWQyODZjYTRl
M2Y2YjNhMWUyLi41ZDhlMjM0M2MwMWI4OWQwMjM1MTRlMGYyMzk3YWI3ZmEyZTQzNDEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCkBAIC0xMDgs
NiArMTA4LDcgQEAgYm9vbCBpc0Nyb3NzT3JpZ2luU2FmZUhlYWRlcihjb25zdCBTdHJpbmcmLCBj
b25zdCBIVFRQSGVhZGVyU2V0Jik7CiBib29sIGlzQ3Jvc3NPcmlnaW5TYWZlUmVxdWVzdEhlYWRl
cihIVFRQSGVhZGVyTmFtZSwgY29uc3QgU3RyaW5nJik7CiAKIFN0cmluZyBub3JtYWxpemVIVFRQ
TWV0aG9kKGNvbnN0IFN0cmluZyYpOworYm9vbCBpc1NhZmVNZXRob2QoY29uc3QgU3RyaW5nJik7
CiAKIFdFQkNPUkVfRVhQT1JUIENyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3kgcGFyc2VDcm9zc09y
aWdpblJlc291cmNlUG9saWN5SGVhZGVyKFN0cmluZ1ZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5jcHAKaW5kZXggOWVkYjU2YWJkMTk2
MzM1MGM1ZThhZTJjZjZlNTlhYmY2ODdiNDg5Yy4uOTU5Yjc3MjY5M2E5MTI2ODZiNTA0Mjk3OWU2
NzRlYTQwNDJjMjM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
U2FtZVNpdGVJbmZvLmNwcApAQCAtMjYsMTMgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiU2FtZVNpdGVJbmZvLmgiCiAKKyNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNh
bWVTaXRlSW5mbyBTYW1lU2l0ZUluZm86OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7Ci0gICAgcmV0dXJuIHsgcmVxdWVzdC5pc1NhbWVTaXRlKCksIHJlcXVlc3QuaXNU
b3BTaXRlKCkgfTsKKyAgICByZXR1cm4geyByZXF1ZXN0LmlzU2FtZVNpdGUoKSwgcmVxdWVzdC5p
c1RvcFNpdGUoKSwgaXNTYWZlTWV0aG9kKHJlcXVlc3QuaHR0cE1ldGhvZCgpKSB9OwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uaAppbmRleCBmZWE3NTljN2I1ODNlNDFjNGU5MTY0NDRmYjU1ZjBjZWM5
YTNkOGY4Li5kOGExOTdhY2FkYzA0ODI2Nzg0ODZiZTc2ZTVjZDFiNTFhOTYxZDJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU2FtZVNpdGVJbmZvLmgKQEAgLTM0LDYg
KzM0LDcgQEAgc3RydWN0IFNhbWVTaXRlSW5mbyB7CiAKICAgICBib29sIGlzU2FtZVNpdGUgeyBm
YWxzZSB9OwogICAgIGJvb2wgaXNUb3BTaXRlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzU2FmZUhU
VFBNZXRob2QgeyBmYWxzZSB9OwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTYW1lU2l0ZUluZm8mKTsKQEAgLTQ0LDYgKzQ1LDcg
QEAgdm9pZCBTYW1lU2l0ZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGVuY29kZXIgPDwgaXNTYW1lU2l0ZTsKICAgICBlbmNvZGVyIDw8IGlzVG9wU2l0ZTsKKyAg
ICBlbmNvZGVyIDw8IGlzU2FmZUhUVFBNZXRob2Q7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBEZWNv
ZGVyPgpAQCAtNTMsNiArNTUsOCBAQCBib29sIFNhbWVTaXRlSW5mbzo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFNhbWVTaXRlSW5mbyYgaW5mbykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1RvcFNpdGUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzU2FmZUhUVFBNZXRob2QpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVTb3VwLmNwcAppbmRleCBlNDRj
NGFlNjcwNjU0MmQzMGM0ZTczZTIyNTY0MDY3NzMxNTliYWE1Li4xOTViNWY2ODMzZWNhZjViZjRi
MDEzZDMxOTlmOGZjYTc0OWQ3OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZVNvdXAuY3BwCkBAIC0zMiw2ICszMiwzOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQorc3Rh
dGljIENvb2tpZTo6U2FtZVNpdGVQb2xpY3kgY29yZVNhbWVTaXRlUG9saWN5KFNvdXBTYW1lU2l0
ZVBvbGljeSBwb2xpY3kpCit7CisgICAgc3dpdGNoIChwb2xpY3kpIHsKKyAgICBjYXNlIFNPVVBf
U0FNRV9TSVRFX1BPTElDWV9OT05FOgorICAgICAgICByZXR1cm4gQ29va2llOjpTYW1lU2l0ZVBv
bGljeTo6Tm9uZTsKKyAgICBjYXNlIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9MQVg6CisgICAgICAg
IHJldHVybiBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpMYXg7CisgICAgY2FzZSBTT1VQX1NBTUVf
U0lURV9QT0xJQ1lfU1RSSUNUOgorICAgICAgICByZXR1cm4gQ29va2llOjpTYW1lU2l0ZVBvbGlj
eTo6U3RyaWN0OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBDb29raWU6OlNhbWVTaXRlUG9saWN5OjpOb25lOworfQorCitzdGF0aWMgU291cFNhbWVTaXRl
UG9saWN5IHNvdXBTYW1lU2l0ZVBvbGljeShDb29raWU6OlNhbWVTaXRlUG9saWN5IHBvbGljeSkK
K3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgQ29va2llOjpTYW1lU2l0ZVBvbGlj
eTo6Tm9uZToKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9OT05FOworICAg
IGNhc2UgQ29va2llOjpTYW1lU2l0ZVBvbGljeTo6TGF4OgorICAgICAgICByZXR1cm4gU09VUF9T
QU1FX1NJVEVfUE9MSUNZX0xBWDsKKyAgICBjYXNlIENvb2tpZTo6U2FtZVNpdGVQb2xpY3k6OlN0
cmljdDoKKyAgICAgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRFX1BPTElDWV9TVFJJQ1Q7CisgICAg
fQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNPVVBfU0FNRV9TSVRF
X1BPTElDWV9OT05FOworfQorI2VuZGlmCisKIENvb2tpZTo6Q29va2llKFNvdXBDb29raWUqIGNv
b2tpZSkKICAgICA6IG5hbWUoU3RyaW5nOjpmcm9tVVRGOChjb29raWUtPm5hbWUpKQogICAgICwg
dmFsdWUoU3RyaW5nOjpmcm9tVVRGOChjb29raWUtPnZhbHVlKSkKQEAgLTQzLDYgKzc1LDkgQEAg
Q29va2llOjpDb29raWUoU291cENvb2tpZSogY29va2llKQogICAgICwgc2Vzc2lvbighY29va2ll
LT5leHBpcmVzKQogCiB7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBz
YW1lU2l0ZSA9IGNvcmVTYW1lU2l0ZVBvbGljeShzb3VwX2Nvb2tpZV9nZXRfc2FtZV9zaXRlX3Bv
bGljeShjb29raWUpKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgU291cERhdGUqIG1zVG9Tb3VwRGF0
ZShkb3VibGUgbXMpCkBAIC02Niw2ICsxMDEsOSBAQCBTb3VwQ29va2llKiBDb29raWU6OnRvU291
cENvb2tpZSgpIGNvbnN0CiAKICAgICBzb3VwX2Nvb2tpZV9zZXRfaHR0cF9vbmx5KHNvdXBDb29r
aWUsIGh0dHBPbmx5KTsKICAgICBzb3VwX2Nvb2tpZV9zZXRfc2VjdXJlKHNvdXBDb29raWUsIHNl
Y3VyZSk7CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBzb3VwX2Nvb2tp
ZV9zZXRfc2FtZV9zaXRlX3BvbGljeShzb3VwQ29va2llLCBzb3VwU2FtZVNpdGVQb2xpY3koc2Ft
ZVNpdGUpKTsKKyNlbmRpZgogCiAgICAgaWYgKCFzZXNzaW9uKSB7CiAgICAgICAgIFNvdXBEYXRl
KiBkYXRlID0gbXNUb1NvdXBEYXRlKGV4cGlyZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCmluZGV4IDk0N2UyM2U1YTIyMTYyZTcxNmI1YTMyMDNmNGJiMjk1NmQ5Nzc0YzAu
LjNlZTc3ZWM1Zjc1OTg1N2M2NzQyNzgwZTg2MDI2OTRlYzFiYTk4NDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQzOSw0NiArNDM5LDcxIEBAIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpoYXNDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29t
cGxldGlvbkhhbmRsCiAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi1ib29sIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFz
a0lUUCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91
bGRBc2tJVFAsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewotICAgIFVOVVNF
RF9QQVJBTShmaXJzdFBhcnR5KTsKKyAgICByYXdDb29raWVzLmNsZWFyKCk7CisKKyNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMo
Zmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdl
SUQpOwotICAgIHJhd0Nvb2tpZXMuY2xlYXIoKTsKKyNlbmRpZgorCiAgICAgR1VuaXF1ZVB0cjxT
b3VwVVJJPiB1cmkgPSB1cmxUb1NvdXBVUkkodXJsKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBH
VW5pcXVlUHRyPFNvdXBVUkk+IGZpcnN0UGFydHlVUkkgPSB1cmxUb1NvdXBVUkkoc2FtZVNpdGVJ
bmZvLmlzU2FtZVNpdGUgPyB1cmwgOiBmaXJzdFBhcnR5KTsKKyAgICBpZiAoIWZpcnN0UGFydHlV
UkkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdVbmlxdWVQdHI8U291cFVSST4gY29v
a2llVVJJID0gc2FtZVNpdGVJbmZvLmlzU2FtZVNpdGUgPyB1cmxUb1NvdXBVUkkodXJsKSA6IG51
bGxwdHI7CisgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dl
dF9jb29raWVfbGlzdF93aXRoX3NhbWVfc2l0ZV9pbmZvKGNvb2tpZVN0b3JhZ2UoKSwgdXJpLmdl
dCgpLCBmaXJzdFBhcnR5VVJJLmdldCgpLCBjb29raWVVUkkuZ2V0KCksIFRSVUUsIHNhbWVTaXRl
SW5mby5pc1NhZmVIVFRQTWV0aG9kLCBzYW1lU2l0ZUluZm8uaXNUb3BTaXRlKSk7CisjZWxzZQog
ICAgIEdVbmlxdWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9nZXRfY29va2ll
X2xpc3QoY29va2llU3RvcmFnZSgpLCB1cmkuZ2V0KCksIFRSVUUpKTsKKyAgICBVTlVTRURfUEFS
QU0oc2FtZVNpdGVJbmZvKTsKKyNlbmRpZgogICAgIGlmICghY29va2llcykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgZm9yIChHU0xpc3QqIGl0ZXIgPSBjb29raWVzLmdldCgpOyBpdGVy
OyBpdGVyID0gZ19zbGlzdF9uZXh0KGl0ZXIpKSB7CiAgICAgICAgIFNvdXBDb29raWUqIHNvdXBD
b29raWUgPSBzdGF0aWNfY2FzdDxTb3VwQ29va2llKj4oaXRlci0+ZGF0YSk7Ci0gICAgICAgIENv
b2tpZSBjb29raWU7Ci0gICAgICAgIGNvb2tpZS5uYW1lID0gU3RyaW5nOjpmcm9tVVRGOChzb3Vw
Q29va2llLT5uYW1lKTsKLSAgICAgICAgY29va2llLnZhbHVlID0gU3RyaW5nOjpmcm9tVVRGOChz
b3VwQ29va2llLT52YWx1ZSk7Ci0gICAgICAgIGNvb2tpZS5kb21haW4gPSBTdHJpbmc6OmZyb21V
VEY4KHNvdXBDb29raWUtPmRvbWFpbik7Ci0gICAgICAgIGNvb2tpZS5wYXRoID0gU3RyaW5nOjpm
cm9tVVRGOChzb3VwQ29va2llLT5wYXRoKTsKLSAgICAgICAgY29va2llLmNyZWF0ZWQgPSAwOwot
ICAgICAgICBjb29raWUuZXhwaXJlcyA9IHNvdXBDb29raWUtPmV4cGlyZXMgPyBzdGF0aWNfY2Fz
dDxkb3VibGU+KHNvdXBfZGF0ZV90b190aW1lX3Qoc291cENvb2tpZS0+ZXhwaXJlcykpICogMTAw
MCA6IDA7Ci0gICAgICAgIGNvb2tpZS5odHRwT25seSA9IHNvdXBDb29raWUtPmh0dHBfb25seTsK
LSAgICAgICAgY29va2llLnNlY3VyZSA9IHNvdXBDb29raWUtPnNlY3VyZTsKLSAgICAgICAgY29v
a2llLnNlc3Npb24gPSAhc291cENvb2tpZS0+ZXhwaXJlczsKLSAgICAgICAgcmF3Q29va2llcy5h
cHBlbmQoV1RGTW92ZShjb29raWUpKTsKKyAgICAgICAgcmF3Q29va2llcy5hcHBlbmQoQ29va2ll
KHNvdXBDb29raWUpKTsKICAgICAgICAgc291cF9jb29raWVfZnJlZShzb3VwQ29va2llKTsKICAg
ICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lv
biwgY29uc3QgVVJMJiB1cmwsIGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
Y29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBib29sIGZvckhUVFBIZWFkZXIsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogeworI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisgICAgaWYgKHNlc3Npb24uc2hvdWxkQmxvY2tDb29raWVzKGZpcnN0
UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSkKKyAgICAgICAgcmV0dXJuIHsgeyB9LCBmYWxz
ZSB9OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CisgICAgVU5VU0VEX1BBUkFN
KHBhZ2VJRCk7CisjZW5kaWYKKwogICAgIEdVbmlxdWVQdHI8U291cFVSST4gdXJpID0gdXJsVG9T
b3VwVVJJKHVybCk7CiAgICAgaWYgKCF1cmkpCiAgICAgICAgIHJldHVybiB7IHsgfSwgZmFsc2Ug
fTsKIAorI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA2OSwgOTApCisgICAgR1VuaXF1ZVB0cjxT
b3VwVVJJPiBmaXJzdFBhcnR5VVJJID0gdXJsVG9Tb3VwVVJJKGZpcnN0UGFydHkpOworICAgIGlm
ICghZmlyc3RQYXJ0eVVSSSkKKyAgICAgICAgcmV0dXJuIHsgeyB9LCBmYWxzZSB9OworCisgICAg
R1VuaXF1ZVB0cjxTb3VwVVJJPiBjb29raWVVUkkgPSBzYW1lU2l0ZUluZm8uaXNTYW1lU2l0ZSA/
IHVybFRvU291cFVSSSh1cmwpIDogbnVsbHB0cjsKKyAgICBHU0xpc3QqIGNvb2tpZXMgPSBzb3Vw
X2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZV9saXN0X3dpdGhfc2FtZV9zaXRlX2luZm8oc2Vzc2lvbi5j
b29raWVTdG9yYWdlKCksIHVyaS5nZXQoKSwgZmlyc3RQYXJ0eVVSSS5nZXQoKSwgY29va2llVVJJ
LmdldCgpLCBmb3JIVFRQSGVhZGVyLCBzYW1lU2l0ZUluZm8uaXNTYWZlSFRUUE1ldGhvZCwgc2Ft
ZVNpdGVJbmZvLmlzVG9wU2l0ZSk7CisjZWxzZQogICAgIEdTTGlzdCogY29va2llcyA9IHNvdXBf
Y29va2llX2phcl9nZXRfY29va2llX2xpc3Qoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCksIHVyaS5n
ZXQoKSwgZm9ySFRUUEhlYWRlcik7CisgICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOworICAg
IFVOVVNFRF9QQVJBTShzYW1lU2l0ZUluZm8pOworI2VuZGlmCiAgICAgYm9vbCBkaWRBY2Nlc3NT
ZWN1cmVDb29raWVzID0gZmFsc2U7CiAKICAgICAvLyBsaWJzb3VwIHNob3VsZCBvbWl0IHNlY3Vy
ZSBjb29raWVzIGl0c2VsZiBpZiB0aGUgcHJvdG9jb2wgaXMgbm90IGh0dHBzLgpAQCAtNTA5LDIx
ICs1MzQsMTUgQEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNz
aW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2UKICAgICByZXR1cm4geyBTdHJpbmc6
OmZyb21VVEY4KGNvb2tpZUhlYWRlci5nZXQoKSksIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsK
IH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgU2hvdWxkQXNr
SVRQKSBjb25zdAogewotICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKLSAgICBVTlVTRURf
UEFSQU0oZnJhbWVJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7Ci0gICAgcmV0dXJuIGNv
b2tpZXNGb3JTZXNzaW9uKCp0aGlzLCB1cmwsIGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CisgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCB1cmwsIHNh
bWVTaXRlSW5mbywgZnJhbWVJRCwgcGFnZUlELCBmYWxzZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKK3N0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUCkgY29uc3QKIHsKLSAgICBVTlVT
RURfUEFSQU0oZmlyc3RQYXJ0eSk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwotICAgIFVO
VVNFRF9QQVJBTShwYWdlSUQpOwogICAgIC8vIFNlY3VyZSBjb29raWVzIHdpbGwgc3RpbGwgb25s
eSBiZSBpbmNsdWRlZCBpZiB1cmwncyBwcm90b2NvbCBpcyBodHRwcy4KLSAgICByZXR1cm4gY29v
a2llc0ZvclNlc3Npb24oKnRoaXMsIHVybCwgdHJ1ZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwor
ICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwgdXJsLCBzYW1l
U2l0ZUluZm8sIGZyYW1lSUQsIHBhZ2VJRCwgdHJ1ZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwog
fQogCiBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFBy
b3h5JiBoZWFkZXJGaWVsZFByb3h5KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4
IDljY2ZiMmQ2ZmJjZjAzYzM5NjczM2RhYmVlY2U1OTBkMmMzOWQ1MWYuLjBhMTFlNmRmZjRiOTY3
MjdjNDNlZmQ2YzBlMWZkNDIwMGQ3YTVhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKQEAg
LTExMCw2ICsxMTAsMTUgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdl
TWVtYmVycyhTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpIGNvbnN0CiAgICAgaWYgKGZpcnN0UGFy
dHkpCiAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UsIGZp
cnN0UGFydHkuZ2V0KCkpOwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAg
ICBpZiAobV9zYW1lU2l0ZURpc3Bvc2l0aW9uID09IFJlc291cmNlUmVxdWVzdDo6U2FtZVNpdGVE
aXNwb3NpdGlvbjo6U2FtZVNpdGUpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBzaXRl
Rm9yQ29va2llcyA9IHVybFRvU291cFVSSShtX3VybCk7CisgICAgICAgIHNvdXBfbWVzc2FnZV9z
ZXRfc2l0ZV9mb3JfY29va2llcyhzb3VwTWVzc2FnZSwgc2l0ZUZvckNvb2tpZXMuZ2V0KCkpOwor
ICAgIH0KKworICAgIHNvdXBfbWVzc2FnZV9zZXRfaXNfdG9wX2xldmVsX25hdmlnYXRpb24oc291
cE1lc3NhZ2UsIGlzVG9wU2l0ZSgpKTsKKyNlbmRpZgorCiAgICAgc291cF9tZXNzYWdlX3NldF9m
bGFncyhzb3VwTWVzc2FnZSwgbV9zb3VwRmxhZ3MpOwogCiAgICAgaWYgKCFhY2NlcHRFbmNvZGlu
ZygpKQpAQCAtMTcwLDYgKzE3OSwxNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRnJv
bVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKICAgICBpZiAoU291cFVSSSog
Zmlyc3RQYXJ0eSA9IHNvdXBfbWVzc2FnZV9nZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UpKQog
ICAgICAgICBtX2ZpcnN0UGFydHlGb3JDb29raWVzID0gc291cFVSSVRvVVJMKGZpcnN0UGFydHkp
OwogCisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBzZXRJc1RvcFNpdGUo
c291cF9tZXNzYWdlX2dldF9pc190b3BfbGV2ZWxfbmF2aWdhdGlvbihzb3VwTWVzc2FnZSkpOwor
CisgICAgaWYgKFNvdXBVUkkqIHNpdGVGb3JDb29raWVzID0gc291cF9tZXNzYWdlX2dldF9zaXRl
X2Zvcl9jb29raWVzKHNvdXBNZXNzYWdlKSkKKyAgICAgICAgc2V0SXNTYW1lU2l0ZShhcmVSZWdp
c3RyYWJsZURvbWFpbnNFcXVhbChzb3VwVVJJVG9VUkwoc2l0ZUZvckNvb2tpZXMpLCBtX3VybCkp
OworICAgIGVsc2UKKyAgICAgICAgbV9zYW1lU2l0ZURpc3Bvc2l0aW9uID0gU2FtZVNpdGVEaXNw
b3NpdGlvbjo6VW5zcGVjaWZpZWQ7CisjZWxzZQorICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlvbiA9
IFNhbWVTaXRlRGlzcG9zaXRpb246OlVuc3BlY2lmaWVkOworI2VuZGlmCisKICAgICBtX3NvdXBG
bGFncyA9IHNvdXBfbWVzc2FnZV9nZXRfZmxhZ3Moc291cE1lc3NhZ2UpOwogCiAgICAgLy8gRklY
TUU6IG1fYWxsb3dDb29raWVzIHNob3VsZCBwcm9iYWJseSBiZSBoYW5kbGVkIGhlcmUgYW5kIG9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0Rh
dGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a0RhdGFUYXNrU291cC5jcHAKaW5kZXggNjgxN2YwZGNjOTlmN2I3OWEyOWI4MmRjMzZjN2U1MGU4
YzUxZDdiZS4uM2E0NTkzNmEwMjBiMTgwZDEzNGExZWYyOTkwZDVhZDc3YzU5NDcyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmNwcApAQCAtNjc1LDYgKzY3NSwyMCBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmNvbnRpbnVlSFRUUFJlZGlyZWN0aW9uKCkKICAgICBtX2xhc3RIVFRQTWV0aG9kID0gcmVx
dWVzdC5odHRwTWV0aG9kKCk7CiAgICAgcmVxdWVzdC5yZW1vdmVDcmVkZW50aWFscygpOwogCisg
ICAgaWYgKGlzVG9wTGV2ZWxOYXZpZ2F0aW9uKCkpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRGaXJz
dFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0LnVybCgpKTsKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJT04o
MiwgNjksIDkwKQorICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X2lzX3RvcF9sZXZlbF9uYXZpZ2F0
aW9uKG1fc291cE1lc3NhZ2UuZ2V0KCksIHRydWUpOworI2VuZGlmCisgICAgfQorCisjaWYgU09V
UF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBpZiAocmVxdWVzdC5pc1NhbWVTaXRlKCkp
IHsKKyAgICAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiByZXF1ZXN0VVJJID0gdXJsVG9Tb3VwVVJJ
KHJlcXVlc3QudXJsKCkpOworICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3NpdGVfZm9yX2Nvb2tp
ZXMobV9zb3VwTWVzc2FnZS5nZXQoKSwgcmVxdWVzdFVSSS5nZXQoKSk7CisgICAgfQorI2VuZGlm
CisKICAgICBpZiAoaXNDcm9zc09yaWdpbikgewogICAgICAgICAvLyBUaGUgbmV0d29yayBsYXll
ciBtaWdodCBjYXJyeSBvdmVyIHNvbWUgaGVhZGVycyBmcm9tIHRoZSBvcmlnaW5hbCByZXF1ZXN0
IHRoYXQKICAgICAgICAgLy8gd2Ugd2FudCB0byBzdHJpcCBoZXJlIGJlY2F1c2UgdGhlIHJlZGly
ZWN0IGlzIGNyb3NzLW9yaWdpbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA0MzUzN2MyYTIzNTc3Yjc2Mzc0ODVmYzg1OWYzOTI1N2JkODBlZDU2
Li40OWM1YWUyY2E0NTQ0YjYzYmI0ZjkzM2MyYTQ3YjlmMjlhMDg5MzllIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjAtMDItMDQgIFBhdHJpY2sgR3JpZmZpcyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBBZGQgc2FtZS1zaXRlIGNvb2tpZSBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxMzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgbGlic291cCB0byAyLjY5
LjkwIGluIEpIQnVpbGQuCisKKyAgICAgICAgKiBndGsvamhidWlsZC5tb2R1bGVzOgorICAgICAg
ICAqIHdwZS9qaGJ1aWxkLm1vZHVsZXM6CisKIDIwMjAtMDItMDMgIEppZXdlbiBUYW4gIDxqaWV3
ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXNzIGEgaGludCBmcm9tIHRoZSBleHRlbnNp
b24gdG8gZGVjaWRlUG9saWN5Rm9yU09BdXRob3JpemF0aW9uTG9hZFdpdGhDdXJyZW50UG9saWN5
CmRpZmYgLS1naXQgYS9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvZ3RrL2poYnVp
bGQubW9kdWxlcwppbmRleCA4ZjUwNzZjNWExOGRhNWM1OGRjNmUxMWI5YWY1N2ViYTQ1MmUxNGE3
Li42Mzk0M2MyODYxMjI5NzAzZTdmYzg2YWY5OWEyNGM3ZTAzMjY2NzI5IDEwMDY0NAotLS0gYS9U
b29scy9ndGsvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMK
QEAgLTU0LDYgKzU0LDggQEAKICAgICAgIGhyZWY9Imh0dHA6Ly9taXJyb3JzLmtlcm5lbC5vcmcv
c291cmNlcy5yZWRoYXQuY29tLyIvPgogICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1l
PSJmdHAuZ25vbWUub3JnIgogICAgICAgaHJlZj0iaHR0cDovL2Z0cC5nbm9tZS5vcmciLz4KKyAg
PHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZG93bmxvYWQuZ25vbWUub3JnIgorICAg
ICAgaHJlZj0iaHR0cHM6Ly9kb3dubG9hZC5nbm9tZS5vcmciLz4KICAgPHJlcG9zaXRvcnkgdHlw
ZT0iZ2l0IiBuYW1lPSJnaXQuZ25vbWUub3JnIgogICAgICAgaHJlZj0iaHR0cHM6Ly9naXQuZ25v
bWUub3JnL2Jyb3dzZS8iLz4KICAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iY2Fp
cm9ncmFwaGljcy5vcmciCkBAIC0yMzgsOSArMjQwLDkgQEAKICAgICAgIDxkZXAgcGFja2FnZT0i
Z2xpYi1uZXR3b3JraW5nIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnBzbCIvPgogICAgIDwv
ZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvbGli
c291cC8yLjY4L2xpYnNvdXAtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjIuNjguMyIKLSAg
ICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6
NTM0YmIwOGUzNWIwZmYzNzAyZjNhZGZkZTg3ZDM0NDFlMjdjMTJmOWY1ZWMzNTFmMDU2ZmUwNGNi
YTAyYmFmYiI+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9zb3VyY2VzL2xpYnNvdXAvMi42OS9saWJz
b3VwLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIyLjY5LjkwIgorICAgICAgICAgICAgcmVw
bz0iZG93bmxvYWQuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjhlZDE4MDky
Y2ZiMjdkODcwYTdjN2M0NTk5MmYzYTIxNmJkMjJkZDZmZDZkMmM5ZmJmMWFkYzJkNjk1N2NhYjgi
PgogICAgIDwvYnJhbmNoPgogICA8L21lc29uPgogCmRpZmYgLS1naXQgYS9Ub29scy93cGUvamhi
dWlsZC5tb2R1bGVzIGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwppbmRleCAwY2RlNGI3NTJh
MzZmYmM0MWVmYjA1Njc5YjdhYjYyYjg0Y2M4YjIxLi5hNGY3MWJjZGY5YjkxNjJmY2EyZWVhMTk1
ODk4ZTE1Y2ZiYmQ2ODBhIDEwMDY0NAotLS0gYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCisr
KyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTM3LDYgKzM3LDggQEAKICAgICAgIGhy
ZWY9Imh0dHA6Ly9taXJyb3JzLmtlcm5lbC5vcmcvc291cmNlcy5yZWRoYXQuY29tLyIvPgogICA8
cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmdHAuZ25vbWUub3JnIgogICAgICAgaHJl
Zj0iaHR0cDovL2Z0cC5nbm9tZS5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIg
bmFtZT0iZG93bmxvYWQuZ25vbWUub3JnIgorICAgICAgaHJlZj0iaHR0cHM6Ly9kb3dubG9hZC5n
bm9tZS5vcmciLz4KICAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iY2Fpcm9ncmFw
aGljcy5vcmciCiAgICAgICBocmVmPSJodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmciLz4KICAgPHJl
cG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnJlZWRlc2t0b3Aub3JnIgpAQCAtMTAwLDkg
KzEwMiw5IEBACiAgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0d29ya2luZyIvPgogICAgICAg
PGRlcCBwYWNrYWdlPSJsaWJwc2wiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNo
IG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2xpYnNvdXAvMi42OC9saWJzb3VwLSR7dmVyc2lv
bn0udGFyLnh6IiB2ZXJzaW9uPSIyLjY4LjMiCi0gICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUu
b3JnIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjUzNGJiMDhlMzViMGZmMzcwMmYzYWRmZGU4
N2QzNDQxZTI3YzEyZjlmNWVjMzUxZjA1NmZlMDRjYmEwMmJhZmIiPgorICAgIDxicmFuY2ggbW9k
dWxlPSIvc291cmNlcy9saWJzb3VwLzIuNjkvbGlic291cC0ke3ZlcnNpb259LnRhci54eiIgdmVy
c2lvbj0iMi42OS45MCIKKyAgICAgICAgICAgIHJlcG89ImRvd25sb2FkLmdub21lLm9yZyIKKyAg
ICAgICAgICAgIGhhc2g9InNoYTI1Njo4ZWQxODA5MmNmYjI3ZDg3MGE3YzdjNDU5OTJmM2EyMTZi
ZDIyZGQ2ZmQ2ZDJjOWZiZjFhZGMyZDY5NTdjYWI4Ij4KICAgICA8L2JyYW5jaD4KICAgPC9tZXNv
bj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGNiZWMyODU0OWY1MzUwNWM0NTljNDVhYmI0ZTg0YmNhMDQyNmFkOGIuLmU0
YTRlN2M0YTc1ZjhjOWZmZDExNjMxM2IwYzkyNTQ4YTI0OWZlOWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMC0wMi0wNCAgUGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXVtXUEVdIEFkZCBzYW1lLXNpdGUgY29va2llIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDEzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgR1RLL1dQ
RSB0ZXN0IGV4cGVjdGF0aW9ucyB0byBwYXNzIG1vc3Qgc2FtZS1zaXRlIGNvb2tpZSB0ZXN0cwor
ICAgICAgICBtYXRjaGluZyB0aGUgQXBwbGUgcG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAyMC0wMi0wNCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWVkaWFEZXZpY2VzIHNob3VsZCBoYW5kbGUgY2hhbmdlcyBvZiBpZnJhbWUgYWxs
b3cgYXR0cmlidXRlIHZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDg0OTAyNjRhMmJiOWViNzBmNzA4YTE0OTE3OTAyMDQzMzIwNjNiYjEuLmY1Njlj
YTAxNDY1MTJhNjgyNWEzZGEwYTE2MjRmYWY0MjVjNjIzZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC00MTM0LDYgKzQxMzQsOCBAQCB3ZWJraXQub3Jn
L2IvMjA2ODg1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9m
b250LXZhcmlhbnQtbgogd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvZm9udC12YXJpYW50LXBvc2l0aW9uLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3F1b3RlZC1nZW5lcmljLWlnbm9yZWQuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMTk0OTMzIGh0dHAvdGVzdHMvY29va2ll
cy9zYW1lLXNpdGUvdXNlci1sb2FkLWNyb3NzLXNpdGUtcmVkaXJlY3QucGhwIFsgRmFpbHVyZSBd
CisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBub24tY3Jhc2hp
bmcsIG5vbi1mbGFreSB0ZXN0cyBmYWlsaW5nCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwpAQCAtNDMxNSw2ICs0MzE3LDggQEAgd2Via2l0Lm9yZy9iLzIwNjg4NSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvc3RhbmRhcmQtZm9udC0KIHdlYmtp
dC5vcmcvYi8yMDY4ODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZv
bnRzL3N0YW5kYXJkLWZvbnQtZmFtaWx5LTcuaHRtbCBbIFBhc3MgXQogd2Via2l0Lm9yZy9iLzIw
Njg4NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMvc3RhbmRh
cmQtZm9udC1mYW1pbHkuaHRtbCBbIFBhc3MgXQogCitodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1z
aXRlIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBv
ZiBQQVNTSU5HIHRlc3RzLiBTZWUgdG9wIG9mIGZpbGUgd2hlcmUgdG8gcHV0IG5ldyBleHBlY3Rh
dGlvbnMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1Y2UzODUyN2U2YTFkM2QzOTUwODVmZjZl
OWM5YjRmNjI3MDUwZDMxLi4yYjU4YTY1ZGMzZDhjZGNmNjY2MDEyZTEzMDllOGRjYzU5Nzk3ZWQx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTQ5LDYg
Kzk0OSw4IEBAIHdlYmtpdC5vcmcvYi8yMDQxMTUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF9wCiBmYXN0L2dyYWRpZW50cy9jb25pYy1n
cmFkaWVudC1hbHBoYS5odG1sIFsgUGFzcyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtaW1hZ2VzL211bHRpcGxlLXBvc2l0aW9uLWNvbG9yLXN0b3AtY29uaWMuaHRt
bCBbIFBhc3MgXQogCitodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlIFsgUGFzcyBdCisKICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIDUuIFRFU1RTIENSQVNISU5HCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMjIwMyw2ICsyMjA1LDggQEAgd2Via2l0
Lm9yZy9iLzIwNDY3NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1j
YW52YXMvaW1hZ2Utc21vb3QKIHdlYmtpdC5vcmcvYi8yMDQ2NzUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL2luaXRp
YWwucmVzZXQucGF0dGVybi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA0Njc1IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9pbml0aWFsLnJlc2V0LnBhdHRlcm4ud29ya2VyLmh0bWwgWyBGYWlsdXJlIF0K
IAord2Via2l0Lm9yZy9iLzE5NDkzMyBodHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3VzZXIt
bG9hZC1jcm9zcy1zaXRlLXJlZGlyZWN0LnBocCBbIEZhaWx1cmUgXQorCiAjLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogIyAgPj4gTk9USUNFIDw8CiAjIFBsZWFzZSBzZWUgZ3VpZGVs
aW5lcyBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZSBhbmQgcGxhY2UgbmV3IHRlc3QgZXhwZWN0YXRp
b25zCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>