<?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>85005</bug_id>
          
          <creation_ts>2012-04-26 14:26:13 -0700</creation_ts>
          <short_desc>Add Prerenderer, PrerenderHandle and a chromium interface for Prerendering.</short_desc>
          <delta_ts>2012-05-14 21:42:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>84871</dependson>
          <blocked>85021</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Peters">gavinp</reporter>
          <assigned_to name="Gavin Peters">gavinp</assigned_to>
          <cc>abarth</cc>
    
    <cc>cbentzel</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>610976</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-26 14:26:13 -0700</bug_when>
    <thetext>Add Prerenderer, PrerenderHandle and a chromium interface for Prerendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610988</commentid>
    <comment_count>1</comment_count>
      <attachid>139072</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-26 14:32:39 -0700</bug_when>
    <thetext>Created attachment 139072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610993</commentid>
    <comment_count>2</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-26 14:39:09 -0700</bug_when>
    <thetext>This is my remediation to this review from Adam Barth: https://github.com/gavinp/git.webkit.org/commit/99d15d3b9c783395015ab74588fefbadc8a7c51e

It was not LGTM by him there, although he said &quot;This looks great. There are a few minor things and then naming suggestions above and then we&apos;ll be all set. Thanks so much.&quot; just before he went on vacation.  Sadly, I had the chromium platform side of this impl to move through review after that.

jamesr: could you look at my interfaces in Platform/ and WebKit/, and tell me what you think?  As well, note that https://bugs.webkit.org/show_bug.cgi?id=84880 probably makes a lot more sense if you read it after this, although of course it has to commit first (and this patch is written with respect to it).

japhet: could you look at my WebCore/loader and WebCore/platform work, and tell me what you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611039</commentid>
    <comment_count>3</comment_count>
      <attachid>139072</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-26 15:35:49 -0700</bug_when>
    <thetext>Comment on attachment 139072
Patch

This patch won&apos;t build until after http://codereview.chromium.org/10198040/ lands, I&apos;ll update EWS on this issue after that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611118</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-26 17:37:59 -0700</bug_when>
    <thetext>+jmason: blackberry&apos;s ResourceRequest.h defines TargetIsPrerender, are you using it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611120</commentid>
    <comment_count>5</comment_count>
      <attachid>139105</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-26 17:40:30 -0700</bug_when>
    <thetext>Created attachment 139105
fix WebURLRequest::TargetType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611400</commentid>
    <comment_count>6</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-04-27 05:16:24 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; +jmason: blackberry&apos;s ResourceRequest.h defines TargetIsPrerender, are you using it?

Nope.  Do you mind removing it from blackberry/ResourceRequest.h and blackberry/ResourceRequestBlackBerry.cpp while you&apos;re at it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611423</commentid>
    <comment_count>7</comment_count>
      <attachid>139182</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-27 06:04:13 -0700</bug_when>
    <thetext>Created attachment 139182
remove TargetIsPrender for blackberry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611425</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-27 06:05:22 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; +jmason: blackberry&apos;s ResourceRequest.h defines TargetIsPrerender, are you using it?
&gt; 
&gt; Nope.  Do you mind removing it from blackberry/ResourceRequest.h and blackberry/ResourceRequestBlackBerry.cpp while you&apos;re at it?

Happy to!  I just updated my patch to do this too.  I somewhat expected this answer.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611479</commentid>
    <comment_count>9</comment_count>
      <attachid>139182</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-27 07:23:07 -0700</bug_when>
    <thetext>Comment on attachment 139182
remove TargetIsPrender for blackberry

I tested, but didn&apos;t upload build files for other platforms than Chromium.  Forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611694</commentid>
    <comment_count>10</comment_count>
      <attachid>139234</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-27 11:09:39 -0700</bug_when>
    <thetext>Created attachment 139234
add build files for platforms...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611701</commentid>
    <comment_count>11</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-27 11:13:51 -0700</bug_when>
    <thetext>This latest patch, with the build files for platform, is rebased relative to the current WebKit trunk rather than the thunk headers in Bug 84880, I believe that makes the patch easier to review, and also it might even pass some EWS (although until http://codereview.chromium.org/10198040/ lands, it will break chrome).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611705</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-27 11:16:09 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611707</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-27 11:16:43 -0700</bug_when>
    <thetext>Attachment 139234 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
Source/WebCore/platform/chromium/support/WebPrerender.cpp:37:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 41 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611721</commentid>
    <comment_count>14</comment_count>
      <attachid>139234</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-04-27 11:28:44 -0700</bug_when>
    <thetext>Comment on attachment 139234
add build files for platforms...

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

&gt;&gt; Source/WebCore/platform/chromium/support/WebPrerender.cpp:37
&gt;&gt; +#include &quot;Prerender.h&quot;
&gt; 
&gt; Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]

This looks like bug 85075</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612117</commentid>
    <comment_count>15</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-27 20:30:49 -0700</bug_when>
    <thetext>abarth, it looks like this patch stayed alive during your whole vacation...  So you can take a peek at the remediation.  Let me know what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612775</commentid>
    <comment_count>16</comment_count>
      <attachid>139234</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-04-30 11:12:50 -0700</bug_when>
    <thetext>Comment on attachment 139234
add build files for platforms...

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

This generally looks good.  The only really substantial comment is about the static in WebPrerenderPlatform.  I&apos;m not super excited about the WebPrerenderPlatform name, but we&apos;ve talked about that before and didn&apos;t come up with anything better.  We might want to ask fishd if he has any naming suggestions.  Other than that, I think we&apos;re ready to go.

&gt; Source/Platform/chromium/public/WebPrerenderingPlatform.h:52
&gt; +    // A prerender is canceled when it is removed from a document.

These comments look like they&apos;re swapped.

&gt; Source/Platform/chromium/public/WebPrerenderingPlatform.h:56
&gt; +    WEBKIT_EXPORT static void setPlatform(WebPrerenderingPlatform*);
&gt; +    WEBKIT_EXPORT static WebPrerenderingPlatform* getPlatform();

This seems slightly odd.  Why is there a createPrerenderingPlatform() in addition to this mechanism?  Rather than calling getPlatform() in WebKit, it might be easier to call WebKit::Platform::current()-&gt;prerenderingPlatform()-&gt;add(...).  That way the embedder can decide to use a static or to use a different implementation of WebPrerenderingPlatform at different times.  (Note: createPrerenderingPlatform() doesn&apos;t appear to be used in your patch currently.)

&gt; Source/WebCore/loader/Prerenderer.h:66
&gt; +    Prerenderer(Document*);

explicit

&gt; Source/WebCore/platform/chromium/PrerenderHandle.cpp:51
&gt; +        : m_prerender(adoptRef(new Prerender(url, referrer, policy)))

bad indent

&gt; Source/WebCore/platform/chromium/support/WebPrerender.cpp:53
&gt; +            : m_extraData(adoptPtr(extraData))

bad inent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612815</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-04-30 11:44:49 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=139234&amp;action=review

&gt; Source/Platform/chromium/public/WebPrerenderingPlatform.h:55
&gt; +    WEBKIT_EXPORT static void setPlatform(WebPrerenderingPlatform*);

this repeats the word &quot;platform&quot; at callsites:

  WebPrerenderingPlatform::getPlatform()

what does it mean for these static accessors to exist when Platform.h also
has a create function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612823</commentid>
    <comment_count>18</comment_count>
      <attachid>139234</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-04-30 11:51:45 -0700</bug_when>
    <thetext>Comment on attachment 139234
add build files for platforms...

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

&gt; Source/Platform/chromium/public/WebPrerenderingPlatform.h:42
&gt; +    virtual ~WebPrerenderingPlatform() { }

Should this really be public?  Who is responsible for deleting an
instance of type WebPrerenderingPlatform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612830</commentid>
    <comment_count>19</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-30 11:59:32 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139234&amp;action=review
&gt; 
&gt; &gt; Source/Platform/chromium/public/WebPrerenderingPlatform.h:55
&gt; &gt; +    WEBKIT_EXPORT static void setPlatform(WebPrerenderingPlatform*);
&gt; 
&gt; this repeats the word &quot;platform&quot; at callsites:
&gt; 
&gt;   WebPrerenderingPlatform::getPlatform()
&gt; 
&gt; what does it mean for these static accessors to exist when Platform.h also
&gt; has a create function?

It means I left the method in Platform.h in by accident; I&apos;ll remove that in my next upload.  Having the static setters in WebPrerenderingPlatform.h means that the change implementing it in chromium doesn&apos;t need to be in webkit/ or content/ , the only places where we implement Platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612831</commentid>
    <comment_count>20</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-30 12:00:15 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 139234 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139234&amp;action=review
&gt; 
&gt; &gt; Source/Platform/chromium/public/WebPrerenderingPlatform.h:42
&gt; &gt; +    virtual ~WebPrerenderingPlatform() { }
&gt; 
&gt; Should this really be public?  Who is responsible for deleting an
&gt; instance of type WebPrerenderingPlatform?

It should be protected.  The provider deletes it, but has to make sure its life is the length of the WebKit instance, or longer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612876</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-04-30 12:45:12 -0700</bug_when>
    <thetext>Off-line, Adam suggested naming the interface WebPrerenderingSupport instead of WebPrerenderingPlatform.  I agree with him that that name would be better.  We have other interfaces that end with *Support, and this seems similar in nature to those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613022</commentid>
    <comment_count>22</comment_count>
      <attachid>139533</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-30 15:43:25 -0700</bug_when>
    <thetext>Created attachment 139533
rename to WebPrerenderingSupport</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613025</commentid>
    <comment_count>23</comment_count>
      <attachid>139533</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-04-30 15:44:58 -0700</bug_when>
    <thetext>Comment on attachment 139533
rename to WebPrerenderingSupport

This upload includes the rename, and is now rebased on top of https://bugs.webkit.org/show_bug.cgi?id=84880 , which has also been updated to reflect the rename.

This change cannot land without WebKit/chromium/DEPS being advanced past the rev in which http://codereview.chromium.org/10198040/ lands, and I&apos;ll make sure that happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622990</commentid>
    <comment_count>24</comment_count>
      <attachid>141733</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-05-14 08:16:22 -0700</bug_when>
    <thetext>Created attachment 141733
rebase for ews and commit...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622993</commentid>
    <comment_count>25</comment_count>
      <attachid>141733</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2012-05-14 08:19:10 -0700</bug_when>
    <thetext>Comment on attachment 141733
rebase for ews and commit...

whoops; removing review flag.  This is reviewed, but I want to ews test and get ready for CQ.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622996</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-14 08:19:56 -0700</bug_when>
    <thetext>Attachment 141733 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
Source/WebCore/platform/chromium/support/WebPrerender.cpp:37:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623626</commentid>
    <comment_count>27</comment_count>
      <attachid>141733</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-14 21:42:11 -0700</bug_when>
    <thetext>Comment on attachment 141733
rebase for ews and commit...

Clearing flags on attachment: 141733

Committed r117029: &lt;http://trac.webkit.org/changeset/117029&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623627</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-14 21:42:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139072</attachid>
            <date>2012-04-26 14:32:39 -0700</date>
            <delta_ts>2012-04-26 17:40:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85005-20120426173237.patch</filename>
            <type>text/plain</type>
            <size>78962</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3ZTkzOGZiMDNkZWRk
ZWE5MzkxODkxMTU5MzgxZTU0YjU4NDU3MmY4Li4xYjMxYWNlMmFiNjgxMzI4NGQwN2U0YjVlMDU0
ZjA2NmVlNDI1OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wNC0yNiAg
R2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJlcmVu
ZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFByZXJl
bmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIHByZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVzaW5n
IHJlc291cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3RyYWlu
ZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4KKwor
ICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxsaW5r
IHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFuZCB1
bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlz
IGludGVyZmFjZSByZXF1aXJlcyBhIGZ1bGwgcGxhdGZvcm0gZm9yIHRlc3RpbmcsIGFuZCBpc24n
dCBwYXJ0CisgICAgICAgIG9mIGxheW91dC4KKworICAgICAgICAqIFBsYXRmb3JtLmd5cGk6Cisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmg6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoUGxhdGZvcm0pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6Y3JlYXRlUHJl
cmVuZGVyaW5nUGxhdGZvcm0pOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5k
ZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJQcmVyZW5kZXIpOgorICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5oOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06On5XZWJQ
cmVyZW5kZXJpbmdQbGF0Zm9ybSk6CisgICAgICAgIChXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSk6
CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaDoKKyAgICAgICAgKiBj
aHJvbWl1bS9zcmMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1BsYXRmb3JtOjpzZXRQbGF0Zm9ybSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1BsYXRmb3JtOjpnZXRQbGF0Zm9ybSk6CisK
IDIwMTItMDQtMjUgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Nocm9taXVtXSBBZGQgdGh1bmsgaGVhZGVycyBmb3Igc3RhZ2luZyBQcmVyZW5kZXJpbmcg
QVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGI1NzAyNWQ3Yzg0YzMxNzMxNDUyZmFkYmQwZWUxZDMzZTA5NWQw
NmEuLjBjZTBiYjFlNmM3NGYwNWU3ODdiZGQwZWU3ZmU2NTY4ZjY3YTFlZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMjIgQEAKKzIwMTItMDQtMjYgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgQWRkIFByZXJlbmRlcmVyLCBQcmVyZW5kZXJIYW5kbGUgYW5k
IGEgY2hyb21pdW0gaW50ZXJmYWNlIGZvciBQcmVyZW5kZXJpbmcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmVyZW5kZXIgY2FzZSBpc24ndCBx
dWl0ZSBhIHJlc291cmNlIGxvYWQsIGFuZCB1c2luZyByZXNvdXJjZSBsb2FkaW5nIHRvCisgICAg
ICAgIHJldHJpZXZlIHRoZW0gaGFzIGNvbnN0cmFpbmVkIHRoZSBBUEksIGFuZCB1bm5lY2Vzc2Fy
aWx5IGNvbXBsaWNhdGVkIHRoZSBsb2FkZXIuCisKKyAgICAgICAgVGhlIG5ldyBQcmVyZW5kZXJl
ciBhbmQgUHJlcmVuZGVySGFuZGxlIGxldCA8bGluayByZWw9cHJlcmVuZGVyLi4uPiBlbGVtZW50
cyBzaWduYWwKKyAgICAgICAgcmVtb3ZhbCBhbmQgdW5sb2FkIHRvIHRoZWlyIHBsYXRmb3JtLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpbnRlcmZhY2UgcmVxdWlyZXMgYSBmdWxs
IHBsYXRmb3JtIHRvIHdvcmssIGFuZCBkb2Vzbid0IGFmZmVjdCBsYXlvdXQuICBUZXN0CisgICAg
ICAgIGl0IHdpdGggeW91ciBwbGF0Zm9ybSB3aGVuIGltcGxlbWVudGVkIGZvciBpdC4KKworICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnByZXJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnJlbW92ZWRGcm9t
KToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9M
aW5rUmVsQXR0cmlidXRlLmg6CisgICAgICAgIChMaW5rUmVsQXR0cmlidXRlKToKKyAgICAgICAg
KiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjps
b2FkTGluayk6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpyZWxlYXNlZCk6CisgICAg
ICAgICogbG9hZGVyL0xpbmtMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
TGlua0xvYWRlcik6CisgICAgICAgICogbG9hZGVyL1ByZXJlbmRlcmVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OlByZXJlbmRlcmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlByZXJlbmRlcmVyOjp+UHJlcmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlcmVuZGVyZXI6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6c3VzcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcmVyZW5kZXJlcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRl
cmVyOjpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6Y2xpZW50KToK
KyAgICAgICAgKiBsb2FkZXIvUHJlcmVuZGVyZXIuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoUHJlcmVuZGVyZXIpOgorICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVu
dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlckNsaWVu
dDo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJDbGllbnQ6
OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6cHJvdmlkZVByZXJlbmRlcmVyQ2xpZW50VG8pOgor
ICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUHJlcmVuZGVyZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJD
bGllbnQ6On5QcmVyZW5kZXJlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJl
ckNsaWVudDo6UHJlcmVuZGVyZXJDbGllbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0UHJpb3JpdHlGb3JSZXNv
dXJjZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkKToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlOjppZ25vcmVGb3JSZXF1ZXN0Q291bnQpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExp
bmtSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hl
Y2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OmNhblJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQcmVyZW5kZXJIYW5kbGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OlByZXJlbmRlcik6CisgICAgICAg
IChXZWJDb3JlOjpQcmVyZW5kZXI6On5QcmVyZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
cmVuZGVyOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmFkZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cmVyZW5kZXI6OmFiYW5kb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFByZXJlbmRlcik6CisgICAgICAgIChFeHRyYURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURhdGE6On5FeHRyYURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVu
ZGVyOjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OnJlZmVycmVyUG9s
aWN5KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6c2V0RXh0cmFEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6ZXh0cmFEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcmVyZW5kZXJIYW5kbGU6OlByZXJlbmRlckhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cmVyZW5kZXJIYW5kbGU6On5QcmVyZW5kZXJIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
cmVuZGVySGFuZGxlOjpwcmVyZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFu
ZGxlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpjYW5jZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjphYmFuZG9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlByZXJlbmRlckhhbmRsZTo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVy
ZW5kZXJIYW5kbGU6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6
OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OnJlZmVycmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpXZWJQcmVyZW5kZXIpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjp+V2ViUHJlcmVuZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjp1cmwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVy
ZW5kZXI6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpyZWZlcnJl
clBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcjo6c2V0RXh0cmFEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpleHRyYURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0Lmg6CisKIDIwMTItMDQtMjUg
IEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIG5ldyBF
TkFCTEVfTElOS19QUkVSRU5ERVIgZGVmaW5lIHRvIGNvbnRyb2wgdGhlIFByZXJlbmRlcmluZyBB
UEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMmM4NTE3YzY5NzZjYzY5Y2U4OGU4YTc0
Yzg4NzBmZjE1NGEwYmNhOS4uZTkxY2UzNzc1MDE5NDg0ZjdkYmEwMDVjNjRjYTkxZDQwYjYzZGUw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNC0y
NiAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJl
cmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFBy
ZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIHByZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVz
aW5nIHJlc291cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3Ry
YWluZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4K
KworICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxs
aW5rIHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFu
ZCB1bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1ByZXJlbmRlcmVyQ2xpZW50
SW1wbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0
ZS5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UHJlcmVuZGVyZXJDbGll
bnRJbXBsOjpQcmVyZW5kZXJlckNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpQcmVyZW5k
ZXJlckNsaWVudEltcGw6OndpbGxBZGRQcmVyZW5kZXIpOgorICAgICAgICAqIHNyYy9QcmVyZW5k
ZXJlckNsaWVudEltcGwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVs
QXR0cmlidXRlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChQcmVyZW5kZXJlckNsaWVudEltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQcmVyZW5kZXJlckNsaWVudCk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wNC0yNSAgR2F2aW4g
UGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEFkZCB0
aHVuayBoZWFkZXJzIGZvciBzdGFnaW5nIFByZXJlbmRlcmluZyBBUEkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5n
eXBpCmluZGV4IDYyZDZkNmUwZTUyOTliMDU2YjJjY2I2MzRlNjdhNWZmODc4NGFkYjIuLmU0N2Zi
MmNmNDlkNTYxMDdmZmNmNWZkMmYwYzYyOTI2NGZiMjZkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9Q
bGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBp
CkBAIC04Nyw2ICs4Nyw3IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlN0cmlu
Zy5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVGhyZWFkLmgnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJUaHJlYWRTYWZlRGF0YS5oJywKKyAgICAgICAgICAg
ICdjaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9XZWJVUkwuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTEVy
cm9yLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkVGltaW5nLmgn
LApAQCAtMTAwLDYgKzEwMSw3IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1BsYXRmb3Jt
LmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1dlYkNTdHJpbmcuY3BwJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9zcmMvV2ViRmxvYXRRdWFkLmNwcCcsCisgICAgICAgICAgICAnY2hy
b21pdW0vc3JjL1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmNwcCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vc3JjL1dlYlN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3NyYy9XZWJW
aWRlb0ZyYW1lLmNwcCcsCiAgICAgICAgIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvUGxhdGZvcm0uaAppbmRleCBhYmYzZDA5MDFlZDllZTA1NzUyYTA2NWMzY2E5MzA5OGM1M2I0
NGU2Li5iMTVhMTVhMTNhN2JhNGNhNjNmNmEwNGUzOTVhMmM0YzFlMjNlYmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCkBAIC00OSw2ICs0OSw3IEBAIGNs
YXNzIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlcjsKIGNsYXNzIFdlYlBlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudDsKIGNsYXNzIFdlYlVSTDsKIGNsYXNzIFdlYlVSTExvYWRlcjsKK2NsYXNzIFdl
YlByZXJlbmRlcmluZ1BsYXRmb3JtOwogY2xhc3MgV2ViU29ja2V0U3RyZWFtSGFuZGxlOwogY2xh
c3MgV2ViVGhyZWFkOwogCkBAIC0yODMsNiArMjg0LDggQEAgcHVibGljOgogICAgIC8vIEVudW1l
cmF0aW9uIGhpc3RvZ3JhbSBidWNrZXRzIGFyZSBsaW5lYXIsIGJvdW5kYXJ5VmFsdWUgc2hvdWxk
IGJlIGxhcmdlciB0aGFuIGFueSBwb3NzaWJsZSBzYW1wbGUgdmFsdWUuCiAgICAgdmlydHVhbCB2
b2lkIGhpc3RvZ3JhbUVudW1lcmF0aW9uKGNvbnN0IGNoYXIqIG5hbWUsIGludCBzYW1wbGUsIGlu
dCBib3VuZGFyeVZhbHVlKSB7IH0KIAorICAgIC8vIFByZXJlbmRlcgorICAgIHZpcnR1YWwgV2Vi
UHJlcmVuZGVyaW5nUGxhdGZvcm0qIGNyZWF0ZVByZXJlbmRlcmluZ1BsYXRmb3JtKCkgeyByZXR1
cm4gMDsgfQogCiAgICAgLy8gV2ViUlRDIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgKaW5kZXggMDhhNzE1ZGQ5ODcwZTY1NzE5M2ZkNTBhZGU1
M2Y0MDU2NDAwYmNhYi4uYzk5YTE0NTNiZGQ5NDhhNWIwYzA4NDQxZmFjMDIzOTdmOTlmODg3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIu
aAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oCkBA
IC00OSwyNyArNDksMjkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJTaXplOwog
Ci0vLyBUaGlzIHRodW5rIGltcGxlbWVudGF0aW9uIG9mIFdlYlByZXJlbmRlciBleGlzdHMgb25s
eSBmb3Igc3RhZ2luZzsgdGhpcyB3aWxsIGFsbG93Ci0vLyB0aGUgQ2hyb21pdW0gc2lkZSBvZiB0
aGUgUHJlcmVuZGVyaW5nIEFQSSB0byBsYW5kLCBhbmQgdGhlbiBsYXRlciB3ZSBjYW4gYXRvbWlj
bHkKLS8vIHN3aXRjaCBXZWJLaXQgdG8gcHJlcmVuZGVyLCBhbmQgZmluYWxseSByZW1vdmUgdGhl
IG9sZCBwaGFudG9tLXJlcXVlc3QgcHJlcmVuZGVyCi0vLyBpbXBsZW1lbnRhdGlvbiBmcm9tIENo
cm9taXVtLgotLy8gRklYTUU6IFB1dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIGhlcmUgYWZ0
ZXIgdGhlIENocm9taXVtIHNpZGUgb2YgdGhpcyBBUEkKLS8vIGxhbmRzLgogY2xhc3MgV2ViUHJl
cmVuZGVyIHsKIHB1YmxpYzoKICAgICBjbGFzcyBFeHRyYURhdGEgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkgeyB9CiAgICAgfTsKLSAgICBXZWJVUkwgdXJsKCkg
Y29uc3QgeyByZXR1cm4gV2ViVVJMKCk7IH0KLSAgICBXZWJTdHJpbmcgcmVmZXJyZXIoKSBjb25z
dCB7IHJldHVybiAiIjsgfQotICAgIFdlYlJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkg
Y29uc3QgeyByZXR1cm4gV2ViUmVmZXJyZXJQb2xpY3koKTsgfQotICAgIHZvaWQgc2V0RXh0cmFE
YXRhKEV4dHJhRGF0YSopIHsgfQotICAgIGNvbnN0IEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29u
c3QgeyByZXR1cm4gMDsgfQorCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgZXhwbGlj
aXQgV2ViUHJlcmVuZGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6UHJlcmVuZGVyPik7CisgICAgfldl
YlByZXJlbmRlcigpOworI2VuZGlmCisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlVSTCB1cmwoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyByZWZlcnJlcigpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgV2ViUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdDsK
KworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRFeHRyYURhdGEoRXh0cmFEYXRhKik7CisgICAg
V0VCS0lUX0VYUE9SVCBjb25zdCBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIFdlYlByZXJlbmRlcigpIHsgfQotICAgIH5XZWJQcmVyZW5kZXIoKSB7IH0KKyAg
ICBXZWJQcmVyZW5kZXIoKTsKKworICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UHJlcmVuZGVy
PiBtX3ByaXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uaCBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0u
aAppbmRleCAxN2ZmYWU4MzJkMTI2OTJlODQ0OTRmZjExNDAwZGI0YzJhNjhlNmVhLi4yMDBlODZj
ZTQyMzI2NTYyYzM4MDRlYTJmYmMxZmM5YzY3ZjllNGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmgKKysrIGIvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5oCkBA
IC0zNywyNSArMzcsMzEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlByZXJlbmRl
cjsKIAotLy8gVGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXJpbmdQbGF0
Zm9ybSBleGlzdHMgb25seSBmb3Igc3RhZ2luZzsgdGhpcyB3aWxsCi0vLyBhbGxvdyB0aGUgQ2hy
b21pdW0gc2lkZSBvZiB0aGUgUHJlcmVuZGVyaW5nIEFQSSB0byBsYW5kLCBhbmQgdGhlbiBsYXRl
ciB3ZSBjYW4gYXRvbWljbHkKLS8vIHN3aXRjaCBXZWJLaXQgdG8gcHJlcmVuZGVyLCBhbmQgZmlu
YWxseSByZW1vdmUgdGhlIG9sZCBwaGFudG9tLXJlcXVlc3QgcHJlcmVuZGVyCi0vLyBpbXBsZW1l
bnRhdGlvbiBmcm9tIENocm9taXVtLgotLy8gRklYTUU6IFB1dCB0aGUgYWN0dWFsIGltcGxlbWVu
dGF0aW9uIGhlcmUgYWZ0ZXIgdGhlIENocm9taXVtIHNpZGUgb2YgdGhpcyBBUEkKLS8vIGxhbmRz
LgogY2xhc3MgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0gewogcHVibGljOgotICAgIHZpcnR1YWwg
dm9pZCBhZGQoY29uc3QgV2ViUHJlcmVuZGVyJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNl
bChjb25zdCBXZWJQcmVyZW5kZXImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWJhbmRvbihjb25z
dCBXZWJQcmVyZW5kZXImKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBzZXRQbGF0Zm9ybShXZWJQcmVy
ZW5kZXJpbmdQbGF0Zm9ybSopIHsgfQotICAgIHN0YXRpYyBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9y
bSogZ2V0UGxhdGZvcm0oKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB+V2ViUHJlcmVuZGVy
aW5nUGxhdGZvcm0oKSB7IH0KKworICAgIC8vIEEgcHJlcmVuZGVyIGxpbmsgZWxlbWVudCBpcyBh
ZGRlZCB3aGVuIGl0IGlzIGluc2VydGVkIGludG8gYSBkb2N1bWVudC4KKyAgICB2aXJ0dWFsIHZv
aWQgYWRkKGNvbnN0IFdlYlByZXJlbmRlciYpID0gMDsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlz
IGFiYW5kb25lZCB3aGVuIGl0J3MgbmF2aWdhdGVkIGF3YXkgZnJvbSBvciBzdXNwZW5kZWQgaW4g
dGhlIHBhZ2UgY2FjaGUuIFRoaXMKKyAgICAvLyBpcyBhIHdlYWtlciBzaWduYWwgdGhhbiBjYW5j
ZWwoKSwgc2luY2UgdGhlIGxhdW5jaGVyIGhhc24ndCBpbmRpY2F0ZWQgdGhhdCB0aGUgcHJlcmVu
ZGVyIGlzbid0CisgICAgLy8gd2FudGVkLCBhbmQgd2UgbWF5IGVuZCB1cCB1c2luZyBpdCBhZnRl
ciwgZm9yIGluc3RhbmNlLCBhIHNob3J0IHJlZGlyZWN0IGNoYWluLgorICAgIHZpcnR1YWwgdm9p
ZCBjYW5jZWwoY29uc3QgV2ViUHJlcmVuZGVyJikgPSAwOworCisgICAgLy8gQSBwcmVyZW5kZXIg
aXMgY2FuY2VsZWQgd2hlbiBpdCBpcyByZW1vdmVkIGZyb20gYSBkb2N1bWVudC4KKyAgICB2aXJ0
dWFsIHZvaWQgYWJhbmRvbihjb25zdCBXZWJQcmVyZW5kZXImKSA9IDA7CisKKyAgICBXRUJLSVRf
RVhQT1JUIHN0YXRpYyB2b2lkIHNldFBsYXRmb3JtKFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKik7
CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0qIGdldFBs
YXRmb3JtKCk7CiAKIHByb3RlY3RlZDoKICAgICBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSgpIHsg
fQotICAgIHZpcnR1YWwgfldlYlByZXJlbmRlcmluZ1BsYXRmb3JtKCkgeyB9CisKK3ByaXZhdGU6
CisgICAgc3RhdGljIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBzX3BsYXRmb3JtOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBXZWJQcmVyZW5kZXJMb2FkZXJfaAor
I2VuZGlmIC8vIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKaW5kZXggYWRmMmYyZTIzMGJhNTVmNzc4
NzkyNTk0Mzk4ZWE4ZjUyMjkyYzc2Yi4uODhiMmI1ZDE1MzFmYzRmZmVlYjhiOGVkMGFjZjJhNDRm
ZDJkNThjZCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJV
UkxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkxS
ZXF1ZXN0LmgKQEAgLTY5LDExICs2OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIFRhcmdldElzV29y
a2VyID0gOSwKICAgICAgICAgVGFyZ2V0SXNTaGFyZWRXb3JrZXIgPSAxMCwKICAgICAgICAgVGFy
Z2V0SXNQcmVmZXRjaCA9IDExLAotICAgICAgICBUYXJnZXRJc1ByZXJlbmRlciA9IDEyLAogICAg
ICAgICBUYXJnZXRJc0Zhdmljb24gPSAxMywKICAgICAgICAgVGFyZ2V0SXNYSFIgPSAxNCwKICAg
ICAgICAgVGFyZ2V0SXNUZXh0VHJhY2sgPSAxNSwKICAgICAgICAgVGFyZ2V0SXNVbnNwZWNpZmll
ZCA9IDE2LAorICAgICAgICAvLyBGSVhNRTogVGhpcyBvbGQgdmFsdWUgaXMgb25seSBiZWluZyBs
ZWZ0IGluIHdoaWxlIHByZXJlbmRlcmluZyBpcyBzdGFnaW5nIGludG8gQ2hyb21lOyBhZnRlciBD
aHJvbWUgaGFzIHRoZSBQcmVyZW5kZXJpbmcKKyAgICAgICAgLy8gQVBJLCB3ZSBjYW4gcmVtb3Zl
IFRhcmdldElzUHJlcmVuZGVyCisgICAgICAgIFRhcmdldElzUHJlcmVuZGVyID0gMTIsCiAgICAg
fTsKIAogICAgIGNsYXNzIEV4dHJhRGF0YSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vc3JjL1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmNwcCBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9zcmMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5
MTlkZWJhMTViMDhmMjM3YzQxMWI1M2Y1ZWY5YjI5YTFiNjE2NzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vc3JjL1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmNw
cApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9y
bS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0qIFdl
YlByZXJlbmRlcmluZ1BsYXRmb3JtOjpzX3BsYXRmb3JtID0gMDsKKwordm9pZCBXZWJQcmVyZW5k
ZXJpbmdQbGF0Zm9ybTo6c2V0UGxhdGZvcm0oV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0qIHBsYXRm
b3JtKQoreworICAgIHNfcGxhdGZvcm0gPSBwbGF0Zm9ybTsKK30KKworV2ViUHJlcmVuZGVyaW5n
UGxhdGZvcm0qIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtOjpnZXRQbGF0Zm9ybSgpCit7CisgICAg
cmV0dXJuIHNfcGxhdGZvcm07Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1YjI4OGY4ODdk
NGRkZTQ2NDBhMDEyNzA4OTAwNDZiYjg4NmE3NWUyLi4wMzAzNTU0MDNhYTUyNGIzNWEyZjdhZGJj
YTQ5OTFhMWU5ZWNmNTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yODU0LDYgKzI4NTQsMTAgQEAK
ICAgICAgICAgICAgICdsb2FkZXIvUGxhY2Vob2xkZXJEb2N1bWVudC5oJywKICAgICAgICAgICAg
ICdsb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvUG9saWN5
Q2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlci5jcHAnLAorICAg
ICAgICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvUHJl
cmVuZGVyZXJDbGllbnQuY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvUHJlcmVuZGVyZXJDbGll
bnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAnLAogICAgICAg
ICAgICAgJ2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAnLAogICAgICAgICAgICAgJ2xv
YWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwJywKQEAgLTMxMzMsNiArMzEzNyw3IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L1BsYXRmb3JtVG91Y2hQb2ludC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9QcmVyZW5kZXJI
YW5kbGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL1JlZmVycmVyUG9saWN5LmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL1J1bkxvb3BUaW1lci5oJywKQEAgLTMzMTEsNiArMzMxNiw5IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTWVudVByaXZhdGUuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
UHJlcmVuZGVyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVy
LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlckhhbmRsZS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NTTEtleUdlbmVyYXRvckNocm9taXVt
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1l
Q2hyb21pdW0uaCcsCkBAIC04MjQ0LDYgKzgyNTIsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbVNvdXJjZS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1T
b3VyY2VzUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViUHJlcmVuZGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3Vw
cG9ydC9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViVVJMLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJVUkxFcnJvci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZTFl
Yjc0YjUyNWVhZTBjMWE4NjcxNzg0ZDhjMTk1NjQ4MjlhODVlMC4uMWRiZjZmYjVjN2E2MjZlYTVk
NmNkN2JhYzZhNjRjYzE5NGVkN2NjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMDYs
NiArMjA2LDEwIEBACiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShMSU5LX1BSRVJFTkRFUikKKyNpbmNsdWRlICJQcmVyZW5kZXJlci5oIgorI2VuZGlmCisK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogdXNpbmcgbmFtZXNw
YWNlIFVuaWNvZGU7CkBAIC01MDYsNyArNTEwLDkgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1l
KiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogICAg
IG1fbWFya2VycyA9IGFkb3B0UHRyKG5ldyBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIpOwogCiAg
ICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlciA9IGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJjZUxv
YWRlcih0aGlzKSk7Ci0KKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgbV9wcmVyZW5k
ZXJlciA9IFByZXJlbmRlcmVyOjpjcmVhdGUodGhpcyk7CisjZW5kaWYKICAgICBtX3Zpc3VhbGx5
T3JkZXJlZCA9IGZhbHNlOwogICAgIG1fYlBhcnNpbmcgPSBmYWxzZTsKICAgICBtX3dlbGxGb3Jt
ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzVkNGZlYmJlOGNkNmJkZGQxYmIx
ZGE1ZTVhM2QxNjg0ZTMwNzBiZS4uOGU3MzBkOWZlZTdlZjE5ZTlkYzg1OTdiYzFhMDkzMTdmNTQw
MDJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE2Niw2ICsxNjYsMTAgQEAgY2xhc3MgU2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyOwogY2xhc3MgTWljcm9EYXRhSXRlbUxpc3Q7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKK2NsYXNzIFByZXJlbmRlcmVyOworI2Vu
ZGlmCisKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIEZvcm1FbGVtZW50S2V5
IHsKQEAgLTExNDYsNiArMTE1MCwxMCBAQCBwdWJsaWM6CiAKICAgICBJbnRTaXplIHZpZXdwb3J0
U2l6ZSgpIGNvbnN0OwogCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIFByZXJlbmRl
cmVyKiBwcmVyZW5kZXJlcigpIHsgcmV0dXJuIG1fcHJlcmVuZGVyZXIuZ2V0KCk7IH0KKyNlbmRp
ZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBp
c1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE0ODcsNiArMTQ5NSwxMSBAQCBwcml2YXRlOgog
CiAgICAgVGltZXI8RG9jdW1lbnQ+IG1fcGVuZGluZ1Rhc2tzVGltZXI7CiAgICAgVmVjdG9yPE93
blB0cjxUYXNrPiA+IG1fcGVuZGluZ1Rhc2tzOworCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVS
KQorICAgIE93blB0cjxQcmVyZW5kZXJlcj4gbV9wcmVyZW5kZXJlcjsKKyNlbmRpZgorCiAgICAg
Ym9vbCBtX3NjaGVkdWxlZFRhc2tzQXJlU3VzcGVuZGVkOwogICAgIAogICAgIGJvb2wgbV92aXN1
YWxVcGRhdGVzQWxsb3dlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApp
bmRleCAwNjliOTNlMmZlYzM2OWJmNDQzMTZhNjM3MDkxNTQzNGZhZGRhZGM0Li45ODE5ZmM4ZGI0
NTQ5ODQ2MDBjMjIyOTU0MDYzNTllZDFlYjNlMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuY3BwCkBAIC0yNjUsNiArMjY1LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6
OnJlbW92ZWRGcm9tKE5vZGUqIGluc2VydGlvblBvaW50KQogICAgIGlmICghaW5zZXJ0aW9uUG9p
bnQtPmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9saW5rTG9hZGVyLnJl
bGVhc2VkKCk7CisKICAgICBpZiAobV9pc0luU2hhZG93VHJlZSkgewogICAgICAgICBBU1NFUlQo
IW1fc2hlZXQpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmNwcAppbmRleCA1MjYxZGYyZDA4ZmYyNmEwM2E1ZDgxZTI0MzFmYTYzZjRjNjU3MjBj
Li44NzA3MWI5OWIyOGQ2NWQyMThmMGFiZDJkYjhhNTdjZDAwMWY2YTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKQEAgLTQxLDkgKzQxLDExIEBAIExpbmtSZWxB
dHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoKQogICAgICwgbV9pc0ROU1ByZWZldGNoKGZhbHNl
KQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgICwgbV9pc0xpbmtQcmVmZXRjaChmYWxz
ZSkKLSAgICAsIG1faXNMaW5rUHJlcmVuZGVyKGZhbHNlKQogICAgICwgbV9pc0xpbmtTdWJyZXNv
dXJjZShmYWxzZSkKICNlbmRpZgorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICAsIG1f
aXNMaW5rUHJlcmVuZGVyKGZhbHNlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTU0LDkgKzU2LDExIEBA
IExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAg
ICAgLCBtX2lzRE5TUHJlZmV0Y2goZmFsc2UpCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAg
ICAgLCBtX2lzTGlua1ByZWZldGNoKGZhbHNlKQotICAgICwgbV9pc0xpbmtQcmVyZW5kZXIoZmFs
c2UpCiAgICAgLCBtX2lzTGlua1N1YnJlc291cmNlKGZhbHNlKQogI2VuZGlmCisjaWYgRU5BQkxF
KExJTktfUFJFUkVOREVSKQorICAgICwgbV9pc0xpbmtQcmVyZW5kZXIoZmFsc2UpCisjZW5kaWYK
IHsKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocmVsLCAic3R5bGVzaGVldCIpKQogICAgICAg
ICBtX2lzU3R5bGVTaGVldCA9IHRydWU7CkBAIC05NiwxMSArMTAwLDEzIEBAIExpbmtSZWxBdHRy
aWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAjaWYgRU5BQkxFKExJ
TktfUFJFRkVUQ0gpCiAgICAgICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSgqaXQs
ICJwcmVmZXRjaCIpKQogICAgICAgICAgICAgICBtX2lzTGlua1ByZWZldGNoID0gdHJ1ZTsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwgInByZXJlbmRlciIpKQot
ICAgICAgICAgICAgICBtX2lzTGlua1ByZXJlbmRlciA9IHRydWU7CiAgICAgICAgICAgICBlbHNl
IGlmIChlcXVhbElnbm9yaW5nQ2FzZSgqaXQsICJzdWJyZXNvdXJjZSIpKQogICAgICAgICAgICAg
ICBtX2lzTGlua1N1YnJlc291cmNlID0gdHJ1ZTsKICNlbmRpZgorI2lmIEVOQUJMRShMSU5LX1BS
RVJFTkRFUikKKyAgICAgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwgInBy
ZXJlbmRlciIpKQorICAgICAgICAgICAgICBtX2lzTGlua1ByZXJlbmRlciA9IHRydWU7CisjZW5k
aWYKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRl
LmgKaW5kZXggMzE3ODE5NGI0OWExYmQwNWI5YjBjMTQ0NDFlYmY1Zjg2MjU3OGFjYy4uOThkZDQ4
MTkxYzlmODM3M2VmMjRiMWQyMjliMTIyM2UyZGEyNzYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9M
aW5rUmVsQXR0cmlidXRlLmgKQEAgLTQ0LDkgKzQ0LDExIEBAIHB1YmxpYzoKICAgICBib29sIG1f
aXNETlNQcmVmZXRjaDsKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBib29sIG1faXNM
aW5rUHJlZmV0Y2g7Ci0gICAgYm9vbCBtX2lzTGlua1ByZXJlbmRlcjsKICAgICBib29sIG1faXNM
aW5rU3VicmVzb3VyY2U7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAg
Ym9vbCBtX2lzTGlua1ByZXJlbmRlcjsKKyNlbmRpZgogCiAgICAgTGlua1JlbEF0dHJpYnV0ZSgp
OwogICAgIGV4cGxpY2l0IExpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggN2Q2OTk3ODg2Yjk2NzBjNzg4ODFlYzU0OGNj
ZjcwZDU2YTc3YTEwMS4uZDk2NjA2ZjkyNWZkNDVhNzQxMmRjNWI2YzAxODdkYmU4NDYzOGJlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDQsNiArNDQsMTEgQEAKICNp
bmNsdWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAorI2lm
IEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyNpbmNsdWRlICJQcmVyZW5kZXJIYW5kbGUuaCIKKyNp
bmNsdWRlICJQcmVyZW5kZXJlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
TGlua0xvYWRlcjo6TGlua0xvYWRlcihMaW5rTG9hZGVyQ2xpZW50KiBjbGllbnQpCkBAIC0xMDMs
NyArMTA4LDcgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmli
dXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFN0cmluZyYgdHkKICAgICB9CiAKICNpZiBFTkFCTEUo
TElOS19QUkVGRVRDSCkKLSAgICBpZiAoKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZWZldGNoIHx8
IHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZXJlbmRlciB8fCByZWxBdHRyaWJ1dGUubV9pc0xpbmtT
dWJyZXNvdXJjZSkgJiYgaHJlZi5pc1ZhbGlkKCkgJiYgZG9jdW1lbnQtPmZyYW1lKCkpIHsKKyAg
ICBpZiAoKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZWZldGNoIHx8IHJlbEF0dHJpYnV0ZS5tX2lz
TGlua1N1YnJlc291cmNlKSAmJiBocmVmLmlzVmFsaWQoKSAmJiBkb2N1bWVudC0+ZnJhbWUoKSkg
ewogICAgICAgICBpZiAoIW1fY2xpZW50LT5zaG91bGRMb2FkTGluaygpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IFJl
c291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZDsKQEAgLTExMyw5ICsxMTgsNyBAQCBib29sIExp
bmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwg
Y29uc3QgU3RyaW5nJiB0eQogICAgICAgICBpZiAocmVsQXR0cmlidXRlLm1faXNMaW5rU3VicmVz
b3VyY2UpIHsKICAgICAgICAgICAgIHByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c7
CiAgICAgICAgICAgICB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZTsKLSAg
ICAgICAgfSBlbHNlIGlmIChyZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVyZW5kZXIpCi0gICAgICAg
ICAgICB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI7Ci0KKyAgICAgICAgfQog
ICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJM
KGhyZWYpKTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkgewpA
QCAtMTI3LDggKzEzMCwyNiBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtS
ZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eQogICAgICAgICAgICAg
bV9jYWNoZWRMaW5rUmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKICAgICB9CiAjZW5kaWYKKwor
I2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBpZiAocmVsQXR0cmlidXRlLm1faXNMaW5r
UHJlcmVuZGVyKSB7CisgICAgICAgIEFTU0VSVCghbV9wcmVyZW5kZXJIYW5kbGUpOworICAgICAg
ICBtX3ByZXJlbmRlckhhbmRsZSA9IGRvY3VtZW50LT5wcmVyZW5kZXJlcigpLT5yZW5kZXIoaHJl
Zik7CisgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgTGlua0xvYWRl
cjo6cmVsZWFzZWQoKQoreworICAgIC8vIE9ubHkgcHJlcmVuZGVycyBuZWVkIHRyZWF0bWVudCBo
ZXJlOyBvdGhlciBsaW5rcyBlaXRoZXIgdXNlIHRoZSBDYWNoZWRSZXNvdXJjZSBpbnRlcmZhY2Us
IG9yIGFyZSBub3Rpb25hbGx5CisgICAgLy8gYXRvbWljIChkbnMgcHJlZmV0Y2gpLgorI2lmIEVO
QUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBpZiAobV9wcmVyZW5kZXJIYW5kbGUpIHsKKyAgICAg
ICAgbV9wcmVyZW5kZXJIYW5kbGUtPmNhbmNlbCgpOworICAgICAgICBtX3ByZXJlbmRlckhhbmRs
ZS5jbGVhcigpOworICAgIH0KKyNlbmRpZgorfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTGlua0xvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2Fk
ZXIuaAppbmRleCAxZmJjMThkN2M3NmViNmE2ZTdhNGVmZDcxOTExMWI2Mzk2MGU3OWRiLi41OGIy
OWE3NzRmNzhkMTQ4MGYxODQ2MzUyYWNkZDdkODUzYzIwZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9M
aW5rTG9hZGVyLmgKQEAgLTM3LDkgKzM3LDE0IEBACiAjaW5jbHVkZSAiTGlua0xvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IExpbmtSZWxBdHRyaWJ1dGU7CisjaWYgRU5BQkxF
KExJTktfUFJFUkVOREVSKQorY2xhc3MgUHJlcmVuZGVySGFuZGxlOworI2VuZGlmCiAKIC8vIFRo
ZSBMaW5rTG9hZGVyIGNhbiBsb2FkIGxpbmsgcmVsIHR5cGVzIGljb24sIGRucy1wcmVmZXRjaCwg
c3VicmVzb3VyY2UsIHByZWZldGNoIGFuZCBwcmVyZW5kZXIuCiBjbGFzcyBMaW5rTG9hZGVyIDog
cHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50IHsKQEAgLTUwLDYgKzU1LDcgQEAgcHVibGljOgog
ICAgIC8vIGZyb20gQ2FjaGVkUmVzb3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICAKKyAgICB2b2lkIHJlbGVhc2VkKCk7CiAg
ICAgYm9vbCBsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiwgY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIHNpemVzLCBjb25zdCBLVVJMJiwgRG9jdW1lbnQqKTsKIAogcHJp
dmF0ZToKQEAgLTYxLDYgKzY3LDEwIEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+IG1fY2FjaGVkTGlua1Jlc291cmNlOwogICAgIFRpbWVyPExpbmtM
b2FkZXI+IG1fbGlua0xvYWRUaW1lcjsKICAgICBUaW1lcjxMaW5rTG9hZGVyPiBtX2xpbmtMb2Fk
aW5nRXJyb3JUaW1lcjsKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBSZWZQdHI8
UHJlcmVuZGVySGFuZGxlPiBtX3ByZXJlbmRlckhhbmRsZTsKKyNlbmRpZgogfTsKICAgICAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1ZmQ4ZGQ4Yjdk
NDkyYmM3MDZlODI2NTMzODM1Nzc3ZjZmMThiZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJlci5oIgorCisjaWYgRU5BQkxFKExJ
TktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVySGFuZGxlLmgi
CisjaW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnQuaCIKKyNpbmNsdWRlICJSZWZlcnJlclBvbGlj
eS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKy8vIHN0YXRpYworUGFzc093blB0cjxQcmVyZW5kZXJlcj4gUHJlcmVuZGVyZXI6OmNy
ZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgUHJlcmVuZGVyZXIqIHByZXJlbmRlcmVy
ID0gbmV3IFByZXJlbmRlcmVyKGRvY3VtZW50KTsKKyAgICBwcmVyZW5kZXJlci0+c3VzcGVuZElm
TmVlZGVkKCk7CisgICAgcmV0dXJuIGFkb3B0UHRyKHByZXJlbmRlcmVyKTsKK30KKworUHJlcmVu
ZGVyZXI6OlByZXJlbmRlcmVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9i
amVjdChkb2N1bWVudCwgdGhpcykKKyAgICAsIG1fY2xpZW50KDApCit7Cit9CisKK1ByZXJlbmRl
cmVyOjp+UHJlcmVuZGVyZXIoKQoreworfQorCitQYXNzUmVmUHRyPFByZXJlbmRlckhhbmRsZT4g
UHJlcmVuZGVyZXI6OnJlbmRlcihjb25zdCBLVVJMJiB1cmwpCit7CisgICAgLy8gUHJlcmVuZGVy
cyBhcmUgdW5saWtlIHJlcXVlc3RzIGluIG1vc3Qgd2F5cyAoZm9yIGluc3RhbmNlLCB0aGV5IHBh
c3MgZG93biBmcmFnbWVudHMsIGFuZCB0aGV5IGRvbid0IHJldHVybiBkYXRhKSwKKyAgICAvLyBi
dXQgdGhleSBkbyBoYXZlIHJlZmVycmVycy4KKyAgICBjb25zdCBSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSA9IGRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCk7CisgICAgY29uc3QgU3Ry
aW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIocmVm
ZXJyZXJQb2xpY3ksIHVybCwgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCktPm91dGdvaW5n
UmVmZXJyZXIoKSk7CisKKyAgICBSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBwcmVyZW5kZXJIYW5k
bGUgPSBQcmVyZW5kZXJIYW5kbGU6OmNyZWF0ZSh1cmwsIHJlZmVycmVyLCByZWZlcnJlclBvbGlj
eSk7CisKKyAgICBjbGllbnQoKS0+d2lsbEFkZFByZXJlbmRlcihwcmVyZW5kZXJIYW5kbGUuZ2V0
KCkpOworICAgIHByZXJlbmRlckhhbmRsZS0+YWRkKCk7CisKKyAgICBtX2FjdGl2ZUhhbmRsZXMu
YXBwZW5kKHByZXJlbmRlckhhbmRsZSk7CisgICAgcmV0dXJuIHByZXJlbmRlckhhbmRsZTsKK30K
Kwordm9pZCBQcmVyZW5kZXJlcjo6c3RvcCgpCit7CisgICAgd2hpbGUgKCFtX2FjdGl2ZUhhbmRs
ZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IGhhbmRsZSA9
IG1fYWN0aXZlSGFuZGxlc1swXS5yZWxlYXNlKCk7CisgICAgICAgIG1fYWN0aXZlSGFuZGxlcy5y
ZW1vdmUoMCk7CisgICAgICAgIGhhbmRsZS0+YWJhbmRvbigpOworICAgIH0KKyAgICB3aGlsZSAo
IW1fc3VzcGVuZGVkSGFuZGxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPFByZXJlbmRl
ckhhbmRsZT4gaGFuZGxlID0gbV9zdXNwZW5kZWRIYW5kbGVzWzBdLnJlbGVhc2UoKTsKKyAgICAg
ICAgbV9zdXNwZW5kZWRIYW5kbGVzLnJlbW92ZSgwKTsKKyAgICAgICAgaGFuZGxlLT5hYmFuZG9u
KCk7CisgICAgfQorfQorCit2b2lkIFByZXJlbmRlcmVyOjpzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24gcmVhc29uKQoreworICAgIGlmIChyZWFzb24gPT0gRG9jdW1lbnRXaWxsQmVjb21lSW5h
Y3RpdmUgfHwgcmVhc29uID09IFBhZ2VXaWxsQmVTdXNwZW5kZWQpIHsKKyAgICAgICAgd2hpbGUg
KCFtX2FjdGl2ZUhhbmRsZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBSZWZQdHI8UHJlcmVu
ZGVySGFuZGxlPiBoYW5kbGUgPSBtX2FjdGl2ZUhhbmRsZXNbMF0ucmVsZWFzZSgpOworICAgICAg
ICAgICAgbV9hY3RpdmVIYW5kbGVzLnJlbW92ZSgwKTsKKyAgICAgICAgICAgIGhhbmRsZS0+c3Vz
cGVuZCgpOworICAgICAgICAgICAgbV9zdXNwZW5kZWRIYW5kbGVzLmFwcGVuZChoYW5kbGUpOwor
ICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFByZXJlbmRlcmVyOjpyZXN1bWUoKQoreworICAg
IHdoaWxlICghbV9zdXNwZW5kZWRIYW5kbGVzLmlzRW1wdHkoKSkgeworICAgICAgICBSZWZQdHI8
UHJlcmVuZGVySGFuZGxlPiBoYW5kbGUgPSBtX3N1c3BlbmRlZEhhbmRsZXNbMF0ucmVsZWFzZSgp
OworICAgICAgICBtX3N1c3BlbmRlZEhhbmRsZXMucmVtb3ZlKDApOworICAgICAgICBoYW5kbGUt
PnJlc3VtZSgpOworICAgICAgICBtX2FjdGl2ZUhhbmRsZXMuYXBwZW5kKGhhbmRsZSk7CisgICAg
fQorfQorCitEb2N1bWVudCogUHJlcmVuZGVyZXI6OmRvY3VtZW50KCkKK3sKKyAgICBBU1NFUlQo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKK1ByZXJl
bmRlcmVyQ2xpZW50KiBQcmVyZW5kZXJlcjo6Y2xpZW50KCkKK3sKKyAgICBpZiAoIW1fY2xpZW50
KQorICAgICAgICBtX2NsaWVudCA9IFByZXJlbmRlcmVyQ2xpZW50Ojpmcm9tKGRvY3VtZW50KCkt
PnBhZ2UoKSk7CisgICAgcmV0dXJuIG1fY2xpZW50OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoTElOS19QUkVSRU5ERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJl
cmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY1NDgxZTY5NDI4ZmJmNzZhMTcxZGZmOTE2NWQ2YzQyYjA2YTliOTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuaApAQCAtMCwwICsxLDg1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgor
ICovCisKKyNpZm5kZWYgUHJlcmVuZGVyZXJfaAorI2RlZmluZSBQcmVyZW5kZXJlcl9oCisKKyNp
ZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
KyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1NpbmdseUxpbmtlZExpc3QuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBQcmVyZW5kZXJIYW5kbGU7CitjbGFzcyBQcmVyZW5kZXJlckNsaWVudDsKK2NsYXNz
IFBhZ2U7CisKK2NsYXNzIFByZXJlbmRlcmVyIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJlcmVuZGVyZXIpOworcHVibGljOgorICAgIHZpcnR1
YWwgflByZXJlbmRlcmVyKCk7CisKKyAgICBQYXNzUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gcmVu
ZGVyKGNvbnN0IEtVUkwmKTsKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPFByZXJlbmRlcmVyPiBj
cmVhdGUoRG9jdW1lbnQqKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8
UHJlcmVuZGVySGFuZGxlPiA+IEhhbmRsZVZlY3RvcjsKKyAgICB0eXBlZGVmIFZlY3RvcjxLVVJM
PiBLVVJMVmVjdG9yOworCisgICAgUHJlcmVuZGVyZXIoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1
YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQo
UmVhc29uRm9yU3VzcGVuc2lvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgp
IE9WRVJSSURFOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCk7CisgICAgUHJlcmVuZGVyZXJD
bGllbnQqIGNsaWVudCgpOworCisgICAgUHJlcmVuZGVyZXJDbGllbnQqIG1fY2xpZW50OworICAg
IEhhbmRsZVZlY3RvciBtX2FjdGl2ZUhhbmRsZXM7CisgICAgSGFuZGxlVmVjdG9yIG1fc3VzcGVu
ZGVkSGFuZGxlczsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikK
KworI2VuZGlmIC8vIFByZXJlbmRlcmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVu
ZGVyZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4ZjI0NzBlMjYxNjRhNGRkMTU5MzU5NWM2M2Yx
MjcxYWZmZTZjMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJl
cmVuZGVyZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlByZXJlbmRlcmVyQ2xpZW50LmgiCisKKyNpbmNsdWRlICJQYWdlLmgiCisj
aW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaD4KKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCisvLyBzdGF0aWMKK2NvbnN0IEF0b21pY1N0cmluZyYgUHJlcmVuZGVyZXJDbGllbnQ6OnN1
cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJQcmVyZW5kZXJlckNsaWVudCIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworLy8g
c3RhdGljCitQcmVyZW5kZXJlckNsaWVudCogUHJlcmVuZGVyZXJDbGllbnQ6OmZyb20oUGFnZSog
cGFnZSkKK3sKKyAgICBQcmVyZW5kZXJlckNsaWVudCogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0
PFByZXJlbmRlcmVyQ2xpZW50Kj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVt
ZW50TmFtZSgpKSk7CisgICAgQVNTRVJUKHN1cHBsZW1lbnQpOworICAgIHJldHVybiBzdXBwbGVt
ZW50OworfQorCit2b2lkIHByb3ZpZGVQcmVyZW5kZXJlckNsaWVudFRvKFBhZ2UqIHBhZ2UsIFBy
ZXJlbmRlcmVyQ2xpZW50KiBjbGllbnQpCit7CisgICAgUHJlcmVuZGVyZXJDbGllbnQ6OnByb3Zp
ZGVUbyhwYWdlLCBQcmVyZW5kZXJlckNsaWVudDo6c3VwcGxlbWVudE5hbWUoKSwgYWRvcHRQdHIo
Y2xpZW50KSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5k
ZXJlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhNGNlOTQ2ZjYzODcxODA2NzgyNmM1ZDdlMDVhYWY3
ZjRjZjE1ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVu
ZGVyZXJDbGllbnQuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgUHJlcmVuZGVyZXJDbGll
bnRfaAorI2RlZmluZSBQcmVyZW5kZXJlckNsaWVudF9oCisKKyNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCisKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBQYWdlOworY2xhc3MgUHJlcmVuZGVySGFuZGxlOworCitjbGFzcyBQcmVyZW5kZXJlckNsaWVu
dCA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QcmVy
ZW5kZXJlckNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHdpbGxBZGRQcmVyZW5kZXIo
UHJlcmVuZGVySGFuZGxlKikgPSAwOworCisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
c3VwcGxlbWVudE5hbWUoKTsKKyAgICBzdGF0aWMgUHJlcmVuZGVyZXJDbGllbnQqIGZyb20oUGFn
ZSopOworCitwcm90ZWN0ZWQ6CisgICAgUHJlcmVuZGVyZXJDbGllbnQoKSB7IH0KK307CisKK3Zv
aWQgcHJvdmlkZVByZXJlbmRlcmVyQ2xpZW50VG8oUGFnZSosIFByZXJlbmRlcmVyQ2xpZW50Kik7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRUQoTElOS19QUkVS
RU5ERVIpCisKKyNlbmRpZiAvLyBQcmVyZW5kZXJlckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCAwMzY4YTcyNDUyNWZhZmU2
NDkwNTg3YmViMmI0ZjZlNmU5ZmNjNmU2Li5jOTVhYmVkYjRjOTA4YzU5N2RlNDM1ZTJkNTM4OGRi
NDIxNDQzZWFiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5jcHAKQEAgLTczLDggKzczLDYgQEAgc3RhdGljIFJlc291cmNlTG9hZFByaW9yaXR5IGRl
ZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZQogI2lmIEVO
QUJMRShMSU5LX1BSRUZFVENIKQogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJl
ZmV0Y2g6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93Owot
ICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgotICAgICAgICAgICAg
cmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9h
ZFByaW9yaXR5VmVyeUxvdzsKICNlbmRpZgpAQCAtMTE0LDggKzExMiw2IEBAIHN0YXRpYyBSZXNv
dXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgY2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBlKENh
Y2hlZFJlc291cmNlCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TGlua1ByZWZldGNoOgogICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRJc1ByZWZldGNoOwotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6
Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJlcmVuZGVyOwogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICAgICAgICAgcmV0dXJuIFJl
c291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJyZXNvdXJjZTsKICNlbmRpZgpAQCAtMjIwLDcgKzIx
Niw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNh
Y2hlZFJlc291cmNlTG9hZGVyLCBjb25zdCBSZXNvCiAgICAgfQogCiAjaWYgRU5BQkxFKExJTktf
UFJFRkVUQ0gpCi0gICAgaWYgKHR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNo
IHx8IHR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlciB8fCB0eXBlKCkgPT0g
Q2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSkKKyAgICBpZiAodHlwZSgpID09IENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSgpID09IENhY2hlZFJlc291cmNlOjpMaW5r
U3VicmVzb3VyY2UpCiAgICAgICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVs
ZCgiUHVycG9zZSIsICJwcmVmZXRjaCIpOwogI2VuZGlmCiAgICAgbV9yZXNvdXJjZVJlcXVlc3Qu
c2V0UHJpb3JpdHkobG9hZFByaW9yaXR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBjMDdiMjMxZDRkNTk4NTc1MWNjY2EwNjIxZDM3NTdh
OTU2NmI0Njk4Li45MTFmODUwZTg4NWNjZmY3ZjFkMjRjYjY4YzU2ZTQwZTVmYWYyZjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtNzQsNyAr
NzQsNiBAQCBwdWJsaWM6CiAjZW5kaWYKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICAg
ICAgLCBMaW5rUHJlZmV0Y2gKLSAgICAgICAgLCBMaW5rUHJlcmVuZGVyCiAgICAgICAgICwgTGlu
a1N1YnJlc291cmNlCiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC0xNTAsNyAr
MTQ5LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZmFsc2UKICNpZiBFTkFCTEUoTElOS19Q
UkVGRVRDSCkKICAgICAgICAgICAgIHx8IHR5cGUoKSA9PSBMaW5rUHJlZmV0Y2gKLSAgICAgICAg
ICAgIHx8IHR5cGUoKSA9PSBMaW5rUHJlcmVuZGVyCiAgICAgICAgICAgICB8fCB0eXBlKCkgPT0g
TGlua1N1YnJlc291cmNlCiAjZW5kaWYKICAgICAgICAgICAgIHx8IHR5cGUoKSA9PSBSYXdSZXNv
dXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IDg0NmYzYTczOWY5NWQzMjAwOThiMjljMzBkYTM4NGM3OTg2ZDFh
MjIuLjFhNWE2ZmJkMjUxZmM0ZDY0NTMzM2JmMDgxODEzOTRjZjVkZmQxMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApA
QCAtODgsOCArODgsNiBAQCBzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdAogI2lmIEVOQUJMRShMSU5L
X1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKICAgICAg
ICAgcmV0dXJuIG5ldyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlu
a1ByZWZldGNoKTsKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgotICAg
ICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpM
aW5rUHJlcmVuZGVyKTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6
CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3Vy
Y2U6OkxpbmtTdWJyZXNvdXJjZSk7CiAjZW5kaWYKQEAgLTI0MCw3ICsyMzgsNyBAQCBDYWNoZWRT
VkdEb2N1bWVudCogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChSZXNv
dXJjZVJlcXVlc3QmIHJlcQogQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAgQVNT
RVJUKGZyYW1lKCkpOwotICAgIEFTU0VSVCh0eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJl
ZmV0Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlciB8fCB0eXBlID09
IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UpOworICAgIEFTU0VSVCh0eXBlID09IENh
Y2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1N1YnJlc291cmNlKTsKICAgICByZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3Qs
IFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIHByaW9yaXR5KTsKIH0K
ICNlbmRpZgpAQCAtMjg2LDcgKzI4NCw2IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNo
ZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0CiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U6CiAjaWYgRU5BQkxFKExJTktfUFJFRkVU
Q0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgotICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1N1YnJlc291cmNlOgogICAgICAgICAvLyBQcmVmZXRjaCBjYW5ub3QgYWZmZWN0IHRoZSBjdXJy
ZW50IGRvY3VtZW50LgogI2VuZGlmCkBAIC0zMTUsNyArMzEyLDYgQEAgYm9vbCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBL
VVJMJiB1cmwKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZToKICNpZiBFTkFC
TEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6
Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCkBAIC0zODUsNyArMzgxLDYgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVx
dWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6Ci0gICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3Vi
cmVzb3VyY2U6CiAjZW5kaWYKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1ByZXJlbmRlckhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ZmRhZmNmNDBmNGVhZmU4NDBiMDhiZjk2
MGU3MTQyM2RmNzJhN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QcmVyZW5kZXJIYW5kbGUuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgUHJlcmVuZGVy
SGFuZGxlX2gKKyNkZWZpbmUgUHJlcmVuZGVySGFuZGxlX2gKKworI2lmIEVOQUJMRShMSU5LX1BS
RVJFTkRFUikKKworI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBLVVJMOworY2xhc3MgUHJlcmVuZGVyOworCitjbGFzcyBQcmVyZW5k
ZXJIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcmVyZW5kZXJIYW5kbGU+IHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShQcmVyZW5kZXJIYW5kbGUpOworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gY3JlYXRlKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJp
bmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGljeSk7CisgICAgflByZXJlbmRlckhhbmRsZSgpOwor
CisgICAgUHJlcmVuZGVyKiBwcmVyZW5kZXIoKTsKKworICAgIC8vIEZJWE1FOiBvbmUgZGF5IHRo
ZXJlIHdpbGwgYmUgZXZlbnRzIGhlcmUsIGFuZCB3ZSB3aWxsIGJlIGEgUHJlcmVuZGVyQ2xpZW50
LgorCisgICAgLy8gQSBwcmVyZW5kZXIgbGluayBlbGVtZW50IGlzIGFkZGVkIHdoZW4gaXQgaXMg
aW5zZXJ0ZWQgaW50byBhIGRvY3VtZW50LgorICAgIHZvaWQgYWRkKCk7CisKKyAgICAvLyBBIHBy
ZXJlbmRlciBpcyBhYmFuZG9uZWQgd2hlbiBpdCdzIG5hdmlnYXRlZCBhd2F5IGZyb20uIFRoaXMg
aXMgaXMgYSB3ZWFrZXIgc2lnbmFsCisgICAgLy8gdGhhbiBjYW5jZWwoKSwgc2luY2UgdGhlIGxh
dW5jaGVyIGhhc24ndCBpbmRpY2F0ZWQgdGhhdCB0aGUgcHJlcmVuZGVyIGlzbid0IHdhbnRlZCwK
KyAgICAvLyBhbmQgd2UgbWF5IGVuZCB1cCB1c2luZyBpdCBhZnRlciwgZm9yIGluc3RhbmNlLCBh
IHNob3J0IHJlZGlyZWN0IGNoYWluLgorICAgIHZvaWQgYWJhbmRvbigpOworCisgICAgLy8gQSBw
cmVyZW5kZXIgaXMgY2FuY2VsZWQgd2hlbiBpdCBpcyByZW1vdmVkIGZyb20gYSBkb2N1bWVudC4K
KyAgICB2b2lkIGNhbmNlbCgpOworCisgICAgLy8gQSBwcmVyZW5kZXIgaXMgc3VzcGVuZGVkIGFs
b25nIHdpdGggdGhlIERPTSBjb250YWluaW5nIGl0cyBsaW5rbG9hZGVyICYgcHJlcmVuZGVyZXIu
CisgICAgdm9pZCBzdXNwZW5kKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKworICAgIGNvbnN0IEtV
UkwmIHVybCgpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIoKSBjb25zdDsKKyAg
ICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0OworCitwcml2YXRlOgorICAg
IFByZXJlbmRlckhhbmRsZShjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgUmVm
ZXJyZXJQb2xpY3kpOworICAgIFJlZlB0cjxQcmVyZW5kZXI+IG1fcHJlcmVuZGVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVOREVS
KQorCisjZW5kaWYgLy8gUHJlcmVuZGVySGFuZGxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxYjljZGE5NjVkOGExZDk2
MTMzMjczZmM0ODMwMmVkODA1NWM5ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuY3BwCkBAIC0wLDAgKzEsMTE2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXIuaCIKKworI2luY2x1ZGUgPHB1
YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXIuaD4KKyNpbmNs
dWRlIDxwdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwdWJsaWMv
V2ViUmVmZXJyZXJQb2xpY3kuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CisjaW5j
bHVkZSA8cHVibGljL1dlYlVSTC5oPgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1ByZXJlbmRlcjo6UHJlcmVuZGVyKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgUmVmZXJyZXJQb2xpY3kgcG9saWN5KQorICAgIDog
bV91cmwodXJsKQorICAgICwgbV9yZWZlcnJlcihyZWZlcnJlcikKKyAgICAsIG1fcmVmZXJyZXJQ
b2xpY3kocG9saWN5KQorICAgICwgbV9wbGF0Zm9ybSgwKQorI2lmbmRlZiBOREVCVUcKKyAgICAs
IG1fc3RhdGUoSW5hY3RpdmUpCisjZW5kaWYKK3sKK30KKworUHJlcmVuZGVyOjp+UHJlcmVuZGVy
KCkKK3sKK30KKwordm9pZCBQcmVyZW5kZXI6OnNldFN0YXRlKFN0YXRlIHN0YXRlKQoreworI2lm
ZGVmIE5ERUJVRworICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CisjZWxzZQorICAgIG1fc3RhdGUg
PSBzdGF0ZTsKKyNlbmRpZgorfQorCit2b2lkIFByZXJlbmRlcjo6YWRkKCkKK3sKKyAgICBBU1NF
UlQobV9zdGF0ZSA9PSBJbmFjdGl2ZSk7CisgICAgaWYgKCFtX3BsYXRmb3JtKQorICAgICAgICBt
X3BsYXRmb3JtID0gV2ViS2l0OjpXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybTo6Z2V0UGxhdGZvcm0o
KTsKKyAgICBpZiAoIW1fcGxhdGZvcm0pCisgICAgICAgIHJldHVybjsKKyAgICBXZWJLaXQ6Oldl
YlByZXJlbmRlciB3ZWJQcmVyZW5kZXIodGhpcyk7CisgICAgbV9wbGF0Zm9ybS0+YWRkKHdlYlBy
ZXJlbmRlcik7CisgICAgc2V0U3RhdGUoQWN0aXZlKTsKK30KKwordm9pZCBQcmVyZW5kZXI6OmNh
bmNlbCgpCit7CisgICAgaWYgKCFtX3BsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKG1fc3RhdGUgPT0gQWN0aXZlKTsKKyAgICBXZWJLaXQ6OldlYlByZXJlbmRlciB3ZWJQcmVy
ZW5kZXIodGhpcyk7CisgICAgbV9wbGF0Zm9ybS0+Y2FuY2VsKHdlYlByZXJlbmRlcik7CisgICAg
c2V0U3RhdGUoSW5hY3RpdmUpOworfQorCit2b2lkIFByZXJlbmRlcjo6YWJhbmRvbigpCit7Cisg
ICAgaWYgKCFtX3BsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IEFzc2Vy
dCBvbiB0aGUgc3RhdGUgYXMgSW5hY3RpdmUgaGVyZS4gSXQgaXMgY3VycmVudGx5IGNvbW1vbiB0
byBjYWxsIGFiYW5kb24oKSBvbiBhbiBJbmFjdGl2ZQorICAgIC8vIHByZXJlbmRlciwgYXMgdGhl
IFByZXJlbmRlcmVyIGRvZXNuJ3Qga2VlcCB0cmFjayBvZiB3aGljaCBwcmVyZW5kZXJzIGFyZSBh
Y3RpdmUsIGFuZCBzbyBhbnkgcGFnZSB0aGF0CisgICAgLy8gZXZlciBoYWQgYSBub3ctY2FuY2Vs
ZWQgUHJlcmVuZGVyIHdpbGwgZ2V0IHRoaXMgYm9ndXMgc3RvcCgpIGNhbGwuCisgICAgV2ViS2l0
OjpXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOworICAgIG1fcGxhdGZvcm0tPmFiYW5k
b24od2ViUHJlcmVuZGVyKTsKKyAgICBzZXRTdGF0ZShJbmFjdGl2ZSk7Cit9CisKK3ZvaWQgUHJl
cmVuZGVyOjpzdXNwZW5kKCkKK3sKKyAgICBhYmFuZG9uKCk7Cit9CisKK3ZvaWQgUHJlcmVuZGVy
OjpyZXN1bWUoKQoreworICAgIGFkZCgpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTElO
S19QUkVSRU5ERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QcmVyZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3NDg4ZTdjNjYwMTJkOTljNDA5ZDAxOTY5N2NjNGZhZGQzZWJlZDAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVy
ZW5kZXIuaApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFByZXJlbmRlcl9oCisjZGVmaW5l
IFByZXJlbmRlcl9oCisKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xp
Y3kuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUHJlcmVuZGVyaW5nUGxhdGZv
cm07Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUHJlcmVuZGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8UHJlcmVuZGVyPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJlcmVu
ZGVyKTsKK3B1YmxpYzoKKyAgICBjbGFzcyBFeHRyYURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxF
eHRyYURhdGE+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsg
fQorICAgIH07CisKKyAgICBQcmVyZW5kZXIoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIFJlZmVycmVyUG9saWN5KTsKKyAgICB+UHJlcmVuZGVyKCk7CisKKyAgICB2b2lkIGFk
ZCgpOworICAgIHZvaWQgY2FuY2VsKCk7CisgICAgdm9pZCBhYmFuZG9uKCk7CisgICAgdm9pZCBz
dXNwZW5kKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKworICAgIGNvbnN0IEtVUkwmIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsOyB9CisgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVmZXJyZXI7IH0KKyAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7IH0KKworICAgIHZvaWQgc2V0RXh0
cmFEYXRhKFBhc3NSZWZQdHI8RXh0cmFEYXRhPiBleHRyYURhdGEpIHsgbV9leHRyYURhdGEgPSBl
eHRyYURhdGE7IH0KKyAgICBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1fZXh0cmFE
YXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZW51bSBTdGF0ZSB7CisgICAgICAgIEluYWN0
aXZlLAorICAgICAgICBBY3RpdmUsCisgICAgfTsKKworICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUp
OworCisgICAgY29uc3QgS1VSTCBtX3VybDsKKyAgICBjb25zdCBTdHJpbmcgbV9yZWZlcnJlcjsK
KyAgICBjb25zdCBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5OworCisgICAgUmVmUHRy
PEV4dHJhRGF0YT4gbV9leHRyYURhdGE7CisKKyAgICBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1Bs
YXRmb3JtKiBtX3BsYXRmb3JtOworCisjaWZuZGVmIE5ERUJVRworICAgIFN0YXRlIG1fc3RhdGU7
CisjZW5kaWYKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKwor
I2VuZGlmIC8vIFByZXJlbmRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUHJlcmVuZGVySGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGYyOWYwYzZiNmE3NDZk
OThiOWMxOWIxODk3OGM0NWYwOWI0OWJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVySGFuZGxlLmNwcApAQCAtMCwwICsxLDEwNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVySGFuZGxlLmgiCisK
KyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVk
ZSAiUHJlcmVuZGVyLmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBQcmVyZW5kZXJI
YW5kbGU6OmNyZWF0ZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJl
ZmVycmVyUG9saWN5IHBvbGljeSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByZXJlbmRl
ckhhbmRsZSh1cmwsIHJlZmVycmVyLCBwb2xpY3kpKTsKK30KKworUHJlcmVuZGVySGFuZGxlOjpQ
cmVyZW5kZXJIYW5kbGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBS
ZWZlcnJlclBvbGljeSBwb2xpY3kpCisgICAgICAgIDogbV9wcmVyZW5kZXIoYWRvcHRSZWYobmV3
IFByZXJlbmRlcih1cmwsIHJlZmVycmVyLCBwb2xpY3kpKSkKK3sKK30KKworUHJlcmVuZGVySGFu
ZGxlOjp+UHJlcmVuZGVySGFuZGxlKCkKK3sKK30KKworUHJlcmVuZGVyKiBQcmVyZW5kZXJIYW5k
bGU6OnByZXJlbmRlcigpCit7CisgICAgcmV0dXJuIG1fcHJlcmVuZGVyLmdldCgpOworfQorCit2
b2lkIFByZXJlbmRlckhhbmRsZTo6YWRkKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+YWRkKCk7Cit9
CisKK3ZvaWQgUHJlcmVuZGVySGFuZGxlOjpjYW5jZWwoKQoreworICAgIHByZXJlbmRlcigpLT5j
YW5jZWwoKTsKK30KKwordm9pZCBQcmVyZW5kZXJIYW5kbGU6OmFiYW5kb24oKQoreworICAgIHBy
ZXJlbmRlcigpLT5hYmFuZG9uKCk7Cit9CisKK3ZvaWQgUHJlcmVuZGVySGFuZGxlOjpzdXNwZW5k
KCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+c3VzcGVuZCgpOworfQorCit2b2lkIFByZXJlbmRlckhh
bmRsZTo6cmVzdW1lKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+cmVzdW1lKCk7Cit9CisKK2NvbnN0
IEtVUkwmIFByZXJlbmRlckhhbmRsZTo6dXJsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVy
ZW5kZXItPnVybCgpOworfQorCitjb25zdCBTdHJpbmcmIFByZXJlbmRlckhhbmRsZTo6cmVmZXJy
ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByZXJlbmRlci0+dXJsKCk7Cit9CisKK1JlZmVy
cmVyUG9saWN5IFByZXJlbmRlckhhbmRsZTo6cmVmZXJyZXJQb2xpY3koKSBjb25zdAoreworICAg
IHJldHVybiBtX3ByZXJlbmRlci0+cmVmZXJyZXJQb2xpY3koKTsKK30KKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKExJTktfUFJFUkVOREVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQcmVyZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQcmVyZW5kZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJh
N2JhZjU1NzRhMDJiZjU0ZjAyOGEyMDU5NTI0MzM0ZjNhYzlhMzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlByZXJlbmRlci5j
cHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8cHVibGlj
L1dlYlByZXJlbmRlci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKKyNpZiBFTkFC
TEUoTElOS19QUkVSRU5ERVIpCisKKyNpbmNsdWRlICJQcmVyZW5kZXIuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIEV4dHJhRGF0YUNvbnRhaW5lciA6IHB1
YmxpYyBXZWJDb3JlOjpQcmVyZW5kZXI6OkV4dHJhRGF0YSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RXh0cmFEYXRhQ29udGFpbmVyPiBjcmVhdGUoV2ViUHJlcmVuZGVyOjpFeHRy
YURhdGEqIGV4dHJhRGF0YSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEV4dHJhRGF0YUNvbnRhaW5l
cihleHRyYURhdGEpKTsgfQorCisgICAgdmlydHVhbCB+RXh0cmFEYXRhQ29udGFpbmVyKCkgeyB9
CisKKyAgICBXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1
cm4gbV9leHRyYURhdGEuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBFeHRyYURh
dGFDb250YWluZXIoV2ViUHJlcmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSkKKyAgICAgICAg
ICAgIDogbV9leHRyYURhdGEoYWRvcHRQdHIoZXh0cmFEYXRhKSkKKyAgICB7CisgICAgfQorCisg
ICAgT3duUHRyPFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhPiBtX2V4dHJhRGF0YTsKK307CisKK30g
Ly8gYW5vbiBuYW1lc3BhY2UKKworV2ViUHJlcmVuZGVyOjpXZWJQcmVyZW5kZXIoUGFzc1JlZlB0
cjxXZWJDb3JlOjpQcmVyZW5kZXI+IHByZXJlbmRlcikKKyAgICA6IG1fcHJpdmF0ZShwcmVyZW5k
ZXIpCit7Cit9CisKK1dlYlByZXJlbmRlcjo6fldlYlByZXJlbmRlcigpCit7CisgICAgbV9wcml2
YXRlLnJlc2V0KCk7Cit9CisKK1dlYlVSTCBXZWJQcmVyZW5kZXI6OnVybCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdlYlVSTChtX3ByaXZhdGUtPnVybCgpKTsKK30KKworV2ViU3RyaW5nIFdlYlBy
ZXJlbmRlcjo6cmVmZXJyZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnJlZmVy
cmVyKCk7Cit9CisKK1dlYlJlZmVycmVyUG9saWN5IFdlYlByZXJlbmRlcjo6cmVmZXJyZXJQb2xp
Y3koKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJSZWZlcnJlclBvbGljeT4o
bV9wcml2YXRlLT5yZWZlcnJlclBvbGljeSgpKTsKK30KKwordm9pZCBXZWJQcmVyZW5kZXI6OnNl
dEV4dHJhRGF0YShXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogZXh0cmFEYXRhKQoreworICAgIG1f
cHJpdmF0ZS0+c2V0RXh0cmFEYXRhKEV4dHJhRGF0YUNvbnRhaW5lcjo6Y3JlYXRlKGV4dHJhRGF0
YSkpOworfQorCitjb25zdCBXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogV2ViUHJlcmVuZGVyOjpl
eHRyYURhdGEoKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJDb3JlOjpQcmVyZW5kZXI6OkV4dHJh
RGF0YT4gd2ViY29yZUV4dHJhRGF0YSA9IG1fcHJpdmF0ZS0+ZXh0cmFEYXRhKCk7CisgICAgaWYg
KCF3ZWJjb3JlRXh0cmFEYXRhKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8RXh0cmFEYXRhQ29udGFpbmVyKj4od2ViY29yZUV4dHJhRGF0YS5nZXQoKSktPmV4dHJh
RGF0YSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRUQo
TElOS19QUkVSRU5ERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaAppbmRleCBmY2UxZWJmZDA3MjM5OTQ0
MzQxOTYzM2RkMWQ3MTA5ZWU4NzIzNDMyLi43ZWE2MWE4ODhiYzlmYjhhZWJiMjQxM2I4NDFiM2Nj
MzZlMjY1Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTUzLDcgKzUzLDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgVGFyZ2V0SXNXb3JrZXIsCiAgICAgICAgICAgICBU
YXJnZXRJc1NoYXJlZFdvcmtlciwKICAgICAgICAgICAgIFRhcmdldElzUHJlZmV0Y2gsCi0gICAg
ICAgICAgICBUYXJnZXRJc1ByZXJlbmRlciwKICAgICAgICAgICAgIFRhcmdldElzRmF2aWNvbiwK
ICAgICAgICAgICAgIFRhcmdldElzWEhSLAogICAgICAgICAgICAgVGFyZ2V0SXNUZXh0VHJhY2ss
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggN2JmZjliYzcyZTk0M2MwMmIxZjFhMjAx
ODIxM2RlZjJhOGMyNTM4ZS4uYjg1ZDc1NmZiZjFjMTI0ZDY4OGRiMDQzMzZkODBkMmVhY2YyN2Zk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtNDM3LDYgKzQzNyw4IEBACiAgICAg
ICAgICAgICAgICAgJ3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuaCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oJywKKyAgICAgICAgICAgICAgICAn
c3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1ByZXJl
bmRlcmVyQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvYW5kcm9pZC9XZWJJ
bnB1dEV2ZW50RmFjdG9yeS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvbGludXgvV2ViRm9u
dEluZm8uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2xpbnV4L1dlYkZvbnRSZW5kZXJpbmcu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCA1NjFiMTMw
MjQ1NWFjZjY1YTM0YjhjNjI2M2Q5MzZiMmMyYmVmZTUwLi5hZTNjOGVhMjczMmIxM2YwYTBlZTQ1
ZTRkM2ZlMTlmYzcxMDU4ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
dy5oCkBAIC0xMDYsOSArMTA2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRv
ZmlsbENsaWVudChXZWJBdXRvZmlsbENsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50Q2xpZW50KikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqKSA9IDA7
Ci0gICAgLy8gRklYTUU6IEFmdGVyIHRoZSBQcmVyZW5kZXJpbmcgQVBJIGxhbmRzIGluIGNocm9t
ZSwgcmVtb3ZlIHRoaXMgc3RhZ2luZyB0aHVuawotICAgIC8vIGZvciBzZXRQcmVyZW5kZXJlckNs
aWVudCgpLgotICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVyZW5kZXJlckNsaWVudChXZWJQcmVyZW5k
ZXJlckNsaWVudCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVyZW5kZXJlckNsaWVudChX
ZWJQcmVyZW5kZXJlckNsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3BlbGxDaGVj
a0NsaWVudChXZWJTcGVsbENoZWNrQ2xpZW50KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGRU
ZXh0RmllbGREZWNvcmF0b3JDbGllbnQoV2ViVGV4dEZpZWxkRGVjb3JhdG9yQ2xpZW50KikgPSAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QcmVyZW5kZXJlckNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJlcmVuZGVyZXJDbGll
bnRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjUxZDI3OWRlODQ1MWE4YmJhMWRiNTQ4NjQ1ZjlkYzZk
MDY2MzI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJl
cmVuZGVyZXJDbGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJlckNsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXIuaCIKKyNp
bmNsdWRlICJQcmVyZW5kZXJIYW5kbGUuaCIKKyNpbmNsdWRlICJXZWJQcmVyZW5kZXJlckNsaWVu
dC5oIgorI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCisjaW5jbHVkZSA8cHVibGljL1dlYlByZXJl
bmRlci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitQcmVyZW5kZXJlckNsaWVudEltcGw6OlByZXJlbmRlcmVyQ2xpZW50SW1wbChXZWJQcmVy
ZW5kZXJlckNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQoreworfQorCit2
b2lkIFByZXJlbmRlcmVyQ2xpZW50SW1wbDo6d2lsbEFkZFByZXJlbmRlcihXZWJDb3JlOjpQcmVy
ZW5kZXJIYW5kbGUqIHByZXJlbmRlckhhbmRsZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAg
ICAgICByZXR1cm47CisgICAgV2ViUHJlcmVuZGVyIHdlYlByZXJlbmRlcihwcmVyZW5kZXJIYW5k
bGUtPnByZXJlbmRlcigpKTsKKyAgICBtX2NsaWVudC0+d2lsbEFkZFByZXJlbmRlcigmd2ViUHJl
cmVuZGVyKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UHJlcmVuZGVyZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QcmVy
ZW5kZXJlckNsaWVudEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTE3NjMyYWVhNDVjY2Y2YTVlMzYwY2Vl
YzE4ZDRjZDUzOTMxMjU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvUHJlcmVuZGVyZXJDbGllbnRJbXBsLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVm
IFByZXJlbmRlcmVyQ2xpZW50SW1wbF9oCisjZGVmaW5lIFByZXJlbmRlcmVyQ2xpZW50SW1wbF9o
CisKKyNpbmNsdWRlICJQcmVyZW5kZXJlckNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIFByZXJlbmRlckhhbmRsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlByZXJlbmRlcmVyQ2xpZW50OworCitjbGFzcyBQcmVyZW5kZXJlckNsaWVudEltcGwg
OiBwdWJsaWMgV2ViQ29yZTo6UHJlcmVuZGVyZXJDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFByZXJlbmRlcmVyQ2xpZW50SW1wbCk7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUHJl
cmVuZGVyZXJDbGllbnRJbXBsKFdlYlByZXJlbmRlcmVyQ2xpZW50Kik7CisKKyAgICB2b2lkIHdp
bGxBZGRQcmVyZW5kZXIoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlKikgT1ZFUlJJREU7CisKK3By
aXZhdGU6CisgICAgV2ViUHJlcmVuZGVyZXJDbGllbnQqIG1fY2xpZW50OworfTsKKworfQorCisj
ZW5kaWYgLy8gUHJlcmVuZGVyZXJDbGllbnRJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA4OGU0YmQ4YzBjOWNhMWI0N2QwMmI0YjIzNmNhN2Fk
YjE4YWY2OGRhLi44NzFjYzIwYWMwMzViMGM5NDk3YjFmMmUzMGUzMTViNzRmMDhkMDAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xMDAsNiArMTAw
LDcgQEAKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQb3B1
cENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUgIlBy
ZXJlbmRlcmVyQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
QEAgLTMyMiw2ICszMjMsMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVu
dChXZWJQZXJtaXNzaW9uQ2xpZW50KiBwZXJtaXNzaW9uQ2xpZW50KQogICAgIG1fcGVybWlzc2lv
bkNsaWVudCA9IHBlcm1pc3Npb25DbGllbnQ7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFBy
ZXJlbmRlcmVyQ2xpZW50KFdlYlByZXJlbmRlcmVyQ2xpZW50KiBwcmVyZW5kZXJlckNsaWVudCkK
K3sKKyAgICBwcm92aWRlUHJlcmVuZGVyZXJDbGllbnRUbyhtX3BhZ2UuZ2V0KCksIG5ldyBQcmVy
ZW5kZXJlckNsaWVudEltcGwocHJlcmVuZGVyZXJDbGllbnQpKTsKK30KKwogdm9pZCBXZWJWaWV3
SW1wbDo6c2V0U3BlbGxDaGVja0NsaWVudChXZWJTcGVsbENoZWNrQ2xpZW50KiBzcGVsbENoZWNr
Q2xpZW50KQogewogICAgIG1fc3BlbGxDaGVja0NsaWVudCA9IHNwZWxsQ2hlY2tDbGllbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA5MzgzYmEyOGQ5NjA4
YmEyZGM1ZDBhN2ZkMjQxN2E4ODI0ZTA5NGQ3Li44YjNiYzJiMTNlNGU5YWY0NDNlZWFmMWZlY2Fi
MGEwNmNhNTJmOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgK
QEAgLTkwLDYgKzkwLDcgQEAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTsKIGNs
YXNzIERyYWdTY3JvbGxUaW1lcjsKIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50UHJveHk7CiBjbGFz
cyBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q7CitjbGFzcyBQcmVyZW5kZXJlckNsaWVudEltcGw7
CiBjbGFzcyBTcGVlY2hJbnB1dENsaWVudEltcGw7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudFByb3h5OwogY2xhc3MgVXNlck1lZGlhQ2xpZW50SW1wbDsKQEAgLTEwMCw2ICsxMDEsNyBA
QCBjbGFzcyBXZWJEZXZUb29sc0FnZW50UHJpdmF0ZTsKIGNsYXNzIFdlYkZyYW1lSW1wbDsKIGNs
YXNzIFdlYkdlc3R1cmVFdmVudDsKIGNsYXNzIFdlYlBhZ2VQb3B1cEltcGw7CitjbGFzcyBXZWJQ
cmVyZW5kZXJlckNsaWVudDsKIGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVu
dDsKIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CkBAIC0xNjAsNiArMTYyLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRBdXRvZmlsbENsaWVudChXZWJBdXRvZmlsbENsaWVudCopOwogICAg
IHZpcnR1YWwgdm9pZCBzZXREZXZUb29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGll
bnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9u
Q2xpZW50Kik7CisgICAgdmlydHVhbCB2b2lkIHNldFByZXJlbmRlcmVyQ2xpZW50KFdlYlByZXJl
bmRlcmVyQ2xpZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNwZWxsQ2hlY2tD
bGllbnQoV2ViU3BlbGxDaGVja0NsaWVudCopOwogICAgIHZpcnR1YWwgdm9pZCBhZGRUZXh0Rmll
bGREZWNvcmF0b3JDbGllbnQoV2ViVGV4dEZpZWxkRGVjb3JhdG9yQ2xpZW50KikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBXZWJTZXR0aW5ncyogc2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YjI1M2Y0YjI2
ZDBlZDQ5NTRmYWEzYjUyNjQ2NGM1ODBkY2ExYTZkLi5kMjIzZmY2YzBlYWEyZDhjNWY3YTNmMTAw
MWI1MmYxN2RmMmVkMDE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDQtMjYgIEdhdmlu
IFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIFByZXJlbmRlcmVy
LCBQcmVyZW5kZXJIYW5kbGUgYW5kIGEgY2hyb21pdW0gaW50ZXJmYWNlIGZvciBQcmVyZW5kZXJp
bmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAw
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBw
cmVyZW5kZXIgY2FzZSBpc24ndCBxdWl0ZSBhIHJlc291cmNlIGxvYWQsIGFuZCB1c2luZyByZXNv
dXJjZSBsb2FkaW5nIHRvCisgICAgICAgIHJldHJpZXZlIHRoZW0gaGFzIGNvbnN0cmFpbmVkIHRo
ZSBBUEksIGFuZCB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkIHRoZSBsb2FkZXIuCisKKyAgICAg
ICAgVGhlIG5ldyBQcmVyZW5kZXJlciBhbmQgUHJlcmVuZGVySGFuZGxlIGxldCA8bGluayByZWw9
cHJlcmVuZGVyLi4uPiBlbGVtZW50cyBzaWduYWwKKyAgICAgICAgcmVtb3ZhbCBhbmQgdW5sb2Fk
IHRvIHRoZWlyIHBsYXRmb3JtLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBiZWluZyByZW1v
dmVkLCBhbmQgZXhwZWN0YXRpb25zIHVwZGF0ZWQsIGJlY2F1c2UgdGhlIG9sZCBwaGFudG9tLWxv
YWQKKyAgICAgICAgcHJlcmVuZGVyaW5nIGludGVyZmFjZSB3YXMgc3VzY2VwdGlibGUgdG8gbGF5
b3V0IHRlc3RpbmcsIGFuZCB0aGUgbmV3IGludGVyZmFjZSByZXF1aXJlcworICAgICAgICBhIGZ1
bGwgcGxhdGZvcm0gdG8gdGVzdCwgc28gaXQgY2FuJ3QgcmVhbGx5IGJlIGEgbGF5b3V0IHRlc3Qu
CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVu
ZGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQ6CisKIDIwMTItMDQtMjUgIE1pa2hhaWwgTmFn
YW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2
aWV3ZWQgdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXItZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjViZmUyNjQ1MjA0ZDEzMjU3ZWNkMjQ2Mjk1YzBh
OTRkNzFjY2VkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1wcmVmZXRjaC5saW5rIGhhcyBNSU1F
IHR5cGUgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCi1QQVNTIG9ubG9hZCBjYWxsZWQhCi1UaGlz
IHRlc3Qgd2lsbCBvbmx5IHByaW50ICJQQVNTIiBvciAiRkFJTCIgaWYgbGluayBwcmVmZXRjaGVz
IGFyZSBlbmFibGVkLCBvdGhlcndpc2UgaXQgd2lsbCBzaG93IG5vdGhpbmcgYmVsb3cuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5NzhmNDJjZWVjNjM3NTNkMDY3YzI0YjI4
YWVkNzNmZWM2MzRjNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotPGJvZHk+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHByZWZldGNoX29ubG9hZCgpIHsKLSAgICB0
ZXN0UGFzc2VkKCdvbmxvYWQgY2FsbGVkIScpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKLX0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBSZXNvdXJj
ZVJlc3BvbnNlTUlNRVR5cGVzKCk7Ci19Ci08L3NjcmlwdD4KLTxodG1sPgotPHA+VGhpcyB0ZXN0
IHdpbGwgb25seSBwcmludCAiUEFTUyIgb3IgIkZBSUwiIGlmIGxpbmsgcHJlZmV0Y2hlcyBhcmUK
LWVuYWJsZWQsIG90aGVyd2lzZSBpdCB3aWxsIHNob3cgbm90aGluZyBiZWxvdy48L3A+Ci08bGlu
ayBocmVmPSJwcmVmZXRjaC5saW5rIiByZWw9InByZXJlbmRlciIgb25sb2FkPSJwcmVmZXRjaF9v
bmxvYWQoKSIgb25lcnJvcj0idGVzdEZhaWxlZCgnb25lcnJvcicpIiAvPgotPC9odG1sPgotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBl
ODk2YWY1YmNlM2FjMjdlZTNkNmYxNWE3MTdiOTlkODgwMjFlMDJlLi40OWZiODVkMjY3ZWUyYzcw
OTU0OGE3NDBmYjFlYTQ3MTgyMzhiNzlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTg5OCw3ICs4OTgsNiBAQCBCVUdXS0dUSyA6IGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sID0gRkFJTAogQlVHV0tHVEsgOiBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sID0gRkFJTAog
QlVHV0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1s
ID0gRkFJTAogQlVHV0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25s
b2FkLmh0bWwgPSBGQUlMCi1CVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVy
ZW5kZXIuaHRtbCA9IEZBSUwKIEJVR1dLR1RLIDogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3N1
YnJlc291cmNlLmh0bWwgPSBGQUlMCiAKIC8vIFRlc3RzIGZhaWxpbmcgYmVjYXVzZSB0aGUgY29u
dGV4dCBtZW51IGlzIGdyYWJiaW5nIG1vdXNlIGV2ZW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKaW5kZXggOWJmYWRkMDkwZDk1MzA2NmExNzM4MjljMWI0ZmVmMDAxMWRlOTM1ZS4uYTIyOThi
Y2QwOWU3MWVjZWFmYWZiNzk2MDk5ZmUxZWEwZDgyYzFkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQKQEAgLTE5Myw3ICsxOTMsNiBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtYmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25l
cnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwK
IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRzLmh0bWwK
LWZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3N1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1wcmVm
ZXRjaC1hbmQtc3VicmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBv
c2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggZjk4ZjM5NWJiMTU1MDc1ZTdkYzgw
N2E4OTA4ZWI0NWM2NTk5MmYyMy4uYTAwMzU0NWU3OTM1NDlhMzYyYzMxMzMyZjFiMzQ1NTI2NjMy
NGVmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0xNDQsNyArMTQ0LDYgQEAgZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtdG9vLW1hbnktY2xpZW50cy5odG1sCi1mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVu
ZGVyLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zdWJyZXNvdXJjZS5odG1sCiBodHRw
L3Rlc3RzL21pc2MvbGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNlLmh0bWwKIGh0dHAv
dGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQK
aW5kZXggOTllMjU4Mzg1MzVkZmVkN2M3ODkyMjMxYTI4YjU3ZmVjNDU0NDlhNy4uMWJiMjM2ZWI4
MzQ3YzE2Y2Q0YmI0YmQyZjliZmQ2YzFkNTMwYTE0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKQEAgLTEwOTgsNyArMTA5OCw2IEBAIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRj
aC1vbmVycm9yLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQu
aHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLXRvby1tYW55LWNsaWVudHMu
aHRtbAogaHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLXByZWZldGNoLWFuZC1zdWJyZXNvdXJjZS5o
dG1sCi1mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKIGZhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9zdWJyZXNvdXJjZS5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gt
cHVycG9zZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCmluZGV4IGUw
OTEzOWIyZTM5OTAyZWI1YWRkYjVhNDY0ODBmZGUzYWM0OTdkN2QuLjdjYTk5MTZlMGI5MTAwNzAy
ZTFhNmM5MjQ2ZWE3ZWY0MjVjYjhlY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tp
cHBlZApAQCAtMTYxMyw3ICsxNjEzLDYgQEAgZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZl
dGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9h
ZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtdG9vLW1hbnktY2xpZW50
cy5odG1sCiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNl
Lmh0bWwKLWZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3N1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRj
aC1wdXJwb3NlLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139105</attachid>
            <date>2012-04-26 17:40:30 -0700</date>
            <delta_ts>2012-04-27 06:04:07 -0700</delta_ts>
            <desc>fix WebURLRequest::TargetType</desc>
            <filename>bug-85005-20120426204029.patch</filename>
            <type>text/plain</type>
            <size>79119</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3ZTkzOGZiMDNkZWRk
ZWE5MzkxODkxMTU5MzgxZTU0YjU4NDU3MmY4Li4xYjMxYWNlMmFiNjgxMzI4NGQwN2U0YjVlMDU0
ZjA2NmVlNDI1OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wNC0yNiAg
R2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJlcmVu
ZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFByZXJl
bmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIHByZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVzaW5n
IHJlc291cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3RyYWlu
ZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4KKwor
ICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxsaW5r
IHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFuZCB1
bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlz
IGludGVyZmFjZSByZXF1aXJlcyBhIGZ1bGwgcGxhdGZvcm0gZm9yIHRlc3RpbmcsIGFuZCBpc24n
dCBwYXJ0CisgICAgICAgIG9mIGxheW91dC4KKworICAgICAgICAqIFBsYXRmb3JtLmd5cGk6Cisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmg6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoUGxhdGZvcm0pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6Y3JlYXRlUHJl
cmVuZGVyaW5nUGxhdGZvcm0pOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5k
ZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJQcmVyZW5kZXIpOgorICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5oOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06On5XZWJQ
cmVyZW5kZXJpbmdQbGF0Zm9ybSk6CisgICAgICAgIChXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSk6
CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaDoKKyAgICAgICAgKiBj
aHJvbWl1bS9zcmMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1BsYXRmb3JtOjpzZXRQbGF0Zm9ybSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1BsYXRmb3JtOjpnZXRQbGF0Zm9ybSk6CisK
IDIwMTItMDQtMjUgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Nocm9taXVtXSBBZGQgdGh1bmsgaGVhZGVycyBmb3Igc3RhZ2luZyBQcmVyZW5kZXJpbmcg
QVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGI1NzAyNWQ3Yzg0YzMxNzMxNDUyZmFkYmQwZWUxZDMzZTA5NWQw
NmEuLjBjZTBiYjFlNmM3NGYwNWU3ODdiZGQwZWU3ZmU2NTY4ZjY3YTFlZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMjIgQEAKKzIwMTItMDQtMjYgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgQWRkIFByZXJlbmRlcmVyLCBQcmVyZW5kZXJIYW5kbGUgYW5k
IGEgY2hyb21pdW0gaW50ZXJmYWNlIGZvciBQcmVyZW5kZXJpbmcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmVyZW5kZXIgY2FzZSBpc24ndCBx
dWl0ZSBhIHJlc291cmNlIGxvYWQsIGFuZCB1c2luZyByZXNvdXJjZSBsb2FkaW5nIHRvCisgICAg
ICAgIHJldHJpZXZlIHRoZW0gaGFzIGNvbnN0cmFpbmVkIHRoZSBBUEksIGFuZCB1bm5lY2Vzc2Fy
aWx5IGNvbXBsaWNhdGVkIHRoZSBsb2FkZXIuCisKKyAgICAgICAgVGhlIG5ldyBQcmVyZW5kZXJl
ciBhbmQgUHJlcmVuZGVySGFuZGxlIGxldCA8bGluayByZWw9cHJlcmVuZGVyLi4uPiBlbGVtZW50
cyBzaWduYWwKKyAgICAgICAgcmVtb3ZhbCBhbmQgdW5sb2FkIHRvIHRoZWlyIHBsYXRmb3JtLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpbnRlcmZhY2UgcmVxdWlyZXMgYSBmdWxs
IHBsYXRmb3JtIHRvIHdvcmssIGFuZCBkb2Vzbid0IGFmZmVjdCBsYXlvdXQuICBUZXN0CisgICAg
ICAgIGl0IHdpdGggeW91ciBwbGF0Zm9ybSB3aGVuIGltcGxlbWVudGVkIGZvciBpdC4KKworICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnByZXJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnJlbW92ZWRGcm9t
KToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9M
aW5rUmVsQXR0cmlidXRlLmg6CisgICAgICAgIChMaW5rUmVsQXR0cmlidXRlKToKKyAgICAgICAg
KiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjps
b2FkTGluayk6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpyZWxlYXNlZCk6CisgICAg
ICAgICogbG9hZGVyL0xpbmtMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
TGlua0xvYWRlcik6CisgICAgICAgICogbG9hZGVyL1ByZXJlbmRlcmVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OlByZXJlbmRlcmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlByZXJlbmRlcmVyOjp+UHJlcmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlcmVuZGVyZXI6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6c3VzcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcmVyZW5kZXJlcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRl
cmVyOjpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6Y2xpZW50KToK
KyAgICAgICAgKiBsb2FkZXIvUHJlcmVuZGVyZXIuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoUHJlcmVuZGVyZXIpOgorICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVu
dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlckNsaWVu
dDo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJDbGllbnQ6
OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6cHJvdmlkZVByZXJlbmRlcmVyQ2xpZW50VG8pOgor
ICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUHJlcmVuZGVyZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJD
bGllbnQ6On5QcmVyZW5kZXJlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJl
ckNsaWVudDo6UHJlcmVuZGVyZXJDbGllbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0UHJpb3JpdHlGb3JSZXNv
dXJjZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkKToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlOjppZ25vcmVGb3JSZXF1ZXN0Q291bnQpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExp
bmtSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hl
Y2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OmNhblJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQcmVyZW5kZXJIYW5kbGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OlByZXJlbmRlcik6CisgICAgICAg
IChXZWJDb3JlOjpQcmVyZW5kZXI6On5QcmVyZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
cmVuZGVyOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmFkZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cmVyZW5kZXI6OmFiYW5kb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFByZXJlbmRlcik6CisgICAgICAgIChFeHRyYURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURhdGE6On5FeHRyYURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVu
ZGVyOjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OnJlZmVycmVyUG9s
aWN5KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6c2V0RXh0cmFEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6ZXh0cmFEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcmVyZW5kZXJIYW5kbGU6OlByZXJlbmRlckhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cmVyZW5kZXJIYW5kbGU6On5QcmVyZW5kZXJIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
cmVuZGVySGFuZGxlOjpwcmVyZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFu
ZGxlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpjYW5jZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjphYmFuZG9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlByZXJlbmRlckhhbmRsZTo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVy
ZW5kZXJIYW5kbGU6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6
OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OnJlZmVycmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpXZWJQcmVyZW5kZXIpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjp+V2ViUHJlcmVuZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjp1cmwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVy
ZW5kZXI6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpyZWZlcnJl
clBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcjo6c2V0RXh0cmFEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpleHRyYURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0Lmg6CisKIDIwMTItMDQtMjUg
IEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIG5ldyBF
TkFCTEVfTElOS19QUkVSRU5ERVIgZGVmaW5lIHRvIGNvbnRyb2wgdGhlIFByZXJlbmRlcmluZyBB
UEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMmM4NTE3YzY5NzZjYzY5Y2U4OGU4YTc0
Yzg4NzBmZjE1NGEwYmNhOS4uZTkxY2UzNzc1MDE5NDg0ZjdkYmEwMDVjNjRjYTkxZDQwYjYzZGUw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNC0y
NiAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJl
cmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFBy
ZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIHByZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVz
aW5nIHJlc291cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3Ry
YWluZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4K
KworICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxs
aW5rIHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFu
ZCB1bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1ByZXJlbmRlcmVyQ2xpZW50
SW1wbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0
ZS5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UHJlcmVuZGVyZXJDbGll
bnRJbXBsOjpQcmVyZW5kZXJlckNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpQcmVyZW5k
ZXJlckNsaWVudEltcGw6OndpbGxBZGRQcmVyZW5kZXIpOgorICAgICAgICAqIHNyYy9QcmVyZW5k
ZXJlckNsaWVudEltcGwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVs
QXR0cmlidXRlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChQcmVyZW5kZXJlckNsaWVudEltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQcmVyZW5kZXJlckNsaWVudCk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wNC0yNSAgR2F2aW4g
UGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEFkZCB0
aHVuayBoZWFkZXJzIGZvciBzdGFnaW5nIFByZXJlbmRlcmluZyBBUEkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5n
eXBpCmluZGV4IDYyZDZkNmUwZTUyOTliMDU2YjJjY2I2MzRlNjdhNWZmODc4NGFkYjIuLmU0N2Zi
MmNmNDlkNTYxMDdmZmNmNWZkMmYwYzYyOTI2NGZiMjZkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9Q
bGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBp
CkBAIC04Nyw2ICs4Nyw3IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlN0cmlu
Zy5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVGhyZWFkLmgnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJUaHJlYWRTYWZlRGF0YS5oJywKKyAgICAgICAgICAg
ICdjaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9XZWJVUkwuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTEVy
cm9yLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkVGltaW5nLmgn
LApAQCAtMTAwLDYgKzEwMSw3IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1BsYXRmb3Jt
LmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1dlYkNTdHJpbmcuY3BwJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9zcmMvV2ViRmxvYXRRdWFkLmNwcCcsCisgICAgICAgICAgICAnY2hy
b21pdW0vc3JjL1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmNwcCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vc3JjL1dlYlN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3NyYy9XZWJW
aWRlb0ZyYW1lLmNwcCcsCiAgICAgICAgIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvUGxhdGZvcm0uaAppbmRleCBhYmYzZDA5MDFlZDllZTA1NzUyYTA2NWMzY2E5MzA5OGM1M2I0
NGU2Li5iMTVhMTVhMTNhN2JhNGNhNjNmNmEwNGUzOTVhMmM0YzFlMjNlYmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCkBAIC00OSw2ICs0OSw3IEBAIGNs
YXNzIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlcjsKIGNsYXNzIFdlYlBlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudDsKIGNsYXNzIFdlYlVSTDsKIGNsYXNzIFdlYlVSTExvYWRlcjsKK2NsYXNzIFdl
YlByZXJlbmRlcmluZ1BsYXRmb3JtOwogY2xhc3MgV2ViU29ja2V0U3RyZWFtSGFuZGxlOwogY2xh
c3MgV2ViVGhyZWFkOwogCkBAIC0yODMsNiArMjg0LDggQEAgcHVibGljOgogICAgIC8vIEVudW1l
cmF0aW9uIGhpc3RvZ3JhbSBidWNrZXRzIGFyZSBsaW5lYXIsIGJvdW5kYXJ5VmFsdWUgc2hvdWxk
IGJlIGxhcmdlciB0aGFuIGFueSBwb3NzaWJsZSBzYW1wbGUgdmFsdWUuCiAgICAgdmlydHVhbCB2
b2lkIGhpc3RvZ3JhbUVudW1lcmF0aW9uKGNvbnN0IGNoYXIqIG5hbWUsIGludCBzYW1wbGUsIGlu
dCBib3VuZGFyeVZhbHVlKSB7IH0KIAorICAgIC8vIFByZXJlbmRlcgorICAgIHZpcnR1YWwgV2Vi
UHJlcmVuZGVyaW5nUGxhdGZvcm0qIGNyZWF0ZVByZXJlbmRlcmluZ1BsYXRmb3JtKCkgeyByZXR1
cm4gMDsgfQogCiAgICAgLy8gV2ViUlRDIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgKaW5kZXggMDhhNzE1ZGQ5ODcwZTY1NzE5M2ZkNTBhZGU1
M2Y0MDU2NDAwYmNhYi4uYzk5YTE0NTNiZGQ5NDhhNWIwYzA4NDQxZmFjMDIzOTdmOTlmODg3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIu
aAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oCkBA
IC00OSwyNyArNDksMjkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJTaXplOwog
Ci0vLyBUaGlzIHRodW5rIGltcGxlbWVudGF0aW9uIG9mIFdlYlByZXJlbmRlciBleGlzdHMgb25s
eSBmb3Igc3RhZ2luZzsgdGhpcyB3aWxsIGFsbG93Ci0vLyB0aGUgQ2hyb21pdW0gc2lkZSBvZiB0
aGUgUHJlcmVuZGVyaW5nIEFQSSB0byBsYW5kLCBhbmQgdGhlbiBsYXRlciB3ZSBjYW4gYXRvbWlj
bHkKLS8vIHN3aXRjaCBXZWJLaXQgdG8gcHJlcmVuZGVyLCBhbmQgZmluYWxseSByZW1vdmUgdGhl
IG9sZCBwaGFudG9tLXJlcXVlc3QgcHJlcmVuZGVyCi0vLyBpbXBsZW1lbnRhdGlvbiBmcm9tIENo
cm9taXVtLgotLy8gRklYTUU6IFB1dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIGhlcmUgYWZ0
ZXIgdGhlIENocm9taXVtIHNpZGUgb2YgdGhpcyBBUEkKLS8vIGxhbmRzLgogY2xhc3MgV2ViUHJl
cmVuZGVyIHsKIHB1YmxpYzoKICAgICBjbGFzcyBFeHRyYURhdGEgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkgeyB9CiAgICAgfTsKLSAgICBXZWJVUkwgdXJsKCkg
Y29uc3QgeyByZXR1cm4gV2ViVVJMKCk7IH0KLSAgICBXZWJTdHJpbmcgcmVmZXJyZXIoKSBjb25z
dCB7IHJldHVybiAiIjsgfQotICAgIFdlYlJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkg
Y29uc3QgeyByZXR1cm4gV2ViUmVmZXJyZXJQb2xpY3koKTsgfQotICAgIHZvaWQgc2V0RXh0cmFE
YXRhKEV4dHJhRGF0YSopIHsgfQotICAgIGNvbnN0IEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29u
c3QgeyByZXR1cm4gMDsgfQorCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgZXhwbGlj
aXQgV2ViUHJlcmVuZGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6UHJlcmVuZGVyPik7CisgICAgfldl
YlByZXJlbmRlcigpOworI2VuZGlmCisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlVSTCB1cmwoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyByZWZlcnJlcigpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgV2ViUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdDsK
KworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRFeHRyYURhdGEoRXh0cmFEYXRhKik7CisgICAg
V0VCS0lUX0VYUE9SVCBjb25zdCBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIFdlYlByZXJlbmRlcigpIHsgfQotICAgIH5XZWJQcmVyZW5kZXIoKSB7IH0KKyAg
ICBXZWJQcmVyZW5kZXIoKTsKKworICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UHJlcmVuZGVy
PiBtX3ByaXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uaCBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0u
aAppbmRleCAxN2ZmYWU4MzJkMTI2OTJlODQ0OTRmZjExNDAwZGI0YzJhNjhlNmVhLi4yMDBlODZj
ZTQyMzI2NTYyYzM4MDRlYTJmYmMxZmM5YzY3ZjllNGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmgKKysrIGIvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5oCkBA
IC0zNywyNSArMzcsMzEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlByZXJlbmRl
cjsKIAotLy8gVGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXJpbmdQbGF0
Zm9ybSBleGlzdHMgb25seSBmb3Igc3RhZ2luZzsgdGhpcyB3aWxsCi0vLyBhbGxvdyB0aGUgQ2hy
b21pdW0gc2lkZSBvZiB0aGUgUHJlcmVuZGVyaW5nIEFQSSB0byBsYW5kLCBhbmQgdGhlbiBsYXRl
ciB3ZSBjYW4gYXRvbWljbHkKLS8vIHN3aXRjaCBXZWJLaXQgdG8gcHJlcmVuZGVyLCBhbmQgZmlu
YWxseSByZW1vdmUgdGhlIG9sZCBwaGFudG9tLXJlcXVlc3QgcHJlcmVuZGVyCi0vLyBpbXBsZW1l
bnRhdGlvbiBmcm9tIENocm9taXVtLgotLy8gRklYTUU6IFB1dCB0aGUgYWN0dWFsIGltcGxlbWVu
dGF0aW9uIGhlcmUgYWZ0ZXIgdGhlIENocm9taXVtIHNpZGUgb2YgdGhpcyBBUEkKLS8vIGxhbmRz
LgogY2xhc3MgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0gewogcHVibGljOgotICAgIHZpcnR1YWwg
dm9pZCBhZGQoY29uc3QgV2ViUHJlcmVuZGVyJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNl
bChjb25zdCBXZWJQcmVyZW5kZXImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWJhbmRvbihjb25z
dCBXZWJQcmVyZW5kZXImKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBzZXRQbGF0Zm9ybShXZWJQcmVy
ZW5kZXJpbmdQbGF0Zm9ybSopIHsgfQotICAgIHN0YXRpYyBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9y
bSogZ2V0UGxhdGZvcm0oKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB+V2ViUHJlcmVuZGVy
aW5nUGxhdGZvcm0oKSB7IH0KKworICAgIC8vIEEgcHJlcmVuZGVyIGxpbmsgZWxlbWVudCBpcyBh
ZGRlZCB3aGVuIGl0IGlzIGluc2VydGVkIGludG8gYSBkb2N1bWVudC4KKyAgICB2aXJ0dWFsIHZv
aWQgYWRkKGNvbnN0IFdlYlByZXJlbmRlciYpID0gMDsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlz
IGFiYW5kb25lZCB3aGVuIGl0J3MgbmF2aWdhdGVkIGF3YXkgZnJvbSBvciBzdXNwZW5kZWQgaW4g
dGhlIHBhZ2UgY2FjaGUuIFRoaXMKKyAgICAvLyBpcyBhIHdlYWtlciBzaWduYWwgdGhhbiBjYW5j
ZWwoKSwgc2luY2UgdGhlIGxhdW5jaGVyIGhhc24ndCBpbmRpY2F0ZWQgdGhhdCB0aGUgcHJlcmVu
ZGVyIGlzbid0CisgICAgLy8gd2FudGVkLCBhbmQgd2UgbWF5IGVuZCB1cCB1c2luZyBpdCBhZnRl
ciwgZm9yIGluc3RhbmNlLCBhIHNob3J0IHJlZGlyZWN0IGNoYWluLgorICAgIHZpcnR1YWwgdm9p
ZCBjYW5jZWwoY29uc3QgV2ViUHJlcmVuZGVyJikgPSAwOworCisgICAgLy8gQSBwcmVyZW5kZXIg
aXMgY2FuY2VsZWQgd2hlbiBpdCBpcyByZW1vdmVkIGZyb20gYSBkb2N1bWVudC4KKyAgICB2aXJ0
dWFsIHZvaWQgYWJhbmRvbihjb25zdCBXZWJQcmVyZW5kZXImKSA9IDA7CisKKyAgICBXRUJLSVRf
RVhQT1JUIHN0YXRpYyB2b2lkIHNldFBsYXRmb3JtKFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKik7
CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0qIGdldFBs
YXRmb3JtKCk7CiAKIHByb3RlY3RlZDoKICAgICBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSgpIHsg
fQotICAgIHZpcnR1YWwgfldlYlByZXJlbmRlcmluZ1BsYXRmb3JtKCkgeyB9CisKK3ByaXZhdGU6
CisgICAgc3RhdGljIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBzX3BsYXRmb3JtOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBXZWJQcmVyZW5kZXJMb2FkZXJfaAor
I2VuZGlmIC8vIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKaW5kZXggYWRmMmYyZTIzMGJhNTVmNzc4
NzkyNTk0Mzk4ZWE4ZjUyMjkyYzc2Yi4uNTgwMmRhNzBmMzczMjFhOGY2YWU2NmUyMWZmMzljZjY5
Y2E5ODk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJV
UkxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkxS
ZXF1ZXN0LmgKQEAgLTY5LDExICs2OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIFRhcmdldElzV29y
a2VyID0gOSwKICAgICAgICAgVGFyZ2V0SXNTaGFyZWRXb3JrZXIgPSAxMCwKICAgICAgICAgVGFy
Z2V0SXNQcmVmZXRjaCA9IDExLAotICAgICAgICBUYXJnZXRJc1ByZXJlbmRlciA9IDEyLAotICAg
ICAgICBUYXJnZXRJc0Zhdmljb24gPSAxMywKLSAgICAgICAgVGFyZ2V0SXNYSFIgPSAxNCwKLSAg
ICAgICAgVGFyZ2V0SXNUZXh0VHJhY2sgPSAxNSwKLSAgICAgICAgVGFyZ2V0SXNVbnNwZWNpZmll
ZCA9IDE2LAorICAgICAgICBUYXJnZXRJc0Zhdmljb24gPSAxMiwKKyAgICAgICAgVGFyZ2V0SXNY
SFIgPSAxMywKKyAgICAgICAgVGFyZ2V0SXNUZXh0VHJhY2sgPSAxNCwKKyAgICAgICAgVGFyZ2V0
SXNVbnNwZWNpZmllZCA9IDE1LAorICAgICAgICAvLyBGSVhNRTogVGhpcyBvbGQgZW51bSB2YWx1
ZSBpcyBvbmx5IGJlaW5nIGxlZnQgaW4gd2hpbGUgcHJlcmVuZGVyaW5nIGlzIHN0YWdpbmcgaW50
byBjaHJvbWl1bS4gQWZ0ZXIgaHR0cDovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzEwMjQ0MDA3
LworICAgICAgICAvLyBsYW5kcywgdGhpcyBzaG91bGQgYmUgcmVtb3ZlZC4KKyAgICAgICAgVGFy
Z2V0SXNQcmVyZW5kZXIgPSBUYXJnZXRJc1Vuc3BlY2lmaWVkLAogICAgIH07CiAKICAgICBjbGFz
cyBFeHRyYURhdGEgewpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3NyYy9X
ZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5jcHAgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vc3Jj
L1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTE5ZGViYTE1YjA4ZjIz
N2M0MTFiNTNmNWVmOWIyOWExYjYxNjc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3NyYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5jcHAKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlIDxwdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBXZWJQcmVyZW5kZXJpbmdQ
bGF0Zm9ybTo6c19wbGF0Zm9ybSA9IDA7CisKK3ZvaWQgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06
OnNldFBsYXRmb3JtKFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBwbGF0Zm9ybSkKK3sKKyAgICBz
X3BsYXRmb3JtID0gcGxhdGZvcm07Cit9CisKK1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBXZWJQ
cmVyZW5kZXJpbmdQbGF0Zm9ybTo6Z2V0UGxhdGZvcm0oKQoreworICAgIHJldHVybiBzX3BsYXRm
b3JtOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNWIyODhmODg3ZDRkZGU0NjQwYTAxMjcw
ODkwMDQ2YmI4ODZhNzVlMi4uMDMwMzU1NDAzYWE1MjRiMzVhMmY3YWRiY2E0OTkxYTFlOWVjZjUx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjg1NCw2ICsyODU0LDEwIEBACiAgICAgICAgICAgICAn
bG9hZGVyL1BsYWNlaG9sZGVyRG9jdW1lbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1BvbGlj
eUNhbGxiYWNrLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwJywK
KyAgICAgICAgICAgICdsb2FkZXIvUHJlcmVuZGVyZXIuY3BwJywKKyAgICAgICAgICAgICdsb2Fk
ZXIvUHJlcmVuZGVyZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50
LmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmgnLAogICAgICAg
ICAgICAgJ2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIv
UmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcCcsCkBAIC0zMTMzLDYgKzMxMzcsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Bs
YXRmb3JtVG91Y2hFdmVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNo
UG9pbnQuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9SZWZlcnJlclBvbGljeS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9SdW5Mb29wVGlt
ZXIuaCcsCkBAIC0zMzExLDYgKzMzMTYsOSBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTGlzdEJveC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVQ
cml2YXRlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9TU0xLZXlHZW5lcmF0b3JDaHJvbWl1bS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmgnLApA
QCAtODI0NCw2ICs4MjUyLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3VyY2UuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3RyZWFtU291cmNlc1JlcXVlc3Qu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlByZXJlbmRl
ci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVGhyZWFk
U2FmZURhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlVSTC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVVJM
RXJyb3IuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGUxZWI3NGI1MjVlYWUwYzFh
ODY3MTc4NGQ4YzE5NTY0ODI5YTg1ZTAuLjFkYmY2ZmI1YzdhNjI2ZWE1ZDZjZDdiYWM2YTY0Y2Mx
OTRlZDdjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjA2LDYgKzIwNiwxMCBAQAog
I2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCisjaW5jbHVkZSAiUHJlcmVuZGVyZXIuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwpA
QCAtNTA2LDcgKzUxMCw5IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0
IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICBtX21hcmtlcnMgPSBh
ZG9wdFB0cihuZXcgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKTsKIAogICAgIG1fY2FjaGVkUmVz
b3VyY2VMb2FkZXIgPSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIodGhpcykpOwot
CisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIG1fcHJlcmVuZGVyZXIgPSBQcmVyZW5k
ZXJlcjo6Y3JlYXRlKHRoaXMpOworI2VuZGlmCiAgICAgbV92aXN1YWxseU9yZGVyZWQgPSBmYWxz
ZTsKICAgICBtX2JQYXJzaW5nID0gZmFsc2U7CiAgICAgbV93ZWxsRm9ybWVkID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDM1ZDRmZWJiZThjZDZiZGRkMWJiMWRhNWU1YTNkMTY4NGUz
MDcwYmUuLjhlNzMwZDlmZWU3ZWYxOWU5ZGM4NTk3YmMxYTA5MzE3ZjU0MDAyZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0xNjYsNiArMTY2LDEwIEBAIGNsYXNzIFNjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlcjsKIGNsYXNzIE1pY3JvRGF0YUl0ZW1MaXN0OwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTElOS19QUkVSRU5ERVIpCitjbGFzcyBQcmVyZW5kZXJlcjsKKyNlbmRpZgorCiB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBGb3JtRWxlbWVudEtleSB7CkBAIC0xMTQ2LDYg
KzExNTAsMTAgQEAgcHVibGljOgogCiAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdDsK
IAorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBQcmVyZW5kZXJlciogcHJlcmVuZGVy
ZXIoKSB7IHJldHVybiBtX3ByZXJlbmRlcmVyLmdldCgpOyB9CisjZW5kaWYKKwogcHJvdGVjdGVk
OgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBp
c0hUTUwpOwogCkBAIC0xNDg3LDYgKzE0OTUsMTEgQEAgcHJpdmF0ZToKIAogICAgIFRpbWVyPERv
Y3VtZW50PiBtX3BlbmRpbmdUYXNrc1RpbWVyOwogICAgIFZlY3RvcjxPd25QdHI8VGFzaz4gPiBt
X3BlbmRpbmdUYXNrczsKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBPd25QdHI8
UHJlcmVuZGVyZXI+IG1fcHJlcmVuZGVyZXI7CisjZW5kaWYKKwogICAgIGJvb2wgbV9zY2hlZHVs
ZWRUYXNrc0FyZVN1c3BlbmRlZDsKICAgICAKICAgICBib29sIG1fdmlzdWFsVXBkYXRlc0FsbG93
ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggMDY5YjkzZTJm
ZWMzNjliZjQ0MzE2YTYzNzA5MTU0MzRmYWRkYWRjNC4uOTgxOWZjOGRiNDU0OTg0NjAwYzIyMjk1
NDA2MzU5ZWQxZWIzZTI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cApAQCAtMjY1LDYgKzI2NSw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpyZW1vdmVkRnJvbShO
b2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICBpZiAoIWluc2VydGlvblBvaW50LT5pbkRvY3VtZW50
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fbGlua0xvYWRlci5yZWxlYXNlZCgpOworCiAg
ICAgaWYgKG1faXNJblNoYWRvd1RyZWUpIHsKICAgICAgICAgQVNTRVJUKCFtX3NoZWV0KTsKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKaW5k
ZXggNTI2MWRmMmQwOGZmMjZhMDNhNWQ4MWUyNDMxZmE2M2Y0YzY1NzIwYy4uODcwNzFiOTliMjhk
NjVkMjE4ZjBhYmQyZGI4YTU3Y2QwMDFmNmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtS
ZWxBdHRyaWJ1dGUuY3BwCkBAIC00MSw5ICs0MSwxMSBAQCBMaW5rUmVsQXR0cmlidXRlOjpMaW5r
UmVsQXR0cmlidXRlKCkKICAgICAsIG1faXNETlNQcmVmZXRjaChmYWxzZSkKICNpZiBFTkFCTEUo
TElOS19QUkVGRVRDSCkKICAgICAsIG1faXNMaW5rUHJlZmV0Y2goZmFsc2UpCi0gICAgLCBtX2lz
TGlua1ByZXJlbmRlcihmYWxzZSkKICAgICAsIG1faXNMaW5rU3VicmVzb3VyY2UoZmFsc2UpCiAj
ZW5kaWYKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgLCBtX2lzTGlua1ByZXJlbmRl
cihmYWxzZSkKKyNlbmRpZgogewogfQogCkBAIC01NCw5ICs1NiwxMSBAQCBMaW5rUmVsQXR0cmli
dXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQogICAgICwgbV9pc0ROU1By
ZWZldGNoKGZhbHNlKQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgICwgbV9pc0xpbmtQ
cmVmZXRjaChmYWxzZSkKLSAgICAsIG1faXNMaW5rUHJlcmVuZGVyKGZhbHNlKQogICAgICwgbV9p
c0xpbmtTdWJyZXNvdXJjZShmYWxzZSkKICNlbmRpZgorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRF
UikKKyAgICAsIG1faXNMaW5rUHJlcmVuZGVyKGZhbHNlKQorI2VuZGlmCiB7CiAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKHJlbCwgInN0eWxlc2hlZXQiKSkKICAgICAgICAgbV9pc1N0eWxlU2hl
ZXQgPSB0cnVlOwpAQCAtOTYsMTEgKzEwMCwxMyBAQCBMaW5rUmVsQXR0cmlidXRlOjpMaW5rUmVs
QXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQog
ICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKml0LCAicHJlZmV0Y2giKSkK
ICAgICAgICAgICAgICAgbV9pc0xpbmtQcmVmZXRjaCA9IHRydWU7Ci0gICAgICAgICAgICBlbHNl
IGlmIChlcXVhbElnbm9yaW5nQ2FzZSgqaXQsICJwcmVyZW5kZXIiKSkKLSAgICAgICAgICAgICAg
bV9pc0xpbmtQcmVyZW5kZXIgPSB0cnVlOwogICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UoKml0LCAic3VicmVzb3VyY2UiKSkKICAgICAgICAgICAgICAgbV9pc0xpbmtTdWJy
ZXNvdXJjZSA9IHRydWU7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAg
ICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSgqaXQsICJwcmVyZW5kZXIiKSkKKyAg
ICAgICAgICAgICAgbV9pc0xpbmtQcmVyZW5kZXIgPSB0cnVlOworI2VuZGlmCiAgICAgICAgIH0K
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oCmluZGV4IDMxNzgx
OTRiNDlhMWJkMDViOWIwYzE0NDQxZWJmNWY4NjI1NzhhY2MuLjk4ZGQ0ODE5MWM5ZjgzNzNlZjI0
YjFkMjI5YjEyMjNlMmRhMjc2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlu
a1JlbEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0
ZS5oCkBAIC00NCw5ICs0NCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX2lzRE5TUHJlZmV0Y2g7
CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgYm9vbCBtX2lzTGlua1ByZWZldGNoOwot
ICAgIGJvb2wgbV9pc0xpbmtQcmVyZW5kZXI7CiAgICAgYm9vbCBtX2lzTGlua1N1YnJlc291cmNl
OwogI2VuZGlmCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIGJvb2wgbV9pc0xpbmtQ
cmVyZW5kZXI7CisjZW5kaWYKIAogICAgIExpbmtSZWxBdHRyaWJ1dGUoKTsKICAgICBleHBsaWNp
dCBMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuY3BwCmluZGV4IDdkNjk5Nzg4NmI5NjcwYzc4ODgxZWM1NDhjY2Y3MGQ1NmE3N2ExMDEu
LmQ5NjYwNmY5MjVmZDQ1YTc0MTJkYzViNmMwMTg3ZGJlODQ2MzhiZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBACiAjaW5jbHVkZSAiTGlua1Jl
bEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKKyNpZiBFTkFCTEUoTElOS19Q
UkVSRU5ERVIpCisjaW5jbHVkZSAiUHJlcmVuZGVySGFuZGxlLmgiCisjaW5jbHVkZSAiUHJlcmVu
ZGVyZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIExpbmtMb2FkZXI6Okxp
bmtMb2FkZXIoTGlua0xvYWRlckNsaWVudCogY2xpZW50KQpAQCAtMTAzLDcgKzEwOCw3IEBAIGJv
b2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmli
dXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgfQogCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gp
Ci0gICAgaWYgKChyZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVmZXRjaCB8fCByZWxBdHRyaWJ1dGUu
bV9pc0xpbmtQcmVyZW5kZXIgfHwgcmVsQXR0cmlidXRlLm1faXNMaW5rU3VicmVzb3VyY2UpICYm
IGhyZWYuaXNWYWxpZCgpICYmIGRvY3VtZW50LT5mcmFtZSgpKSB7CisgICAgaWYgKChyZWxBdHRy
aWJ1dGUubV9pc0xpbmtQcmVmZXRjaCB8fCByZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJj
ZSkgJiYgaHJlZi5pc1ZhbGlkKCkgJiYgZG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgaWYg
KCFtX2NsaWVudC0+c2hvdWxkTG9hZExpbmsoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlv
cml0eVVucmVzb2x2ZWQ7CkBAIC0xMTMsOSArMTE4LDcgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2Fk
TGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFN0cmluZyYg
dHkKICAgICAgICAgaWYgKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1N1YnJlc291cmNlKSB7CiAgICAg
ICAgICAgICBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5TG93OwogICAgICAgICAgICAg
dHlwZSA9IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U7Ci0gICAgICAgIH0gZWxzZSBp
ZiAocmVsQXR0cmlidXRlLm1faXNMaW5rUHJlcmVuZGVyKQotICAgICAgICAgICAgdHlwZSA9IENh
Y2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOwotCisgICAgICAgIH0KICAgICAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IGxpbmtSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChocmVmKSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpIHsKQEAgLTEyNyw4ICsxMzAs
MjYgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiBy
ZWxBdHRyaWJ1dGUsIGNvbnN0IFN0cmluZyYgdHkKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jl
c291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoTElO
S19QUkVSRU5ERVIpCisgICAgaWYgKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZXJlbmRlcikgewor
ICAgICAgICBBU1NFUlQoIW1fcHJlcmVuZGVySGFuZGxlKTsKKyAgICAgICAgbV9wcmVyZW5kZXJI
YW5kbGUgPSBkb2N1bWVudC0+cHJlcmVuZGVyZXIoKS0+cmVuZGVyKGhyZWYpOworICAgIH0KKyNl
bmRpZgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIExpbmtMb2FkZXI6OnJlbGVhc2VkKCkK
K3sKKyAgICAvLyBPbmx5IHByZXJlbmRlcnMgbmVlZCB0cmVhdG1lbnQgaGVyZTsgb3RoZXIgbGlu
a3MgZWl0aGVyIHVzZSB0aGUgQ2FjaGVkUmVzb3VyY2UgaW50ZXJmYWNlLCBvciBhcmUgbm90aW9u
YWxseQorICAgIC8vIGF0b21pYyAoZG5zIHByZWZldGNoKS4KKyNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCisgICAgaWYgKG1fcHJlcmVuZGVySGFuZGxlKSB7CisgICAgICAgIG1fcHJlcmVuZGVy
SGFuZGxlLT5jYW5jZWwoKTsKKyAgICAgICAgbV9wcmVyZW5kZXJIYW5kbGUuY2xlYXIoKTsKKyAg
ICB9CisjZW5kaWYKK30KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKaW5kZXggMWZi
YzE4ZDdjNzZlYjZhNmU3YTRlZmQ3MTkxMTFiNjM5NjBlNzlkYi4uNThiMjlhNzc0Zjc4ZDE0ODBm
MTg0NjM1MmFjZGQ3ZDg1M2MyMGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCkBA
IC0zNyw5ICszNywxNCBAQAogI2luY2x1ZGUgIkxpbmtMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgogCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0cnVjdCBMaW5rUmVsQXR0cmlidXRlOworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRF
UikKK2NsYXNzIFByZXJlbmRlckhhbmRsZTsKKyNlbmRpZgogCiAvLyBUaGUgTGlua0xvYWRlciBj
YW4gbG9hZCBsaW5rIHJlbCB0eXBlcyBpY29uLCBkbnMtcHJlZmV0Y2gsIHN1YnJlc291cmNlLCBw
cmVmZXRjaCBhbmQgcHJlcmVuZGVyLgogY2xhc3MgTGlua0xvYWRlciA6IHB1YmxpYyBDYWNoZWRS
ZXNvdXJjZUNsaWVudCB7CkBAIC01MCw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICAvLyBmcm9tIENh
Y2hlZFJlc291cmNlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hl
ZFJlc291cmNlKik7CiAgICAgCisgICAgdm9pZCByZWxlYXNlZCgpOwogICAgIGJvb2wgbG9hZExp
bmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBzaXplcywgY29uc3QgS1VSTCYsIERvY3VtZW50Kik7CiAKIHByaXZhdGU6CkBAIC02MSw2
ICs2NywxMCBAQCBwcml2YXRlOgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBtX2NhY2hlZExpbmtSZXNvdXJjZTsKICAgICBUaW1lcjxMaW5rTG9hZGVyPiBtX2xpbmtM
b2FkVGltZXI7CiAgICAgVGltZXI8TGlua0xvYWRlcj4gbV9saW5rTG9hZGluZ0Vycm9yVGltZXI7
CisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgUmVmUHRyPFByZXJlbmRlckhhbmRs
ZT4gbV9wcmVyZW5kZXJIYW5kbGU7CisjZW5kaWYKIH07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1ByZXJlbmRlcmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWZkOGRkOGI3ZDQ5MmJjNzA2ZTgyNjUz
MzgzNTc3N2Y2ZjE4YmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1ByZXJlbmRlcmVyLmNwcApAQCAtMCwwICsxLDEzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUHJlcmVuZGVyZXIuaCIKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikK
KworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIlByZXJlbmRlckhhbmRsZS5oIgorI2luY2x1ZGUgIlBy
ZXJlbmRlcmVyQ2xpZW50LmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eVBvbGljeS5oIgorCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBzdGF0
aWMKK1Bhc3NPd25QdHI8UHJlcmVuZGVyZXI+IFByZXJlbmRlcmVyOjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIFByZXJlbmRlcmVyKiBwcmVyZW5kZXJlciA9IG5ldyBQcmVyZW5k
ZXJlcihkb2N1bWVudCk7CisgICAgcHJlcmVuZGVyZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAg
IHJldHVybiBhZG9wdFB0cihwcmVyZW5kZXJlcik7Cit9CisKK1ByZXJlbmRlcmVyOjpQcmVyZW5k
ZXJlcihEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQs
IHRoaXMpCisgICAgLCBtX2NsaWVudCgwKQoreworfQorCitQcmVyZW5kZXJlcjo6flByZXJlbmRl
cmVyKCkKK3sKK30KKworUGFzc1JlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IFByZXJlbmRlcmVyOjpy
ZW5kZXIoY29uc3QgS1VSTCYgdXJsKQoreworICAgIC8vIFByZXJlbmRlcnMgYXJlIHVubGlrZSBy
ZXF1ZXN0cyBpbiBtb3N0IHdheXMgKGZvciBpbnN0YW5jZSwgdGhleSBwYXNzIGRvd24gZnJhZ21l
bnRzLCBhbmQgdGhleSBkb24ndCByZXR1cm4gZGF0YSksCisgICAgLy8gYnV0IHRoZXkgZG8gaGF2
ZSByZWZlcnJlcnMuCisgICAgY29uc3QgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgPSBk
b2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpOworICAgIGNvbnN0IFN0cmluZyByZWZlcnJlciA9
IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKHJlZmVycmVyUG9saWN5LCB1
cmwsIGRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOwor
CisgICAgUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gcHJlcmVuZGVySGFuZGxlID0gUHJlcmVuZGVy
SGFuZGxlOjpjcmVhdGUodXJsLCByZWZlcnJlciwgcmVmZXJyZXJQb2xpY3kpOworCisgICAgY2xp
ZW50KCktPndpbGxBZGRQcmVyZW5kZXIocHJlcmVuZGVySGFuZGxlLmdldCgpKTsKKyAgICBwcmVy
ZW5kZXJIYW5kbGUtPmFkZCgpOworCisgICAgbV9hY3RpdmVIYW5kbGVzLmFwcGVuZChwcmVyZW5k
ZXJIYW5kbGUpOworICAgIHJldHVybiBwcmVyZW5kZXJIYW5kbGU7Cit9CisKK3ZvaWQgUHJlcmVu
ZGVyZXI6OnN0b3AoKQoreworICAgIHdoaWxlICghbV9hY3RpdmVIYW5kbGVzLmlzRW1wdHkoKSkg
eworICAgICAgICBSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBoYW5kbGUgPSBtX2FjdGl2ZUhhbmRs
ZXNbMF0ucmVsZWFzZSgpOworICAgICAgICBtX2FjdGl2ZUhhbmRsZXMucmVtb3ZlKDApOworICAg
ICAgICBoYW5kbGUtPmFiYW5kb24oKTsKKyAgICB9CisgICAgd2hpbGUgKCFtX3N1c3BlbmRlZEhh
bmRsZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IGhhbmRs
ZSA9IG1fc3VzcGVuZGVkSGFuZGxlc1swXS5yZWxlYXNlKCk7CisgICAgICAgIG1fc3VzcGVuZGVk
SGFuZGxlcy5yZW1vdmUoMCk7CisgICAgICAgIGhhbmRsZS0+YWJhbmRvbigpOworICAgIH0KK30K
Kwordm9pZCBQcmVyZW5kZXJlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikK
K3sKKyAgICBpZiAocmVhc29uID09IERvY3VtZW50V2lsbEJlY29tZUluYWN0aXZlIHx8IHJlYXNv
biA9PSBQYWdlV2lsbEJlU3VzcGVuZGVkKSB7CisgICAgICAgIHdoaWxlICghbV9hY3RpdmVIYW5k
bGVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gaGFu
ZGxlID0gbV9hY3RpdmVIYW5kbGVzWzBdLnJlbGVhc2UoKTsKKyAgICAgICAgICAgIG1fYWN0aXZl
SGFuZGxlcy5yZW1vdmUoMCk7CisgICAgICAgICAgICBoYW5kbGUtPnN1c3BlbmQoKTsKKyAgICAg
ICAgICAgIG1fc3VzcGVuZGVkSGFuZGxlcy5hcHBlbmQoaGFuZGxlKTsKKyAgICAgICAgfQorICAg
IH0KK30KKwordm9pZCBQcmVyZW5kZXJlcjo6cmVzdW1lKCkKK3sKKyAgICB3aGlsZSAoIW1fc3Vz
cGVuZGVkSGFuZGxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPFByZXJlbmRlckhhbmRs
ZT4gaGFuZGxlID0gbV9zdXNwZW5kZWRIYW5kbGVzWzBdLnJlbGVhc2UoKTsKKyAgICAgICAgbV9z
dXNwZW5kZWRIYW5kbGVzLnJlbW92ZSgwKTsKKyAgICAgICAgaGFuZGxlLT5yZXN1bWUoKTsKKyAg
ICAgICAgbV9hY3RpdmVIYW5kbGVzLmFwcGVuZChoYW5kbGUpOworICAgIH0KK30KKworRG9jdW1l
bnQqIFByZXJlbmRlcmVyOjpkb2N1bWVudCgpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCitQcmVyZW5kZXJlckNsaWVudCog
UHJlcmVuZGVyZXI6OmNsaWVudCgpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgbV9j
bGllbnQgPSBQcmVyZW5kZXJlckNsaWVudDo6ZnJvbShkb2N1bWVudCgpLT5wYWdlKCkpOworICAg
IHJldHVybiBtX2NsaWVudDsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVO
REVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTQ4MWU2OTQy
OGZiZjc2YTE3MWRmZjkxNjVkNmM0MmIwNmE5Yjk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVm
IFByZXJlbmRlcmVyX2gKKyNkZWZpbmUgUHJlcmVuZGVyZXJfaAorCisjaWYgRU5BQkxFKExJTktf
UFJFUkVOREVSKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiS1VS
TC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9TaW5nbHlMaW5rZWRMaXN0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUHJlcmVu
ZGVySGFuZGxlOworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnQ7CitjbGFzcyBQYWdlOworCitjbGFz
cyBQcmVyZW5kZXJlciA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFByZXJlbmRlcmVyKTsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QcmVyZW5kZXJl
cigpOworCisgICAgUGFzc1JlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IHJlbmRlcihjb25zdCBLVVJM
Jik7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxQcmVyZW5kZXJlcj4gY3JlYXRlKERvY3VtZW50
Kik7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFByZXJlbmRlckhhbmRs
ZT4gPiBIYW5kbGVWZWN0b3I7CisgICAgdHlwZWRlZiBWZWN0b3I8S1VSTD4gS1VSTFZlY3RvcjsK
KworICAgIFByZXJlbmRlcmVyKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU3Vz
cGVuZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBPVkVSUklERTsKKwor
ICAgIERvY3VtZW50KiBkb2N1bWVudCgpOworICAgIFByZXJlbmRlcmVyQ2xpZW50KiBjbGllbnQo
KTsKKworICAgIFByZXJlbmRlcmVyQ2xpZW50KiBtX2NsaWVudDsKKyAgICBIYW5kbGVWZWN0b3Ig
bV9hY3RpdmVIYW5kbGVzOworICAgIEhhbmRsZVZlY3RvciBtX3N1c3BlbmRlZEhhbmRsZXM7Cit9
OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNlbmRpZiAvLyBQ
cmVyZW5kZXJlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVy
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OGYyNDcwZTI2MTY0YTRkZDE1OTM1OTVjNjNmMTI3MWFmZmU2YzFmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50
LmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
cmVyZW5kZXJlckNsaWVudC5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlN1cHBs
ZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKKyNpZiBF
TkFCTEUoTElOS19QUkVSRU5ERVIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gc3RhdGlj
Citjb25zdCBBdG9taWNTdHJpbmcmIFByZXJlbmRlcmVyQ2xpZW50OjpzdXBwbGVtZW50TmFtZSgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiUHJlcmVu
ZGVyZXJDbGllbnQiKSk7CisgICAgcmV0dXJuIG5hbWU7Cit9CisKKy8vIHN0YXRpYworUHJlcmVu
ZGVyZXJDbGllbnQqIFByZXJlbmRlcmVyQ2xpZW50Ojpmcm9tKFBhZ2UqIHBhZ2UpCit7CisgICAg
UHJlcmVuZGVyZXJDbGllbnQqIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxQcmVyZW5kZXJlckNs
aWVudCo+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOwor
ICAgIEFTU0VSVChzdXBwbGVtZW50KTsKKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKwordm9p
ZCBwcm92aWRlUHJlcmVuZGVyZXJDbGllbnRUbyhQYWdlKiBwYWdlLCBQcmVyZW5kZXJlckNsaWVu
dCogY2xpZW50KQoreworICAgIFByZXJlbmRlcmVyQ2xpZW50Ojpwcm92aWRlVG8ocGFnZSwgUHJl
cmVuZGVyZXJDbGllbnQ6OnN1cHBsZW1lbnROYW1lKCksIGFkb3B0UHRyKGNsaWVudCkpOworfQor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRl
cmVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41YTRjZTk0NmY2Mzg3MTgwNjc4MjZjNWQ3ZTA1YWFmN2Y0Y2YxNWY1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmgK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFByZXJlbmRlcmVyQ2xpZW50X2gKKyNkZWZpbmUg
UHJlcmVuZGVyZXJDbGllbnRfaAorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjaW5j
bHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUGFnZTsKK2NsYXNz
IFByZXJlbmRlckhhbmRsZTsKKworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnQgOiBwdWJsaWMgU3Vw
cGxlbWVudDxQYWdlPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UHJlcmVuZGVyZXJDbGllbnQo
KSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCB3aWxsQWRkUHJlcmVuZGVyKFByZXJlbmRlckhhbmRs
ZSopID0gMDsKKworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1l
KCk7CisgICAgc3RhdGljIFByZXJlbmRlcmVyQ2xpZW50KiBmcm9tKFBhZ2UqKTsKKworcHJvdGVj
dGVkOgorICAgIFByZXJlbmRlcmVyQ2xpZW50KCkgeyB9Cit9OworCit2b2lkIHByb3ZpZGVQcmVy
ZW5kZXJlckNsaWVudFRvKFBhZ2UqLCBQcmVyZW5kZXJlckNsaWVudCopOworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEVEKExJTktfUFJFUkVOREVSKQorCisjZW5k
aWYgLy8gUHJlcmVuZGVyZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMDM2OGE3MjQ1MjVmYWZlNjQ5MDU4N2JlYjJiNGY2
ZTZlOWZjYzZlNi4uYzk1YWJlZGI0YzkwOGM1OTdkZTQzNWUyZDUzODhkYjQyMTQ0M2VhYiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC03
Myw4ICs3Myw2IEBAIHN0YXRpYyBSZXNvdXJjZUxvYWRQcmlvcml0eSBkZWZhdWx0UHJpb3JpdHlG
b3JSZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUKICNpZiBFTkFCTEUoTElOS19QUkVG
RVRDSCkKICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgogICAgICAg
ICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKLSAgICAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKLSAgICAgICAgICAgIHJldHVybiBSZXNvdXJj
ZUxvYWRQcmlvcml0eVZlcnlMb3c7CiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtT
dWJyZXNvdXJjZToKICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlM
b3c7CiAjZW5kaWYKQEAgLTExNCw4ICsxMTIsNiBAQCBzdGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRSZXNvdXJjZQog
I2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQ
cmVmZXRjaDoKICAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVmZXRj
aDsKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgotICAgICAgICByZXR1
cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZXJlbmRlcjsKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzU3VicmVzb3VyY2U7CiAjZW5kaWYKQEAgLTIyMCw3ICsyMTYsNyBAQCB2b2lkIENh
Y2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxv
YWRlciwgY29uc3QgUmVzbwogICAgIH0KIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotICAg
IGlmICh0eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0eXBlKCkgPT0g
Q2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXIgfHwgdHlwZSgpID09IENhY2hlZFJlc291cmNl
OjpMaW5rU3VicmVzb3VyY2UpCisgICAgaWYgKHR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1ByZWZldGNoIHx8IHR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKQog
ICAgICAgICBtX3Jlc291cmNlUmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoIlB1cnBvc2UiLCAi
cHJlZmV0Y2giKTsKICNlbmRpZgogICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldFByaW9yaXR5KGxv
YWRQcmlvcml0eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmgKaW5kZXggYzA3YjIzMWQ0ZDU5ODU3NTFjY2NhMDYyMWQzNzU3YTk1NjZiNDY5OC4uOTEx
Zjg1MGU4ODVjY2ZmN2YxZDI0Y2I2OGM1NmU0MGU1ZmFmMmY3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTc0LDcgKzc0LDYgQEAgcHVibGlj
OgogI2VuZGlmCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgICAgICwgTGlua1ByZWZl
dGNoCi0gICAgICAgICwgTGlua1ByZXJlbmRlcgogICAgICAgICAsIExpbmtTdWJyZXNvdXJjZQog
I2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMTUwLDcgKzE0OSw2IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGZhbHNlCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAg
ICAgICAgICB8fCB0eXBlKCkgPT0gTGlua1ByZWZldGNoCi0gICAgICAgICAgICB8fCB0eXBlKCkg
PT0gTGlua1ByZXJlbmRlcgogICAgICAgICAgICAgfHwgdHlwZSgpID09IExpbmtTdWJyZXNvdXJj
ZQogI2VuZGlmCiAgICAgICAgICAgICB8fCB0eXBlKCkgPT0gUmF3UmVzb3VyY2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApp
bmRleCA4NDZmM2E3MzlmOTVkMzIwMDk4YjI5YzMwZGEzODRjNzk4NmQxYTIyLi4xYTVhNmZiZDI1
MWZjNGQ2NDUzMzNiZjA4MTgxMzk0Y2Y1ZGZkMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTg4LDggKzg4LDYg
QEAgc3RhdGljIENhY2hlZFJlc291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6CiAgICAgICAgIHJldHVybiBuZXcg
Q2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCk7Ci0g
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKLSAgICAgICAgcmV0dXJuIG5l
dyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcik7
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICByZXR1
cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVz
b3VyY2UpOwogI2VuZGlmCkBAIC0yNDAsNyArMjM4LDcgQEAgQ2FjaGVkU1ZHRG9jdW1lbnQqIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U1ZHRG9jdW1lbnQoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXEKIENhY2hlZFJlc291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogewogICAgIEFTU0VSVChmcmFtZSgpKTsK
LSAgICBBU1NFUlQodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoIHx8IHR5cGUg
PT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXIgfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJj
ZTo6TGlua1N1YnJlc291cmNlKTsKKyAgICBBU1NFUlQodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6
TGlua1ByZWZldGNoIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7
CiAgICAgcmV0dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVm
YXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlvcml0eSk7CiB9CiAjZW5kaWYKQEAgLTI4
Niw3ICsyODQsNiBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29u
dGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdAogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlJhd1Jlc291cmNlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpM
aW5rUHJlcmVuZGVyOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToK
ICAgICAgICAgLy8gUHJlZmV0Y2ggY2Fubm90IGFmZmVjdCB0aGUgY3VycmVudCBkb2N1bWVudC4K
ICNlbmRpZgpAQCAtMzE1LDcgKzMxMiw2IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNh
blJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U6CiAjaWYgRU5BQkxFKExJTktfUFJFRkVU
Q0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgotICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1N1YnJlc291cmNlOgogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMzg1LDcg
KzM4MSw2IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6UmF3UmVzb3VyY2U6CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQ
cmVyZW5kZXI6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogI2Vu
ZGlmCiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJlcmVuZGVySGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVyZW5kZXJIYW5k
bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNGZkYWZjZjQwZjRlYWZlODQwYjA4YmY5NjBlNzE0MjNkZjcyYTdh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJlcmVuZGVySGFu
ZGxlLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFByZXJlbmRlckhhbmRsZV9oCisjZGVm
aW5lIFByZXJlbmRlckhhbmRsZV9oCisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNp
bmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgS1VSTDsKK2NsYXNzIFByZXJlbmRlcjsKKworY2xhc3MgUHJlcmVuZGVySGFuZGxlIDogcHVi
bGljIFJlZkNvdW50ZWQ8UHJlcmVuZGVySGFuZGxlPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUHJlcmVuZGVySGFuZGxlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+IGNyZWF0ZShjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
UmVmZXJyZXJQb2xpY3kpOworICAgIH5QcmVyZW5kZXJIYW5kbGUoKTsKKworICAgIFByZXJlbmRl
ciogcHJlcmVuZGVyKCk7CisKKyAgICAvLyBGSVhNRTogb25lIGRheSB0aGVyZSB3aWxsIGJlIGV2
ZW50cyBoZXJlLCBhbmQgd2Ugd2lsbCBiZSBhIFByZXJlbmRlckNsaWVudC4KKworICAgIC8vIEEg
cHJlcmVuZGVyIGxpbmsgZWxlbWVudCBpcyBhZGRlZCB3aGVuIGl0IGlzIGluc2VydGVkIGludG8g
YSBkb2N1bWVudC4KKyAgICB2b2lkIGFkZCgpOworCisgICAgLy8gQSBwcmVyZW5kZXIgaXMgYWJh
bmRvbmVkIHdoZW4gaXQncyBuYXZpZ2F0ZWQgYXdheSBmcm9tLiBUaGlzIGlzIGlzIGEgd2Vha2Vy
IHNpZ25hbAorICAgIC8vIHRoYW4gY2FuY2VsKCksIHNpbmNlIHRoZSBsYXVuY2hlciBoYXNuJ3Qg
aW5kaWNhdGVkIHRoYXQgdGhlIHByZXJlbmRlciBpc24ndCB3YW50ZWQsCisgICAgLy8gYW5kIHdl
IG1heSBlbmQgdXAgdXNpbmcgaXQgYWZ0ZXIsIGZvciBpbnN0YW5jZSwgYSBzaG9ydCByZWRpcmVj
dCBjaGFpbi4KKyAgICB2b2lkIGFiYW5kb24oKTsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlzIGNh
bmNlbGVkIHdoZW4gaXQgaXMgcmVtb3ZlZCBmcm9tIGEgZG9jdW1lbnQuCisgICAgdm9pZCBjYW5j
ZWwoKTsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlzIHN1c3BlbmRlZCBhbG9uZyB3aXRoIHRoZSBE
T00gY29udGFpbmluZyBpdHMgbGlua2xvYWRlciAmIHByZXJlbmRlcmVyLgorICAgIHZvaWQgc3Vz
cGVuZCgpOworICAgIHZvaWQgcmVzdW1lKCk7CisKKyAgICBjb25zdCBLVVJMJiB1cmwoKSBjb25z
dDsKKyAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyKCkgY29uc3Q7CisgICAgUmVmZXJyZXJQb2xp
Y3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBQcmVyZW5kZXJIYW5k
bGUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5KTsK
KyAgICBSZWZQdHI8UHJlcmVuZGVyPiBtX3ByZXJlbmRlcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2VuZGlmIC8v
IFByZXJlbmRlckhhbmRsZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9QcmVyZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UHJlcmVuZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWI5Y2RhOTY1ZDhhMWQ5NjEzMzI3M2ZjNDgzMDJl
ZDgwNTVjOWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUHJlcmVuZGVyLmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0u
aD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUHJlcmVuZGVyLmg+CisjaW5jbHVkZSA8cHVibGljL1dl
YlByZXJlbmRlcmluZ1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJlZmVycmVyUG9s
aWN5Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgorI2luY2x1ZGUgPHB1YmxpYy9X
ZWJVUkwuaD4KKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQcmVyZW5kZXI6OlByZXJlbmRlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5IHBvbGljeSkKKyAgICA6IG1fdXJsKHVybCkKKyAg
ICAsIG1fcmVmZXJyZXIocmVmZXJyZXIpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KHBvbGljeSkK
KyAgICAsIG1fcGxhdGZvcm0oMCkKKyNpZm5kZWYgTkRFQlVHCisgICAgLCBtX3N0YXRlKEluYWN0
aXZlKQorI2VuZGlmCit7Cit9CisKK1ByZXJlbmRlcjo6flByZXJlbmRlcigpCit7Cit9CisKK3Zv
aWQgUHJlcmVuZGVyOjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkKK3sKKyNpZmRlZiBOREVCVUcKKyAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOworI2Vsc2UKKyAgICBtX3N0YXRlID0gc3RhdGU7CisjZW5k
aWYKK30KKwordm9pZCBQcmVyZW5kZXI6OmFkZCgpCit7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0g
SW5hY3RpdmUpOworICAgIGlmICghbV9wbGF0Zm9ybSkKKyAgICAgICAgbV9wbGF0Zm9ybSA9IFdl
YktpdDo6V2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06OmdldFBsYXRmb3JtKCk7CisgICAgaWYgKCFt
X3BsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgV2ViS2l0OjpXZWJQcmVyZW5kZXIgd2Vi
UHJlcmVuZGVyKHRoaXMpOworICAgIG1fcGxhdGZvcm0tPmFkZCh3ZWJQcmVyZW5kZXIpOworICAg
IHNldFN0YXRlKEFjdGl2ZSk7Cit9CisKK3ZvaWQgUHJlcmVuZGVyOjpjYW5jZWwoKQoreworICAg
IGlmICghbV9wbGF0Zm9ybSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChtX3N0YXRlID09
IEFjdGl2ZSk7CisgICAgV2ViS2l0OjpXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOwor
ICAgIG1fcGxhdGZvcm0tPmNhbmNlbCh3ZWJQcmVyZW5kZXIpOworICAgIHNldFN0YXRlKEluYWN0
aXZlKTsKK30KKwordm9pZCBQcmVyZW5kZXI6OmFiYW5kb24oKQoreworICAgIGlmICghbV9wbGF0
Zm9ybSkKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBBc3NlcnQgb24gdGhlIHN0YXRl
IGFzIEluYWN0aXZlIGhlcmUuIEl0IGlzIGN1cnJlbnRseSBjb21tb24gdG8gY2FsbCBhYmFuZG9u
KCkgb24gYW4gSW5hY3RpdmUKKyAgICAvLyBwcmVyZW5kZXIsIGFzIHRoZSBQcmVyZW5kZXJlciBk
b2Vzbid0IGtlZXAgdHJhY2sgb2Ygd2hpY2ggcHJlcmVuZGVycyBhcmUgYWN0aXZlLCBhbmQgc28g
YW55IHBhZ2UgdGhhdAorICAgIC8vIGV2ZXIgaGFkIGEgbm93LWNhbmNlbGVkIFByZXJlbmRlciB3
aWxsIGdldCB0aGlzIGJvZ3VzIHN0b3AoKSBjYWxsLgorICAgIFdlYktpdDo6V2ViUHJlcmVuZGVy
IHdlYlByZXJlbmRlcih0aGlzKTsKKyAgICBtX3BsYXRmb3JtLT5hYmFuZG9uKHdlYlByZXJlbmRl
cik7CisgICAgc2V0U3RhdGUoSW5hY3RpdmUpOworfQorCit2b2lkIFByZXJlbmRlcjo6c3VzcGVu
ZCgpCit7CisgICAgYWJhbmRvbigpOworfQorCit2b2lkIFByZXJlbmRlcjo6cmVzdW1lKCkKK3sK
KyAgICBhZGQoKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVOREVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NzQ4OGU3YzY2MDEyZDk5YzQwOWQwMTk2OTdjYzRmYWRkM2ViZWQwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVyLmgKQEAgLTAs
MCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJfaAorI2RlZmluZSBQcmVyZW5kZXJfaAor
CisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVk
ZSA8cHVibGljL1dlYlNpemUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCituYW1l
c3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFByZXJlbmRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFBy
ZXJlbmRlcj4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByZXJlbmRlcik7CitwdWJsaWM6
CisgICAgY2xhc3MgRXh0cmFEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RXh0cmFEYXRhPiB7Cisg
ICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9OworCisg
ICAgUHJlcmVuZGVyKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJl
clBvbGljeSk7CisgICAgflByZXJlbmRlcigpOworCisgICAgdm9pZCBhZGQoKTsKKyAgICB2b2lk
IGNhbmNlbCgpOworICAgIHZvaWQgYWJhbmRvbigpOworICAgIHZvaWQgc3VzcGVuZCgpOworICAg
IHZvaWQgcmVzdW1lKCk7CisKKyAgICBjb25zdCBLVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBt
X3VybDsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBtX3Jl
ZmVycmVyOyB9CisgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJl
dHVybiBtX3JlZmVycmVyUG9saWN5OyB9CisKKyAgICB2b2lkIHNldEV4dHJhRGF0YShQYXNzUmVm
UHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKSB7IG1fZXh0cmFEYXRhID0gZXh0cmFEYXRhOyB9Cisg
ICAgRXh0cmFEYXRhKiBleHRyYURhdGEoKSB7IHJldHVybiBtX2V4dHJhRGF0YS5nZXQoKTsgfQor
Citwcml2YXRlOgorICAgIGVudW0gU3RhdGUgeworICAgICAgICBJbmFjdGl2ZSwKKyAgICAgICAg
QWN0aXZlLAorICAgIH07CisKKyAgICB2b2lkIHNldFN0YXRlKFN0YXRlKTsKKworICAgIGNvbnN0
IEtVUkwgbV91cmw7CisgICAgY29uc3QgU3RyaW5nIG1fcmVmZXJyZXI7CisgICAgY29uc3QgUmVm
ZXJyZXJQb2xpY3kgbV9yZWZlcnJlclBvbGljeTsKKworICAgIFJlZlB0cjxFeHRyYURhdGE+IG1f
ZXh0cmFEYXRhOworCisgICAgV2ViS2l0OjpXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSogbV9wbGF0
Zm9ybTsKKworI2lmbmRlZiBOREVCVUcKKyAgICBTdGF0ZSBtX3N0YXRlOworI2VuZGlmCit9Owor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNlbmRpZiAvLyBQcmVy
ZW5kZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJl
cmVuZGVySGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJl
bmRlckhhbmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRmMjlmMGM2YjZhNzQ2ZDk4YjljMTliMTg5Nzhj
NDVmMDliNDliYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1ByZXJlbmRlckhhbmRsZS5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXJlbmRlckhhbmRsZS5oIgorCisjaWYgRU5BQkxFKExJ
TktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlByZXJlbmRlci5o
IgorI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYXNzUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gUHJlcmVuZGVySGFuZGxlOjpjcmVhdGUo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGljeSBw
b2xpY3kpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcmVyZW5kZXJIYW5kbGUodXJsLCBy
ZWZlcnJlciwgcG9saWN5KSk7Cit9CisKK1ByZXJlbmRlckhhbmRsZTo6UHJlcmVuZGVySGFuZGxl
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgUmVmZXJyZXJQb2xpY3kg
cG9saWN5KQorICAgICAgICA6IG1fcHJlcmVuZGVyKGFkb3B0UmVmKG5ldyBQcmVyZW5kZXIodXJs
LCByZWZlcnJlciwgcG9saWN5KSkpCit7Cit9CisKK1ByZXJlbmRlckhhbmRsZTo6flByZXJlbmRl
ckhhbmRsZSgpCit7Cit9CisKK1ByZXJlbmRlciogUHJlcmVuZGVySGFuZGxlOjpwcmVyZW5kZXIo
KQoreworICAgIHJldHVybiBtX3ByZXJlbmRlci5nZXQoKTsKK30KKwordm9pZCBQcmVyZW5kZXJI
YW5kbGU6OmFkZCgpCit7CisgICAgcHJlcmVuZGVyKCktPmFkZCgpOworfQorCit2b2lkIFByZXJl
bmRlckhhbmRsZTo6Y2FuY2VsKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+Y2FuY2VsKCk7Cit9CisK
K3ZvaWQgUHJlcmVuZGVySGFuZGxlOjphYmFuZG9uKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+YWJh
bmRvbigpOworfQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6c3VzcGVuZCgpCit7CisgICAgcHJl
cmVuZGVyKCktPnN1c3BlbmQoKTsKK30KKwordm9pZCBQcmVyZW5kZXJIYW5kbGU6OnJlc3VtZSgp
Cit7CisgICAgcHJlcmVuZGVyKCktPnJlc3VtZSgpOworfQorCitjb25zdCBLVVJMJiBQcmVyZW5k
ZXJIYW5kbGU6OnVybCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJlcmVuZGVyLT51cmwoKTsK
K30KKworY29uc3QgU3RyaW5nJiBQcmVyZW5kZXJIYW5kbGU6OnJlZmVycmVyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcmVyZW5kZXItPnVybCgpOworfQorCitSZWZlcnJlclBvbGljeSBQcmVy
ZW5kZXJIYW5kbGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVy
ZW5kZXItPnJlZmVycmVyUG9saWN5KCk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShMSU5L
X1BSRVJFTkRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTdiYWY1NTc0YTAyYmY1
NGYwMjhhMjA1OTUyNDMzNGYzYWM5YTM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQcmVyZW5kZXIuY3BwCkBAIC0wLDAgKzEs
MTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVO
REVSKQorCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgeworCitjbGFzcyBFeHRyYURhdGFDb250YWluZXIgOiBwdWJsaWMgV2ViQ29yZTo6
UHJlcmVuZGVyOjpFeHRyYURhdGEgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV4
dHJhRGF0YUNvbnRhaW5lcj4gY3JlYXRlKFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhKiBleHRyYURh
dGEpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeHRyYURhdGFDb250YWluZXIoZXh0cmFEYXRhKSk7
IH0KKworICAgIHZpcnR1YWwgfkV4dHJhRGF0YUNvbnRhaW5lcigpIHsgfQorCisgICAgV2ViUHJl
cmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFEYXRh
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgRXh0cmFEYXRhQ29udGFpbmVyKFdl
YlByZXJlbmRlcjo6RXh0cmFEYXRhKiBleHRyYURhdGEpCisgICAgICAgICAgICA6IG1fZXh0cmFE
YXRhKGFkb3B0UHRyKGV4dHJhRGF0YSkpCisgICAgeworICAgIH0KKworICAgIE93blB0cjxXZWJQ
cmVyZW5kZXI6OkV4dHJhRGF0YT4gbV9leHRyYURhdGE7Cit9OworCit9IC8vIGFub24gbmFtZXNw
YWNlCisKK1dlYlByZXJlbmRlcjo6V2ViUHJlcmVuZGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6UHJl
cmVuZGVyPiBwcmVyZW5kZXIpCisgICAgOiBtX3ByaXZhdGUocHJlcmVuZGVyKQoreworfQorCitX
ZWJQcmVyZW5kZXI6On5XZWJQcmVyZW5kZXIoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOwor
fQorCitXZWJVUkwgV2ViUHJlcmVuZGVyOjp1cmwoKSBjb25zdAoreworICAgIHJldHVybiBXZWJV
UkwobV9wcml2YXRlLT51cmwoKSk7Cit9CisKK1dlYlN0cmluZyBXZWJQcmVyZW5kZXI6OnJlZmVy
cmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5yZWZlcnJlcigpOworfQorCitX
ZWJSZWZlcnJlclBvbGljeSBXZWJQcmVyZW5kZXI6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViUmVmZXJyZXJQb2xpY3k+KG1fcHJpdmF0ZS0+cmVm
ZXJyZXJQb2xpY3koKSk7Cit9CisKK3ZvaWQgV2ViUHJlcmVuZGVyOjpzZXRFeHRyYURhdGEoV2Vi
UHJlcmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldEV4
dHJhRGF0YShFeHRyYURhdGFDb250YWluZXI6OmNyZWF0ZShleHRyYURhdGEpKTsKK30KKworY29u
c3QgV2ViUHJlcmVuZGVyOjpFeHRyYURhdGEqIFdlYlByZXJlbmRlcjo6ZXh0cmFEYXRhKCkgY29u
c3QKK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURhdGE+IHdlYmNvcmVF
eHRyYURhdGEgPSBtX3ByaXZhdGUtPmV4dHJhRGF0YSgpOworICAgIGlmICghd2ViY29yZUV4dHJh
RGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV4dHJhRGF0
YUNvbnRhaW5lcio+KHdlYmNvcmVFeHRyYURhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEVEKExJTktfUFJFUkVOREVS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21p
dW0vUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggZmNlMWViZmQwNzIzOTk0NDM0MTk2MzNkZDFkNzEw
OWVlODcyMzQzMi4uN2VhNjFhODg4YmM5ZmI4YWViYjI0MTNiODQxYjNjYzM2ZTI2NWNlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJj
ZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVt
L1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Myw3ICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgIFRhcmdldElzV29ya2VyLAogICAgICAgICAgICAgVGFyZ2V0SXNTaGFyZWRX
b3JrZXIsCiAgICAgICAgICAgICBUYXJnZXRJc1ByZWZldGNoLAotICAgICAgICAgICAgVGFyZ2V0
SXNQcmVyZW5kZXIsCiAgICAgICAgICAgICBUYXJnZXRJc0Zhdmljb24sCiAgICAgICAgICAgICBU
YXJnZXRJc1hIUiwKICAgICAgICAgICAgIFRhcmdldElzVGV4dFRyYWNrLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCmluZGV4IDdiZmY5YmM3MmU5NDNjMDJiMWYxYTIwMTgyMTNkZWYyYThjMjUz
OGUuLmI4NWQ3NTZmYmYxYzEyNGQ2ODhkYjA0MzM2ZDgwZDJlYWNmMjdmZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXAKQEAgLTQzNyw2ICs0MzcsOCBAQAogICAgICAgICAgICAgICAgICdz
cmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMv
Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Ob25D
b21wb3NpdGVkQ29udGVudEhvc3QuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9QcmVyZW5kZXJl
ckNsaWVudEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9QcmVyZW5kZXJlckNsaWVudElt
cGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2FuZHJvaWQvV2ViSW5wdXRFdmVudEZhY3Rv
cnkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2xpbnV4L1dlYkZvbnRJbmZvLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9saW51eC9XZWJGb250UmVuZGVyaW5nLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggNTYxYjEzMDI0NTVhY2Y2NWEzNGI4
YzYyNjNkOTM2YjJjMmJlZmU1MC4uYWUzYzhlYTI3MzJiMTNmMGEwZWU0NWU0ZDNmZTE5ZmM3MTA1
ODg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMTA2LDkg
KzEwNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0b2ZpbGxDbGllbnQoV2Vi
QXV0b2ZpbGxDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldlRvb2xzQWdlbnRD
bGllbnQoV2ViRGV2VG9vbHNBZ2VudENsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KikgPSAwOwotICAgIC8vIEZJWE1F
OiBBZnRlciB0aGUgUHJlcmVuZGVyaW5nIEFQSSBsYW5kcyBpbiBjaHJvbWUsIHJlbW92ZSB0aGlz
IHN0YWdpbmcgdGh1bmsKLSAgICAvLyBmb3Igc2V0UHJlcmVuZGVyZXJDbGllbnQoKS4KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJDbGllbnQqKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJD
bGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNwZWxsQ2hlY2tDbGllbnQoV2ViU3Bl
bGxDaGVja0NsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVjb3Jh
dG9yQ2xpZW50KFdlYlRleHRGaWVsZERlY29yYXRvckNsaWVudCopID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJlcmVuZGVyZXJDbGllbnRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDY1MWQyNzlkZTg0NTFhOGJiYTFkYjU0ODY0NWY5ZGM2ZDA2NjMyNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVyQ2xpZW50
SW1wbC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUHJlcmVuZGVyZXJDbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisjaW5jbHVkZSAiUHJlcmVu
ZGVySGFuZGxlLmgiCisjaW5jbHVkZSAiV2ViUHJlcmVuZGVyZXJDbGllbnQuaCIKKyNpbmNsdWRl
ICJXZWJWaWV3SW1wbC5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXIuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUHJlcmVuZGVy
ZXJDbGllbnRJbXBsOjpQcmVyZW5kZXJlckNsaWVudEltcGwoV2ViUHJlcmVuZGVyZXJDbGllbnQq
IGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKK30KKwordm9pZCBQcmVyZW5kZXJl
ckNsaWVudEltcGw6OndpbGxBZGRQcmVyZW5kZXIoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlKiBw
cmVyZW5kZXJIYW5kbGUpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIFdlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIocHJlcmVuZGVySGFuZGxlLT5wcmVyZW5kZXIo
KSk7CisgICAgbV9jbGllbnQtPndpbGxBZGRQcmVyZW5kZXIoJndlYlByZXJlbmRlcik7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVyQ2xp
ZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJlcmVuZGVyZXJDbGllbnRJ
bXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODUxNzYzMmFlYTQ1Y2NmNmE1ZTM2MGNlZWMxOGQ0Y2Q1MzkzMTI1
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRl
cmVyQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJlckNs
aWVudEltcGxfaAorI2RlZmluZSBQcmVyZW5kZXJlckNsaWVudEltcGxfaAorCisjaW5jbHVkZSAi
UHJlcmVuZGVyZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQcmVy
ZW5kZXJIYW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcmVyZW5k
ZXJlckNsaWVudDsKKworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnRJbXBsIDogcHVibGljIFdlYkNv
cmU6OlByZXJlbmRlcmVyQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQcmVyZW5k
ZXJlckNsaWVudEltcGwpOworcHVibGljOgorICAgIGV4cGxpY2l0IFByZXJlbmRlcmVyQ2xpZW50
SW1wbChXZWJQcmVyZW5kZXJlckNsaWVudCopOworCisgICAgdm9pZCB3aWxsQWRkUHJlcmVuZGVy
KFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZSopIE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFdl
YlByZXJlbmRlcmVyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30KKworI2VuZGlmIC8vIFByZXJl
bmRlcmVyQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKaW5kZXggODhlNGJkOGMwYzljYTFiNDdkMDJiNGIyMzZjYTdhZGIxOGFmNjhkYS4uODcx
Y2MyMGFjMDM1YjBjOTQ5N2IxZjJlMzBlMzE1Yjc0ZjA4ZDAwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTAwLDYgKzEwMCw3IEBACiAjaW5jbHVk
ZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIK
ICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJlckNsaWVu
dEltcGwuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJM
YXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0zMjIsNiArMzIz
LDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFBlcm1pc3Npb25DbGllbnQoV2ViUGVybWlzc2lv
bkNsaWVudCogcGVybWlzc2lvbkNsaWVudCkKICAgICBtX3Blcm1pc3Npb25DbGllbnQgPSBwZXJt
aXNzaW9uQ2xpZW50OwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRQcmVyZW5kZXJlckNsaWVu
dChXZWJQcmVyZW5kZXJlckNsaWVudCogcHJlcmVuZGVyZXJDbGllbnQpCit7CisgICAgcHJvdmlk
ZVByZXJlbmRlcmVyQ2xpZW50VG8obV9wYWdlLmdldCgpLCBuZXcgUHJlcmVuZGVyZXJDbGllbnRJ
bXBsKHByZXJlbmRlcmVyQ2xpZW50KSk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldFNwZWxs
Q2hlY2tDbGllbnQoV2ViU3BlbGxDaGVja0NsaWVudCogc3BlbGxDaGVja0NsaWVudCkKIHsKICAg
ICBtX3NwZWxsQ2hlY2tDbGllbnQgPSBzcGVsbENoZWNrQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggOTM4M2JhMjhkOTYwOGJhMmRjNWQwYTdmZDI0
MTdhODgyNGUwOTRkNy4uOGIzYmMyYjEzZTRlOWFmNDQzZWVhZjFmZWNhYjBhMDZjYTUyZjkyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC05MCw2ICs5MCw3
IEBAIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHk7CiBjbGFzcyBEcmFnU2Nyb2xs
VGltZXI7CiBjbGFzcyBHZW9sb2NhdGlvbkNsaWVudFByb3h5OwogY2xhc3MgTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0OworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnRJbXBsOwogY2xhc3MgU3BlZWNo
SW5wdXRDbGllbnRJbXBsOwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eTsKIGNs
YXNzIFVzZXJNZWRpYUNsaWVudEltcGw7CkBAIC0xMDAsNiArMTAxLDcgQEAgY2xhc3MgV2ViRGV2
VG9vbHNBZ2VudFByaXZhdGU7CiBjbGFzcyBXZWJGcmFtZUltcGw7CiBjbGFzcyBXZWJHZXN0dXJl
RXZlbnQ7CiBjbGFzcyBXZWJQYWdlUG9wdXBJbXBsOworY2xhc3MgV2ViUHJlcmVuZGVyZXJDbGll
bnQ7CiBjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJN
b3VzZUV2ZW50OwpAQCAtMTYwLDYgKzE2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QXV0b2ZpbGxDbGllbnQoV2ViQXV0b2ZpbGxDbGllbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50Q2xpZW50Kik7CiAgICAgdmly
dHVhbCB2b2lkIHNldFBlcm1pc3Npb25DbGllbnQoV2ViUGVybWlzc2lvbkNsaWVudCopOworICAg
IHZpcnR1YWwgdm9pZCBzZXRQcmVyZW5kZXJlckNsaWVudChXZWJQcmVyZW5kZXJlckNsaWVudCop
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTcGVsbENoZWNrQ2xpZW50KFdlYlNwZWxs
Q2hlY2tDbGllbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVjb3JhdG9yQ2xp
ZW50KFdlYlRleHRGaWVsZERlY29yYXRvckNsaWVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
V2ViU2V0dGluZ3MqIHNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGIyNTNmNGIyNmQwZWQ0OTU0ZmFhM2I1
MjY0NjRjNTgwZGNhMWE2ZC4uZDIyM2ZmNmMwZWFhMmQ4YzVmN2EzZjEwMDFiNTJmMTdkZjJlZDAx
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTI2ICBHYXZpbiBQZXRlcnMgIDxnYXZp
bnBAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBQcmVyZW5kZXJlciwgUHJlcmVuZGVySGFu
ZGxlIGFuZCBhIGNocm9taXVtIGludGVyZmFjZSBmb3IgUHJlcmVuZGVyaW5nLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUwMDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJlcmVuZGVyIGNhc2Ug
aXNuJ3QgcXVpdGUgYSByZXNvdXJjZSBsb2FkLCBhbmQgdXNpbmcgcmVzb3VyY2UgbG9hZGluZyB0
bworICAgICAgICByZXRyaWV2ZSB0aGVtIGhhcyBjb25zdHJhaW5lZCB0aGUgQVBJLCBhbmQgdW5u
ZWNlc3NhcmlseSBjb21wbGljYXRlZCB0aGUgbG9hZGVyLgorCisgICAgICAgIFRoZSBuZXcgUHJl
cmVuZGVyZXIgYW5kIFByZXJlbmRlckhhbmRsZSBsZXQgPGxpbmsgcmVsPXByZXJlbmRlci4uLj4g
ZWxlbWVudHMgc2lnbmFsCisgICAgICAgIHJlbW92YWwgYW5kIHVubG9hZCB0byB0aGVpciBwbGF0
Zm9ybS4KKworICAgICAgICBUaGVzZSB0ZXN0cyBhcmUgYmVpbmcgcmVtb3ZlZCwgYW5kIGV4cGVj
dGF0aW9ucyB1cGRhdGVkLCBiZWNhdXNlIHRoZSBvbGQgcGhhbnRvbS1sb2FkCisgICAgICAgIHBy
ZXJlbmRlcmluZyBpbnRlcmZhY2Ugd2FzIHN1c2NlcHRpYmxlIHRvIGxheW91dCB0ZXN0aW5nLCBh
bmQgdGhlIG5ldyBpbnRlcmZhY2UgcmVxdWlyZXMKKyAgICAgICAgYSBmdWxsIHBsYXRmb3JtIHRv
IHRlc3QsIHNvIGl0IGNhbid0IHJlYWxseSBiZSBhIGxheW91dCB0ZXN0LgorCisgICAgICAgICog
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBl
ZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW5jYWlyby9Ta2lwcGVkOgorCiAyMDEyLTA0LTI1ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5v
dkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIHRlc3QgZXhw
ZWN0YXRpb25zIHVwZGF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZXJlbmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjY1YmZlMjY0NTIwNGQxMzI1N2VjZDI0NjI5NWMwYTk0ZDcxY2NlZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotcHJlZmV0Y2gubGluayBoYXMgTUlNRSB0eXBlIGFwcGxpY2F0
aW9uL29jdGV0LXN0cmVhbQotUEFTUyBvbmxvYWQgY2FsbGVkIQotVGhpcyB0ZXN0IHdpbGwgb25s
eSBwcmludCAiUEFTUyIgb3IgIkZBSUwiIGlmIGxpbmsgcHJlZmV0Y2hlcyBhcmUgZW5hYmxlZCwg
b3RoZXJ3aXNlIGl0IHdpbGwgc2hvdyBub3RoaW5nIGJlbG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2OTc4ZjQyY2VlYzYzNzUzZDA2N2MyNGIyOGFlZDczZmVjNjM0YzY2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDIwICswLDAgQEAKLTxib2R5PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBwcmVmZXRjaF9vbmxvYWQoKSB7Ci0gICAgdGVzdFBhc3NlZCgnb25s
b2FkIGNhbGxlZCEnKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci19
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVU
eXBlcygpOwotfQotPC9zY3JpcHQ+Ci08aHRtbD4KLTxwPlRoaXMgdGVzdCB3aWxsIG9ubHkgcHJp
bnQgIlBBU1MiIG9yICJGQUlMIiBpZiBsaW5rIHByZWZldGNoZXMgYXJlCi1lbmFibGVkLCBvdGhl
cndpc2UgaXQgd2lsbCBzaG93IG5vdGhpbmcgYmVsb3cuPC9wPgotPGxpbmsgaHJlZj0icHJlZmV0
Y2gubGluayIgcmVsPSJwcmVyZW5kZXIiIG9ubG9hZD0icHJlZmV0Y2hfb25sb2FkKCkiIG9uZXJy
b3I9InRlc3RGYWlsZWQoJ29uZXJyb3InKSIgLz4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggZTg5NmFmNWJjZTNhYzI3
ZWUzZDZmMTVhNzE3Yjk5ZDg4MDIxZTAyZS4uNDlmYjg1ZDI2N2VlMmM3MDk1NDhhNzQwZmIxZWE0
NzE4MjM4Yjc5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3Rh
dGlvbnMudHh0CkBAIC04OTgsNyArODk4LDYgQEAgQlVHV0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlu
a0VsZW1lbnQvcHJlZmV0Y2guaHRtbCA9IEZBSUwKIEJVR1dLR1RLIDogZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbCA9IEZBSUwKIEJVR1dLR1RLIDogZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbCA9IEZBSUwKIEJVR1dL
R1RLIDogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sID0gRkFJ
TAotQlVHV0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwgPSBG
QUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zdWJyZXNvdXJjZS5odG1s
ID0gRkFJTAogCiAvLyBUZXN0cyBmYWlsaW5nIGJlY2F1c2UgdGhlIGNvbnRleHQgbWVudSBpcyBn
cmFiYmluZyBtb3VzZSBldmVudHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDliZmFk
ZDA5MGQ5NTMwNjZhMTczODI5YzFiNGZlZjAwMTFkZTkzNWUuLmEyMjk4YmNkMDllNzFlY2VhZmFm
Yjc5NjA5OWZlMWVhMGQ4MmMxZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0xOTMs
NyArMTkzLDYgQEAgZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQu
aHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtdG9vLW1hbnktY2xpZW50cy5odG1sCi1mYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zdWJy
ZXNvdXJjZS5odG1sCiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1YnJl
c291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGY5OGYzOTViYjE1NTA3NWU3ZGM4MDdhODkwOGViNDVjNjU5
OTJmMjMuLmEwMDM1NDVlNzkzNTQ5YTM2MmMzMTMzMmYxYjM0NTUyNjYzMjRlZjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZApAQCAtMTQ0LDcgKzE0NCw2IEBAIGZhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9w
cmVmZXRjaC1vbmVycm9yLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1v
bmxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLXRvby1tYW55LWNs
aWVudHMuaHRtbAotZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sCiBmYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL2xp
bmstcmVsLXByZWZldGNoLWFuZC1zdWJyZXNvdXJjZS5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJl
ZmV0Y2gtcHVycG9zZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDk5ZTI1ODM4
NTM1ZGZlZDdjNzg5MjIzMWEyOGI1N2ZlYzQ1NDQ5YTcuLjFiYjIzNmViODM0N2MxNmNkNGJiNGJk
MmY5YmZkNmMxZDUzMGExNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xMDk4LDcg
KzEwOTgsNiBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1s
CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRzLmh0bWwKIGh0dHAvdGVz
dHMvbWlzYy9saW5rLXJlbC1wcmVmZXRjaC1hbmQtc3VicmVzb3VyY2UuaHRtbAotZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
c3VicmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAppbmRleCBlMDkxMzliMmUzOTkwMmVi
NWFkZGI1YTQ2NDgwZmRlM2FjNDk3ZDdkLi43Y2E5OTE2ZTBiOTEwMDcwMmUxYTZjOTI0NmVhN2Vm
NDI1Y2I4ZWNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKQEAgLTE2MTMs
NyArMTYxMyw2IEBAIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0
bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLXRvby1tYW55LWNsaWVudHMuaHRtbAogaHR0cC90
ZXN0cy9taXNjL2xpbmstcmVsLXByZWZldGNoLWFuZC1zdWJyZXNvdXJjZS5odG1sCi1mYXN0L2Rv
bS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9zdWJyZXNvdXJjZS5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5odG1s
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139182</attachid>
            <date>2012-04-27 06:04:13 -0700</date>
            <delta_ts>2012-04-27 11:09:35 -0700</delta_ts>
            <desc>remove TargetIsPrender for blackberry</desc>
            <filename>bug-85005-20120427090411.patch</filename>
            <type>text/plain</type>
            <size>80596</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3ZTkzOGZiMDNkZWRk
ZWE5MzkxODkxMTU5MzgxZTU0YjU4NDU3MmY4Li4xYjMxYWNlMmFiNjgxMzI4NGQwN2U0YjVlMDU0
ZjA2NmVlNDI1OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wNC0yNiAg
R2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJlcmVu
ZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFByZXJl
bmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIHByZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVzaW5n
IHJlc291cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3RyYWlu
ZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4KKwor
ICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxsaW5r
IHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFuZCB1
bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlz
IGludGVyZmFjZSByZXF1aXJlcyBhIGZ1bGwgcGxhdGZvcm0gZm9yIHRlc3RpbmcsIGFuZCBpc24n
dCBwYXJ0CisgICAgICAgIG9mIGxheW91dC4KKworICAgICAgICAqIFBsYXRmb3JtLmd5cGk6Cisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmg6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoUGxhdGZvcm0pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6Y3JlYXRlUHJl
cmVuZGVyaW5nUGxhdGZvcm0pOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5k
ZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJQcmVyZW5kZXIpOgorICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5oOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06On5XZWJQ
cmVyZW5kZXJpbmdQbGF0Zm9ybSk6CisgICAgICAgIChXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSk6
CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaDoKKyAgICAgICAgKiBj
aHJvbWl1bS9zcmMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1BsYXRmb3JtOjpzZXRQbGF0Zm9ybSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1BsYXRmb3JtOjpnZXRQbGF0Zm9ybSk6CisK
IDIwMTItMDQtMjUgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Nocm9taXVtXSBBZGQgdGh1bmsgaGVhZGVycyBmb3Igc3RhZ2luZyBQcmVyZW5kZXJpbmcg
QVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGI1NzAyNWQ3Yzg0YzMxNzMxNDUyZmFkYmQwZWUxZDMzZTA5NWQw
NmEuLjBjZTBiYjFlNmM3NGYwNWU3ODdiZGQwZWU3ZmU2NTY4ZjY3YTFlZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMjIgQEAKKzIwMTItMDQtMjYgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgQWRkIFByZXJlbmRlcmVyLCBQcmVyZW5kZXJIYW5kbGUgYW5k
IGEgY2hyb21pdW0gaW50ZXJmYWNlIGZvciBQcmVyZW5kZXJpbmcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmVyZW5kZXIgY2FzZSBpc24ndCBx
dWl0ZSBhIHJlc291cmNlIGxvYWQsIGFuZCB1c2luZyByZXNvdXJjZSBsb2FkaW5nIHRvCisgICAg
ICAgIHJldHJpZXZlIHRoZW0gaGFzIGNvbnN0cmFpbmVkIHRoZSBBUEksIGFuZCB1bm5lY2Vzc2Fy
aWx5IGNvbXBsaWNhdGVkIHRoZSBsb2FkZXIuCisKKyAgICAgICAgVGhlIG5ldyBQcmVyZW5kZXJl
ciBhbmQgUHJlcmVuZGVySGFuZGxlIGxldCA8bGluayByZWw9cHJlcmVuZGVyLi4uPiBlbGVtZW50
cyBzaWduYWwKKyAgICAgICAgcmVtb3ZhbCBhbmQgdW5sb2FkIHRvIHRoZWlyIHBsYXRmb3JtLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpbnRlcmZhY2UgcmVxdWlyZXMgYSBmdWxs
IHBsYXRmb3JtIHRvIHdvcmssIGFuZCBkb2Vzbid0IGFmZmVjdCBsYXlvdXQuICBUZXN0CisgICAg
ICAgIGl0IHdpdGggeW91ciBwbGF0Zm9ybSB3aGVuIGltcGxlbWVudGVkIGZvciBpdC4KKworICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnByZXJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnJlbW92ZWRGcm9t
KToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9M
aW5rUmVsQXR0cmlidXRlLmg6CisgICAgICAgIChMaW5rUmVsQXR0cmlidXRlKToKKyAgICAgICAg
KiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjps
b2FkTGluayk6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpyZWxlYXNlZCk6CisgICAg
ICAgICogbG9hZGVyL0xpbmtMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
TGlua0xvYWRlcik6CisgICAgICAgICogbG9hZGVyL1ByZXJlbmRlcmVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OlByZXJlbmRlcmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlByZXJlbmRlcmVyOjp+UHJlcmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlcmVuZGVyZXI6OnJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6c3VzcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcmVyZW5kZXJlcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRl
cmVyOjpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6Y2xpZW50KToK
KyAgICAgICAgKiBsb2FkZXIvUHJlcmVuZGVyZXIuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoUHJlcmVuZGVyZXIpOgorICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVu
dC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlckNsaWVu
dDo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJDbGllbnQ6
OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6cHJvdmlkZVByZXJlbmRlcmVyQ2xpZW50VG8pOgor
ICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUHJlcmVuZGVyZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJD
bGllbnQ6On5QcmVyZW5kZXJlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJl
ckNsaWVudDo6UHJlcmVuZGVyZXJDbGllbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0UHJpb3JpdHlGb3JSZXNv
dXJjZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpsb2FkKToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlOjppZ25vcmVGb3JSZXF1ZXN0Q291bnQpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExp
bmtSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hl
Y2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OmNhblJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5o
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQcmVyZW5kZXJIYW5kbGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OlByZXJlbmRlcik6CisgICAgICAg
IChXZWJDb3JlOjpQcmVyZW5kZXI6On5QcmVyZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
cmVuZGVyOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmFkZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cmVyZW5kZXI6OmFiYW5kb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6cmVzdW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuaDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFByZXJlbmRlcik6CisgICAgICAgIChFeHRyYURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURhdGE6On5FeHRyYURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVu
ZGVyOjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OnJlZmVycmVyUG9s
aWN5KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6c2V0RXh0cmFEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6ZXh0cmFEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcmVyZW5kZXJIYW5kbGU6OlByZXJlbmRlckhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cmVyZW5kZXJIYW5kbGU6On5QcmVyZW5kZXJIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
cmVuZGVySGFuZGxlOjpwcmVyZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFu
ZGxlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpjYW5jZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjphYmFuZG9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlByZXJlbmRlckhhbmRsZTo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVy
ZW5kZXJIYW5kbGU6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6
OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OnJlZmVycmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpXZWJQcmVyZW5kZXIpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjp+V2ViUHJlcmVuZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjp1cmwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVy
ZW5kZXI6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpyZWZlcnJl
clBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcjo6c2V0RXh0cmFEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpleHRyYURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0Lmg6CisKIDIwMTItMDQtMjUg
IEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIG5ldyBF
TkFCTEVfTElOS19QUkVSRU5ERVIgZGVmaW5lIHRvIGNvbnRyb2wgdGhlIFByZXJlbmRlcmluZyBB
UEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMmM4NTE3YzY5NzZjYzY5Y2U4OGU4YTc0
Yzg4NzBmZjE1NGEwYmNhOS4uZTkxY2UzNzc1MDE5NDg0ZjdkYmEwMDVjNjRjYTkxZDQwYjYzZGUw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNC0y
NiAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJl
cmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFBy
ZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIHByZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVz
aW5nIHJlc291cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3Ry
YWluZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4K
KworICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxs
aW5rIHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFu
ZCB1bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1ByZXJlbmRlcmVyQ2xpZW50
SW1wbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0
ZS5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UHJlcmVuZGVyZXJDbGll
bnRJbXBsOjpQcmVyZW5kZXJlckNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpQcmVyZW5k
ZXJlckNsaWVudEltcGw6OndpbGxBZGRQcmVyZW5kZXIpOgorICAgICAgICAqIHNyYy9QcmVyZW5k
ZXJlckNsaWVudEltcGwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVs
QXR0cmlidXRlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChQcmVyZW5kZXJlckNsaWVudEltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQcmVyZW5kZXJlckNsaWVudCk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wNC0yNSAgR2F2aW4g
UGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEFkZCB0
aHVuayBoZWFkZXJzIGZvciBzdGFnaW5nIFByZXJlbmRlcmluZyBBUEkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5n
eXBpCmluZGV4IDYyZDZkNmUwZTUyOTliMDU2YjJjY2I2MzRlNjdhNWZmODc4NGFkYjIuLmU0N2Zi
MmNmNDlkNTYxMDdmZmNmNWZkMmYwYzYyOTI2NGZiMjZkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9Q
bGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBp
CkBAIC04Nyw2ICs4Nyw3IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlN0cmlu
Zy5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVGhyZWFkLmgnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJUaHJlYWRTYWZlRGF0YS5oJywKKyAgICAgICAgICAg
ICdjaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9XZWJVUkwuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTEVy
cm9yLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkVGltaW5nLmgn
LApAQCAtMTAwLDYgKzEwMSw3IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1BsYXRmb3Jt
LmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1dlYkNTdHJpbmcuY3BwJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9zcmMvV2ViRmxvYXRRdWFkLmNwcCcsCisgICAgICAgICAgICAnY2hy
b21pdW0vc3JjL1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmNwcCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vc3JjL1dlYlN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3NyYy9XZWJW
aWRlb0ZyYW1lLmNwcCcsCiAgICAgICAgIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvUGxhdGZvcm0uaAppbmRleCBhYmYzZDA5MDFlZDllZTA1NzUyYTA2NWMzY2E5MzA5OGM1M2I0
NGU2Li5iMTVhMTVhMTNhN2JhNGNhNjNmNmEwNGUzOTVhMmM0YzFlMjNlYmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCkBAIC00OSw2ICs0OSw3IEBAIGNs
YXNzIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlcjsKIGNsYXNzIFdlYlBlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudDsKIGNsYXNzIFdlYlVSTDsKIGNsYXNzIFdlYlVSTExvYWRlcjsKK2NsYXNzIFdl
YlByZXJlbmRlcmluZ1BsYXRmb3JtOwogY2xhc3MgV2ViU29ja2V0U3RyZWFtSGFuZGxlOwogY2xh
c3MgV2ViVGhyZWFkOwogCkBAIC0yODMsNiArMjg0LDggQEAgcHVibGljOgogICAgIC8vIEVudW1l
cmF0aW9uIGhpc3RvZ3JhbSBidWNrZXRzIGFyZSBsaW5lYXIsIGJvdW5kYXJ5VmFsdWUgc2hvdWxk
IGJlIGxhcmdlciB0aGFuIGFueSBwb3NzaWJsZSBzYW1wbGUgdmFsdWUuCiAgICAgdmlydHVhbCB2
b2lkIGhpc3RvZ3JhbUVudW1lcmF0aW9uKGNvbnN0IGNoYXIqIG5hbWUsIGludCBzYW1wbGUsIGlu
dCBib3VuZGFyeVZhbHVlKSB7IH0KIAorICAgIC8vIFByZXJlbmRlcgorICAgIHZpcnR1YWwgV2Vi
UHJlcmVuZGVyaW5nUGxhdGZvcm0qIGNyZWF0ZVByZXJlbmRlcmluZ1BsYXRmb3JtKCkgeyByZXR1
cm4gMDsgfQogCiAgICAgLy8gV2ViUlRDIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgKaW5kZXggMDhhNzE1ZGQ5ODcwZTY1NzE5M2ZkNTBhZGU1
M2Y0MDU2NDAwYmNhYi4uYzk5YTE0NTNiZGQ5NDhhNWIwYzA4NDQxZmFjMDIzOTdmOTlmODg3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIu
aAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oCkBA
IC00OSwyNyArNDksMjkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJTaXplOwog
Ci0vLyBUaGlzIHRodW5rIGltcGxlbWVudGF0aW9uIG9mIFdlYlByZXJlbmRlciBleGlzdHMgb25s
eSBmb3Igc3RhZ2luZzsgdGhpcyB3aWxsIGFsbG93Ci0vLyB0aGUgQ2hyb21pdW0gc2lkZSBvZiB0
aGUgUHJlcmVuZGVyaW5nIEFQSSB0byBsYW5kLCBhbmQgdGhlbiBsYXRlciB3ZSBjYW4gYXRvbWlj
bHkKLS8vIHN3aXRjaCBXZWJLaXQgdG8gcHJlcmVuZGVyLCBhbmQgZmluYWxseSByZW1vdmUgdGhl
IG9sZCBwaGFudG9tLXJlcXVlc3QgcHJlcmVuZGVyCi0vLyBpbXBsZW1lbnRhdGlvbiBmcm9tIENo
cm9taXVtLgotLy8gRklYTUU6IFB1dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIGhlcmUgYWZ0
ZXIgdGhlIENocm9taXVtIHNpZGUgb2YgdGhpcyBBUEkKLS8vIGxhbmRzLgogY2xhc3MgV2ViUHJl
cmVuZGVyIHsKIHB1YmxpYzoKICAgICBjbGFzcyBFeHRyYURhdGEgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkgeyB9CiAgICAgfTsKLSAgICBXZWJVUkwgdXJsKCkg
Y29uc3QgeyByZXR1cm4gV2ViVVJMKCk7IH0KLSAgICBXZWJTdHJpbmcgcmVmZXJyZXIoKSBjb25z
dCB7IHJldHVybiAiIjsgfQotICAgIFdlYlJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkg
Y29uc3QgeyByZXR1cm4gV2ViUmVmZXJyZXJQb2xpY3koKTsgfQotICAgIHZvaWQgc2V0RXh0cmFE
YXRhKEV4dHJhRGF0YSopIHsgfQotICAgIGNvbnN0IEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29u
c3QgeyByZXR1cm4gMDsgfQorCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgZXhwbGlj
aXQgV2ViUHJlcmVuZGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6UHJlcmVuZGVyPik7CisgICAgfldl
YlByZXJlbmRlcigpOworI2VuZGlmCisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlVSTCB1cmwoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyByZWZlcnJlcigpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgV2ViUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdDsK
KworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRFeHRyYURhdGEoRXh0cmFEYXRhKik7CisgICAg
V0VCS0lUX0VYUE9SVCBjb25zdCBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIFdlYlByZXJlbmRlcigpIHsgfQotICAgIH5XZWJQcmVyZW5kZXIoKSB7IH0KKyAg
ICBXZWJQcmVyZW5kZXIoKTsKKworICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UHJlcmVuZGVy
PiBtX3ByaXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uaCBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0u
aAppbmRleCAxN2ZmYWU4MzJkMTI2OTJlODQ0OTRmZjExNDAwZGI0YzJhNjhlNmVhLi4yMDBlODZj
ZTQyMzI2NTYyYzM4MDRlYTJmYmMxZmM5YzY3ZjllNGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmgKKysrIGIvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5oCkBA
IC0zNywyNSArMzcsMzEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlByZXJlbmRl
cjsKIAotLy8gVGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXJpbmdQbGF0
Zm9ybSBleGlzdHMgb25seSBmb3Igc3RhZ2luZzsgdGhpcyB3aWxsCi0vLyBhbGxvdyB0aGUgQ2hy
b21pdW0gc2lkZSBvZiB0aGUgUHJlcmVuZGVyaW5nIEFQSSB0byBsYW5kLCBhbmQgdGhlbiBsYXRl
ciB3ZSBjYW4gYXRvbWljbHkKLS8vIHN3aXRjaCBXZWJLaXQgdG8gcHJlcmVuZGVyLCBhbmQgZmlu
YWxseSByZW1vdmUgdGhlIG9sZCBwaGFudG9tLXJlcXVlc3QgcHJlcmVuZGVyCi0vLyBpbXBsZW1l
bnRhdGlvbiBmcm9tIENocm9taXVtLgotLy8gRklYTUU6IFB1dCB0aGUgYWN0dWFsIGltcGxlbWVu
dGF0aW9uIGhlcmUgYWZ0ZXIgdGhlIENocm9taXVtIHNpZGUgb2YgdGhpcyBBUEkKLS8vIGxhbmRz
LgogY2xhc3MgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0gewogcHVibGljOgotICAgIHZpcnR1YWwg
dm9pZCBhZGQoY29uc3QgV2ViUHJlcmVuZGVyJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNl
bChjb25zdCBXZWJQcmVyZW5kZXImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWJhbmRvbihjb25z
dCBXZWJQcmVyZW5kZXImKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBzZXRQbGF0Zm9ybShXZWJQcmVy
ZW5kZXJpbmdQbGF0Zm9ybSopIHsgfQotICAgIHN0YXRpYyBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9y
bSogZ2V0UGxhdGZvcm0oKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB+V2ViUHJlcmVuZGVy
aW5nUGxhdGZvcm0oKSB7IH0KKworICAgIC8vIEEgcHJlcmVuZGVyIGxpbmsgZWxlbWVudCBpcyBh
ZGRlZCB3aGVuIGl0IGlzIGluc2VydGVkIGludG8gYSBkb2N1bWVudC4KKyAgICB2aXJ0dWFsIHZv
aWQgYWRkKGNvbnN0IFdlYlByZXJlbmRlciYpID0gMDsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlz
IGFiYW5kb25lZCB3aGVuIGl0J3MgbmF2aWdhdGVkIGF3YXkgZnJvbSBvciBzdXNwZW5kZWQgaW4g
dGhlIHBhZ2UgY2FjaGUuIFRoaXMKKyAgICAvLyBpcyBhIHdlYWtlciBzaWduYWwgdGhhbiBjYW5j
ZWwoKSwgc2luY2UgdGhlIGxhdW5jaGVyIGhhc24ndCBpbmRpY2F0ZWQgdGhhdCB0aGUgcHJlcmVu
ZGVyIGlzbid0CisgICAgLy8gd2FudGVkLCBhbmQgd2UgbWF5IGVuZCB1cCB1c2luZyBpdCBhZnRl
ciwgZm9yIGluc3RhbmNlLCBhIHNob3J0IHJlZGlyZWN0IGNoYWluLgorICAgIHZpcnR1YWwgdm9p
ZCBjYW5jZWwoY29uc3QgV2ViUHJlcmVuZGVyJikgPSAwOworCisgICAgLy8gQSBwcmVyZW5kZXIg
aXMgY2FuY2VsZWQgd2hlbiBpdCBpcyByZW1vdmVkIGZyb20gYSBkb2N1bWVudC4KKyAgICB2aXJ0
dWFsIHZvaWQgYWJhbmRvbihjb25zdCBXZWJQcmVyZW5kZXImKSA9IDA7CisKKyAgICBXRUJLSVRf
RVhQT1JUIHN0YXRpYyB2b2lkIHNldFBsYXRmb3JtKFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKik7
CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0qIGdldFBs
YXRmb3JtKCk7CiAKIHByb3RlY3RlZDoKICAgICBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSgpIHsg
fQotICAgIHZpcnR1YWwgfldlYlByZXJlbmRlcmluZ1BsYXRmb3JtKCkgeyB9CisKK3ByaXZhdGU6
CisgICAgc3RhdGljIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBzX3BsYXRmb3JtOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBXZWJQcmVyZW5kZXJMb2FkZXJfaAor
I2VuZGlmIC8vIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKaW5kZXggYWRmMmYyZTIzMGJhNTVmNzc4
NzkyNTk0Mzk4ZWE4ZjUyMjkyYzc2Yi4uNTgwMmRhNzBmMzczMjFhOGY2YWU2NmUyMWZmMzljZjY5
Y2E5ODk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJV
UkxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkxS
ZXF1ZXN0LmgKQEAgLTY5LDExICs2OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIFRhcmdldElzV29y
a2VyID0gOSwKICAgICAgICAgVGFyZ2V0SXNTaGFyZWRXb3JrZXIgPSAxMCwKICAgICAgICAgVGFy
Z2V0SXNQcmVmZXRjaCA9IDExLAotICAgICAgICBUYXJnZXRJc1ByZXJlbmRlciA9IDEyLAotICAg
ICAgICBUYXJnZXRJc0Zhdmljb24gPSAxMywKLSAgICAgICAgVGFyZ2V0SXNYSFIgPSAxNCwKLSAg
ICAgICAgVGFyZ2V0SXNUZXh0VHJhY2sgPSAxNSwKLSAgICAgICAgVGFyZ2V0SXNVbnNwZWNpZmll
ZCA9IDE2LAorICAgICAgICBUYXJnZXRJc0Zhdmljb24gPSAxMiwKKyAgICAgICAgVGFyZ2V0SXNY
SFIgPSAxMywKKyAgICAgICAgVGFyZ2V0SXNUZXh0VHJhY2sgPSAxNCwKKyAgICAgICAgVGFyZ2V0
SXNVbnNwZWNpZmllZCA9IDE1LAorICAgICAgICAvLyBGSVhNRTogVGhpcyBvbGQgZW51bSB2YWx1
ZSBpcyBvbmx5IGJlaW5nIGxlZnQgaW4gd2hpbGUgcHJlcmVuZGVyaW5nIGlzIHN0YWdpbmcgaW50
byBjaHJvbWl1bS4gQWZ0ZXIgaHR0cDovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzEwMjQ0MDA3
LworICAgICAgICAvLyBsYW5kcywgdGhpcyBzaG91bGQgYmUgcmVtb3ZlZC4KKyAgICAgICAgVGFy
Z2V0SXNQcmVyZW5kZXIgPSBUYXJnZXRJc1Vuc3BlY2lmaWVkLAogICAgIH07CiAKICAgICBjbGFz
cyBFeHRyYURhdGEgewpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3NyYy9X
ZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5jcHAgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vc3Jj
L1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTE5ZGViYTE1YjA4ZjIz
N2M0MTFiNTNmNWVmOWIyOWExYjYxNjc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3NyYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5jcHAKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlIDxwdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBXZWJQcmVyZW5kZXJpbmdQ
bGF0Zm9ybTo6c19wbGF0Zm9ybSA9IDA7CisKK3ZvaWQgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06
OnNldFBsYXRmb3JtKFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBwbGF0Zm9ybSkKK3sKKyAgICBz
X3BsYXRmb3JtID0gcGxhdGZvcm07Cit9CisKK1dlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBXZWJQ
cmVyZW5kZXJpbmdQbGF0Zm9ybTo6Z2V0UGxhdGZvcm0oKQoreworICAgIHJldHVybiBzX3BsYXRm
b3JtOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNWIyODhmODg3ZDRkZGU0NjQwYTAxMjcw
ODkwMDQ2YmI4ODZhNzVlMi4uMDMwMzU1NDAzYWE1MjRiMzVhMmY3YWRiY2E0OTkxYTFlOWVjZjUx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjg1NCw2ICsyODU0LDEwIEBACiAgICAgICAgICAgICAn
bG9hZGVyL1BsYWNlaG9sZGVyRG9jdW1lbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1BvbGlj
eUNhbGxiYWNrLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwJywK
KyAgICAgICAgICAgICdsb2FkZXIvUHJlcmVuZGVyZXIuY3BwJywKKyAgICAgICAgICAgICdsb2Fk
ZXIvUHJlcmVuZGVyZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50
LmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmgnLAogICAgICAg
ICAgICAgJ2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIv
UmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcCcsCkBAIC0zMTMzLDYgKzMxMzcsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Bs
YXRmb3JtVG91Y2hFdmVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNo
UG9pbnQuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9SZWZlcnJlclBvbGljeS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9SdW5Mb29wVGlt
ZXIuaCcsCkBAIC0zMzExLDYgKzMzMTYsOSBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTGlzdEJveC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVQ
cml2YXRlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9TU0xLZXlHZW5lcmF0b3JDaHJvbWl1bS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmgnLApA
QCAtODI0NCw2ICs4MjUyLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3VyY2UuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3RyZWFtU291cmNlc1JlcXVlc3Qu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlByZXJlbmRl
ci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVGhyZWFk
U2FmZURhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlVSTC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVVJM
RXJyb3IuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGUxZWI3NGI1MjVlYWUwYzFh
ODY3MTc4NGQ4YzE5NTY0ODI5YTg1ZTAuLjFkYmY2ZmI1YzdhNjI2ZWE1ZDZjZDdiYWM2YTY0Y2Mx
OTRlZDdjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjA2LDYgKzIwNiwxMCBAQAog
I2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCisjaW5jbHVkZSAiUHJlcmVuZGVyZXIuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwpA
QCAtNTA2LDcgKzUxMCw5IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0
IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICBtX21hcmtlcnMgPSBh
ZG9wdFB0cihuZXcgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKTsKIAogICAgIG1fY2FjaGVkUmVz
b3VyY2VMb2FkZXIgPSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIodGhpcykpOwot
CisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIG1fcHJlcmVuZGVyZXIgPSBQcmVyZW5k
ZXJlcjo6Y3JlYXRlKHRoaXMpOworI2VuZGlmCiAgICAgbV92aXN1YWxseU9yZGVyZWQgPSBmYWxz
ZTsKICAgICBtX2JQYXJzaW5nID0gZmFsc2U7CiAgICAgbV93ZWxsRm9ybWVkID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDM1ZDRmZWJiZThjZDZiZGRkMWJiMWRhNWU1YTNkMTY4NGUz
MDcwYmUuLjhlNzMwZDlmZWU3ZWYxOWU5ZGM4NTk3YmMxYTA5MzE3ZjU0MDAyZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0xNjYsNiArMTY2LDEwIEBAIGNsYXNzIFNjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlcjsKIGNsYXNzIE1pY3JvRGF0YUl0ZW1MaXN0OwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTElOS19QUkVSRU5ERVIpCitjbGFzcyBQcmVyZW5kZXJlcjsKKyNlbmRpZgorCiB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBGb3JtRWxlbWVudEtleSB7CkBAIC0xMTQ2LDYg
KzExNTAsMTAgQEAgcHVibGljOgogCiAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdDsK
IAorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBQcmVyZW5kZXJlciogcHJlcmVuZGVy
ZXIoKSB7IHJldHVybiBtX3ByZXJlbmRlcmVyLmdldCgpOyB9CisjZW5kaWYKKwogcHJvdGVjdGVk
OgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBp
c0hUTUwpOwogCkBAIC0xNDg3LDYgKzE0OTUsMTEgQEAgcHJpdmF0ZToKIAogICAgIFRpbWVyPERv
Y3VtZW50PiBtX3BlbmRpbmdUYXNrc1RpbWVyOwogICAgIFZlY3RvcjxPd25QdHI8VGFzaz4gPiBt
X3BlbmRpbmdUYXNrczsKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBPd25QdHI8
UHJlcmVuZGVyZXI+IG1fcHJlcmVuZGVyZXI7CisjZW5kaWYKKwogICAgIGJvb2wgbV9zY2hlZHVs
ZWRUYXNrc0FyZVN1c3BlbmRlZDsKICAgICAKICAgICBib29sIG1fdmlzdWFsVXBkYXRlc0FsbG93
ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggMDY5YjkzZTJm
ZWMzNjliZjQ0MzE2YTYzNzA5MTU0MzRmYWRkYWRjNC4uOTgxOWZjOGRiNDU0OTg0NjAwYzIyMjk1
NDA2MzU5ZWQxZWIzZTI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cApAQCAtMjY1LDYgKzI2NSw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpyZW1vdmVkRnJvbShO
b2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICBpZiAoIWluc2VydGlvblBvaW50LT5pbkRvY3VtZW50
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fbGlua0xvYWRlci5yZWxlYXNlZCgpOworCiAg
ICAgaWYgKG1faXNJblNoYWRvd1RyZWUpIHsKICAgICAgICAgQVNTRVJUKCFtX3NoZWV0KTsKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKaW5k
ZXggNTI2MWRmMmQwOGZmMjZhMDNhNWQ4MWUyNDMxZmE2M2Y0YzY1NzIwYy4uODcwNzFiOTliMjhk
NjVkMjE4ZjBhYmQyZGI4YTU3Y2QwMDFmNmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtS
ZWxBdHRyaWJ1dGUuY3BwCkBAIC00MSw5ICs0MSwxMSBAQCBMaW5rUmVsQXR0cmlidXRlOjpMaW5r
UmVsQXR0cmlidXRlKCkKICAgICAsIG1faXNETlNQcmVmZXRjaChmYWxzZSkKICNpZiBFTkFCTEUo
TElOS19QUkVGRVRDSCkKICAgICAsIG1faXNMaW5rUHJlZmV0Y2goZmFsc2UpCi0gICAgLCBtX2lz
TGlua1ByZXJlbmRlcihmYWxzZSkKICAgICAsIG1faXNMaW5rU3VicmVzb3VyY2UoZmFsc2UpCiAj
ZW5kaWYKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgLCBtX2lzTGlua1ByZXJlbmRl
cihmYWxzZSkKKyNlbmRpZgogewogfQogCkBAIC01NCw5ICs1NiwxMSBAQCBMaW5rUmVsQXR0cmli
dXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQogICAgICwgbV9pc0ROU1By
ZWZldGNoKGZhbHNlKQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgICwgbV9pc0xpbmtQ
cmVmZXRjaChmYWxzZSkKLSAgICAsIG1faXNMaW5rUHJlcmVuZGVyKGZhbHNlKQogICAgICwgbV9p
c0xpbmtTdWJyZXNvdXJjZShmYWxzZSkKICNlbmRpZgorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRF
UikKKyAgICAsIG1faXNMaW5rUHJlcmVuZGVyKGZhbHNlKQorI2VuZGlmCiB7CiAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKHJlbCwgInN0eWxlc2hlZXQiKSkKICAgICAgICAgbV9pc1N0eWxlU2hl
ZXQgPSB0cnVlOwpAQCAtOTYsMTEgKzEwMCwxMyBAQCBMaW5rUmVsQXR0cmlidXRlOjpMaW5rUmVs
QXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQog
ICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKml0LCAicHJlZmV0Y2giKSkK
ICAgICAgICAgICAgICAgbV9pc0xpbmtQcmVmZXRjaCA9IHRydWU7Ci0gICAgICAgICAgICBlbHNl
IGlmIChlcXVhbElnbm9yaW5nQ2FzZSgqaXQsICJwcmVyZW5kZXIiKSkKLSAgICAgICAgICAgICAg
bV9pc0xpbmtQcmVyZW5kZXIgPSB0cnVlOwogICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UoKml0LCAic3VicmVzb3VyY2UiKSkKICAgICAgICAgICAgICAgbV9pc0xpbmtTdWJy
ZXNvdXJjZSA9IHRydWU7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAg
ICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSgqaXQsICJwcmVyZW5kZXIiKSkKKyAg
ICAgICAgICAgICAgbV9pc0xpbmtQcmVyZW5kZXIgPSB0cnVlOworI2VuZGlmCiAgICAgICAgIH0K
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oCmluZGV4IDMxNzgx
OTRiNDlhMWJkMDViOWIwYzE0NDQxZWJmNWY4NjI1NzhhY2MuLjk4ZGQ0ODE5MWM5ZjgzNzNlZjI0
YjFkMjI5YjEyMjNlMmRhMjc2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlu
a1JlbEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0
ZS5oCkBAIC00NCw5ICs0NCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX2lzRE5TUHJlZmV0Y2g7
CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgYm9vbCBtX2lzTGlua1ByZWZldGNoOwot
ICAgIGJvb2wgbV9pc0xpbmtQcmVyZW5kZXI7CiAgICAgYm9vbCBtX2lzTGlua1N1YnJlc291cmNl
OwogI2VuZGlmCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIGJvb2wgbV9pc0xpbmtQ
cmVyZW5kZXI7CisjZW5kaWYKIAogICAgIExpbmtSZWxBdHRyaWJ1dGUoKTsKICAgICBleHBsaWNp
dCBMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuY3BwCmluZGV4IDdkNjk5Nzg4NmI5NjcwYzc4ODgxZWM1NDhjY2Y3MGQ1NmE3N2ExMDEu
LmQ5NjYwNmY5MjVmZDQ1YTc0MTJkYzViNmMwMTg3ZGJlODQ2MzhiZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBACiAjaW5jbHVkZSAiTGlua1Jl
bEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKKyNpZiBFTkFCTEUoTElOS19Q
UkVSRU5ERVIpCisjaW5jbHVkZSAiUHJlcmVuZGVySGFuZGxlLmgiCisjaW5jbHVkZSAiUHJlcmVu
ZGVyZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIExpbmtMb2FkZXI6Okxp
bmtMb2FkZXIoTGlua0xvYWRlckNsaWVudCogY2xpZW50KQpAQCAtMTAzLDcgKzEwOCw3IEBAIGJv
b2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmli
dXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgfQogCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gp
Ci0gICAgaWYgKChyZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVmZXRjaCB8fCByZWxBdHRyaWJ1dGUu
bV9pc0xpbmtQcmVyZW5kZXIgfHwgcmVsQXR0cmlidXRlLm1faXNMaW5rU3VicmVzb3VyY2UpICYm
IGhyZWYuaXNWYWxpZCgpICYmIGRvY3VtZW50LT5mcmFtZSgpKSB7CisgICAgaWYgKChyZWxBdHRy
aWJ1dGUubV9pc0xpbmtQcmVmZXRjaCB8fCByZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJj
ZSkgJiYgaHJlZi5pc1ZhbGlkKCkgJiYgZG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgaWYg
KCFtX2NsaWVudC0+c2hvdWxkTG9hZExpbmsoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlv
cml0eVVucmVzb2x2ZWQ7CkBAIC0xMTMsOSArMTE4LDcgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2Fk
TGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFN0cmluZyYg
dHkKICAgICAgICAgaWYgKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1N1YnJlc291cmNlKSB7CiAgICAg
ICAgICAgICBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5TG93OwogICAgICAgICAgICAg
dHlwZSA9IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U7Ci0gICAgICAgIH0gZWxzZSBp
ZiAocmVsQXR0cmlidXRlLm1faXNMaW5rUHJlcmVuZGVyKQotICAgICAgICAgICAgdHlwZSA9IENh
Y2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOwotCisgICAgICAgIH0KICAgICAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IGxpbmtSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChocmVmKSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpIHsKQEAgLTEyNyw4ICsxMzAs
MjYgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiBy
ZWxBdHRyaWJ1dGUsIGNvbnN0IFN0cmluZyYgdHkKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jl
c291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoTElO
S19QUkVSRU5ERVIpCisgICAgaWYgKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZXJlbmRlcikgewor
ICAgICAgICBBU1NFUlQoIW1fcHJlcmVuZGVySGFuZGxlKTsKKyAgICAgICAgbV9wcmVyZW5kZXJI
YW5kbGUgPSBkb2N1bWVudC0+cHJlcmVuZGVyZXIoKS0+cmVuZGVyKGhyZWYpOworICAgIH0KKyNl
bmRpZgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIExpbmtMb2FkZXI6OnJlbGVhc2VkKCkK
K3sKKyAgICAvLyBPbmx5IHByZXJlbmRlcnMgbmVlZCB0cmVhdG1lbnQgaGVyZTsgb3RoZXIgbGlu
a3MgZWl0aGVyIHVzZSB0aGUgQ2FjaGVkUmVzb3VyY2UgaW50ZXJmYWNlLCBvciBhcmUgbm90aW9u
YWxseQorICAgIC8vIGF0b21pYyAoZG5zIHByZWZldGNoKS4KKyNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCisgICAgaWYgKG1fcHJlcmVuZGVySGFuZGxlKSB7CisgICAgICAgIG1fcHJlcmVuZGVy
SGFuZGxlLT5jYW5jZWwoKTsKKyAgICAgICAgbV9wcmVyZW5kZXJIYW5kbGUuY2xlYXIoKTsKKyAg
ICB9CisjZW5kaWYKK30KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKaW5kZXggMWZi
YzE4ZDdjNzZlYjZhNmU3YTRlZmQ3MTkxMTFiNjM5NjBlNzlkYi4uNThiMjlhNzc0Zjc4ZDE0ODBm
MTg0NjM1MmFjZGQ3ZDg1M2MyMGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCkBA
IC0zNyw5ICszNywxNCBAQAogI2luY2x1ZGUgIkxpbmtMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgogCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0cnVjdCBMaW5rUmVsQXR0cmlidXRlOworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRF
UikKK2NsYXNzIFByZXJlbmRlckhhbmRsZTsKKyNlbmRpZgogCiAvLyBUaGUgTGlua0xvYWRlciBj
YW4gbG9hZCBsaW5rIHJlbCB0eXBlcyBpY29uLCBkbnMtcHJlZmV0Y2gsIHN1YnJlc291cmNlLCBw
cmVmZXRjaCBhbmQgcHJlcmVuZGVyLgogY2xhc3MgTGlua0xvYWRlciA6IHB1YmxpYyBDYWNoZWRS
ZXNvdXJjZUNsaWVudCB7CkBAIC01MCw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICAvLyBmcm9tIENh
Y2hlZFJlc291cmNlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hl
ZFJlc291cmNlKik7CiAgICAgCisgICAgdm9pZCByZWxlYXNlZCgpOwogICAgIGJvb2wgbG9hZExp
bmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBzaXplcywgY29uc3QgS1VSTCYsIERvY3VtZW50Kik7CiAKIHByaXZhdGU6CkBAIC02MSw2
ICs2NywxMCBAQCBwcml2YXRlOgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBtX2NhY2hlZExpbmtSZXNvdXJjZTsKICAgICBUaW1lcjxMaW5rTG9hZGVyPiBtX2xpbmtM
b2FkVGltZXI7CiAgICAgVGltZXI8TGlua0xvYWRlcj4gbV9saW5rTG9hZGluZ0Vycm9yVGltZXI7
CisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgUmVmUHRyPFByZXJlbmRlckhhbmRs
ZT4gbV9wcmVyZW5kZXJIYW5kbGU7CisjZW5kaWYKIH07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1ByZXJlbmRlcmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWZkOGRkOGI3ZDQ5MmJjNzA2ZTgyNjUz
MzgzNTc3N2Y2ZjE4YmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1ByZXJlbmRlcmVyLmNwcApAQCAtMCwwICsxLDEzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUHJlcmVuZGVyZXIuaCIKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikK
KworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIlByZXJlbmRlckhhbmRsZS5oIgorI2luY2x1ZGUgIlBy
ZXJlbmRlcmVyQ2xpZW50LmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eVBvbGljeS5oIgorCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBzdGF0
aWMKK1Bhc3NPd25QdHI8UHJlcmVuZGVyZXI+IFByZXJlbmRlcmVyOjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIFByZXJlbmRlcmVyKiBwcmVyZW5kZXJlciA9IG5ldyBQcmVyZW5k
ZXJlcihkb2N1bWVudCk7CisgICAgcHJlcmVuZGVyZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAg
IHJldHVybiBhZG9wdFB0cihwcmVyZW5kZXJlcik7Cit9CisKK1ByZXJlbmRlcmVyOjpQcmVyZW5k
ZXJlcihEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQs
IHRoaXMpCisgICAgLCBtX2NsaWVudCgwKQoreworfQorCitQcmVyZW5kZXJlcjo6flByZXJlbmRl
cmVyKCkKK3sKK30KKworUGFzc1JlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IFByZXJlbmRlcmVyOjpy
ZW5kZXIoY29uc3QgS1VSTCYgdXJsKQoreworICAgIC8vIFByZXJlbmRlcnMgYXJlIHVubGlrZSBy
ZXF1ZXN0cyBpbiBtb3N0IHdheXMgKGZvciBpbnN0YW5jZSwgdGhleSBwYXNzIGRvd24gZnJhZ21l
bnRzLCBhbmQgdGhleSBkb24ndCByZXR1cm4gZGF0YSksCisgICAgLy8gYnV0IHRoZXkgZG8gaGF2
ZSByZWZlcnJlcnMuCisgICAgY29uc3QgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgPSBk
b2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpOworICAgIGNvbnN0IFN0cmluZyByZWZlcnJlciA9
IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKHJlZmVycmVyUG9saWN5LCB1
cmwsIGRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOwor
CisgICAgUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gcHJlcmVuZGVySGFuZGxlID0gUHJlcmVuZGVy
SGFuZGxlOjpjcmVhdGUodXJsLCByZWZlcnJlciwgcmVmZXJyZXJQb2xpY3kpOworCisgICAgY2xp
ZW50KCktPndpbGxBZGRQcmVyZW5kZXIocHJlcmVuZGVySGFuZGxlLmdldCgpKTsKKyAgICBwcmVy
ZW5kZXJIYW5kbGUtPmFkZCgpOworCisgICAgbV9hY3RpdmVIYW5kbGVzLmFwcGVuZChwcmVyZW5k
ZXJIYW5kbGUpOworICAgIHJldHVybiBwcmVyZW5kZXJIYW5kbGU7Cit9CisKK3ZvaWQgUHJlcmVu
ZGVyZXI6OnN0b3AoKQoreworICAgIHdoaWxlICghbV9hY3RpdmVIYW5kbGVzLmlzRW1wdHkoKSkg
eworICAgICAgICBSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBoYW5kbGUgPSBtX2FjdGl2ZUhhbmRs
ZXNbMF0ucmVsZWFzZSgpOworICAgICAgICBtX2FjdGl2ZUhhbmRsZXMucmVtb3ZlKDApOworICAg
ICAgICBoYW5kbGUtPmFiYW5kb24oKTsKKyAgICB9CisgICAgd2hpbGUgKCFtX3N1c3BlbmRlZEhh
bmRsZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IGhhbmRs
ZSA9IG1fc3VzcGVuZGVkSGFuZGxlc1swXS5yZWxlYXNlKCk7CisgICAgICAgIG1fc3VzcGVuZGVk
SGFuZGxlcy5yZW1vdmUoMCk7CisgICAgICAgIGhhbmRsZS0+YWJhbmRvbigpOworICAgIH0KK30K
Kwordm9pZCBQcmVyZW5kZXJlcjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikK
K3sKKyAgICBpZiAocmVhc29uID09IERvY3VtZW50V2lsbEJlY29tZUluYWN0aXZlIHx8IHJlYXNv
biA9PSBQYWdlV2lsbEJlU3VzcGVuZGVkKSB7CisgICAgICAgIHdoaWxlICghbV9hY3RpdmVIYW5k
bGVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gaGFu
ZGxlID0gbV9hY3RpdmVIYW5kbGVzWzBdLnJlbGVhc2UoKTsKKyAgICAgICAgICAgIG1fYWN0aXZl
SGFuZGxlcy5yZW1vdmUoMCk7CisgICAgICAgICAgICBoYW5kbGUtPnN1c3BlbmQoKTsKKyAgICAg
ICAgICAgIG1fc3VzcGVuZGVkSGFuZGxlcy5hcHBlbmQoaGFuZGxlKTsKKyAgICAgICAgfQorICAg
IH0KK30KKwordm9pZCBQcmVyZW5kZXJlcjo6cmVzdW1lKCkKK3sKKyAgICB3aGlsZSAoIW1fc3Vz
cGVuZGVkSGFuZGxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPFByZXJlbmRlckhhbmRs
ZT4gaGFuZGxlID0gbV9zdXNwZW5kZWRIYW5kbGVzWzBdLnJlbGVhc2UoKTsKKyAgICAgICAgbV9z
dXNwZW5kZWRIYW5kbGVzLnJlbW92ZSgwKTsKKyAgICAgICAgaGFuZGxlLT5yZXN1bWUoKTsKKyAg
ICAgICAgbV9hY3RpdmVIYW5kbGVzLmFwcGVuZChoYW5kbGUpOworICAgIH0KK30KKworRG9jdW1l
bnQqIFByZXJlbmRlcmVyOjpkb2N1bWVudCgpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCitQcmVyZW5kZXJlckNsaWVudCog
UHJlcmVuZGVyZXI6OmNsaWVudCgpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgbV9j
bGllbnQgPSBQcmVyZW5kZXJlckNsaWVudDo6ZnJvbShkb2N1bWVudCgpLT5wYWdlKCkpOworICAg
IHJldHVybiBtX2NsaWVudDsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVO
REVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTQ4MWU2OTQy
OGZiZjc2YTE3MWRmZjkxNjVkNmM0MmIwNmE5Yjk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVm
IFByZXJlbmRlcmVyX2gKKyNkZWZpbmUgUHJlcmVuZGVyZXJfaAorCisjaWYgRU5BQkxFKExJTktf
UFJFUkVOREVSKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiS1VS
TC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9TaW5nbHlMaW5rZWRMaXN0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUHJlcmVu
ZGVySGFuZGxlOworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnQ7CitjbGFzcyBQYWdlOworCitjbGFz
cyBQcmVyZW5kZXJlciA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFByZXJlbmRlcmVyKTsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QcmVyZW5kZXJl
cigpOworCisgICAgUGFzc1JlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IHJlbmRlcihjb25zdCBLVVJM
Jik7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxQcmVyZW5kZXJlcj4gY3JlYXRlKERvY3VtZW50
Kik7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFByZXJlbmRlckhhbmRs
ZT4gPiBIYW5kbGVWZWN0b3I7CisgICAgdHlwZWRlZiBWZWN0b3I8S1VSTD4gS1VSTFZlY3RvcjsK
KworICAgIFByZXJlbmRlcmVyKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU3Vz
cGVuZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBPVkVSUklERTsKKwor
ICAgIERvY3VtZW50KiBkb2N1bWVudCgpOworICAgIFByZXJlbmRlcmVyQ2xpZW50KiBjbGllbnQo
KTsKKworICAgIFByZXJlbmRlcmVyQ2xpZW50KiBtX2NsaWVudDsKKyAgICBIYW5kbGVWZWN0b3Ig
bV9hY3RpdmVIYW5kbGVzOworICAgIEhhbmRsZVZlY3RvciBtX3N1c3BlbmRlZEhhbmRsZXM7Cit9
OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNlbmRpZiAvLyBQ
cmVyZW5kZXJlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVy
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OGYyNDcwZTI2MTY0YTRkZDE1OTM1OTVjNjNmMTI3MWFmZmU2YzFmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50
LmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
cmVyZW5kZXJlckNsaWVudC5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlN1cHBs
ZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKKyNpZiBF
TkFCTEUoTElOS19QUkVSRU5ERVIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gc3RhdGlj
Citjb25zdCBBdG9taWNTdHJpbmcmIFByZXJlbmRlcmVyQ2xpZW50OjpzdXBwbGVtZW50TmFtZSgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiUHJlcmVu
ZGVyZXJDbGllbnQiKSk7CisgICAgcmV0dXJuIG5hbWU7Cit9CisKKy8vIHN0YXRpYworUHJlcmVu
ZGVyZXJDbGllbnQqIFByZXJlbmRlcmVyQ2xpZW50Ojpmcm9tKFBhZ2UqIHBhZ2UpCit7CisgICAg
UHJlcmVuZGVyZXJDbGllbnQqIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxQcmVyZW5kZXJlckNs
aWVudCo+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOwor
ICAgIEFTU0VSVChzdXBwbGVtZW50KTsKKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKwordm9p
ZCBwcm92aWRlUHJlcmVuZGVyZXJDbGllbnRUbyhQYWdlKiBwYWdlLCBQcmVyZW5kZXJlckNsaWVu
dCogY2xpZW50KQoreworICAgIFByZXJlbmRlcmVyQ2xpZW50Ojpwcm92aWRlVG8ocGFnZSwgUHJl
cmVuZGVyZXJDbGllbnQ6OnN1cHBsZW1lbnROYW1lKCksIGFkb3B0UHRyKGNsaWVudCkpOworfQor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRl
cmVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41YTRjZTk0NmY2Mzg3MTgwNjc4MjZjNWQ3ZTA1YWFmN2Y0Y2YxNWY1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmgK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFByZXJlbmRlcmVyQ2xpZW50X2gKKyNkZWZpbmUg
UHJlcmVuZGVyZXJDbGllbnRfaAorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjaW5j
bHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUGFnZTsKK2NsYXNz
IFByZXJlbmRlckhhbmRsZTsKKworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnQgOiBwdWJsaWMgU3Vw
cGxlbWVudDxQYWdlPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UHJlcmVuZGVyZXJDbGllbnQo
KSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCB3aWxsQWRkUHJlcmVuZGVyKFByZXJlbmRlckhhbmRs
ZSopID0gMDsKKworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1l
KCk7CisgICAgc3RhdGljIFByZXJlbmRlcmVyQ2xpZW50KiBmcm9tKFBhZ2UqKTsKKworcHJvdGVj
dGVkOgorICAgIFByZXJlbmRlcmVyQ2xpZW50KCkgeyB9Cit9OworCit2b2lkIHByb3ZpZGVQcmVy
ZW5kZXJlckNsaWVudFRvKFBhZ2UqLCBQcmVyZW5kZXJlckNsaWVudCopOworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEVEKExJTktfUFJFUkVOREVSKQorCisjZW5k
aWYgLy8gUHJlcmVuZGVyZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMDM2OGE3MjQ1MjVmYWZlNjQ5MDU4N2JlYjJiNGY2
ZTZlOWZjYzZlNi4uYzk1YWJlZGI0YzkwOGM1OTdkZTQzNWUyZDUzODhkYjQyMTQ0M2VhYiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC03
Myw4ICs3Myw2IEBAIHN0YXRpYyBSZXNvdXJjZUxvYWRQcmlvcml0eSBkZWZhdWx0UHJpb3JpdHlG
b3JSZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUKICNpZiBFTkFCTEUoTElOS19QUkVG
RVRDSCkKICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgogICAgICAg
ICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKLSAgICAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKLSAgICAgICAgICAgIHJldHVybiBSZXNvdXJj
ZUxvYWRQcmlvcml0eVZlcnlMb3c7CiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtT
dWJyZXNvdXJjZToKICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlM
b3c7CiAjZW5kaWYKQEAgLTExNCw4ICsxMTIsNiBAQCBzdGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRSZXNvdXJjZQog
I2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQ
cmVmZXRjaDoKICAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVmZXRj
aDsKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgotICAgICAgICByZXR1
cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZXJlbmRlcjsKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzU3VicmVzb3VyY2U7CiAjZW5kaWYKQEAgLTIyMCw3ICsyMTYsNyBAQCB2b2lkIENh
Y2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxv
YWRlciwgY29uc3QgUmVzbwogICAgIH0KIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotICAg
IGlmICh0eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0eXBlKCkgPT0g
Q2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXIgfHwgdHlwZSgpID09IENhY2hlZFJlc291cmNl
OjpMaW5rU3VicmVzb3VyY2UpCisgICAgaWYgKHR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1ByZWZldGNoIHx8IHR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKQog
ICAgICAgICBtX3Jlc291cmNlUmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoIlB1cnBvc2UiLCAi
cHJlZmV0Y2giKTsKICNlbmRpZgogICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldFByaW9yaXR5KGxv
YWRQcmlvcml0eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmgKaW5kZXggYzA3YjIzMWQ0ZDU5ODU3NTFjY2NhMDYyMWQzNzU3YTk1NjZiNDY5OC4uOTEx
Zjg1MGU4ODVjY2ZmN2YxZDI0Y2I2OGM1NmU0MGU1ZmFmMmY3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTc0LDcgKzc0LDYgQEAgcHVibGlj
OgogI2VuZGlmCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgICAgICwgTGlua1ByZWZl
dGNoCi0gICAgICAgICwgTGlua1ByZXJlbmRlcgogICAgICAgICAsIExpbmtTdWJyZXNvdXJjZQog
I2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMTUwLDcgKzE0OSw2IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGZhbHNlCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAg
ICAgICAgICB8fCB0eXBlKCkgPT0gTGlua1ByZWZldGNoCi0gICAgICAgICAgICB8fCB0eXBlKCkg
PT0gTGlua1ByZXJlbmRlcgogICAgICAgICAgICAgfHwgdHlwZSgpID09IExpbmtTdWJyZXNvdXJj
ZQogI2VuZGlmCiAgICAgICAgICAgICB8fCB0eXBlKCkgPT0gUmF3UmVzb3VyY2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApp
bmRleCA4NDZmM2E3MzlmOTVkMzIwMDk4YjI5YzMwZGEzODRjNzk4NmQxYTIyLi4xYTVhNmZiZDI1
MWZjNGQ2NDUzMzNiZjA4MTgxMzk0Y2Y1ZGZkMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTg4LDggKzg4LDYg
QEAgc3RhdGljIENhY2hlZFJlc291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6CiAgICAgICAgIHJldHVybiBuZXcg
Q2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCk7Ci0g
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKLSAgICAgICAgcmV0dXJuIG5l
dyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcik7
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICByZXR1
cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVz
b3VyY2UpOwogI2VuZGlmCkBAIC0yNDAsNyArMjM4LDcgQEAgQ2FjaGVkU1ZHRG9jdW1lbnQqIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U1ZHRG9jdW1lbnQoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXEKIENhY2hlZFJlc291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogewogICAgIEFTU0VSVChmcmFtZSgpKTsK
LSAgICBBU1NFUlQodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoIHx8IHR5cGUg
PT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXIgfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJj
ZTo6TGlua1N1YnJlc291cmNlKTsKKyAgICBBU1NFUlQodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6
TGlua1ByZWZldGNoIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7
CiAgICAgcmV0dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVm
YXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlvcml0eSk7CiB9CiAjZW5kaWYKQEAgLTI4
Niw3ICsyODQsNiBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29u
dGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdAogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlJhd1Jlc291cmNlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpM
aW5rUHJlcmVuZGVyOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToK
ICAgICAgICAgLy8gUHJlZmV0Y2ggY2Fubm90IGFmZmVjdCB0aGUgY3VycmVudCBkb2N1bWVudC4K
ICNlbmRpZgpAQCAtMzE1LDcgKzMxMiw2IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNh
blJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U6CiAjaWYgRU5BQkxFKExJTktfUFJFRkVU
Q0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgotICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1N1YnJlc291cmNlOgogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMzg1LDcg
KzM4MSw2IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6UmF3UmVzb3VyY2U6CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQ
cmVyZW5kZXI6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogI2Vu
ZGlmCiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJlcmVuZGVySGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVyZW5kZXJIYW5k
bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNGZkYWZjZjQwZjRlYWZlODQwYjA4YmY5NjBlNzE0MjNkZjcyYTdh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJlcmVuZGVySGFu
ZGxlLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFByZXJlbmRlckhhbmRsZV9oCisjZGVm
aW5lIFByZXJlbmRlckhhbmRsZV9oCisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNp
bmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgS1VSTDsKK2NsYXNzIFByZXJlbmRlcjsKKworY2xhc3MgUHJlcmVuZGVySGFuZGxlIDogcHVi
bGljIFJlZkNvdW50ZWQ8UHJlcmVuZGVySGFuZGxlPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUHJlcmVuZGVySGFuZGxlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+IGNyZWF0ZShjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
UmVmZXJyZXJQb2xpY3kpOworICAgIH5QcmVyZW5kZXJIYW5kbGUoKTsKKworICAgIFByZXJlbmRl
ciogcHJlcmVuZGVyKCk7CisKKyAgICAvLyBGSVhNRTogb25lIGRheSB0aGVyZSB3aWxsIGJlIGV2
ZW50cyBoZXJlLCBhbmQgd2Ugd2lsbCBiZSBhIFByZXJlbmRlckNsaWVudC4KKworICAgIC8vIEEg
cHJlcmVuZGVyIGxpbmsgZWxlbWVudCBpcyBhZGRlZCB3aGVuIGl0IGlzIGluc2VydGVkIGludG8g
YSBkb2N1bWVudC4KKyAgICB2b2lkIGFkZCgpOworCisgICAgLy8gQSBwcmVyZW5kZXIgaXMgYWJh
bmRvbmVkIHdoZW4gaXQncyBuYXZpZ2F0ZWQgYXdheSBmcm9tLiBUaGlzIGlzIGlzIGEgd2Vha2Vy
IHNpZ25hbAorICAgIC8vIHRoYW4gY2FuY2VsKCksIHNpbmNlIHRoZSBsYXVuY2hlciBoYXNuJ3Qg
aW5kaWNhdGVkIHRoYXQgdGhlIHByZXJlbmRlciBpc24ndCB3YW50ZWQsCisgICAgLy8gYW5kIHdl
IG1heSBlbmQgdXAgdXNpbmcgaXQgYWZ0ZXIsIGZvciBpbnN0YW5jZSwgYSBzaG9ydCByZWRpcmVj
dCBjaGFpbi4KKyAgICB2b2lkIGFiYW5kb24oKTsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlzIGNh
bmNlbGVkIHdoZW4gaXQgaXMgcmVtb3ZlZCBmcm9tIGEgZG9jdW1lbnQuCisgICAgdm9pZCBjYW5j
ZWwoKTsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlzIHN1c3BlbmRlZCBhbG9uZyB3aXRoIHRoZSBE
T00gY29udGFpbmluZyBpdHMgbGlua2xvYWRlciAmIHByZXJlbmRlcmVyLgorICAgIHZvaWQgc3Vz
cGVuZCgpOworICAgIHZvaWQgcmVzdW1lKCk7CisKKyAgICBjb25zdCBLVVJMJiB1cmwoKSBjb25z
dDsKKyAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyKCkgY29uc3Q7CisgICAgUmVmZXJyZXJQb2xp
Y3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBQcmVyZW5kZXJIYW5k
bGUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5KTsK
KyAgICBSZWZQdHI8UHJlcmVuZGVyPiBtX3ByZXJlbmRlcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2VuZGlmIC8v
IFByZXJlbmRlckhhbmRsZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9QcmVyZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UHJlcmVuZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWI5Y2RhOTY1ZDhhMWQ5NjEzMzI3M2ZjNDgzMDJl
ZDgwNTVjOWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUHJlcmVuZGVyLmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0u
aD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUHJlcmVuZGVyLmg+CisjaW5jbHVkZSA8cHVibGljL1dl
YlByZXJlbmRlcmluZ1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJlZmVycmVyUG9s
aWN5Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgorI2luY2x1ZGUgPHB1YmxpYy9X
ZWJVUkwuaD4KKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQcmVyZW5kZXI6OlByZXJlbmRlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5IHBvbGljeSkKKyAgICA6IG1fdXJsKHVybCkKKyAg
ICAsIG1fcmVmZXJyZXIocmVmZXJyZXIpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KHBvbGljeSkK
KyAgICAsIG1fcGxhdGZvcm0oMCkKKyNpZm5kZWYgTkRFQlVHCisgICAgLCBtX3N0YXRlKEluYWN0
aXZlKQorI2VuZGlmCit7Cit9CisKK1ByZXJlbmRlcjo6flByZXJlbmRlcigpCit7Cit9CisKK3Zv
aWQgUHJlcmVuZGVyOjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkKK3sKKyNpZmRlZiBOREVCVUcKKyAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOworI2Vsc2UKKyAgICBtX3N0YXRlID0gc3RhdGU7CisjZW5k
aWYKK30KKwordm9pZCBQcmVyZW5kZXI6OmFkZCgpCit7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0g
SW5hY3RpdmUpOworICAgIGlmICghbV9wbGF0Zm9ybSkKKyAgICAgICAgbV9wbGF0Zm9ybSA9IFdl
YktpdDo6V2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06OmdldFBsYXRmb3JtKCk7CisgICAgaWYgKCFt
X3BsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgV2ViS2l0OjpXZWJQcmVyZW5kZXIgd2Vi
UHJlcmVuZGVyKHRoaXMpOworICAgIG1fcGxhdGZvcm0tPmFkZCh3ZWJQcmVyZW5kZXIpOworICAg
IHNldFN0YXRlKEFjdGl2ZSk7Cit9CisKK3ZvaWQgUHJlcmVuZGVyOjpjYW5jZWwoKQoreworICAg
IGlmICghbV9wbGF0Zm9ybSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChtX3N0YXRlID09
IEFjdGl2ZSk7CisgICAgV2ViS2l0OjpXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOwor
ICAgIG1fcGxhdGZvcm0tPmNhbmNlbCh3ZWJQcmVyZW5kZXIpOworICAgIHNldFN0YXRlKEluYWN0
aXZlKTsKK30KKwordm9pZCBQcmVyZW5kZXI6OmFiYW5kb24oKQoreworICAgIGlmICghbV9wbGF0
Zm9ybSkKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBBc3NlcnQgb24gdGhlIHN0YXRl
IGFzIEluYWN0aXZlIGhlcmUuIEl0IGlzIGN1cnJlbnRseSBjb21tb24gdG8gY2FsbCBhYmFuZG9u
KCkgb24gYW4gSW5hY3RpdmUKKyAgICAvLyBwcmVyZW5kZXIsIGFzIHRoZSBQcmVyZW5kZXJlciBk
b2Vzbid0IGtlZXAgdHJhY2sgb2Ygd2hpY2ggcHJlcmVuZGVycyBhcmUgYWN0aXZlLCBhbmQgc28g
YW55IHBhZ2UgdGhhdAorICAgIC8vIGV2ZXIgaGFkIGEgbm93LWNhbmNlbGVkIFByZXJlbmRlciB3
aWxsIGdldCB0aGlzIGJvZ3VzIHN0b3AoKSBjYWxsLgorICAgIFdlYktpdDo6V2ViUHJlcmVuZGVy
IHdlYlByZXJlbmRlcih0aGlzKTsKKyAgICBtX3BsYXRmb3JtLT5hYmFuZG9uKHdlYlByZXJlbmRl
cik7CisgICAgc2V0U3RhdGUoSW5hY3RpdmUpOworfQorCit2b2lkIFByZXJlbmRlcjo6c3VzcGVu
ZCgpCit7CisgICAgYWJhbmRvbigpOworfQorCit2b2lkIFByZXJlbmRlcjo6cmVzdW1lKCkKK3sK
KyAgICBhZGQoKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVOREVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NzQ4OGU3YzY2MDEyZDk5YzQwOWQwMTk2OTdjYzRmYWRkM2ViZWQwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVyLmgKQEAgLTAs
MCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJfaAorI2RlZmluZSBQcmVyZW5kZXJfaAor
CisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVk
ZSA8cHVibGljL1dlYlNpemUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCituYW1l
c3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFByZXJlbmRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFBy
ZXJlbmRlcj4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByZXJlbmRlcik7CitwdWJsaWM6
CisgICAgY2xhc3MgRXh0cmFEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RXh0cmFEYXRhPiB7Cisg
ICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9OworCisg
ICAgUHJlcmVuZGVyKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJl
clBvbGljeSk7CisgICAgflByZXJlbmRlcigpOworCisgICAgdm9pZCBhZGQoKTsKKyAgICB2b2lk
IGNhbmNlbCgpOworICAgIHZvaWQgYWJhbmRvbigpOworICAgIHZvaWQgc3VzcGVuZCgpOworICAg
IHZvaWQgcmVzdW1lKCk7CisKKyAgICBjb25zdCBLVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBt
X3VybDsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIoKSBjb25zdCB7IHJldHVybiBtX3Jl
ZmVycmVyOyB9CisgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJl
dHVybiBtX3JlZmVycmVyUG9saWN5OyB9CisKKyAgICB2b2lkIHNldEV4dHJhRGF0YShQYXNzUmVm
UHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKSB7IG1fZXh0cmFEYXRhID0gZXh0cmFEYXRhOyB9Cisg
ICAgRXh0cmFEYXRhKiBleHRyYURhdGEoKSB7IHJldHVybiBtX2V4dHJhRGF0YS5nZXQoKTsgfQor
Citwcml2YXRlOgorICAgIGVudW0gU3RhdGUgeworICAgICAgICBJbmFjdGl2ZSwKKyAgICAgICAg
QWN0aXZlLAorICAgIH07CisKKyAgICB2b2lkIHNldFN0YXRlKFN0YXRlKTsKKworICAgIGNvbnN0
IEtVUkwgbV91cmw7CisgICAgY29uc3QgU3RyaW5nIG1fcmVmZXJyZXI7CisgICAgY29uc3QgUmVm
ZXJyZXJQb2xpY3kgbV9yZWZlcnJlclBvbGljeTsKKworICAgIFJlZlB0cjxFeHRyYURhdGE+IG1f
ZXh0cmFEYXRhOworCisgICAgV2ViS2l0OjpXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSogbV9wbGF0
Zm9ybTsKKworI2lmbmRlZiBOREVCVUcKKyAgICBTdGF0ZSBtX3N0YXRlOworI2VuZGlmCit9Owor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNlbmRpZiAvLyBQcmVy
ZW5kZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJl
cmVuZGVySGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJl
bmRlckhhbmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRmMjlmMGM2YjZhNzQ2ZDk4YjljMTliMTg5Nzhj
NDVmMDliNDliYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1ByZXJlbmRlckhhbmRsZS5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXJlbmRlckhhbmRsZS5oIgorCisjaWYgRU5BQkxFKExJ
TktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlByZXJlbmRlci5o
IgorI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYXNzUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gUHJlcmVuZGVySGFuZGxlOjpjcmVhdGUo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGljeSBw
b2xpY3kpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcmVyZW5kZXJIYW5kbGUodXJsLCBy
ZWZlcnJlciwgcG9saWN5KSk7Cit9CisKK1ByZXJlbmRlckhhbmRsZTo6UHJlcmVuZGVySGFuZGxl
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgUmVmZXJyZXJQb2xpY3kg
cG9saWN5KQorICAgICAgICA6IG1fcHJlcmVuZGVyKGFkb3B0UmVmKG5ldyBQcmVyZW5kZXIodXJs
LCByZWZlcnJlciwgcG9saWN5KSkpCit7Cit9CisKK1ByZXJlbmRlckhhbmRsZTo6flByZXJlbmRl
ckhhbmRsZSgpCit7Cit9CisKK1ByZXJlbmRlciogUHJlcmVuZGVySGFuZGxlOjpwcmVyZW5kZXIo
KQoreworICAgIHJldHVybiBtX3ByZXJlbmRlci5nZXQoKTsKK30KKwordm9pZCBQcmVyZW5kZXJI
YW5kbGU6OmFkZCgpCit7CisgICAgcHJlcmVuZGVyKCktPmFkZCgpOworfQorCit2b2lkIFByZXJl
bmRlckhhbmRsZTo6Y2FuY2VsKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+Y2FuY2VsKCk7Cit9CisK
K3ZvaWQgUHJlcmVuZGVySGFuZGxlOjphYmFuZG9uKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+YWJh
bmRvbigpOworfQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6c3VzcGVuZCgpCit7CisgICAgcHJl
cmVuZGVyKCktPnN1c3BlbmQoKTsKK30KKwordm9pZCBQcmVyZW5kZXJIYW5kbGU6OnJlc3VtZSgp
Cit7CisgICAgcHJlcmVuZGVyKCktPnJlc3VtZSgpOworfQorCitjb25zdCBLVVJMJiBQcmVyZW5k
ZXJIYW5kbGU6OnVybCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJlcmVuZGVyLT51cmwoKTsK
K30KKworY29uc3QgU3RyaW5nJiBQcmVyZW5kZXJIYW5kbGU6OnJlZmVycmVyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcmVyZW5kZXItPnVybCgpOworfQorCitSZWZlcnJlclBvbGljeSBQcmVy
ZW5kZXJIYW5kbGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVy
ZW5kZXItPnJlZmVycmVyUG9saWN5KCk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShMSU5L
X1BSRVJFTkRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTdiYWY1NTc0YTAyYmY1
NGYwMjhhMjA1OTUyNDMzNGYzYWM5YTM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQcmVyZW5kZXIuY3BwCkBAIC0wLDAgKzEs
MTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVO
REVSKQorCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgeworCitjbGFzcyBFeHRyYURhdGFDb250YWluZXIgOiBwdWJsaWMgV2ViQ29yZTo6
UHJlcmVuZGVyOjpFeHRyYURhdGEgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV4
dHJhRGF0YUNvbnRhaW5lcj4gY3JlYXRlKFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhKiBleHRyYURh
dGEpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeHRyYURhdGFDb250YWluZXIoZXh0cmFEYXRhKSk7
IH0KKworICAgIHZpcnR1YWwgfkV4dHJhRGF0YUNvbnRhaW5lcigpIHsgfQorCisgICAgV2ViUHJl
cmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFEYXRh
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgRXh0cmFEYXRhQ29udGFpbmVyKFdl
YlByZXJlbmRlcjo6RXh0cmFEYXRhKiBleHRyYURhdGEpCisgICAgICAgICAgICA6IG1fZXh0cmFE
YXRhKGFkb3B0UHRyKGV4dHJhRGF0YSkpCisgICAgeworICAgIH0KKworICAgIE93blB0cjxXZWJQ
cmVyZW5kZXI6OkV4dHJhRGF0YT4gbV9leHRyYURhdGE7Cit9OworCit9IC8vIGFub24gbmFtZXNw
YWNlCisKK1dlYlByZXJlbmRlcjo6V2ViUHJlcmVuZGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6UHJl
cmVuZGVyPiBwcmVyZW5kZXIpCisgICAgOiBtX3ByaXZhdGUocHJlcmVuZGVyKQoreworfQorCitX
ZWJQcmVyZW5kZXI6On5XZWJQcmVyZW5kZXIoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOwor
fQorCitXZWJVUkwgV2ViUHJlcmVuZGVyOjp1cmwoKSBjb25zdAoreworICAgIHJldHVybiBXZWJV
UkwobV9wcml2YXRlLT51cmwoKSk7Cit9CisKK1dlYlN0cmluZyBXZWJQcmVyZW5kZXI6OnJlZmVy
cmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5yZWZlcnJlcigpOworfQorCitX
ZWJSZWZlcnJlclBvbGljeSBXZWJQcmVyZW5kZXI6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViUmVmZXJyZXJQb2xpY3k+KG1fcHJpdmF0ZS0+cmVm
ZXJyZXJQb2xpY3koKSk7Cit9CisKK3ZvaWQgV2ViUHJlcmVuZGVyOjpzZXRFeHRyYURhdGEoV2Vi
UHJlcmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldEV4
dHJhRGF0YShFeHRyYURhdGFDb250YWluZXI6OmNyZWF0ZShleHRyYURhdGEpKTsKK30KKworY29u
c3QgV2ViUHJlcmVuZGVyOjpFeHRyYURhdGEqIFdlYlByZXJlbmRlcjo6ZXh0cmFEYXRhKCkgY29u
c3QKK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURhdGE+IHdlYmNvcmVF
eHRyYURhdGEgPSBtX3ByaXZhdGUtPmV4dHJhRGF0YSgpOworICAgIGlmICghd2ViY29yZUV4dHJh
RGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV4dHJhRGF0
YUNvbnRhaW5lcio+KHdlYmNvcmVFeHRyYURhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEVEKExJTktfUFJFUkVOREVS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L1Jlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IGZlOWRlNjY0MzcwNDY3ZjdjMWEyNWIwZjRk
M2E1YjIxZGIyNjlhMzcuLjUwMTU5ZGY1Nzc4OWExODY3MDA3M2NhNzhiZjY3MDJmYTgyNGZkNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9S
ZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTQ1LDcgKzQ1LDYgQEAgcHVibGljOgogICAg
ICAgICBUYXJnZXRJc1dvcmtlciwKICAgICAgICAgVGFyZ2V0SXNTaGFyZWRXb3JrZXIsCiAgICAg
ICAgIFRhcmdldElzUHJlZmV0Y2gsCi0gICAgICAgIFRhcmdldElzUHJlcmVuZGVyLAogICAgICAg
ICBUYXJnZXRJc0Zhdmljb24sCiAgICAgICAgIFRhcmdldElzWEhSLAogICAgICAgICBUYXJnZXRJ
c1RleHRUcmFjaywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNw
cAppbmRleCA5YTM1MGMxY2ViMGI4YjRlMTAxMTQ1MThmNTRmMjBiMTE3ODVkNzQ0Li42ODQyYTU4
NzVhMDJlZTAxNWMxYTRiMzEzMThiMTI1N2YyYWJkNGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJy
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jl
c291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCkBAIC04Niw4ICs4Niw2IEBAIHN0YXRpYyBpbmxp
bmUgTmV0d29ya1JlcXVlc3Q6OlRhcmdldFR5cGUgcGxhdGZvcm1UYXJnZXRUeXBlRm9yUmVxdWVz
dChjb25zdCBSZXNvCiAgICAgICAgIHJldHVybiBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0SXNJbWFn
ZTsKICAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVmZXRjaDoKICAgICAgICAg
cmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOwotICAgIGNhc2UgUmVz
b3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZXJlbmRlcjoKLSAgICAgICAgcmV0dXJuIE5ldHdvcmtS
ZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOwogICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRJc1hIUjoKICAgICAgICAgcmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpUYXJnZXRJc1N1YnJl
c291cmNlOwogICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1RleHRUcmFjazoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jl
c291cmNlUmVxdWVzdC5oCmluZGV4IGZjZTFlYmZkMDcyMzk5NDQzNDE5NjMzZGQxZDcxMDllZTg3
MjM0MzIuLjdlYTYxYTg4OGJjOWZiOGFlYmIyNDEzYjg0MWIzY2MzNmUyNjVjZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNv
dXJjZVJlcXVlc3QuaApAQCAtNTMsNyArNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgICAgICBUYXJnZXRJc1dvcmtlciwKICAgICAgICAgICAgIFRhcmdldElzU2hhcmVkV29ya2Vy
LAogICAgICAgICAgICAgVGFyZ2V0SXNQcmVmZXRjaCwKLSAgICAgICAgICAgIFRhcmdldElzUHJl
cmVuZGVyLAogICAgICAgICAgICAgVGFyZ2V0SXNGYXZpY29uLAogICAgICAgICAgICAgVGFyZ2V0
SXNYSFIsCiAgICAgICAgICAgICBUYXJnZXRJc1RleHRUcmFjaywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAppbmRleCA3YmZmOWJjNzJlOTQzYzAyYjFmMWEyMDE4MjEzZGVmMmE4YzI1MzhlLi5i
ODVkNzU2ZmJmMWMxMjRkNjg4ZGIwNDMzNmQ4MGQyZWFjZjI3ZmQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCkBAIC00MzcsNiArNDM3LDggQEAKICAgICAgICAgICAgICAgICAnc3JjL0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL05vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0LmgnLAorICAgICAgICAgICAgICAgICdzcmMvUHJlcmVuZGVyZXJDbGll
bnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMvUHJlcmVuZGVyZXJDbGllbnRJbXBsLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9hbmRyb2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9saW51eC9XZWJGb250SW5mby5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvbGludXgvV2ViRm9udFJlbmRlcmluZy5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IDU2MWIxMzAyNDU1YWNmNjVhMzRiOGM2MjYz
ZDkzNmIyYzJiZWZlNTAuLmFlM2M4ZWEyNzMyYjEzZjBhMGVlNDVlNGQzZmUxOWZjNzEwNTg4OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTEwNiw5ICsxMDYs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dG9maWxsQ2xpZW50KFdlYkF1dG9m
aWxsQ2xpZW50KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZUb29sc0FnZW50Q2xpZW50
KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFBlcm1p
c3Npb25DbGllbnQoV2ViUGVybWlzc2lvbkNsaWVudCopID0gMDsKLSAgICAvLyBGSVhNRTogQWZ0
ZXIgdGhlIFByZXJlbmRlcmluZyBBUEkgbGFuZHMgaW4gY2hyb21lLCByZW1vdmUgdGhpcyBzdGFn
aW5nIHRodW5rCi0gICAgLy8gZm9yIHNldFByZXJlbmRlcmVyQ2xpZW50KCkuCi0gICAgdmlydHVh
bCB2b2lkIHNldFByZXJlbmRlcmVyQ2xpZW50KFdlYlByZXJlbmRlcmVyQ2xpZW50KikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNldFByZXJlbmRlcmVyQ2xpZW50KFdlYlByZXJlbmRlcmVyQ2xpZW50
KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTcGVsbENoZWNrQ2xpZW50KFdlYlNwZWxsQ2hl
Y2tDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkZFRleHRGaWVsZERlY29yYXRvckNs
aWVudChXZWJUZXh0RmllbGREZWNvcmF0b3JDbGllbnQqKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QcmVyZW5kZXJlckNsaWVudEltcGwuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ2NTFkMjc5ZGU4NDUxYThiYmExZGI1NDg2NDVmOWRjNmQwNjYzMjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QcmVyZW5kZXJlckNsaWVudEltcGwu
Y3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBy
ZXJlbmRlcmVyQ2xpZW50SW1wbC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIlByZXJlbmRlci5oIgorI2luY2x1ZGUgIlByZXJlbmRlckhh
bmRsZS5oIgorI2luY2x1ZGUgIldlYlByZXJlbmRlcmVyQ2xpZW50LmgiCisjaW5jbHVkZSAiV2Vi
Vmlld0ltcGwuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViUHJlcmVuZGVyLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1ByZXJlbmRlcmVyQ2xp
ZW50SW1wbDo6UHJlcmVuZGVyZXJDbGllbnRJbXBsKFdlYlByZXJlbmRlcmVyQ2xpZW50KiBjbGll
bnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCit7Cit9CisKK3ZvaWQgUHJlcmVuZGVyZXJDbGll
bnRJbXBsOjp3aWxsQWRkUHJlcmVuZGVyKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZSogcHJlcmVu
ZGVySGFuZGxlKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBX
ZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHByZXJlbmRlckhhbmRsZS0+cHJlcmVuZGVyKCkpOwor
ICAgIG1fY2xpZW50LT53aWxsQWRkUHJlcmVuZGVyKCZ3ZWJQcmVyZW5kZXIpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QcmVyZW5kZXJlckNsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg1MTc2MzJhZWE0NWNjZjZhNWUzNjBjZWVjMThkNGNkNTM5MzEyNTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QcmVyZW5kZXJlckNs
aWVudEltcGwuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgUHJlcmVuZGVyZXJDbGllbnRJ
bXBsX2gKKyNkZWZpbmUgUHJlcmVuZGVyZXJDbGllbnRJbXBsX2gKKworI2luY2x1ZGUgIlByZXJl
bmRlcmVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJlcmVuZGVy
SGFuZGxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJlcmVuZGVyZXJD
bGllbnQ7CisKK2NsYXNzIFByZXJlbmRlcmVyQ2xpZW50SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpQ
cmVyZW5kZXJlckNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJlcmVuZGVyZXJD
bGllbnRJbXBsKTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQcmVyZW5kZXJlckNsaWVudEltcGwo
V2ViUHJlcmVuZGVyZXJDbGllbnQqKTsKKworICAgIHZvaWQgd2lsbEFkZFByZXJlbmRlcihXZWJD
b3JlOjpQcmVyZW5kZXJIYW5kbGUqKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBXZWJQcmVy
ZW5kZXJlckNsaWVudCogbV9jbGllbnQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBQcmVyZW5kZXJl
ckNsaWVudEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CmluZGV4IDg4ZTRiZDhjMGM5Y2ExYjQ3ZDAyYjRiMjM2Y2E3YWRiMThhZjY4ZGEuLjg3MWNjMjBh
YzAzNWIwYzk0OTdiMWYyZTMwZTMxNWI3NGYwOGQwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEwMCw2ICsxMDAsNyBAQAogI2luY2x1ZGUgIlBv
aW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBvcHVwQ29udGFpbmVyLmgiCiAjaW5j
bHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnRJbXBs
LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMzIyLDYgKzMyMywxMSBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGll
bnQqIHBlcm1pc3Npb25DbGllbnQpCiAgICAgbV9wZXJtaXNzaW9uQ2xpZW50ID0gcGVybWlzc2lv
bkNsaWVudDsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJlcmVuZGVyZXJDbGllbnQoV2Vi
UHJlcmVuZGVyZXJDbGllbnQqIHByZXJlbmRlcmVyQ2xpZW50KQoreworICAgIHByb3ZpZGVQcmVy
ZW5kZXJlckNsaWVudFRvKG1fcGFnZS5nZXQoKSwgbmV3IFByZXJlbmRlcmVyQ2xpZW50SW1wbChw
cmVyZW5kZXJlckNsaWVudCkpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRTcGVsbENoZWNr
Q2xpZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqIHNwZWxsQ2hlY2tDbGllbnQpCiB7CiAgICAgbV9z
cGVsbENoZWNrQ2xpZW50ID0gc3BlbGxDaGVja0NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDkzODNiYTI4ZDk2MDhiYTJkYzVkMGE3ZmQyNDE3YTg4
MjRlMDk0ZDcuLjhiM2JjMmIxM2U0ZTlhZjQ0M2VlYWYxZmVjYWIwYTA2Y2E1MmY5MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtOTAsNiArOTAsNyBAQCBj
bGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVy
OwogY2xhc3MgR2VvbG9jYXRpb25DbGllbnRQcm94eTsKIGNsYXNzIE5vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdDsKK2NsYXNzIFByZXJlbmRlcmVyQ2xpZW50SW1wbDsKIGNsYXNzIFNwZWVjaElucHV0
Q2xpZW50SW1wbDsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHk7CiBjbGFzcyBV
c2VyTWVkaWFDbGllbnRJbXBsOwpAQCAtMTAwLDYgKzEwMSw3IEBAIGNsYXNzIFdlYkRldlRvb2xz
QWdlbnRQcml2YXRlOwogY2xhc3MgV2ViRnJhbWVJbXBsOwogY2xhc3MgV2ViR2VzdHVyZUV2ZW50
OwogY2xhc3MgV2ViUGFnZVBvcHVwSW1wbDsKK2NsYXNzIFdlYlByZXJlbmRlcmVyQ2xpZW50Owog
Y2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VF
dmVudDsKQEAgLTE2MCw2ICsxNjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEF1
dG9maWxsQ2xpZW50KFdlYkF1dG9maWxsQ2xpZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHNldERl
dlRvb2xzQWdlbnRDbGllbnQoV2ViRGV2VG9vbHNBZ2VudENsaWVudCopOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJDbGllbnQqKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3BlbGxDaGVja0NsaWVudChXZWJTcGVsbENoZWNr
Q2xpZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGFkZFRleHRGaWVsZERlY29yYXRvckNsaWVudChX
ZWJUZXh0RmllbGREZWNvcmF0b3JDbGllbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFdlYlNl
dHRpbmdzKiBzZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRiMjUzZjRiMjZkMGVkNDk1NGZhYTNiNTI2NDY0
YzU4MGRjYTFhNmQuLmQyMjNmZjZjMGVhYTJkOGM1ZjdhM2YxMDAxYjUyZjE3ZGYyZWQwMTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNC0yNiAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJlcmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBh
bmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFByZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHByZXJlbmRlciBjYXNlIGlzbid0
IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVzaW5nIHJlc291cmNlIGxvYWRpbmcgdG8KKyAg
ICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3RyYWluZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNz
YXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4KKworICAgICAgICBUaGUgbmV3IFByZXJlbmRl
cmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxsaW5rIHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1l
bnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFuZCB1bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0u
CisKKyAgICAgICAgVGhlc2UgdGVzdHMgYXJlIGJlaW5nIHJlbW92ZWQsIGFuZCBleHBlY3RhdGlv
bnMgdXBkYXRlZCwgYmVjYXVzZSB0aGUgb2xkIHBoYW50b20tbG9hZAorICAgICAgICBwcmVyZW5k
ZXJpbmcgaW50ZXJmYWNlIHdhcyBzdXNjZXB0aWJsZSB0byBsYXlvdXQgdGVzdGluZywgYW5kIHRo
ZSBuZXcgaW50ZXJmYWNlIHJlcXVpcmVzCisgICAgICAgIGEgZnVsbCBwbGF0Zm9ybSB0byB0ZXN0
LCBzbyBpdCBjYW4ndCByZWFsbHkgYmUgYSBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fp
cm8vU2tpcHBlZDoKKwogMjAxMi0wNC0yNSAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0
aW9ucyB1cGRhdGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVyZW5kZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZXJlbmRlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI2NWJmZTI2NDUyMDRkMTMyNTdlY2QyNDYyOTVjMGE5NGQ3MWNjZWQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLXByZWZldGNoLmxpbmsgaGFzIE1JTUUgdHlwZSBhcHBsaWNhdGlvbi9v
Y3RldC1zdHJlYW0KLVBBU1Mgb25sb2FkIGNhbGxlZCEKLVRoaXMgdGVzdCB3aWxsIG9ubHkgcHJp
bnQgIlBBU1MiIG9yICJGQUlMIiBpZiBsaW5rIHByZWZldGNoZXMgYXJlIGVuYWJsZWQsIG90aGVy
d2lzZSBpdCB3aWxsIHNob3cgbm90aGluZyBiZWxvdy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjk3OGY0MmNlZWM2Mzc1M2QwNjdjMjRiMjhhZWQ3M2ZlYzYzNGM2Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyMCArMCwwIEBACi08Ym9keT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gcHJlZmV0Y2hfb25sb2FkKCkgewotICAgIHRlc3RQYXNzZWQoJ29ubG9hZCBj
YWxsZWQhJyk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMo
KTsKLX0KLTwvc2NyaXB0PgotPGh0bWw+Ci08cD5UaGlzIHRlc3Qgd2lsbCBvbmx5IHByaW50ICJQ
QVNTIiBvciAiRkFJTCIgaWYgbGluayBwcmVmZXRjaGVzIGFyZQotZW5hYmxlZCwgb3RoZXJ3aXNl
IGl0IHdpbGwgc2hvdyBub3RoaW5nIGJlbG93LjwvcD4KLTxsaW5rIGhyZWY9InByZWZldGNoLmxp
bmsiIHJlbD0icHJlcmVuZGVyIiBvbmxvYWQ9InByZWZldGNoX29ubG9hZCgpIiBvbmVycm9yPSJ0
ZXN0RmFpbGVkKCdvbmVycm9yJykiIC8+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGU4OTZhZjViY2UzYWMyN2VlM2Q2
ZjE1YTcxN2I5OWQ4ODAyMWUwMmUuLjQ5ZmI4NWQyNjdlZTJjNzA5NTQ4YTc0MGZiMWVhNDcxODIz
OGI3OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dApAQCAtODk4LDcgKzg5OCw2IEBAIEJVR1dLR1RLIDogZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZWZldGNoLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6
IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbCA9IEZBSUwKLUJV
R1dLR1RLIDogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sID0gRkFJTAog
QlVHV0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3VyY2UuaHRtbCA9IEZB
SUwKIAogLy8gVGVzdHMgZmFpbGluZyBiZWNhdXNlIHRoZSBjb250ZXh0IG1lbnUgaXMgZ3JhYmJp
bmcgbW91c2UgZXZlbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA5YmZhZGQwOTBk
OTUzMDY2YTE3MzgyOWMxYjRmZWYwMDExZGU5MzVlLi5hMjI5OGJjZDA5ZTcxZWNlYWZhZmI3OTYw
OTlmZTFlYTBkODJjMWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTkzLDcgKzE5
Myw2IEBAIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwK
IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZWZldGNoLXRvby1tYW55LWNsaWVudHMuaHRtbAotZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZXJlbmRlci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3Vy
Y2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLXByZWZldGNoLWFuZC1zdWJyZXNvdXJj
ZS5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAppbmRleCBmOThmMzk1YmIxNTUwNzVlN2RjODA3YTg5MDhlYjQ1YzY1OTkyZjIz
Li5hMDAzNTQ1ZTc5MzU0OWEzNjJjMzEzMzJmMWIzNDU1MjY2MzI0ZWY2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKQEAgLTE0NCw3ICsxNDQsNiBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2Fk
Lmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRz
Lmh0bWwKLWZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3N1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9saW5rLXJl
bC1wcmVmZXRjaC1hbmQtc3VicmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNo
LXB1cnBvc2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5OWUyNTgzODUzNWRm
ZWQ3Yzc4OTIyMzFhMjhiNTdmZWM0NTQ0OWE3Li4xYmIyMzZlYjgzNDdjMTZjZDRiYjRiZDJmOWJm
ZDZjMWQ1MzBhMTRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTA5OCw3ICsxMDk4
LDYgQEAgZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtdG9vLW1hbnktY2xpZW50cy5odG1sCiBodHRwL3Rlc3RzL21p
c2MvbGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNlLmh0bWwKLWZhc3QvZG9tL0hUTUxM
aW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3N1YnJl
c291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKaW5kZXggZTA5MTM5YjJlMzk5MDJlYjVhZGRi
NWE0NjQ4MGZkZTNhYzQ5N2Q3ZC4uN2NhOTkxNmUwYjkxMDA3MDJlMWE2YzkyNDZlYTdlZjQyNWNi
OGVjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCkBAIC0xNjEzLDcgKzE2
MTMsNiBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGZhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRzLmh0bWwKIGh0dHAvdGVzdHMv
bWlzYy9saW5rLXJlbC1wcmVmZXRjaC1hbmQtc3VicmVzb3VyY2UuaHRtbAotZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3Vi
cmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139234</attachid>
            <date>2012-04-27 11:09:39 -0700</date>
            <delta_ts>2012-04-30 15:43:20 -0700</delta_ts>
            <desc>add build files for platforms...</desc>
            <filename>bug-85005-20120427140937.patch</filename>
            <type>text/plain</type>
            <size>96164</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwMmE0MzZiOTYyNjAx
YjA0M2Y4MTYyNWUxMGIzZGZjYTRlN2FkNjdiLi5jZjllMGNkMDhiOWRhNjkxMjI5NTg2MDQ2NDFl
MDI1MjA0OGY3ZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wNC0yNyAg
R2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJlcmVu
ZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFByZXJl
bmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIHByZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVzaW5n
IHJlc291cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3RyYWlu
ZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4KKwor
ICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxsaW5r
IHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFuZCB1
bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFBsYXRmb3JtKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm06OmNyZWF0ZVByZXJl
bmRlcmluZ1BsYXRmb3JtKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVy
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUHJlcmVu
ZGVyKToKKyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRl
cjo6RXh0cmFEYXRhOjp+RXh0cmFEYXRhKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2Vi
UHJlcmVuZGVyaW5nUGxhdGZvcm0uaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJQcmVyZW5kZXJp
bmdQbGF0Zm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1BsYXRmb3JtOjp+
V2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXJp
bmdQbGF0Zm9ybTo6V2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0pOgorICAgICAgICAqIGNocm9taXVt
L3B1YmxpYy9XZWJVUkxSZXF1ZXN0Lmg6CisgICAgICAgICogY2hyb21pdW0vc3JjL1dlYlByZXJl
bmRlcmluZ1BsYXRmb3JtLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5r
UmVsQXR0cmlidXRlLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cmVyZW5kZXJpbmdQbGF0Zm9ybTo6c2V0UGxhdGZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cmVyZW5kZXJpbmdQbGF0Zm9ybTo6Z2V0UGxhdGZvcm0pOgorCiAyMDEyLTA0LTI1ICBEYW5hIEph
bnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3Zl
IGd1YXJkZWQgdmlydHVhbCBtZXRob2RzIGZyb20gV2ViRmlsdGVyT3BlcmF0aW9uIEFQSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDQ0M2QyYjUyZDFkMTJkOGFhNTM5YzUxN2Q2Y2QyZDJjY2M3ZDVlMmQuLmUwYzkx
M2Y4ZWI5MjU5YzZmNTI4ZjQ5YzZiMTgyNjI1OTJhZjI2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMjkgQEAKKzIwMTItMDQtMjcgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgQWRkIFByZXJlbmRlcmVyLCBQcmVyZW5kZXJIYW5kbGUgYW5kIGEgY2hyb21p
dW0gaW50ZXJmYWNlIGZvciBQcmVyZW5kZXJpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmVyZW5kZXIgY2FzZSBpc24ndCBxdWl0ZSBhIHJl
c291cmNlIGxvYWQsIGFuZCB1c2luZyByZXNvdXJjZSBsb2FkaW5nIHRvCisgICAgICAgIHJldHJp
ZXZlIHRoZW0gaGFzIGNvbnN0cmFpbmVkIHRoZSBBUEksIGFuZCB1bm5lY2Vzc2FyaWx5IGNvbXBs
aWNhdGVkIHRoZSBsb2FkZXIuCisKKyAgICAgICAgVGhlIG5ldyBQcmVyZW5kZXJlciBhbmQgUHJl
cmVuZGVySGFuZGxlIGxldCA8bGluayByZWw9cHJlcmVuZGVyLi4uPiBlbGVtZW50cyBzaWduYWwK
KyAgICAgICAgcmVtb3ZhbCBhbmQgdW5sb2FkIHRvIHRoZWlyIHBsYXRmb3JtLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpbnRlcmZhY2UgcmVxdWlyZXMgYSBmdWxsIHBsYXRmb3Jt
IHRvIHdvcmssIGFuZCBkb2Vzbid0IGFmZmVjdCBsYXlvdXQuICBUZXN0CisgICAgICAgIGl0IHdp
dGggeW91ciBwbGF0Zm9ybSB3aGVuIGltcGxlbWVudGVkIGZvciBpdC4KKworICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJlcmVuZGVyZXIpOgorICAgICAg
ICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5r
RWxlbWVudDo6cmVtb3ZlZEZyb20pOgorICAgICAgICAqIGh0bWwvTGlua1JlbEF0dHJpYnV0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rUmVsQXR0cmlidXRlOjpMaW5rUmVsQXR0cmlidXRl
KToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuaDoKKyAgICAgICAgKExpbmtSZWxB
dHRyaWJ1dGUpOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxpbmtMb2FkZXI6OmxvYWRMaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2Fk
ZXI6OnJlbGVhc2VkKToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChMaW5rTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUHJlcmVu
ZGVyZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlcmVuZGVyZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6UHJl
cmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6On5QcmVyZW5kZXJlcik6
CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6cmVuZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlByZXJlbmRlcmVyOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpz
dXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpyZXN1bWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
ZXJlbmRlcmVyOjpjbGllbnQpOgorICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlci5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChQcmVyZW5kZXJlcik6CisgICAgICAgICogbG9hZGVyL1ByZXJlbmRl
cmVyQ2xpZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRl
cmVyQ2xpZW50OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJl
ckNsaWVudDo6ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlUHJlcmVuZGVyZXJDbGll
bnRUbyk6CisgICAgICAgICogbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50Lmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChQcmVyZW5kZXJlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVy
ZW5kZXJlckNsaWVudDo6flByZXJlbmRlcmVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
ZXJlbmRlcmVyQ2xpZW50OjpQcmVyZW5kZXJlckNsaWVudCk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRQcmlvcml0
eUZvclJlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNvdXJjZVR5cGVU
b1RhcmdldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2U6Omlnbm9yZUZvclJlcXVlc3RDb3VudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0TGlua1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpjaGVja0luc2VjdXJlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Y2FuUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vUHJlcmVuZGVySGFu
ZGxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmguCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFByZXJlbmRlckhhbmRsZSk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6UHJlcmVuZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlByZXJlbmRlcjo6flByZXJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5k
ZXI6OnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6YWRkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJl
bmRlcjo6YWJhbmRvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OnN1c3BlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpyZXN1bWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL1ByZXJlbmRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TGlua0xvYWRlci5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUHJlcmVuZGVyKToKKyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcmVyZW5kZXI6OkV4dHJhRGF0YTo6fkV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cmVyZW5kZXI6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OnJlZmVycmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAgICAo
V2ViQ29yZTo6UHJlcmVuZGVyOjpzZXRFeHRyYURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
cmVuZGVyOjpleHRyYURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRl
ckhhbmRsZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVy
LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6UHJlcmVuZGVy
SGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6flByZXJlbmRlckhh
bmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OnByZXJlbmRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OmFkZCk6CisgICAgICAgIChXZWJDb3Jl
OjpQcmVyZW5kZXJIYW5kbGU6OmNhbmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJI
YW5kbGU6OmFiYW5kb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpzdXNw
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6cmVzdW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6dXJsKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
ZXJlbmRlckhhbmRsZTo6cmVmZXJyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFu
ZGxlOjpyZWZlcnJlclBvbGljeSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJQcmVyZW5kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVy
OjpXZWJQcmVyZW5kZXIpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJlcmVuZGVyOjp+V2ViUHJlcmVuZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVy
Ojp1cmwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXI6OnJlZmVycmVyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpyZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByZXJlbmRlcjo6c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJl
cmVuZGVyOjpleHRyYURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGF0
Zm9ybVRhcmdldFR5cGVGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlUmVxdWVzdC5oOgorCiAyMDEyLTA0LTI2ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHI5NDQ5Nyk6IFByZXNzaW5n
IENvbW1hbmQrQSB3aGVuIGlubGluZSAoTWFya2VkIFRleHQpIGlzIG5vdCBlbXB0eSB3aWxsIGNs
ZWFuIHdob2xlIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2NlNzA5ODAz
OWNkMDA5ZTZiZDVkYjMwNmU4Yzg5NjBmMDAzYjk5NC4uYTQ5Yjk2MmZmZTZlNWRmNjQ0NTgwNjFh
NDVmMTI1NzdiNTc3ODYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
OCBAQAorMjAxMi0wNC0yNyAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBBZGQgUHJlcmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBp
bnRlcmZhY2UgZm9yIFByZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIHByZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3Vy
Y2UgbG9hZCwgYW5kIHVzaW5nIHJlc291cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUg
dGhlbSBoYXMgY29uc3RyYWluZWQgdGhlIEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0
ZWQgdGhlIGxvYWRlci4KKworICAgICAgICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5k
ZXJIYW5kbGUgbGV0IDxsaW5rIHJlbD1wcmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAg
ICAgICByZW1vdmFsIGFuZCB1bmxvYWQgdG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBE
RVBTOgorICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYlByZXJlbmRl
cmVyQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJp
YnV0ZS5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlByZXJlbmRlcmVyQ2xpZW50
KToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKiBzcmMvUHJlcmVuZGVyZXJDbGllbnRJbXBsLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpQcmVyZW5kZXJlckNsaWVudEltcGw6OlByZXJlbmRlcmVyQ2xpZW50SW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OlByZXJlbmRlcmVyQ2xpZW50SW1wbDo6d2lsbEFkZFByZXJlbmRl
cik6CisgICAgICAgICogc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFByZXJlbmRlcmVyQ2xpZW50SW1wbCk6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnNldFByZXJlbmRlcmVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVmlld0lt
cGwpOgorCiAyMDEyLTA0LTI0ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIFByb2dyYW1CaW5kaW5nIGRlZmluaXRpb25zIHRv
IExheWVyUmVuZGVyZXJDaHJvbWl1bSBhbmQgbm9ybWFsaXplIG5hbWluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0u
Z3lwaQppbmRleCA2Mzc2MTQwZTVkOWU5OWYwNjFlMWE3MzJmMDI3MzIyNTk4MDBjYjU5Li5lNDdm
YjJjZjQ5ZDU2MTA3ZmZjZjVmZDJmMGM2MjkyNjRmYjI2ZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
UGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQorKysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lw
aQpAQCAtNzIsNiArNzIsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlBl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViUG9pbnQuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRl
ci5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nUGxhdGZv
cm0uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlByaXZhdGVPd25QdHIuaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlByaXZhdGVQdHIuaCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJlY3QuaCcsCkBAIC04NSw2ICs4Nyw3IEBACiAgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlN0cmluZy5oJywKICAgICAgICAgICAgICdjaHJv
bWl1bS9wdWJsaWMvV2ViVGhyZWFkLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9X
ZWJUaHJlYWRTYWZlRGF0YS5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUHJl
cmVuZGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkwuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTEVycm9yLmgnLAogICAgICAgICAgICAgJ2No
cm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkVGltaW5nLmgnLApAQCAtOTgsNiArMTAxLDcgQEAKICAg
ICAgICAgICAgICdjaHJvbWl1bS9zcmMvUGxhdGZvcm0uY3BwJywKICAgICAgICAgICAgICdjaHJv
bWl1bS9zcmMvV2ViQ1N0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3NyYy9XZWJG
bG9hdFF1YWQuY3BwJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViUHJlcmVuZGVyaW5n
UGxhdGZvcm0uY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViU3RyaW5nLmNwcCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1dlYlZpZGVvRnJhbWUuY3BwJywKICAgICAgICAg
XQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5o
IGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCmluZGV4IGFiZjNk
MDkwMWVkOWVlMDU3NTJhMDY1YzNjYTkzMDk4YzUzYjQ0ZTYuLmIxNWExNWExM2E3YmE0Y2E2M2Y2
YTA0ZTM5NWEyYzRjMWUyM2ViZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1BsYXRmb3JtLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgV2ViUGVlckNvbm5lY3Rpb25IYW5k
bGVyOwogY2xhc3MgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OwogY2xhc3MgV2ViVVJM
OwogY2xhc3MgV2ViVVJMTG9hZGVyOworY2xhc3MgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm07CiBj
bGFzcyBXZWJTb2NrZXRTdHJlYW1IYW5kbGU7CiBjbGFzcyBXZWJUaHJlYWQ7CiAKQEAgLTI4Myw2
ICsyODQsOCBAQCBwdWJsaWM6CiAgICAgLy8gRW51bWVyYXRpb24gaGlzdG9ncmFtIGJ1Y2tldHMg
YXJlIGxpbmVhciwgYm91bmRhcnlWYWx1ZSBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gYW55IHBvc3Np
YmxlIHNhbXBsZSB2YWx1ZS4KICAgICB2aXJ0dWFsIHZvaWQgaGlzdG9ncmFtRW51bWVyYXRpb24o
Y29uc3QgY2hhciogbmFtZSwgaW50IHNhbXBsZSwgaW50IGJvdW5kYXJ5VmFsdWUpIHsgfQogCisg
ICAgLy8gUHJlcmVuZGVyCisgICAgdmlydHVhbCBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSogY3Jl
YXRlUHJlcmVuZGVyaW5nUGxhdGZvcm0oKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBXZWJSVEMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJl
bmRlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jOTlhMTQ1M2JkZDk0OGE1YjBjMDg0NDFmYWMwMjM5N2Y5OWY4ODdmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5k
ZXIuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQcmVyZW5kZXJfaAorI2RlZmluZSBXZWJQ
cmVyZW5kZXJfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0
ZVB0ci5oIgorI2luY2x1ZGUgIldlYlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVkZSAiV2ViU3Ry
aW5nLmgiCisjaW5jbHVkZSAiV2ViVVJMLmgiCisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIFByZXJlbmRlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBX
ZWJTaXplOworCitjbGFzcyBXZWJQcmVyZW5kZXIgeworcHVibGljOgorICAgIGNsYXNzIEV4dHJh
RGF0YSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAg
ICB9OworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgZXhwbGljaXQgV2ViUHJlcmVu
ZGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6UHJlcmVuZGVyPik7CisgICAgfldlYlByZXJlbmRlcigp
OworI2VuZGlmCisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlVSTCB1cmwoKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIFdlYlN0cmluZyByZWZlcnJlcigpIGNvbnN0OworICAgIFdFQktJVF9FWFBP
UlQgV2ViUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdDsKKworICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBzZXRFeHRyYURhdGEoRXh0cmFEYXRhKik7CisgICAgV0VCS0lUX0VYUE9S
VCBjb25zdCBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdl
YlByZXJlbmRlcigpOworCisgICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpQcmVyZW5kZXI+IG1f
cHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViUHJl
cmVuZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
UHJlcmVuZGVyaW5nUGxhdGZvcm0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDBlODZjZTQyMzI2NTYyYzM4
MDRlYTJmYmMxZmM5YzY3ZjllNGE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5oCkBAIC0wLDAgKzEsNjcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtX2gKKyNkZWZpbmUgV2ViUHJlcmVuZGVy
aW5nUGxhdGZvcm1faAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQcmVyZW5kZXI7CisKK2NsYXNzIFdlYlByZXJlbmRlcmluZ1BsYXRm
b3JtIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSgpIHsg
fQorCisgICAgLy8gQSBwcmVyZW5kZXIgbGluayBlbGVtZW50IGlzIGFkZGVkIHdoZW4gaXQgaXMg
aW5zZXJ0ZWQgaW50byBhIGRvY3VtZW50LgorICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgV2Vi
UHJlcmVuZGVyJikgPSAwOworCisgICAgLy8gQSBwcmVyZW5kZXIgaXMgYWJhbmRvbmVkIHdoZW4g
aXQncyBuYXZpZ2F0ZWQgYXdheSBmcm9tIG9yIHN1c3BlbmRlZCBpbiB0aGUgcGFnZSBjYWNoZS4g
VGhpcworICAgIC8vIGlzIGEgd2Vha2VyIHNpZ25hbCB0aGFuIGNhbmNlbCgpLCBzaW5jZSB0aGUg
bGF1bmNoZXIgaGFzbid0IGluZGljYXRlZCB0aGF0IHRoZSBwcmVyZW5kZXIgaXNuJ3QKKyAgICAv
LyB3YW50ZWQsIGFuZCB3ZSBtYXkgZW5kIHVwIHVzaW5nIGl0IGFmdGVyLCBmb3IgaW5zdGFuY2Us
IGEgc2hvcnQgcmVkaXJlY3QgY2hhaW4uCisgICAgdmlydHVhbCB2b2lkIGNhbmNlbChjb25zdCBX
ZWJQcmVyZW5kZXImKSA9IDA7CisKKyAgICAvLyBBIHByZXJlbmRlciBpcyBjYW5jZWxlZCB3aGVu
IGl0IGlzIHJlbW92ZWQgZnJvbSBhIGRvY3VtZW50LgorICAgIHZpcnR1YWwgdm9pZCBhYmFuZG9u
KGNvbnN0IFdlYlByZXJlbmRlciYpID0gMDsKKworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZv
aWQgc2V0UGxhdGZvcm0oV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0qKTsKKyAgICBXRUJLSVRfRVhQ
T1JUIHN0YXRpYyBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybSogZ2V0UGxhdGZvcm0oKTsKKworcHJv
dGVjdGVkOgorICAgIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKCkgeyB9CisKK3ByaXZhdGU6Cisg
ICAgc3RhdGljIFdlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBzX3BsYXRmb3JtOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVl
c3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCmlu
ZGV4IDhjMTg5MjViYzBiZDA1MjI0ZGViOTRkN2YxMTBlOWI4MDI2YmUwZmUuLjU1MmJmY2IwYTZj
YjY5NWY0OTliNTZlZTdmMmIyNzU2NTZjZTJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCkBAIC02OSwxMSArNjksMTMgQEAgcHVibGlj
OgogICAgICAgICBUYXJnZXRJc1dvcmtlciA9IDksCiAgICAgICAgIFRhcmdldElzU2hhcmVkV29y
a2VyID0gMTAsCiAgICAgICAgIFRhcmdldElzUHJlZmV0Y2ggPSAxMSwKLSAgICAgICAgVGFyZ2V0
SXNQcmVyZW5kZXIgPSAxMiwKLSAgICAgICAgVGFyZ2V0SXNGYXZpY29uID0gMTMsCi0gICAgICAg
IFRhcmdldElzWEhSID0gMTQsCi0gICAgICAgIFRhcmdldElzVGV4dFRyYWNrID0gMTUsCi0gICAg
ICAgIFRhcmdldElzVW5zcGVjaWZpZWQgPSAxNiwKKyAgICAgICAgVGFyZ2V0SXNGYXZpY29uID0g
MTIsCisgICAgICAgIFRhcmdldElzWEhSID0gMTMsCisgICAgICAgIFRhcmdldElzVGV4dFRyYWNr
ID0gMTQsCisgICAgICAgIFRhcmdldElzVW5zcGVjaWZpZWQgPSAxNSwKKyAgICAgICAgLy8gRklY
TUU6IFRoaXMgb2xkIGVudW0gdmFsdWUgaXMgb25seSBiZWluZyBsZWZ0IGluIHdoaWxlIHByZXJl
bmRlcmluZyBpcyBzdGFnaW5nIGludG8gY2hyb21pdW0uIEFmdGVyIGh0dHA6Ly9jb2RlcmV2aWV3
LmNocm9taXVtLm9yZy8xMDI0NDAwNy8KKyAgICAgICAgLy8gbGFuZHMsIHRoaXMgc2hvdWxkIGJl
IHJlbW92ZWQuCisgICAgICAgIFRhcmdldElzUHJlcmVuZGVyID0gVGFyZ2V0SXNVbnNwZWNpZmll
ZCwKICAgICB9OwogCiAgICAgY2xhc3MgRXh0cmFEYXRhIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9zcmMvV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm0uY3BwIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3NyYy9XZWJQcmVyZW5kZXJpbmdQbGF0Zm9ybS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTkxOWRlYmExNWIwOGYyMzdjNDExYjUzZjVlZjliMjlhMWI2MTY3NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9zcmMvV2ViUHJlcmVuZGVyaW5nUGxh
dGZvcm0uY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8cHVibGljL1dlYlByZXJlbmRlcmlu
Z1BsYXRmb3JtLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJQcmVyZW5kZXJpbmdQbGF0
Zm9ybSogV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06OnNfcGxhdGZvcm0gPSAwOworCit2b2lkIFdl
YlByZXJlbmRlcmluZ1BsYXRmb3JtOjpzZXRQbGF0Zm9ybShXZWJQcmVyZW5kZXJpbmdQbGF0Zm9y
bSogcGxhdGZvcm0pCit7CisgICAgc19wbGF0Zm9ybSA9IHBsYXRmb3JtOworfQorCitXZWJQcmVy
ZW5kZXJpbmdQbGF0Zm9ybSogV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm06OmdldFBsYXRmb3JtKCkK
K3sKKyAgICByZXR1cm4gc19wbGF0Zm9ybTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggZTEyYTU3MmE5MzU0Mzg0OTg5MTkyNGUxZTcyZTY1ZTAxMjcxYmY3MC4uNjA3
MTc3ZDk2MTMyY2QyZTRhMDE1MWJlYzAyMTdjY2Q3NjZjZTY4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC0yODQxLDYgKzI4NDEsMTAgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuaCBcCisJU291cmNlL1dlYkNvcmUv
bG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
ZXJlbmRlcmVyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNr
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmggXAogCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBcCkBAIC0zNTMzLDYg
KzM1MzcsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BvcHVwTWVudUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaCBcCisJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJn
ZVByaW9yaXR5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZmVycmVyUG9saWN5Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKaW5kZXggZGE5MzZlMzQ3MjA1NjIzNGRjMGE1ZmQwNDlmYjIzOTU3ZGQwNzkw
Mi4uY2U5MDdkNWYyODhmMTk4NzJhZTZiNTNjNWRmOTk1MDUxNGUyYzhmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC05NzYsNiArOTc2LDggQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1BvbGljeUNhbGxi
YWNrLmNwcCBcCiAgICAgbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwIFwKICAgICBsb2FkZXIvUHJv
Z3Jlc3NUcmFja2VyLmNwcCBcCisgICAgbG9hZGVyL1ByZXJlbmRlcmVyLmNwcCBcCisgICAgbG9h
ZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcCBcCiAgICAgbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuY3BwIFwKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvUmVz
b3VyY2VMb2FkTm90aWZpZXIuY3BwIFwKQEAgLTIwOTYsNiArMjA5OCw4IEBAIEhFQURFUlMgKz0g
XAogICAgIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmggXAogICAgIGxvYWRlci9OZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlci5oIFwKICAgICBsb2FkZXIvUGxhY2Vob2xkZXJEb2N1bWVudC5oIFwK
KyAgICBsb2FkZXIvUHJlcmVuZGVyZXIuaCBcCisgICAgbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50
LmggXAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaCBcCiAgICAgbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmggXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oIFwKQEAgLTIzODAsNiAr
MjM4NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL1RpbWVyLmggXAogICAgIHBsYXRm
b3JtL1dpZGdldC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCisgICAg
cGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmggXAogICAgIHBsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuaCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmggXAogICAgIHBsdWdpbnMvRE9N
TWltZVR5cGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjEzNzk4Y2ZhOWIxYjcyMmQyNmQ0NDBi
YjczNDUzZDEwNTA3ODJhOS4uMjdhNjIzNDk1OWJjZWU3NWEzOGNlMzI4NDBmYjQzZWRmNGI5ODEx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjg1NSw2ICsyODU1LDEwIEBACiAgICAgICAgICAgICAn
bG9hZGVyL1BsYWNlaG9sZGVyRG9jdW1lbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1BvbGlj
eUNhbGxiYWNrLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwJywK
KyAgICAgICAgICAgICdsb2FkZXIvUHJlcmVuZGVyZXIuY3BwJywKKyAgICAgICAgICAgICdsb2Fk
ZXIvUHJlcmVuZGVyZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50
LmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmgnLAogICAgICAg
ICAgICAgJ2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIv
UmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcCcsCkBAIC0zMTM4LDYgKzMxNDIsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Bs
YXRmb3JtVG91Y2hFdmVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNo
UG9pbnQuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9SZWZlcnJlclBvbGljeS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9SdW5Mb29wVGlt
ZXIuaCcsCkBAIC0zMzE2LDYgKzMzMjEsOSBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL1BvcHVwTGlzdEJveC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTGlzdEJveC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVQ
cml2YXRlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9TU0xLZXlHZW5lcmF0b3JDaHJvbWl1bS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmgnLApA
QCAtODI1NCw2ICs4MjYyLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3VyY2UuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3RyZWFtU291cmNlc1JlcXVlc3Qu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlByZXJlbmRl
ci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVGhyZWFk
U2FmZURhdGEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlVSTC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVVJM
RXJyb3IuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggNDQ3ZDc0NWM2N2QxMzkyMmM5YTE3OGVjNWJkNzZlZWFmMDk0N2E5Mi4uMmI4YmRl
NjgxYjA3YjY2MzYxOGY0ODhkMTRlNjhkYzZhZjZiZjNlZCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2OTM4LDYgKzI2OTM4LDIyIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxQ
cmVyZW5kZXJlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGxvYWRlclxQcmVyZW5kZXJlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcUHJlcmVuZGVyZXJDbGllbnQuY3BwIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJc
UHJlcmVuZGVyZXJDbGllbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cbG9hZGVyXFByb2dyZXNzVHJhY2tlci5jcHAiCiAJCQkJPgogCQkJPC9G
aWxlPgpAQCAtMjc4MTQsNiArMjc4MzAsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUHJlcmVuZGVySGFuZGxlLmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFB1
cmdlYWJsZUJ1ZmZlci5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNzljMTM1YjA1YzljYjJm
ZmY4YTI5Mzg3ODc3NjNiZDYwOTliZTMxLi44OWI5YzkxZjI1Yzg4MzNiOTE3OGY3YTIyODIwMTM1
ZDViNjI2M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zNTk4LDYgKzM1OTgsMTEgQEAKIAkJOTdGOEU2NjYxNTFENEE0RTAw
RDJEMTgxIC8qIFdvcmtlckNvbnRleHROb3RpZmljYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5N0Y4RTY2MjE1MUQ0QTNGMDBEMkQxODEgLyog
V29ya2VyQ29udGV4dE5vdGlmaWNhdGlvbnMuaCAqLzsgfTsKIAkJOTgzMUFFNEExNTQyMjVDOTAw
RkUyNjQ0IC8qIFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5ODMxQUU0OTE1NDIyNUEyMDBGRTI2NDQgLyogUmVmZXJyZXJQb2xp
Y3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
ODQyNjRGMTEyRDUyODBBMDAwRDg4QTQgLyogTGlua0xvYWRlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg0MjY0RUYxMkQ1MjgwQTAwMEQ4
OEE0IC8qIExpbmtMb2FkZXJDbGllbnQuaCAqLzsgfTsKKwkJOTg1NkY4Q0MxNTQ5RTgyNDAwQjA0
RjNBIC8qIFByZXJlbmRlcmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk4NTZGOEM4MTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlci5jcHAg
Ki87IH07CisJCTk4NTZGOENEMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1NkY4QzkxNTQ5RTgy
NDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmggKi87IH07CisJCTk4NTZGOENFMTU0OUU4MjQwMEIw
NEYzQSAvKiBQcmVyZW5kZXJlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5ODU2RjhDQTE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVy
ZXJDbGllbnQuY3BwICovOyB9OworCQk5ODU2RjhDRjE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVu
ZGVyZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk4NTZGOENCMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVudC5oICovOyB9
OworCQk5ODU2RjhEMTE1NDlFODRGMDBCMDRGM0EgLyogUHJlcmVuZGVySGFuZGxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5ODU2RjhEMDE1NDlFODRG
MDBCMDRGM0EgLyogUHJlcmVuZGVySGFuZGxlLmggKi87IH07CiAJCTk4NUJCOTZEMTNBOTQwNTgw
MDdBMEI2OSAvKiBMaW5rUmVsQXR0cmlidXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4NUJCOTZCMTNBOTQwNTgwMDdBMEI2OSAvKiBMaW5rUmVs
QXR0cmlidXRlLmNwcCAqLzsgfTsKIAkJOTg1QkI5NkUxM0E5NDA1ODAwN0EwQjY5IC8qIExpbmtS
ZWxBdHRyaWJ1dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk4NUJCOTZDMTNBOTQwNTgwMDdBMEI2OSAvKiBMaW5rUmVsQXR0cmlidXRlLmggKi87IH07
CiAJCTk4Q0U0MzI2MTI5RTAwQkQwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4Q0U0MzI1MTI5RTAwQkQwMDU4
MjFEQyAvKiBMaW5rTG9hZGVyLmNwcCAqLzsgfTsKQEAgLTEwNjI5LDYgKzEwNjM0LDExIEBACiAJ
CTk3RjhFNjYzMTUxRDRBM0YwMEQyRDE4MSAvKiBXb3JrZXJDb250ZXh0Tm90aWZpY2F0aW9ucy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV29ya2VyQ29udGV4dE5vdGlmaWNhdGlvbnMuaWRs
OyBwYXRoID0gbm90aWZpY2F0aW9ucy9Xb3JrZXJDb250ZXh0Tm90aWZpY2F0aW9ucy5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4MzFBRTQ5MTU0MjI1QTIwMEZFMjY0NCAvKiBS
ZWZlcnJlclBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZlcnJl
clBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5ODQyNjRFRjEyRDUyODBB
MDAwRDg4QTQgLyogTGlua0xvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMaW5rTG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk4NTZGOEM4MTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcmVyZW5kZXJlci5jcHA7IHBhdGggPSBsb2FkZXIv
UHJlcmVuZGVyZXIuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTk4NTZGOEM5
MTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBQcmVyZW5kZXJlci5oOyBwYXRoID0gbG9hZGVyL1ByZXJlbmRlcmVyLmg7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJOTg1NkY4Q0ExNTQ5RTgyNDAwQjA0RjNBIC8q
IFByZXJlbmRlcmVyQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFByZXJlbmRlcmVyQ2xpZW50LmNwcDsgcGF0aCA9IGxvYWRlci9QcmVyZW5kZXJlckNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJOTg1NkY4Q0IxNTQ5RTgyNDAw
QjA0RjNBIC8qIFByZXJlbmRlcmVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFByZXJlbmRlcmVyQ2xpZW50Lmg7IHBhdGggPSBsb2FkZXIvUHJlcmVuZGVyZXJDbGll
bnQuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk5ODU2RjhEMDE1NDlFODRGMDBC
MDRGM0EgLyogUHJlcmVuZGVySGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFByZXJlbmRlckhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5ODVC
Qjk2QjEzQTk0MDU4MDA3QTBCNjkgLyogTGlua1JlbEF0dHJpYnV0ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaW5rUmVsQXR0cmlidXRlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTg1QkI5NkMxM0E5NDA1ODAwN0EwQjY5IC8qIExpbmtSZWxB
dHRyaWJ1dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGlua1JlbEF0dHJp
YnV0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OENFNDMyNTEyOUUwMEJEMDA1
ODIxREMgLyogTGlua0xvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBMaW5rTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTAy
LDYgKzE0MTEyLDEwIEBACiAJCQkJMUE4RjZCQjQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0
aW9uQ2FjaGVHcm91cC5oICovLAogCQkJCTI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBs
aWNhdGlvbkNhY2hlSG9zdC5jcHAgKi8sCiAJCQkJMjRGNTRFQUIxMDFGRTkxNDAwMEFFNzQxIC8q
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi8sCisJCQkJOTg1NkY4QzgxNTQ5RTgyNDAwQjA0RjNB
IC8qIFByZXJlbmRlcmVyLmNwcCAqLywKKwkJCQk5ODU2RjhDOTE1NDlFODI0MDBCMDRGM0EgLyog
UHJlcmVuZGVyZXIuaCAqLywKKwkJCQk5ODU2RjhDQTE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVu
ZGVyZXJDbGllbnQuY3BwICovLAorCQkJCTk4NTZGOENCMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVy
ZW5kZXJlckNsaWVudC5oICovLAogCQkJCTFBOEY2QkI1MERCNTVDREMwMDFEQjc5NCAvKiBBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2UuY3BwICovLAogCQkJCTFBOEY2QkI2MERCNTVDREMwMDFEQjc5
NCAvKiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCAqLywKIAkJCQkxQTJBQUM1NjBEQzJBM0Ix
MDBBMjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwICovLApAQCAtMTQ4ODYsNiAr
MTQ5MDAsNyBAQAogCQkJCTQ5RTkxMkE1MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb24uY3Bw
ICovLAogCQkJCTQ5RTkxMkE2MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb24uaCAqLywKIAkJ
CQk0OUU5MTJBNzBFRkFDOTA2MDA5RDBDQUYgLyogQW5pbWF0aW9uTGlzdC5jcHAgKi8sCisJCQkJ
OTg1NkY4RDAxNTQ5RTg0RjAwQjA0RjNBIC8qIFByZXJlbmRlckhhbmRsZS5oICovLAogCQkJCTQ5
RTkxMkE4MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggKi8sCiAJCQkJMEY1ODBG
QUUxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oICovLAogCQkJCTQ5RTkx
MkE5MEVGQUM5MDYwMDlEMENBRiAvKiBUaW1pbmdGdW5jdGlvbi5oICovLApAQCAtMjQ4MjMsNiAr
MjQ4MzgsOSBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNv
cnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NB
dWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyog
WmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk4NTZGOENEMTU0OUU4MjQwMEIwNEYzQSAv
KiBQcmVyZW5kZXJlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTg1NkY4Q0YxNTQ5RTgyNDAwQjA0
RjNBIC8qIFByZXJlbmRlcmVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5ODU2RjhEMTE1
NDlFODRGMDBCMDRGM0EgLyogUHJlcmVuZGVySGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3
ODM3LDYgKzI3ODU1LDggQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVu
aWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3
OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgw
MDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5ODU2RjhDQzE1NDlF
ODI0MDBCMDRGM0EgLyogUHJlcmVuZGVyZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTg1NkY4
Q0UxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZTJkYWI1NDk4ZmYzMmQ2ZWY1ZDk1ODdmY2E3
MDgzNTEzNmM1NWMzMC4uMDQzMzE1YWVmNTQzOWQyNTAwNTgwNjhmZjc0NDVmYTQ3MzI0ZGExYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMDYsNiArMjA2LDEwIEBACiAjaW5jbHVkZSAi
Tm9kZVJhcmVEYXRhLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyNp
bmNsdWRlICJQcmVyZW5kZXJlci5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1
c2luZyBuYW1lc3BhY2UgV1RGOwogdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7CkBAIC01MDYsNyAr
NTEwLDkgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJs
LCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogICAgIG1fbWFya2VycyA9IGFkb3B0UHRyKG5l
dyBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIpOwogCiAgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRl
ciA9IGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJjZUxvYWRlcih0aGlzKSk7Ci0KKyNpZiBFTkFC
TEUoTElOS19QUkVSRU5ERVIpCisgICAgbV9wcmVyZW5kZXJlciA9IFByZXJlbmRlcmVyOjpjcmVh
dGUodGhpcyk7CisjZW5kaWYKICAgICBtX3Zpc3VhbGx5T3JkZXJlZCA9IGZhbHNlOwogICAgIG1f
YlBhcnNpbmcgPSBmYWxzZTsKICAgICBtX3dlbGxGb3JtZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggZDc3NTkxMGRlMWNmY2Q2Njg4NWVhZjExODFiOGVlNzU5MWEwNjhmYi4uMDZm
M2E4YjUwNzAxZDg3Y2U1YzI2Njk2NmUzODE4NDg1OGViODFkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTE2Niw2ICsxNjYsMTAgQEAgY2xhc3MgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
OwogY2xhc3MgTWljcm9EYXRhSXRlbUxpc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShMSU5LX1BS
RVJFTkRFUikKK2NsYXNzIFByZXJlbmRlcmVyOworI2VuZGlmCisKIHR5cGVkZWYgaW50IEV4Y2Vw
dGlvbkNvZGU7CiAKIGNsYXNzIEZvcm1FbGVtZW50S2V5IHsKQEAgLTExNDYsNiArMTE1MCwxMCBA
QCBwdWJsaWM6CiAKICAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0OwogCisjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQorICAgIFByZXJlbmRlcmVyKiBwcmVyZW5kZXJlcigpIHsgcmV0
dXJuIG1fcHJlcmVuZGVyZXIuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9j
dW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAK
QEAgLTE0ODcsNiArMTQ5NSwxMSBAQCBwcml2YXRlOgogCiAgICAgVGltZXI8RG9jdW1lbnQ+IG1f
cGVuZGluZ1Rhc2tzVGltZXI7CiAgICAgVmVjdG9yPE93blB0cjxUYXNrPiA+IG1fcGVuZGluZ1Rh
c2tzOworCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIE93blB0cjxQcmVyZW5kZXJl
cj4gbV9wcmVyZW5kZXJlcjsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3NjaGVkdWxlZFRhc2tzQXJl
U3VzcGVuZGVkOwogICAgIAogICAgIGJvb2wgbV92aXN1YWxVcGRhdGVzQWxsb3dlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBkYjNhNzQyMmU0NmNiM2Y3MGVk
NjZlZTNhODA5ZThjYzBkNDY5NGZlLi5hOTcwOGYxNDM1NWI0NDkxZDI3NGJhYzU1ZTRjMWM0MTc4
Y2U2ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjUs
NiArMjY1LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnJlbW92ZWRGcm9tKE5vZGUqIGluc2Vy
dGlvblBvaW50KQogICAgIGlmICghaW5zZXJ0aW9uUG9pbnQtPmluRG9jdW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgbV9saW5rTG9hZGVyLnJlbGVhc2VkKCk7CisKICAgICBpZiAobV9p
c0luU2hhZG93VHJlZSkgewogICAgICAgICBBU1NFUlQoIW1fc2hlZXQpOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAppbmRleCA1MjYxZGYy
ZDA4ZmYyNmEwM2E1ZDgxZTI0MzFmYTYzZjRjNjU3MjBjLi44NzA3MWI5OWIyOGQ2NWQyMThmMGFi
ZDJkYjhhNTdjZDAwMWY2YTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtS
ZWxBdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0
ZS5jcHAKQEAgLTQxLDkgKzQxLDExIEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1
dGUoKQogICAgICwgbV9pc0ROU1ByZWZldGNoKGZhbHNlKQogI2lmIEVOQUJMRShMSU5LX1BSRUZF
VENIKQogICAgICwgbV9pc0xpbmtQcmVmZXRjaChmYWxzZSkKLSAgICAsIG1faXNMaW5rUHJlcmVu
ZGVyKGZhbHNlKQogICAgICwgbV9pc0xpbmtTdWJyZXNvdXJjZShmYWxzZSkKICNlbmRpZgorI2lm
IEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICAsIG1faXNMaW5rUHJlcmVuZGVyKGZhbHNlKQor
I2VuZGlmCiB7CiB9CiAKQEAgLTU0LDkgKzU2LDExIEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtS
ZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAgICAgLCBtX2lzRE5TUHJlZmV0Y2goZmFs
c2UpCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgLCBtX2lzTGlua1ByZWZldGNoKGZh
bHNlKQotICAgICwgbV9pc0xpbmtQcmVyZW5kZXIoZmFsc2UpCiAgICAgLCBtX2lzTGlua1N1YnJl
c291cmNlKGZhbHNlKQogI2VuZGlmCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgICwg
bV9pc0xpbmtQcmVyZW5kZXIoZmFsc2UpCisjZW5kaWYKIHsKICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UocmVsLCAic3R5bGVzaGVldCIpKQogICAgICAgICBtX2lzU3R5bGVTaGVldCA9IHRydWU7
CkBAIC05NiwxMSArMTAwLDEzIEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUo
Y29uc3QgU3RyaW5nJiByZWwpCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgICAgICAg
ICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSgqaXQsICJwcmVmZXRjaCIpKQogICAgICAgICAg
ICAgICBtX2lzTGlua1ByZWZldGNoID0gdHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKCppdCwgInByZXJlbmRlciIpKQotICAgICAgICAgICAgICBtX2lzTGlua1By
ZXJlbmRlciA9IHRydWU7CiAgICAgICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSgq
aXQsICJzdWJyZXNvdXJjZSIpKQogICAgICAgICAgICAgICBtX2lzTGlua1N1YnJlc291cmNlID0g
dHJ1ZTsKICNlbmRpZgorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICAgICAgICAgIGVs
c2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwgInByZXJlbmRlciIpKQorICAgICAgICAgICAg
ICBtX2lzTGlua1ByZXJlbmRlciA9IHRydWU7CisjZW5kaWYKICAgICAgICAgfQogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKaW5kZXggMzE3ODE5NGI0OWExYmQw
NWI5YjBjMTQ0NDFlYmY1Zjg2MjU3OGFjYy4uOThkZDQ4MTkxYzlmODM3M2VmMjRiMWQyMjliMTIy
M2UyZGEyNzYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmli
dXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKQEAgLTQ0
LDkgKzQ0LDExIEBAIHB1YmxpYzoKICAgICBib29sIG1faXNETlNQcmVmZXRjaDsKICNpZiBFTkFC
TEUoTElOS19QUkVGRVRDSCkKICAgICBib29sIG1faXNMaW5rUHJlZmV0Y2g7Ci0gICAgYm9vbCBt
X2lzTGlua1ByZXJlbmRlcjsKICAgICBib29sIG1faXNMaW5rU3VicmVzb3VyY2U7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgYm9vbCBtX2lzTGlua1ByZXJlbmRlcjsK
KyNlbmRpZgogCiAgICAgTGlua1JlbEF0dHJpYnV0ZSgpOwogICAgIGV4cGxpY2l0IExpbmtSZWxB
dHRyaWJ1dGUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAK
aW5kZXggZTU2MmQxMDUwNTk3MzgyNTM1MTczMzg0MzE3ZWJhYWRlMzlmZGJkNS4uYWYyNWE4Njgw
M2M0MDc0NzljMTAyNjdhZjI2NjdlYTAyYWU1ZDJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5r
TG9hZGVyLmNwcApAQCAtNDQsNiArNDQsMTEgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKIAorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyNp
bmNsdWRlICJQcmVyZW5kZXJIYW5kbGUuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJlci5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTGlua0xvYWRlcjo6TGlua0xvYWRlcihMaW5r
TG9hZGVyQ2xpZW50KiBjbGllbnQpCkBAIC0xMDMsNyArMTA4LDcgQEAgYm9vbCBMaW5rTG9hZGVy
Ojpsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFN0
cmluZyYgdHkKICAgICB9CiAKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLSAgICBpZiAoKHJl
bEF0dHJpYnV0ZS5tX2lzTGlua1ByZWZldGNoIHx8IHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZXJl
bmRlciB8fCByZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJjZSkgJiYgaHJlZi5pc1ZhbGlk
KCkgJiYgZG9jdW1lbnQtPmZyYW1lKCkpIHsKKyAgICBpZiAoKHJlbEF0dHJpYnV0ZS5tX2lzTGlu
a1ByZWZldGNoIHx8IHJlbEF0dHJpYnV0ZS5tX2lzTGlua1N1YnJlc291cmNlKSAmJiBocmVmLmlz
VmFsaWQoKSAmJiBkb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICBpZiAoIW1fY2xpZW50LT5z
aG91bGRMb2FkTGluaygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBSZXNv
dXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZl
ZDsKQEAgLTExMyw5ICsxMTgsNyBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExp
bmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eQogICAgICAgICBp
ZiAocmVsQXR0cmlidXRlLm1faXNMaW5rU3VicmVzb3VyY2UpIHsKICAgICAgICAgICAgIHByaW9y
aXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c7CiAgICAgICAgICAgICB0eXBlID0gQ2FjaGVk
UmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZTsKLSAgICAgICAgfSBlbHNlIGlmIChyZWxBdHRyaWJ1
dGUubV9pc0xpbmtQcmVyZW5kZXIpCi0gICAgICAgICAgICB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6
OkxpbmtQcmVyZW5kZXI7Ci0KKyAgICAgICAgfQogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbGlu
a1JlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGhyZWYpKTsKICAgICAgICAgCiAgICAgICAg
IGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkgewpAQCAtMTI3LDggKzEzMCwyNiBAQCBib29sIExp
bmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwg
Y29uc3QgU3RyaW5nJiB0eQogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UtPmFkZENs
aWVudCh0aGlzKTsKICAgICB9CiAjZW5kaWYKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikK
KyAgICBpZiAocmVsQXR0cmlidXRlLm1faXNMaW5rUHJlcmVuZGVyKSB7CisgICAgICAgIEFTU0VS
VCghbV9wcmVyZW5kZXJIYW5kbGUpOworICAgICAgICBtX3ByZXJlbmRlckhhbmRsZSA9IGRvY3Vt
ZW50LT5wcmVyZW5kZXJlcigpLT5yZW5kZXIoaHJlZik7CisgICAgfQorI2VuZGlmCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK3ZvaWQgTGlua0xvYWRlcjo6cmVsZWFzZWQoKQoreworICAgIC8vIE9u
bHkgcHJlcmVuZGVycyBuZWVkIHRyZWF0bWVudCBoZXJlOyBvdGhlciBsaW5rcyBlaXRoZXIgdXNl
IHRoZSBDYWNoZWRSZXNvdXJjZSBpbnRlcmZhY2UsIG9yIGFyZSBub3Rpb25hbGx5CisgICAgLy8g
YXRvbWljIChkbnMgcHJlZmV0Y2gpLgorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBp
ZiAobV9wcmVyZW5kZXJIYW5kbGUpIHsKKyAgICAgICAgbV9wcmVyZW5kZXJIYW5kbGUtPmNhbmNl
bCgpOworICAgICAgICBtX3ByZXJlbmRlckhhbmRsZS5jbGVhcigpOworICAgIH0KKyNlbmRpZgor
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaAppbmRleCAxZmJjMThkN2M3NmViNmE2
ZTdhNGVmZDcxOTExMWI2Mzk2MGU3OWRiLi41OGIyOWE3NzRmNzhkMTQ4MGYxODQ2MzUyYWNkZDdk
ODUzYzIwZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKQEAgLTM3LDkgKzM3LDE0
IEBACiAjaW5jbHVkZSAiTGlua0xvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAK
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0
IExpbmtSZWxBdHRyaWJ1dGU7CisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorY2xhc3MgUHJl
cmVuZGVySGFuZGxlOworI2VuZGlmCiAKIC8vIFRoZSBMaW5rTG9hZGVyIGNhbiBsb2FkIGxpbmsg
cmVsIHR5cGVzIGljb24sIGRucy1wcmVmZXRjaCwgc3VicmVzb3VyY2UsIHByZWZldGNoIGFuZCBw
cmVyZW5kZXIuCiBjbGFzcyBMaW5rTG9hZGVyIDogcHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50
IHsKQEAgLTUwLDYgKzU1LDcgQEAgcHVibGljOgogICAgIC8vIGZyb20gQ2FjaGVkUmVzb3VyY2VD
bGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsK
ICAgICAKKyAgICB2b2lkIHJlbGVhc2VkKCk7CiAgICAgYm9vbCBsb2FkTGluayhjb25zdCBMaW5r
UmVsQXR0cmlidXRlJiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHNpemVzLCBj
b25zdCBLVVJMJiwgRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKQEAgLTYxLDYgKzY3LDEwIEBAIHBy
aXZhdGU6CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IG1fY2FjaGVk
TGlua1Jlc291cmNlOwogICAgIFRpbWVyPExpbmtMb2FkZXI+IG1fbGlua0xvYWRUaW1lcjsKICAg
ICBUaW1lcjxMaW5rTG9hZGVyPiBtX2xpbmtMb2FkaW5nRXJyb3JUaW1lcjsKKworI2lmIEVOQUJM
RShMSU5LX1BSRVJFTkRFUikKKyAgICBSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBtX3ByZXJlbmRl
ckhhbmRsZTsKKyNlbmRpZgogfTsKICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9QcmVyZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVy
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc1ZmQ4ZGQ4YjdkNDkyYmM3MDZlODI2NTMzODM1Nzc3ZjZmMThi
ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIu
Y3BwCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
cmVyZW5kZXJlci5oIgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CisjaW5jbHVkZSAiUHJlcmVuZGVySGFuZGxlLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyZXJDbGll
bnQuaCIKKyNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5UG9s
aWN5LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIHN0YXRpYworUGFzc093blB0
cjxQcmVyZW5kZXJlcj4gUHJlcmVuZGVyZXI6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7
CisgICAgUHJlcmVuZGVyZXIqIHByZXJlbmRlcmVyID0gbmV3IFByZXJlbmRlcmVyKGRvY3VtZW50
KTsKKyAgICBwcmVyZW5kZXJlci0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGFkb3B0
UHRyKHByZXJlbmRlcmVyKTsKK30KKworUHJlcmVuZGVyZXI6OlByZXJlbmRlcmVyKERvY3VtZW50
KiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCwgdGhpcykKKyAgICAs
IG1fY2xpZW50KDApCit7Cit9CisKK1ByZXJlbmRlcmVyOjp+UHJlcmVuZGVyZXIoKQoreworfQor
CitQYXNzUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gUHJlcmVuZGVyZXI6OnJlbmRlcihjb25zdCBL
VVJMJiB1cmwpCit7CisgICAgLy8gUHJlcmVuZGVycyBhcmUgdW5saWtlIHJlcXVlc3RzIGluIG1v
c3Qgd2F5cyAoZm9yIGluc3RhbmNlLCB0aGV5IHBhc3MgZG93biBmcmFnbWVudHMsIGFuZCB0aGV5
IGRvbid0IHJldHVybiBkYXRhKSwKKyAgICAvLyBidXQgdGhleSBkbyBoYXZlIHJlZmVycmVycy4K
KyAgICBjb25zdCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSA9IGRvY3VtZW50KCktPnJl
ZmVycmVyUG9saWN5KCk7CisgICAgY29uc3QgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xp
Y3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIocmVmZXJyZXJQb2xpY3ksIHVybCwgZG9jdW1lbnQo
KS0+ZnJhbWUoKS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSk7CisKKyAgICBSZWZQdHI8
UHJlcmVuZGVySGFuZGxlPiBwcmVyZW5kZXJIYW5kbGUgPSBQcmVyZW5kZXJIYW5kbGU6OmNyZWF0
ZSh1cmwsIHJlZmVycmVyLCByZWZlcnJlclBvbGljeSk7CisKKyAgICBjbGllbnQoKS0+d2lsbEFk
ZFByZXJlbmRlcihwcmVyZW5kZXJIYW5kbGUuZ2V0KCkpOworICAgIHByZXJlbmRlckhhbmRsZS0+
YWRkKCk7CisKKyAgICBtX2FjdGl2ZUhhbmRsZXMuYXBwZW5kKHByZXJlbmRlckhhbmRsZSk7Cisg
ICAgcmV0dXJuIHByZXJlbmRlckhhbmRsZTsKK30KKwordm9pZCBQcmVyZW5kZXJlcjo6c3RvcCgp
Cit7CisgICAgd2hpbGUgKCFtX2FjdGl2ZUhhbmRsZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJl
ZlB0cjxQcmVyZW5kZXJIYW5kbGU+IGhhbmRsZSA9IG1fYWN0aXZlSGFuZGxlc1swXS5yZWxlYXNl
KCk7CisgICAgICAgIG1fYWN0aXZlSGFuZGxlcy5yZW1vdmUoMCk7CisgICAgICAgIGhhbmRsZS0+
YWJhbmRvbigpOworICAgIH0KKyAgICB3aGlsZSAoIW1fc3VzcGVuZGVkSGFuZGxlcy5pc0VtcHR5
KCkpIHsKKyAgICAgICAgUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gaGFuZGxlID0gbV9zdXNwZW5k
ZWRIYW5kbGVzWzBdLnJlbGVhc2UoKTsKKyAgICAgICAgbV9zdXNwZW5kZWRIYW5kbGVzLnJlbW92
ZSgwKTsKKyAgICAgICAgaGFuZGxlLT5hYmFuZG9uKCk7CisgICAgfQorfQorCit2b2lkIFByZXJl
bmRlcmVyOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQoreworICAgIGlmIChy
ZWFzb24gPT0gRG9jdW1lbnRXaWxsQmVjb21lSW5hY3RpdmUgfHwgcmVhc29uID09IFBhZ2VXaWxs
QmVTdXNwZW5kZWQpIHsKKyAgICAgICAgd2hpbGUgKCFtX2FjdGl2ZUhhbmRsZXMuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICBSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBoYW5kbGUgPSBtX2FjdGl2
ZUhhbmRsZXNbMF0ucmVsZWFzZSgpOworICAgICAgICAgICAgbV9hY3RpdmVIYW5kbGVzLnJlbW92
ZSgwKTsKKyAgICAgICAgICAgIGhhbmRsZS0+c3VzcGVuZCgpOworICAgICAgICAgICAgbV9zdXNw
ZW5kZWRIYW5kbGVzLmFwcGVuZChoYW5kbGUpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lk
IFByZXJlbmRlcmVyOjpyZXN1bWUoKQoreworICAgIHdoaWxlICghbV9zdXNwZW5kZWRIYW5kbGVz
LmlzRW1wdHkoKSkgeworICAgICAgICBSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBoYW5kbGUgPSBt
X3N1c3BlbmRlZEhhbmRsZXNbMF0ucmVsZWFzZSgpOworICAgICAgICBtX3N1c3BlbmRlZEhhbmRs
ZXMucmVtb3ZlKDApOworICAgICAgICBoYW5kbGUtPnJlc3VtZSgpOworICAgICAgICBtX2FjdGl2
ZUhhbmRsZXMuYXBwZW5kKGhhbmRsZSk7CisgICAgfQorfQorCitEb2N1bWVudCogUHJlcmVuZGVy
ZXI6OmRvY3VtZW50KCkKK3sKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5p
c0RvY3VtZW50KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKK1ByZXJlbmRlcmVyQ2xpZW50KiBQcmVyZW5kZXJlcjo6
Y2xpZW50KCkKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICBtX2NsaWVudCA9IFByZXJl
bmRlcmVyQ2xpZW50Ojpmcm9tKGRvY3VtZW50KCktPnBhZ2UoKSk7CisgICAgcmV0dXJuIG1fY2xp
ZW50OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9QcmVyZW5kZXJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NDgxZTY5NDI4ZmJmNzZhMTcxZGZm
OTE2NWQ2YzQyYjA2YTliOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJlcmVuZGVyZXIuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgUHJlcmVuZGVyZXJf
aAorI2RlZmluZSBQcmVyZW5kZXJlcl9oCisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisK
KyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1NpbmdseUxpbmtlZExpc3QuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQcmVyZW5kZXJIYW5kbGU7Citj
bGFzcyBQcmVyZW5kZXJlckNsaWVudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFByZXJlbmRlcmVy
IDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJl
cmVuZGVyZXIpOworcHVibGljOgorICAgIHZpcnR1YWwgflByZXJlbmRlcmVyKCk7CisKKyAgICBQ
YXNzUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gcmVuZGVyKGNvbnN0IEtVUkwmKTsKKworICAgIHN0
YXRpYyBQYXNzT3duUHRyPFByZXJlbmRlcmVyPiBjcmVhdGUoRG9jdW1lbnQqKTsKKworcHJpdmF0
ZToKKyAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiA+IEhhbmRsZVZl
Y3RvcjsKKyAgICB0eXBlZGVmIFZlY3RvcjxLVVJMPiBLVVJMVmVjdG9yOworCisgICAgUHJlcmVu
ZGVyZXIoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIE9WRVJSSURFOworCisgICAgRG9jdW1lbnQq
IGRvY3VtZW50KCk7CisgICAgUHJlcmVuZGVyZXJDbGllbnQqIGNsaWVudCgpOworCisgICAgUHJl
cmVuZGVyZXJDbGllbnQqIG1fY2xpZW50OworICAgIEhhbmRsZVZlY3RvciBtX2FjdGl2ZUhhbmRs
ZXM7CisgICAgSGFuZGxlVmVjdG9yIG1fc3VzcGVuZGVkSGFuZGxlczsKK307CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2VuZGlmIC8vIFByZXJlbmRlcmVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc4ZjI0NzBlMjYxNjRhNGRkMTU5MzU5NWM2M2YxMjcxYWZmZTZjMWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwCkBAIC0wLDAg
KzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXJlbmRlcmVyQ2xp
ZW50LmgiCisKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIK
KyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworI2lmIEVOQUJMRShMSU5LX1BS
RVJFTkRFUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBzdGF0aWMKK2NvbnN0IEF0b21p
Y1N0cmluZyYgUHJlcmVuZGVyZXJDbGllbnQ6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJQcmVyZW5kZXJlckNsaWVudCIp
KTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworLy8gc3RhdGljCitQcmVyZW5kZXJlckNsaWVudCog
UHJlcmVuZGVyZXJDbGllbnQ6OmZyb20oUGFnZSogcGFnZSkKK3sKKyAgICBQcmVyZW5kZXJlckNs
aWVudCogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PFByZXJlbmRlcmVyQ2xpZW50Kj4oU3VwcGxl
bWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7CisgICAgQVNTRVJUKHN1
cHBsZW1lbnQpOworICAgIHJldHVybiBzdXBwbGVtZW50OworfQorCit2b2lkIHByb3ZpZGVQcmVy
ZW5kZXJlckNsaWVudFRvKFBhZ2UqIHBhZ2UsIFByZXJlbmRlcmVyQ2xpZW50KiBjbGllbnQpCit7
CisgICAgUHJlcmVuZGVyZXJDbGllbnQ6OnByb3ZpZGVUbyhwYWdlLCBQcmVyZW5kZXJlckNsaWVu
dDo6c3VwcGxlbWVudE5hbWUoKSwgYWRvcHRQdHIoY2xpZW50KSk7Cit9CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVh
NGNlOTQ2ZjYzODcxODA2NzgyNmM1ZDdlMDVhYWY3ZjRjZjE1ZjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaApAQCAtMCwwICsxLDY1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgor
ICovCisKKyNpZm5kZWYgUHJlcmVuZGVyZXJDbGllbnRfaAorI2RlZmluZSBQcmVyZW5kZXJlckNs
aWVudF9oCisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNpbmNsdWRlICJTdXBwbGVt
ZW50YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworY2xhc3MgUHJlcmVuZGVySGFu
ZGxlOworCitjbGFzcyBQcmVyZW5kZXJlckNsaWVudCA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QcmVyZW5kZXJlckNsaWVudCgpIHsgfQorCisgICAg
dmlydHVhbCB2b2lkIHdpbGxBZGRQcmVyZW5kZXIoUHJlcmVuZGVySGFuZGxlKikgPSAwOworCisg
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBzdGF0
aWMgUHJlcmVuZGVyZXJDbGllbnQqIGZyb20oUGFnZSopOworCitwcm90ZWN0ZWQ6CisgICAgUHJl
cmVuZGVyZXJDbGllbnQoKSB7IH0KK307CisKK3ZvaWQgcHJvdmlkZVByZXJlbmRlcmVyQ2xpZW50
VG8oUGFnZSosIFByZXJlbmRlcmVyQ2xpZW50Kik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRUQoTElOS19QUkVSRU5ERVIpCisKKyNlbmRpZiAvLyBQcmVyZW5k
ZXJlckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcAppbmRleCAwMzY4YTcyNDUyNWZhZmU2NDkwNTg3YmViMmI0ZjZlNmU5ZmNjNmU2Li5j
OTVhYmVkYjRjOTA4YzU5N2RlNDM1ZTJkNTM4OGRiNDIxNDQzZWFiIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTczLDggKzczLDYgQEAg
c3RhdGljIFJlc291cmNlTG9hZFByaW9yaXR5IGRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlw
ZShDYWNoZWRSZXNvdXJjZTo6VHlwZQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6CiAgICAgICAgICAgICByZXR1cm4g
UmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OwotICAgICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpMaW5rUHJlcmVuZGVyOgotICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5
VmVyeUxvdzsKICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgog
ICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKICNlbmRpZgpA
QCAtMTE0LDggKzExMiw2IEBAIHN0YXRpYyBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgY2Fj
aGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBlKENhY2hlZFJlc291cmNlCiAjaWYgRU5BQkxFKExJ
TktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgogICAg
ICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZWZldGNoOwotICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVJl
cXVlc3Q6OlRhcmdldElzUHJlcmVuZGVyOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtT
dWJyZXNvdXJjZToKICAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJy
ZXNvdXJjZTsKICNlbmRpZgpAQCAtMjIwLDcgKzIxNiw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6
OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyLCBjb25zdCBS
ZXNvCiAgICAgfQogCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi0gICAgaWYgKHR5cGUoKSA9
PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoIHx8IHR5cGUoKSA9PSBDYWNoZWRSZXNvdXJj
ZTo6TGlua1ByZXJlbmRlciB8fCB0eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNv
dXJjZSkKKyAgICBpZiAodHlwZSgpID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwg
dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UpCiAgICAgICAgIG1fcmVz
b3VyY2VSZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgiUHVycG9zZSIsICJwcmVmZXRjaCIpOwog
I2VuZGlmCiAgICAgbV9yZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkobG9hZFByaW9yaXR5KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBj
MDdiMjMxZDRkNTk4NTc1MWNjY2EwNjIxZDM3NTdhOTU2NmI0Njk4Li45MTFmODUwZTg4NWNjZmY3
ZjFkMjRjYjY4YzU2ZTQwZTVmYWYyZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtNzQsNyArNzQsNiBAQCBwdWJsaWM6CiAjZW5kaWYKICNp
ZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICAgICAgLCBMaW5rUHJlZmV0Y2gKLSAgICAgICAg
LCBMaW5rUHJlcmVuZGVyCiAgICAgICAgICwgTGlua1N1YnJlc291cmNlCiAjZW5kaWYKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCkBAIC0xNTAsNyArMTQ5LDYgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gZmFsc2UKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICAgICAgICAgIHx8IHR5
cGUoKSA9PSBMaW5rUHJlZmV0Y2gKLSAgICAgICAgICAgIHx8IHR5cGUoKSA9PSBMaW5rUHJlcmVu
ZGVyCiAgICAgICAgICAgICB8fCB0eXBlKCkgPT0gTGlua1N1YnJlc291cmNlCiAjZW5kaWYKICAg
ICAgICAgICAgIHx8IHR5cGUoKSA9PSBSYXdSZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDg0NmYzYTcz
OWY5NWQzMjAwOThiMjljMzBkYTM4NGM3OTg2ZDFhMjIuLjFhNWE2ZmJkMjUxZmM0ZDY0NTMzM2Jm
MDgxODEzOTRjZjVkZmQxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtODgsOCArODgsNiBAQCBzdGF0aWMgQ2Fj
aGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJl
c291cmNlUmVxdWVzdAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSZXNvdXJj
ZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoKTsKLSAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291
cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyKTsKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVk
UmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7CiAjZW5k
aWYKQEAgLTI0MCw3ICsyMzgsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChSZXNvdXJjZVJlcXVlc3QmIHJlcQogQ2FjaGVkUmVz
b3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJl
c291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwotICAgIEFTU0VSVCh0
eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNv
dXJjZTo6TGlua1ByZXJlbmRlciB8fCB0eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVz
b3VyY2UpOworICAgIEFTU0VSVCh0eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gg
fHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsKICAgICByZXR1cm4g
cmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVz
b3VyY2VPcHRpb25zKCksIHByaW9yaXR5KTsKIH0KICNlbmRpZgpAQCAtMjg2LDcgKzI4NCw2IEBA
IGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJl
c291cmNlOjpUeXBlIHR5cGUsIGNvbnN0CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVz
b3VyY2U6CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6TGlua1ByZWZldGNoOgotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICAvLyBQ
cmVmZXRjaCBjYW5ub3QgYWZmZWN0IHRoZSBjdXJyZW50IGRvY3VtZW50LgogI2VuZGlmCkBAIC0z
MTUsNyArMzEyLDYgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpSYXdSZXNvdXJjZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6
TGlua1ByZXJlbmRlcjoKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6
CiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC0zODUsNyArMzgxLDYgQEAgYm9v
bCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJj
ZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpM
aW5rUHJlZmV0Y2g6Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAjZW5kaWYKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVyZW5kZXJIYW5k
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA0ZmRhZmNmNDBmNGVhZmU4NDBiMDhiZjk2MGU3MTQyM2RmNzJhN2EKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaApAQCAtMCww
ICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKgorICovCisKKyNpZm5kZWYgUHJlcmVuZGVySGFuZGxlX2gKKyNkZWZpbmUgUHJlcmVuZGVy
SGFuZGxlX2gKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2luY2x1ZGUgIlJlZmVy
cmVyUG9saWN5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBLVVJMOworY2xh
c3MgUHJlcmVuZGVyOworCitjbGFzcyBQcmVyZW5kZXJIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxQcmVyZW5kZXJIYW5kbGU+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQcmVyZW5kZXJI
YW5kbGUpOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByZXJlbmRlckhhbmRsZT4g
Y3JlYXRlKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGlj
eSk7CisgICAgflByZXJlbmRlckhhbmRsZSgpOworCisgICAgUHJlcmVuZGVyKiBwcmVyZW5kZXIo
KTsKKworICAgIC8vIEZJWE1FOiBvbmUgZGF5IHRoZXJlIHdpbGwgYmUgZXZlbnRzIGhlcmUsIGFu
ZCB3ZSB3aWxsIGJlIGEgUHJlcmVuZGVyQ2xpZW50LgorCisgICAgLy8gQSBwcmVyZW5kZXIgbGlu
ayBlbGVtZW50IGlzIGFkZGVkIHdoZW4gaXQgaXMgaW5zZXJ0ZWQgaW50byBhIGRvY3VtZW50Lgor
ICAgIHZvaWQgYWRkKCk7CisKKyAgICAvLyBBIHByZXJlbmRlciBpcyBhYmFuZG9uZWQgd2hlbiBp
dCdzIG5hdmlnYXRlZCBhd2F5IGZyb20uIFRoaXMgaXMgaXMgYSB3ZWFrZXIgc2lnbmFsCisgICAg
Ly8gdGhhbiBjYW5jZWwoKSwgc2luY2UgdGhlIGxhdW5jaGVyIGhhc24ndCBpbmRpY2F0ZWQgdGhh
dCB0aGUgcHJlcmVuZGVyIGlzbid0IHdhbnRlZCwKKyAgICAvLyBhbmQgd2UgbWF5IGVuZCB1cCB1
c2luZyBpdCBhZnRlciwgZm9yIGluc3RhbmNlLCBhIHNob3J0IHJlZGlyZWN0IGNoYWluLgorICAg
IHZvaWQgYWJhbmRvbigpOworCisgICAgLy8gQSBwcmVyZW5kZXIgaXMgY2FuY2VsZWQgd2hlbiBp
dCBpcyByZW1vdmVkIGZyb20gYSBkb2N1bWVudC4KKyAgICB2b2lkIGNhbmNlbCgpOworCisgICAg
Ly8gQSBwcmVyZW5kZXIgaXMgc3VzcGVuZGVkIGFsb25nIHdpdGggdGhlIERPTSBjb250YWluaW5n
IGl0cyBsaW5rbG9hZGVyICYgcHJlcmVuZGVyZXIuCisgICAgdm9pZCBzdXNwZW5kKCk7CisgICAg
dm9pZCByZXN1bWUoKTsKKworICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0OworICAgIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIoKSBjb25zdDsKKyAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBv
bGljeSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFByZXJlbmRlckhhbmRsZShjb25zdCBLVVJM
JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgUmVmZXJyZXJQb2xpY3kpOworICAgIFJlZlB0cjxQ
cmVyZW5kZXI+IG1fcHJlcmVuZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjZW5kaWYgLy8gUHJlcmVuZGVySGFu
ZGxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJl
bmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQxYjljZGE5NjVkOGExZDk2MTMzMjczZmM0ODMwMmVkODA1NWM5ZGEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5k
ZXIuY3BwCkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQcmVyZW5kZXIuaCIKKworI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUg
PHB1YmxpYy9XZWJQcmVyZW5kZXIuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUHJlcmVuZGVyaW5n
UGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUmVmZXJyZXJQb2xpY3kuaD4KKyNpbmNs
dWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlVSTC5oPgorCisj
aWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1ByZXJl
bmRlcjo6UHJlcmVuZGVyKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
UmVmZXJyZXJQb2xpY3kgcG9saWN5KQorICAgIDogbV91cmwodXJsKQorICAgICwgbV9yZWZlcnJl
cihyZWZlcnJlcikKKyAgICAsIG1fcmVmZXJyZXJQb2xpY3kocG9saWN5KQorICAgICwgbV9wbGF0
Zm9ybSgwKQorI2lmbmRlZiBOREVCVUcKKyAgICAsIG1fc3RhdGUoSW5hY3RpdmUpCisjZW5kaWYK
K3sKK30KKworUHJlcmVuZGVyOjp+UHJlcmVuZGVyKCkKK3sKK30KKwordm9pZCBQcmVyZW5kZXI6
OnNldFN0YXRlKFN0YXRlIHN0YXRlKQoreworI2lmZGVmIE5ERUJVRworICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7CisjZWxzZQorICAgIG1fc3RhdGUgPSBzdGF0ZTsKKyNlbmRpZgorfQorCit2b2lk
IFByZXJlbmRlcjo6YWRkKCkKK3sKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbmFjdGl2ZSk7Cisg
ICAgaWYgKCFtX3BsYXRmb3JtKQorICAgICAgICBtX3BsYXRmb3JtID0gV2ViS2l0OjpXZWJQcmVy
ZW5kZXJpbmdQbGF0Zm9ybTo6Z2V0UGxhdGZvcm0oKTsKKyAgICBpZiAoIW1fcGxhdGZvcm0pCisg
ICAgICAgIHJldHVybjsKKyAgICBXZWJLaXQ6OldlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIodGhp
cyk7CisgICAgbV9wbGF0Zm9ybS0+YWRkKHdlYlByZXJlbmRlcik7CisgICAgc2V0U3RhdGUoQWN0
aXZlKTsKK30KKwordm9pZCBQcmVyZW5kZXI6OmNhbmNlbCgpCit7CisgICAgaWYgKCFtX3BsYXRm
b3JtKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gQWN0aXZlKTsKKyAg
ICBXZWJLaXQ6OldlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIodGhpcyk7CisgICAgbV9wbGF0Zm9y
bS0+Y2FuY2VsKHdlYlByZXJlbmRlcik7CisgICAgc2V0U3RhdGUoSW5hY3RpdmUpOworfQorCit2
b2lkIFByZXJlbmRlcjo6YWJhbmRvbigpCit7CisgICAgaWYgKCFtX3BsYXRmb3JtKQorICAgICAg
ICByZXR1cm47CisgICAgLy8gRklYTUU6IEFzc2VydCBvbiB0aGUgc3RhdGUgYXMgSW5hY3RpdmUg
aGVyZS4gSXQgaXMgY3VycmVudGx5IGNvbW1vbiB0byBjYWxsIGFiYW5kb24oKSBvbiBhbiBJbmFj
dGl2ZQorICAgIC8vIHByZXJlbmRlciwgYXMgdGhlIFByZXJlbmRlcmVyIGRvZXNuJ3Qga2VlcCB0
cmFjayBvZiB3aGljaCBwcmVyZW5kZXJzIGFyZSBhY3RpdmUsIGFuZCBzbyBhbnkgcGFnZSB0aGF0
CisgICAgLy8gZXZlciBoYWQgYSBub3ctY2FuY2VsZWQgUHJlcmVuZGVyIHdpbGwgZ2V0IHRoaXMg
Ym9ndXMgc3RvcCgpIGNhbGwuCisgICAgV2ViS2l0OjpXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVy
KHRoaXMpOworICAgIG1fcGxhdGZvcm0tPmFiYW5kb24od2ViUHJlcmVuZGVyKTsKKyAgICBzZXRT
dGF0ZShJbmFjdGl2ZSk7Cit9CisKK3ZvaWQgUHJlcmVuZGVyOjpzdXNwZW5kKCkKK3sKKyAgICBh
YmFuZG9uKCk7Cit9CisKK3ZvaWQgUHJlcmVuZGVyOjpyZXN1bWUoKQoreworICAgIGFkZCgpOwor
fQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NDg4ZTdjNjYw
MTJkOTljNDA5ZDAxOTY5N2NjNGZhZGQzZWJlZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXIuaApAQCAtMCwwICsxLDEwMiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLwor
CisjaWZuZGVmIFByZXJlbmRlcl9oCisjZGVmaW5lIFByZXJlbmRlcl9oCisKKyNpbmNsdWRlICJL
VVJMLmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2Vi
U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKK25hbWVzcGFjZSBXZWJLaXQg
eworY2xhc3MgV2ViUHJlcmVuZGVyaW5nUGxhdGZvcm07Cit9CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUHJlcmVuZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8UHJlcmVuZGVyPiB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJlcmVuZGVyKTsKK3B1YmxpYzoKKyAgICBjbGFzcyBF
eHRyYURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxFeHRyYURhdGE+IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsgfQorICAgIH07CisKKyAgICBQcmVyZW5kZXIo
Y29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5KTsKKyAg
ICB+UHJlcmVuZGVyKCk7CisKKyAgICB2b2lkIGFkZCgpOworICAgIHZvaWQgY2FuY2VsKCk7Cisg
ICAgdm9pZCBhYmFuZG9uKCk7CisgICAgdm9pZCBzdXNwZW5kKCk7CisgICAgdm9pZCByZXN1bWUo
KTsKKworICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CisgICAg
Y29uc3QgU3RyaW5nJiByZWZlcnJlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXI7IH0KKyAg
ICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJy
ZXJQb2xpY3k7IH0KKworICAgIHZvaWQgc2V0RXh0cmFEYXRhKFBhc3NSZWZQdHI8RXh0cmFEYXRh
PiBleHRyYURhdGEpIHsgbV9leHRyYURhdGEgPSBleHRyYURhdGE7IH0KKyAgICBFeHRyYURhdGEq
IGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisKK3ByaXZhdGU6Cisg
ICAgZW51bSBTdGF0ZSB7CisgICAgICAgIEluYWN0aXZlLAorICAgICAgICBBY3RpdmUsCisgICAg
fTsKKworICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUpOworCisgICAgY29uc3QgS1VSTCBtX3VybDsK
KyAgICBjb25zdCBTdHJpbmcgbV9yZWZlcnJlcjsKKyAgICBjb25zdCBSZWZlcnJlclBvbGljeSBt
X3JlZmVycmVyUG9saWN5OworCisgICAgUmVmUHRyPEV4dHJhRGF0YT4gbV9leHRyYURhdGE7CisK
KyAgICBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1BsYXRmb3JtKiBtX3BsYXRmb3JtOworCisjaWZu
ZGVmIE5ERUJVRworICAgIFN0YXRlIG1fc3RhdGU7CisjZW5kaWYKK307CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2VuZGlmIC8vIFByZXJlbmRlcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVySGFuZGxlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lZGYyOWYwYzZiNmE3NDZkOThiOWMxOWIxODk3OGM0NWYwOWI0OWJjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVu
ZGVySGFuZGxlLmNwcApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUHJlcmVuZGVySGFuZGxlLmgiCisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIp
CisKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisjaW5jbHVkZSAi
UmVmZXJyZXJQb2xpY3kuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQ
dHI8UHJlcmVuZGVySGFuZGxlPiBQcmVyZW5kZXJIYW5kbGU6OmNyZWF0ZShjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5IHBvbGljeSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFByZXJlbmRlckhhbmRsZSh1cmwsIHJlZmVycmVyLCBwb2xp
Y3kpKTsKK30KKworUHJlcmVuZGVySGFuZGxlOjpQcmVyZW5kZXJIYW5kbGUoY29uc3QgS1VSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGljeSBwb2xpY3kpCisgICAg
ICAgIDogbV9wcmVyZW5kZXIoYWRvcHRSZWYobmV3IFByZXJlbmRlcih1cmwsIHJlZmVycmVyLCBw
b2xpY3kpKSkKK3sKK30KKworUHJlcmVuZGVySGFuZGxlOjp+UHJlcmVuZGVySGFuZGxlKCkKK3sK
K30KKworUHJlcmVuZGVyKiBQcmVyZW5kZXJIYW5kbGU6OnByZXJlbmRlcigpCit7CisgICAgcmV0
dXJuIG1fcHJlcmVuZGVyLmdldCgpOworfQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6YWRkKCkK
K3sKKyAgICBwcmVyZW5kZXIoKS0+YWRkKCk7Cit9CisKK3ZvaWQgUHJlcmVuZGVySGFuZGxlOjpj
YW5jZWwoKQoreworICAgIHByZXJlbmRlcigpLT5jYW5jZWwoKTsKK30KKwordm9pZCBQcmVyZW5k
ZXJIYW5kbGU6OmFiYW5kb24oKQoreworICAgIHByZXJlbmRlcigpLT5hYmFuZG9uKCk7Cit9CisK
K3ZvaWQgUHJlcmVuZGVySGFuZGxlOjpzdXNwZW5kKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+c3Vz
cGVuZCgpOworfQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6cmVzdW1lKCkKK3sKKyAgICBwcmVy
ZW5kZXIoKS0+cmVzdW1lKCk7Cit9CisKK2NvbnN0IEtVUkwmIFByZXJlbmRlckhhbmRsZTo6dXJs
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVyZW5kZXItPnVybCgpOworfQorCitjb25zdCBT
dHJpbmcmIFByZXJlbmRlckhhbmRsZTo6cmVmZXJyZXIoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ByZXJlbmRlci0+dXJsKCk7Cit9CisKK1JlZmVycmVyUG9saWN5IFByZXJlbmRlckhhbmRsZTo6
cmVmZXJyZXJQb2xpY3koKSBjb25zdAoreworICAgIHJldHVybiBtX3ByZXJlbmRlci0+cmVmZXJy
ZXJQb2xpY3koKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVOREVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQ
cmVyZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9X
ZWJQcmVyZW5kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhN2JhZjU1NzRhMDJiZjU0ZjAyOGEyMDU5NTI0
MzM0ZjNhYzlhMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L1dlYlByZXJlbmRlci5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8cHVibGljL1dlYlByZXJlbmRlci5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNpbmNs
dWRlICJQcmVyZW5kZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSB7CisK
K2NsYXNzIEV4dHJhRGF0YUNvbnRhaW5lciA6IHB1YmxpYyBXZWJDb3JlOjpQcmVyZW5kZXI6OkV4
dHJhRGF0YSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXh0cmFEYXRhQ29udGFp
bmVyPiBjcmVhdGUoV2ViUHJlcmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IEV4dHJhRGF0YUNvbnRhaW5lcihleHRyYURhdGEpKTsgfQorCisgICAgdmly
dHVhbCB+RXh0cmFEYXRhQ29udGFpbmVyKCkgeyB9CisKKyAgICBXZWJQcmVyZW5kZXI6OkV4dHJh
RGF0YSogZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRyYURhdGEuZ2V0KCk7IH0KKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBFeHRyYURhdGFDb250YWluZXIoV2ViUHJlcmVuZGVyOjpF
eHRyYURhdGEqIGV4dHJhRGF0YSkKKyAgICAgICAgICAgIDogbV9leHRyYURhdGEoYWRvcHRQdHIo
ZXh0cmFEYXRhKSkKKyAgICB7CisgICAgfQorCisgICAgT3duUHRyPFdlYlByZXJlbmRlcjo6RXh0
cmFEYXRhPiBtX2V4dHJhRGF0YTsKK307CisKK30gLy8gYW5vbiBuYW1lc3BhY2UKKworV2ViUHJl
cmVuZGVyOjpXZWJQcmVyZW5kZXIoUGFzc1JlZlB0cjxXZWJDb3JlOjpQcmVyZW5kZXI+IHByZXJl
bmRlcikKKyAgICA6IG1fcHJpdmF0ZShwcmVyZW5kZXIpCit7Cit9CisKK1dlYlByZXJlbmRlcjo6
fldlYlByZXJlbmRlcigpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK1dlYlVSTCBX
ZWJQcmVyZW5kZXI6OnVybCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlVSTChtX3ByaXZhdGUt
PnVybCgpKTsKK30KKworV2ViU3RyaW5nIFdlYlByZXJlbmRlcjo6cmVmZXJyZXIoKSBjb25zdAor
eworICAgIHJldHVybiBtX3ByaXZhdGUtPnJlZmVycmVyKCk7Cit9CisKK1dlYlJlZmVycmVyUG9s
aWN5IFdlYlByZXJlbmRlcjo6cmVmZXJyZXJQb2xpY3koKSBjb25zdAoreworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJSZWZlcnJlclBvbGljeT4obV9wcml2YXRlLT5yZWZlcnJlclBvbGljeSgp
KTsKK30KKwordm9pZCBXZWJQcmVyZW5kZXI6OnNldEV4dHJhRGF0YShXZWJQcmVyZW5kZXI6OkV4
dHJhRGF0YSogZXh0cmFEYXRhKQoreworICAgIG1fcHJpdmF0ZS0+c2V0RXh0cmFEYXRhKEV4dHJh
RGF0YUNvbnRhaW5lcjo6Y3JlYXRlKGV4dHJhRGF0YSkpOworfQorCitjb25zdCBXZWJQcmVyZW5k
ZXI6OkV4dHJhRGF0YSogV2ViUHJlcmVuZGVyOjpleHRyYURhdGEoKSBjb25zdAoreworICAgIFJl
ZlB0cjxXZWJDb3JlOjpQcmVyZW5kZXI6OkV4dHJhRGF0YT4gd2ViY29yZUV4dHJhRGF0YSA9IG1f
cHJpdmF0ZS0+ZXh0cmFEYXRhKCk7CisgICAgaWYgKCF3ZWJjb3JlRXh0cmFEYXRhKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXh0cmFEYXRhQ29udGFpbmVyKj4o
d2ViY29yZUV4dHJhRGF0YS5nZXQoKSktPmV4dHJhRGF0YSgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRUQoTElOS19QUkVSRU5ERVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3Vy
Y2VSZXF1ZXN0LmgKaW5kZXggZmU5ZGU2NjQzNzA0NjdmN2MxYTI1YjBmNGQzYTViMjFkYjI2OWEz
Ny4uNTAxNTlkZjU3Nzg5YTE4NjcwMDczY2E3OGJmNjcwMmZhODI0ZmQ3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNv
dXJjZVJlcXVlc3QuaApAQCAtNDUsNyArNDUsNiBAQCBwdWJsaWM6CiAgICAgICAgIFRhcmdldElz
V29ya2VyLAogICAgICAgICBUYXJnZXRJc1NoYXJlZFdvcmtlciwKICAgICAgICAgVGFyZ2V0SXNQ
cmVmZXRjaCwKLSAgICAgICAgVGFyZ2V0SXNQcmVyZW5kZXIsCiAgICAgICAgIFRhcmdldElzRmF2
aWNvbiwKICAgICAgICAgVGFyZ2V0SXNYSFIsCiAgICAgICAgIFRhcmdldElzVGV4dFRyYWNrLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jl
c291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4IDlhMzUw
YzFjZWIwYjhiNGUxMDExNDUxOGY1NGYyMGIxMTc4NWQ3NDQuLjY4NDJhNTg3NWEwMmVlMDE1YzFh
NGIzMTMxOGIxMjU3ZjJhYmQ0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0
QmxhY2tCZXJyeS5jcHAKQEAgLTg2LDggKzg2LDYgQEAgc3RhdGljIGlubGluZSBOZXR3b3JrUmVx
dWVzdDo6VGFyZ2V0VHlwZSBwbGF0Zm9ybVRhcmdldFR5cGVGb3JSZXF1ZXN0KGNvbnN0IFJlc28K
ICAgICAgICAgcmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpUYXJnZXRJc0ltYWdlOwogICAgIGNhc2Ug
UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZWZldGNoOgogICAgICAgICByZXR1cm4gTmV0d29y
a1JlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7Ci0gICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6
OlRhcmdldElzUHJlcmVuZGVyOgotICAgICAgICByZXR1cm4gTmV0d29ya1JlcXVlc3Q6OlRhcmdl
dElzU3VicmVzb3VyY2U7CiAgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzWEhSOgog
ICAgICAgICByZXR1cm4gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CiAgICAg
Y2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzVGV4dFRyYWNrOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0
LmgKaW5kZXggZmNlMWViZmQwNzIzOTk0NDM0MTk2MzNkZDFkNzEwOWVlODcyMzQzMi4uN2VhNjFh
ODg4YmM5ZmI4YWViYjI0MTNiODQxYjNjYzM2ZTI2NWNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5o
CkBAIC01Myw3ICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFRhcmdl
dElzV29ya2VyLAogICAgICAgICAgICAgVGFyZ2V0SXNTaGFyZWRXb3JrZXIsCiAgICAgICAgICAg
ICBUYXJnZXRJc1ByZWZldGNoLAotICAgICAgICAgICAgVGFyZ2V0SXNQcmVyZW5kZXIsCiAgICAg
ICAgICAgICBUYXJnZXRJc0Zhdmljb24sCiAgICAgICAgICAgICBUYXJnZXRJc1hIUiwKICAgICAg
ICAgICAgIFRhcmdldElzVGV4dFRyYWNrLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9ERVBTIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9ERVBTCmluZGV4IGZlMDQ0YjA5Mzlk
MzY2NzRhN2YwMmVmZjBlMzJlOGM0OTExZTRmMDcuLmE4M2Q0NjRmY2ZiZjdhOTI0OTViZGUxNDI5
YjFjMWE1ZjFjN2Y1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vREVQUwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0RFUFMKQEAgLTMyLDYgKzMyLDcgQEAKIAogdmFy
cyA9IHsKICAgJ2Nocm9taXVtX3N2bic6ICdodHRwOi8vc3JjLmNocm9taXVtLm9yZy9zdm4vdHJ1
bmsvc3JjJywKKyAgIyBUbyBsYW5kLCB0aGlzIHBhdGNoIG11c3QgZ2FyZGVuIHBhc3QgdGhlIGNv
bW1pdGVkIHJldiBvZiBodHRwOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTAxOTgwNDAvCiAg
ICdjaHJvbWl1bV9yZXYnOiAnMTMzNjczJwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAK
aW5kZXggOWI4ODQxNjAzZTE1MTUzMDBlYzJiNTM5OTJhYjU5NGQyMDBjODQwNC4uY2E3MTM1MDgz
ZGU2NGJkMjQ4N2ZiMjliZThiYTdiN2M4MzVjZGRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cApAQCAtMjI1LDYgKzIyNSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQb3B1
cE1lbnUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQb3B1cE1lbnVJbmZvLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUG9wdXBUeXBlLmgnLAorICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViUHJlcmVuZGVyZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJSYW5nZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJlZ3VsYXJFeHByZXNz
aW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgnLApA
QCAtNDM2LDYgKzQzNyw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Ob25Db21wb3NpdGVkQ29udGVu
dEhvc3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9z
dC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5oJywKKyAg
ICAgICAgICAgICAgICAnc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvYW5kcm9pZC9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvbGludXgvV2ViRm9udEluZm8uY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L2xpbnV4L1dlYkZvbnRSZW5kZXJpbmcuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlcmVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMTQ4ZTVl
ODgyMTkzYjk0YTA0NDUxNmY2MWQ5Y2VkODVmNGQyZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXJlckNsaWVudC5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqCisgKi8KKworI2lmbmRlZiBXZWJQcmVyZW5kZXJlckNsaWVudF9oCisjZGVmaW5lIFdlYlBy
ZXJlbmRlcmVyQ2xpZW50X2gKKworI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbW1vbi5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJlcmVuZGVyOworCitjbGFzcyBXZWJQcmVy
ZW5kZXJlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHdpbGxBZGRQcmVyZW5k
ZXIoV2ViUHJlcmVuZGVyKikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViUHJlcmVuZGVy
ZXJDbGllbnRfaAorCisjZW5kaWYgLy8gV2ViUHJlcmVuZGVyZXJDbGllbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IGJhZDhiNTNiZGNjYWVkMDhkNzI3OTJj
YzdjOGZlM2RlMGI4OTMxNjYuLmFlM2M4ZWEyNzMyYjEzZjBhMGVlNDVlNGQzZmUxOWZjNzEwNTg4
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTUxLDYgKzUx
LDcgQEAgY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBXZWJOb2RlOwogY2xhc3Mg
V2ViUGFnZU92ZXJsYXk7CiBjbGFzcyBXZWJQZXJtaXNzaW9uQ2xpZW50OworY2xhc3MgV2ViUHJl
cmVuZGVyZXJDbGllbnQ7CiBjbGFzcyBXZWJTZXR0aW5nczsKIGNsYXNzIFdlYlNwZWxsQ2hlY2tD
bGllbnQ7CiBjbGFzcyBXZWJTdHJpbmc7CkBAIC0xMDUsNiArMTA2LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRBdXRvZmlsbENsaWVudChXZWJBdXRvZmlsbENsaWVudCopID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50
Q2xpZW50KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBl
cm1pc3Npb25DbGllbnQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFByZXJlbmRlcmVyQ2xp
ZW50KFdlYlByZXJlbmRlcmVyQ2xpZW50KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTcGVs
bENoZWNrQ2xpZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGFkZFRleHRGaWVsZERlY29yYXRvckNsaWVudChXZWJUZXh0RmllbGREZWNvcmF0b3JDbGllbnQq
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRl
cmVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QcmVyZW5kZXJl
ckNsaWVudEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NTFkMjc5ZGU4NDUxYThiYmExZGI1NDg2NDVm
OWRjNmQwNjYzMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9QcmVyZW5kZXJlckNsaWVudEltcGwuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXJlbmRlcmVyQ2xpZW50SW1wbC5oIgorCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlByZXJlbmRlci5o
IgorI2luY2x1ZGUgIlByZXJlbmRlckhhbmRsZS5oIgorI2luY2x1ZGUgIldlYlByZXJlbmRlcmVy
Q2xpZW50LmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2Vi
UHJlcmVuZGVyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1ByZXJlbmRlcmVyQ2xpZW50SW1wbDo6UHJlcmVuZGVyZXJDbGllbnRJbXBsKFdl
YlByZXJlbmRlcmVyQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCit7Cit9
CisKK3ZvaWQgUHJlcmVuZGVyZXJDbGllbnRJbXBsOjp3aWxsQWRkUHJlcmVuZGVyKFdlYkNvcmU6
OlByZXJlbmRlckhhbmRsZSogcHJlcmVuZGVySGFuZGxlKQoreworICAgIGlmICghbV9jbGllbnQp
CisgICAgICAgIHJldHVybjsKKyAgICBXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHByZXJlbmRl
ckhhbmRsZS0+cHJlcmVuZGVyKCkpOworICAgIG1fY2xpZW50LT53aWxsQWRkUHJlcmVuZGVyKCZ3
ZWJQcmVyZW5kZXIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9QcmVyZW5kZXJlckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MTc2MzJhZWE0NWNjZjZhNWUz
NjBjZWVjMThkNGNkNTM5MzEyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9QcmVyZW5kZXJlckNsaWVudEltcGwuaApAQCAtMCwwICsxLDYwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNp
Zm5kZWYgUHJlcmVuZGVyZXJDbGllbnRJbXBsX2gKKyNkZWZpbmUgUHJlcmVuZGVyZXJDbGllbnRJ
bXBsX2gKKworI2luY2x1ZGUgIlByZXJlbmRlcmVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgUHJlcmVuZGVySGFuZGxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViUHJlcmVuZGVyZXJDbGllbnQ7CisKK2NsYXNzIFByZXJlbmRlcmVyQ2xpZW50
SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpQcmVyZW5kZXJlckNsaWVudCB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoUHJlcmVuZGVyZXJDbGllbnRJbXBsKTsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBQcmVyZW5kZXJlckNsaWVudEltcGwoV2ViUHJlcmVuZGVyZXJDbGllbnQqKTsKKworICAgIHZv
aWQgd2lsbEFkZFByZXJlbmRlcihXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGUqKSBPVkVSUklERTsK
KworcHJpdmF0ZToKKyAgICBXZWJQcmVyZW5kZXJlckNsaWVudCogbV9jbGllbnQ7Cit9OworCit9
CisKKyNlbmRpZiAvLyBQcmVyZW5kZXJlckNsaWVudEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDkzN2VmNTQyNGFkN2Y4MWQyNjg3YzkyMDFm
YTQyOWJhZjBkMGM2OWMuLjE1ZjI3NjMzZDFhMGRiM2QyZWU2OTAxMDQxZDEzM2RiZDQ1ZTE5NDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTk5LDYg
Kzk5LDcgQEAKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQ
b3B1cENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorI2luY2x1ZGUg
IlByZXJlbmRlcmVyQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcu
aCIKQEAgLTMyMiw2ICszMjMsMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0UGVybWlzc2lvbkNs
aWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KiBwZXJtaXNzaW9uQ2xpZW50KQogICAgIG1fcGVybWlz
c2lvbkNsaWVudCA9IHBlcm1pc3Npb25DbGllbnQ7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNl
dFByZXJlbmRlcmVyQ2xpZW50KFdlYlByZXJlbmRlcmVyQ2xpZW50KiBwcmVyZW5kZXJlckNsaWVu
dCkKK3sKKyAgICBwcm92aWRlUHJlcmVuZGVyZXJDbGllbnRUbyhtX3BhZ2UuZ2V0KCksIG5ldyBQ
cmVyZW5kZXJlckNsaWVudEltcGwocHJlcmVuZGVyZXJDbGllbnQpKTsKK30KKwogdm9pZCBXZWJW
aWV3SW1wbDo6c2V0U3BlbGxDaGVja0NsaWVudChXZWJTcGVsbENoZWNrQ2xpZW50KiBzcGVsbENo
ZWNrQ2xpZW50KQogewogICAgIG1fc3BlbGxDaGVja0NsaWVudCA9IHNwZWxsQ2hlY2tDbGllbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA5MzgzYmEyOGQ5
NjA4YmEyZGM1ZDBhN2ZkMjQxN2E4ODI0ZTA5NGQ3Li44YjNiYzJiMTNlNGU5YWY0NDNlZWFmMWZl
Y2FiMGEwNmNhNTJmOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKQEAgLTkwLDYgKzkwLDcgQEAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTsK
IGNsYXNzIERyYWdTY3JvbGxUaW1lcjsKIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50UHJveHk7CiBj
bGFzcyBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q7CitjbGFzcyBQcmVyZW5kZXJlckNsaWVudElt
cGw7CiBjbGFzcyBTcGVlY2hJbnB1dENsaWVudEltcGw7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudFByb3h5OwogY2xhc3MgVXNlck1lZGlhQ2xpZW50SW1wbDsKQEAgLTEwMCw2ICsxMDEs
NyBAQCBjbGFzcyBXZWJEZXZUb29sc0FnZW50UHJpdmF0ZTsKIGNsYXNzIFdlYkZyYW1lSW1wbDsK
IGNsYXNzIFdlYkdlc3R1cmVFdmVudDsKIGNsYXNzIFdlYlBhZ2VQb3B1cEltcGw7CitjbGFzcyBX
ZWJQcmVyZW5kZXJlckNsaWVudDsKIGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViS2V5Ym9hcmRF
dmVudDsKIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CkBAIC0xNjAsNiArMTYyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvZmlsbENsaWVudChXZWJBdXRvZmlsbENsaWVudCopOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXREZXZUb29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRD
bGllbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNz
aW9uQ2xpZW50Kik7CisgICAgdmlydHVhbCB2b2lkIHNldFByZXJlbmRlcmVyQ2xpZW50KFdlYlBy
ZXJlbmRlcmVyQ2xpZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNwZWxsQ2hl
Y2tDbGllbnQoV2ViU3BlbGxDaGVja0NsaWVudCopOwogICAgIHZpcnR1YWwgdm9pZCBhZGRUZXh0
RmllbGREZWNvcmF0b3JDbGllbnQoV2ViVGV4dEZpZWxkRGVjb3JhdG9yQ2xpZW50KikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBXZWJTZXR0aW5ncyogc2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkODk0NmFk
ZjJhZjRiNDdiYzBkNTZhZGE0MmEwZWJmNjc2ODljNjYyLi40MzAzODFjMDA3YjEyM2FiODA3NGQ0
YzRhYTA4MjE0ZDU5MjgwZDhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDQtMjcgIEdh
dmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIFByZXJlbmRl
cmVyLCBQcmVyZW5kZXJIYW5kbGUgYW5kIGEgY2hyb21pdW0gaW50ZXJmYWNlIGZvciBQcmVyZW5k
ZXJpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NTAwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBwcmVyZW5kZXIgY2FzZSBpc24ndCBxdWl0ZSBhIHJlc291cmNlIGxvYWQsIGFuZCB1c2luZyBy
ZXNvdXJjZSBsb2FkaW5nIHRvCisgICAgICAgIHJldHJpZXZlIHRoZW0gaGFzIGNvbnN0cmFpbmVk
IHRoZSBBUEksIGFuZCB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkIHRoZSBsb2FkZXIuCisKKyAg
ICAgICAgVGhlIG5ldyBQcmVyZW5kZXJlciBhbmQgUHJlcmVuZGVySGFuZGxlIGxldCA8bGluayBy
ZWw9cHJlcmVuZGVyLi4uPiBlbGVtZW50cyBzaWduYWwKKyAgICAgICAgcmVtb3ZhbCBhbmQgdW5s
b2FkIHRvIHRoZWlyIHBsYXRmb3JtLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBiZWluZyBy
ZW1vdmVkLCBhbmQgZXhwZWN0YXRpb25zIHVwZGF0ZWQsIGJlY2F1c2UgdGhlIG9sZCBwaGFudG9t
LWxvYWQKKyAgICAgICAgcHJlcmVuZGVyaW5nIGludGVyZmFjZSB3YXMgc3VzY2VwdGlibGUgdG8g
bGF5b3V0IHRlc3RpbmcsIGFuZCB0aGUgbmV3IGludGVyZmFjZSByZXF1aXJlcworICAgICAgICBh
IGZ1bGwgcGxhdGZvcm0gdG8gdGVzdCwgc28gaXQgY2FuJ3QgcmVhbGx5IGJlIGEgbGF5b3V0IHRl
c3QuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJl
cmVuZGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQ6CisKIDIwMTItMDQtMjcgIE1hcmN1cyBC
dWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXBkYXRl
IHRlc3QgZXhwZWN0YXRpb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlcmVuZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiNjViZmUyNjQ1MjA0ZDEzMjU3ZWNkMjQ2Mjk1YzBhOTRkNzFjY2VkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi1wcmVmZXRjaC5saW5rIGhhcyBNSU1FIHR5cGUgYXBwbGlj
YXRpb24vb2N0ZXQtc3RyZWFtCi1QQVNTIG9ubG9hZCBjYWxsZWQhCi1UaGlzIHRlc3Qgd2lsbCBv
bmx5IHByaW50ICJQQVNTIiBvciAiRkFJTCIgaWYgbGluayBwcmVmZXRjaGVzIGFyZSBlbmFibGVk
LCBvdGhlcndpc2UgaXQgd2lsbCBzaG93IG5vdGhpbmcgYmVsb3cuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDY5NzhmNDJjZWVjNjM3NTNkMDY3YzI0YjI4YWVkNzNmZWM2MzRj
NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMjAgKzAsMCBAQAotPGJvZHk+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWZ1bmN0aW9uIHByZWZldGNoX29ubG9hZCgpIHsKLSAgICB0ZXN0UGFzc2VkKCdv
bmxvYWQgY2FsbGVkIScpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
LX0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBSZXNvdXJjZVJlc3BvbnNlTUlN
RVR5cGVzKCk7Ci19Ci08L3NjcmlwdD4KLTxodG1sPgotPHA+VGhpcyB0ZXN0IHdpbGwgb25seSBw
cmludCAiUEFTUyIgb3IgIkZBSUwiIGlmIGxpbmsgcHJlZmV0Y2hlcyBhcmUKLWVuYWJsZWQsIG90
aGVyd2lzZSBpdCB3aWxsIHNob3cgbm90aGluZyBiZWxvdy48L3A+Ci08bGluayBocmVmPSJwcmVm
ZXRjaC5saW5rIiByZWw9InByZXJlbmRlciIgb25sb2FkPSJwcmVmZXRjaF9vbmxvYWQoKSIgb25l
cnJvcj0idGVzdEZhaWxlZCgnb25lcnJvcicpIiAvPgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAzNzc3MDAzZmIxZTQ5
NjMxODRiYzFhMTVhMzJmNzM3ZDNhMTgzMTQ0Li4zZmZmYmYyYWRiYzE5MDFlNjk4OGY3MTkwODU5
MzQxNDQxOTI4MGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9l
eHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKQEAgLTkwMSw3ICs5MDEsNiBAQCBCVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxM
aW5rRWxlbWVudC9wcmVmZXRjaC5odG1sID0gRkFJTAogQlVHV0tHVEsgOiBmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sID0gRkFJTAogQlVHV0tHVEsgOiBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sID0gRkFJTAogQlVH
V0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwgPSBG
QUlMCi1CVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbCA9
IEZBSUwKIEJVR1dLR1RLIDogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3N1YnJlc291cmNlLmh0
bWwgPSBGQUlMCiAKIC8vIFRlc3RzIGZhaWxpbmcgYmVjYXVzZSB0aGUgY29udGV4dCBtZW51IGlz
IGdyYWJiaW5nIG1vdXNlIGV2ZW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggOWJm
YWRkMDkwZDk1MzA2NmExNzM4MjljMWI0ZmVmMDAxMWRlOTM1ZS4uYTIyOThiY2QwOWU3MWVjZWFm
YWZiNzk2MDk5ZmUxZWEwZDgyYzFkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTE5
Myw3ICsxOTMsNiBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9h
ZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGZhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRzLmh0bWwKLWZhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3N1
YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1wcmVmZXRjaC1hbmQtc3Vi
cmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKaW5kZXggZWZmYzNmMTc2NGVkOTA3MjExZWI0NzczNTFjNzcyOTM0
Zjc3ZWNlOS4uMDExNTllNzQyOTk3ZjUzMjJjNTZkMGU2MjNjNmYyMjY3MzZmZGVjMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0xNDQsNyArMTQ0LDYgQEAgZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50
L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNo
LW9ubG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtdG9vLW1hbnkt
Y2xpZW50cy5odG1sCi1mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKIGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zdWJyZXNvdXJjZS5odG1sCiBodHRwL3Rlc3RzL21pc2Mv
bGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9w
cmVmZXRjaC1wdXJwb3NlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggOTllMjU4
Mzg1MzVkZmVkN2M3ODkyMjMxYTI4YjU3ZmVjNDU0NDlhNy4uMWJiMjM2ZWI4MzQ3YzE2Y2Q0YmI0
YmQyZjliZmQ2YzFkNTMwYTE0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEwOTgs
NyArMTA5OCw2IEBAIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0
bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLXRvby1tYW55LWNsaWVudHMuaHRtbAogaHR0cC90
ZXN0cy9taXNjL2xpbmstcmVsLXByZWZldGNoLWFuZC1zdWJyZXNvdXJjZS5odG1sCi1mYXN0L2Rv
bS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9zdWJyZXNvdXJjZS5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5odG1s
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCmluZGV4IGUwOTEzOWIyZTM5OTAy
ZWI1YWRkYjVhNDY0ODBmZGUzYWM0OTdkN2QuLjdjYTk5MTZlMGI5MTAwNzAyZTFhNmM5MjQ2ZWE3
ZWY0MjVjYjhlY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZApAQCAtMTYx
Myw3ICsxNjEzLDYgQEAgZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3Iu
aHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBmYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtdG9vLW1hbnktY2xpZW50cy5odG1sCiBodHRw
L3Rlc3RzL21pc2MvbGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNlLmh0bWwKLWZhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3N1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0
bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139533</attachid>
            <date>2012-04-30 15:43:25 -0700</date>
            <delta_ts>2012-05-14 08:16:14 -0700</delta_ts>
            <desc>rename to WebPrerenderingSupport</desc>
            <filename>bug-85005-20120430184323.patch</filename>
            <type>text/plain</type>
            <size>90314</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxZjY0MzdmYzgwZGYz
YTMzNWIyNjBiMTBhMmJhNDY4MTU3MjE4ZDg3Li45YjMzY2M3NjgyMjdhYjQwNzQ0YmEzZTI0YTFh
N2IxODUyYzUyMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMiBAQAogMjAxMi0wNC0zMCAg
R2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KIAorICAgICAgICBBZGQgUHJlcmVu
ZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFByZXJl
bmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBUaGUg
cHJlcmVuZGVyIGNhc2UgaXNuJ3QgcXVpdGUgYSByZXNvdXJjZSBsb2FkLCBhbmQgdXNpbmcgcmVz
b3VyY2UgbG9hZGluZyB0bworICAgICAgICByZXRyaWV2ZSB0aGVtIGhhcyBjb25zdHJhaW5lZCB0
aGUgQVBJLCBhbmQgdW5uZWNlc3NhcmlseSBjb21wbGljYXRlZCB0aGUgbG9hZGVyLgorCisgICAg
ICAgIFRoZSBuZXcgUHJlcmVuZGVyZXIgYW5kIFByZXJlbmRlckhhbmRsZSBsZXQgPGxpbmsgcmVs
PXByZXJlbmRlci4uLj4gZWxlbWVudHMgc2lnbmFsCisgICAgICAgIHJlbW92YWwgYW5kIHVubG9h
ZCB0byB0aGVpciBwbGF0Zm9ybS4KKworICAgICAgICAqIFBsYXRmb3JtLmd5cGk6CisgICAgICAg
ICogY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJQcmVyZW5kZXIpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJQcmVy
ZW5kZXJpbmdTdXBwb3J0Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUHJlcmVu
ZGVyaW5nU3VwcG9ydCk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3Qu
aDoKKyAgICAgICAgKiBjaHJvbWl1bS9zcmMvV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyaW5n
U3VwcG9ydDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1
cHBvcnQ6OnNodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nU3VwcG9y
dDo6Y3VycmVudCk6CisKKzIwMTItMDQtMzAgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgW0Nocm9taXVtXSBBZGQgdGh1bmsgaGVhZGVycyBmb3Igc3RhZ2lu
ZyBQcmVyZW5kZXJpbmcgQVBJLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODQ4ODAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY4NzAyNDMyMWJiZWI0Y2EzZTNlZmNm
NWNhOGI3NDk1NmE0YTc5MzkuLjE3NGYyODI3ZDIyYzY5MmVkZWYwZjhmMDdmNjUxZWUzYTQzOGVk
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjggQEAKKzIwMTItMDQtMzAgIEdhdmluIFBldGVy
cyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIFByZXJlbmRlcmVyLCBQcmVy
ZW5kZXJIYW5kbGUgYW5kIGEgY2hyb21pdW0gaW50ZXJmYWNlIGZvciBQcmVyZW5kZXJpbmcuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhlIHByZXJlbmRlciBj
YXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVzaW5nIHJlc291cmNlIGxvYWRp
bmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3RyYWluZWQgdGhlIEFQSSwgYW5k
IHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4KKworICAgICAgICBUaGUgbmV3
IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxsaW5rIHJlbD1wcmVyZW5kZXIu
Li4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFuZCB1bmxvYWQgdG8gdGhlaXIg
cGxhdGZvcm0uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlzIGludGVyZmFjZSByZXF1
aXJlcyBhIGZ1bGwgcGxhdGZvcm0gdG8gd29yaywgYW5kIGRvZXNuJ3QgYWZmZWN0IGxheW91dC4g
IFRlc3QKKyAgICAgICAgaXQgd2l0aCB5b3VyIHBsYXRmb3JtIHdoZW4gaW1wbGVtZW50ZWQgZm9y
IGl0LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQu
cHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpEb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpw
cmVyZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpyZW1vdmVkRnJvbSk6CisgICAgICAgICogaHRt
bC9MaW5rUmVsQXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtSZWxBdHRyaWJ1
dGU6OkxpbmtSZWxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvTGlua1JlbEF0dHJpYnV0ZS5o
OgorICAgICAgICAoTGlua1JlbEF0dHJpYnV0ZSk6CisgICAgICAgICogbG9hZGVyL0xpbmtMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6bG9hZExpbmspOgorICAgICAg
ICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6cmVsZWFzZWQpOgorICAgICAgICAqIGxvYWRlci9MaW5r
TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKExpbmtMb2FkZXIpOgorICAg
ICAgICAqIGxvYWRlci9QcmVyZW5kZXJlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlByZXJlbmRlcmVyOjpQcmVyZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5k
ZXJlcjo6flByZXJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpyZW5k
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6UHJlcmVuZGVyZXI6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVy
ZXI6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6ZG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OmNsaWVudCk6CisgICAgICAgICogbG9hZGVy
L1ByZXJlbmRlcmVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUHJlcmVuZGVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFByZXJlbmRl
cmVyKToKKyAgICAgICAgKiBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJDbGllbnQ6OnN1cHBsZW1lbnROYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyQ2xpZW50Ojpmcm9tKToKKyAgICAgICAg
KFdlYkNvcmU6OnByb3ZpZGVQcmVyZW5kZXJlckNsaWVudFRvKToKKyAgICAgICAgKiBsb2FkZXIv
UHJlcmVuZGVyZXJDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5r
UmVsQXR0cmlidXRlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFByZXJlbmRlcmVy
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyQ2xpZW50Ojp+UHJlcmVuZGVy
ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXJDbGllbnQ6OlByZXJlbmRl
cmVyQ2xpZW50KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6aWdub3Jl
Rm9yUmVxdWVzdENvdW50KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaDogQ29waWVkIGZyb20gU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUHJlcmVuZGVySGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9QcmVyZW5kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UHJlcmVuZGVyOjpQcmVyZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVu
ZGVyOjp+UHJlcmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6c2V0U3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlcmVuZGVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjphYmFuZG9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpQcmVyZW5kZXI6OnJlc3VtZSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUHJl
cmVuZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
UHJlcmVuZGVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFByZXJlbmRlcik6Cisg
ICAgICAgIChFeHRyYURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURh
dGE6On5FeHRyYURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjp1cmwpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpQ
cmVyZW5kZXI6OnJlZmVycmVyUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6
c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6ZXh0cmFEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OlByZXJlbmRlckhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6On5QcmVyZW5kZXJIYW5kbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpwcmVyZW5kZXIpOgorICAgICAgICAo
V2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVu
ZGVySGFuZGxlOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjph
YmFuZG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6c3VzcGVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OnJlc3VtZSk6CisgICAgICAgIChXZWJD
b3JlOjpQcmVyZW5kZXJIYW5kbGU6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJI
YW5kbGU6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6cmVm
ZXJyZXJQb2xpY3kpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJl
cmVuZGVyLmNwcDogQ29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJQcmVyZW5kZXIuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpXZWJQcmVyZW5k
ZXIpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjp+
V2ViUHJlcmVuZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjp1cmwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXI6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJlcmVuZGVyOjpyZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJl
bmRlcjo6c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpleHRy
YURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJl
cXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VS
ZXF1ZXN0QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9ybVRhcmdldFR5
cGVGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291
cmNlUmVxdWVzdC5oOgorCiAyMDEyLTA0LTI5ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgTG9jYWxpemVkRGF0ZU1hYy5tbQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNWEwMzZmYzFkYjE0M2U2ZTY5ODU0M2IyZmNkYTAy
N2RmOTA5MjI4Li5jNTU2ODRkZTNlOGQ2YTllZTljZWU3NjM4ZDEyYWU3YmQwOTRkMDk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTA0LTMwICBHYXZp
biBQZXRlcnMgIDxnYXZpbnBAY2hyb21pdW0ub3JnPgogCisgICAgICAgIEFkZCBQcmVyZW5kZXJl
ciwgUHJlcmVuZGVySGFuZGxlIGFuZCBhIGNocm9taXVtIGludGVyZmFjZSBmb3IgUHJlcmVuZGVy
aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUw
MDUKKworICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBQZXRlcnMuCisKKyAgICAgICAgVGhlIHBy
ZXJlbmRlciBjYXNlIGlzbid0IHF1aXRlIGEgcmVzb3VyY2UgbG9hZCwgYW5kIHVzaW5nIHJlc291
cmNlIGxvYWRpbmcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlbSBoYXMgY29uc3RyYWluZWQgdGhl
IEFQSSwgYW5kIHVubmVjZXNzYXJpbHkgY29tcGxpY2F0ZWQgdGhlIGxvYWRlci4KKworICAgICAg
ICBUaGUgbmV3IFByZXJlbmRlcmVyIGFuZCBQcmVyZW5kZXJIYW5kbGUgbGV0IDxsaW5rIHJlbD1w
cmVyZW5kZXIuLi4+IGVsZW1lbnRzIHNpZ25hbAorICAgICAgICByZW1vdmFsIGFuZCB1bmxvYWQg
dG8gdGhlaXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UHJlcmVuZGVyZXJDbGllbnRJbXBsOjpQ
cmVyZW5kZXJlckNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpQcmVyZW5kZXJlckNsaWVu
dEltcGw6OndpbGxBZGRQcmVyZW5kZXIpOgorICAgICAgICAqIHNyYy9QcmVyZW5kZXJlckNsaWVu
dEltcGwuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRl
LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChQcmVy
ZW5kZXJlckNsaWVudEltcGwpOgorICAgICAgICAqIHNyYy9XZWJLaXQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpzaHV0ZG93bik6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFByZXJlbmRlcmVyQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCisyMDEyLTA0LTMwICBHYXZpbiBQZXRlcnMgIDxn
YXZpbnBAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtDaHJvbWl1bV0gQWRkIHRodW5rIGhlYWRl
cnMgZm9yIHN0YWdpbmcgUHJlcmVuZGVyaW5nIEFQSS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODgwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXgg
YmU4OTdjMjE2MDBmMzViOThiYWNkYjU0Zjc5YzJmM2M2ZDliZTcyZC4uZDkzNDc4M2I2MjRlMTM1
ODZlMWIxMzI3YTc1ZjQ4ZDBmZTlkOTkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1Bs
YXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTg4LDYg
Kzg4LDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViU3RyaW5nLmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJUaHJlYWQuaCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vcHVibGljL1dlYlRocmVhZFNhZmVEYXRhLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9XZWJQcmVyZW5kZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dl
YlVSTC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVVJMRXJyb3IuaCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaCcsCkBAIC0xMDEs
NiArMTAyLDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvUGxhdGZvcm0uY3BwJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViQ1N0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2No
cm9taXVtL3NyYy9XZWJGbG9hdFF1YWQuY3BwJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9zcmMv
V2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3NyYy9X
ZWJTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViVmlkZW9GcmFtZS5j
cHAnLAogICAgICAgICBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYlByZXJlbmRlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQ
cmVyZW5kZXIuaAppbmRleCAzZTYyMTIzMTNjNDc2YjNiM2EwODdlYzg1ZWEzMDE1MzVjOTM1ODA0
Li41ZWQ4MDQ5MDBmYzZmYTBiNmNjODE4NTQ2NDdkY2I2OWEyMzI1YWM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgKQEAgLTQxLDI5ICs0MSwz
NSBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjZW5kaWYKIAorbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgUHJlcmVuZGVyOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotLy8g
VGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXIgZXhpc3RzIG9ubHkgZm9y
IHN0YWdpbmc7IHRoaXMgd2lsbCBhbGxvdwotLy8gdGhlIENocm9taXVtIHNpZGUgb2YgdGhlIFBy
ZXJlbmRlcmluZyBBUEkgdG8gbGFuZCwgYW5kIHRoZW4gbGF0ZXIgd2UgY2FuIGF0b21pY2x5Ci0v
LyBzd2l0Y2ggV2ViS2l0IHRvIHByZXJlbmRlciwgYW5kIGZpbmFsbHkgcmVtb3ZlIHRoZSBvbGQg
cGhhbnRvbS1yZXF1ZXN0IHByZXJlbmRlcgotLy8gaW1wbGVtZW50YXRpb24gZnJvbSBDaHJvbWl1
bS4KLS8vIEZJWE1FOiBQdXQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBoZXJlIGFmdGVyIHRo
ZSBDaHJvbWl1bSBzaWRlIG9mIHRoaXMgQVBJCi0vLyBsYW5kcy4KIGNsYXNzIFdlYlByZXJlbmRl
ciB7CiBwdWJsaWM6CiAgICAgY2xhc3MgRXh0cmFEYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsgfQogICAgIH07Ci0gICAgV2ViVVJMIHVybCgpIGNvbnN0
IHsgcmV0dXJuIFdlYlVSTCgpOyB9Ci0gICAgV2ViU3RyaW5nIHJlZmVycmVyKCkgY29uc3QgeyBy
ZXR1cm4gIiI7IH0KLSAgICBXZWJSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0
IHsgcmV0dXJuIFdlYlJlZmVycmVyUG9saWN5KCk7IH0KLSAgICB2b2lkIHNldEV4dHJhRGF0YShF
eHRyYURhdGEqKSB7IH0KLSAgICBjb25zdCBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIGV4cGxpY2l0IFdl
YlByZXJlbmRlcihQYXNzUmVmUHRyPFdlYkNvcmU6OlByZXJlbmRlcj4pOworICAgIH5XZWJQcmVy
ZW5kZXIoKTsKKyNlbmRpZgorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJVUkwgdXJsKCkgY29uc3Q7
CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKyAgICBXRUJL
SVRfRVhQT1JUIFdlYlJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkgY29uc3Q7CisKKyAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0RXh0cmFEYXRhKEV4dHJhRGF0YSopOworICAgIFdFQktJ
VF9FWFBPUlQgY29uc3QgRXh0cmFEYXRhKiBleHRyYURhdGEoKSBjb25zdDsKIAogcHJpdmF0ZToK
LSAgICBXZWJQcmVyZW5kZXIoKSB7IH0KLSAgICB+V2ViUHJlcmVuZGVyKCkgeyB9CisgICAgV2Vi
UHJlcmVuZGVyKCk7CisKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlByZXJlbmRlcj4gbV9w
cml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlcmluZ1N1cHBvcnQuaCBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5oCmluZGV4
IGRjMzE4YTMyYzk2NDllNjkxZTk3NDVkODEwMzFiMDUzMTZjYmFjZjYuLmEyNjcyOTExZmE1MGE4
MzM1OGQyYmY0YjA5OTZmZDU0OTM4MDZiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5oCkBAIC0zNywyNSAr
MzcsMjkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlByZXJlbmRlcjsKIAotLy8g
VGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0IGV4aXN0
cyBvbmx5IGZvciBzdGFnaW5nOyB0aGlzIHdpbGwKLS8vIGFsbG93IHRoZSBDaHJvbWl1bSBzaWRl
IG9mIHRoZSBQcmVyZW5kZXJpbmcgQVBJIHRvIGxhbmQsIGFuZCB0aGVuIGxhdGVyIHdlIGNhbiBh
dG9taWNseQotLy8gc3dpdGNoIFdlYktpdCB0byBwcmVyZW5kZXIsIGFuZCBmaW5hbGx5IHJlbW92
ZSB0aGUgb2xkIHBoYW50b20tcmVxdWVzdCBwcmVyZW5kZXIKLS8vIGltcGxlbWVudGF0aW9uIGZy
b20gQ2hyb21pdW0uCi0vLyBGSVhNRTogUHV0IHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gaGVy
ZSBhZnRlciB0aGUgQ2hyb21pdW0gc2lkZSBvZiB0aGlzIEFQSQotLy8gbGFuZHMuCiBjbGFzcyBX
ZWJQcmVyZW5kZXJpbmdTdXBwb3J0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBpbml0aWFs
aXplKFdlYlByZXJlbmRlcmluZ1N1cHBvcnQqKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBzaHV0ZG93
bigpIHsgfQotICAgIHN0YXRpYyBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0KiBjdXJyZW50KCkgeyBy
ZXR1cm4gMDsgfQorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZShXZWJQ
cmVyZW5kZXJpbmdTdXBwb3J0Kik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzaHV0
ZG93bigpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlByZXJlbmRlcmluZ1N1cHBvcnQq
IGN1cnJlbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgV2ViUHJlcmVuZGVyJikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbChjb25zdCBXZWJQcmVyZW5kZXImKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgYWJhbmRvbihjb25zdCBXZWJQcmVyZW5kZXImKSB7IH0KKyAgICAvLyBB
IHByZXJlbmRlciBsaW5rIGVsZW1lbnQgaXMgYWRkZWQgd2hlbiBpdCBpcyBpbnNlcnRlZCBpbnRv
IGEgZG9jdW1lbnQuCisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBXZWJQcmVyZW5kZXImKSA9
IDA7CisKKyAgICAvLyBBIHByZXJlbmRlciBpcyBjYW5jZWxlZCB3aGVuIGl0IGlzIHJlbW92ZWQg
ZnJvbSBhIGRvY3VtZW50LgorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoY29uc3QgV2ViUHJlcmVu
ZGVyJikgPSAwOworCisgICAgLy8gQSBwcmVyZW5kZXIgaXMgYWJhbmRvbmVkIHdoZW4gaXQncyBu
YXZpZ2F0ZWQgYXdheSBmcm9tIG9yIHN1c3BlbmRlZCBpbiB0aGUgcGFnZSBjYWNoZS4gVGhpcwor
ICAgIC8vIGlzIGEgd2Vha2VyIHNpZ25hbCB0aGFuIGNhbmNlbCgpLCBzaW5jZSB0aGUgbGF1bmNo
ZXIgaGFzbid0IGluZGljYXRlZCB0aGF0IHRoZSBwcmVyZW5kZXIgaXNuJ3QKKyAgICAvLyB3YW50
ZWQsIGFuZCB3ZSBtYXkgZW5kIHVwIHVzaW5nIGl0IGFmdGVyLCBmb3IgaW5zdGFuY2UsIGEgc2hv
cnQgcmVkaXJlY3QgY2hhaW4uCisgICAgdmlydHVhbCB2b2lkIGFiYW5kb24oY29uc3QgV2ViUHJl
cmVuZGVyJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJlcmVuZGVyaW5nU3VwcG9ydCgp
IHsgfQogICAgIHZpcnR1YWwgfldlYlByZXJlbmRlcmluZ1N1cHBvcnQoKSB7IH0KKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgV2ViUHJlcmVuZGVyaW5nU3VwcG9ydCogc19wbGF0Zm9ybTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYlVSTFJlcXVlc3QuaAppbmRleCA4YzE4OTI1YmMwYmQwNTIyNGRlYjk0ZDdmMTEwZTli
ODAyNmJlMGZlLi41NTJiZmNiMGE2Y2I2OTVmNDk5YjU2ZWU3ZjJiMjc1NjU2Y2UyZDE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaApAQCAt
NjksMTEgKzY5LDEzIEBAIHB1YmxpYzoKICAgICAgICAgVGFyZ2V0SXNXb3JrZXIgPSA5LAogICAg
ICAgICBUYXJnZXRJc1NoYXJlZFdvcmtlciA9IDEwLAogICAgICAgICBUYXJnZXRJc1ByZWZldGNo
ID0gMTEsCi0gICAgICAgIFRhcmdldElzUHJlcmVuZGVyID0gMTIsCi0gICAgICAgIFRhcmdldElz
RmF2aWNvbiA9IDEzLAotICAgICAgICBUYXJnZXRJc1hIUiA9IDE0LAotICAgICAgICBUYXJnZXRJ
c1RleHRUcmFjayA9IDE1LAotICAgICAgICBUYXJnZXRJc1Vuc3BlY2lmaWVkID0gMTYsCisgICAg
ICAgIFRhcmdldElzRmF2aWNvbiA9IDEyLAorICAgICAgICBUYXJnZXRJc1hIUiA9IDEzLAorICAg
ICAgICBUYXJnZXRJc1RleHRUcmFjayA9IDE0LAorICAgICAgICBUYXJnZXRJc1Vuc3BlY2lmaWVk
ID0gMTUsCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIG9sZCBlbnVtIHZhbHVlIGlzIG9ubHkgYmVp
bmcgbGVmdCBpbiB3aGlsZSBwcmVyZW5kZXJpbmcgaXMgc3RhZ2luZyBpbnRvIGNocm9taXVtLiBB
ZnRlciBodHRwOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTAyNDQwMDcvCisgICAgICAgIC8v
IGxhbmRzLCB0aGlzIHNob3VsZCBiZSByZW1vdmVkLgorICAgICAgICBUYXJnZXRJc1ByZXJlbmRl
ciA9IFRhcmdldElzVW5zcGVjaWZpZWQsCiAgICAgfTsKIAogICAgIGNsYXNzIEV4dHJhRGF0YSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vc3JjL1dlYlByZXJlbmRlcmlu
Z1N1cHBvcnQuY3BwIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3NyYy9XZWJQcmVyZW5kZXJp
bmdTdXBwb3J0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2IzZTAzNTgwMDAwNTFjZDBlMmYzODNhZTEwNzAz
OGZmMmI5YTM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3Ny
Yy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0LmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPHB1
YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJQcmVyZW5kZXJpbmdTdXBwb3J0KiBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpzX3BsYXRmb3Jt
ID0gMDsKKwordm9pZCBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0Ojppbml0aWFsaXplKFdlYlByZXJl
bmRlcmluZ1N1cHBvcnQqIHBsYXRmb3JtKQoreworICAgIHNfcGxhdGZvcm0gPSBwbGF0Zm9ybTsK
K30KKwordm9pZCBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpzaHV0ZG93bigpCit7CisgICAgc19w
bGF0Zm9ybSA9IDA7Cit9CisKK1dlYlByZXJlbmRlcmluZ1N1cHBvcnQqIFdlYlByZXJlbmRlcmlu
Z1N1cHBvcnQ6OmN1cnJlbnQoKQoreworICAgIHJldHVybiBzX3BsYXRmb3JtOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyZjUzMjgyMzlkYjNkNmU3MTJmYWQ3ZmE0
NTM0ODEwYzk0YTZkMDAwLi41ODg0MjRmMWJmYTIyZTc5ZTMwNmNjZmI2MjUzY2Q1OWJlOTQ0MDhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4NDEsNiArMjg0MSwxMCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDYWxsYmFj
ay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QcmVyZW5kZXJlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuY3BwIFwKQEAgLTM1MzUsNiArMzUzOSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1l
bnVTdHlsZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUmVmZXJyZXJQb2xpY3kuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA4ZThjNzE0NjBhZGMxOTgxNjRh
ZGNhZmNjODA5MDVmMWI1YzFlYTJkLi4yYjE1NTRlMmU5N2ZhMTc2ZWRmMWU1NDg3ODBlZWI4Mzg2
NGY3MTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk3Niw2ICs5NzYsOCBAQCBTT1VSQ0VTICs9IFwKICAg
ICBsb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwIFwKICAgICBsb2FkZXIvUG9saWN5Q2hlY2tlci5j
cHAgXAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwIFwKKyAgICBsb2FkZXIvUHJlcmVu
ZGVyZXIuY3BwIFwKKyAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwIFwKICAgICBsb2Fk
ZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAgXApAQCAtMjA5Nyw2ICsy
MDk5LDggQEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBcCiAg
ICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggXAogICAgIGxvYWRlci9QbGFj
ZWhvbGRlckRvY3VtZW50LmggXAorICAgIGxvYWRlci9QcmVyZW5kZXJlci5oIFwKKyAgICBsb2Fk
ZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAgICAgbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oIFwK
ICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBcCiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmggXApAQCAtMjM4MSw2ICsyMzg1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0v
VGltZXIuaCBcCiAgICAgcGxhdGZvcm0vV2lkZ2V0LmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3Jt
U3RyYXRlZ2llcy5oIFwKKyAgICBwbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaCBcCiAgICAgcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIFwKICAgICBwbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXku
aCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4MjNm
NjgyYTMyNWRlYjUxMTc5NmFiY2I1YzhhZWZmNThjMzgyZDU4Li45Y2VkMTQzNDhiOTYxNjU5ZmMz
ZjRiN2I4Y2VhYjMzMGE3NGViZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yODU3LDYgKzI4NTcs
MTAgQEAKICAgICAgICAgICAgICdsb2FkZXIvUGxhY2Vob2xkZXJEb2N1bWVudC5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwJywKICAgICAgICAgICAgICdsb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlci5jcHAn
LAorICAgICAgICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlci5oJywKKyAgICAgICAgICAgICdsb2Fk
ZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvUHJlcmVuZGVy
ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAnLAog
ICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAnLAogICAgICAgICAg
ICAgJ2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwJywKQEAgLTMxNDIsNiArMzE0Niw3
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9QcmVy
ZW5kZXJIYW5kbGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL1JlZmVycmVyUG9saWN5LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL1J1bkxvb3BUaW1lci5oJywKQEAgLTMzMjAsNiArMzMyNSw5IEBACiAgICAgICAg
ICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTWVudVByaXZhdGUuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vUHJlcmVuZGVyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUHJl
cmVuZGVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlckhhbmRs
ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NTTEtleUdlbmVyYXRvckNo
cm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhl
bWVDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJh
clRoZW1lQ2hyb21pdW0uaCcsCkBAIC04MjYyLDYgKzgyNzAsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbVNvdXJj
ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFT
dHJlYW1Tb3VyY2VzUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViVVJMLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vc3VwcG9ydC9XZWJVUkxFcnJvci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1Yzc4Y2E5MTVlNmVhYmU5M2IzZjllOGMxMmM2
YWQzYzhhMWI2OWVmLi5iNGEzZjZlNDUyYjViNDljMjFjZTYzNzFkMjQ4NTRhMGY0NTk5YzdkIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjY5
NDYsNiArMjY5NDYsMjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbG9hZGVyXFByZXJlbmRlcmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXFByZXJlbmRlcmVyLmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxQcmVy
ZW5kZXJlckNsaWVudC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGxvYWRlclxQcmVyZW5kZXJlckNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcUHJvZ3Jlc3NUcmFja2Vy
LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNzgyMiw2ICsyNzgzOCwxMCBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxQcmVy
ZW5kZXJIYW5kbGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cUHVyZ2VhYmxlQnVmZmVyLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGQyNTU1NWEzYjU0ZTg1ZWNhNmFiZTQ2NDRmZjJlMjNiMzJlNmZhOWUuLjZlN2MzNjRhODgy
MTZjODhkNTI3ZjlkMzk4MDQ5NDlmZmMwNGM2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2MDAsNiArMzYwMCwxMSBAQAog
CQk5N0Y4RTY2NjE1MUQ0QTRFMDBEMkQxODEgLyogV29ya2VyQ29udGV4dE5vdGlmaWNhdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3RjhFNjYy
MTUxRDRBM0YwMEQyRDE4MSAvKiBXb3JrZXJDb250ZXh0Tm90aWZpY2F0aW9ucy5oICovOyB9Owog
CQk5ODMxQUU0QTE1NDIyNUM5MDBGRTI2NDQgLyogUmVmZXJyZXJQb2xpY3kuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4MzFBRTQ5MTU0MjI1QTIwMEZF
MjY0NCAvKiBSZWZlcnJlclBvbGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk4NDI2NEYxMTJENTI4MEEwMDBEODhBNCAvKiBMaW5rTG9hZGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
ODQyNjRFRjEyRDUyODBBMDAwRDg4QTQgLyogTGlua0xvYWRlckNsaWVudC5oICovOyB9OworCQk5
ODU2RjhDQzE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVyZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1NkY4QzgxNTQ5RTgyNDAwQjA0RjNB
IC8qIFByZXJlbmRlcmVyLmNwcCAqLzsgfTsKKwkJOTg1NkY4Q0QxNTQ5RTgyNDAwQjA0RjNBIC8q
IFByZXJlbmRlcmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5ODU2RjhDOTE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVyZXIuaCAqLzsgfTsKKwkJ
OTg1NkY4Q0UxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyQ2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4NTZGOENBMTU0OUU4MjQw
MEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVudC5jcHAgKi87IH07CisJCTk4NTZGOENGMTU0OUU4
MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1NkY4Q0IxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJl
bmRlcmVyQ2xpZW50LmggKi87IH07CisJCTk4NTZGOEQxMTU0OUU4NEYwMEIwNEYzQSAvKiBQcmVy
ZW5kZXJIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk4NTZGOEQwMTU0OUU4NEYwMEIwNEYzQSAvKiBQcmVyZW5kZXJIYW5kbGUuaCAqLzsgfTsK
IAkJOTg1QkI5NkQxM0E5NDA1ODAwN0EwQjY5IC8qIExpbmtSZWxBdHRyaWJ1dGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1QkI5NkIxM0E5NDA1
ODAwN0EwQjY5IC8qIExpbmtSZWxBdHRyaWJ1dGUuY3BwICovOyB9OwogCQk5ODVCQjk2RTEzQTk0
MDU4MDA3QTBCNjkgLyogTGlua1JlbEF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1QkI5NkMxM0E5NDA1ODAwN0EwQjY5IC8qIExpbmtS
ZWxBdHRyaWJ1dGUuaCAqLzsgfTsKIAkJOThDRTQzMjYxMjlFMDBCRDAwNTgyMURDIC8qIExpbmtM
b2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OThDRTQzMjUxMjlFMDBCRDAwNTgyMURDIC8qIExpbmtMb2FkZXIuY3BwICovOyB9OwpAQCAtMTA2
MzUsNiArMTA2NDAsMTEgQEAKIAkJOTdGOEU2NjMxNTFENEEzRjAwRDJEMTgxIC8qIFdvcmtlckNv
bnRleHROb3RpZmljYXRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXb3JrZXJDb250
ZXh0Tm90aWZpY2F0aW9ucy5pZGw7IHBhdGggPSBub3RpZmljYXRpb25zL1dvcmtlckNvbnRleHRO
b3RpZmljYXRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTgzMUFFNDkx
NTQyMjVBMjAwRkUyNjQ0IC8qIFJlZmVycmVyUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlZmVycmVyUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk4NDI2NEVGMTJENTI4MEEwMDBEODhBNCAvKiBMaW5rTG9hZGVyQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpbmtMb2FkZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTg1NkY4QzgxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRl
cmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByZXJlbmRlcmVy
LmNwcDsgcGF0aCA9IGxvYWRlci9QcmVyZW5kZXJlci5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKKwkJOTg1NkY4QzkxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByZXJlbmRlcmVyLmg7IHBhdGggPSBsb2Fk
ZXIvUHJlcmVuZGVyZXIuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk5ODU2RjhD
QTE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVyZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJlcmVuZGVyZXJDbGllbnQuY3BwOyBwYXRoID0gbG9h
ZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owor
CQk5ODU2RjhDQjE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVyZXJDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJlcmVuZGVyZXJDbGllbnQuaDsgcGF0aCA9IGxv
YWRlci9QcmVyZW5kZXJlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJ
CTk4NTZGOEQwMTU0OUU4NEYwMEIwNEYzQSAvKiBQcmVyZW5kZXJIYW5kbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJlcmVuZGVySGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk4NUJCOTZCMTNBOTQwNTgwMDdBMEI2OSAvKiBMaW5rUmVsQXR0cmli
dXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpbmtSZWxBdHRy
aWJ1dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5ODVCQjk2QzEzQTk0MDU4
MDA3QTBCNjkgLyogTGlua1JlbEF0dHJpYnV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMaW5rUmVsQXR0cmlidXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk4Q0U0MzI1MTI5RTAwQkQwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpbmtMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQxMTAsNiArMTQxMjAsMTAgQEAKIAkJCQkxQThGNkJCNDBEQjU1Q0RD
MDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZUdyb3VwLmggKi8sCiAJCQkJMjRGNTRFQUExMDFG
RTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCAqLywKIAkJCQkyNEY1NEVB
QjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLywKKwkJCQk5ODU2
RjhDODE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVyZXIuY3BwICovLAorCQkJCTk4NTZGOEM5
MTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlci5oICovLAorCQkJCTk4NTZGOENBMTU0OUU4
MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVudC5jcHAgKi8sCisJCQkJOTg1NkY4Q0IxNTQ5
RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyQ2xpZW50LmggKi8sCiAJCQkJMUE4RjZCQjUwREI1
NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5jcHAgKi8sCiAJCQkJMUE4
RjZCQjYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oICovLAog
CQkJCTFBMkFBQzU2MERDMkEzQjEwMEEyMEQ5QSAvKiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5j
cHAgKi8sCkBAIC0xNDg5Niw2ICsxNDkxMCw3IEBACiAJCQkJNDlFOTEyQTUwRUZBQzkwNjAwOUQw
Q0FGIC8qIEFuaW1hdGlvbi5jcHAgKi8sCiAJCQkJNDlFOTEyQTYwRUZBQzkwNjAwOUQwQ0FGIC8q
IEFuaW1hdGlvbi5oICovLAogCQkJCTQ5RTkxMkE3MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRp
b25MaXN0LmNwcCAqLywKKwkJCQk5ODU2RjhEMDE1NDlFODRGMDBCMDRGM0EgLyogUHJlcmVuZGVy
SGFuZGxlLmggKi8sCiAJCQkJNDlFOTEyQTgwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxp
c3QuaCAqLywKIAkJCQkwRjU4MEZBRTE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0
aWVzLmggKi8sCiAJCQkJNDlFOTEyQTkwRUZBQzkwNjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9u
LmggKi8sCkBAIC0yNDgzNCw2ICsyNDg0OSw5IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVB
OTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYw
RkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUz
MTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTg1NkY4
Q0QxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
ODU2RjhDRjE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVyZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk4NTZGOEQxMTU0OUU4NEYwMEIwNEYzQSAvKiBQcmVyZW5kZXJIYW5kbGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEOEM0NkVDMTU0NjA4RTcwMEE1OTEwQyAvKiBBdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxQTU3REYyMTU0QkUyNUMwMDA5
RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OEQwMkJDNjE1
NEExOERGMDBCNjJEMDUgLyogQ1NTUHJvcGVydHlBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLApA
QCAtMjc4NTAsNiArMjc4NjgsOCBAQAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBY
U0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAw
QzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdC
NjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk4NTZGOEND
MTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
ODU2RjhDRTE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVyZXJDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkQ4QzQ2RUIxNTQ2MDhFNzAwQTU5MTBDIC8qIEF1ZGlvU2NoZWR1bGVkU291
cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MUE1N0RGMTE1NEJFMjVDMDAwOUQxMjAg
LyogU1ZHUGF0aFV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OEQwMkJDNTE1NEEx
OERGMDBCNjJEMDUgLyogQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkMTE3MzU1YTZkMDc5OWFmNjQ1NjA4YWVkNDVmMDVh
MjYwMDlhODdjLi42N2JmZTE0YjJkY2I5NDRlYzM2ZDM5YmExMTgzYjdjYThmMjZlNmYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwNiw2ICsyMDYsMTAgQEAKICNpbmNsdWRlICJOb2Rl
UmFyZURhdGEuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorI2luY2x1
ZGUgIlByZXJlbmRlcmVyLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5n
IG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsKQEAgLTUwNiw3ICs1MTAs
OSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJv
b2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgbV9tYXJrZXJzID0gYWRvcHRQdHIobmV3IERv
Y3VtZW50TWFya2VyQ29udHJvbGxlcik7CiAKICAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyID0g
YWRvcHRQdHIobmV3IENhY2hlZFJlc291cmNlTG9hZGVyKHRoaXMpKTsKLQorI2lmIEVOQUJMRShM
SU5LX1BSRVJFTkRFUikKKyAgICBtX3ByZXJlbmRlcmVyID0gUHJlcmVuZGVyZXI6OmNyZWF0ZSh0
aGlzKTsKKyNlbmRpZgogICAgIG1fdmlzdWFsbHlPcmRlcmVkID0gZmFsc2U7CiAgICAgbV9iUGFy
c2luZyA9IGZhbHNlOwogICAgIG1fd2VsbEZvcm1lZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCBhODJkZjUwNDExODAzYjRhNDFmMTQ1YzBjNjczMTY3ZWZkMjA5ZWQyLi42ZjBhZjAy
ZTJkMTM4ODllYjBiZTNkYmNmZGVjY2FiOGEwY2EzZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTY2LDYgKzE2NiwxMCBAQCBjbGFzcyBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7CiBj
bGFzcyBNaWNyb0RhdGFJdGVtTGlzdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKExJTktfUFJFUkVO
REVSKQorY2xhc3MgUHJlcmVuZGVyZXI7CisjZW5kaWYKKwogdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKIAogY2xhc3MgRm9ybUVsZW1lbnRLZXkgewpAQCAtMTE0Niw2ICsxMTUwLDEwIEBAIHB1
YmxpYzoKIAogICAgIEludFNpemUgdmlld3BvcnRTaXplKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUo
TElOS19QUkVSRU5ERVIpCisgICAgUHJlcmVuZGVyZXIqIHByZXJlbmRlcmVyKCkgeyByZXR1cm4g
bV9wcmVyZW5kZXJlci5nZXQoKTsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVu
dChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAt
MTQ4Nyw2ICsxNDk1LDExIEBAIHByaXZhdGU6CiAKICAgICBUaW1lcjxEb2N1bWVudD4gbV9wZW5k
aW5nVGFza3NUaW1lcjsKICAgICBWZWN0b3I8T3duUHRyPFRhc2s+ID4gbV9wZW5kaW5nVGFza3M7
CisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgT3duUHRyPFByZXJlbmRlcmVyPiBt
X3ByZXJlbmRlcmVyOworI2VuZGlmCisKICAgICBib29sIG1fc2NoZWR1bGVkVGFza3NBcmVTdXNw
ZW5kZWQ7CiAgICAgCiAgICAgYm9vbCBtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGRiM2E3NDIyZTQ2Y2IzZjcwZWQ2NmVl
M2E4MDllOGNjMGQ0Njk0ZmUuLmE5NzA4ZjE0MzU1YjQ0OTFkMjc0YmFjNTVlNGMxYzQxNzhjZTZl
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTI2NSw2ICsy
NjUsOCBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cmVtb3ZlZEZyb20oTm9kZSogaW5zZXJ0aW9u
UG9pbnQpCiAgICAgaWYgKCFpbnNlcnRpb25Qb2ludC0+aW5Eb2N1bWVudCgpKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBtX2xpbmtMb2FkZXIucmVsZWFzZWQoKTsKKwogICAgIGlmIChtX2lzSW5T
aGFkb3dUcmVlKSB7CiAgICAgICAgIEFTU0VSVCghbV9zaGVldCk7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDUyNjFkZjJkMDhm
ZjI2YTAzYTVkODFlMjQzMWZhNjNmNGM2NTcyMGMuLjg3MDcxYjk5YjI4ZDY1ZDIxOGYwYWJkMmRi
OGE1N2NkMDAxZjZhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0
dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNw
cApAQCAtNDEsOSArNDEsMTEgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZSgp
CiAgICAgLCBtX2lzRE5TUHJlZmV0Y2goZmFsc2UpCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gp
CiAgICAgLCBtX2lzTGlua1ByZWZldGNoKGZhbHNlKQotICAgICwgbV9pc0xpbmtQcmVyZW5kZXIo
ZmFsc2UpCiAgICAgLCBtX2lzTGlua1N1YnJlc291cmNlKGZhbHNlKQogI2VuZGlmCisjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQorICAgICwgbV9pc0xpbmtQcmVyZW5kZXIoZmFsc2UpCisjZW5k
aWYKIHsKIH0KIApAQCAtNTQsOSArNTYsMTEgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0
dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKICAgICAsIG1faXNETlNQcmVmZXRjaChmYWxzZSkK
ICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICAsIG1faXNMaW5rUHJlZmV0Y2goZmFsc2Up
Ci0gICAgLCBtX2lzTGlua1ByZXJlbmRlcihmYWxzZSkKICAgICAsIG1faXNMaW5rU3VicmVzb3Vy
Y2UoZmFsc2UpCiAjZW5kaWYKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgLCBtX2lz
TGlua1ByZXJlbmRlcihmYWxzZSkKKyNlbmRpZgogewogICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShyZWwsICJzdHlsZXNoZWV0IikpCiAgICAgICAgIG1faXNTdHlsZVNoZWV0ID0gdHJ1ZTsKQEAg
LTk2LDExICsxMDAsMTMgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShjb25z
dCBTdHJpbmcmIHJlbCkKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICAgICAgICAgIGVs
c2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwgInByZWZldGNoIikpCiAgICAgICAgICAgICAg
IG1faXNMaW5rUHJlZmV0Y2ggPSB0cnVlOwotICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UoKml0LCAicHJlcmVuZGVyIikpCi0gICAgICAgICAgICAgIG1faXNMaW5rUHJlcmVu
ZGVyID0gdHJ1ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwg
InN1YnJlc291cmNlIikpCiAgICAgICAgICAgICAgIG1faXNMaW5rU3VicmVzb3VyY2UgPSB0cnVl
OwogI2VuZGlmCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgICAgICAgICAgZWxzZSBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKml0LCAicHJlcmVuZGVyIikpCisgICAgICAgICAgICAgIG1f
aXNMaW5rUHJlcmVuZGVyID0gdHJ1ZTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAppbmRleCAzMTc4MTk0YjQ5YTFiZDA1Yjli
MGMxNDQ0MWViZjVmODYyNTc4YWNjLi45OGRkNDgxOTFjOWY4MzczZWYyNGIxZDIyOWIxMjIzZTJk
YTI3NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaApAQCAtNDQsOSAr
NDQsMTEgQEAgcHVibGljOgogICAgIGJvb2wgbV9pc0ROU1ByZWZldGNoOwogI2lmIEVOQUJMRShM
SU5LX1BSRUZFVENIKQogICAgIGJvb2wgbV9pc0xpbmtQcmVmZXRjaDsKLSAgICBib29sIG1faXNM
aW5rUHJlcmVuZGVyOwogICAgIGJvb2wgbV9pc0xpbmtTdWJyZXNvdXJjZTsKICNlbmRpZgorI2lm
IEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBib29sIG1faXNMaW5rUHJlcmVuZGVyOworI2Vu
ZGlmCiAKICAgICBMaW5rUmVsQXR0cmlidXRlKCk7CiAgICAgZXhwbGljaXQgTGlua1JlbEF0dHJp
YnV0ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9M
aW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRl
eCBlNTYyZDEwNTA1OTczODI1MzUxNzMzODQzMTdlYmFhZGUzOWZkYmQ1Li5hZjI1YTg2ODAzYzQw
NzQ3OWMxMDI2N2FmMjY2N2VhMDJhZTVkMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2Fk
ZXIuY3BwCkBAIC00NCw2ICs0NCwxMSBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVSZXNvbHZlci5oIgogCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorI2luY2x1
ZGUgIlByZXJlbmRlckhhbmRsZS5oIgorI2luY2x1ZGUgIlByZXJlbmRlcmVyLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMaW5rTG9hZGVyOjpMaW5rTG9hZGVyKExpbmtMb2Fk
ZXJDbGllbnQqIGNsaWVudCkKQEAgLTEwMyw3ICsxMDgsNyBAQCBib29sIExpbmtMb2FkZXI6Omxv
YWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5n
JiB0eQogICAgIH0KIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotICAgIGlmICgocmVsQXR0
cmlidXRlLm1faXNMaW5rUHJlZmV0Y2ggfHwgcmVsQXR0cmlidXRlLm1faXNMaW5rUHJlcmVuZGVy
IHx8IHJlbEF0dHJpYnV0ZS5tX2lzTGlua1N1YnJlc291cmNlKSAmJiBocmVmLmlzVmFsaWQoKSAm
JiBkb2N1bWVudC0+ZnJhbWUoKSkgeworICAgIGlmICgocmVsQXR0cmlidXRlLm1faXNMaW5rUHJl
ZmV0Y2ggfHwgcmVsQXR0cmlidXRlLm1faXNMaW5rU3VicmVzb3VyY2UpICYmIGhyZWYuaXNWYWxp
ZCgpICYmIGRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgIGlmICghbV9jbGllbnQtPnNob3Vs
ZExvYWRMaW5rKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIFJlc291cmNl
TG9hZFByaW9yaXR5IHByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkOwpA
QCAtMTEzLDkgKzExOCw3IEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1Jl
bEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgICAgIGlmIChy
ZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJjZSkgewogICAgICAgICAgICAgcHJpb3JpdHkg
PSBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKICAgICAgICAgICAgIHR5cGUgPSBDYWNoZWRSZXNv
dXJjZTo6TGlua1N1YnJlc291cmNlOwotICAgICAgICB9IGVsc2UgaWYgKHJlbEF0dHJpYnV0ZS5t
X2lzTGlua1ByZXJlbmRlcikKLSAgICAgICAgICAgIHR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1ByZXJlbmRlcjsKLQorICAgICAgICB9CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCBsaW5rUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJlZikpOwogICAgICAgICAKICAgICAgICAgaWYg
KG1fY2FjaGVkTGlua1Jlc291cmNlKSB7CkBAIC0xMjcsOCArMTMwLDI2IEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZS0+YWRkQ2xpZW50
KHRoaXMpOwogICAgIH0KICNlbmRpZgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAg
IGlmIChyZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVyZW5kZXIpIHsKKyAgICAgICAgQVNTRVJUKCFt
X3ByZXJlbmRlckhhbmRsZSk7CisgICAgICAgIG1fcHJlcmVuZGVySGFuZGxlID0gZG9jdW1lbnQt
PnByZXJlbmRlcmVyKCktPnJlbmRlcihocmVmKTsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBMaW5rTG9hZGVyOjpyZWxlYXNlZCgpCit7CisgICAgLy8gT25seSBw
cmVyZW5kZXJzIG5lZWQgdHJlYXRtZW50IGhlcmU7IG90aGVyIGxpbmtzIGVpdGhlciB1c2UgdGhl
IENhY2hlZFJlc291cmNlIGludGVyZmFjZSwgb3IgYXJlIG5vdGlvbmFsbHkKKyAgICAvLyBhdG9t
aWMgKGRucyBwcmVmZXRjaCkuCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIGlmICht
X3ByZXJlbmRlckhhbmRsZSkgeworICAgICAgICBtX3ByZXJlbmRlckhhbmRsZS0+Y2FuY2VsKCk7
CisgICAgICAgIG1fcHJlcmVuZGVySGFuZGxlLmNsZWFyKCk7CisgICAgfQorI2VuZGlmCit9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCmluZGV4IDFmYmMxOGQ3Yzc2ZWI2YTZlN2E0
ZWZkNzE5MTExYjYzOTYwZTc5ZGIuLjU4YjI5YTc3NGY3OGQxNDgwZjE4NDYzNTJhY2RkN2Q4NTNj
MjBmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaApAQCAtMzcsOSArMzcsMTQgQEAK
ICNpbmNsdWRlICJMaW5rTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgTGlu
a1JlbEF0dHJpYnV0ZTsKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCitjbGFzcyBQcmVyZW5k
ZXJIYW5kbGU7CisjZW5kaWYKIAogLy8gVGhlIExpbmtMb2FkZXIgY2FuIGxvYWQgbGluayByZWwg
dHlwZXMgaWNvbiwgZG5zLXByZWZldGNoLCBzdWJyZXNvdXJjZSwgcHJlZmV0Y2ggYW5kIHByZXJl
bmRlci4KIGNsYXNzIExpbmtMb2FkZXIgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewpA
QCAtNTAsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gZnJvbSBDYWNoZWRSZXNvdXJjZUNsaWVu
dAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwogICAg
IAorICAgIHZvaWQgcmVsZWFzZWQoKTsKICAgICBib29sIGxvYWRMaW5rKGNvbnN0IExpbmtSZWxB
dHRyaWJ1dGUmLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgc2l6ZXMsIGNvbnN0
IEtVUkwmLCBEb2N1bWVudCopOwogCiBwcml2YXRlOgpAQCAtNjEsNiArNjcsMTAgQEAgcHJpdmF0
ZToKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gbV9jYWNoZWRMaW5r
UmVzb3VyY2U7CiAgICAgVGltZXI8TGlua0xvYWRlcj4gbV9saW5rTG9hZFRpbWVyOwogICAgIFRp
bWVyPExpbmtMb2FkZXI+IG1fbGlua0xvYWRpbmdFcnJvclRpbWVyOworCisjaWYgRU5BQkxFKExJ
TktfUFJFUkVOREVSKQorICAgIFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IG1fcHJlcmVuZGVySGFu
ZGxlOworI2VuZGlmCiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1ByZXJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzVmZDhkZDhiN2Q0OTJiYzcwNmU4MjY1MzM4MzU3NzdmNmYxOGJkNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5jcHAK
QEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXJl
bmRlcmVyLmgiCisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNp
bmNsdWRlICJQcmVyZW5kZXJIYW5kbGUuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJlckNsaWVudC5o
IgorI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3ku
aCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gc3RhdGljCitQYXNzT3duUHRyPFBy
ZXJlbmRlcmVyPiBQcmVyZW5kZXJlcjo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAg
ICBQcmVyZW5kZXJlciogcHJlcmVuZGVyZXIgPSBuZXcgUHJlcmVuZGVyZXIoZG9jdW1lbnQpOwor
ICAgIHByZXJlbmRlcmVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gYWRvcHRQdHIo
cHJlcmVuZGVyZXIpOworfQorCitQcmVyZW5kZXJlcjo6UHJlcmVuZGVyZXIoRG9jdW1lbnQqIGRv
Y3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQorICAgICwgbV9j
bGllbnQoMCkKK3sKK30KKworUHJlcmVuZGVyZXI6On5QcmVyZW5kZXJlcigpCit7Cit9CisKK1Bh
c3NSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBQcmVyZW5kZXJlcjo6cmVuZGVyKGNvbnN0IEtVUkwm
IHVybCkKK3sKKyAgICAvLyBQcmVyZW5kZXJzIGFyZSB1bmxpa2UgcmVxdWVzdHMgaW4gbW9zdCB3
YXlzIChmb3IgaW5zdGFuY2UsIHRoZXkgcGFzcyBkb3duIGZyYWdtZW50cywgYW5kIHRoZXkgZG9u
J3QgcmV0dXJuIGRhdGEpLAorICAgIC8vIGJ1dCB0aGV5IGRvIGhhdmUgcmVmZXJyZXJzLgorICAg
IGNvbnN0IFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5ID0gZG9jdW1lbnQoKS0+cmVmZXJy
ZXJQb2xpY3koKTsKKyAgICBjb25zdCBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6
Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihyZWZlcnJlclBvbGljeSwgdXJsLCBkb2N1bWVudCgpLT5m
cmFtZSgpLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKTsKKworICAgIFJlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+IHByZXJlbmRlckhhbmRsZSA9IFByZXJlbmRlckhhbmRsZTo6Y3JlYXRlKHVy
bCwgcmVmZXJyZXIsIHJlZmVycmVyUG9saWN5KTsKKworICAgIGNsaWVudCgpLT53aWxsQWRkUHJl
cmVuZGVyKHByZXJlbmRlckhhbmRsZS5nZXQoKSk7CisgICAgcHJlcmVuZGVySGFuZGxlLT5hZGQo
KTsKKworICAgIG1fYWN0aXZlSGFuZGxlcy5hcHBlbmQocHJlcmVuZGVySGFuZGxlKTsKKyAgICBy
ZXR1cm4gcHJlcmVuZGVySGFuZGxlOworfQorCit2b2lkIFByZXJlbmRlcmVyOjpzdG9wKCkKK3sK
KyAgICB3aGlsZSAoIW1fYWN0aXZlSGFuZGxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRy
PFByZXJlbmRlckhhbmRsZT4gaGFuZGxlID0gbV9hY3RpdmVIYW5kbGVzWzBdLnJlbGVhc2UoKTsK
KyAgICAgICAgbV9hY3RpdmVIYW5kbGVzLnJlbW92ZSgwKTsKKyAgICAgICAgaGFuZGxlLT5hYmFu
ZG9uKCk7CisgICAgfQorICAgIHdoaWxlICghbV9zdXNwZW5kZWRIYW5kbGVzLmlzRW1wdHkoKSkg
eworICAgICAgICBSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBoYW5kbGUgPSBtX3N1c3BlbmRlZEhh
bmRsZXNbMF0ucmVsZWFzZSgpOworICAgICAgICBtX3N1c3BlbmRlZEhhbmRsZXMucmVtb3ZlKDAp
OworICAgICAgICBoYW5kbGUtPmFiYW5kb24oKTsKKyAgICB9Cit9CisKK3ZvaWQgUHJlcmVuZGVy
ZXI6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCit7CisgICAgaWYgKHJlYXNv
biA9PSBEb2N1bWVudFdpbGxCZWNvbWVJbmFjdGl2ZSB8fCByZWFzb24gPT0gUGFnZVdpbGxCZVN1
c3BlbmRlZCkgeworICAgICAgICB3aGlsZSAoIW1fYWN0aXZlSGFuZGxlcy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgIFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IGhhbmRsZSA9IG1fYWN0aXZlSGFu
ZGxlc1swXS5yZWxlYXNlKCk7CisgICAgICAgICAgICBtX2FjdGl2ZUhhbmRsZXMucmVtb3ZlKDAp
OworICAgICAgICAgICAgaGFuZGxlLT5zdXNwZW5kKCk7CisgICAgICAgICAgICBtX3N1c3BlbmRl
ZEhhbmRsZXMuYXBwZW5kKGhhbmRsZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgUHJl
cmVuZGVyZXI6OnJlc3VtZSgpCit7CisgICAgd2hpbGUgKCFtX3N1c3BlbmRlZEhhbmRsZXMuaXNF
bXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IGhhbmRsZSA9IG1fc3Vz
cGVuZGVkSGFuZGxlc1swXS5yZWxlYXNlKCk7CisgICAgICAgIG1fc3VzcGVuZGVkSGFuZGxlcy5y
ZW1vdmUoMCk7CisgICAgICAgIGhhbmRsZS0+cmVzdW1lKCk7CisgICAgICAgIG1fYWN0aXZlSGFu
ZGxlcy5hcHBlbmQoaGFuZGxlKTsKKyAgICB9Cit9CisKK0RvY3VtZW50KiBQcmVyZW5kZXJlcjo6
ZG9jdW1lbnQoKQoreworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9j
dW1lbnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKK30KKworUHJlcmVuZGVyZXJDbGllbnQqIFByZXJlbmRlcmVyOjpjbGll
bnQoKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50ID0gUHJlcmVuZGVy
ZXJDbGllbnQ6OmZyb20oZG9jdW1lbnQoKS0+cGFnZSgpKTsKKyAgICByZXR1cm4gbV9jbGllbnQ7
Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1ByZXJlbmRlcmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJmMzUwODM0MmQxMmI0M2NhZWIxZWMwODk1
N2RmMGQzNjk0YmEwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cmVyZW5kZXJlci5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJlcl9oCisj
ZGVmaW5lIFByZXJlbmRlcmVyX2gKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2lu
Y2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvU2lu
Z2x5TGlua2VkTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFByZXJlbmRlckhhbmRsZTsKK2NsYXNz
IFByZXJlbmRlcmVyQ2xpZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgUHJlcmVuZGVyZXIgOiBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQcmVyZW5k
ZXJlcik7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UHJlcmVuZGVyZXIoKTsKKworICAgIFBhc3NS
ZWZQdHI8UHJlcmVuZGVySGFuZGxlPiByZW5kZXIoY29uc3QgS1VSTCYpOworCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8UHJlcmVuZGVyZXI+IGNyZWF0ZShEb2N1bWVudCopOworCitwcml2YXRlOgor
ICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+ID4gSGFuZGxlVmVjdG9y
OworICAgIHR5cGVkZWYgVmVjdG9yPEtVUkw+IEtVUkxWZWN0b3I7CisKKyAgICBleHBsaWNpdCBQ
cmVyZW5kZXJlcihEb2N1bWVudCopOworCisgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgT1ZFUlJJREU7CisKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQoKTsKKyAgICBQcmVyZW5kZXJlckNsaWVudCogY2xpZW50KCk7CisKKyAg
ICBQcmVyZW5kZXJlckNsaWVudCogbV9jbGllbnQ7CisgICAgSGFuZGxlVmVjdG9yIG1fYWN0aXZl
SGFuZGxlczsKKyAgICBIYW5kbGVWZWN0b3IgbV9zdXNwZW5kZWRIYW5kbGVzOworfTsKKworfQor
CisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjZW5kaWYgLy8gUHJlcmVuZGVy
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzhmMjQ3MGUyNjE2NGE0ZGQxNTkzNTk1YzYzZjEyNzFhZmZlNmMxZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAKQEAg
LTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVy
ZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJs
ZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCisjaWYgRU5BQkxFKExJ
TktfUFJFUkVOREVSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIHN0YXRpYworY29uc3Qg
QXRvbWljU3RyaW5nJiBQcmVyZW5kZXJlckNsaWVudDo6c3VwcGxlbWVudE5hbWUoKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIlByZXJlbmRlcmVyQ2xp
ZW50IikpOworICAgIHJldHVybiBuYW1lOworfQorCisvLyBzdGF0aWMKK1ByZXJlbmRlcmVyQ2xp
ZW50KiBQcmVyZW5kZXJlckNsaWVudDo6ZnJvbShQYWdlKiBwYWdlKQoreworICAgIFByZXJlbmRl
cmVyQ2xpZW50KiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8UHJlcmVuZGVyZXJDbGllbnQqPihT
dXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBBU1NF
UlQoc3VwcGxlbWVudCk7CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK3ZvaWQgcHJvdmlk
ZVByZXJlbmRlcmVyQ2xpZW50VG8oUGFnZSogcGFnZSwgUHJlcmVuZGVyZXJDbGllbnQqIGNsaWVu
dCkKK3sKKyAgICBQcmVyZW5kZXJlckNsaWVudDo6cHJvdmlkZVRvKHBhZ2UsIFByZXJlbmRlcmVy
Q2xpZW50OjpzdXBwbGVtZW50TmFtZSgpLCBhZG9wdFB0cihjbGllbnQpKTsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWE0Y2U5NDZmNjM4NzE4MDY3ODI2YzVkN2UwNWFhZjdmNGNmMTVmNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oCkBAIC0wLDAg
KzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJlckNsaWVudF9oCisjZGVmaW5lIFByZXJlbmRl
cmVyQ2xpZW50X2gKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2luY2x1ZGUgIlN1
cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBQcmVyZW5k
ZXJIYW5kbGU7CisKK2NsYXNzIFByZXJlbmRlcmVyQ2xpZW50IDogcHVibGljIFN1cHBsZW1lbnQ8
UGFnZT4geworcHVibGljOgorICAgIHZpcnR1YWwgflByZXJlbmRlcmVyQ2xpZW50KCkgeyB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbEFkZFByZXJlbmRlcihQcmVyZW5kZXJIYW5kbGUqKSA9IDA7
CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAg
IHN0YXRpYyBQcmVyZW5kZXJlckNsaWVudCogZnJvbShQYWdlKik7CisKK3Byb3RlY3RlZDoKKyAg
ICBQcmVyZW5kZXJlckNsaWVudCgpIHsgfQorfTsKKwordm9pZCBwcm92aWRlUHJlcmVuZGVyZXJD
bGllbnRUbyhQYWdlKiwgUHJlcmVuZGVyZXJDbGllbnQqKTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFRChMSU5LX1BSRVJFTkRFUikKKworI2VuZGlmIC8vIFBy
ZXJlbmRlcmVyQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuY3BwCmluZGV4IDAzNjhhNzI0NTI1ZmFmZTY0OTA1ODdiZWIyYjRmNmU2ZTlmY2M2
ZTYuLmM5NWFiZWRiNGM5MDhjNTk3ZGU0MzVlMmQ1Mzg4ZGI0MjE0NDNlYWIgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNzMsOCArNzMs
NiBAQCBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3JpdHkgZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3Vy
Y2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAg
ICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKICAgICAgICAgICAgIHJl
dHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7Ci0gICAgICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OkxpbmtQcmVyZW5kZXI6Ci0gICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJp
b3JpdHlWZXJ5TG93OwogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3Vy
Y2U6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OwogI2Vu
ZGlmCkBAIC0xMTQsOCArMTEyLDYgQEAgc3RhdGljIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlw
ZSBjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUoQ2FjaGVkUmVzb3VyY2UKICNpZiBFTkFC
TEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6
CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJlZmV0Y2g7Ci0gICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKLSAgICAgICAgcmV0dXJuIFJlc291
cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVyZW5kZXI7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6
TGlua1N1YnJlc291cmNlOgogICAgICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1N1YnJlc291cmNlOwogI2VuZGlmCkBAIC0yMjAsNyArMjE2LDcgQEAgdm9pZCBDYWNoZWRSZXNv
dXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNv
bnN0IFJlc28KICAgICB9CiAKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLSAgICBpZiAodHlw
ZSgpID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSgpID09IENhY2hlZFJl
c291cmNlOjpMaW5rUHJlcmVuZGVyIHx8IHR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1
YnJlc291cmNlKQorICAgIGlmICh0eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRj
aCB8fCB0eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSkKICAgICAgICAg
bV9yZXNvdXJjZVJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKCJQdXJwb3NlIiwgInByZWZldGNo
Iik7CiAjZW5kaWYKICAgICBtX3Jlc291cmNlUmVxdWVzdC5zZXRQcmlvcml0eShsb2FkUHJpb3Jp
dHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmlu
ZGV4IGMwN2IyMzFkNGQ1OTg1NzUxY2NjYTA2MjFkMzc1N2E5NTY2YjQ2OTguLjkxMWY4NTBlODg1
Y2NmZjdmMWQyNGNiNjhjNTZlNDBlNWZhZjJmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC03NCw3ICs3NCw2IEBAIHB1YmxpYzoKICNlbmRp
ZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgICAgICAsIExpbmtQcmVmZXRjaAotICAg
ICAgICAsIExpbmtQcmVyZW5kZXIKICAgICAgICAgLCBMaW5rU3VicmVzb3VyY2UKICNlbmRpZgog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTE1MCw3ICsxNDksNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBmYWxzZQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgICAgICAgICAg
fHwgdHlwZSgpID09IExpbmtQcmVmZXRjaAotICAgICAgICAgICAgfHwgdHlwZSgpID09IExpbmtQ
cmVyZW5kZXIKICAgICAgICAgICAgIHx8IHR5cGUoKSA9PSBMaW5rU3VicmVzb3VyY2UKICNlbmRp
ZgogICAgICAgICAgICAgfHwgdHlwZSgpID09IFJhd1Jlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODQ2
ZjNhNzM5Zjk1ZDMyMDA5OGIyOWMzMGRhMzg0Yzc5ODZkMWEyMi4uMWE1YTZmYmQyNTFmYzRkNjQ1
MzMzYmYwODE4MTM5NGNmNWRmZDExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04OCw4ICs4OCw2IEBAIHN0YXRp
YyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgUmVzb3VyY2VSZXF1ZXN0CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgogICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJl
c291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gpOwotICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVk
UmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXIpOwogICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICAgICAgICAgcmV0dXJuIG5ldyBD
YWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsK
ICNlbmRpZgpAQCAtMjQwLDcgKzIzOCw3IEBAIENhY2hlZFNWR0RvY3VtZW50KiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVxdWVzdCYgcmVxCiBDYWNo
ZWRSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7Ci0gICAgQVNT
RVJUKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0eXBlID09IENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtT
dWJyZXNvdXJjZSk7CisgICAgQVNTRVJUKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVm
ZXRjaCB8fCB0eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UpOwogICAgIHJl
dHVybiByZXF1ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNo
ZWRSZXNvdXJjZU9wdGlvbnMoKSwgcHJpb3JpdHkpOwogfQogI2VuZGlmCkBAIC0yODYsNyArMjg0
LDYgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpS
YXdSZXNvdXJjZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpMaW5rUHJlZmV0Y2g6Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJl
bmRlcjoKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAg
IC8vIFByZWZldGNoIGNhbm5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgZG9jdW1lbnQuCiAjZW5kaWYK
QEAgLTMxNSw3ICszMTIsNiBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0
KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKLSAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpMaW5rUHJlcmVuZGVyOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNv
dXJjZToKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTM4NSw3ICszODEsNiBA
QCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpU
eXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jl
c291cmNlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OkxpbmtQcmVmZXRjaDoKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVy
OgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNlbmRpZgogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXJlbmRl
ckhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDRmZGFmY2Y0MGY0ZWFmZTg0MGIwOGJmOTYwZTcxNDIzZGY3MmE3YQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oCkBA
IC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJIYW5kbGVfaAorI2RlZmluZSBQcmVy
ZW5kZXJIYW5kbGVfaAorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAi
UmVmZXJyZXJQb2xpY3kuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtVUkw7
CitjbGFzcyBQcmVyZW5kZXI7CisKK2NsYXNzIFByZXJlbmRlckhhbmRsZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFByZXJlbmRlckhhbmRsZT4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByZXJl
bmRlckhhbmRsZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJlcmVuZGVySGFu
ZGxlPiBjcmVhdGUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVycmVy
UG9saWN5KTsKKyAgICB+UHJlcmVuZGVySGFuZGxlKCk7CisKKyAgICBQcmVyZW5kZXIqIHByZXJl
bmRlcigpOworCisgICAgLy8gRklYTUU6IG9uZSBkYXkgdGhlcmUgd2lsbCBiZSBldmVudHMgaGVy
ZSwgYW5kIHdlIHdpbGwgYmUgYSBQcmVyZW5kZXJDbGllbnQuCisKKyAgICAvLyBBIHByZXJlbmRl
ciBsaW5rIGVsZW1lbnQgaXMgYWRkZWQgd2hlbiBpdCBpcyBpbnNlcnRlZCBpbnRvIGEgZG9jdW1l
bnQuCisgICAgdm9pZCBhZGQoKTsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlzIGFiYW5kb25lZCB3
aGVuIGl0J3MgbmF2aWdhdGVkIGF3YXkgZnJvbS4gVGhpcyBpcyBpcyBhIHdlYWtlciBzaWduYWwK
KyAgICAvLyB0aGFuIGNhbmNlbCgpLCBzaW5jZSB0aGUgbGF1bmNoZXIgaGFzbid0IGluZGljYXRl
ZCB0aGF0IHRoZSBwcmVyZW5kZXIgaXNuJ3Qgd2FudGVkLAorICAgIC8vIGFuZCB3ZSBtYXkgZW5k
IHVwIHVzaW5nIGl0IGFmdGVyLCBmb3IgaW5zdGFuY2UsIGEgc2hvcnQgcmVkaXJlY3QgY2hhaW4u
CisgICAgdm9pZCBhYmFuZG9uKCk7CisKKyAgICAvLyBBIHByZXJlbmRlciBpcyBjYW5jZWxlZCB3
aGVuIGl0IGlzIHJlbW92ZWQgZnJvbSBhIGRvY3VtZW50LgorICAgIHZvaWQgY2FuY2VsKCk7CisK
KyAgICAvLyBBIHByZXJlbmRlciBpcyBzdXNwZW5kZWQgYWxvbmcgd2l0aCB0aGUgRE9NIGNvbnRh
aW5pbmcgaXRzIGxpbmtsb2FkZXIgJiBwcmVyZW5kZXJlci4KKyAgICB2b2lkIHN1c3BlbmQoKTsK
KyAgICB2b2lkIHJlc3VtZSgpOworCisgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3Q7CisgICAg
Y29uc3QgU3RyaW5nJiByZWZlcnJlcigpIGNvbnN0OworICAgIFJlZmVycmVyUG9saWN5IHJlZmVy
cmVyUG9saWN5KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgUHJlcmVuZGVySGFuZGxlKGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGljeSk7CisgICAgUmVm
UHRyPFByZXJlbmRlcj4gbV9wcmVyZW5kZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNlbmRpZiAvLyBQcmVyZW5k
ZXJIYW5kbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UHJlcmVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTMzYThhYTcxYzAzM2VlODIxN2ExN2VhNDQ3MTViNDhhYmZjN2Q3
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1By
ZXJlbmRlci5jcHAKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlByZXJlbmRlci5oIgorCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisjaW5j
bHVkZSA8cHVibGljL1dlYlByZXJlbmRlci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5k
ZXJpbmdTdXBwb3J0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJlZmVycmVyUG9saWN5Lmg+Cisj
aW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJVUkwuaD4K
KworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
cmVyZW5kZXI6OlByZXJlbmRlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIFJlZmVycmVyUG9saWN5IHBvbGljeSkKKyAgICA6IG1fdXJsKHVybCkKKyAgICAsIG1fcmVm
ZXJyZXIocmVmZXJyZXIpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KHBvbGljeSkKKyNpZm5kZWYg
TkRFQlVHCisgICAgLCBtX3N0YXRlKEluYWN0aXZlKQorI2VuZGlmCit7Cit9CisKK1ByZXJlbmRl
cjo6flByZXJlbmRlcigpCit7Cit9CisKK3ZvaWQgUHJlcmVuZGVyOjpzZXRTdGF0ZShTdGF0ZSBz
dGF0ZSkKK3sKKyNpZmRlZiBOREVCVUcKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworI2Vsc2UK
KyAgICBtX3N0YXRlID0gc3RhdGU7CisjZW5kaWYKK30KKwordm9pZCBQcmVyZW5kZXI6OmFkZCgp
Cit7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gSW5hY3RpdmUpOworICAgIFdlYktpdDo6V2ViUHJl
cmVuZGVyaW5nU3VwcG9ydCogcGxhdGZvcm0gPSBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBv
cnQ6OmN1cnJlbnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAg
V2ViS2l0OjpXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOworICAgIHBsYXRmb3JtLT5h
ZGQod2ViUHJlcmVuZGVyKTsKKyAgICBzZXRTdGF0ZShBY3RpdmUpOworfQorCit2b2lkIFByZXJl
bmRlcjo6Y2FuY2VsKCkKK3sKKyAgICBBU1NFUlQoV2ViS2l0OjpXZWJQcmVyZW5kZXJpbmdTdXBw
b3J0OjpjdXJyZW50KCkpOworICAgIFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nU3VwcG9ydCogcGxh
dGZvcm0gPSBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJlbnQoKTsKKyAgICBp
ZiAoIXBsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gQWN0
aXZlKTsKKyAgICBXZWJLaXQ6OldlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIodGhpcyk7CisgICAg
cGxhdGZvcm0tPmNhbmNlbCh3ZWJQcmVyZW5kZXIpOworICAgIHNldFN0YXRlKEluYWN0aXZlKTsK
K30KKwordm9pZCBQcmVyZW5kZXI6OmFiYW5kb24oKQoreworICAgIFdlYktpdDo6V2ViUHJlcmVu
ZGVyaW5nU3VwcG9ydCogcGxhdGZvcm0gPSBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBvcnQ6
OmN1cnJlbnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgLy8g
RklYTUU6IEFzc2VydCBvbiB0aGUgc3RhdGUgYXMgSW5hY3RpdmUgaGVyZS4gSXQgaXMgY3VycmVu
dGx5IGNvbW1vbiB0byBjYWxsIGFiYW5kb24oKSBvbiBhbiBJbmFjdGl2ZQorICAgIC8vIHByZXJl
bmRlciwgYXMgdGhlIFByZXJlbmRlcmVyIGRvZXNuJ3Qga2VlcCB0cmFjayBvZiB3aGljaCBwcmVy
ZW5kZXJzIGFyZSBhY3RpdmUsIGFuZCBzbyBhbnkgcGFnZSB0aGF0CisgICAgLy8gZXZlciBoYWQg
YSBub3ctY2FuY2VsZWQgUHJlcmVuZGVyIHdpbGwgZ2V0IHRoaXMgYm9ndXMgc3RvcCgpIGNhbGwu
CisgICAgV2ViS2l0OjpXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOworICAgIHBsYXRm
b3JtLT5hYmFuZG9uKHdlYlByZXJlbmRlcik7CisgICAgc2V0U3RhdGUoSW5hY3RpdmUpOworfQor
Cit2b2lkIFByZXJlbmRlcjo6c3VzcGVuZCgpCit7CisgICAgYWJhbmRvbigpOworfQorCit2b2lk
IFByZXJlbmRlcjo6cmVzdW1lKCkKK3sKKyAgICBhZGQoKTsKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKExJTktfUFJFUkVOREVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUHJlcmVuZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QcmVyZW5kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDY1YjIyY2FiMGFkZWQ2YTg2YjAzYjEyMzYyNzRk
OWI5NDU5ZGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUHJlcmVuZGVyLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFByZXJlbmRlcl9o
CisjZGVmaW5lIFByZXJlbmRlcl9oCisKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUmVm
ZXJyZXJQb2xpY3kuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5oPgorI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBFTkFCTEUo
TElOS19QUkVSRU5ERVIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUHJlcmVuZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8UHJlcmVuZGVyPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUHJlcmVuZGVyKTsKK3B1YmxpYzoKKyAgICBjbGFzcyBFeHRyYURhdGEgOiBwdWJsaWMgUmVm
Q291bnRlZDxFeHRyYURhdGE+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkV4dHJh
RGF0YSgpIHsgfQorICAgIH07CisKKyAgICBQcmVyZW5kZXIoY29uc3QgS1VSTCYsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5KTsKKyAgICB+UHJlcmVuZGVyKCk7CisKKyAg
ICB2b2lkIGFkZCgpOworICAgIHZvaWQgY2FuY2VsKCk7CisgICAgdm9pZCBhYmFuZG9uKCk7Cisg
ICAgdm9pZCBzdXNwZW5kKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKworICAgIGNvbnN0IEtVUkwm
IHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CisgICAgY29uc3QgU3RyaW5nJiByZWZlcnJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXI7IH0KKyAgICBSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7IH0KKworICAgIHZv
aWQgc2V0RXh0cmFEYXRhKFBhc3NSZWZQdHI8RXh0cmFEYXRhPiBleHRyYURhdGEpIHsgbV9leHRy
YURhdGEgPSBleHRyYURhdGE7IH0KKyAgICBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJu
IG1fZXh0cmFEYXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZW51bSBTdGF0ZSB7CisgICAg
ICAgIEluYWN0aXZlLAorICAgICAgICBBY3RpdmUsCisgICAgfTsKKworICAgIHZvaWQgc2V0U3Rh
dGUoU3RhdGUpOworCisgICAgY29uc3QgS1VSTCBtX3VybDsKKyAgICBjb25zdCBTdHJpbmcgbV9y
ZWZlcnJlcjsKKyAgICBjb25zdCBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5OworCisg
ICAgUmVmUHRyPEV4dHJhRGF0YT4gbV9leHRyYURhdGE7CisKKyNpZm5kZWYgTkRFQlVHCisgICAg
U3RhdGUgbV9zdGF0ZTsKKyNlbmRpZgorfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktf
UFJFUkVOREVSKQorCisjZW5kaWYgLy8gUHJlcmVuZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlckhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3
Y2VjNzk3OWNkNzUzZmE0ZDAyZDgyN2Q3MTEzM2UzNTk4OGFlZTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwCkBA
IC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVyZW5k
ZXJIYW5kbGUuaCIKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2luY2x1ZGUgIktV
UkwuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXIuaCIKKyNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxQcmVyZW5kZXJIYW5k
bGU+IFByZXJlbmRlckhhbmRsZTo6Y3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiByZWZlcnJlciwgUmVmZXJyZXJQb2xpY3kgcG9saWN5KQoreworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUHJlcmVuZGVySGFuZGxlKHVybCwgcmVmZXJyZXIsIHBvbGljeSkpOworfQorCitQcmVy
ZW5kZXJIYW5kbGU6OlByZXJlbmRlckhhbmRsZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5IHBvbGljeSkKKyAgICA6IG1fcHJlcmVuZGVyKGFk
b3B0UmVmKG5ldyBQcmVyZW5kZXIodXJsLCByZWZlcnJlciwgcG9saWN5KSkpCit7Cit9CisKK1By
ZXJlbmRlckhhbmRsZTo6flByZXJlbmRlckhhbmRsZSgpCit7Cit9CisKK1ByZXJlbmRlciogUHJl
cmVuZGVySGFuZGxlOjpwcmVyZW5kZXIoKQoreworICAgIHJldHVybiBtX3ByZXJlbmRlci5nZXQo
KTsKK30KKwordm9pZCBQcmVyZW5kZXJIYW5kbGU6OmFkZCgpCit7CisgICAgcHJlcmVuZGVyKCkt
PmFkZCgpOworfQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6Y2FuY2VsKCkKK3sKKyAgICBwcmVy
ZW5kZXIoKS0+Y2FuY2VsKCk7Cit9CisKK3ZvaWQgUHJlcmVuZGVySGFuZGxlOjphYmFuZG9uKCkK
K3sKKyAgICBwcmVyZW5kZXIoKS0+YWJhbmRvbigpOworfQorCit2b2lkIFByZXJlbmRlckhhbmRs
ZTo6c3VzcGVuZCgpCit7CisgICAgcHJlcmVuZGVyKCktPnN1c3BlbmQoKTsKK30KKwordm9pZCBQ
cmVyZW5kZXJIYW5kbGU6OnJlc3VtZSgpCit7CisgICAgcHJlcmVuZGVyKCktPnJlc3VtZSgpOwor
fQorCitjb25zdCBLVVJMJiBQcmVyZW5kZXJIYW5kbGU6OnVybCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJlcmVuZGVyLT51cmwoKTsKK30KKworY29uc3QgU3RyaW5nJiBQcmVyZW5kZXJIYW5k
bGU6OnJlZmVycmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVyZW5kZXItPnVybCgpOwor
fQorCitSZWZlcnJlclBvbGljeSBQcmVyZW5kZXJIYW5kbGU6OnJlZmVycmVyUG9saWN5KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcmVyZW5kZXItPnJlZmVycmVyUG9saWN5KCk7Cit9CisKK30K
KworI2VuZGlmIC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MzI3ZmJkNzA2ZmM0MzA3ZmJjYTJmZmUwZjlmYWI4ODQ0YTA2M2MwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQ
cmVyZW5kZXIuY3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
CisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgeworCitjbGFzcyBFeHRyYURhdGFDb250
YWluZXIgOiBwdWJsaWMgV2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURhdGEgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV4dHJhRGF0YUNvbnRhaW5lcj4gY3JlYXRlKFdlYlByZXJl
bmRlcjo6RXh0cmFEYXRhKiBleHRyYURhdGEpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeHRyYURh
dGFDb250YWluZXIoZXh0cmFEYXRhKSk7IH0KKworICAgIHZpcnR1YWwgfkV4dHJhRGF0YUNvbnRh
aW5lcigpIHsgfQorCisgICAgV2ViUHJlcmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNv
bnN0IHsgcmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGlj
aXQgRXh0cmFEYXRhQ29udGFpbmVyKFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhKiBleHRyYURhdGEp
CisgICAgICAgIDogbV9leHRyYURhdGEoYWRvcHRQdHIoZXh0cmFEYXRhKSkKKyAgICB7CisgICAg
fQorCisgICAgT3duUHRyPFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhPiBtX2V4dHJhRGF0YTsKK307
CisKK30gLy8gYW5vbiBuYW1lc3BhY2UKKworV2ViUHJlcmVuZGVyOjpXZWJQcmVyZW5kZXIoUGFz
c1JlZlB0cjxXZWJDb3JlOjpQcmVyZW5kZXI+IHByZXJlbmRlcikKKyAgICA6IG1fcHJpdmF0ZShw
cmVyZW5kZXIpCit7Cit9CisKK1dlYlByZXJlbmRlcjo6fldlYlByZXJlbmRlcigpCit7CisgICAg
bV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK1dlYlVSTCBXZWJQcmVyZW5kZXI6OnVybCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFdlYlVSTChtX3ByaXZhdGUtPnVybCgpKTsKK30KKworV2ViU3RyaW5n
IFdlYlByZXJlbmRlcjo6cmVmZXJyZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUt
PnJlZmVycmVyKCk7Cit9CisKK1dlYlJlZmVycmVyUG9saWN5IFdlYlByZXJlbmRlcjo6cmVmZXJy
ZXJQb2xpY3koKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJSZWZlcnJlclBv
bGljeT4obV9wcml2YXRlLT5yZWZlcnJlclBvbGljeSgpKTsKK30KKwordm9pZCBXZWJQcmVyZW5k
ZXI6OnNldEV4dHJhRGF0YShXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogZXh0cmFEYXRhKQorewor
ICAgIG1fcHJpdmF0ZS0+c2V0RXh0cmFEYXRhKEV4dHJhRGF0YUNvbnRhaW5lcjo6Y3JlYXRlKGV4
dHJhRGF0YSkpOworfQorCitjb25zdCBXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogV2ViUHJlcmVu
ZGVyOjpleHRyYURhdGEoKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJDb3JlOjpQcmVyZW5kZXI6
OkV4dHJhRGF0YT4gd2ViY29yZUV4dHJhRGF0YSA9IG1fcHJpdmF0ZS0+ZXh0cmFEYXRhKCk7Cisg
ICAgaWYgKCF3ZWJjb3JlRXh0cmFEYXRhKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8RXh0cmFEYXRhQ29udGFpbmVyKj4od2ViY29yZUV4dHJhRGF0YS5nZXQoKSkt
PmV4dHJhRGF0YSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRUQoTElOS19QUkVSRU5ERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggZmU5ZGU2
NjQzNzA0NjdmN2MxYTI1YjBmNGQzYTViMjFkYjI2OWEzNy4uNTAxNTlkZjU3Nzg5YTE4NjcwMDcz
Y2E3OGJmNjcwMmZhODI0ZmQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtNDUsNyAr
NDUsNiBAQCBwdWJsaWM6CiAgICAgICAgIFRhcmdldElzV29ya2VyLAogICAgICAgICBUYXJnZXRJ
c1NoYXJlZFdvcmtlciwKICAgICAgICAgVGFyZ2V0SXNQcmVmZXRjaCwKLSAgICAgICAgVGFyZ2V0
SXNQcmVyZW5kZXIsCiAgICAgICAgIFRhcmdldElzRmF2aWNvbiwKICAgICAgICAgVGFyZ2V0SXNY
SFIsCiAgICAgICAgIFRhcmdldElzVGV4dFRyYWNrLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNl
UmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4IDlhMzUwYzFjZWIwYjhiNGUxMDExNDUxOGY1NGYy
MGIxMTc4NWQ3NDQuLjY4NDJhNTg3NWEwMmVlMDE1YzFhNGIzMTMxOGIxMjU3ZjJhYmQ0ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNv
dXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAKQEAgLTg2LDgg
Kzg2LDYgQEAgc3RhdGljIGlubGluZSBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0VHlwZSBwbGF0Zm9y
bVRhcmdldFR5cGVGb3JSZXF1ZXN0KGNvbnN0IFJlc28KICAgICAgICAgcmV0dXJuIE5ldHdvcmtS
ZXF1ZXN0OjpUYXJnZXRJc0ltYWdlOwogICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c1ByZWZldGNoOgogICAgICAgICByZXR1cm4gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzU3VicmVz
b3VyY2U7Ci0gICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJlcmVuZGVyOgotICAg
ICAgICByZXR1cm4gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CiAgICAgY2Fz
ZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzWEhSOgogICAgICAgICByZXR1cm4gTmV0d29ya1Jl
cXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CiAgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRh
cmdldElzVGV4dFRyYWNrOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggZmNlMWViZmQwNzIzOTk0
NDM0MTk2MzNkZDFkNzEwOWVlODcyMzQzMi4uN2VhNjFhODg4YmM5ZmI4YWViYjI0MTNiODQxYjNj
YzM2ZTI2NWNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
aHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Myw3ICs1Myw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFRhcmdldElzV29ya2VyLAogICAgICAgICAgICAg
VGFyZ2V0SXNTaGFyZWRXb3JrZXIsCiAgICAgICAgICAgICBUYXJnZXRJc1ByZWZldGNoLAotICAg
ICAgICAgICAgVGFyZ2V0SXNQcmVyZW5kZXIsCiAgICAgICAgICAgICBUYXJnZXRJc0Zhdmljb24s
CiAgICAgICAgICAgICBUYXJnZXRJc1hIUiwKICAgICAgICAgICAgIFRhcmdldElzVGV4dFRyYWNr
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDYyOGI2ZjMwOTM1NzA0ZGUxZGE5Y2M4
NTUzMGJiZWNiOWVhMWYzZjEuLjRiOWE1ODNmZTk3NzkzMWFkZWMwOTI5N2E0Nzk1YWU4OTMxZDZj
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTQ0MSw2ICs0NDEsOCBAQAogICAg
ICAgICAgICAgICAgICdzcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCcsCisgICAgICAgICAgICAgICAg
J3NyYy9QcmVyZW5kZXJlckNsaWVudEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9QcmVy
ZW5kZXJlckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2FuZHJvaWQvV2Vi
SW5wdXRFdmVudEZhY3RvcnkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2xpbnV4L1dlYkZv
bnRJbmZvLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9saW51eC9XZWJGb250UmVuZGVyaW5n
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggMTExZWNj
NjQxODIxMjNiM2ViM2I5OTdjZGI2NTZmYmZlYjBhN2U1Ny4uYzFhMjljZWQ5OThlZDAzMmRlMTg4
MmIwNWI2ODE1MzA5NDE1OWQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXcuaApAQCAtMTA3LDkgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0
b2ZpbGxDbGllbnQoV2ViQXV0b2ZpbGxDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dERldlRvb2xzQWdlbnRDbGllbnQoV2ViRGV2VG9vbHNBZ2VudENsaWVudCopID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KikgPSAw
OwotICAgIC8vIEZJWE1FOiBBZnRlciB0aGUgUHJlcmVuZGVyaW5nIEFQSSBsYW5kcyBpbiBjaHJv
bWUsIHJlbW92ZSB0aGlzIHN0YWdpbmcgdGh1bmsKLSAgICAvLyBmb3Igc2V0UHJlcmVuZGVyZXJD
bGllbnQoKS4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVu
ZGVyZXJDbGllbnQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQo
V2ViUHJlcmVuZGVyZXJDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNwZWxsQ2hl
Y2tDbGllbnQoV2ViU3BlbGxDaGVja0NsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRk
VGV4dEZpZWxkRGVjb3JhdG9yQ2xpZW50KFdlYlRleHRGaWVsZERlY29yYXRvckNsaWVudCopID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJlcmVuZGVyZXJD
bGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVyQ2xp
ZW50SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY1MWQyNzlkZTg0NTFhOGJiYTFkYjU0ODY0NWY5ZGM2
ZDA2NjMyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1By
ZXJlbmRlcmVyQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisj
aW5jbHVkZSAiUHJlcmVuZGVySGFuZGxlLmgiCisjaW5jbHVkZSAiV2ViUHJlcmVuZGVyZXJDbGll
bnQuaCIKKyNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVy
ZW5kZXIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUHJlcmVuZGVyZXJDbGllbnRJbXBsOjpQcmVyZW5kZXJlckNsaWVudEltcGwoV2ViUHJl
cmVuZGVyZXJDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKK30KKwor
dm9pZCBQcmVyZW5kZXJlckNsaWVudEltcGw6OndpbGxBZGRQcmVyZW5kZXIoV2ViQ29yZTo6UHJl
cmVuZGVySGFuZGxlKiBwcmVyZW5kZXJIYW5kbGUpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAg
ICAgICAgcmV0dXJuOworICAgIFdlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIocHJlcmVuZGVySGFu
ZGxlLT5wcmVyZW5kZXIoKSk7CisgICAgbV9jbGllbnQtPndpbGxBZGRQcmVyZW5kZXIoJndlYlBy
ZXJlbmRlcik7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJl
cmVuZGVyZXJDbGllbnRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUxNzYzMmFlYTQ1Y2NmNmE1ZTM2MGNl
ZWMxOGQ0Y2Q1MzkzMTI1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRl
ZiBQcmVyZW5kZXJlckNsaWVudEltcGxfaAorI2RlZmluZSBQcmVyZW5kZXJlckNsaWVudEltcGxf
aAorCisjaW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBQcmVyZW5kZXJIYW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJQcmVyZW5kZXJlckNsaWVudDsKKworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnRJbXBs
IDogcHVibGljIFdlYkNvcmU6OlByZXJlbmRlcmVyQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShQcmVyZW5kZXJlckNsaWVudEltcGwpOworcHVibGljOgorICAgIGV4cGxpY2l0IFBy
ZXJlbmRlcmVyQ2xpZW50SW1wbChXZWJQcmVyZW5kZXJlckNsaWVudCopOworCisgICAgdm9pZCB3
aWxsQWRkUHJlcmVuZGVyKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZSopIE9WRVJSSURFOworCitw
cml2YXRlOgorICAgIFdlYlByZXJlbmRlcmVyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30KKwor
I2VuZGlmIC8vIFByZXJlbmRlcmVyQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViS2l0LmNwcAppbmRleCBkYTU0Y2NhNTAxZTk5Mzc5ZTM0NGU1Y2E1ZWRlOGRkNTViMGJiNGMz
Li5lZTk5OWE5MTYxNmRiMDkwMjY0ZTE5NmIzM2RlMTZkZjFhY2JhN2E0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYktpdC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJUaHJlYWQuaCIKICNpbmNsdWRlICJ2OC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0
Zm9ybS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0Lmg+CiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTE2Myw2ICsxNjQsNyBAQCB2b2lkIHNodXRkb3du
KCkKICNlbmRpZgogICAgIHNfd2ViS2l0UGxhdGZvcm1TdXBwb3J0ID0gMDsKICAgICBQbGF0Zm9y
bTo6c2h1dGRvd24oKTsKKyAgICBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpzaHV0ZG93bigpOwog
fQogCiBXZWJLaXRQbGF0Zm9ybVN1cHBvcnQqIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMzJjNjFhMjVlZThl
Nzg4MjJmNDdhYTNjYjYxMDY4ODc4MTVhZDdiOS4uMWU3MzRjMWM5MDc1NWUzNzI3ZWY5M2M3MGNh
NDcyOTg3YzNmZTcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcApAQCAtOTksNiArOTksNyBAQAogI2luY2x1ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlBvcHVwQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50
LmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiUHJvZ3Jl
c3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgpAQCAtMzIyLDYgKzMyMywxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIHBlcm1pc3Npb25DbGllbnQp
CiAgICAgbV9wZXJtaXNzaW9uQ2xpZW50ID0gcGVybWlzc2lvbkNsaWVudDsKIH0KIAordm9pZCBX
ZWJWaWV3SW1wbDo6c2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJDbGllbnQqIHBy
ZXJlbmRlcmVyQ2xpZW50KQoreworICAgIHByb3ZpZGVQcmVyZW5kZXJlckNsaWVudFRvKG1fcGFn
ZS5nZXQoKSwgbmV3IFByZXJlbmRlcmVyQ2xpZW50SW1wbChwcmVyZW5kZXJlckNsaWVudCkpOwor
fQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRTcGVsbENoZWNrQ2xpZW50KFdlYlNwZWxsQ2hlY2tD
bGllbnQqIHNwZWxsQ2hlY2tDbGllbnQpCiB7CiAgICAgbV9zcGVsbENoZWNrQ2xpZW50ID0gc3Bl
bGxDaGVja0NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmlu
ZGV4IDkzODNiYTI4ZDk2MDhiYTJkYzVkMGE3ZmQyNDE3YTg4MjRlMDk0ZDcuLjhiM2JjMmIxM2U0
ZTlhZjQ0M2VlYWYxZmVjYWIwYTA2Y2E1MmY5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaApAQCAtOTAsNiArOTAsNyBAQCBjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudFByb3h5OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwogY2xhc3MgR2VvbG9jYXRpb25D
bGllbnRQcm94eTsKIGNsYXNzIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDsKK2NsYXNzIFByZXJl
bmRlcmVyQ2xpZW50SW1wbDsKIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50SW1wbDsKIGNsYXNzIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHk7CiBjbGFzcyBVc2VyTWVkaWFDbGllbnRJbXBsOwpA
QCAtMTAwLDYgKzEwMSw3IEBAIGNsYXNzIFdlYkRldlRvb2xzQWdlbnRQcml2YXRlOwogY2xhc3Mg
V2ViRnJhbWVJbXBsOwogY2xhc3MgV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgV2ViUGFnZVBvcHVw
SW1wbDsKK2NsYXNzIFdlYlByZXJlbmRlcmVyQ2xpZW50OwogY2xhc3MgV2ViSW1hZ2U7CiBjbGFz
cyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKQEAgLTE2MCw2ICsxNjIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dG9maWxsQ2xpZW50KFdlYkF1dG9m
aWxsQ2xpZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHNldERldlRvb2xzQWdlbnRDbGllbnQoV2Vi
RGV2VG9vbHNBZ2VudENsaWVudCopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQZXJtaXNzaW9uQ2xp
ZW50KFdlYlBlcm1pc3Npb25DbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVy
ZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJDbGllbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U3BlbGxDaGVja0NsaWVudChXZWJTcGVsbENoZWNrQ2xpZW50Kik7CiAgICAgdmlydHVh
bCB2b2lkIGFkZFRleHRGaWVsZERlY29yYXRvckNsaWVudChXZWJUZXh0RmllbGREZWNvcmF0b3JD
bGllbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFdlYlNldHRpbmdzKiBzZXR0aW5ncygpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDMzMzM1MDhkOTI4ODNiMzVmMzU0OTVmMzExOTQ5OTQ2NTkzMmU4MWIuLjEwZTI1M2U5
NDc2MTk2ZTkzOGEyMGZiMGU4Y2U5ZmQ2YjFkNzFjZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAor
MjAxMi0wNC0zMCAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBBZGQgUHJlcmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZh
Y2UgZm9yIFByZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKwor
ICAgICAgICBUaGUgcHJlcmVuZGVyIGNhc2UgaXNuJ3QgcXVpdGUgYSByZXNvdXJjZSBsb2FkLCBh
bmQgdXNpbmcgcmVzb3VyY2UgbG9hZGluZyB0bworICAgICAgICByZXRyaWV2ZSB0aGVtIGhhcyBj
b25zdHJhaW5lZCB0aGUgQVBJLCBhbmQgdW5uZWNlc3NhcmlseSBjb21wbGljYXRlZCB0aGUgbG9h
ZGVyLgorCisgICAgICAgIFRoZSBuZXcgUHJlcmVuZGVyZXIgYW5kIFByZXJlbmRlckhhbmRsZSBs
ZXQgPGxpbmsgcmVsPXByZXJlbmRlci4uLj4gZWxlbWVudHMgc2lnbmFsCisgICAgICAgIHJlbW92
YWwgYW5kIHVubG9hZCB0byB0aGVpciBwbGF0Zm9ybS4KKworICAgICAgICBUaGVzZSB0ZXN0cyBh
cmUgYmVpbmcgcmVtb3ZlZCwgYW5kIGV4cGVjdGF0aW9ucyB1cGRhdGVkLCBiZWNhdXNlIHRoZSBv
bGQgcGhhbnRvbS1sb2FkCisgICAgICAgIHByZXJlbmRlcmluZyBpbnRlcmZhY2Ugd2FzIHN1c2Nl
cHRpYmxlIHRvIGxheW91dCB0ZXN0aW5nLCBhbmQgdGhlIG5ldyBpbnRlcmZhY2UgcmVxdWlyZXMK
KyAgICAgICAgYSBmdWxsIHBsYXRmb3JtIHRvIHRlc3QsIHNvIGl0IGNhbid0IHJlYWxseSBiZSBh
IGxheW91dCB0ZXN0LgorCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJl
bmRlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZXJlbmRlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay90
ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkOgorCiAyMDEyLTA0LTMw
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCBy
ZXZpZXdlZDogY2hyb21pdW0gZXhwZWN0YXRpb25zIHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjViZmUyNjQ1MjA0ZDEzMjU3ZWNk
MjQ2Mjk1YzBhOTRkNzFjY2VkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1wcmVmZXRjaC5saW5r
IGhhcyBNSU1FIHR5cGUgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCi1QQVNTIG9ubG9hZCBjYWxs
ZWQhCi1UaGlzIHRlc3Qgd2lsbCBvbmx5IHByaW50ICJQQVNTIiBvciAiRkFJTCIgaWYgbGluayBw
cmVmZXRjaGVzIGFyZSBlbmFibGVkLCBvdGhlcndpc2UgaXQgd2lsbCBzaG93IG5vdGhpbmcgYmVs
b3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJl
cmVuZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVu
ZGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5NzhmNDJjZWVjNjM3NTNk
MDY3YzI0YjI4YWVkNzNmZWM2MzRjNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJl
bmRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotPGJvZHk+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHByZWZldGNoX29ubG9hZCgp
IHsKLSAgICB0ZXN0UGFzc2VkKCdvbmxvYWQgY2FsbGVkIScpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7Ci19Ci08L3NjcmlwdD4KLTxodG1sPgotPHA+
VGhpcyB0ZXN0IHdpbGwgb25seSBwcmludCAiUEFTUyIgb3IgIkZBSUwiIGlmIGxpbmsgcHJlZmV0
Y2hlcyBhcmUKLWVuYWJsZWQsIG90aGVyd2lzZSBpdCB3aWxsIHNob3cgbm90aGluZyBiZWxvdy48
L3A+Ci08bGluayBocmVmPSJwcmVmZXRjaC5saW5rIiByZWw9InByZXJlbmRlciIgb25sb2FkPSJw
cmVmZXRjaF9vbmxvYWQoKSIgb25lcnJvcj0idGVzdEZhaWxlZCgnb25lcnJvcicpIiAvPgotPC9o
dG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3Rh
dGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAppbmRleCA3ZmRhMDVlZjI5MWZhYjk3YTQzNDYxNTY1YzIzZDg2YzNjZTE3YjIwLi4wNDIxMzNl
MmVlYWE0NzAxOGQzOWIxNDBhYjMzMTQzMjdiM2EwYmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTg5OCw3ICs4OTgsNiBAQCBCVUdX
S0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sID0gRkFJTAogQlVH
V0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1s
ID0gRkFJTAogQlVHV0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25l
cnJvci5odG1sID0gRkFJTAogQlVHV0tHVEsgOiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJl
ZmV0Y2gtb25sb2FkLmh0bWwgPSBGQUlMCi1CVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVyZW5kZXIuaHRtbCA9IEZBSUwKIEJVR1dLR1RLIDogZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3N1YnJlc291cmNlLmh0bWwgPSBGQUlMCiAKIC8vIFRlc3RzIGZhaWxpbmcgYmVjYXVz
ZSB0aGUgY29udGV4dCBtZW51IGlzIGdyYWJiaW5nIG1vdXNlIGV2ZW50cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKaW5kZXggMjJkYTk4ZGRlMTFiMTBkOGQyZGRlYjc0ODZhNDdjOTg5ZDZlZTgz
Mi4uMzAyNzRlNDUwMmZhYWU1NzAwZjQzYmMxMzcyNTliOGE3YmU5NzZkMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQKQEAgLTE5Myw3ICsxOTMsNiBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJl
ZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25s
b2FkLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC10b28tbWFueS1jbGll
bnRzLmh0bWwKLWZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3N1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9saW5r
LXJlbC1wcmVmZXRjaC1hbmQtc3VicmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZl
dGNoLXB1cnBvc2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggODcxMmVjMjZhNTNi
MzliZDE4MDFlOWVlMjZhMzBkM2I5NGQ1MzQxZS4uZGM1NWMyZTVjNTJkMTZkZDQwZTBiYmNkMWMy
Y2E5ODQwZGM5NDZkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0xNDQsNyArMTQ0LDYg
QEAgZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbAogZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlZmV0Y2gtdG9vLW1hbnktY2xpZW50cy5odG1sCi1mYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlcmVuZGVyLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zdWJyZXNvdXJjZS5o
dG1sCiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNlLmh0
bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKaW5kZXggOTllMjU4Mzg1MzVkZmVkN2M3ODkyMjMxYTI4YjU3ZmVjNDU0NDlhNy4u
MWJiMjM2ZWI4MzQ3YzE2Y2Q0YmI0YmQyZjliZmQ2YzFkNTMwYTE0ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQKQEAgLTEwOTgsNyArMTA5OCw2IEBAIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9wcmVmZXRjaC1vbmVycm9yLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRj
aC1vbmxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLXRvby1tYW55
LWNsaWVudHMuaHRtbAogaHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLXByZWZldGNoLWFuZC1zdWJy
ZXNvdXJjZS5odG1sCi1mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKIGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zdWJyZXNvdXJjZS5odG1sCiBodHRwL3Rlc3RzL21pc2Mv
cHJlZmV0Y2gtcHVycG9zZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVk
CmluZGV4IGUwOTEzOWIyZTM5OTAyZWI1YWRkYjVhNDY0ODBmZGUzYWM0OTdkN2QuLjdjYTk5MTZl
MGI5MTAwNzAyZTFhNmM5MjQ2ZWE3ZWY0MjVjYjhlY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
Y2Fpcm8vU2tpcHBlZApAQCAtMTYxMyw3ICsxNjEzLDYgQEAgZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZl
dGNoLW9ubG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtdG9vLW1h
bnktY2xpZW50cy5odG1sCiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtcHJlZmV0Y2gtYW5kLXN1
YnJlc291cmNlLmh0bWwKLWZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAog
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3N1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlz
Yy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141733</attachid>
            <date>2012-05-14 08:16:22 -0700</date>
            <delta_ts>2012-05-14 21:42:11 -0700</delta_ts>
            <desc>rebase for ews and commit...</desc>
            <filename>bug-85005-20120514111620.patch</filename>
            <type>text/plain</type>
            <size>89992</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBjYThhYWFiMTYyYzZh
NDU4MDRhYjgzMWY0MmU4ZjgzYTE1NDI3ZmZkLi5hNDI1MTFkNzRiNDY0N2QzOGE1ZDdlYmI1OGUy
YWM5NjZiNGUzOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wNS0wMiAg
R2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJlcmVu
ZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFByZXJl
bmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIFBs
YXRmb3JtLmd5cGk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5kZXI6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViUHJlcmVuZGVyKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMv
V2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YlByZXJlbmRlcmluZ1N1cHBvcnQpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJVUkxS
ZXF1ZXN0Lmg6CisgICAgICAgICogY2hyb21pdW0vc3JjL1dlYlByZXJlbmRlcmluZ1N1cHBvcnQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJl
bmRlcmluZ1N1cHBvcnQ6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVyZW5k
ZXJpbmdTdXBwb3J0OjpzaHV0ZG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcmlu
Z1N1cHBvcnQ6OmN1cnJlbnQpOgorCiAyMDEyLTA1LTExICBNYXJrIFBpbGdyaW0gIDxwaWxncmlt
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1vdmUgY3JlYXRlTG9jYWxTdG9y
YWdlTmFtZXNwYWNlIHRvIFBsYXRmb3JtLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNzdmMWE1MjVjZDQ4MGNl
N2Y2OWJlYTg4MWZhNGI4NmI1YTJiM2M1Li4xMjE0OTg1M2MwZWJiODUxMjMxM2MwYjdjNDhmZWRi
OGNkNWNhMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI4IEBACisyMDEyLTA1LTAyICBHYXZp
biBQZXRlcnMgIDxnYXZpbnBAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBQcmVyZW5kZXJl
ciwgUHJlcmVuZGVySGFuZGxlIGFuZCBhIGNocm9taXVtIGludGVyZmFjZSBmb3IgUHJlcmVuZGVy
aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUw
MDUKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBwcmVy
ZW5kZXIgY2FzZSBpc24ndCBxdWl0ZSBhIHJlc291cmNlIGxvYWQsIGFuZCB1c2luZyByZXNvdXJj
ZSBsb2FkaW5nIHRvCisgICAgICAgIHJldHJpZXZlIHRoZW0gaGFzIGNvbnN0cmFpbmVkIHRoZSBB
UEksIGFuZCB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkIHRoZSBsb2FkZXIuCisKKyAgICAgICAg
VGhlIG5ldyBQcmVyZW5kZXJlciBhbmQgUHJlcmVuZGVySGFuZGxlIGxldCA8bGluayByZWw9cHJl
cmVuZGVyLi4uPiBlbGVtZW50cyBzaWduYWwKKyAgICAgICAgcmVtb3ZhbCBhbmQgdW5sb2FkIHRv
IHRoZWlyIHBsYXRmb3JtLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpbnRlcmZh
Y2UgcmVxdWlyZXMgYSBmdWxsIHBsYXRmb3JtIHRvIHdvcmssIGFuZCBkb2Vzbid0IGFmZmVjdCBs
YXlvdXQuICBUZXN0CisgICAgICAgIGl0IHdpdGggeW91ciBwbGF0Zm9ybSB3aGVuIGltcGxlbWVu
dGVkIGZvciBpdC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6cHJlcmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cmVtb3ZlZEZyb20pOgorICAgICAg
ICAqIGh0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rUmVs
QXR0cmlidXRlOjpMaW5rUmVsQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxBdHRy
aWJ1dGUuaDoKKyAgICAgICAgKExpbmtSZWxBdHRyaWJ1dGUpOgorICAgICAgICAqIGxvYWRlci9M
aW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OmxvYWRMaW5rKToK
KyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OnJlbGVhc2VkKToKKyAgICAgICAgKiBsb2Fk
ZXIvTGlua0xvYWRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChMaW5rTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvUHJlcmVuZGVyZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpQcmVyZW5kZXJlcjo6UHJlcmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlcmVuZGVyZXI6On5QcmVyZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJl
cjo6cmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpzdG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
ZXJlbmRlcmVyOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVyZXI6OmRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyOjpjbGllbnQpOgorICAgICAgICAq
IGxvYWRlci9QcmVyZW5kZXJlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlByZXJlbmRlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQ
cmVyZW5kZXJlcik6CisgICAgICAgICogbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmguCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyQ2xpZW50OjpzdXBwbGVt
ZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlckNsaWVudDo6ZnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpwcm92aWRlUHJlcmVuZGVyZXJDbGllbnRUbyk6CisgICAgICAgICog
bG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvTGlua1JlbEF0dHJpYnV0ZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQcmVy
ZW5kZXJlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJlckNsaWVudDo6flBy
ZXJlbmRlcmVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcmVyQ2xpZW50OjpQ
cmVyZW5kZXJlckNsaWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6
Omlnbm9yZUZvclJlcXVlc3RDb3VudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0TGlua1Jlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJl
Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVx
dWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmguCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFByZXJlbmRlckhhbmRsZSk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vUHJlcmVuZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6UHJlcmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlByZXJlbmRlcjo6flByZXJlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OnNl
dFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6YWRkKToKKyAgICAgICAgKFdl
YkNvcmU6OlByZXJlbmRlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6
YWJhbmRvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OnN1c3BlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJlcmVuZGVyOjpyZXN1bWUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1ByZXJlbmRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYlByZXJlbmRlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQcmVyZW5k
ZXIpOgorICAgICAgICAoRXh0cmFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6
RXh0cmFEYXRhOjp+RXh0cmFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6dXJs
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlcjo6cmVmZXJyZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJlcmVuZGVyOjpyZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVy
ZW5kZXI6OnNldEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXI6OmV4dHJh
RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVySGFuZGxlLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIu
aC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpQcmVyZW5kZXJI
YW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjp+UHJlcmVuZGVySGFu
ZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6cHJlcmVuZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZTo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6
OlByZXJlbmRlckhhbmRsZTo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXJlbmRlckhh
bmRsZTo6YWJhbmRvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5kbGU6OnN1c3Bl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjpyZXN1bWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJlcmVuZGVySGFuZGxlOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
cmVuZGVySGFuZGxlOjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmVyZW5kZXJIYW5k
bGU6OnJlZmVycmVyUG9saWN5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlByZXJlbmRlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViUHJlcmVuZGVyLmguCisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcjo6V2Vi
UHJlcmVuZGVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJl
bmRlcjo6fldlYlByZXJlbmRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRlcjo6dXJs
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlcmVuZGVyOjpyZWZlcnJlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByZXJlbmRlcjo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVyZW5kZXI6OnNldEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXJlbmRl
cjo6ZXh0cmFEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVz
b3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jl
c291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGxhdGZvcm1U
YXJnZXRUeXBlRm9yUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlcXVlc3QuaDoKKwogMjAxMi0wNS0xMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjExNjgwMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWFmZTA2MzY1NzI0NDRkOGE4
MDQ4NjQ3NThiZGVjYzQ4MjdjYzU0NS4uNTdiMzlkMmRmZjNiY2VmM2RkM2E0YThmMWU1ZTI5OGY2
ZGRhOTBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
Mi0wNS0xNCAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBB
ZGQgUHJlcmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2Ug
Zm9yIFByZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAg
ICAgICBUaGUgcHJlcmVuZGVyIGNhc2UgaXNuJ3QgcXVpdGUgYSByZXNvdXJjZSBsb2FkLCBhbmQg
dXNpbmcgcmVzb3VyY2UgbG9hZGluZyB0bworICAgICAgICByZXRyaWV2ZSB0aGVtIGhhcyBjb25z
dHJhaW5lZCB0aGUgQVBJLCBhbmQgdW5uZWNlc3NhcmlseSBjb21wbGljYXRlZCB0aGUgbG9hZGVy
LgorCisgICAgICAgIFRoZSBuZXcgUHJlcmVuZGVyZXIgYW5kIFByZXJlbmRlckhhbmRsZSBsZXQg
PGxpbmsgcmVsPXByZXJlbmRlci4uLj4gZWxlbWVudHMgc2lnbmFsCisgICAgICAgIHJlbW92YWwg
YW5kIHVubG9hZCB0byB0aGVpciBwbGF0Zm9ybS4KKworICAgICAgICAqIFdlYktpdC5neXA6Cisg
ICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvUHJlcmVuZGVyZXJDbGll
bnRJbXBsLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmli
dXRlLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpQcmVyZW5kZXJlckNs
aWVudEltcGw6OlByZXJlbmRlcmVyQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlByZXJl
bmRlcmVyQ2xpZW50SW1wbDo6d2lsbEFkZFByZXJlbmRlcik6CisgICAgICAgICogc3JjL1ByZXJl
bmRlcmVyQ2xpZW50SW1wbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtS
ZWxBdHRyaWJ1dGUuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFByZXJlbmRlcmVyQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYktpdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OnNodXRkb3duKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJlcmVuZGVyZXJDbGllbnQp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJWaWV3SW1wbCk6CisKIDIwMTItMDUtMTEgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMTY4MDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxh
dGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IGU0YTZlMWIz
MDNkMjZlOTkwMTU0M2FmMTAyNmQ4ZTI0ODJlODdjNTIuLjliZDhiNDM1YTVhZmI2N2MzMDIxNmQx
M2QzYzU5YTU0OTBmYTdkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5n
eXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC05NSw2ICs5NSw3IEBA
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlRocmVhZC5oJywKICAgICAgICAgICAg
ICdjaHJvbWl1bS9wdWJsaWMvV2ViVGhyZWFkU2FmZURhdGEuaCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vcHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4LmgnLAorICAgICAgICAgICAgJ2No
cm9taXVtL3B1YmxpYy9XZWJQcmVyZW5kZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVi
bGljL1dlYlVSTC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVVJMRXJyb3Iu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaCcsCkBA
IC0xMDgsNiArMTA5LDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvUGxhdGZvcm0uY3Bw
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViQ1N0cmluZy5jcHAnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL3NyYy9XZWJGbG9hdFF1YWQuY3BwJywKKyAgICAgICAgICAgICdjaHJvbWl1
bS9zcmMvV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3NyYy9XZWJTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViVmlkZW9G
cmFtZS5jcHAnLAogICAgICAgICBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlByZXJlbmRlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJQcmVyZW5kZXIuaAppbmRleCA0MTc0YmY0NzM4MzMwZTBmZThkZWE3ZjIwM2JmZGE3YjJk
ZDQxMWM2Li41ZWQ4MDQ5MDBmYzZmYTBiNmNjODE4NTQ2NDdkY2I2OWEyMzI1YWM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlci5oCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgKQEAgLTQxLDI5
ICs0MSwzNSBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjZW5kaWYKIAorbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgUHJlcmVuZGVyOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotLy8gVGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXIgZXhpc3RzIG9u
bHkgZm9yIHN0YWdpbmc7IHRoaXMgd2lsbCBhbGxvdwotLy8gdGhlIENocm9taXVtIHNpZGUgb2Yg
dGhlIFByZXJlbmRlcmluZyBBUEkgdG8gbGFuZCwgYW5kIHRoZW4gbGF0ZXIgd2UgY2FuIGF0b21p
Y2x5Ci0vLyBzd2l0Y2ggV2ViS2l0IHRvIHByZXJlbmRlciwgYW5kIGZpbmFsbHkgcmVtb3ZlIHRo
ZSBvbGQgcGhhbnRvbS1yZXF1ZXN0IHByZXJlbmRlcgotLy8gaW1wbGVtZW50YXRpb24gZnJvbSBD
aHJvbWl1bS4KLS8vIEZJWE1FOiBQdXQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBoZXJlIGFm
dGVyIHRoZSBDaHJvbWl1bSBzaWRlIG9mIHRoaXMgQVBJCi0vLyBsYW5kcy4KIGNsYXNzIFdlYlBy
ZXJlbmRlciB7CiBwdWJsaWM6CiAgICAgY2xhc3MgRXh0cmFEYXRhIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsgfQogICAgIH07Ci0gICAgV2ViVVJMIHVybCgp
IGNvbnN0IHsgcmV0dXJuIFdlYlVSTCgpOyB9Ci0gICAgV2ViU3RyaW5nIHJlZmVycmVyKCkgY29u
c3QgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KLSAgICBXZWJSZWZlcnJlclBvbGljeSByZWZlcnJl
clBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIFdlYlJlZmVycmVyUG9saWN5KCk7IH0KLSAgICB2b2lk
IHNldEV4dHJhRGF0YShFeHRyYURhdGEqKSB7IH0KLSAgICBjb25zdCBFeHRyYURhdGEqIGV4dHJh
RGF0YSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgor
ICAgIGV4cGxpY2l0IFdlYlByZXJlbmRlcihQYXNzUmVmUHRyPFdlYkNvcmU6OlByZXJlbmRlcj4p
OworICAgIH5XZWJQcmVyZW5kZXIoKTsKKyNlbmRpZgorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJV
UkwgdXJsKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgcmVmZXJyZXIoKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5
KCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0RXh0cmFEYXRhKEV4dHJhRGF0
YSopOworICAgIFdFQktJVF9FWFBPUlQgY29uc3QgRXh0cmFEYXRhKiBleHRyYURhdGEoKSBjb25z
dDsKIAogcHJpdmF0ZToKLSAgICBXZWJQcmVyZW5kZXIoKSB7IH0KLSAgICB+V2ViUHJlcmVuZGVy
KCkgeyB9CisgICAgV2ViUHJlcmVuZGVyKCk7CisKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6
OlByZXJlbmRlcj4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlByZXJlbmRlcmluZ1N1
cHBvcnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5n
U3VwcG9ydC5oCmluZGV4IGRjMzE4YTMyYzk2NDllNjkxZTk3NDVkODEwMzFiMDUzMTZjYmFjZjYu
LmEyNjcyOTExZmE1MGE4MzM1OGQyYmY0YjA5OTZmZDU0OTM4MDZiYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5oCisr
KyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyaW5nU3VwcG9y
dC5oCkBAIC0zNywyNSArMzcsMjkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBy
ZXJlbmRlcjsKIAotLy8gVGhpcyB0aHVuayBpbXBsZW1lbnRhdGlvbiBvZiBXZWJQcmVyZW5kZXJp
bmdTdXBwb3J0IGV4aXN0cyBvbmx5IGZvciBzdGFnaW5nOyB0aGlzIHdpbGwKLS8vIGFsbG93IHRo
ZSBDaHJvbWl1bSBzaWRlIG9mIHRoZSBQcmVyZW5kZXJpbmcgQVBJIHRvIGxhbmQsIGFuZCB0aGVu
IGxhdGVyIHdlIGNhbiBhdG9taWNseQotLy8gc3dpdGNoIFdlYktpdCB0byBwcmVyZW5kZXIsIGFu
ZCBmaW5hbGx5IHJlbW92ZSB0aGUgb2xkIHBoYW50b20tcmVxdWVzdCBwcmVyZW5kZXIKLS8vIGlt
cGxlbWVudGF0aW9uIGZyb20gQ2hyb21pdW0uCi0vLyBGSVhNRTogUHV0IHRoZSBhY3R1YWwgaW1w
bGVtZW50YXRpb24gaGVyZSBhZnRlciB0aGUgQ2hyb21pdW0gc2lkZSBvZiB0aGlzIEFQSQotLy8g
bGFuZHMuCiBjbGFzcyBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgdm9pZCBpbml0aWFsaXplKFdlYlByZXJlbmRlcmluZ1N1cHBvcnQqKSB7IH0KLSAgICBzdGF0
aWMgdm9pZCBzaHV0ZG93bigpIHsgfQotICAgIHN0YXRpYyBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0
KiBjdXJyZW50KCkgeyByZXR1cm4gMDsgfQorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZShXZWJQcmVyZW5kZXJpbmdTdXBwb3J0Kik7CisgICAgV0VCS0lUX0VYUE9SVCBz
dGF0aWMgdm9pZCBzaHV0ZG93bigpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlByZXJl
bmRlcmluZ1N1cHBvcnQqIGN1cnJlbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3Qg
V2ViUHJlcmVuZGVyJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbChjb25zdCBXZWJQcmVy
ZW5kZXImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWJhbmRvbihjb25zdCBXZWJQcmVyZW5kZXIm
KSB7IH0KKyAgICAvLyBBIHByZXJlbmRlciBsaW5rIGVsZW1lbnQgaXMgYWRkZWQgd2hlbiBpdCBp
cyBpbnNlcnRlZCBpbnRvIGEgZG9jdW1lbnQuCisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBX
ZWJQcmVyZW5kZXImKSA9IDA7CisKKyAgICAvLyBBIHByZXJlbmRlciBpcyBjYW5jZWxlZCB3aGVu
IGl0IGlzIHJlbW92ZWQgZnJvbSBhIGRvY3VtZW50LgorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwo
Y29uc3QgV2ViUHJlcmVuZGVyJikgPSAwOworCisgICAgLy8gQSBwcmVyZW5kZXIgaXMgYWJhbmRv
bmVkIHdoZW4gaXQncyBuYXZpZ2F0ZWQgYXdheSBmcm9tIG9yIHN1c3BlbmRlZCBpbiB0aGUgcGFn
ZSBjYWNoZS4gVGhpcworICAgIC8vIGlzIGEgd2Vha2VyIHNpZ25hbCB0aGFuIGNhbmNlbCgpLCBz
aW5jZSB0aGUgbGF1bmNoZXIgaGFzbid0IGluZGljYXRlZCB0aGF0IHRoZSBwcmVyZW5kZXIgaXNu
J3QKKyAgICAvLyB3YW50ZWQsIGFuZCB3ZSBtYXkgZW5kIHVwIHVzaW5nIGl0IGFmdGVyLCBmb3Ig
aW5zdGFuY2UsIGEgc2hvcnQgcmVkaXJlY3QgY2hhaW4uCisgICAgdmlydHVhbCB2b2lkIGFiYW5k
b24oY29uc3QgV2ViUHJlcmVuZGVyJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJlcmVu
ZGVyaW5nU3VwcG9ydCgpIHsgfQogICAgIHZpcnR1YWwgfldlYlByZXJlbmRlcmluZ1N1cHBvcnQo
KSB7IH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgV2ViUHJlcmVuZGVyaW5nU3VwcG9ydCogc19w
bGF0Zm9ybTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmggYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaAppbmRleCA4YzE4OTI1YmMwYmQwNTIy
NGRlYjk0ZDdmMTEwZTliODAyNmJlMGZlLi41NTJiZmNiMGE2Y2I2OTVmNDk5YjU2ZWU3ZjJiMjc1
NjU2Y2UyZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlVSTFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlVS
TFJlcXVlc3QuaApAQCAtNjksMTEgKzY5LDEzIEBAIHB1YmxpYzoKICAgICAgICAgVGFyZ2V0SXNX
b3JrZXIgPSA5LAogICAgICAgICBUYXJnZXRJc1NoYXJlZFdvcmtlciA9IDEwLAogICAgICAgICBU
YXJnZXRJc1ByZWZldGNoID0gMTEsCi0gICAgICAgIFRhcmdldElzUHJlcmVuZGVyID0gMTIsCi0g
ICAgICAgIFRhcmdldElzRmF2aWNvbiA9IDEzLAotICAgICAgICBUYXJnZXRJc1hIUiA9IDE0LAot
ICAgICAgICBUYXJnZXRJc1RleHRUcmFjayA9IDE1LAotICAgICAgICBUYXJnZXRJc1Vuc3BlY2lm
aWVkID0gMTYsCisgICAgICAgIFRhcmdldElzRmF2aWNvbiA9IDEyLAorICAgICAgICBUYXJnZXRJ
c1hIUiA9IDEzLAorICAgICAgICBUYXJnZXRJc1RleHRUcmFjayA9IDE0LAorICAgICAgICBUYXJn
ZXRJc1Vuc3BlY2lmaWVkID0gMTUsCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIG9sZCBlbnVtIHZh
bHVlIGlzIG9ubHkgYmVpbmcgbGVmdCBpbiB3aGlsZSBwcmVyZW5kZXJpbmcgaXMgc3RhZ2luZyBp
bnRvIGNocm9taXVtLiBBZnRlciBodHRwOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTAyNDQw
MDcvCisgICAgICAgIC8vIGxhbmRzLCB0aGlzIHNob3VsZCBiZSByZW1vdmVkLgorICAgICAgICBU
YXJnZXRJc1ByZXJlbmRlciA9IFRhcmdldElzVW5zcGVjaWZpZWQsCiAgICAgfTsKIAogICAgIGNs
YXNzIEV4dHJhRGF0YSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vc3Jj
L1dlYlByZXJlbmRlcmluZ1N1cHBvcnQuY3BwIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3Ny
Yy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2IzZTAzNTgwMDAwNTFj
ZDBlMmYzODNhZTEwNzAzOGZmMmI5YTM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3NyYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0LmNwcApAQCAtMCwwICsxLDUy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0Lmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJQcmVyZW5kZXJpbmdTdXBwb3J0KiBXZWJQcmVyZW5kZXJpbmdTdXBw
b3J0OjpzX3BsYXRmb3JtID0gMDsKKwordm9pZCBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0Ojppbml0
aWFsaXplKFdlYlByZXJlbmRlcmluZ1N1cHBvcnQqIHBsYXRmb3JtKQoreworICAgIHNfcGxhdGZv
cm0gPSBwbGF0Zm9ybTsKK30KKwordm9pZCBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpzaHV0ZG93
bigpCit7CisgICAgc19wbGF0Zm9ybSA9IDA7Cit9CisKK1dlYlByZXJlbmRlcmluZ1N1cHBvcnQq
IFdlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJlbnQoKQoreworICAgIHJldHVybiBzX3BsYXRm
b3JtOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5OWI0Mzk4NjZk
ZDQ0NzQwODM3ZDE5YzFjMWI4YTExZTk3ODAwZDBmLi45YTVkOTI1NmQyNGQ3YTNkZjg5MDNjMTQw
MzhmMDNjNTNjY2U0MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4NTAs
NiArMjg1MCwxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qb2xpY3lDYWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tl
ci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmggXAorCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QcmVyZW5kZXJlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGll
bnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwIFwKQEAgLTM1NDcsNiArMzU1MSw3IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVy
ZW5kZXJIYW5kbGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVy
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBlMDVl
Y2ZiMzlmZTZjZjhlZjY1MDgzNTRiZTMzOTczZjU4MmZmYmY5Li5kNmRhMWQyMjNhMTM2OWVhMzQ1
ZjQ3YzBmYmMzY2U5MzBkNzYxZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk4NCw2ICs5ODQsOCBAQCBT
T1VSQ0VTICs9IFwKICAgICBsb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwIFwKICAgICBsb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHAgXAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwIFwKKyAg
ICBsb2FkZXIvUHJlcmVuZGVyZXIuY3BwIFwKKyAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQu
Y3BwIFwKICAgICBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgXAogICAgIGxvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAg
XApAQCAtMjEwNiw2ICsyMTA4LDggQEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaCBcCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggXAog
ICAgIGxvYWRlci9QbGFjZWhvbGRlckRvY3VtZW50LmggXAorICAgIGxvYWRlci9QcmVyZW5kZXJl
ci5oIFwKKyAgICBsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCBcCiAgICAgbG9hZGVyL1Byb2dy
ZXNzVHJhY2tlci5oIFwKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBcCiAgICAgbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmggXApAQCAtMjM5MSw2ICsyMzk1LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgcGxhdGZvcm0vVGltZXIuaCBcCiAgICAgcGxhdGZvcm0vV2lkZ2V0LmggXAogICAgIHBs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oIFwKKyAgICBwbGF0Zm9ybS9QcmVyZW5kZXJIYW5k
bGUuaCBcCiAgICAgcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIFwKICAgICBwbHVnaW5zL0RP
TU1pbWVUeXBlQXJyYXkuaCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCA5YzQ2NzU5ZjVkZDExNDc2ZDZmM2VhZWFjMTYyOGE4MjJhNDFiOWMxLi5lMjI1
Nzc4YTE1YmY0Yzc2ODE5OWU3MTI1NTM1M2NmZjkyNDgxZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0yODY5LDYgKzI4NjksMTAgQEAKICAgICAgICAgICAgICdsb2FkZXIvUGxhY2Vob2xkZXJEb2N1
bWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2FsbGJhY2suY3BwJywKICAgICAg
ICAgICAgICdsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9Q
cmVyZW5kZXJlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9QcmVyZW5kZXJlci5oJywKKyAg
ICAgICAgICAgICdsb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwJywKKyAgICAgICAgICAgICds
b2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5j
cHAnLAogICAgICAgICAgICAgJ2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwJywKQEAg
LTMxNTUsNiArMzE1OSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUHVy
Z2VhYmxlQnVmZmVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1JlZmVycmVyUG9saWN5Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL1J1bkxvb3BUaW1lci5oJywKQEAgLTMzMzQsNiArMzMz
OSw5IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBMaXN0Qm94LmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudVByaXZhdGUuaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vUHJlcmVuZGVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1ByZXJlbmRlckhhbmRsZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NT
TEtleUdlbmVyYXRvckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0uaCcsCkBAIC04MjkxLDYgKzgyOTksNyBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJN
ZWRpYVN0cmVhbVNvdXJjZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3VyY2VzUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlVSTC5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAz
NzM1YmM4YzAyNTc5OWY0NTVmZGIwNTUxNDdmM2QxYzY0NDZhZDIzLi42MzVmZjRiNzVmNzJjZTRm
ODQ3MzBmNjA5YzIyMjQ3YzA3YWNiZjYzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjcwNjIsNiArMjcwNjIsMjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXFByZXJlbmRlcmVy
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bG9hZGVyXFByZXJlbmRlcmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxQcmVyZW5kZXJlckNsaWVudC5jcHAiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxQcmVyZW5kZXJl
ckNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxsb2FkZXJcUHJvZ3Jlc3NUcmFja2VyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0y
Nzk0Niw2ICsyNzk2MiwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxQcmVyZW5kZXJIYW5kbGUuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUHVyZ2VhYmxlQnVm
ZmVyLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg1Yzg0YTcwNzllZTUxMWUwNTBhOTA0NDIz
ZDc1NGY1MDM0MGVhNDkuLjM1MjY2YjIxYWNhODBiNGVhMTc0YjQ5NzNiNDgxZmJhMjA3NThkN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTM2MDQsNiArMzYwNCwxMSBAQAogCQk5N0Y4RTY2NjE1MUQ0QTRFMDBEMkQxODEgLyog
V29ya2VyQ29udGV4dE5vdGlmaWNhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3RjhFNjYyMTUxRDRBM0YwMEQyRDE4MSAvKiBXb3JrZXJDb250
ZXh0Tm90aWZpY2F0aW9ucy5oICovOyB9OwogCQk5ODMxQUU0QTE1NDIyNUM5MDBGRTI2NDQgLyog
UmVmZXJyZXJQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk4MzFBRTQ5MTU0MjI1QTIwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk4NDI2NEYxMTJE
NTI4MEEwMDBEODhBNCAvKiBMaW5rTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5ODQyNjRFRjEyRDUyODBBMDAwRDg4QTQgLyogTGlu
a0xvYWRlckNsaWVudC5oICovOyB9OworCQk5ODU2RjhDQzE1NDlFODI0MDBCMDRGM0EgLyogUHJl
cmVuZGVyZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTg1NkY4QzgxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmNwcCAqLzsgfTsKKwkJ
OTg1NkY4Q0QxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5ODU2RjhDOTE1NDlFODI0MDBCMDRGM0Eg
LyogUHJlcmVuZGVyZXIuaCAqLzsgfTsKKwkJOTg1NkY4Q0UxNTQ5RTgyNDAwQjA0RjNBIC8qIFBy
ZXJlbmRlcmVyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk4NTZGOENBMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVudC5j
cHAgKi87IH07CisJCTk4NTZGOENGMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1NkY4
Q0IxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyQ2xpZW50LmggKi87IH07CisJCTk4NTZG
OEQxMTU0OUU4NEYwMEIwNEYzQSAvKiBQcmVyZW5kZXJIYW5kbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4NTZGOEQwMTU0OUU4NEYwMEIwNEYzQSAv
KiBQcmVyZW5kZXJIYW5kbGUuaCAqLzsgfTsKIAkJOTg1QkI5NkQxM0E5NDA1ODAwN0EwQjY5IC8q
IExpbmtSZWxBdHRyaWJ1dGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTg1QkI5NkIxM0E5NDA1ODAwN0EwQjY5IC8qIExpbmtSZWxBdHRyaWJ1dGUu
Y3BwICovOyB9OwogCQk5ODVCQjk2RTEzQTk0MDU4MDA3QTBCNjkgLyogTGlua1JlbEF0dHJpYnV0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTg1QkI5
NkMxM0E5NDA1ODAwN0EwQjY5IC8qIExpbmtSZWxBdHRyaWJ1dGUuaCAqLzsgfTsKIAkJOThDRTQz
MjYxMjlFMDBCRDAwNTgyMURDIC8qIExpbmtMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThDRTQzMjUxMjlFMDBCRDAwNTgyMURDIC8qIExp
bmtMb2FkZXIuY3BwICovOyB9OwpAQCAtMTA2NTMsNiArMTA2NTgsMTEgQEAKIAkJOTdGOEU2NjMx
NTFENEEzRjAwRDJEMTgxIC8qIFdvcmtlckNvbnRleHROb3RpZmljYXRpb25zLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBXb3JrZXJDb250ZXh0Tm90aWZpY2F0aW9ucy5pZGw7IHBhdGggPSBu
b3RpZmljYXRpb25zL1dvcmtlckNvbnRleHROb3RpZmljYXRpb25zLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTgzMUFFNDkxNTQyMjVBMjAwRkUyNjQ0IC8qIFJlZmVycmVyUG9s
aWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZmVycmVyUG9saWN5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4NDI2NEVGMTJENTI4MEEwMDBEODhBNCAv
KiBMaW5rTG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExp
bmtMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTg1NkY4Qzgx
NTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFByZXJlbmRlcmVyLmNwcDsgcGF0aCA9IGxvYWRlci9QcmVyZW5kZXJl
ci5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJOTg1NkY4QzkxNTQ5RTgyNDAw
QjA0RjNBIC8qIFByZXJlbmRlcmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFByZXJlbmRlcmVyLmg7IHBhdGggPSBsb2FkZXIvUHJlcmVuZGVyZXIuaDsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OworCQk5ODU2RjhDQTE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVuZGVy
ZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJlcmVu
ZGVyZXJDbGllbnQuY3BwOyBwYXRoID0gbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcDsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk5ODU2RjhDQjE1NDlFODI0MDBCMDRGM0EgLyog
UHJlcmVuZGVyZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJl
cmVuZGVyZXJDbGllbnQuaDsgcGF0aCA9IGxvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTk4NTZGOEQwMTU0OUU4NEYwMEIwNEYzQSAvKiBQ
cmVyZW5kZXJIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJlcmVu
ZGVySGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4NUJCOTZCMTNBOTQw
NTgwMDdBMEI2OSAvKiBMaW5rUmVsQXR0cmlidXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExpbmtSZWxBdHRyaWJ1dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5ODVCQjk2QzEzQTk0MDU4MDA3QTBCNjkgLyogTGlua1JlbEF0dHJpYnV0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rUmVsQXR0cmlidXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4Q0U0MzI1MTI5RTAwQkQwMDU4MjFEQyAvKiBM
aW5rTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpbmtM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQxMzYsNiArMTQxNDYs
MTAgQEAKIAkJCQkxQThGNkJCNDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZUdy
b3VwLmggKi8sCiAJCQkJMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcCAqLywKIAkJCQkyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRp
b25DYWNoZUhvc3QuaCAqLywKKwkJCQk5ODU2RjhDODE1NDlFODI0MDBCMDRGM0EgLyogUHJlcmVu
ZGVyZXIuY3BwICovLAorCQkJCTk4NTZGOEM5MTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJl
ci5oICovLAorCQkJCTk4NTZGOENBMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJlckNsaWVu
dC5jcHAgKi8sCisJCQkJOTg1NkY4Q0IxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRlcmVyQ2xp
ZW50LmggKi8sCiAJCQkJMUE4RjZCQjUwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZS5jcHAgKi8sCiAJCQkJMUE4RjZCQjYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZS5oICovLAogCQkJCTFBMkFBQzU2MERDMkEzQjEwMEEyMEQ5QSAv
KiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAgKi8sCkBAIC0xNDkyNiw2ICsxNDk0MCw3IEBA
CiAJCQkJNDlFOTEyQTUwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbi5jcHAgKi8sCiAJCQkJ
NDlFOTEyQTYwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbi5oICovLAogCQkJCTQ5RTkxMkE3
MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmNwcCAqLywKKwkJCQk5ODU2RjhEMDE1
NDlFODRGMDBCMDRGM0EgLyogUHJlcmVuZGVySGFuZGxlLmggKi8sCiAJCQkJNDlFOTEyQTgwRUZB
QzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxpc3QuaCAqLywKIAkJCQkwRjU4MEZBRTE0OTgwMEQ0
MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggKi8sCiAJCQkJNDlFOTEyQTkwRUZBQzkw
NjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggKi8sCkBAIC0yNDg3Niw2ICsyNDg5MSw5IEBA
CiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTg1NkY4Q0QxNTQ5RTgyNDAwQjA0RjNBIC8qIFByZXJlbmRl
cmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5ODU2RjhDRjE1NDlFODI0MDBCMDRGM0EgLyogUHJl
cmVuZGVyZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTk4NTZGOEQxMTU0OUU4NEYwMEIw
NEYzQSAvKiBQcmVyZW5kZXJIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEOEM0NkVDMTU0
NjA4RTcwMEE1OTEwQyAvKiBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTcxQTU3REYyMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3OEQwMkJDNjE1NEExOERGMDBCNjJEMDUgLyogQ1NTUHJvcGVydHlB
bmltYXRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjc4OTcsNiArMjc5MTUsOCBAQAogCQkJCUUx
QkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTk4NTZGOENDMTU0OUU4MjQwMEIwNEYzQSAvKiBQcmVyZW5kZXJl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5ODU2RjhDRTE1NDlFODI0MDBCMDRGM0EgLyogUHJl
cmVuZGVyZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ4QzQ2RUIxNTQ2MDhFNzAw
QTU5MTBDIC8qIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3MUE1N0RGMTE1NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3OEQwMkJDNTE1NEExOERGMDBCNjJEMDUgLyogQ1NTUHJvcGVydHlBbmlt
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA0MjNm
YzlmMDkzYmIxNjUxZjVkNzA4Zjc3ZDZkYzljMjAzYzkzYmMwLi5kNzM0NDQ4MGZiNjFhZWIzNzIw
NzMxZjQ5ZDE2YjdlYTk0NWRlYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwNyw2
ICsyMDcsMTAgQEAKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKICNlbmRpZgogCisjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQorI2luY2x1ZGUgIlByZXJlbmRlcmVyLmgiCisjZW5kaWYKKwog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3Bh
Y2UgVW5pY29kZTsKQEAgLTUxMCw3ICs1MTQsOSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAg
bV9tYXJrZXJzID0gYWRvcHRQdHIobmV3IERvY3VtZW50TWFya2VyQ29udHJvbGxlcik7CiAKICAg
ICBtX2NhY2hlZFJlc291cmNlTG9hZGVyID0gYWRvcHRQdHIobmV3IENhY2hlZFJlc291cmNlTG9h
ZGVyKHRoaXMpKTsKLQorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBtX3ByZXJlbmRl
cmVyID0gUHJlcmVuZGVyZXI6OmNyZWF0ZSh0aGlzKTsKKyNlbmRpZgogICAgIG1fdmlzdWFsbHlP
cmRlcmVkID0gZmFsc2U7CiAgICAgbV9iUGFyc2luZyA9IGZhbHNlOwogICAgIG1fd2VsbEZvcm1l
ZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxZWY2YjRhOWJhYmRhYzM3OGNmZmM4
ZGU4ZTAzN2YyMDEyMTAyNzlmLi5kZjRiNjY0N2VkODE4Zjk0OTlkZWVhZGI5ZDZmNTdjNGEyZmY0
MzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTY3LDYgKzE2NywxMCBAQCBjbGFzcyBTY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBNaWNyb0RhdGFJdGVtTGlzdDsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorY2xhc3MgUHJlcmVuZGVyZXI7CisjZW5k
aWYKKwogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRm9ybUVsZW1lbnRLZXkg
ewpAQCAtMTE1Myw2ICsxMTU3LDEwIEBAIHB1YmxpYzoKIAogICAgIEludFNpemUgdmlld3BvcnRT
aXplKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisgICAgUHJlcmVuZGVy
ZXIqIHByZXJlbmRlcmVyKCkgeyByZXR1cm4gbV9wcmVyZW5kZXJlci5nZXQoKTsgfQorI2VuZGlm
CisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlz
WEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTQ5Nyw2ICsxNTA1LDExIEBAIHByaXZhdGU6CiAK
ICAgICBUaW1lcjxEb2N1bWVudD4gbV9wZW5kaW5nVGFza3NUaW1lcjsKICAgICBWZWN0b3I8T3du
UHRyPFRhc2s+ID4gbV9wZW5kaW5nVGFza3M7CisKKyNpZiBFTkFCTEUoTElOS19QUkVSRU5ERVIp
CisgICAgT3duUHRyPFByZXJlbmRlcmVyPiBtX3ByZXJlbmRlcmVyOworI2VuZGlmCisKICAgICBi
b29sIG1fc2NoZWR1bGVkVGFza3NBcmVTdXNwZW5kZWQ7CiAgICAgCiAgICAgYm9vbCBtX3Zpc3Vh
bFVwZGF0ZXNBbGxvd2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmlu
ZGV4IGUxNzkyNWZiZTNjMGE3N2VjMWZhZDE3Mzc0OGVhODY2MWRmZWYyMDkuLjIxMDVhNDkxYzRl
NmJkYWFkMGJmZTFhMjA4NTc2MzMzYmY3NjRhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAKQEAgLTI2NSw2ICsyNjUsOCBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6
cmVtb3ZlZEZyb20oTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiAgICAgaWYgKCFpbnNlcnRpb25Qb2lu
dC0+aW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX2xpbmtMb2FkZXIucmVs
ZWFzZWQoKTsKKwogICAgIGlmIChtX2lzSW5TaGFkb3dUcmVlKSB7CiAgICAgICAgIEFTU0VSVCgh
bV9zaGVldCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRy
aWJ1dGUuY3BwCmluZGV4IDUyNjFkZjJkMDhmZjI2YTAzYTVkODFlMjQzMWZhNjNmNGM2NTcyMGMu
Ljg3MDcxYjk5YjI4ZDY1ZDIxOGYwYWJkMmRiOGE1N2NkMDAxZjZhNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcApAQCAtNDEsOSArNDEsMTEgQEAgTGlua1JlbEF0
dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZSgpCiAgICAgLCBtX2lzRE5TUHJlZmV0Y2goZmFsc2Up
CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgLCBtX2lzTGlua1ByZWZldGNoKGZhbHNl
KQotICAgICwgbV9pc0xpbmtQcmVyZW5kZXIoZmFsc2UpCiAgICAgLCBtX2lzTGlua1N1YnJlc291
cmNlKGZhbHNlKQogI2VuZGlmCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgICwgbV9p
c0xpbmtQcmVyZW5kZXIoZmFsc2UpCisjZW5kaWYKIHsKIH0KIApAQCAtNTQsOSArNTYsMTEgQEAg
TGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKICAg
ICAsIG1faXNETlNQcmVmZXRjaChmYWxzZSkKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAg
ICAsIG1faXNMaW5rUHJlZmV0Y2goZmFsc2UpCi0gICAgLCBtX2lzTGlua1ByZXJlbmRlcihmYWxz
ZSkKICAgICAsIG1faXNMaW5rU3VicmVzb3VyY2UoZmFsc2UpCiAjZW5kaWYKKyNpZiBFTkFCTEUo
TElOS19QUkVSRU5ERVIpCisgICAgLCBtX2lzTGlua1ByZXJlbmRlcihmYWxzZSkKKyNlbmRpZgog
ewogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShyZWwsICJzdHlsZXNoZWV0IikpCiAgICAgICAg
IG1faXNTdHlsZVNoZWV0ID0gdHJ1ZTsKQEAgLTk2LDExICsxMDAsMTMgQEAgTGlua1JlbEF0dHJp
YnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKICNpZiBFTkFCTEUoTElO
S19QUkVGRVRDSCkKICAgICAgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwg
InByZWZldGNoIikpCiAgICAgICAgICAgICAgIG1faXNMaW5rUHJlZmV0Y2ggPSB0cnVlOwotICAg
ICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKml0LCAicHJlcmVuZGVyIikpCi0g
ICAgICAgICAgICAgIG1faXNMaW5rUHJlcmVuZGVyID0gdHJ1ZTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKGVxdWFsSWdub3JpbmdDYXNlKCppdCwgInN1YnJlc291cmNlIikpCiAgICAgICAgICAgICAg
IG1faXNMaW5rU3VicmVzb3VyY2UgPSB0cnVlOwogI2VuZGlmCisjaWYgRU5BQkxFKExJTktfUFJF
UkVOREVSKQorICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoKml0LCAicHJl
cmVuZGVyIikpCisgICAgICAgICAgICAgIG1faXNMaW5rUHJlcmVuZGVyID0gdHJ1ZTsKKyNlbmRp
ZgogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9M
aW5rUmVsQXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUu
aAppbmRleCAzMTc4MTk0YjQ5YTFiZDA1YjliMGMxNDQ0MWViZjVmODYyNTc4YWNjLi45OGRkNDgx
OTFjOWY4MzczZWYyNGIxZDIyOWIxMjIzZTJkYTI3NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xp
bmtSZWxBdHRyaWJ1dGUuaApAQCAtNDQsOSArNDQsMTEgQEAgcHVibGljOgogICAgIGJvb2wgbV9p
c0ROU1ByZWZldGNoOwogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGJvb2wgbV9pc0xp
bmtQcmVmZXRjaDsKLSAgICBib29sIG1faXNMaW5rUHJlcmVuZGVyOwogICAgIGJvb2wgbV9pc0xp
bmtTdWJyZXNvdXJjZTsKICNlbmRpZgorI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKyAgICBi
b29sIG1faXNMaW5rUHJlcmVuZGVyOworI2VuZGlmCiAKICAgICBMaW5rUmVsQXR0cmlidXRlKCk7
CiAgICAgZXhwbGljaXQgTGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCBlNTYyZDEwNTA1OTczODI1MzUxNzMzODQzMTdl
YmFhZGUzOWZkYmQ1Li5hZjI1YTg2ODAzYzQwNzQ3OWMxMDI2N2FmMjY2N2VhMDJhZTVkMmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC00NCw2ICs0NCwxMSBAQAogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogCisjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQorI2luY2x1ZGUgIlByZXJlbmRlckhhbmRsZS5oIgorI2luY2x1
ZGUgIlByZXJlbmRlcmVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMaW5r
TG9hZGVyOjpMaW5rTG9hZGVyKExpbmtMb2FkZXJDbGllbnQqIGNsaWVudCkKQEAgLTEwMyw3ICsx
MDgsNyBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUm
IHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eQogICAgIH0KIAogI2lmIEVOQUJMRShMSU5L
X1BSRUZFVENIKQotICAgIGlmICgocmVsQXR0cmlidXRlLm1faXNMaW5rUHJlZmV0Y2ggfHwgcmVs
QXR0cmlidXRlLm1faXNMaW5rUHJlcmVuZGVyIHx8IHJlbEF0dHJpYnV0ZS5tX2lzTGlua1N1YnJl
c291cmNlKSAmJiBocmVmLmlzVmFsaWQoKSAmJiBkb2N1bWVudC0+ZnJhbWUoKSkgeworICAgIGlm
ICgocmVsQXR0cmlidXRlLm1faXNMaW5rUHJlZmV0Y2ggfHwgcmVsQXR0cmlidXRlLm1faXNMaW5r
U3VicmVzb3VyY2UpICYmIGhyZWYuaXNWYWxpZCgpICYmIGRvY3VtZW50LT5mcmFtZSgpKSB7CiAg
ICAgICAgIGlmICghbV9jbGllbnQtPnNob3VsZExvYWRMaW5rKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkOwpAQCAtMTEzLDkgKzExOCw3IEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBTdHJpbmcmIHR5CiAgICAgICAgIGlmIChyZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJj
ZSkgewogICAgICAgICAgICAgcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKICAg
ICAgICAgICAgIHR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOwotICAgICAg
ICB9IGVsc2UgaWYgKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZXJlbmRlcikKLSAgICAgICAgICAg
IHR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjsKLQorICAgICAgICB9CiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJl
ZikpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2FjaGVkTGlua1Jlc291cmNlKSB7CkBAIC0x
MjcsOCArMTMwLDI2IEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0
dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBtX2Nh
Y2hlZExpbmtSZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIH0KICNlbmRpZgorCisjaWYg
RU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIGlmIChyZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVy
ZW5kZXIpIHsKKyAgICAgICAgQVNTRVJUKCFtX3ByZXJlbmRlckhhbmRsZSk7CisgICAgICAgIG1f
cHJlcmVuZGVySGFuZGxlID0gZG9jdW1lbnQtPnByZXJlbmRlcmVyKCktPnJlbmRlcihocmVmKTsK
KyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBMaW5rTG9hZGVyOjpy
ZWxlYXNlZCgpCit7CisgICAgLy8gT25seSBwcmVyZW5kZXJzIG5lZWQgdHJlYXRtZW50IGhlcmU7
IG90aGVyIGxpbmtzIGVpdGhlciB1c2UgdGhlIENhY2hlZFJlc291cmNlIGludGVyZmFjZSwgb3Ig
YXJlIG5vdGlvbmFsbHkKKyAgICAvLyBhdG9taWMgKGRucyBwcmVmZXRjaCkuCisjaWYgRU5BQkxF
KExJTktfUFJFUkVOREVSKQorICAgIGlmIChtX3ByZXJlbmRlckhhbmRsZSkgeworICAgICAgICBt
X3ByZXJlbmRlckhhbmRsZS0+Y2FuY2VsKCk7CisgICAgICAgIG1fcHJlcmVuZGVySGFuZGxlLmNs
ZWFyKCk7CisgICAgfQorI2VuZGlmCit9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5o
CmluZGV4IDFmYmMxOGQ3Yzc2ZWI2YTZlN2E0ZWZkNzE5MTExYjYzOTYwZTc5ZGIuLjU4YjI5YTc3
NGY3OGQxNDgwZjE4NDYzNTJhY2RkN2Q4NTNjMjBmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuaApAQCAtMzcsOSArMzcsMTQgQEAKICNpbmNsdWRlICJMaW5rTG9hZGVyQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKIAorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgTGlua1JlbEF0dHJpYnV0ZTsKKyNpZiBFTkFCTEUoTElO
S19QUkVSRU5ERVIpCitjbGFzcyBQcmVyZW5kZXJIYW5kbGU7CisjZW5kaWYKIAogLy8gVGhlIExp
bmtMb2FkZXIgY2FuIGxvYWQgbGluayByZWwgdHlwZXMgaWNvbiwgZG5zLXByZWZldGNoLCBzdWJy
ZXNvdXJjZSwgcHJlZmV0Y2ggYW5kIHByZXJlbmRlci4KIGNsYXNzIExpbmtMb2FkZXIgOiBwdWJs
aWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewpAQCAtNTAsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gZnJvbSBDYWNoZWRSZXNvdXJjZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSopOwogICAgIAorICAgIHZvaWQgcmVsZWFzZWQoKTsKICAgICBi
b29sIGxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgc2l6ZXMsIGNvbnN0IEtVUkwmLCBEb2N1bWVudCopOwogCiBwcml2YXRl
OgpAQCAtNjEsNiArNjcsMTAgQEAgcHJpdmF0ZToKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gbV9jYWNoZWRMaW5rUmVzb3VyY2U7CiAgICAgVGltZXI8TGlua0xvYWRl
cj4gbV9saW5rTG9hZFRpbWVyOwogICAgIFRpbWVyPExpbmtMb2FkZXI+IG1fbGlua0xvYWRpbmdF
cnJvclRpbWVyOworCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorICAgIFJlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+IG1fcHJlcmVuZGVySGFuZGxlOworI2VuZGlmCiB9OwogICAgIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVmZDhkZDhiN2Q0OTJi
YzcwNmU4MjY1MzM4MzU3NzdmNmYxOGJkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9QcmVyZW5kZXJlci5jcHAKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXJlbmRlcmVyLmgiCisKKyNpZiBFTkFCTEUoTElOS19Q
UkVSRU5ERVIpCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJIYW5kbGUuaCIKKyNp
bmNsdWRlICJQcmVyZW5kZXJlckNsaWVudC5oIgorI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5Lmgi
CisjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworLy8gc3RhdGljCitQYXNzT3duUHRyPFByZXJlbmRlcmVyPiBQcmVyZW5kZXJlcjo6Y3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBQcmVyZW5kZXJlciogcHJlcmVuZGVyZXIgPSBu
ZXcgUHJlcmVuZGVyZXIoZG9jdW1lbnQpOworICAgIHByZXJlbmRlcmVyLT5zdXNwZW5kSWZOZWVk
ZWQoKTsKKyAgICByZXR1cm4gYWRvcHRQdHIocHJlcmVuZGVyZXIpOworfQorCitQcmVyZW5kZXJl
cjo6UHJlcmVuZGVyZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0
KGRvY3VtZW50LCB0aGlzKQorICAgICwgbV9jbGllbnQoMCkKK3sKK30KKworUHJlcmVuZGVyZXI6
On5QcmVyZW5kZXJlcigpCit7Cit9CisKK1Bhc3NSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBQcmVy
ZW5kZXJlcjo6cmVuZGVyKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICAvLyBQcmVyZW5kZXJzIGFy
ZSB1bmxpa2UgcmVxdWVzdHMgaW4gbW9zdCB3YXlzIChmb3IgaW5zdGFuY2UsIHRoZXkgcGFzcyBk
b3duIGZyYWdtZW50cywgYW5kIHRoZXkgZG9uJ3QgcmV0dXJuIGRhdGEpLAorICAgIC8vIGJ1dCB0
aGV5IGRvIGhhdmUgcmVmZXJyZXJzLgorICAgIGNvbnN0IFJlZmVycmVyUG9saWN5IHJlZmVycmVy
UG9saWN5ID0gZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKTsKKyAgICBjb25zdCBTdHJpbmcg
cmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihyZWZlcnJl
clBvbGljeSwgdXJsLCBkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZl
cnJlcigpKTsKKworICAgIFJlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IHByZXJlbmRlckhhbmRsZSA9
IFByZXJlbmRlckhhbmRsZTo6Y3JlYXRlKHVybCwgcmVmZXJyZXIsIHJlZmVycmVyUG9saWN5KTsK
KworICAgIGNsaWVudCgpLT53aWxsQWRkUHJlcmVuZGVyKHByZXJlbmRlckhhbmRsZS5nZXQoKSk7
CisgICAgcHJlcmVuZGVySGFuZGxlLT5hZGQoKTsKKworICAgIG1fYWN0aXZlSGFuZGxlcy5hcHBl
bmQocHJlcmVuZGVySGFuZGxlKTsKKyAgICByZXR1cm4gcHJlcmVuZGVySGFuZGxlOworfQorCit2
b2lkIFByZXJlbmRlcmVyOjpzdG9wKCkKK3sKKyAgICB3aGlsZSAoIW1fYWN0aXZlSGFuZGxlcy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPFByZXJlbmRlckhhbmRsZT4gaGFuZGxlID0gbV9h
Y3RpdmVIYW5kbGVzWzBdLnJlbGVhc2UoKTsKKyAgICAgICAgbV9hY3RpdmVIYW5kbGVzLnJlbW92
ZSgwKTsKKyAgICAgICAgaGFuZGxlLT5hYmFuZG9uKCk7CisgICAgfQorICAgIHdoaWxlICghbV9z
dXNwZW5kZWRIYW5kbGVzLmlzRW1wdHkoKSkgeworICAgICAgICBSZWZQdHI8UHJlcmVuZGVySGFu
ZGxlPiBoYW5kbGUgPSBtX3N1c3BlbmRlZEhhbmRsZXNbMF0ucmVsZWFzZSgpOworICAgICAgICBt
X3N1c3BlbmRlZEhhbmRsZXMucmVtb3ZlKDApOworICAgICAgICBoYW5kbGUtPmFiYW5kb24oKTsK
KyAgICB9Cit9CisKK3ZvaWQgUHJlcmVuZGVyZXI6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lv
biByZWFzb24pCit7CisgICAgaWYgKHJlYXNvbiA9PSBEb2N1bWVudFdpbGxCZWNvbWVJbmFjdGl2
ZSB8fCByZWFzb24gPT0gUGFnZVdpbGxCZVN1c3BlbmRlZCkgeworICAgICAgICB3aGlsZSAoIW1f
YWN0aXZlSGFuZGxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxQcmVyZW5kZXJI
YW5kbGU+IGhhbmRsZSA9IG1fYWN0aXZlSGFuZGxlc1swXS5yZWxlYXNlKCk7CisgICAgICAgICAg
ICBtX2FjdGl2ZUhhbmRsZXMucmVtb3ZlKDApOworICAgICAgICAgICAgaGFuZGxlLT5zdXNwZW5k
KCk7CisgICAgICAgICAgICBtX3N1c3BlbmRlZEhhbmRsZXMuYXBwZW5kKGhhbmRsZSk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgUHJlcmVuZGVyZXI6OnJlc3VtZSgpCit7CisgICAgd2hp
bGUgKCFtX3N1c3BlbmRlZEhhbmRsZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+IGhhbmRsZSA9IG1fc3VzcGVuZGVkSGFuZGxlc1swXS5yZWxlYXNlKCk7Cisg
ICAgICAgIG1fc3VzcGVuZGVkSGFuZGxlcy5yZW1vdmUoMCk7CisgICAgICAgIGhhbmRsZS0+cmVz
dW1lKCk7CisgICAgICAgIG1fYWN0aXZlSGFuZGxlcy5hcHBlbmQoaGFuZGxlKTsKKyAgICB9Cit9
CisKK0RvY3VtZW50KiBQcmVyZW5kZXJlcjo6ZG9jdW1lbnQoKQoreworICAgIEFTU0VSVChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworUHJlcmVuZGVy
ZXJDbGllbnQqIFByZXJlbmRlcmVyOjpjbGllbnQoKQoreworICAgIGlmICghbV9jbGllbnQpCisg
ICAgICAgIG1fY2xpZW50ID0gUHJlcmVuZGVyZXJDbGllbnQ6OmZyb20oZG9jdW1lbnQoKS0+cGFn
ZSgpKTsKKyAgICByZXR1cm4gbV9jbGllbnQ7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShM
SU5LX1BSRVJFTkRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5k
ZXJlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzJmMzUwODM0MmQxMmI0M2NhZWIxZWMwODk1N2RmMGQzNjk0YmEwOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlci5oCkBAIC0wLDAgKzEsODUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8K
KworI2lmbmRlZiBQcmVyZW5kZXJlcl9oCisjZGVmaW5lIFByZXJlbmRlcmVyX2gKKworI2lmIEVO
QUJMRShMSU5LX1BSRVJFTkRFUikKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2lu
Y2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvU2luZ2x5TGlua2VkTGlzdC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2Ns
YXNzIFByZXJlbmRlckhhbmRsZTsKK2NsYXNzIFByZXJlbmRlcmVyQ2xpZW50OworY2xhc3MgUGFn
ZTsKKworY2xhc3MgUHJlcmVuZGVyZXIgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShQcmVyZW5kZXJlcik7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
UHJlcmVuZGVyZXIoKTsKKworICAgIFBhc3NSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiByZW5kZXIo
Y29uc3QgS1VSTCYpOworCisgICAgc3RhdGljIFBhc3NPd25QdHI8UHJlcmVuZGVyZXI+IGNyZWF0
ZShEb2N1bWVudCopOworCitwcml2YXRlOgorICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxQcmVy
ZW5kZXJIYW5kbGU+ID4gSGFuZGxlVmVjdG9yOworICAgIHR5cGVkZWYgVmVjdG9yPEtVUkw+IEtV
UkxWZWN0b3I7CisKKyAgICBleHBsaWNpdCBQcmVyZW5kZXJlcihEb2N1bWVudCopOworCisgICAg
dmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Vz
cGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVz
dW1lKCkgT1ZFUlJJREU7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKTsKKyAgICBQcmVyZW5k
ZXJlckNsaWVudCogY2xpZW50KCk7CisKKyAgICBQcmVyZW5kZXJlckNsaWVudCogbV9jbGllbnQ7
CisgICAgSGFuZGxlVmVjdG9yIG1fYWN0aXZlSGFuZGxlczsKKyAgICBIYW5kbGVWZWN0b3IgbV9z
dXNwZW5kZWRIYW5kbGVzOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVO
REVSKQorCisjZW5kaWYgLy8gUHJlcmVuZGVyZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cmVyZW5kZXJlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhmMjQ3MGUyNjE2NGE0ZGQxNTkzNTk1
YzYzZjEyNzFhZmZlNmMxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QcmVyZW5kZXJlckNsaWVudC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21p
Y1N0cmluZy5oPgorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKy8vIHN0YXRpYworY29uc3QgQXRvbWljU3RyaW5nJiBQcmVyZW5kZXJlckNsaWVu
dDo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBuYW1lLCAoIlByZXJlbmRlcmVyQ2xpZW50IikpOworICAgIHJldHVybiBuYW1lOworfQor
CisvLyBzdGF0aWMKK1ByZXJlbmRlcmVyQ2xpZW50KiBQcmVyZW5kZXJlckNsaWVudDo6ZnJvbShQ
YWdlKiBwYWdlKQoreworICAgIFByZXJlbmRlcmVyQ2xpZW50KiBzdXBwbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8UHJlcmVuZGVyZXJDbGllbnQqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1
cHBsZW1lbnROYW1lKCkpKTsKKyAgICBBU1NFUlQoc3VwcGxlbWVudCk7CisgICAgcmV0dXJuIHN1
cHBsZW1lbnQ7Cit9CisKK3ZvaWQgcHJvdmlkZVByZXJlbmRlcmVyQ2xpZW50VG8oUGFnZSogcGFn
ZSwgUHJlcmVuZGVyZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICBQcmVyZW5kZXJlckNsaWVudDo6
cHJvdmlkZVRvKHBhZ2UsIFByZXJlbmRlcmVyQ2xpZW50OjpzdXBwbGVtZW50TmFtZSgpLCBhZG9w
dFB0cihjbGllbnQpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
ZXJlbmRlcmVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE0Y2U5NDZmNjM4NzE4MDY3ODI2YzVkN2Uw
NWFhZjdmNGNmMTVmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cmVyZW5kZXJlckNsaWVudC5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJl
ckNsaWVudF9oCisjZGVmaW5lIFByZXJlbmRlcmVyQ2xpZW50X2gKKworI2lmIEVOQUJMRShMSU5L
X1BSRVJFTkRFUikKKworI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIFBhZ2U7CitjbGFzcyBQcmVyZW5kZXJIYW5kbGU7CisKK2NsYXNzIFByZXJlbmRlcmVy
Q2xpZW50IDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworcHVibGljOgorICAgIHZpcnR1YWwg
flByZXJlbmRlcmVyQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEFkZFByZXJl
bmRlcihQcmVyZW5kZXJIYW5kbGUqKSA9IDA7CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBQcmVyZW5kZXJlckNsaWVudCogZnJv
bShQYWdlKik7CisKK3Byb3RlY3RlZDoKKyAgICBQcmVyZW5kZXJlckNsaWVudCgpIHsgfQorfTsK
Kwordm9pZCBwcm92aWRlUHJlcmVuZGVyZXJDbGllbnRUbyhQYWdlKiwgUHJlcmVuZGVyZXJDbGll
bnQqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFRChMSU5L
X1BSRVJFTkRFUikKKworI2VuZGlmIC8vIFByZXJlbmRlcmVyQ2xpZW50X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDAzNjhhNzI0NTI1
ZmFmZTY0OTA1ODdiZWIyYjRmNmU2ZTlmY2M2ZTYuLmM5NWFiZWRiNGM5MDhjNTk3ZGU0MzVlMmQ1
Mzg4ZGI0MjE0NDNlYWIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcApAQCAtNzMsOCArNzMsNiBAQCBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlCiAj
aWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Okxp
bmtQcmVmZXRjaDoKICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlM
b3c7Ci0gICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6Ci0gICAgICAg
ICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OwogICAgICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlWZXJ5TG93OwogI2VuZGlmCkBAIC0xMTQsOCArMTEyLDYgQEAgc3RhdGlj
IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlwZSBjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5
cGUoQ2FjaGVkUmVzb3VyY2UKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzUHJlZmV0Y2g7Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJl
bmRlcjoKLSAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNQcmVyZW5kZXI7
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgogICAgICAgICByZXR1
cm4gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlOwogI2VuZGlmCkBAIC0yMjAs
NyArMjE2LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRl
ciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNvbnN0IFJlc28KICAgICB9CiAKICNpZiBFTkFCTEUo
TElOS19QUkVGRVRDSCkKLSAgICBpZiAodHlwZSgpID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJl
ZmV0Y2ggfHwgdHlwZSgpID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyIHx8IHR5cGUo
KSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKQorICAgIGlmICh0eXBlKCkgPT0g
Q2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6
OkxpbmtTdWJyZXNvdXJjZSkKICAgICAgICAgbV9yZXNvdXJjZVJlcXVlc3Quc2V0SFRUUEhlYWRl
ckZpZWxkKCJQdXJwb3NlIiwgInByZWZldGNoIik7CiAjZW5kaWYKICAgICBtX3Jlc291cmNlUmVx
dWVzdC5zZXRQcmlvcml0eShsb2FkUHJpb3JpdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGMwN2IyMzFkNGQ1OTg1NzUxY2NjYTA2MjFk
Mzc1N2E5NTY2YjQ2OTguLjkxMWY4NTBlODg1Y2NmZjdmMWQyNGNiNjhjNTZlNDBlNWZhZjJmN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC03
NCw3ICs3NCw2IEBAIHB1YmxpYzoKICNlbmRpZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQog
ICAgICAgICAsIExpbmtQcmVmZXRjaAotICAgICAgICAsIExpbmtQcmVyZW5kZXIKICAgICAgICAg
LCBMaW5rU3VicmVzb3VyY2UKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTE1
MCw3ICsxNDksNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxzZQogI2lmIEVOQUJMRShM
SU5LX1BSRUZFVENIKQogICAgICAgICAgICAgfHwgdHlwZSgpID09IExpbmtQcmVmZXRjaAotICAg
ICAgICAgICAgfHwgdHlwZSgpID09IExpbmtQcmVyZW5kZXIKICAgICAgICAgICAgIHx8IHR5cGUo
KSA9PSBMaW5rU3VicmVzb3VyY2UKICNlbmRpZgogICAgICAgICAgICAgfHwgdHlwZSgpID09IFJh
d1Jlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOWUzOWMxZTQ4YmM4ZDY1YjE3ODdlOWRlMTNlNmE5ZDNl
ZmEzNTJmNy4uN2UwYzhmYmZhZjk3NDU1NDljNGZiOTkzNzlhYjE5MDViZDFlY2E3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC04OCw4ICs4OCw2IEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAjaWYgRU5BQkxF
KExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgog
ICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNl
OjpMaW5rUHJlZmV0Y2gpOwotICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVyZW5kZXI6
Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3Vy
Y2U6OkxpbmtQcmVyZW5kZXIpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNv
dXJjZToKICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRS
ZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsKICNlbmRpZgpAQCAtMjM2LDcgKzIzNCw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFNWR0RvY3VtZW50CiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJj
ZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSkKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7Ci0gICAgQVNTRVJUKHR5cGUg
PT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0eXBlID09IENhY2hlZFJlc291cmNl
OjpMaW5rUHJlcmVuZGVyIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJj
ZSk7CisgICAgQVNTRVJUKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0
eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UpOwogICAgIHJldHVybiByZXF1
ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSwgcHJpb3JpdHkpOwogfQogI2VuZGlmCkBAIC0yODIsNyArMjgwLDYgQEAgYm9v
bCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJj
ZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpM
aW5rUHJlZmV0Y2g6Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U6CiAgICAgICAgIC8vIFByZWZl
dGNoIGNhbm5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgZG9jdW1lbnQuCiAjZW5kaWYKQEAgLTMxMSw3
ICszMDgsNiBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJl
c291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlJhd1Jlc291cmNlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5r
UHJlcmVuZGVyOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNl
bmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTM4MSw3ICszNzcsNiBAQCBib29sIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUs
IGNvbnN0IEtVUkwmIHVybAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgog
I2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQ
cmVmZXRjaDoKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlcmVuZGVyOgogICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKICNlbmRpZgogICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDRmZGFmY2Y0MGY0ZWFmZTg0MGIwOGJmOTYwZTcxNDIzZGY3MmE3YQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oCkBAIC0wLDAgKzEs
ODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
CisgKi8KKworI2lmbmRlZiBQcmVyZW5kZXJIYW5kbGVfaAorI2RlZmluZSBQcmVyZW5kZXJIYW5k
bGVfaAorCisjaWYgRU5BQkxFKExJTktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAiUmVmZXJyZXJQ
b2xpY3kuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtVUkw7CitjbGFzcyBQ
cmVyZW5kZXI7CisKK2NsYXNzIFByZXJlbmRlckhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPFBy
ZXJlbmRlckhhbmRsZT4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByZXJlbmRlckhhbmRs
ZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJlcmVuZGVySGFuZGxlPiBjcmVh
dGUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVycmVyUG9saWN5KTsK
KyAgICB+UHJlcmVuZGVySGFuZGxlKCk7CisKKyAgICBQcmVyZW5kZXIqIHByZXJlbmRlcigpOwor
CisgICAgLy8gRklYTUU6IG9uZSBkYXkgdGhlcmUgd2lsbCBiZSBldmVudHMgaGVyZSwgYW5kIHdl
IHdpbGwgYmUgYSBQcmVyZW5kZXJDbGllbnQuCisKKyAgICAvLyBBIHByZXJlbmRlciBsaW5rIGVs
ZW1lbnQgaXMgYWRkZWQgd2hlbiBpdCBpcyBpbnNlcnRlZCBpbnRvIGEgZG9jdW1lbnQuCisgICAg
dm9pZCBhZGQoKTsKKworICAgIC8vIEEgcHJlcmVuZGVyIGlzIGFiYW5kb25lZCB3aGVuIGl0J3Mg
bmF2aWdhdGVkIGF3YXkgZnJvbS4gVGhpcyBpcyBpcyBhIHdlYWtlciBzaWduYWwKKyAgICAvLyB0
aGFuIGNhbmNlbCgpLCBzaW5jZSB0aGUgbGF1bmNoZXIgaGFzbid0IGluZGljYXRlZCB0aGF0IHRo
ZSBwcmVyZW5kZXIgaXNuJ3Qgd2FudGVkLAorICAgIC8vIGFuZCB3ZSBtYXkgZW5kIHVwIHVzaW5n
IGl0IGFmdGVyLCBmb3IgaW5zdGFuY2UsIGEgc2hvcnQgcmVkaXJlY3QgY2hhaW4uCisgICAgdm9p
ZCBhYmFuZG9uKCk7CisKKyAgICAvLyBBIHByZXJlbmRlciBpcyBjYW5jZWxlZCB3aGVuIGl0IGlz
IHJlbW92ZWQgZnJvbSBhIGRvY3VtZW50LgorICAgIHZvaWQgY2FuY2VsKCk7CisKKyAgICAvLyBB
IHByZXJlbmRlciBpcyBzdXNwZW5kZWQgYWxvbmcgd2l0aCB0aGUgRE9NIGNvbnRhaW5pbmcgaXRz
IGxpbmtsb2FkZXIgJiBwcmVyZW5kZXJlci4KKyAgICB2b2lkIHN1c3BlbmQoKTsKKyAgICB2b2lk
IHJlc3VtZSgpOworCisgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3Q7CisgICAgY29uc3QgU3Ry
aW5nJiByZWZlcnJlcigpIGNvbnN0OworICAgIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5
KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgUHJlcmVuZGVySGFuZGxlKGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGljeSk7CisgICAgUmVmUHRyPFByZXJl
bmRlcj4gbV9wcmVyZW5kZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoTElOS19QUkVSRU5ERVIpCisKKyNlbmRpZiAvLyBQcmVyZW5kZXJIYW5kbGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJlcmVuZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTMzYThhYTcxYzAzM2VlODIxN2ExN2VhNDQ3MTViNDhhYmZjN2Q3NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlci5j
cHAKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBy
ZXJlbmRlci5oIgorCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVi
bGljL1dlYlByZXJlbmRlci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBw
b3J0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJlZmVycmVyUG9saWN5Lmg+CisjaW5jbHVkZSA8
cHVibGljL1dlYlN0cmluZy5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJVUkwuaD4KKworI2lmIEVO
QUJMRShMSU5LX1BSRVJFTkRFUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQcmVyZW5kZXI6
OlByZXJlbmRlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlZmVy
cmVyUG9saWN5IHBvbGljeSkKKyAgICA6IG1fdXJsKHVybCkKKyAgICAsIG1fcmVmZXJyZXIocmVm
ZXJyZXIpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KHBvbGljeSkKKyNpZm5kZWYgTkRFQlVHCisg
ICAgLCBtX3N0YXRlKEluYWN0aXZlKQorI2VuZGlmCit7Cit9CisKK1ByZXJlbmRlcjo6flByZXJl
bmRlcigpCit7Cit9CisKK3ZvaWQgUHJlcmVuZGVyOjpzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkKK3sK
KyNpZmRlZiBOREVCVUcKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworI2Vsc2UKKyAgICBtX3N0
YXRlID0gc3RhdGU7CisjZW5kaWYKK30KKwordm9pZCBQcmVyZW5kZXI6OmFkZCgpCit7CisgICAg
QVNTRVJUKG1fc3RhdGUgPT0gSW5hY3RpdmUpOworICAgIFdlYktpdDo6V2ViUHJlcmVuZGVyaW5n
U3VwcG9ydCogcGxhdGZvcm0gPSBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJl
bnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgV2ViS2l0OjpX
ZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOworICAgIHBsYXRmb3JtLT5hZGQod2ViUHJl
cmVuZGVyKTsKKyAgICBzZXRTdGF0ZShBY3RpdmUpOworfQorCit2b2lkIFByZXJlbmRlcjo6Y2Fu
Y2VsKCkKK3sKKyAgICBBU1NFUlQoV2ViS2l0OjpXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpjdXJy
ZW50KCkpOworICAgIFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nU3VwcG9ydCogcGxhdGZvcm0gPSBX
ZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJlbnQoKTsKKyAgICBpZiAoIXBsYXRm
b3JtKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gQWN0aXZlKTsKKyAg
ICBXZWJLaXQ6OldlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIodGhpcyk7CisgICAgcGxhdGZvcm0t
PmNhbmNlbCh3ZWJQcmVyZW5kZXIpOworICAgIHNldFN0YXRlKEluYWN0aXZlKTsKK30KKwordm9p
ZCBQcmVyZW5kZXI6OmFiYW5kb24oKQoreworICAgIFdlYktpdDo6V2ViUHJlcmVuZGVyaW5nU3Vw
cG9ydCogcGxhdGZvcm0gPSBXZWJLaXQ6OldlYlByZXJlbmRlcmluZ1N1cHBvcnQ6OmN1cnJlbnQo
KTsKKyAgICBpZiAoIXBsYXRmb3JtKQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IEFz
c2VydCBvbiB0aGUgc3RhdGUgYXMgSW5hY3RpdmUgaGVyZS4gSXQgaXMgY3VycmVudGx5IGNvbW1v
biB0byBjYWxsIGFiYW5kb24oKSBvbiBhbiBJbmFjdGl2ZQorICAgIC8vIHByZXJlbmRlciwgYXMg
dGhlIFByZXJlbmRlcmVyIGRvZXNuJ3Qga2VlcCB0cmFjayBvZiB3aGljaCBwcmVyZW5kZXJzIGFy
ZSBhY3RpdmUsIGFuZCBzbyBhbnkgcGFnZSB0aGF0CisgICAgLy8gZXZlciBoYWQgYSBub3ctY2Fu
Y2VsZWQgUHJlcmVuZGVyIHdpbGwgZ2V0IHRoaXMgYm9ndXMgc3RvcCgpIGNhbGwuCisgICAgV2Vi
S2l0OjpXZWJQcmVyZW5kZXIgd2ViUHJlcmVuZGVyKHRoaXMpOworICAgIHBsYXRmb3JtLT5hYmFu
ZG9uKHdlYlByZXJlbmRlcik7CisgICAgc2V0U3RhdGUoSW5hY3RpdmUpOworfQorCit2b2lkIFBy
ZXJlbmRlcjo6c3VzcGVuZCgpCit7CisgICAgYWJhbmRvbigpOworfQorCit2b2lkIFByZXJlbmRl
cjo6cmVzdW1lKCkKK3sKKyAgICBhZGQoKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJ
TktfUFJFUkVOREVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vUHJlcmVuZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5k
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NDY1YjIyY2FiMGFkZWQ2YTg2YjAzYjEyMzYyNzRkOWI5NDU5ZGQ5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUHJl
cmVuZGVyLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFByZXJlbmRlcl9oCisjZGVmaW5l
IFByZXJlbmRlcl9oCisKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xp
Y3kuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUHJlcmVuZGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8UHJlcmVuZGVyPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJlcmVu
ZGVyKTsKK3B1YmxpYzoKKyAgICBjbGFzcyBFeHRyYURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxF
eHRyYURhdGE+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfkV4dHJhRGF0YSgpIHsg
fQorICAgIH07CisKKyAgICBQcmVyZW5kZXIoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIFJlZmVycmVyUG9saWN5KTsKKyAgICB+UHJlcmVuZGVyKCk7CisKKyAgICB2b2lkIGFk
ZCgpOworICAgIHZvaWQgY2FuY2VsKCk7CisgICAgdm9pZCBhYmFuZG9uKCk7CisgICAgdm9pZCBz
dXNwZW5kKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKworICAgIGNvbnN0IEtVUkwmIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsOyB9CisgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVmZXJyZXI7IH0KKyAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7IH0KKworICAgIHZvaWQgc2V0RXh0
cmFEYXRhKFBhc3NSZWZQdHI8RXh0cmFEYXRhPiBleHRyYURhdGEpIHsgbV9leHRyYURhdGEgPSBl
eHRyYURhdGE7IH0KKyAgICBFeHRyYURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1fZXh0cmFE
YXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZW51bSBTdGF0ZSB7CisgICAgICAgIEluYWN0
aXZlLAorICAgICAgICBBY3RpdmUsCisgICAgfTsKKworICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUp
OworCisgICAgY29uc3QgS1VSTCBtX3VybDsKKyAgICBjb25zdCBTdHJpbmcgbV9yZWZlcnJlcjsK
KyAgICBjb25zdCBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5OworCisgICAgUmVmUHRy
PEV4dHJhRGF0YT4gbV9leHRyYURhdGE7CisKKyNpZm5kZWYgTkRFQlVHCisgICAgU3RhdGUgbV9z
dGF0ZTsKKyNlbmRpZgorfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExJTktfUFJFUkVOREVS
KQorCisjZW5kaWYgLy8gUHJlcmVuZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1ByZXJlbmRlckhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3Y2VjNzk3OWNk
NzUzZmE0ZDAyZDgyN2Q3MTEzM2UzNTk4OGFlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QcmVyZW5kZXJIYW5kbGUuY3BwCkBAIC0wLDAgKzEs
MTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
KgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVyZW5kZXJIYW5kbGUu
aCIKKworI2lmIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKKworI2luY2x1ZGUgIktVUkwuaCIKKyNp
bmNsdWRlICJQcmVyZW5kZXIuaCIKKyNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxQcmVyZW5kZXJIYW5kbGU+IFByZXJl
bmRlckhhbmRsZTo6Y3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgUmVmZXJyZXJQb2xpY3kgcG9saWN5KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJl
cmVuZGVySGFuZGxlKHVybCwgcmVmZXJyZXIsIHBvbGljeSkpOworfQorCitQcmVyZW5kZXJIYW5k
bGU6OlByZXJlbmRlckhhbmRsZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIFJlZmVycmVyUG9saWN5IHBvbGljeSkKKyAgICA6IG1fcHJlcmVuZGVyKGFkb3B0UmVmKG5l
dyBQcmVyZW5kZXIodXJsLCByZWZlcnJlciwgcG9saWN5KSkpCit7Cit9CisKK1ByZXJlbmRlckhh
bmRsZTo6flByZXJlbmRlckhhbmRsZSgpCit7Cit9CisKK1ByZXJlbmRlciogUHJlcmVuZGVySGFu
ZGxlOjpwcmVyZW5kZXIoKQoreworICAgIHJldHVybiBtX3ByZXJlbmRlci5nZXQoKTsKK30KKwor
dm9pZCBQcmVyZW5kZXJIYW5kbGU6OmFkZCgpCit7CisgICAgcHJlcmVuZGVyKCktPmFkZCgpOwor
fQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6Y2FuY2VsKCkKK3sKKyAgICBwcmVyZW5kZXIoKS0+
Y2FuY2VsKCk7Cit9CisKK3ZvaWQgUHJlcmVuZGVySGFuZGxlOjphYmFuZG9uKCkKK3sKKyAgICBw
cmVyZW5kZXIoKS0+YWJhbmRvbigpOworfQorCit2b2lkIFByZXJlbmRlckhhbmRsZTo6c3VzcGVu
ZCgpCit7CisgICAgcHJlcmVuZGVyKCktPnN1c3BlbmQoKTsKK30KKwordm9pZCBQcmVyZW5kZXJI
YW5kbGU6OnJlc3VtZSgpCit7CisgICAgcHJlcmVuZGVyKCktPnJlc3VtZSgpOworfQorCitjb25z
dCBLVVJMJiBQcmVyZW5kZXJIYW5kbGU6OnVybCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJl
cmVuZGVyLT51cmwoKTsKK30KKworY29uc3QgU3RyaW5nJiBQcmVyZW5kZXJIYW5kbGU6OnJlZmVy
cmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVyZW5kZXItPnVybCgpOworfQorCitSZWZl
cnJlclBvbGljeSBQcmVyZW5kZXJIYW5kbGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9wcmVyZW5kZXItPnJlZmVycmVyUG9saWN5KCk7Cit9CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShMSU5LX1BSRVJFTkRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUHJlcmVuZGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
MzI3ZmJkNzA2ZmM0MzA3ZmJjYTJmZmUwZjlmYWI4ODQ0YTA2M2MwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQcmVyZW5kZXIu
Y3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJQcmVyZW5kZXIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCisjaWYgRU5B
QkxFKExJTktfUFJFUkVOREVSKQorCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCituYW1lc3BhY2UgeworCitjbGFzcyBFeHRyYURhdGFDb250YWluZXIgOiBw
dWJsaWMgV2ViQ29yZTo6UHJlcmVuZGVyOjpFeHRyYURhdGEgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEV4dHJhRGF0YUNvbnRhaW5lcj4gY3JlYXRlKFdlYlByZXJlbmRlcjo6RXh0
cmFEYXRhKiBleHRyYURhdGEpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeHRyYURhdGFDb250YWlu
ZXIoZXh0cmFEYXRhKSk7IH0KKworICAgIHZpcnR1YWwgfkV4dHJhRGF0YUNvbnRhaW5lcigpIHsg
fQorCisgICAgV2ViUHJlcmVuZGVyOjpFeHRyYURhdGEqIGV4dHJhRGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgRXh0cmFE
YXRhQ29udGFpbmVyKFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhKiBleHRyYURhdGEpCisgICAgICAg
IDogbV9leHRyYURhdGEoYWRvcHRQdHIoZXh0cmFEYXRhKSkKKyAgICB7CisgICAgfQorCisgICAg
T3duUHRyPFdlYlByZXJlbmRlcjo6RXh0cmFEYXRhPiBtX2V4dHJhRGF0YTsKK307CisKK30gLy8g
YW5vbiBuYW1lc3BhY2UKKworV2ViUHJlcmVuZGVyOjpXZWJQcmVyZW5kZXIoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpQcmVyZW5kZXI+IHByZXJlbmRlcikKKyAgICA6IG1fcHJpdmF0ZShwcmVyZW5kZXIp
Cit7Cit9CisKK1dlYlByZXJlbmRlcjo6fldlYlByZXJlbmRlcigpCit7CisgICAgbV9wcml2YXRl
LnJlc2V0KCk7Cit9CisKK1dlYlVSTCBXZWJQcmVyZW5kZXI6OnVybCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFdlYlVSTChtX3ByaXZhdGUtPnVybCgpKTsKK30KKworV2ViU3RyaW5nIFdlYlByZXJl
bmRlcjo6cmVmZXJyZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnJlZmVycmVy
KCk7Cit9CisKK1dlYlJlZmVycmVyUG9saWN5IFdlYlByZXJlbmRlcjo6cmVmZXJyZXJQb2xpY3ko
KSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJSZWZlcnJlclBvbGljeT4obV9w
cml2YXRlLT5yZWZlcnJlclBvbGljeSgpKTsKK30KKwordm9pZCBXZWJQcmVyZW5kZXI6OnNldEV4
dHJhRGF0YShXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogZXh0cmFEYXRhKQoreworICAgIG1fcHJp
dmF0ZS0+c2V0RXh0cmFEYXRhKEV4dHJhRGF0YUNvbnRhaW5lcjo6Y3JlYXRlKGV4dHJhRGF0YSkp
OworfQorCitjb25zdCBXZWJQcmVyZW5kZXI6OkV4dHJhRGF0YSogV2ViUHJlcmVuZGVyOjpleHRy
YURhdGEoKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJDb3JlOjpQcmVyZW5kZXI6OkV4dHJhRGF0
YT4gd2ViY29yZUV4dHJhRGF0YSA9IG1fcHJpdmF0ZS0+ZXh0cmFEYXRhKCk7CisgICAgaWYgKCF3
ZWJjb3JlRXh0cmFEYXRhKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RXh0cmFEYXRhQ29udGFpbmVyKj4od2ViY29yZUV4dHJhRGF0YS5nZXQoKSktPmV4dHJhRGF0
YSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRUQoTElO
S19QUkVSRU5ERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggOTY0YzM1Yzc0YTY3MTZl
MjY0YmFmMTE4Yzc3NzdkYTVlYWYyYjk2NC4uZmRkOWRiMjhhMjk1OWU1ZGJkYWJhNzYyZjNhOWUw
YjRiN2M2MTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9i
bGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtNDUsNyArNDUsNiBAQCBw
dWJsaWM6CiAgICAgICAgIFRhcmdldElzV29ya2VyLAogICAgICAgICBUYXJnZXRJc1NoYXJlZFdv
cmtlciwKICAgICAgICAgVGFyZ2V0SXNQcmVmZXRjaCwKLSAgICAgICAgVGFyZ2V0SXNQcmVyZW5k
ZXIsCiAgICAgICAgIFRhcmdldElzRmF2aWNvbiwKICAgICAgICAgVGFyZ2V0SXNYSFIsCiAgICAg
ICAgIFRhcmdldElzVGV4dFRyYWNrLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJs
YWNrQmVycnkuY3BwCmluZGV4IDU4NDRmM2RiODIxZWRiNzJkNmMwODA0YTI3NzUxNmRlMzU5YmM0
MzIuLjVjZmZkZTAzOWRkZDNjMDI1M2FmYmEzNTUyODkxNWNiMGYzZWMxOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVl
c3RCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAKQEAgLTg2LDggKzg2LDYgQEAg
c3RhdGljIGlubGluZSBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0VHlwZSBwbGF0Zm9ybVRhcmdldFR5
cGVGb3JSZXF1ZXN0KGNvbnN0IFJlc28KICAgICAgICAgcmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpU
YXJnZXRJc0ltYWdlOwogICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1ByZWZldGNo
OgogICAgICAgICByZXR1cm4gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7Ci0g
ICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzUHJlcmVuZGVyOgotICAgICAgICByZXR1
cm4gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzU3VicmVzb3VyY2U7CiAgICAgY2FzZSBSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzWEhSOgogICAgICAgICByZXR1cm4gTmV0d29ya1JlcXVlc3Q6OlRh
cmdldElzU3VicmVzb3VyY2U7CiAgICAgY2FzZSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzVGV4
dFRyYWNrOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggZmNlMWViZmQwNzIzOTk0NDM0MTk2MzNk
ZDFkNzEwOWVlODcyMzQzMi4uN2VhNjFhODg4YmM5ZmI4YWViYjI0MTNiODQxYjNjYzM2ZTI2NWNl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Myw3ICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgICAgIFRhcmdldElzV29ya2VyLAogICAgICAgICAgICAgVGFyZ2V0SXNT
aGFyZWRXb3JrZXIsCiAgICAgICAgICAgICBUYXJnZXRJc1ByZWZldGNoLAotICAgICAgICAgICAg
VGFyZ2V0SXNQcmVyZW5kZXIsCiAgICAgICAgICAgICBUYXJnZXRJc0Zhdmljb24sCiAgICAgICAg
ICAgICBUYXJnZXRJc1hIUiwKICAgICAgICAgICAgIFRhcmdldElzVGV4dFRyYWNrLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGZkZGQ2OGQ0OTBhOTRlMTdkOWRhYTRjM2Y4ZDkwYmJh
MWQyNTI5Y2UuLmM3N2FlZDk3MzBhODc0NTA2NTJkNGU5YmZiNzU3Y2Y4YmM2N2Y4ZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTQzMSw2ICs0MzEsOCBAQAogICAgICAgICAgICAg
ICAgICdzcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAgICAg
ICdzcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9QcmVy
ZW5kZXJlckNsaWVudEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9QcmVyZW5kZXJlckNs
aWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2FuZHJvaWQvV2ViSW5wdXRFdmVu
dEZhY3RvcnkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL2xpbnV4L1dlYkZvbnRJbmZvLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9saW51eC9XZWJGb250UmVuZGVyaW5nLmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggMTExZWNjNjQxODIxMjNi
M2ViM2I5OTdjZGI2NTZmYmZlYjBhN2U1Ny4uYzFhMjljZWQ5OThlZDAzMmRlMTg4MmIwNWI2ODE1
MzA5NDE1OWQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAt
MTA3LDkgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0b2ZpbGxDbGll
bnQoV2ViQXV0b2ZpbGxDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldlRvb2xz
QWdlbnRDbGllbnQoV2ViRGV2VG9vbHNBZ2VudENsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KikgPSAwOwotICAgIC8v
IEZJWE1FOiBBZnRlciB0aGUgUHJlcmVuZGVyaW5nIEFQSSBsYW5kcyBpbiBjaHJvbWUsIHJlbW92
ZSB0aGlzIHN0YWdpbmcgdGh1bmsKLSAgICAvLyBmb3Igc2V0UHJlcmVuZGVyZXJDbGllbnQoKS4K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJDbGll
bnQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVu
ZGVyZXJDbGllbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNwZWxsQ2hlY2tDbGllbnQo
V2ViU3BlbGxDaGVja0NsaWVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxk
RGVjb3JhdG9yQ2xpZW50KFdlYlRleHRGaWVsZERlY29yYXRvckNsaWVudCopID0gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJlcmVuZGVyZXJDbGllbnRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVyQ2xpZW50SW1wbC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDY1MWQyNzlkZTg0NTFhOGJiYTFkYjU0ODY0NWY5ZGM2ZDA2NjMyNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRlcmVy
Q2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUHJlcmVuZGVyZXJDbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUHJlcmVuZGVyLmgiCisjaW5jbHVkZSAi
UHJlcmVuZGVySGFuZGxlLmgiCisjaW5jbHVkZSAiV2ViUHJlcmVuZGVyZXJDbGllbnQuaCIKKyNp
bmNsdWRlICJXZWJWaWV3SW1wbC5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXIuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUHJl
cmVuZGVyZXJDbGllbnRJbXBsOjpQcmVyZW5kZXJlckNsaWVudEltcGwoV2ViUHJlcmVuZGVyZXJD
bGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKK30KKwordm9pZCBQcmVy
ZW5kZXJlckNsaWVudEltcGw6OndpbGxBZGRQcmVyZW5kZXIoV2ViQ29yZTo6UHJlcmVuZGVySGFu
ZGxlKiBwcmVyZW5kZXJIYW5kbGUpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0
dXJuOworICAgIFdlYlByZXJlbmRlciB3ZWJQcmVyZW5kZXIocHJlcmVuZGVySGFuZGxlLT5wcmVy
ZW5kZXIoKSk7CisgICAgbV9jbGllbnQtPndpbGxBZGRQcmVyZW5kZXIoJndlYlByZXJlbmRlcik7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ByZXJlbmRl
cmVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUHJlcmVuZGVyZXJD
bGllbnRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUxNzYzMmFlYTQ1Y2NmNmE1ZTM2MGNlZWMxOGQ0Y2Q1
MzkzMTI1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1By
ZXJlbmRlcmVyQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBQcmVyZW5k
ZXJlckNsaWVudEltcGxfaAorI2RlZmluZSBQcmVyZW5kZXJlckNsaWVudEltcGxfaAorCisjaW5j
bHVkZSAiUHJlcmVuZGVyZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBQcmVyZW5kZXJIYW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQ
cmVyZW5kZXJlckNsaWVudDsKKworY2xhc3MgUHJlcmVuZGVyZXJDbGllbnRJbXBsIDogcHVibGlj
IFdlYkNvcmU6OlByZXJlbmRlcmVyQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
cmVyZW5kZXJlckNsaWVudEltcGwpOworcHVibGljOgorICAgIGV4cGxpY2l0IFByZXJlbmRlcmVy
Q2xpZW50SW1wbChXZWJQcmVyZW5kZXJlckNsaWVudCopOworCisgICAgdm9pZCB3aWxsQWRkUHJl
cmVuZGVyKFdlYkNvcmU6OlByZXJlbmRlckhhbmRsZSopIE9WRVJSSURFOworCitwcml2YXRlOgor
ICAgIFdlYlByZXJlbmRlcmVyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30KKworI2VuZGlmIC8v
IFByZXJlbmRlcmVyQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJLaXQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNw
cAppbmRleCBkYTU0Y2NhNTAxZTk5Mzc5ZTM0NGU1Y2E1ZWRlOGRkNTViMGJiNGMzLi5lZTk5OWE5
MTYxNmRiMDkwMjY0ZTE5NmIzM2RlMTZkZjFhY2JhN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYktpdC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJU
aHJlYWQuaCIKICNpbmNsdWRlICJ2OC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgor
I2luY2x1ZGUgPHB1YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KQEAgLTE2Myw2ICsxNjQsNyBAQCB2b2lkIHNodXRkb3duKCkKICNlbmRp
ZgogICAgIHNfd2ViS2l0UGxhdGZvcm1TdXBwb3J0ID0gMDsKICAgICBQbGF0Zm9ybTo6c2h1dGRv
d24oKTsKKyAgICBXZWJQcmVyZW5kZXJpbmdTdXBwb3J0OjpzaHV0ZG93bigpOwogfQogCiBXZWJL
aXRQbGF0Zm9ybVN1cHBvcnQqIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYjIyMjk0MzlkYzA1YTQ2NTRkZTk3
YjllOWE2YTM0ZmMyMjEwY2NmZS4uYTc3NDdlMWYzNmI4NGFhMjZhYjgxMzM4M2IzMDU0OWY2M2Ew
NzRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAt
OTksNiArOTksNyBAQAogI2luY2x1ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIlBvcHVwQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisjaW5j
bHVkZSAiUHJlcmVuZGVyZXJDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2Vy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgpAQCAtMzIxLDYgKzMyMiwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQZXJtaXNz
aW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIHBlcm1pc3Npb25DbGllbnQpCiAgICAgbV9w
ZXJtaXNzaW9uQ2xpZW50ID0gcGVybWlzc2lvbkNsaWVudDsKIH0KIAordm9pZCBXZWJWaWV3SW1w
bDo6c2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVyZXJDbGllbnQqIHByZXJlbmRlcmVy
Q2xpZW50KQoreworICAgIHByb3ZpZGVQcmVyZW5kZXJlckNsaWVudFRvKG1fcGFnZS5nZXQoKSwg
bmV3IFByZXJlbmRlcmVyQ2xpZW50SW1wbChwcmVyZW5kZXJlckNsaWVudCkpOworfQorCiB2b2lk
IFdlYlZpZXdJbXBsOjpzZXRTcGVsbENoZWNrQ2xpZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqIHNw
ZWxsQ2hlY2tDbGllbnQpCiB7CiAgICAgbV9zcGVsbENoZWNrQ2xpZW50ID0gc3BlbGxDaGVja0Ns
aWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDliNDRm
YjY4ZDNiZDBlN2VmMzQxODMzZTllZGE0N2U0ZmRjYTM5ZjUuLmNmZGIyMzNhNWM3OTcyNzQwMDMy
MDlhNTJhOWExMzg4OWJkMzZlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaApAQCAtOTEsNiArOTEsNyBAQCBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwogY2xhc3MgR2VvbG9jYXRpb25DbGllbnRQcm94
eTsKIGNsYXNzIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDsKK2NsYXNzIFByZXJlbmRlcmVyQ2xp
ZW50SW1wbDsKIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50SW1wbDsKIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50UHJveHk7CiBjbGFzcyBVc2VyTWVkaWFDbGllbnRJbXBsOwpAQCAtMTAxLDYg
KzEwMiw3IEBAIGNsYXNzIFdlYkRldlRvb2xzQWdlbnRQcml2YXRlOwogY2xhc3MgV2ViRnJhbWVJ
bXBsOwogY2xhc3MgV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgV2ViUGFnZVBvcHVwSW1wbDsKK2Ns
YXNzIFdlYlByZXJlbmRlcmVyQ2xpZW50OwogY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJLZXli
b2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKQEAgLTE2MSw2ICsxNjMsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dG9maWxsQ2xpZW50KFdlYkF1dG9maWxsQ2xpZW50
Kik7CiAgICAgdmlydHVhbCB2b2lkIHNldERldlRvb2xzQWdlbnRDbGllbnQoV2ViRGV2VG9vbHNB
Z2VudENsaWVudCopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBl
cm1pc3Npb25DbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyZXJDbGllbnQo
V2ViUHJlcmVuZGVyZXJDbGllbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3Bl
bGxDaGVja0NsaWVudChXZWJTcGVsbENoZWNrQ2xpZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGFk
ZFRleHRGaWVsZERlY29yYXRvckNsaWVudChXZWJUZXh0RmllbGREZWNvcmF0b3JDbGllbnQqKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIFdlYlNldHRpbmdzKiBzZXR0aW5ncygpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4
MTVhMTM5NDQ0MGIzZDlkMmVmMWFmNTBhYTAwZjAyMDU3NDRiOWEuLjA0Y2ExZDEyNmRkYjdmNmY2
MDk1ZDVhMzJkODkyYmVjZmRkNjMxMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNS0x
NCAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgUHJl
cmVuZGVyZXIsIFByZXJlbmRlckhhbmRsZSBhbmQgYSBjaHJvbWl1bSBpbnRlcmZhY2UgZm9yIFBy
ZXJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg1MDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBU
aGUgcHJlcmVuZGVyIGNhc2UgaXNuJ3QgcXVpdGUgYSByZXNvdXJjZSBsb2FkLCBhbmQgdXNpbmcg
cmVzb3VyY2UgbG9hZGluZyB0bworICAgICAgICByZXRyaWV2ZSB0aGVtIGhhcyBjb25zdHJhaW5l
ZCB0aGUgQVBJLCBhbmQgdW5uZWNlc3NhcmlseSBjb21wbGljYXRlZCB0aGUgbG9hZGVyLgorCisg
ICAgICAgIFRoZSBuZXcgUHJlcmVuZGVyZXIgYW5kIFByZXJlbmRlckhhbmRsZSBsZXQgPGxpbmsg
cmVsPXByZXJlbmRlci4uLj4gZWxlbWVudHMgc2lnbmFsCisgICAgICAgIHJlbW92YWwgYW5kIHVu
bG9hZCB0byB0aGVpciBwbGF0Zm9ybS4KKworICAgICAgICBUaGVzZSB0ZXN0cyBhcmUgYmVpbmcg
cmVtb3ZlZCwgYW5kIGV4cGVjdGF0aW9ucyB1cGRhdGVkLCBiZWNhdXNlIHRoZSBvbGQgcGhhbnRv
bS1sb2FkCisgICAgICAgIHByZXJlbmRlcmluZyBpbnRlcmZhY2Ugd2FzIHN1c2NlcHRpYmxlIHRv
IGxheW91dCB0ZXN0aW5nLCBhbmQgdGhlIG5ldyBpbnRlcmZhY2UgcmVxdWlyZXMKKyAgICAgICAg
YSBmdWxsIHBsYXRmb3JtIHRvIHRlc3QsIHNvIGl0IGNhbid0IHJlYWxseSBiZSBhIGxheW91dCB0
ZXN0LgorCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZXJlbmRlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkOgorCiAyMDEyLTA1LTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBhIENocm9taXVtIHRl
c3QgZXhwZWN0YXRpb24gbm93IHRoYXQgdGhlIHJlZ3Jlc3Npb24gaXMgZml4ZWQgaW4gcjExNjgx
NC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVy
ZW5kZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50
L3ByZXJlbmRlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2
NWJmZTI2NDUyMDRkMTMyNTdlY2QyNDYyOTVjMGE5NGQ3MWNjZWQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZXJlbmRlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLXByZWZldGNoLmxpbmsgaGFzIE1JTUUgdHlwZSBhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0KLVBBU1Mgb25sb2FkIGNhbGxlZCEKLVRoaXMgdGVzdCB3aWxsIG9ubHkgcHJpbnQgIlBBU1Mi
IG9yICJGQUlMIiBpZiBsaW5rIHByZWZldGNoZXMgYXJlIGVuYWJsZWQsIG90aGVyd2lzZSBpdCB3
aWxsIHNob3cgbm90aGluZyBiZWxvdy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjk3OGY0MmNlZWM2Mzc1M2QwNjdjMjRiMjhhZWQ3M2ZlYzYzNGM2Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MTGlua0VsZW1lbnQvcHJlcmVuZGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCww
IEBACi08Ym9keT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rp
b24gcHJlZmV0Y2hfb25sb2FkKCkgewotICAgIHRlc3RQYXNzZWQoJ29ubG9hZCBjYWxsZWQhJyk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKTsKLX0KLTwv
c2NyaXB0PgotPGh0bWw+Ci08cD5UaGlzIHRlc3Qgd2lsbCBvbmx5IHByaW50ICJQQVNTIiBvciAi
RkFJTCIgaWYgbGluayBwcmVmZXRjaGVzIGFyZQotZW5hYmxlZCwgb3RoZXJ3aXNlIGl0IHdpbGwg
c2hvdyBub3RoaW5nIGJlbG93LjwvcD4KLTxsaW5rIGhyZWY9InByZWZldGNoLmxpbmsiIHJlbD0i
cHJlcmVuZGVyIiBvbmxvYWQ9InByZWZldGNoX29ubG9hZCgpIiBvbmVycm9yPSJ0ZXN0RmFpbGVk
KCdvbmVycm9yJykiIC8+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
dGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDljNDFlZDk3NzRjMTFlNzViZDJmNWNlM2Q3OWVk
NzQ1YjM2NjlmNDAuLmRlN2ExNTU2ZjY0NzIwMzYyNWI2MDEwMTVlNzY5OGRiNDlhZWJhZmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAt
ODM3LDcgKzgzNyw2IEBAIEJVR1dLR1RLIDogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZl
dGNoLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVm
ZXRjaC1iZWZvcmVsb2FkLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9tL0hUTUxMaW5r
RWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwgPSBGQUlMCiBCVUdXS0dUSyA6IGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbCA9IEZBSUwKLUJVR1dLR1RLIDog
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZXJlbmRlci5odG1sID0gRkFJTAogQlVHV0tHVEsg
OiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3VyY2UuaHRtbCA9IEZBSUwKIAogLy8g
VGVzdHMgZmFpbGluZyBiZWNhdXNlIHRoZSBjb250ZXh0IG1lbnUgaXMgZ3JhYmJpbmcgbW91c2Ug
ZXZlbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA2NTM2NDY1ZjBlNmY3NDk1MThi
NzRiMWI3ZjVhNGNiMzJlNmE0NTY3Li5mNzc0ODhjNTMyMDEzYTAxZWJjOWVjMTY5YjMxNGNmMjY4
NWEwYmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTkzLDcgKzE5Myw2IEBAIGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5r
RWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZWZldGNoLXRvby1tYW55LWNsaWVudHMuaHRtbAotZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZXJlbmRlci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3VyY2UuaHRtbAog
aHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLXByZWZldGNoLWFuZC1zdWJyZXNvdXJjZS5odG1sCiBo
dHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAppbmRleCAzZTBhZTUzYjdiNDE4ZTJjOTFiNGUwYjVlOGQ5ZTY2OWY0MGVlNmNiLi4wOGI1NzJk
MmY2NzgwMGM0MDAwNDM5Njg0ZDM5YzMxYjg5ZTAxMzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKQEAgLTE0NCw3ICsxNDQsNiBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gt
YmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJv
ci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRzLmh0bWwKLWZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3N1YnJlc291cmNlLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1wcmVmZXRj
aC1hbmQtc3VicmVzb3VyY2UuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2Uu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5M2EwNjEyYTNiMDg0Zjg5MzNkMzdh
MDZkMDFmZDFlNDc4NmM4MmQ0Li4wY2FlNDRmMTNjNDkyNGUyNzgxMzk2ZWFkYTU4YTRkZWY0NWUy
ZTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTA5Nyw3ICsxMDk3LDYgQEAgZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlZmV0Y2gtdG9vLW1hbnktY2xpZW50cy5odG1sCiBodHRwL3Rlc3RzL21pc2MvbGluay1y
ZWwtcHJlZmV0Y2gtYW5kLXN1YnJlc291cmNlLmh0bWwKLWZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9wcmVyZW5kZXIuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3N1YnJlc291cmNlLmh0
bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1NraXBwZWQKaW5kZXggOTgzYzNiNTI5NjkzMDJjMmE2MGI5ZDRiYmYxOGMy
MjVlN2E4NmY0MS4uY2JmODg4NTVjZGQ5NDMzMGY3MDU0MTliMWU2MzY4YzMyZmQ5OWZlZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCkBAIC0xNjEyLDcgKzE2MTIsNiBAQCBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9I
VE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVmZXRjaC10b28tbWFueS1jbGllbnRzLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9saW5r
LXJlbC1wcmVmZXRjaC1hbmQtc3VicmVzb3VyY2UuaHRtbAotZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZXJlbmRlci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc3VicmVzb3VyY2Uu
aHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>