<?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>140673</bug_id>
          
          <creation_ts>2015-01-20 04:57:24 -0800</creation_ts>
          <short_desc>Add a WebKitMessageRecorder DTrace provider, exposing IPC details to DTrace</short_desc>
          <delta_ts>2015-02-02 22:12:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>141027</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lantw44</cc>
    
    <cc>mitz</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1062704</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-20 04:57:24 -0800</bug_when>
    <thetext>Add a WebKitMessageRecorder DTrace provider, exposing IPC details to DTrace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062705</commentid>
    <comment_count>1</comment_count>
      <attachid>244984</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-20 04:58:58 -0800</bug_when>
    <thetext>Created attachment 244984
preliminary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062706</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-20 04:59:24 -0800</bug_when>
    <thetext>Need to sort out the ProcessType layering violation before this can go up for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062879</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-20 14:25:09 -0800</bug_when>
    <thetext>Sam thinks that we should use bundleID instead of process type enums, and keep around the remote bundleID on the Connection when it&apos;s launched, and have a mapping in the script that processes the output.

Dan thinks that the DTrace script that traces the messages should be included in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062975</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-20 18:29:51 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Sam thinks that we should use bundleID instead of process type enums, and
&gt; keep around the remote bundleID on the Connection when it&apos;s launched, and
&gt; have a mapping in the script that processes the output.

We&apos;re not going to do this, just move the enum to IPC::.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063126</commentid>
    <comment_count>5</comment_count>
      <attachid>245074</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-21 11:55:34 -0800</bug_when>
    <thetext>Created attachment 245074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063739</commentid>
    <comment_count>6</comment_count>
      <attachid>245074</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-23 11:41:56 -0800</bug_when>
    <thetext>Comment on attachment 245074
Patch

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

I would like to see the generated output as well before finishing the review.

&gt; Source/WebKit2/Platform/IPC/MessageRecorder.cpp:35
&gt; +using namespace IPC;

You should instead use the normal namespace IPC { }.

&gt; Source/WebKit2/Platform/IPC/MessageRecorder.cpp:49
&gt; +    record.sourceProcessType = (uint64_t)connection-&gt;client()-&gt;localProcessType();
&gt; +    record.destinationProcessType = (uint64_t)connection-&gt;client()-&gt;remoteProcessType();

static_cast.

&gt; Source/WebKit2/Platform/IPC/MessageRecorder.cpp:77
&gt; +    record.sourceProcessType = (uint64_t)connection-&gt;client()-&gt;remoteProcessType();
&gt; +    record.destinationProcessType = (uint64_t)connection-&gt;client()-&gt;localProcessType();

static_cast.

&gt; Source/WebKit2/Platform/IPC/MessageRecorder.h:45
&gt; +    MallocPtr&lt;char&gt; messageReceiverName;
&gt; +    MallocPtr&lt;char&gt; messageName;

Maybe this should use std::unique_ptr&lt;char[]&gt;, though I don&apos;t know if either have guarantees that that they have the same memory layout as a char*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064669</commentid>
    <comment_count>7</comment_count>
      <attachid>245474</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-27 14:49:38 -0800</bug_when>
    <thetext>Created attachment 245474
derived header</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064860</commentid>
    <comment_count>8</comment_count>
      <attachid>245528</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-28 03:04:09 -0800</bug_when>
    <thetext>Created attachment 245528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064976</commentid>
    <comment_count>9</comment_count>
      <attachid>245528</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-28 11:51:47 -0800</bug_when>
    <thetext>Comment on attachment 245528
Patch

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

&gt; Source/WebKit2/Platform/IPC/MessageRecorder.cpp:42
&gt; +std::unique_ptr&lt;MessageRecorder::MessageProcessingToken&gt; MessageRecorder::recordOutgoingMessage(Connection* connection, MessageEncoder* encoder)

Can this take a Connection&amp; and a MessageDecoder&amp; ?

&gt; Source/WebKit2/Platform/IPC/MessageRecorder.cpp:70
&gt; +void MessageRecorder::recordIncomingMessage(Connection* connection, MessageDecoder* decoder)

Can this take a Connection&amp; and a MessageDecoder&amp; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065078</commentid>
    <comment_count>10</comment_count>
      <attachid>245583</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-28 16:50:34 -0800</bug_when>
    <thetext>Created attachment 245583
fixing sam&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065121</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-28 18:32:50 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/179326</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065168</commentid>
    <comment_count>12</comment_count>
      <attachid>245583</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-28 23:56:19 -0800</bug_when>
    <thetext>Comment on attachment 245583
fixing sam&apos;s comments

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

&gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:32
&gt; +#include &lt;uuid/uuid.h&gt;

This header doesn’t seem to be present on EFL or GTL, so the code needs to be conditional to allow them to continue to build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065171</commentid>
    <comment_count>13</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-29 00:00:04 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 245583 [details]
&gt; fixing sam&apos;s comments
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=245583&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:32
&gt; &gt; +#include &lt;uuid/uuid.h&gt;
&gt; 
&gt; This header doesn’t seem to be present on EFL or GTL, so the code needs to
&gt; be conditional to allow them to continue to build.

Added uuid-dev as package dependency list:
http://trac.webkit.org/changeset/179337</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065173</commentid>
    <comment_count>14</comment_count>
      <attachid>245583</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-29 00:06:50 -0800</bug_when>
    <thetext>Comment on attachment 245583
fixing sam&apos;s comments

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

&gt; Source/WebKit2/Platform/IPC/MessageRecorder.cpp:32
&gt; +#include &quot;MessageRecorderProbes.h&quot;

Where is it come from? I can&apos;t see this file in the tree checked 
in and can&apos;t find any generator responsible for generating it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065176</commentid>
    <comment_count>15</comment_count>
      <attachid>245583</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-29 00:12:00 -0800</bug_when>
    <thetext>Comment on attachment 245583
fixing sam&apos;s comments

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

&gt;&gt; Source/WebKit2/Platform/IPC/MessageRecorder.cpp:32
&gt;&gt; +#include &quot;MessageRecorderProbes.h&quot;
&gt; 
&gt; Where is it come from? I can&apos;t see this file in the tree checked 
&gt; in and can&apos;t find any generator responsible for generating it.

I believe it is generated from the &quot;MessageRecorder.d&quot; file by Xcode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065177</commentid>
    <comment_count>16</comment_count>
    <who name="">mitz</who>
    <bug_when>2015-01-29 00:14:22 -0800</bug_when>
    <thetext>You can see the dtrace invocation in the build log:
    /usr/sbin/dtrace -h -s Platform/IPC/MessageRecorderProbes.d -o ${DERIVED_SOURCES_DIR}/MessageRecorderProbes.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065178</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-29 00:19:44 -0800</bug_when>
    <thetext>It seems there is no dtrace on Linux, I&apos;ll try add ifdef guards to disable
this new feature on non Cocoa platforms, I filed a new bug report: bug141027</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065194</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-29 02:58:37 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; It seems there is no dtrace on Linux, I&apos;ll try add ifdef guards to disable
&gt; this new feature on non Cocoa platforms, I filed a new bug report: bug141027

For the record:

To my knowledge, there are at least two or three ports of DTrace for Linux. One of them done by Oracle itself (the owners of the copyright for DTrace)

Is not shipped within the Linux kernel (and never will be) because of incompatibility between the GPL (Linux) and the CDDL (DTrace) Licenses.

However, is possible to ship it as a DKMS kernel module that is built on the user machine at install time. That avoids the legal issues.

Also it seems that Oracle ships it on their distribution.

Some links:

https://events.linuxfoundation.org/images/stories/pdf/lfcs2012_zannoni_hees.pdf
https://blogs.oracle.com/linux/entry/announcement_dtrace_for_oracle_linux
https://github.com/dtrace4linux/linux
http://www.crisp.demon.co.uk/tools.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065197</commentid>
    <comment_count>19</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-29 03:14:03 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; It seems there is no dtrace on Linux, I&apos;ll try add ifdef guards to disable
&gt; this new feature on non Cocoa platforms, I filed a new bug report: bug141027

I would use ENABLE(DTRACE) or something like that, instead of PLATFORM(COCOA), since we might support DTrace eventually. In any case, I think we want to support it optionally, so we need the #ifdefs guards even if we support DTrace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065202</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-29 04:02:29 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #17)
&gt; &gt; It seems there is no dtrace on Linux, I&apos;ll try add ifdef guards to disable
&gt; &gt; this new feature on non Cocoa platforms, I filed a new bug report: bug141027
&gt; 
&gt; I would use ENABLE(DTRACE) or something like that, instead of
&gt; PLATFORM(COCOA), since we might support DTrace eventually. In any case, I
&gt; think we want to support it optionally, so we need the #ifdefs guards even
&gt; if we support DTrace

Also, other platforms where WebKitGTK+ runs, like FreeBSD, include support for DTrace out of the box... so I think that ENABLE(DTRACE) is ok.

And maybe default ENABLE(DTRACE) to true on the platforms that this support comes out of the box: To my knowledge -&gt; MacOS, FreeBSD, NetBSD and Solaris.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065203</commentid>
    <comment_count>21</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-29 04:06:49 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; (In reply to comment #17)
&gt; &gt; &gt; It seems there is no dtrace on Linux, I&apos;ll try add ifdef guards to disable
&gt; &gt; &gt; this new feature on non Cocoa platforms, I filed a new bug report: bug141027
&gt; &gt; 
&gt; &gt; I would use ENABLE(DTRACE) or something like that, instead of
&gt; &gt; PLATFORM(COCOA), since we might support DTrace eventually. In any case, I
&gt; &gt; think we want to support it optionally, so we need the #ifdefs guards even
&gt; &gt; if we support DTrace
&gt; 
&gt; Also, other platforms where WebKitGTK+ runs, like FreeBSD, include support
&gt; for DTrace out of the box... so I think that ENABLE(DTRACE) is ok.
&gt; 
&gt; And maybe default ENABLE(DTRACE) to true on the platforms that this support
&gt; comes out of the box: To my knowledge -&gt; MacOS, FreeBSD, NetBSD and Solaris.

I wonder if it would be desirable to disable the message recorder in production builds even for platforms supporting DTrace. ENABLE(DTRACE) would work for that case as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065206</commentid>
    <comment_count>22</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-01-29 04:33:14 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; 
&gt; I wonder if it would be desirable to disable the message recorder in
&gt; production builds even for platforms supporting DTrace. ENABLE(DTRACE) would
&gt; work for that case as well.

The plan is that it should be sufficiently low overhead that you don&apos;t have to do this, so you can trace production builds.

But, sure, I think ENABLE(DTRACE) is probably a good plan all around (for https://bugs.webkit.org/show_bug.cgi?id=141027, not here).

&gt; This header doesn’t seem to be present on EFL or GTL, so the code needs to be conditional to allow them to continue to build.

I checked to make sure that one was available for the other ports (though didn&apos;t know how to fix the build), but I totally forgot about DTrace :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066370</commentid>
    <comment_count>23</comment_count>
    <who name="Ting-Wei Lan">lantw44</who>
    <bug_when>2015-02-02 22:12:09 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; The plan is that it should be sufficiently low overhead that you don&apos;t have
&gt; to do this, so you can trace production builds.
&gt; 
&gt; But, sure, I think ENABLE(DTRACE) is probably a good plan all around (for
&gt; https://bugs.webkit.org/show_bug.cgi?id=141027, not here).

I think ENABLE(DTRACE) is needed on FreeBSD because dtrace -h needs dtraceall.ko to be loaded to work. Users may want to disable dtrace when they don&apos;t have root privileges to load kernel modules.

&gt; 
&gt; &gt; This header doesn’t seem to be present on EFL or GTL, so the code needs to be conditional to allow them to continue to build.
&gt; 
&gt; I checked to make sure that one was available for the other ports (though
&gt; didn&apos;t know how to fix the build), but I totally forgot about DTrace :|</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244984</attachid>
            <date>2015-01-20 04:58:58 -0800</date>
            <delta_ts>2015-01-21 11:55:28 -0800</delta_ts>
            <desc>preliminary</desc>
            <filename>bug-140673-20150120045905.patch</filename>
            <type>text/plain</type>
            <size>54578</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4Njk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmJmNThlMDJlMWViNDY5
ZjFjODFmZjNkNDAxMDA3ZjUyNDYzZTUzOS4uNTBmNTM3NWE0YzNkY2QwYWU5YjZhNmY1NGU1NzUz
NzkyOTUwZTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wMS0yMCAgVGlt
b3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEg
V2ViS2l0TWVzc2FnZVJlY29yZGVyIERUcmFjZSBwcm92aWRlciwgZXhwb3NpbmcgSVBDIGRldGFp
bHMgdG8gRFRyYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDA2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8dXVpZF90Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjx1dWlkX3Q+OjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5oOgorICAgICAgICBBZGQgYSB1dWlkX3QgKHNpbXBsZSkgYXJndW1lbnQgY29kZXIuCisgICAg
ICAgIEZpeCBhIG1pcy1uYW1lZCBoZWFkZXItZ3VhcmQgI2lmZGVmLgorCisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNw
YXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgU3luYyBtZXNzYWdlIHJlcGxp
ZXMgaW5oZXJpdCB0aGUgbWVzc2FnZSBVVUlEIGZyb20gdGhlIGluY29taW5nIHN5bmMgbWVzc2Fn
ZS4KKworICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kTWVzc2FnZSk6CisgICAgICAgIChJ
UEM6OkNvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6c2VuZFN5bmNNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNN
ZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZCk6CisgICAgICAgIFJlY29yZCBvdXRnb2luZyBtZXNz
YWdlcy4gQmVjYXVzZSBzZW5kU3luY01lc3NhZ2UgY2FsbHMgc2VuZE1lc3NhZ2UsCisgICAgICAg
IHdlIGhhdmUgdG8gZXhwbGljaXRseSBhdm9pZCByZWNvcmRpbmcgdGhlIG1lc3NhZ2UgdHdpY2Uu
CisKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAg
UmVjb3JkIHRoZSBpbmNvbWluZyBtZXNzYWdlLgorCisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246
OnJlbW90ZVByb2Nlc3NJRCk6CisgICAgICAgIEFkZCByZW1vdGVQcm9jZXNzSUQoKSwgd2hpY2gg
dHJpZXMgdG8gZGV0ZXJtaW5lIHRoZSBwaWQgb2YgdGhlIHJlbW90ZSBwcm9jZXNzLgorCisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6eHBjQ29ubmVjdGlvbik6CisgICAgICAgIFRoaXMgY2FuIGJlIGNvbnN0LgorCisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OmlzVmFsaWQpOgorICAgICAgICBNYWtlIHRoaXMgcHVibGljLgor
CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKElQ
Qzo6TWVzc2FnZURlY29kZXI6Ok1lc3NhZ2VEZWNvZGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvTWVzc2FnZURlY29kZXIuaDoKKyAgICAgICAgKElQQzo6TWVzc2FnZURlY29kZXI6OnNldE1l
c3NhZ2VQcm9jZXNzaW5nVG9rZW4pOgorICAgICAgICAoSVBDOjpNZXNzYWdlRGVjb2Rlcjo6VVVJ
RCk6CisgICAgICAgIERlY29kZSBhbmQgc3RvcmUgdGhlIG1lc3NhZ2UgVVVJRC4KKyAgICAgICAg
U3RvcmUgYSBNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIE1l
c3NhZ2VEZWNvZGVyOworICAgICAgICB0aGlzIGVuc3VyZXMgdGhhdCBhbGwgdGltZSBzcGVudCBw
cm9jZXNzaW5nIHRoZSBpbmNvbWluZyBtZXNzYWdlIHdpbGwgYmUKKyAgICAgICAgY291bnRlZCBh
Z2FpbnN0IHRoYXQgbWVzc2FnZS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlRW5j
b2Rlci5jcHA6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpNZXNzYWdlRW5jb2Rlcik6
CisgICAgICAgIEJ5IGRlZmF1bHQsIGNyZWF0ZSBhIG5ldyBVVUlEIGZvciB0aGUgbWVzc2FnZS4g
QWx0ZXJuYXRpdmVseSwgYWxsb3cgY2xpZW50cworICAgICAgICB0byBwYXNzIHRoZSBtZXNzYWdl
IFVVSUQgaW4gKHVzZWQgZm9yIHN5bmMgbWVzc2FnZSByZXBsaWVzKS4KKyAgICAgICAgU3RvcmUg
dGhlIG1lc3NhZ2VSZWNlaXZlck5hbWUgYW5kIG1lc3NhZ2VOYW1lLgorCisgICAgICAgIChJUEM6
Ok1lc3NhZ2VFbmNvZGVyOjplbmNvZGVIZWFkZXIpOgorICAgICAgICBGYWN0b3IgZW5jb2RlSGVh
ZGVyKCkgb3V0IG9mIHRoZSBjb25zdHJ1Y3RvcnMgc28gbW9zdCBvZiB0aGVpciBjb2RlIGNhbiBi
ZSBzaGFyZWQuCisKKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6OmlzU3luY01lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5jb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICBBZGQgZ2V0dGVycyBmb3IgdGhlc2UgZmxh
Z3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuaDoKKyAgICAgICAg
KElQQzo6TWVzc2FnZUVuY29kZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUpOgorICAgICAgICAoSVBD
OjpNZXNzYWdlRW5jb2Rlcjo6bWVzc2FnZU5hbWUpOgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5j
b2Rlcjo6ZGVzdGluYXRpb25JRCk6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpVVUlE
KToKKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoTWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUmVjb3JkZXIpOgorICAgICAgICBBZGQgYSBjbGFz
cyB0aGF0IGludGVyZmFjZXMgd2l0aCBhIGN1c3RvbSBEVHJhY2UgcHJvdmlkZXIgdG8gbG9nIGlu
Y29taW5nIGFuZCBvdXRnb2luZyBtZXNzYWdlcy4KKworICAgICAgICAoTWVzc2FnZVJlY29yZGVy
OjpzaGFyZWQpOgorICAgICAgICAoTWVzc2FnZVJlY29yZGVyOjppc0VuYWJsZWQpOgorICAgICAg
ICBEZXRlcm1pbmUgaWYgZWl0aGVyIG9mIHRoZSBtZXNzYWdlIHByb2JlcyBhcmUgZW5hYmxlZC4g
SWYgbm90LCB3ZSdsbCBhdm9pZCBtb3N0IG9mIHRoZQorICAgICAgICB3b3JrIGFzc29jaWF0ZWQg
d2l0aCBNZXNzYWdlUmVjb3JkZXIuCisKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3Jk
T3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkSW5jb21p
bmdNZXNzYWdlKToKKyAgICAgICAgQnVpbGQgYSBXZWJLaXRNZXNzYWdlUmVjb3JkIGFuZCBNZXNz
YWdlUHJvY2Vzc2luZ1Rva2VuIGZyb20gdGhlIE1lc3NhZ2UoRGV8RW4pY29kZXIuCisgICAgICAg
IE9uY2UgdGhlIE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4gaXMgZGVhbGxvY2F0ZWQsIHRoZSBwcm9i
ZSB3aWxsIGJlIGludm9rZWQgd2l0aCB0aGUgV2ViS2l0TWVzc2FnZVJlY29yZC4KKworICAgICAg
ICAoTWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuOjpNZXNzYWdlUHJvY2Vz
c2luZ1Rva2VuKToKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdU
b2tlbjo6fk1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4pOgorICAgICAgICBLZWVwIHRyYWNrIG9mIHdo
ZW4gdGhlIHRva2VuIGlzIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZDsgdGhlc2UgYXJlIGNvbnNpZGVy
ZWQgdGhlIGJlZ2lubmluZworICAgICAgICBhbmQgZW5kaW5nICJwcm9jZXNzaW5nIiB0aW1lcyBv
ZiB0aGUgbWVzc2FnZSAoYW5kIGFzIHN1Y2ggdGhlIHRva2VuIHNob3VsZCBiZSBrZXB0IGFsaXZl
IGZvcgorICAgICAgICBleGFjdGx5IGFzIGxvbmcgYXMgdGhlIG1lc3NhZ2UgaXMgYmVpbmcgcHJv
Y2Vzc2VkKS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQcm9iZXMu
ZDogQWRkZWQuCisgICAgICAgIEFkZCBhIERUcmFjZSBwcm92aWRlciBzb3VyY2UgZmlsZSB3aXRo
IHR3byBwcm9iZXMsIG1lc3NhZ2Vfc2VudCBhbmQgbWVzc2FnZV9yZWNlaXZlZC4KKyAgICAgICAg
VGhlIHN0cnVjdCBtdXN0IG1hdGNoIHRoZSBzdHJ1Y3QgaW4gTWVzc2FnZVJlY29yZGVyLmguCisg
ICAgICAgIAorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwor
ICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzVHlwZS5oOiBBZGRlZC4KKyAgICAgICAgQWRkIGFuIGVu
dW0gb2YgcHJvY2VzcyB0eXBlcyAoRklYTUU6IHRoaXMgaXMgYSBsYXllcmluZyB2aW9sYXRpb24g
dGhhdCBuZWVkcyBzb3J0aW5nIG91dCkuCisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0
YWJhc2VQcm9jZXNzLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9E
YXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgQW5ub3RhdGUg
Q29ubmVjdGlvbjo6Q2xpZW50cyB3aXRoIHByb2Nlc3MgdHlwZXMuCisgICAgICAgIAogMjAxNS0w
MS0xOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAg
IFtTVkcgLT4gT1RGIENvbnZlcnRlcl0gRmxpcCB0aGUgc3dpdGNoIG9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKaW5kZXggYjNhZmYyODU5
MTU0ZjlmOWRjYjFiMmZhMWI0MDRkYWQ5MTcyNzQ5ZS4uNzA5YTFkYWJjMGZjNTVlNjgyOGM2YWQx
NzU5MmNlNjk4MDc5M2RmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MuaApAQCAtODIsNiArODIsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgV2ViS2l0OjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gV2ViS2l0OjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U7IH0KKyAgICB2aXJ0dWFsIFdlYktp
dDo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBXZWJL
aXQ6OlByb2Nlc3NUeXBlOjpVSTsgfQogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFiYXNlUHJvY2Vz
c01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
Ly8gTWVzc2FnZSBIYW5kbGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDA2
Zjg1YmY4ZDA3MzVjYzViZTM4YWY3ODE4ZjExMDE0ZTY5MWFhYjUuLjgyNDEzYzAwMmMzMWQ4ZjQw
OTBmMzI4ODI4ODAyMGM1Yzc0OGJhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTUxLDYgKzUxLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
TmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBlIGxvY2FsUHJv
Y2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpEYXRhYmFz
ZTsgfQorICAgIHZpcnR1YWwgV2ViS2l0OjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIFdlYktpdDo6UHJvY2Vzc1R5cGU6OldlYjsgfQogICAgIHZvaWQg
ZGlkUmVjZWl2ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2Vu
ZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAwNmNjODhlMTRiMjc3MWUyNmE1NDVm
OTA3YWZkODU5Y2QzOTczZmUxLi4zMTI4NjNiZDM3YTJjNTBkYzJiNmFlZDBhYWUyNDNkOTc3M2Ni
Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTY1LDYgKzY1LDggQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJik7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSk7CisgICAgdmlydHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBlIGxv
Y2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpO
ZXR3b3JrOyB9CisgICAgdmlydHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NU
eXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gV2ViS2l0OjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAKICAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAppbmRleCBiOWRjYzZiZjg3ZGM3YjU4NWVmZjY0OWM4YTA5ODY2YzdjZDJhZjBiLi5mOTA3YTVk
Y2MzZTIyNzE4MzYwNjAzMTZiMTFhODZjMGYzZThlY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTk5LDYgKzk5LDggQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJl
dHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOyB9CisgICAgdmlydHVhbCBXZWJLaXQ6
OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gV2ViS2l0
OjpQcm9jZXNzVHlwZTo6VUk7IH0KIAogICAgIC8vIERvd25sb2FkTWFuYWdlcjo6Q2xpZW50CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZURvd25sb2FkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAzOWYzZTA3OTdl
MTY3ODU2MGVhMTBhZmQ1NGVkNjhkNTUwZjdmZjYzLi5mNzJlYWMyNjc2MjczMjQ4MjY3YmJiZWQ3
OGViMzY2MTdiNTAxMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVycy5jcHAKQEAgLTE2Miw0ICsxNjIsMTQgQEAgYm9vbCBBcmd1bWVudENvZGVyPFN0
cmluZz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0KQog
ICAgIHJldHVybiBkZWNvZGVTdHJpbmdUZXh0PFVDaGFyPihkZWNvZGVyLCBsZW5ndGgsIHJlc3Vs
dCk7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2Rlcjx1dWlkX3Q+OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCB1dWlkX3QmIHV1aWQpCit7CisgICAgU2ltcGxlQXJndW1lbnRD
b2Rlcjx1dWlkX3Q+OjplbmNvZGUoZW5jb2RlciwgdXVpZCk7Cit9CisKK2Jvb2wgQXJndW1lbnRD
b2Rlcjx1dWlkX3Q+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCB1dWlkX3QmIHV1
aWQpCit7CisgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8dXVpZF90Pjo6ZGVjb2RlKGRl
Y29kZXIsIHV1aWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggNDYyY2UzNzZkZWJkNmNkMjE3MGEx
OGIxODM0MmIwY2NmNWE1YjY4OC4uZjcwZDMyZjNlNjQzYTZhZjAwMWFmZDY0ZTFmNTgwNjg3ZDU3
NjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgK
QEAgLTIzLDggKzIzLDggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0jaWZuZGVmIFNpbXBsZUFyZ3VtZW50Q29kZXJfaAotI2RlZmluZSBTaW1wbGVBcmd1bWVu
dENvZGVyX2gKKyNpZm5kZWYgQXJndW1lbnRDb2RlcnNfaAorI2RlZmluZSBBcmd1bWVudENvZGVy
c19oCiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKICNpbmNsdWRlICJBcmd1bWVudEVu
Y29kZXIuaCIKQEAgLTI5OCw2ICsyOTgsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxTdHJpbmc+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
U3RyaW5nJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPHV1aWRfdD4g
eworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCB1dWlkX3Qm
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgdXVpZF90Jik7Cit9
OworCiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogI2VuZGlmIC8vIEFyZ3VtZW50Q29kZXJzX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA3YjhhYjIwOTY2
OWM2MDJmNDNkYzkxMmE0NTc5MWY1MzVhNzE4NDBjLi4yMTQ1OWNkNzI4N2NkMDUxYTM0ZDRjZmQx
MDIzZTllMDVhOGY5MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmUKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVwbHlFbmNvZGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxNZXNzYWdlRW5jb2Rlcj4oIklQQyIsICJTeW5jTWVzc2FnZVJlcGx5Iiwgc3luY1JlcXVl
c3RJRCk7CisgICAgYXV0byByZXBseUVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VF
bmNvZGVyPigiSVBDIiwgIlN5bmNNZXNzYWdlUmVwbHkiLCBzeW5jUmVxdWVzdElELCBpbmNvbWlu
Z01lc3NhZ2VEZWNvZGVyLT5VVUlEKCkpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUgZGVj
b2RlciBhbmQgZW5jb2RlciB0byB0aGUgd29yayBxdWV1ZSBtZXNzYWdlIHJlY2VpdmVyLgogICAg
IHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKCp0aGlzLCAq
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKQEAgLTM2OSw3ICszNjksNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZUVuY29kZXI+IENvbm5lY3Rpb246OmNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihT
dHJpbmdSZWZlcgogICAgIHJldHVybiBlbmNvZGVyOwogfQogCi1ib29sIENvbm5lY3Rpb246OnNl
bmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWdu
ZWQgbWVzc2FnZVNlbmRGbGFncykKK2Jvb2wgQ29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Uoc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZs
YWdzLCBib29sIGFscmVhZHlSZWNvcmRlZE1lc3NhZ2UpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM3OSw2ICszNzksMTAgQEAgYm9vbCBDb25uZWN0
aW9uOjpzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIs
IHVuc2lnbmVkIG0KICAgICAgICAgICAgIHx8IG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNw
YXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQpKQogICAgICAgICBlbmNvZGVyLT5zZXRT
aG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSh0cnVlKTsKIAorICAg
IHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+
IHRva2VuOworICAgIGlmICghYWxyZWFkeVJlY29yZGVkTWVzc2FnZSkKKyAgICAgICAgdG9rZW4g
PSBNZXNzYWdlUmVjb3JkZXI6OnJlY29yZE91dGdvaW5nTWVzc2FnZSh0aGlzLCBlbmNvZGVyLmdl
dCgpKTsKKwogICAgIHsKICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2so
bV9vdXRnb2luZ01lc3NhZ2VzTXV0ZXgpOwogICAgICAgICBtX291dGdvaW5nTWVzc2FnZXMuYXBw
ZW5kKFdURjo6bW92ZShlbmNvZGVyKSk7CkBAIC00MDgsNiArNDEyLDcgQEAgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZl
cmVuY2UgbWVzc2EKICAgICAgICAgICAgIGlmIChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gbWVzc2FnZVJlY2VpdmVyTmFtZSAmJiBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpID09IG1l
c3NhZ2VOYW1lICYmIG1lc3NhZ2UtPmRlc3RpbmF0aW9uSUQoKSA9PSBkZXN0aW5hdGlvbklEKSB7
CiAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiByZXR1cm5l
ZE1lc3NhZ2UgPSBXVEY6Om1vdmUobWVzc2FnZSk7CiAKKyAgICAgICAgICAgICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHByb2JhYmx5IHRlbGwgTWVzc2FnZVJlY29yZGVyIGFib3V0IHRoaXMgbWVz
c2FnZSBpbiBhIHNwZWNpYWwgd2F5LgogICAgICAgICAgICAgICAgIG1faW5jb21pbmdNZXNzYWdl
cy5yZW1vdmUoaXQpOwogICAgICAgICAgICAgICAgIHJldHVybiByZXR1cm5lZE1lc3NhZ2U7CiAg
ICAgICAgICAgICB9CkBAIC00NzMsOCArNDc4LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
RGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNSZXF1ZXN0
CiAKICAgICArK21faW5TZW5kU3luY0NvdW50OwogCisgICAgYXV0byB0b2tlbiA9IE1lc3NhZ2VS
ZWNvcmRlcjo6cmVjb3JkT3V0Z29pbmdNZXNzYWdlKHRoaXMsIGVuY29kZXIuZ2V0KCkpOworCiAg
ICAgLy8gRmlyc3Qgc2VuZCB0aGUgbWVzc2FnZS4KLSAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUo
ZW5jb2RlciksIERpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7Cisg
ICAgc2VuZE1lc3NhZ2UoV1RGOjptb3ZlKGVuY29kZXIpLCBEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHksIHRydWUpOwogCiAgICAgLy8gVGhlbiB3YWl0IGZvciBhIHJl
cGx5LiBXYWl0aW5nIGZvciBhIHJlcGx5IGNvdWxkIGludm9sdmUgZGlzcGF0Y2hpbmcgaW5jb21p
bmcgc3luYyBtZXNzYWdlcywgc28KICAgICAvLyBrZWVwIGFuIGV4dHJhIHJlZmVyZW5jZSB0byB0
aGUgY29ubmVjdGlvbiBoZXJlIGluIGNhc2UgaXQncyBpbnZhbGlkYXRlZC4KQEAgLTUxNSw3ICs1
MjIsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRT
eW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQodQogICAgICAgICBtX3NlY29uZGFyeVRocmVh
ZFBlbmRpbmdTeW5jUmVwbHlNYXAuYWRkKHN5bmNSZXF1ZXN0SUQsICZwZW5kaW5nUmVwbHkpOwog
ICAgIH0KIAotICAgIHNlbmRNZXNzYWdlKFdURjo6bW92ZShlbmNvZGVyKSwgMCk7CisgICAgYXV0
byB0b2tlbiA9IE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkT3V0Z29pbmdNZXNzYWdlKHRoaXMsIGVu
Y29kZXIuZ2V0KCkpOworCisgICAgc2VuZE1lc3NhZ2UoV1RGOjptb3ZlKGVuY29kZXIpLCAwLCB0
cnVlKTsKIAogICAgIHBlbmRpbmdSZXBseS5zZW1hcGhvcmUud2FpdChjdXJyZW50VGltZSgpICsg
KHRpbWVvdXQuY291bnQoKSAvIDEwMDAuMCkpOwogCkBAIC03NjgsNyArNzc3LDcgQEAgdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byByZXBseUVuY29kZXIgPSBzdGQ6Om1h
a2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5bmNNZXNzYWdlUmVwbHkiLCBzeW5j
UmVxdWVzdElEKTsKKyAgICBhdXRvIHJlcGx5RW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVz
c2FnZUVuY29kZXI+KCJJUEMiLCAiU3luY01lc3NhZ2VSZXBseSIsIHN5bmNSZXF1ZXN0SUQsIGRl
Y29kZXIuVVVJRCgpKTsKIAogICAgIC8vIEhhbmQgb2ZmIGJvdGggdGhlIGRlY29kZXIgYW5kIGVu
Y29kZXIgdG8gdGhlIGNsaWVudC4KICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KCp0aGlzLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwpAQCAtODE1LDYgKzgyNCw4IEBAIHZvaWQg
Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogCiB2
b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURl
Y29kZXI+IG1lc3NhZ2UpCiB7CisgICAgTWVzc2FnZVJlY29yZGVyOjpyZWNvcmRJbmNvbWluZ01l
c3NhZ2UodGhpcywgbWVzc2FnZS5nZXQoKSk7CisKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAg
ICByZXR1cm47CiAKQEAgLTg2NSw0ICs4NzYsMTIgQEAgdm9pZCBDb25uZWN0aW9uOjp3YWtlVXBS
dW5Mb29wKCkKICAgICBtX2NsaWVudFJ1bkxvb3Aud2FrZVVwKCk7CiB9CiAKK3BpZF90IENvbm5l
Y3Rpb246OnJlbW90ZVByb2Nlc3NJRCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3hwY0Nvbm5lY3Rp
b24pCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHhwY19jb25uZWN0aW9uX2dldF9w
aWQobV94cGNDb25uZWN0aW9uLmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAppbmRleCAxNTZmZmY2Yzc2YjM3YTJm
NTViZjM1NGI5MzU4M2E1N2U3NmI2YjcwLi45Y2RhZTk2ZmFlM2IxMGIxYmVmNzg1ZDdmYTI0M2Qz
NjRmOTIyZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VFbmNvZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
UHJvY2Vzc1R5cGUuaCIKICNpbmNsdWRlICJXb3JrUXVldWUuaCIKICNpbmNsdWRlIDxhdG9taWM+
CiAjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgpAQCAtOTAsNiArOTEsOSBAQCBwdWJsaWM6
CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbiYp
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb25u
ZWN0aW9uJiwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlTmFtZSkgPSAwOworICAgICAgICAvLyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0
aW9uOgorICAgICAgICB2aXJ0dWFsIFdlYktpdDo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlw
ZSgpID0gMDsKKyAgICAgICAgdmlydHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nl
c3NUeXBlKCkgPSAwOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIH5DbGllbnQo
KSB7IH0KQEAgLTEyMCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIE9TT2JqZWN0UHRyPHhw
Y19jb25uZWN0aW9uX3Q+IHhwY0Nvbm5lY3Rpb247CiAgICAgfTsKICAgICBzdGF0aWMgYm9vbCBp
ZGVudGlmaWVySXNOdWxsKElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gaWRlbnRpZmll
ci5wb3J0ID09IE1BQ0hfUE9SVF9OVUxMOyB9Ci0gICAgeHBjX2Nvbm5lY3Rpb25fdCB4cGNDb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV94cGNDb25uZWN0aW9uLmdldCgpOyB9CisgICAgeHBjX2Nvbm5l
Y3Rpb25fdCB4cGNDb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV94cGNDb25uZWN0aW9uLmdl
dCgpOyB9CiAgICAgYm9vbCBnZXRBdWRpdFRva2VuKGF1ZGl0X3Rva2VuX3QmKTsKICNlbGlmIFVT
RShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAgIHR5cGVkZWYgaW50IElkZW50aWZpZXI7CkBAIC0x
NDUsNiArMTQ5LDggQEAgcHVibGljOgogCiAgICAgQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudDsgfQogCisgICAgcGlkX3QgcmVtb3RlUHJvY2Vzc0lEKCkgY29uc3Q7CisK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRTaG91bGRDbG9zZUNvbm5lY3Rpb25Pbk1h
Y2hFeGNlcHRpb25zKCk7CiAjZW5kaWYKQEAgLTE3NCw3ICsxODAsNyBAQCBwdWJsaWM6CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCB3YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseSh1
aW50NjRfdCBkZXN0aW5hdGlvbklELCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQs
IHVuc2lnbmVkIHdhaXRGb3JNZXNzYWdlRmxhZ3MgPSAwKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRW5jb2Rlcj4gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2NF90JiBzeW5jUmVxdWVzdElEKTsKLSAgICBib29sIHNl
bmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4sIHVuc2lnbmVkIG1lc3Nh
Z2VTZW5kRmxhZ3MgPSAwKTsKKyAgICBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlRW5jb2Rlcj4sIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSAwLCBib29sIGFscmVh
ZHlSZWNvcmRlZE1lc3NhZ2UgPSBmYWxzZSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VE
ZWNvZGVyPiBzZW5kU3luY01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0
LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0gMCk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VEZWNvZGVyPiBzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHVpbnQ2NF90IHN5
bmNSZXF1ZXN0SUQsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4sIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgdGltZW91dCk7CiAgICAgYm9vbCBzZW5kU3luY1JlcGx5KHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4pOwpAQCAtMTkzLDEzICsxOTksMTMgQEAgcHVibGljOgog
ICAgIHZvaWQgdGVybWluYXRlU29vbihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpOwogI2VuZGlm
CiAKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorCiBwcml2
YXRlOgogICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50Jiwg
V1RGOjpSdW5Mb29wJiBjbGllbnRSdW5Mb29wKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZShJZGVudGlmaWVyKTsKICAgICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0ZSgpOwogICAgIAotICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAgCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVu
c2lnbmVkIHdhaXRGb3JNZXNzYWdlRmxhZ3MpOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlRGVjb2Rlcj4gd2FpdEZvclN5bmNSZXBseSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3Mp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHAKaW5k
ZXggMjlhMDU0ZWYwMDI5MTI4ZDQxM2IyMmU3OTcyN2JlODAxMTBkZWFjZi4uZmY1MjFjMzEzNGJj
ZWQ0NTE3NmExMzg5YTMwMzMzOWVlMDIyODMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCkBAIC01Myw3ICs1MywxMCBAQCBNZXNzYWdlRGVj
b2Rlcjo6TWVzc2FnZURlY29kZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBWZWN0b3I8
QXR0YWNobWVudD4gYQogICAgIGlmICghZGVjb2RlKG1fbWVzc2FnZU5hbWUpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBkZWNvZGUobV9kZXN0aW5hdGlvbklEKTsKKyAgICBpZiAoIWRlY29kZSht
X2Rlc3RpbmF0aW9uSUQpKQorICAgICAgICByZXR1cm47CisKKyAgICBkZWNvZGUobV9VVUlEKTsK
IH0KIAogYm9vbCBNZXNzYWdlRGVjb2Rlcjo6aXNTeW5jTWVzc2FnZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oCmluZGV4IGVhYTliNWUxMDE3
YmYzMmQwZmEzMzM1N2Y2NzUzMGVhNTczNGMyOGUuLjgxMmM3MGQ2NjE0MzJhNTQzM2IxMzI0YmI3
YzY3NjQ4ODU2Y2RjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9N
ZXNzYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdl
RGVjb2Rlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIE1lc3NhZ2VEZWNvZGVyX2gKIAog
I2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNvcmRlci5o
IgogI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTUw
LDYgKzUxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEltcG9ydGFuY2VBc3NlcnRpb24oc3Rk
Ojp1bmlxdWVfcHRyPEltcG9ydGFuY2VBc3NlcnRpb24+KTsKICNlbmRpZgogCisgICAgdm9pZCBz
ZXRNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjb3JkZXI6
Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+IHRva2VuKSB7IG1fcHJvY2Vzc2luZ1Rva2VuID0gV1RG
Ojptb3ZlKHRva2VuKTsgfQorCisgICAgY29uc3QgdXVpZF90JiBVVUlEKCkgY29uc3QgeyByZXR1
cm4gbV9VVUlEOyB9CisKIHByaXZhdGU6CiAgICAgdWludDhfdCBtX21lc3NhZ2VGbGFnczsKICAg
ICBTdHJpbmdSZWZlcmVuY2UgbV9tZXNzYWdlUmVjZWl2ZXJOYW1lOwpAQCAtNTcsOSArNjIsMTMg
QEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1fZGVzdGluYXRpb25JRDsKIAorICAgIHV1aWRf
dCBtX1VVSUQ7CisKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA5MAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbXBvcnRhbmNlQXNzZXJ0aW9u
PiBtX2ltcG9ydGFuY2VBc3NlcnRpb247CiAjZW5kaWYKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+IG1fcHJvY2Vzc2luZ1Rva2Vu
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VFbmNvZGVyLmNwcAppbmRleCBkMmU0ZWZlOWE5YmFjNGVjNTk2NWZiNDcxNTZj
Njk0ZGJjZDA0YmZkLi5iZjdjMzY3N2I4OWQ1MzFhMmZhY2JiNmY3M2NiMmJkYTY2MjMwYmQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAKQEAg
LTI4LDI0ICsyOCw1NCBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJNZXNzYWdlRmxhZ3MuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjb3JkZXIuaCIKICNpbmNsdWRl
ICJTdHJpbmdSZWZlcmVuY2UuaCIKIAogbmFtZXNwYWNlIElQQyB7CiAKIHN0YXRpYyB1aW50OF90
IGRlZmF1bHRNZXNzYWdlRmxhZ3MgPSAwOwogCitNZXNzYWdlRW5jb2Rlcjo6TWVzc2FnZUVuY29k
ZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgdXVpZF90JiBVVUlEKQor
ICAgIDogbV9tZXNzYWdlUmVjZWl2ZXJOYW1lKG1lc3NhZ2VSZWNlaXZlck5hbWUpCisgICAgLCBt
X21lc3NhZ2VOYW1lKG1lc3NhZ2VOYW1lKQorICAgICwgbV9kZXN0aW5hdGlvbklEKGRlc3RpbmF0
aW9uSUQpCit7CisgICAgdXVpZF9jb3B5KG1fVVVJRCwgVVVJRCk7CisgICAgZW5jb2RlSGVhZGVy
KCk7Cit9CisKIE1lc3NhZ2VFbmNvZGVyOjpNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRf
dCBkZXN0aW5hdGlvbklEKQorICAgIDogbV9tZXNzYWdlUmVjZWl2ZXJOYW1lKG1lc3NhZ2VSZWNl
aXZlck5hbWUpCisgICAgLCBtX21lc3NhZ2VOYW1lKG1lc3NhZ2VOYW1lKQorICAgICwgbV9kZXN0
aW5hdGlvbklEKGRlc3RpbmF0aW9uSUQpCit7CisgICAgdXVpZF9nZW5lcmF0ZShtX1VVSUQpOwor
ICAgIGVuY29kZUhlYWRlcigpOworfQorCitNZXNzYWdlRW5jb2Rlcjo6fk1lc3NhZ2VFbmNvZGVy
KCkKIHsKLSAgICBBU1NFUlQoIW1lc3NhZ2VSZWNlaXZlck5hbWUuaXNFbXB0eSgpKTsKK30KKwor
dm9pZCBNZXNzYWdlRW5jb2Rlcjo6ZW5jb2RlSGVhZGVyKCkKK3sKKyAgICBBU1NFUlQoIW1fbWVz
c2FnZVJlY2VpdmVyTmFtZS5pc0VtcHR5KCkpOwogCiAgICAgKnRoaXMgPDwgZGVmYXVsdE1lc3Nh
Z2VGbGFnczsKLSAgICAqdGhpcyA8PCBtZXNzYWdlUmVjZWl2ZXJOYW1lOwotICAgICp0aGlzIDw8
IG1lc3NhZ2VOYW1lOwotICAgICp0aGlzIDw8IGRlc3RpbmF0aW9uSUQ7CisgICAgKnRoaXMgPDwg
bV9tZXNzYWdlUmVjZWl2ZXJOYW1lOworICAgICp0aGlzIDw8IG1fbWVzc2FnZU5hbWU7CisgICAg
KnRoaXMgPDwgbV9kZXN0aW5hdGlvbklEOworICAgICp0aGlzIDw8IG1fVVVJRDsKIH0KIAotTWVz
c2FnZUVuY29kZXI6On5NZXNzYWdlRW5jb2RlcigpCitib29sIE1lc3NhZ2VFbmNvZGVyOjppc1N5
bmNNZXNzYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKmJ1ZmZlcigpICYgU3luY01lc3NhZ2U7
Cit9CisKK2Jvb2wgTWVzc2FnZUVuY29kZXI6OnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5KCkgY29uc3QKIHsKKyAgICByZXR1cm4gKmJ1ZmZlcigpICYgRGlzcGF0
Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7CiB9CiAKIHZvaWQgTWVzc2FnZUVuY29k
ZXI6OnNldElzU3luY01lc3NhZ2UoYm9vbCBpc1N5bmNNZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuaAppbmRleCA1MjRlNWUxZDQzYzcwMzAxODcx
OTljMTZmNGQ5NjFmMTBhZDM4NTRjLi5mZmQ4MmEwODA3M2ZkZjkxMDZiM2VjYjFkYjk3Njk3YTYx
OTI5MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVu
Y29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIu
aApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBNZXNzYWdlRW5jb2Rlcl9oCiAKICNpbmNsdWRl
ICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJTdHJpbmdSZWZlcmVuY2UuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTM2LDEwICszNywyOCBA
QCBjbGFzcyBTdHJpbmdSZWZlcmVuY2U7CiBjbGFzcyBNZXNzYWdlRW5jb2RlciA6IHB1YmxpYyBB
cmd1bWVudEVuY29kZXIgewogcHVibGljOgogICAgIE1lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVp
bnQ2NF90IGRlc3RpbmF0aW9uSUQpOworICAgIE1lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsIGNvbnN0IHV1aWRfdCYpOwogICAgIHZpcnR1YWwgfk1lc3NhZ2VF
bmNvZGVyKCk7CiAKKyAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsgfQorICAgIFN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZU5hbWU7IH0KKyAgICB1aW50
NjRfdCBkZXN0aW5hdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbklEOyB9CisK
ICAgICB2b2lkIHNldElzU3luY01lc3NhZ2UoYm9vbCk7CisgICAgYm9vbCBpc1N5bmNNZXNzYWdl
KCkgY29uc3Q7CisKICAgICB2b2lkIHNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KGJvb2wpOworICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldh
aXRpbmdGb3JTeW5jUmVwbHkoKSBjb25zdDsKKworICAgIGNvbnN0IHV1aWRfdCYgVVVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fVVVJRDsgfQorCitwcml2YXRlOgorICAgIHZvaWQgZW5jb2RlSGVhZGVy
KCk7CisKKyAgICBTdHJpbmdSZWZlcmVuY2UgbV9tZXNzYWdlUmVjZWl2ZXJOYW1lOworICAgIFN0
cmluZ1JlZmVyZW5jZSBtX21lc3NhZ2VOYW1lOworICAgIHVpbnQ2NF90IG1fZGVzdGluYXRpb25J
RDsKKyAgICB1dWlkX3QgbV9VVUlEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY29yZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU2M2FiZDZlZDFjMmI5MWU4MmEyZWY1OTcyYWIyMmZhODgyZjIzMjAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY29yZGVyLmNwcApAQCAt
MCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
TWVzc2FnZVJlY29yZGVyLmgiCisKKyNpbXBvcnQgIkNvbm5lY3Rpb24uaCIKKyNpbXBvcnQgIk1l
c3NhZ2VEZWNvZGVyLmgiCisjaW1wb3J0ICJNZXNzYWdlRW5jb2Rlci5oIgorI2ltcG9ydCAiTWVz
c2FnZVJlY29yZGVyUHJvYmVzLmgiCisjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKwordXNp
bmcgbmFtZXNwYWNlIElQQzsKKworYm9vbCBNZXNzYWdlUmVjb3JkZXI6OmlzRW5hYmxlZCgpCit7
CisgICAgcmV0dXJuIFdFQktJVE1FU1NBR0VSRUNPUkRFUl9NRVNTQUdFX1JFQ0VJVkVEX0VOQUJM
RUQoKSB8fCBXRUJLSVRNRVNTQUdFUkVDT1JERVJfTUVTU0FHRV9TRU5UX0VOQUJMRUQoKTsKK30K
Kworc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tl
bj4gTWVzc2FnZVJlY29yZGVyOjpyZWNvcmRPdXRnb2luZ01lc3NhZ2UoQ29ubmVjdGlvbiogY29u
bmVjdGlvbiwgTWVzc2FnZUVuY29kZXIqIGVuY29kZXIpCit7CisgICAgaWYgKCFpc0VuYWJsZWQo
KSB8fCAhY29ubmVjdGlvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIFdlYktpdE1lc3NhZ2VSZWNvcmQgcmVjb3JkOworICAgIHJlY29yZC5zb3VyY2VQcm9jZXNz
VHlwZSA9ICh1aW50NjRfdCljb25uZWN0aW9uLT5jbGllbnQoKS0+bG9jYWxQcm9jZXNzVHlwZSgp
OworICAgIHJlY29yZC5kZXN0aW5hdGlvblByb2Nlc3NUeXBlID0gKHVpbnQ2NF90KWNvbm5lY3Rp
b24tPmNsaWVudCgpLT5yZW1vdGVQcm9jZXNzVHlwZSgpOworICAgIHJlY29yZC5kZXN0aW5hdGlv
bklEID0gZW5jb2Rlci0+ZGVzdGluYXRpb25JRCgpOworICAgIHJlY29yZC5pc1N5bmNNZXNzYWdl
ID0gZW5jb2Rlci0+aXNTeW5jTWVzc2FnZSgpOworICAgIHJlY29yZC5zaG91bGREaXNwYXRjaE1l
c3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IGVuY29kZXItPnNob3VsZERpc3BhdGNoTWVz
c2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCk7CisgICAgcmVjb3JkLnNvdXJjZVByb2Nlc3NJ
RCA9IGdldHBpZCgpOworICAgIHJlY29yZC5kZXN0aW5hdGlvblByb2Nlc3NJRCA9IGNvbm5lY3Rp
b24tPnJlbW90ZVByb2Nlc3NJRCgpOworICAgIHJlY29yZC5pc0luY29taW5nID0gZmFsc2U7CisK
KyAgICByZWNvcmQubWVzc2FnZVJlY2VpdmVyTmFtZSA9IE1hbGxvY1B0cjxjaGFyPjo6bWFsbG9j
KHNpemVvZihjaGFyKSAqIChlbmNvZGVyLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkuc2l6ZSgpICsg
MSkpOworICAgIHN0cm5jcHkocmVjb3JkLm1lc3NhZ2VSZWNlaXZlck5hbWUuZ2V0KCksIGVuY29k
ZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5kYXRhKCksIGVuY29kZXItPm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKS5zaXplKCkpOworICAgIHJlY29yZC5tZXNzYWdlUmVjZWl2ZXJOYW1lLmdldCgpW2Vu
Y29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5zaXplKCldID0gMDsKKworICAgIHJlY29yZC5t
ZXNzYWdlTmFtZSA9IE1hbGxvY1B0cjxjaGFyPjo6bWFsbG9jKHNpemVvZihjaGFyKSAqIChlbmNv
ZGVyLT5tZXNzYWdlTmFtZSgpLnNpemUoKSArIDEpKTsKKyAgICBzdHJuY3B5KHJlY29yZC5tZXNz
YWdlTmFtZS5nZXQoKSwgZW5jb2Rlci0+bWVzc2FnZU5hbWUoKS5kYXRhKCksIGVuY29kZXItPm1l
c3NhZ2VOYW1lKCkuc2l6ZSgpKTsKKyAgICByZWNvcmQubWVzc2FnZU5hbWUuZ2V0KClbZW5jb2Rl
ci0+bWVzc2FnZU5hbWUoKS5zaXplKCldID0gMDsKKworICAgIHV1aWRfY29weShyZWNvcmQuVVVJ
RCwgZW5jb2Rlci0+VVVJRCgpKTsKKworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lc3Nh
Z2VQcm9jZXNzaW5nVG9rZW4+KFdURjo6bW92ZShyZWNvcmQpKTsKK30KKwordm9pZCBNZXNzYWdl
UmVjb3JkZXI6OnJlY29yZEluY29taW5nTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBN
ZXNzYWdlRGVjb2RlciogZGVjb2RlcikKK3sKKyAgICBpZiAoIWlzRW5hYmxlZCgpIHx8ICFjb25u
ZWN0aW9uLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdE1lc3NhZ2VS
ZWNvcmQgcmVjb3JkOworICAgIHJlY29yZC5zb3VyY2VQcm9jZXNzVHlwZSA9ICh1aW50NjRfdClj
b25uZWN0aW9uLT5jbGllbnQoKS0+cmVtb3RlUHJvY2Vzc1R5cGUoKTsKKyAgICByZWNvcmQuZGVz
dGluYXRpb25Qcm9jZXNzVHlwZSA9ICh1aW50NjRfdCljb25uZWN0aW9uLT5jbGllbnQoKS0+bG9j
YWxQcm9jZXNzVHlwZSgpOworICAgIHJlY29yZC5kZXN0aW5hdGlvbklEID0gZGVjb2Rlci0+ZGVz
dGluYXRpb25JRCgpOworICAgIHJlY29yZC5pc1N5bmNNZXNzYWdlID0gZGVjb2Rlci0+aXNTeW5j
TWVzc2FnZSgpOworICAgIHJlY29yZC5zaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSA9IGRlY29kZXItPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9y
U3luY1JlcGx5KCk7CisgICAgcmVjb3JkLnNvdXJjZVByb2Nlc3NJRCA9IGNvbm5lY3Rpb24tPnJl
bW90ZVByb2Nlc3NJRCgpOworICAgIHJlY29yZC5kZXN0aW5hdGlvblByb2Nlc3NJRCA9IGdldHBp
ZCgpOworICAgIHJlY29yZC5pc0luY29taW5nID0gdHJ1ZTsKKworICAgIHJlY29yZC5tZXNzYWdl
UmVjZWl2ZXJOYW1lID0gTWFsbG9jUHRyPGNoYXI+OjptYWxsb2Moc2l6ZW9mKGNoYXIpICogKGRl
Y29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5zaXplKCkgKyAxKSk7CisgICAgc3RybmNweShy
ZWNvcmQubWVzc2FnZVJlY2VpdmVyTmFtZS5nZXQoKSwgZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLmRhdGEoKSwgZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLnNpemUoKSk7Cisg
ICAgcmVjb3JkLm1lc3NhZ2VSZWNlaXZlck5hbWUuZ2V0KClbZGVjb2Rlci0+bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLnNpemUoKV0gPSAwOworCisgICAgcmVjb3JkLm1lc3NhZ2VOYW1lID0gTWFsbG9j
UHRyPGNoYXI+OjptYWxsb2Moc2l6ZW9mKGNoYXIpICogKGRlY29kZXItPm1lc3NhZ2VOYW1lKCku
c2l6ZSgpICsgMSkpOworICAgIHN0cm5jcHkocmVjb3JkLm1lc3NhZ2VOYW1lLmdldCgpLCBkZWNv
ZGVyLT5tZXNzYWdlTmFtZSgpLmRhdGEoKSwgZGVjb2Rlci0+bWVzc2FnZU5hbWUoKS5zaXplKCkp
OworICAgIHJlY29yZC5tZXNzYWdlTmFtZS5nZXQoKVtkZWNvZGVyLT5tZXNzYWdlTmFtZSgpLnNp
emUoKV0gPSAwOworCisgICAgdXVpZF9jb3B5KHJlY29yZC5VVUlELCBkZWNvZGVyLT5VVUlEKCkp
OworCisgICAgZGVjb2Rlci0+c2V0TWVzc2FnZVByb2Nlc3NpbmdUb2tlbihzdGQ6Om1ha2VfdW5p
cXVlPE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+KFdURjo6bW92ZShyZWNvcmQpKSk7Cit9CisKKyNw
cmFnbWEgbWFyayBNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuCisKK01lc3NhZ2VSZWNvcmRlcjo6TWVz
c2FnZVByb2Nlc3NpbmdUb2tlbjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbihXZWJLaXRNZXNzYWdl
UmVjb3JkIHJlY29yZCkKKyAgICA6IG1fcmVjb3JkKFdURjo6bW92ZShyZWNvcmQpKQoreworICAg
IG1fcmVjb3JkLnN0YXJ0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworfQor
CitNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW46On5NZXNzYWdlUHJvY2Vz
c2luZ1Rva2VuKCkKK3sKKyAgICBtX3JlY29yZC5lbmRUaW1lID0gbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCk7CisKKyAgICBpZiAobV9yZWNvcmQuaXNJbmNvbWluZykKKyAgICAgICAgV0VC
S0lUTUVTU0FHRVJFQ09SREVSX01FU1NBR0VfUkVDRUlWRUQoJm1fcmVjb3JkKTsKKyAgICBlbHNl
CisgICAgICAgIFdFQktJVE1FU1NBR0VSRUNPUkRFUl9NRVNTQUdFX1NFTlQoJm1fcmVjb3JkKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3Jk
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMGJhYWNiOTg4MzdmN2I4YmRhZmUxMzM4ZGMyMGZjZjU3Mzc4NzhlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5o
CkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lc3NhZ2VSZWNvcmRlcl9o
CisjZGVmaW5lIE1lc3NhZ2VSZWNvcmRlcl9oCisKKyNpbXBvcnQgIlByb2Nlc3NUeXBlLmgiCisj
aW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8d3RmL01hbGxvY1B0ci5oPgorI2ltcG9y
dCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+Cisj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNv
cmQgeworICAgIHVpbnQ4X3Qgc291cmNlUHJvY2Vzc1R5cGU7IC8vIFdlYktpdDo6UHJvY2Vzc1R5
cGUKKyAgICBwaWRfdCBzb3VyY2VQcm9jZXNzSUQ7CisKKyAgICB1aW50OF90IGRlc3RpbmF0aW9u
UHJvY2Vzc1R5cGU7IC8vIFdlYktpdDo6UHJvY2Vzc1R5cGUKKyAgICBwaWRfdCBkZXN0aW5hdGlv
blByb2Nlc3NJRDsKKworICAgIE1hbGxvY1B0cjxjaGFyPiBtZXNzYWdlUmVjZWl2ZXJOYW1lOwor
ICAgIE1hbGxvY1B0cjxjaGFyPiBtZXNzYWdlTmFtZTsKKyAgICB1aW50NjRfdCBkZXN0aW5hdGlv
bklEOworCisgICAgdXVpZF90IFVVSUQ7CisKKyAgICBkb3VibGUgc3RhcnRUaW1lOworICAgIGRv
dWJsZSBlbmRUaW1lOworCisgICAgYm9vbCBpc1N5bmNNZXNzYWdlOworICAgIGJvb2wgc2hvdWxk
RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7CisgICAgYm9vbCBpc0luY29t
aW5nOworfTsKKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBN
ZXNzYWdlRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VFbmNvZGVyOworCitjbGFzcyBNZXNzYWdlUmVj
b3JkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBib29sIGlzRW5hYmxlZCgpOworCisgICAgY2xh
c3MgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbiB7CisgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4pOworICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQg
TWVzc2FnZVByb2Nlc3NpbmdUb2tlbihXZWJLaXRNZXNzYWdlUmVjb3JkKTsKKyAgICAgICAgfk1l
c3NhZ2VQcm9jZXNzaW5nVG9rZW4oKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFdlYktpdE1l
c3NhZ2VSZWNvcmQgbV9yZWNvcmQ7CisgICAgfTsKKworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuPiByZWNvcmRPdXRnb2lu
Z01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRW5jb2RlciopOworICAgIHN0
YXRpYyB2b2lkIHJlY29yZEluY29taW5nTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVzc2FnZVJlY29yZGVy
KCkgeyB9Cit9OworCit9OworCisjZW5kaWYgLy8gTWVzc2FnZVJlY29yZGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQcm9iZXMuZCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQcm9iZXMuZApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41N2JhMjA5YmI2YzAzZDhjOWYzNWE1ZjI0N2VlMmFkMWRkODI0NDhiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlclBy
b2Jlcy5kCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitzdHJ1Y3QgV2ViS2l0TWVzc2Fn
ZVJlY29yZCB7CisgICAgdWludDhfdCBzb3VyY2VQcm9jZXNzVHlwZTsKKyAgICBwaWRfdCBzb3Vy
Y2VQcm9jZXNzSUQ7CisKKyAgICB1aW50OF90IGRlc3RpbmF0aW9uUHJvY2Vzc1R5cGU7CisgICAg
cGlkX3QgZGVzdGluYXRpb25Qcm9jZXNzSUQ7CisKKyAgICBjaGFyKiBtZXNzYWdlUmVjZWl2ZXJO
YW1lOworICAgIGNoYXIqIG1lc3NhZ2VOYW1lOworICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQ7
CisKKyAgICB1dWlkX3QgVVVJRDsKKworICAgIGRvdWJsZSBzdGFydFRpbWU7CisgICAgZG91Ymxl
IGVuZFRpbWU7CisKKyAgICBib29sIGlzU3luY01lc3NhZ2U7CisgICAgYm9vbCBzaG91bGREaXNw
YXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTsKKyAgICBib29sIGlzSW5jb21pbmc7
Cit9OworCitwcm92aWRlciBXZWJLaXRNZXNzYWdlUmVjb3JkZXIgeworICAgIHByb2JlIG1lc3Nh
Z2Vfc2VudChzdHJ1Y3QgV2ViS2l0TWVzc2FnZVJlY29yZCopOworICAgIHByb2JlIG1lc3NhZ2Vf
cmVjZWl2ZWQoc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQqKTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDNkZjJkODI1MzY5ZDBlODRm
MWE3YzAxM2MwYmFkMWEyYWIxODA3ZDcuLjJhM2UyZjBhZTVhMzU0OTNlYWQ1NWI4NjkzNzdhZmJj
YjVhYmQwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vz
cy5oCkBAIC05MSw2ICs5MSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJLaXQ6OlBy
b2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBXZWJLaXQ6OlBy
b2Nlc3NUeXBlOjpQbHVnaW47IH0KKyAgICB2aXJ0dWFsIFdlYktpdDo6UHJvY2Vzc1R5cGUgcmVt
b3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpV
STsgfQogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZFJlY2VpdmVQbHVn
aW5Qcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmgKaW5kZXggODlkY2U4YmE2YmQwODllYTRkZTM3OTE0ZTdlYTE0YzllYTk5MmQ1ZC4uNGE0
OWM5N2ZiYzdlMDE0NjVmNmNkYzNlZDBkMTAxNWZhMTNiYzdjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjksNiAr
NjksOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNl
aXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKTsKKyAgICB2aXJ0dWFs
IFdlYktpdDo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJu
IFdlYktpdDo6UHJvY2Vzc1R5cGU6OlBsdWdpbjsgfQorICAgIHZpcnR1YWwgV2ViS2l0OjpQcm9j
ZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIFdlYktpdDo6UHJv
Y2Vzc1R5cGU6OldlYjsgfQogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1By
b2Nlc3NUeXBlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc1R5cGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wYWQ5ZWUxYzdlZDI0NGFmNWIxMGE0YmE5OGVmYjU5MmE4OGM5ODdmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NUeXBlLmgKQEAgLTAsMCArMSwx
NiBAQAorI2lmbmRlZiBQcm9jZXNzVHlwZV9oCisjZGVmaW5lIFByb2Nlc3NUeXBlX2gKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgUHJvY2Vzc1R5cGUgOiB1aW50OF90IHsKKyAg
ICBVSSwKKyAgICBXZWIsCisgICAgTmV0d29yaywKKyAgICBEYXRhYmFzZSwKKyAgICBQbHVnaW4K
K307CisKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oCmluZGV4IGE3Yjk4MTAyNDE0MGRj
OGI0M2NjODRiZjRmMzllYmJmZjUzZmU2MTMuLjg5Y2Y3ZjQwMDE3NGI4N2UwMmVkMGMyMDFmNzFm
MTY0NjcyNDgxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFz
ZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmgKQEAgLTU0LDYgKzU0LDggQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIFdlYktpdDo6UHJvY2Vzc1R5cGU6OlVJOyB9CisgICAgdmlydHVh
bCBXZWJLaXQ6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1
cm4gV2ViS2l0OjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U7IH0KIAogICAgIHZvaWQgZGlkUmVjZWl2
ZURhdGFiYXNlUHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCAzNWYyNjRhZDU0MmM3MTBhYWM4YmQyNzU2
OWJkNjZkOGFiNjExMTUzLi4zYmUwMDNlNTBlZGU2Yjk4YzJjZjdhOTVkN2NlZDc4Y2YyN2Q2ZDFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCkBAIC04Myw2ICs4Myw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViS2l0OjpQcm9j
ZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gV2ViS2l0OjpQcm9j
ZXNzVHlwZTo6VUk7IH0KKyAgICB2aXJ0dWFsIFdlYktpdDo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJv
Y2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpOZXR3b3Jr
OyB9CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29y
a1Byb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaAppbmRleCAyYTM3NWUzMGQ2MmMxNmExOTE5YjI0NzgyZGY0ODMzMmQ2N2Iz
NmFkLi5iN2M5MWNhOGJjYmY5ZTZhZjE5ZjE5ZmYyZTVkMjI0YWYwY2QxN2U4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
aApAQCAtMTIwLDYgKzEyMCw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUo
KSBvdmVycmlkZSB7IHJldHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpVSTsgfQorICAgIHZpcnR1
YWwgV2ViS2l0OjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0
dXJuIFdlYktpdDo6UHJvY2Vzc1R5cGU6OlBsdWdpbjsgfQogCiAgICAgLy8gUHJvY2Vzc0xhdW5j
aGVyOjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NM
YXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMWI2NWIyODdlOWRlYTQzZjhkMzVhNDk4
YmJjYjBjNWFlMDNmMTBlYi4uMjAxNDU4ZWZkMzNhNGQwMGM4ZDhmNDVjOGM2OGYxYzA3ODJkNDVh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTg0
LDYgKzE4NCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViS2l0OjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NU
eXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gV2ViS2l0OjpQcm9jZXNzVHlwZTo6VUk7IH0KKyAgICB2
aXJ0dWFsIFdlYktpdDo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7
IHJldHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpXZWI7IH0KIAogICAgIC8vIFJlc3BvbnNpdmVu
ZXNzVGltZXI6OkNsaWVudAogICAgIHZvaWQgZGlkQmVjb21lVW5yZXNwb25zaXZlKFJlc3BvbnNp
dmVuZXNzVGltZXIqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyYTNlODZkYTUwZDk5YjJlNDA2OTk2ZWE0NjE4
NDViYmEwZWEyMWM1Li4yZTVlOWMxZTQ5NDk0NWM2MTgzYWRhYWQ1NGFiNjVmNDM1MTE5NjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC01OTIsNiArNTkyLDkgQEAKIAkJMkQ0MjlCRkQxNzIxRTJDNzAwRUM2ODFGIC8qIFBERlBs
dWdpblBhc3N3b3JkRmllbGQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDQyOUJGQjE3MjFFMkJBMDBFQzY4MUYgLyogUERGUGx1Z2luUGFzc3dvcmRG
aWVsZC5tbSAqLzsgfTsKIAkJMkQ0N0I1NkMxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQ0N0I1NkExODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Lm1tICovOyB9OwogCQkyRDQ3QjU2RDE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJENDdCNTZCMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oICov
OyB9OworCQkyRDVBQjYyRTFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVBQjYyQjFBNjlE
NkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmggKi87IH07CisJCTJENUFCNjJGMUE2OUQ2
RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QUI2MkMxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3Nh
Z2VSZWNvcmRlci5jcHAgKi87IH07CisJCTJENUFCNjMwMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNz
YWdlUmVjb3JkZXJQcm9iZXMuZCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJENUFCNjJEMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXJQcm9i
ZXMuZCAqLzsgfTsKIAkJMkQ1QzlEMDUxOUM4MUQ4RjAwQjNDNUMxIC8qIFdlYlBhZ2VPdmVybGF5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENUM5
RDAzMTlDODFEOEYwMEIzQzVDMSAvKiBXZWJQYWdlT3ZlcmxheS5jcHAgKi87IH07CiAJCTJENUM5
RDA2MTlDODFEOEYwMEIzQzVDMSAvKiBXZWJQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QzlEMDQxOUM4MUQ4RjAwQjNDNUMxIC8q
IFdlYlBhZ2VPdmVybGF5LmggKi87IH07CiAJCTJENkFCNTQxMTkyQjFDNEEwMDNBOUZEMSAvKiBX
S1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJENkFCNTNGMTkyQjFDNEEwMDNBOUZEMSAvKiBXS1BERlBhZ2VOdW1i
ZXJJbmRpY2F0b3IuaCAqLzsgfTsKQEAgLTI2NzAsNiArMjY3Myw5IEBACiAJCTJENDI5QkZCMTcy
MUUyQkEwMEVDNjgxRiAvKiBQREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbTsgcGF0
aCA9IFBERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRDQ3QjU2QTE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ0N0I1NkIx
ODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENUFCNjJCMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdl
UmVjb3JkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY29y
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENUFCNjJDMUE2OUQ2RkIwMDE0
QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWVzc2FnZVJlY29yZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkQ1QUI2MkQxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlclByb2Jlcy5kICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5kdHJhY2U7IHBhdGggPSBNZXNzYWdlUmVjb3JkZXJQcm9iZXMu
ZDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1QzlEMDMxOUM4MUQ4RjAwQjNDNUMx
IC8qIFdlYlBhZ2VPdmVybGF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlBhZ2VPdmVybGF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1
QzlEMDQxOUM4MUQ4RjAwQjNDNUMxIC8qIFdlYlBhZ2VPdmVybGF5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VPdmVybGF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJENkFCNTNGMTkyQjFDNEEwMDNBOUZEMSAvKiBXS1BERlBhZ2VOdW1iZXJJbmRp
Y2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tQREZQYWdlTnVtYmVy
SW5kaWNhdG9yLmg7IHBhdGggPSBpb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjgyLDYgKzI2ODgsNyBAQAogCQkyRDcwQUIxNDE4
QTFENTdDMDAwMjZENkUgLyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJJbmZvLWlP
Uy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEN0FBRkQyMThDODY0MDYw
MEE3QUNENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEN0FBRkQ1MThDOTU2QUYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb25m
aWd1cmF0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJEN0UyNzYyMTlBMkNDQTkwMDMyMzBDRCAvKiBQcm9jZXNzVHlwZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQcm9jZXNzVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDgxOUI5
OTE4NjI3NUIzMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3R2VzdHVyZUdlb21ldHJ5Q29s
bGVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4MTlCOUExODYyNzVC
MzAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDgxOUI5QjE4NjI3NUIzMDAxRjAzRDEgLyogVmll
d0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDY3Myw2ICs0NjgwLDcgQEAKIAkJCQkzNzYwODgxRDE1MDQx
M0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggKi8sCiAJCQkJQzAzMzdERDcxMjdBNTFC
NjAwOEZGNEY0IC8qIFdlYlRvdWNoRXZlbnQuY3BwICovLAogCQkJCUMwMzM3REQwMTI3QTI5ODAw
MDhGRjRGNCAvKiBXZWJXaGVlbEV2ZW50LmNwcCAqLywKKwkJCQkyRDdFMjc2MjE5QTJDQ0E5MDAz
MjMwQ0QgLyogUHJvY2Vzc1R5cGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gU2hhcmVkOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ4MTcsNiArNDgyNSw5IEBACiAJCQkJMUEzRUVE
MTExNjFBNTNENjAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovLAogCQkJCTFBM0VFRDBD
MTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovLAogCQkJCTFBM0VF
RDBEMTYxQTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLywKKwkJCQkyRDVB
QjYyQjFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmggKi8sCisJCQkJMkQ1QUI2
MkMxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlci5jcHAgKi8sCisJCQkJMkQ1QUI2
MkQxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlclByb2Jlcy5kICovLAogCQkJCTFB
QUIwMzc3MTg1QTdDNkEwMEVERjUwMSAvKiBNZXNzYWdlU2VuZGVyLmNwcCAqLywKIAkJCQkxQUFC
MDM3ODE4NUE3QzZBMDBFREY1MDEgLyogTWVzc2FnZVNlbmRlci5oICovLAogCQkJCTFBRTAwRDY5
MTgzMjdDMTIwMDA4N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuY3BwICovLApAQCAtNzYwMCw2ICs3
NjExLDcgQEAKIAkJCQkxQUE1NkYyOTExRTkyQkM4MDA2MUI4ODIgLyogUGx1Z2luQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RUY0Q0IxMjUyNDAzNzAwRjcwNjdGIC8qIFBsdWdp
bkNvbnRyb2xsZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RUY5NkYxMjUyQUY2QjAw
RjcwNjdGIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkyRDVBQjYyRTFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTE3OTc4MDEzN0VFODJDMDBGOTdENDUgLyogUGx1Z2luQ3JlYXRpb25Q
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzNGOEM5MTE3M0FGNTJEMDA3QjdGMzkg
LyogUGx1Z2luSW5mb3JtYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDODlEMkI0MUE2QjA2
OEMwMDNBNUZERSAvKiBBUElVc2VyQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC05
Mzg5LDYgKzk0MDEsNyBAQAogCQkJCTFBRkRFNjU5MTk1NEE0MkIwMEM0OEZGQSAvKiBTZXNzaW9u
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwMDJENDgxOTZCMzQ1RDAwQjlBRDQ0IC8q
IFNlc3Npb25TdGF0ZUNvZGluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNzI4NDQ4MTk1OUY4
MDQwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTJENUFCNjMwMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXJQcm9iZXMuZCBp
biBTb3VyY2VzICovLAogCQkJCTc1M0UzRTBEMTg4NzM5ODUwMDE4ODQ5NiAvKiBTZXNzaW9uVHJh
Y2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTY0MjBFNDEyRENFMkZGMDBDQUFFMkMgLyog
U2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwMUEyNjAxMTI2NjJGMjEw
MEM5RUQ1NSAvKiBTaGFyZWFibGVCaXRtYXBDRy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk0OTgs
NiArOTUxMSw3IEBACiAJCQkJQkMxMTFCNUUxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFj
dG9yeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBM0REMUZEMTI1RTU5RjMwMDQ1MTVFNiAvKiBX
ZWJGaW5kQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTQ2OTUzMTIxNEU2Q0IwMDBC
OThFQiAvKiBXZWJGb3JtQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJENUFCNjJGMUE2
OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNFNDY5NTUxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUFERDExMkY1QjkzMDAzMzdCQUIgLyogV2Vi
RnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNDY5NzkxMjE0RjJCNDAwMEI5OEVCIC8q
IFdlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggZGYyMzE2NjlhM2E5OTAxMWY5Zjk0NDRhNTA4
ZWQ4YWZmNmFiZThiMy4uOGU2NDAwYzUyMDg2ODgxYWZlMThiN2RiNDkxYzUyMDk1ZTljM2VlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTU4LDYgKzU4LDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VO
YW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9j
ZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIFdlYktpdDo6UHJvY2Vzc1R5cGU6OldlYjsgfQor
ICAgIHZpcnR1YWwgV2ViS2l0OjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJy
aWRlIHsgcmV0dXJuIFdlYktpdDo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOyB9CiAKICAgICAvLyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIKICAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAxNjAyNzA1ZTE3NmVkZjc0ZDAxNWZmNmUzNDYy
OWJjMzI2NDA5YmZhLi40NDQyNWZhMTg4MDcwYmQ1YzIzODZhNjgyZmI0MzQ5YTNjOTcwZGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02OCw2ICs2OCw4IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2Vi
S2l0OjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gV2Vi
S2l0OjpQcm9jZXNzVHlwZTo6V2ViOyB9CisgICAgdmlydHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBl
IHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gV2ViS2l0OjpQcm9jZXNzVHlw
ZTo6TmV0d29yazsgfQogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKICAgICAvLyBN
ZXNzYWdlIGhhbmRsZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAzZTkzMDVjYTU0MDE4
YzI1OGNlZTEyMTZiMWJlYTkzMTkwNjI4OWNkLi5lODNjY2VjOWNmYjAxZDJlZDk3ZmUwZTMwYjFj
OWFmMzY2MmQ0OTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjgsNiArNjgsOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFdlYktpdDo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJu
IFdlYktpdDo6UHJvY2Vzc1R5cGU6OldlYjsgfQorICAgIHZpcnR1YWwgV2ViS2l0OjpQcm9jZXNz
VHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIFdlYktpdDo6UHJvY2Vz
c1R5cGU6OlBsdWdpbjsgfQogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRp
ZFJlY2VpdmVQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IDFmMzliMDFiMTZmN2M3MmJjNmMwYmM0MDY1ZDdl
ZTE5ZWQyYzRiZjUuLjQyMTJkNzIzYTUzOGZiODhhYzAwYWZhZjAzMzYwNDdmMzQ1ZjM0MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgK
QEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZSB7IGNsb3NlKCk7
IH0KICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UpIG92ZXJyaWRlIHsgY2xv
c2UoKTsgfQorICAgIHZpcnR1YWwgV2ViS2l0OjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBl
KCkgb3ZlcnJpZGUgeyByZXR1cm4gV2ViS2l0OjpQcm9jZXNzVHlwZTo6V2ViOyB9CisgICAgdmly
dHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gV2ViS2l0OjpQcm9jZXNzVHlwZTo6VUk7IH0KIAogICAgIC8vIENhbGxlZCBieSBXZWJJ
bnNwZWN0b3IgbWVzc2FnZXMKICAgICB2b2lkIGNvbm5lY3Rpb25Fc3RhYmxpc2hlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJ
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaApp
bmRleCAzNzhjODgyMWFlOGFiOTYxNjE0NDRiZGY4YTJhOGU1MzNhMzY5MmM4Li5hNDlmNmIxZjcw
NDJiODdkNDkwMmQwZDZhNGY0ZGUyYmY4NDkzYTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaApAQCAtNTAsNiArNTAsOCBAQCBw
dWJsaWM6CiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlIHsgY2xvc2VXaW5kb3coKTsgfQogICAgIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVm
ZXJlbmNlLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSkgb3ZlcnJpZGUgeyBjbG9zZVdpbmRvdygpOyB9
CisgICAgdmlydHVhbCBXZWJLaXQ6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVy
cmlkZSB7IHJldHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpXZWI7IH0KKyAgICB2aXJ0dWFsIFdl
YktpdDo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBX
ZWJLaXQ6OlByb2Nlc3NUeXBlOjpXZWI7IH0KIAogICAgIC8vIENhbGxlZCBieSBXZWJJbnNwZWN0
b3JVSSBtZXNzYWdlcwogICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1l
bnQgY29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGluc3BlY3RlZFBhZ2VJZGVudGlmaWVy
LCBib29sIHVuZGVyVGVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmlu
ZGV4IGYyZTcyMWY0NjhiMTVlYTFkNjRhYTFiZTM0MDQ0NWI3MWMzNzc2MjMuLjg5Mjk0YzllNzU3
OTM0Mzg3Yjc1OTA3MDc0YWZkMDExZTJkYjNlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCkBAIC0yOTAsNiArMjkwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJLaXQ6OlByb2Nl
c3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBXZWJLaXQ6OlByb2Nl
c3NUeXBlOjpXZWI7IH0KKyAgICB2aXJ0dWFsIFdlYktpdDo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJv
Y2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBXZWJLaXQ6OlByb2Nlc3NUeXBlOjpVSTsgfQog
CiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245074</attachid>
            <date>2015-01-21 11:55:34 -0800</date>
            <delta_ts>2015-01-28 03:04:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140673-20150121115540.patch</filename>
            <type>text/plain</type>
            <size>62070</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4Njk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmJmNThlMDJlMWViNDY5
ZjFjODFmZjNkNDAxMDA3ZjUyNDYzZTUzOS4uZTBhYjQ3Yjg4NDU2OWRlNDQ5NTJhMTc4ZmUxM2Zj
YmY3Yzk4N2RjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wMS0yMCAgVGlt
b3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEg
V2ViS2l0TWVzc2FnZVJlY29yZGVyIERUcmFjZSBwcm92aWRlciwgZXhwb3NpbmcgSVBDIGRldGFp
bHMgdG8gRFRyYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDA2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8dXVpZF90Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjx1dWlkX3Q+OjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5oOgorICAgICAgICBBZGQgYSB1dWlkX3QgKHNpbXBsZSkgYXJndW1lbnQgY29kZXIuCisgICAg
ICAgIEZpeCBhIG1pcy1uYW1lZCBoZWFkZXItZ3VhcmQgI2lmZGVmLgorCisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNw
YXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgU3luYyBtZXNzYWdlIHJlcGxp
ZXMgaW5oZXJpdCB0aGUgbWVzc2FnZSBVVUlEIGZyb20gdGhlIGluY29taW5nIHN5bmMgbWVzc2Fn
ZS4KKworICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kTWVzc2FnZSk6CisgICAgICAgIChJ
UEM6OkNvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6c2VuZFN5bmNNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNN
ZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZCk6CisgICAgICAgIFJlY29yZCBvdXRnb2luZyBtZXNz
YWdlcy4gQmVjYXVzZSBzZW5kU3luY01lc3NhZ2UgY2FsbHMgc2VuZE1lc3NhZ2UsCisgICAgICAg
IHdlIGhhdmUgdG8gZXhwbGljaXRseSBhdm9pZCByZWNvcmRpbmcgdGhlIG1lc3NhZ2UgdHdpY2Uu
CisKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAg
UmVjb3JkIHRoZSBpbmNvbWluZyBtZXNzYWdlLgorCisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246
OnJlbW90ZVByb2Nlc3NJRCk6CisgICAgICAgIEFkZCByZW1vdGVQcm9jZXNzSUQoKSwgd2hpY2gg
dHJpZXMgdG8gZGV0ZXJtaW5lIHRoZSBwaWQgb2YgdGhlIHJlbW90ZSBwcm9jZXNzLgorCisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6eHBjQ29ubmVjdGlvbik6CisgICAgICAgIFRoaXMgY2FuIGJlIGNvbnN0LgorCisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OmlzVmFsaWQpOgorICAgICAgICBNYWtlIHRoaXMgcHVibGljLgor
CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKElQ
Qzo6TWVzc2FnZURlY29kZXI6Ok1lc3NhZ2VEZWNvZGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvTWVzc2FnZURlY29kZXIuaDoKKyAgICAgICAgKElQQzo6TWVzc2FnZURlY29kZXI6OnNldE1l
c3NhZ2VQcm9jZXNzaW5nVG9rZW4pOgorICAgICAgICAoSVBDOjpNZXNzYWdlRGVjb2Rlcjo6VVVJ
RCk6CisgICAgICAgIERlY29kZSBhbmQgc3RvcmUgdGhlIG1lc3NhZ2UgVVVJRC4KKyAgICAgICAg
U3RvcmUgYSBNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIE1l
c3NhZ2VEZWNvZGVyOworICAgICAgICB0aGlzIGVuc3VyZXMgdGhhdCBhbGwgdGltZSBzcGVudCBw
cm9jZXNzaW5nIHRoZSBpbmNvbWluZyBtZXNzYWdlIHdpbGwgYmUKKyAgICAgICAgY291bnRlZCBh
Z2FpbnN0IHRoYXQgbWVzc2FnZS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlRW5j
b2Rlci5jcHA6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpNZXNzYWdlRW5jb2Rlcik6
CisgICAgICAgIEJ5IGRlZmF1bHQsIGNyZWF0ZSBhIG5ldyBVVUlEIGZvciB0aGUgbWVzc2FnZS4g
QWx0ZXJuYXRpdmVseSwgYWxsb3cgY2xpZW50cworICAgICAgICB0byBwYXNzIHRoZSBtZXNzYWdl
IFVVSUQgaW4gKHVzZWQgZm9yIHN5bmMgbWVzc2FnZSByZXBsaWVzKS4KKyAgICAgICAgU3RvcmUg
dGhlIG1lc3NhZ2VSZWNlaXZlck5hbWUgYW5kIG1lc3NhZ2VOYW1lLgorCisgICAgICAgIChJUEM6
Ok1lc3NhZ2VFbmNvZGVyOjplbmNvZGVIZWFkZXIpOgorICAgICAgICBGYWN0b3IgZW5jb2RlSGVh
ZGVyKCkgb3V0IG9mIHRoZSBjb25zdHJ1Y3RvcnMgc28gbW9zdCBvZiB0aGVpciBjb2RlIGNhbiBi
ZSBzaGFyZWQuCisKKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6OmlzU3luY01lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5jb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICBBZGQgZ2V0dGVycyBmb3IgdGhlc2UgZmxh
Z3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuaDoKKyAgICAgICAg
KElQQzo6TWVzc2FnZUVuY29kZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUpOgorICAgICAgICAoSVBD
OjpNZXNzYWdlRW5jb2Rlcjo6bWVzc2FnZU5hbWUpOgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5j
b2Rlcjo6ZGVzdGluYXRpb25JRCk6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpVVUlE
KToKKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoTWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUmVjb3JkZXIpOgorICAgICAgICBBZGQgYSBjbGFz
cyB0aGF0IGludGVyZmFjZXMgd2l0aCBhIGN1c3RvbSBEVHJhY2UgcHJvdmlkZXIgdG8gbG9nIGlu
Y29taW5nIGFuZCBvdXRnb2luZyBtZXNzYWdlcy4KKworICAgICAgICAoTWVzc2FnZVJlY29yZGVy
OjpzaGFyZWQpOgorICAgICAgICAoTWVzc2FnZVJlY29yZGVyOjppc0VuYWJsZWQpOgorICAgICAg
ICBEZXRlcm1pbmUgaWYgZWl0aGVyIG9mIHRoZSBtZXNzYWdlIHByb2JlcyBhcmUgZW5hYmxlZC4g
SWYgbm90LCB3ZSdsbCBhdm9pZCBtb3N0IG9mIHRoZQorICAgICAgICB3b3JrIGFzc29jaWF0ZWQg
d2l0aCBNZXNzYWdlUmVjb3JkZXIuCisKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3Jk
T3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkSW5jb21p
bmdNZXNzYWdlKToKKyAgICAgICAgQnVpbGQgYSBXZWJLaXRNZXNzYWdlUmVjb3JkIGFuZCBNZXNz
YWdlUHJvY2Vzc2luZ1Rva2VuIGZyb20gdGhlIE1lc3NhZ2UoRGV8RW4pY29kZXIuCisgICAgICAg
IE9uY2UgdGhlIE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4gaXMgZGVhbGxvY2F0ZWQsIHRoZSBwcm9i
ZSB3aWxsIGJlIGludm9rZWQgd2l0aCB0aGUgV2ViS2l0TWVzc2FnZVJlY29yZC4KKworICAgICAg
ICAoTWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuOjpNZXNzYWdlUHJvY2Vz
c2luZ1Rva2VuKToKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdU
b2tlbjo6fk1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4pOgorICAgICAgICBLZWVwIHRyYWNrIG9mIHdo
ZW4gdGhlIHRva2VuIGlzIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZDsgdGhlc2UgYXJlIGNvbnNpZGVy
ZWQgdGhlIGJlZ2lubmluZworICAgICAgICBhbmQgZW5kaW5nICJwcm9jZXNzaW5nIiB0aW1lcyBv
ZiB0aGUgbWVzc2FnZSAoYW5kIGFzIHN1Y2ggdGhlIHRva2VuIHNob3VsZCBiZSBrZXB0IGFsaXZl
IGZvcgorICAgICAgICBleGFjdGx5IGFzIGxvbmcgYXMgdGhlIG1lc3NhZ2UgaXMgYmVpbmcgcHJv
Y2Vzc2VkKS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQcm9iZXMu
ZDogQWRkZWQuCisgICAgICAgIEFkZCBhIERUcmFjZSBwcm92aWRlciBzb3VyY2UgZmlsZSB3aXRo
IHR3byBwcm9iZXMsIG1lc3NhZ2Vfc2VudCBhbmQgbWVzc2FnZV9yZWNlaXZlZC4KKyAgICAgICAg
VGhlIHN0cnVjdCBtdXN0IG1hdGNoIHRoZSBzdHJ1Y3QgaW4gTWVzc2FnZVJlY29yZGVyLmguCisg
ICAgICAgIAorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Qcm9jZXNzVHlwZS5oOiBBZGRlZC4KKyAg
ICAgICAgQWRkIGFuIGVudW0gb2YgcHJvY2VzcyB0eXBlcy4KKworICAgICAgICAqIFdlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3MuaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmg6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICBBbm5vdGF0
ZSBDb25uZWN0aW9uOjpDbGllbnRzIHdpdGggcHJvY2VzcyB0eXBlcy4KKyAgICAgICAgCiAyMDE1
LTAxLTE5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1NWRyAtPiBPVEYgQ29udmVydGVyXSBGbGlwIHRoZSBzd2l0Y2ggb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAppbmRleCBiM2FmZjI4
NTkxNTRmOWY5ZGNiMWIyZmExYjQwNGRhZDkxNzI3NDllLi5iMmIyNGVlYTEzZmZiODFmM2NmNzkw
NDdkZmM3MDE4NDQzZjVhYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCkBAIC04Miw2ICs4Miw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2Fn
ZURlY29kZXImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJl
dHVybiBJUEM6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZTsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9j
ZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vz
c1R5cGU6OlVJOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YWJhc2VQcm9jZXNzTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAvLyBNZXNzYWdl
IEhhbmRsZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMDZmODViZjhkMDcz
NWNjNWJlMzhhZjc4MThmMTEwMTRlNjkxYWFiNS4uNTljNDBkMzczMjliOGJjODM3MjAzM2UzODA1
YzkyNmVmYTE2NDNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNTEsNiAr
NTEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92
ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOyB9CisgICAgdmlydHVh
bCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4g
SVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDA2Y2M4OGUxNGIyNzcxZTI2YTU0NWY5MDdhZmQ4NTljZDM5NzNmZTEuLjk0
NmQyZWFkZWVlMzhmMWNiM2ZiM2YxOTQwYzZhOTdiNjljNGY4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaApAQCAtNjUsNiArNjUsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKTsK
KyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRl
IHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7IH0KKyAgICB2aXJ0dWFsIElQQzo6
UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlBy
b2Nlc3NUeXBlOjpXZWI7IH0KIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBk
aWRSZWNlaXZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGI5ZGNjNmJmODdkYzdiNTg1ZWZmNjQ5Yzhh
MDk4NjZjN2NkMmFmMGIuLmQ1N2Y3NTFhZWI2MTg0YzlmMWZhMTEwYjI4ZjM3ZjIxNjUwMzExZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApA
QCAtOTksNiArOTksOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VO
YW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNz
VHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7IH0KKyAg
ICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7
IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpVSTsgfQogCiAgICAgLy8gRG93bmxvYWRNYW5hZ2Vy
OjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRG93bmxvYWQoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IDM5ZjNlMDc5N2UxNjc4NTYwZWExMGFmZDU0ZWQ2OGQ1NTBmN2ZmNjMuLmY3MmVhYzI2NzYyNzMy
NDgyNjdiYmJlZDc4ZWIzNjYxN2I1MDEyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTYyLDQgKzE2MiwxNCBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3RyaW5n
JiByZXN1bHQpCiAgICAgcmV0dXJuIGRlY29kZVN0cmluZ1RleHQ8VUNoYXI+KGRlY29kZXIsIGxl
bmd0aCwgcmVzdWx0KTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPHV1aWRfdD46OmVuY29kZShB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHV1aWRfdCYgdXVpZCkKK3sKKyAgICBTaW1w
bGVBcmd1bWVudENvZGVyPHV1aWRfdD46OmVuY29kZShlbmNvZGVyLCB1dWlkKTsKK30KKworYm9v
bCBBcmd1bWVudENvZGVyPHV1aWRfdD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IHV1aWRfdCYgdXVpZCkKK3sKKyAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2Rlcjx1dWlkX3Q+
OjpkZWNvZGUoZGVjb2RlciwgdXVpZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCA0NjJjZTM3NmRl
YmQ2Y2QyMTcwYTE4YjE4MzQyYjBjY2Y1YTViNjg4Li42MmRhMzQ0MDM0NTNkYTg5MDhhNzg1NDA0
N2M2ODBlNzFiM2FhYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1l
bnRDb2RlcnMuaApAQCAtMjMsMTIgKzIzLDEzIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTaW1wbGVBcmd1bWVudENvZGVyX2gKLSNkZWZpbmUg
U2ltcGxlQXJndW1lbnRDb2Rlcl9oCisjaWZuZGVmIEFyZ3VtZW50Q29kZXJzX2gKKyNkZWZpbmUg
QXJndW1lbnRDb2RlcnNfaAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVk
ZSAiQXJndW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDx1dWlk
L3V1aWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTI5OCw2ICsyOTksMTEgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiwgU3RyaW5nJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPHV1aWRfdD4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCB1dWlkX3QmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgdXVpZF90Jik7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogI2VuZGlmIC8v
IEFyZ3VtZW50Q29kZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmNwcAppbmRleCA3YjhhYjIwOTY2OWM2MDJmNDNkYzkxMmE0NTc5MWY1MzVhNzE4NDBjLi5lZTMw
Zjk4ZWY1OGQ3YWRiYmVhZjc3MWNmNzk1ZGIzMGIwYjIyMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBDb25u
ZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoV29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcmVwbHlF
bmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdlRW5jb2Rlcj4oIklQQyIsICJTeW5jTWVz
c2FnZVJlcGx5Iiwgc3luY1JlcXVlc3RJRCk7CisgICAgYXV0byByZXBseUVuY29kZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5bmNNZXNzYWdlUmVwbHkiLCBz
eW5jUmVxdWVzdElELCBpbmNvbWluZ01lc3NhZ2VEZWNvZGVyLT5VVUlEKCkpOwogCiAgICAgLy8g
SGFuZCBvZmYgYm90aCB0aGUgZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgd29yayBxdWV1ZSBt
ZXNzYWdlIHJlY2VpdmVyLgogICAgIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKCp0aGlzLCAqZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKQEAgLTM2OSw3ICsz
NjksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IENvbm5lY3Rpb246OmNyZWF0
ZVN5bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcgogICAgIHJldHVybiBlbmNvZGVyOwogfQog
Ci1ib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5j
b2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncykKK2Jvb2wgQ29ubmVjdGlv
bjo6c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCB1
bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzLCBib29sIGFscmVhZHlSZWNvcmRlZE1lc3NhZ2UpCiB7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM3OSw2ICsz
NzksMTAgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZUVuY29kZXI+IGVuY29kZXIsIHVuc2lnbmVkIG0KICAgICAgICAgICAgIHx8IG1faW5EaXNw
YXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQpKQog
ICAgICAgICBlbmNvZGVyLT5zZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSh0cnVlKTsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjb3JkZXI6Ok1l
c3NhZ2VQcm9jZXNzaW5nVG9rZW4+IHRva2VuOworICAgIGlmICghYWxyZWFkeVJlY29yZGVkTWVz
c2FnZSkKKyAgICAgICAgdG9rZW4gPSBNZXNzYWdlUmVjb3JkZXI6OnJlY29yZE91dGdvaW5nTWVz
c2FnZSh0aGlzLCBlbmNvZGVyLmdldCgpKTsKKwogICAgIHsKICAgICAgICAgc3RkOjpsb2NrX2d1
YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9vdXRnb2luZ01lc3NhZ2VzTXV0ZXgpOwogICAgICAgICBt
X291dGdvaW5nTWVzc2FnZXMuYXBwZW5kKFdURjo6bW92ZShlbmNvZGVyKSk7CkBAIC00NzMsOCAr
NDc3LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2Vu
ZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNSZXF1ZXN0CiAKICAgICArK21faW5TZW5kU3luY0Nv
dW50OwogCisgICAgYXV0byB0b2tlbiA9IE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkT3V0Z29pbmdN
ZXNzYWdlKHRoaXMsIGVuY29kZXIuZ2V0KCkpOworCiAgICAgLy8gRmlyc3Qgc2VuZCB0aGUgbWVz
c2FnZS4KLSAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIERpc3BhdGNoTWVzc2Fn
ZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgc2VuZE1lc3NhZ2UoV1RGOjptb3Zl
KGVuY29kZXIpLCBEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHksIHRy
dWUpOwogCiAgICAgLy8gVGhlbiB3YWl0IGZvciBhIHJlcGx5LiBXYWl0aW5nIGZvciBhIHJlcGx5
IGNvdWxkIGludm9sdmUgZGlzcGF0Y2hpbmcgaW5jb21pbmcgc3luYyBtZXNzYWdlcywgc28KICAg
ICAvLyBrZWVwIGFuIGV4dHJhIHJlZmVyZW5jZSB0byB0aGUgY29ubmVjdGlvbiBoZXJlIGluIGNh
c2UgaXQncyBpbnZhbGlkYXRlZC4KQEAgLTUxNSw3ICs1MjEsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlU
aHJlYWQodQogICAgICAgICBtX3NlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAuYWRk
KHN5bmNSZXF1ZXN0SUQsICZwZW5kaW5nUmVwbHkpOwogICAgIH0KIAotICAgIHNlbmRNZXNzYWdl
KFdURjo6bW92ZShlbmNvZGVyKSwgMCk7CisgICAgYXV0byB0b2tlbiA9IE1lc3NhZ2VSZWNvcmRl
cjo6cmVjb3JkT3V0Z29pbmdNZXNzYWdlKHRoaXMsIGVuY29kZXIuZ2V0KCkpOworCisgICAgc2Vu
ZE1lc3NhZ2UoV1RGOjptb3ZlKGVuY29kZXIpLCAwLCB0cnVlKTsKIAogICAgIHBlbmRpbmdSZXBs
eS5zZW1hcGhvcmUud2FpdChjdXJyZW50VGltZSgpICsgKHRpbWVvdXQuY291bnQoKSAvIDEwMDAu
MCkpOwogCkBAIC03NjgsNyArNzc2LDcgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFN5bmNN
ZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgYXV0byByZXBseUVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVy
PigiSVBDIiwgIlN5bmNNZXNzYWdlUmVwbHkiLCBzeW5jUmVxdWVzdElEKTsKKyAgICBhdXRvIHJl
cGx5RW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+KCJJUEMiLCAiU3lu
Y01lc3NhZ2VSZXBseSIsIHN5bmNSZXF1ZXN0SUQsIGRlY29kZXIuVVVJRCgpKTsKIAogICAgIC8v
IEhhbmQgb2ZmIGJvdGggdGhlIGRlY29kZXIgYW5kIGVuY29kZXIgdG8gdGhlIGNsaWVudC4KICAg
ICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKCp0aGlzLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOwpAQCAtODE1LDYgKzgyMyw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNz
YWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogCiB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNo
TWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IG1lc3NhZ2UpCiB7CisgICAg
TWVzc2FnZVJlY29yZGVyOjpyZWNvcmRJbmNvbWluZ01lc3NhZ2UodGhpcywgbWVzc2FnZS5nZXQo
KSk7CisKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IDE1NmZmZjZjNzZiMzdhMmY1NWJmMzU0
YjkzNTgzYTU3ZTc2YjZiNzAuLjJiNmZkMDk3MmYyMjY0MmI5YjRhODUwZWE5ZThjZTdjOWM2YTNi
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUVu
Y29kZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJQcm9jZXNz
VHlwZS5oIgogI2luY2x1ZGUgIldvcmtRdWV1ZS5oIgogI2luY2x1ZGUgPGF0b21pYz4KICNpbmNs
dWRlIDxjb25kaXRpb25fdmFyaWFibGU+CkBAIC05MCw2ICs5MSw4IEBAIHB1YmxpYzoKICAgICBw
dWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb25uZWN0aW9uJikgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvbm5lY3Rpb24m
LCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VOYW1lKSA9IDA7CisgICAgICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFBy
b2Nlc3NUeXBlKCkgPSAwOworICAgICAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3Rl
UHJvY2Vzc1R5cGUoKSA9IDA7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfkNs
aWVudCgpIHsgfQpAQCAtMTIwLDggKzEyMyw5IEBAIHB1YmxpYzoKICAgICAgICAgT1NPYmplY3RQ
dHI8eHBjX2Nvbm5lY3Rpb25fdD4geHBjQ29ubmVjdGlvbjsKICAgICB9OwogICAgIHN0YXRpYyBi
b29sIGlkZW50aWZpZXJJc051bGwoSWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBpZGVu
dGlmaWVyLnBvcnQgPT0gTUFDSF9QT1JUX05VTEw7IH0KLSAgICB4cGNfY29ubmVjdGlvbl90IHhw
Y0Nvbm5lY3Rpb24oKSB7IHJldHVybiBtX3hwY0Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICB4cGNf
Y29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3hwY0Nvbm5lY3Rp
b24uZ2V0KCk7IH0KICAgICBib29sIGdldEF1ZGl0VG9rZW4oYXVkaXRfdG9rZW5fdCYpOworICAg
IHBpZF90IHJlbW90ZVByb2Nlc3NJRCgpIGNvbnN0OwogI2VsaWYgVVNFKFVOSVhfRE9NQUlOX1NP
Q0tFVFMpCiAgICAgdHlwZWRlZiBpbnQgSWRlbnRpZmllcjsKICAgICBzdGF0aWMgYm9vbCBpZGVu
dGlmaWVySXNOdWxsKElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gIWlkZW50aWZpZXI7
IH0KQEAgLTE3NCw3ICsxNzgsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Ym9vbCB3YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseSh1aW50NjRfdCBkZXN0aW5hdGlvbklE
LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHdhaXRGb3JNZXNz
YWdlRmxhZ3MgPSAwKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gY3Jl
YXRlU3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVp
bnQ2NF90JiBzeW5jUmVxdWVzdElEKTsKLSAgICBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlRW5jb2Rlcj4sIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSAwKTsKKyAg
ICBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4sIHVuc2ln
bmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSAwLCBib29sIGFscmVhZHlSZWNvcmRlZE1lc3NhZ2UgPSBm
YWxzZSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBzZW5kU3luY01lc3Nh
Z2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVy
Piwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZs
YWdzID0gMCk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBzZW5kU3luY01l
c3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4sIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91
dCk7CiAgICAgYm9vbCBzZW5kU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rl
cj4pOwpAQCAtMTkzLDEzICsxOTcsMTMgQEAgcHVibGljOgogICAgIHZvaWQgdGVybWluYXRlU29v
bihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpOwogI2VuZGlmCiAKKyAgICBib29sIGlzVmFsaWQo
KSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorCiBwcml2YXRlOgogICAgIENvbm5lY3Rpb24o
SWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50JiwgV1RGOjpSdW5Mb29wJiBjbGllbnRS
dW5Mb29wKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShJZGVudGlmaWVyKTsKICAgICB2
b2lkIHBsYXRmb3JtSW52YWxpZGF0ZSgpOwogICAgIAotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAgCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VE
ZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHdhaXRGb3JNZXNzYWdl
RmxhZ3MpOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gd2FpdEZv
clN5bmNSZXBseSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHAKaW5kZXggMjlhMDU0ZWYwMDI5MTI4ZDQx
M2IyMmU3OTcyN2JlODAxMTBkZWFjZi4uZmY1MjFjMzEzNGJjZWQ0NTE3NmExMzg5YTMwMzMzOWVl
MDIyODMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VE
ZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29k
ZXIuY3BwCkBAIC01Myw3ICs1MywxMCBAQCBNZXNzYWdlRGVjb2Rlcjo6TWVzc2FnZURlY29kZXIo
Y29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBWZWN0b3I8QXR0YWNobWVudD4gYQogICAgIGlm
ICghZGVjb2RlKG1fbWVzc2FnZU5hbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBkZWNvZGUo
bV9kZXN0aW5hdGlvbklEKTsKKyAgICBpZiAoIWRlY29kZShtX2Rlc3RpbmF0aW9uSUQpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBkZWNvZGUobV9VVUlEKTsKIH0KIAogYm9vbCBNZXNzYWdlRGVj
b2Rlcjo6aXNTeW5jTWVzc2FnZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9NZXNzYWdlRGVjb2Rlci5oCmluZGV4IGVhYTliNWUxMDE3YmYzMmQwZmEzMzM1N2Y2NzUzMGVh
NTczNGMyOGUuLjNmYWZhZDE0NzJkNWJiMTk3NDRlMTlhMGI3MTgxNzAyZTYzNDc4NGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oCkBAIC0yNyw3ICsy
Nyw5IEBACiAjZGVmaW5lIE1lc3NhZ2VEZWNvZGVyX2gKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVj
b2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNvcmRlci5oIgogI2luY2x1ZGUgIlN0cmluZ1Jl
ZmVyZW5jZS5oIgorI2luY2x1ZGUgPHV1aWQvdXVpZC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIApA
QCAtNTAsNiArNTIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW1wb3J0YW5jZUFzc2VydGlv
bihzdGQ6OnVuaXF1ZV9wdHI8SW1wb3J0YW5jZUFzc2VydGlvbj4pOwogI2VuZGlmCiAKKyAgICB2
b2lkIHNldE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4oc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VSZWNv
cmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gdG9rZW4pIHsgbV9wcm9jZXNzaW5nVG9rZW4g
PSBXVEY6Om1vdmUodG9rZW4pOyB9CisKKyAgICBjb25zdCB1dWlkX3QmIFVVSUQoKSBjb25zdCB7
IHJldHVybiBtX1VVSUQ7IH0KKwogcHJpdmF0ZToKICAgICB1aW50OF90IG1fbWVzc2FnZUZsYWdz
OwogICAgIFN0cmluZ1JlZmVyZW5jZSBtX21lc3NhZ2VSZWNlaXZlck5hbWU7CkBAIC01Nyw5ICs2
MywxMyBAQCBwcml2YXRlOgogCiAgICAgdWludDY0X3QgbV9kZXN0aW5hdGlvbklEOwogCisgICAg
dXVpZF90IG1fVVVJRDsKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgc3RkOjp1bmlxdWVfcHRyPEltcG9ydGFuY2VBc3Nl
cnRpb24+IG1faW1wb3J0YW5jZUFzc2VydGlvbjsKICNlbmRpZgorCisgICAgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gbV9wcm9jZXNzaW5n
VG9rZW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuY3BwCmluZGV4IGQyZTRlZmU5YTliYWM0ZWM1OTY1ZmI0
NzE1NmM2OTRkYmNkMDRiZmQuLmJmN2MzNjc3Yjg5ZDUzMWEyZmFjYmI2ZjczY2IyYmRhNjYyMzBi
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmNw
cApAQCAtMjgsMjQgKzI4LDU0IEBACiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VGbGFncy5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNvcmRlci5oIgogI2lu
Y2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgSVBDIHsKIAogc3RhdGljIHVp
bnQ4X3QgZGVmYXVsdE1lc3NhZ2VGbGFncyA9IDA7CiAKK01lc3NhZ2VFbmNvZGVyOjpNZXNzYWdl
RW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBjb25zdCB1dWlkX3QmIFVV
SUQpCisgICAgOiBtX21lc3NhZ2VSZWNlaXZlck5hbWUobWVzc2FnZVJlY2VpdmVyTmFtZSkKKyAg
ICAsIG1fbWVzc2FnZU5hbWUobWVzc2FnZU5hbWUpCisgICAgLCBtX2Rlc3RpbmF0aW9uSUQoZGVz
dGluYXRpb25JRCkKK3sKKyAgICB1dWlkX2NvcHkobV9VVUlELCBVVUlEKTsKKyAgICBlbmNvZGVI
ZWFkZXIoKTsKK30KKwogTWVzc2FnZUVuY29kZXI6Ok1lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVp
bnQ2NF90IGRlc3RpbmF0aW9uSUQpCisgICAgOiBtX21lc3NhZ2VSZWNlaXZlck5hbWUobWVzc2Fn
ZVJlY2VpdmVyTmFtZSkKKyAgICAsIG1fbWVzc2FnZU5hbWUobWVzc2FnZU5hbWUpCisgICAgLCBt
X2Rlc3RpbmF0aW9uSUQoZGVzdGluYXRpb25JRCkKK3sKKyAgICB1dWlkX2dlbmVyYXRlKG1fVVVJ
RCk7CisgICAgZW5jb2RlSGVhZGVyKCk7Cit9CisKK01lc3NhZ2VFbmNvZGVyOjp+TWVzc2FnZUVu
Y29kZXIoKQogewotICAgIEFTU0VSVCghbWVzc2FnZVJlY2VpdmVyTmFtZS5pc0VtcHR5KCkpOwor
fQorCit2b2lkIE1lc3NhZ2VFbmNvZGVyOjplbmNvZGVIZWFkZXIoKQoreworICAgIEFTU0VSVCgh
bV9tZXNzYWdlUmVjZWl2ZXJOYW1lLmlzRW1wdHkoKSk7CiAKICAgICAqdGhpcyA8PCBkZWZhdWx0
TWVzc2FnZUZsYWdzOwotICAgICp0aGlzIDw8IG1lc3NhZ2VSZWNlaXZlck5hbWU7Ci0gICAgKnRo
aXMgPDwgbWVzc2FnZU5hbWU7Ci0gICAgKnRoaXMgPDwgZGVzdGluYXRpb25JRDsKKyAgICAqdGhp
cyA8PCBtX21lc3NhZ2VSZWNlaXZlck5hbWU7CisgICAgKnRoaXMgPDwgbV9tZXNzYWdlTmFtZTsK
KyAgICAqdGhpcyA8PCBtX2Rlc3RpbmF0aW9uSUQ7CisgICAgKnRoaXMgPDwgbV9VVUlEOwogfQog
Ci1NZXNzYWdlRW5jb2Rlcjo6fk1lc3NhZ2VFbmNvZGVyKCkKK2Jvb2wgTWVzc2FnZUVuY29kZXI6
OmlzU3luY01lc3NhZ2UoKSBjb25zdAoreworICAgIHJldHVybiAqYnVmZmVyKCkgJiBTeW5jTWVz
c2FnZTsKK30KKworYm9vbCBNZXNzYWdlRW5jb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSBjb25zdAogeworICAgIHJldHVybiAqYnVmZmVyKCkgJiBE
aXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTsKIH0KIAogdm9pZCBNZXNzYWdl
RW5jb2Rlcjo6c2V0SXNTeW5jTWVzc2FnZShib29sIGlzU3luY01lc3NhZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5oCmluZGV4IDUyNGU1ZTFkNDNjNzAz
MDE4NzE5OWMxNmY0ZDk2MWYxMGFkMzg1NGMuLjg3MmYyNjRlMjcwMjRiNTAzNjRmMGY1Y2Y1MTVk
ZTU0NGI1YzExZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNz
YWdlRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5j
b2Rlci5oCkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIE1lc3NhZ2VFbmNvZGVyX2gKIAogI2lu
Y2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgor
I2luY2x1ZGUgPHV1aWQvdXVpZC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVz
cGFjZSBJUEMgewpAQCAtMzYsMTAgKzM4LDI4IEBAIGNsYXNzIFN0cmluZ1JlZmVyZW5jZTsKIGNs
YXNzIE1lc3NhZ2VFbmNvZGVyIDogcHVibGljIEFyZ3VtZW50RW5jb2RlciB7CiBwdWJsaWM6CiAg
ICAgTWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCk7CisgICAg
TWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgdXVp
ZF90Jik7CiAgICAgdmlydHVhbCB+TWVzc2FnZUVuY29kZXIoKTsKIAorICAgIFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlUmVjZWl2
ZXJOYW1lOyB9CisgICAgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9tZXNzYWdlTmFtZTsgfQorICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQoKSBjb25zdCB7
IHJldHVybiBtX2Rlc3RpbmF0aW9uSUQ7IH0KKwogICAgIHZvaWQgc2V0SXNTeW5jTWVzc2FnZShi
b29sKTsKKyAgICBib29sIGlzU3luY01lc3NhZ2UoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0U2hv
dWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoYm9vbCk7CisgICAgYm9v
bCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0Owor
CisgICAgY29uc3QgdXVpZF90JiBVVUlEKCkgY29uc3QgeyByZXR1cm4gbV9VVUlEOyB9CisKK3By
aXZhdGU6CisgICAgdm9pZCBlbmNvZGVIZWFkZXIoKTsKKworICAgIFN0cmluZ1JlZmVyZW5jZSBt
X21lc3NhZ2VSZWNlaXZlck5hbWU7CisgICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2FnZU5hbWU7
CisgICAgdWludDY0X3QgbV9kZXN0aW5hdGlvbklEOworICAgIHV1aWRfdCBtX1VVSUQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy9NZXNzYWdlUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01l
c3NhZ2VSZWNvcmRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzljNTI3N2ZkMGY2MGY4MjU0YTE5NTAwODlm
OGUzZjFlNmE3ODI5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy9NZXNzYWdlUmVjb3JkZXIuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNvcmRlci5oIgorCisjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCisjaW5jbHVk
ZSAiTWVzc2FnZUVuY29kZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjb3JkZXJQcm9iZXMuaCIK
KyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIElQQzsKKwor
Ym9vbCBNZXNzYWdlUmVjb3JkZXI6OmlzRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIFdFQktJVE1F
U1NBR0VSRUNPUkRFUl9NRVNTQUdFX1JFQ0VJVkVEX0VOQUJMRUQoKSB8fCBXRUJLSVRNRVNTQUdF
UkVDT1JERVJfTUVTU0FHRV9TRU5UX0VOQUJMRUQoKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gTWVzc2FnZVJlY29yZGVyOjpy
ZWNvcmRPdXRnb2luZ01lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZUVuY29k
ZXIqIGVuY29kZXIpCit7CisgICAgaWYgKCFpc0VuYWJsZWQoKSB8fCAhY29ubmVjdGlvbi0+aXNW
YWxpZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFdlYktpdE1lc3NhZ2VSZWNv
cmQgcmVjb3JkOworICAgIHJlY29yZC5zb3VyY2VQcm9jZXNzVHlwZSA9ICh1aW50NjRfdCljb25u
ZWN0aW9uLT5jbGllbnQoKS0+bG9jYWxQcm9jZXNzVHlwZSgpOworICAgIHJlY29yZC5kZXN0aW5h
dGlvblByb2Nlc3NUeXBlID0gKHVpbnQ2NF90KWNvbm5lY3Rpb24tPmNsaWVudCgpLT5yZW1vdGVQ
cm9jZXNzVHlwZSgpOworICAgIHJlY29yZC5kZXN0aW5hdGlvbklEID0gZW5jb2Rlci0+ZGVzdGlu
YXRpb25JRCgpOworICAgIHJlY29yZC5pc1N5bmNNZXNzYWdlID0gZW5jb2Rlci0+aXNTeW5jTWVz
c2FnZSgpOworICAgIHJlY29yZC5zaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSA9IGVuY29kZXItPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KCk7CisgICAgcmVjb3JkLnNvdXJjZVByb2Nlc3NJRCA9IGdldHBpZCgpOworICAgIHJl
Y29yZC5kZXN0aW5hdGlvblByb2Nlc3NJRCA9IGNvbm5lY3Rpb24tPnJlbW90ZVByb2Nlc3NJRCgp
OworICAgIHJlY29yZC5pc0luY29taW5nID0gZmFsc2U7CisKKyAgICByZWNvcmQubWVzc2FnZVJl
Y2VpdmVyTmFtZSA9IE1hbGxvY1B0cjxjaGFyPjo6bWFsbG9jKHNpemVvZihjaGFyKSAqIChlbmNv
ZGVyLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkuc2l6ZSgpICsgMSkpOworICAgIHN0cm5jcHkocmVj
b3JkLm1lc3NhZ2VSZWNlaXZlck5hbWUuZ2V0KCksIGVuY29kZXItPm1lc3NhZ2VSZWNlaXZlck5h
bWUoKS5kYXRhKCksIGVuY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5zaXplKCkpOworICAg
IHJlY29yZC5tZXNzYWdlUmVjZWl2ZXJOYW1lLmdldCgpW2VuY29kZXItPm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKS5zaXplKCldID0gMDsKKworICAgIHJlY29yZC5tZXNzYWdlTmFtZSA9IE1hbGxvY1B0
cjxjaGFyPjo6bWFsbG9jKHNpemVvZihjaGFyKSAqIChlbmNvZGVyLT5tZXNzYWdlTmFtZSgpLnNp
emUoKSArIDEpKTsKKyAgICBzdHJuY3B5KHJlY29yZC5tZXNzYWdlTmFtZS5nZXQoKSwgZW5jb2Rl
ci0+bWVzc2FnZU5hbWUoKS5kYXRhKCksIGVuY29kZXItPm1lc3NhZ2VOYW1lKCkuc2l6ZSgpKTsK
KyAgICByZWNvcmQubWVzc2FnZU5hbWUuZ2V0KClbZW5jb2Rlci0+bWVzc2FnZU5hbWUoKS5zaXpl
KCldID0gMDsKKworICAgIHV1aWRfY29weShyZWNvcmQuVVVJRCwgZW5jb2Rlci0+VVVJRCgpKTsK
KworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+KFdU
Rjo6bW92ZShyZWNvcmQpKTsKK30KKwordm9pZCBNZXNzYWdlUmVjb3JkZXI6OnJlY29yZEluY29t
aW5nTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciogZGVjb2Rl
cikKK3sKKyAgICBpZiAoIWlzRW5hYmxlZCgpIHx8ICFjb25uZWN0aW9uLT5pc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFdlYktpdE1lc3NhZ2VSZWNvcmQgcmVjb3JkOworICAgIHJl
Y29yZC5zb3VyY2VQcm9jZXNzVHlwZSA9ICh1aW50NjRfdCljb25uZWN0aW9uLT5jbGllbnQoKS0+
cmVtb3RlUHJvY2Vzc1R5cGUoKTsKKyAgICByZWNvcmQuZGVzdGluYXRpb25Qcm9jZXNzVHlwZSA9
ICh1aW50NjRfdCljb25uZWN0aW9uLT5jbGllbnQoKS0+bG9jYWxQcm9jZXNzVHlwZSgpOworICAg
IHJlY29yZC5kZXN0aW5hdGlvbklEID0gZGVjb2Rlci0+ZGVzdGluYXRpb25JRCgpOworICAgIHJl
Y29yZC5pc1N5bmNNZXNzYWdlID0gZGVjb2Rlci0+aXNTeW5jTWVzc2FnZSgpOworICAgIHJlY29y
ZC5zaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IGRlY29kZXIt
PnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCk7CisgICAgcmVj
b3JkLnNvdXJjZVByb2Nlc3NJRCA9IGNvbm5lY3Rpb24tPnJlbW90ZVByb2Nlc3NJRCgpOworICAg
IHJlY29yZC5kZXN0aW5hdGlvblByb2Nlc3NJRCA9IGdldHBpZCgpOworICAgIHJlY29yZC5pc0lu
Y29taW5nID0gdHJ1ZTsKKworICAgIHJlY29yZC5tZXNzYWdlUmVjZWl2ZXJOYW1lID0gTWFsbG9j
UHRyPGNoYXI+OjptYWxsb2Moc2l6ZW9mKGNoYXIpICogKGRlY29kZXItPm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKS5zaXplKCkgKyAxKSk7CisgICAgc3RybmNweShyZWNvcmQubWVzc2FnZVJlY2VpdmVy
TmFtZS5nZXQoKSwgZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLmRhdGEoKSwgZGVjb2Rl
ci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLnNpemUoKSk7CisgICAgcmVjb3JkLm1lc3NhZ2VSZWNl
aXZlck5hbWUuZ2V0KClbZGVjb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLnNpemUoKV0gPSAw
OworCisgICAgcmVjb3JkLm1lc3NhZ2VOYW1lID0gTWFsbG9jUHRyPGNoYXI+OjptYWxsb2Moc2l6
ZW9mKGNoYXIpICogKGRlY29kZXItPm1lc3NhZ2VOYW1lKCkuc2l6ZSgpICsgMSkpOworICAgIHN0
cm5jcHkocmVjb3JkLm1lc3NhZ2VOYW1lLmdldCgpLCBkZWNvZGVyLT5tZXNzYWdlTmFtZSgpLmRh
dGEoKSwgZGVjb2Rlci0+bWVzc2FnZU5hbWUoKS5zaXplKCkpOworICAgIHJlY29yZC5tZXNzYWdl
TmFtZS5nZXQoKVtkZWNvZGVyLT5tZXNzYWdlTmFtZSgpLnNpemUoKV0gPSAwOworCisgICAgdXVp
ZF9jb3B5KHJlY29yZC5VVUlELCBkZWNvZGVyLT5VVUlEKCkpOworCisgICAgZGVjb2Rlci0+c2V0
TWVzc2FnZVByb2Nlc3NpbmdUb2tlbihzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VQcm9jZXNzaW5n
VG9rZW4+KFdURjo6bW92ZShyZWNvcmQpKSk7Cit9CisKKyNwcmFnbWEgbWFyayBNZXNzYWdlUHJv
Y2Vzc2luZ1Rva2VuCisKK01lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbjo6
TWVzc2FnZVByb2Nlc3NpbmdUb2tlbihXZWJLaXRNZXNzYWdlUmVjb3JkIHJlY29yZCkKKyAgICA6
IG1fcmVjb3JkKFdURjo6bW92ZShyZWNvcmQpKQoreworICAgIG1fcmVjb3JkLnN0YXJ0VGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworfQorCitNZXNzYWdlUmVjb3JkZXI6Ok1l
c3NhZ2VQcm9jZXNzaW5nVG9rZW46On5NZXNzYWdlUHJvY2Vzc2luZ1Rva2VuKCkKK3sKKyAgICBt
X3JlY29yZC5lbmRUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisKKyAgICBp
ZiAobV9yZWNvcmQuaXNJbmNvbWluZykKKyAgICAgICAgV0VCS0lUTUVTU0FHRVJFQ09SREVSX01F
U1NBR0VfUkVDRUlWRUQoJm1fcmVjb3JkKTsKKyAgICBlbHNlCisgICAgICAgIFdFQktJVE1FU1NB
R0VSRUNPUkRFUl9NRVNTQUdFX1NFTlQoJm1fcmVjb3JkKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDgwODBiNTM2M2Mx
M2ZhM2VjMDQ3ZDA5ODY2OGE3NTFmZGM1Y2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5oCkBAIC0wLDAgKzEsODcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIE1lc3NhZ2VSZWNvcmRlcl9oCisjZGVmaW5lIE1lc3NhZ2VSZWNv
cmRlcl9oCisKKyNpbmNsdWRlICJQcm9jZXNzVHlwZS5oIgorI2luY2x1ZGUgPHV1aWQvdXVpZC5o
PgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL01hbGxvY1B0ci5oPgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworc3RydWN0IFdlYktpdE1l
c3NhZ2VSZWNvcmQgeworICAgIHVpbnQ4X3Qgc291cmNlUHJvY2Vzc1R5cGU7IC8vIElQQzo6UHJv
Y2Vzc1R5cGUKKyAgICBwaWRfdCBzb3VyY2VQcm9jZXNzSUQ7CisKKyAgICB1aW50OF90IGRlc3Rp
bmF0aW9uUHJvY2Vzc1R5cGU7IC8vIElQQzo6UHJvY2Vzc1R5cGUKKyAgICBwaWRfdCBkZXN0aW5h
dGlvblByb2Nlc3NJRDsKKworICAgIE1hbGxvY1B0cjxjaGFyPiBtZXNzYWdlUmVjZWl2ZXJOYW1l
OworICAgIE1hbGxvY1B0cjxjaGFyPiBtZXNzYWdlTmFtZTsKKyAgICB1aW50NjRfdCBkZXN0aW5h
dGlvbklEOworCisgICAgdXVpZF90IFVVSUQ7CisKKyAgICBkb3VibGUgc3RhcnRUaW1lOworICAg
IGRvdWJsZSBlbmRUaW1lOworCisgICAgYm9vbCBpc1N5bmNNZXNzYWdlOworICAgIGJvb2wgc2hv
dWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7CisgICAgYm9vbCBpc0lu
Y29taW5nOworfTsKKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIENvbm5lY3Rpb247CitjbGFz
cyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VFbmNvZGVyOworCitjbGFzcyBNZXNzYWdl
UmVjb3JkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBib29sIGlzRW5hYmxlZCgpOworCisgICAg
Y2xhc3MgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbiB7CisgICAgICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4pOworICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGlj
aXQgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbihXZWJLaXRNZXNzYWdlUmVjb3JkKTsKKyAgICAgICAg
fk1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4oKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFdlYktp
dE1lc3NhZ2VSZWNvcmQgbV9yZWNvcmQ7CisgICAgfTsKKworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuPiByZWNvcmRPdXRn
b2luZ01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRW5jb2RlciopOworICAg
IHN0YXRpYyB2b2lkIHJlY29yZEluY29taW5nTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVzc2FnZVJlY29y
ZGVyKCkgeyB9Cit9OworCit9OworCisjZW5kaWYgLy8gTWVzc2FnZVJlY29yZGVyX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQcm9iZXMu
ZCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQcm9iZXMuZApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41N2JhMjA5YmI2YzAzZDhjOWYzNWE1ZjI0N2VlMmFkMWRkODI0NDhiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRl
clByb2Jlcy5kCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitzdHJ1Y3QgV2ViS2l0TWVz
c2FnZVJlY29yZCB7CisgICAgdWludDhfdCBzb3VyY2VQcm9jZXNzVHlwZTsKKyAgICBwaWRfdCBz
b3VyY2VQcm9jZXNzSUQ7CisKKyAgICB1aW50OF90IGRlc3RpbmF0aW9uUHJvY2Vzc1R5cGU7Cisg
ICAgcGlkX3QgZGVzdGluYXRpb25Qcm9jZXNzSUQ7CisKKyAgICBjaGFyKiBtZXNzYWdlUmVjZWl2
ZXJOYW1lOworICAgIGNoYXIqIG1lc3NhZ2VOYW1lOworICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9u
SUQ7CisKKyAgICB1dWlkX3QgVVVJRDsKKworICAgIGRvdWJsZSBzdGFydFRpbWU7CisgICAgZG91
YmxlIGVuZFRpbWU7CisKKyAgICBib29sIGlzU3luY01lc3NhZ2U7CisgICAgYm9vbCBzaG91bGRE
aXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTsKKyAgICBib29sIGlzSW5jb21p
bmc7Cit9OworCitwcm92aWRlciBXZWJLaXRNZXNzYWdlUmVjb3JkZXIgeworICAgIHByb2JlIG1l
c3NhZ2Vfc2VudChzdHJ1Y3QgV2ViS2l0TWVzc2FnZVJlY29yZCopOworICAgIHByb2JlIG1lc3Nh
Z2VfcmVjZWl2ZWQoc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQqKTsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvUHJvY2Vzc1R5cGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9Qcm9jZXNzVHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzN2MyNjdiNjgwZmYw
Yzg2MDM1MDU1NmExMGJjYmQyNzY0NzcwMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvUHJvY2Vzc1R5cGUuaApAQCAtMCwwICsxLDQxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBQcm9jZXNzVHlwZV9oCisjZGVmaW5lIFByb2Nlc3NUeXBlX2gKKworbmFt
ZXNwYWNlIElQQyB7CisKK2VudW0gY2xhc3MgUHJvY2Vzc1R5cGUgOiB1aW50OF90IHsKKyAgICBV
SSwKKyAgICBXZWIsCisgICAgTmV0d29yaywKKyAgICBEYXRhYmFzZSwKKyAgICBQbHVnaW4KK307
CisKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L21hYy9Db25uZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9D
b25uZWN0aW9uTWFjLm1tCmluZGV4IDU3YzlmMjBkOGJjMTUyNzQzNzkxNDA0OWY5ZTkwMTdkNTc2
Yjk5YzIuLmI4MzE2OGY5YTkyMTBhOTNlODE5NjI3MmRlNWI4NjhkODg4YTI3MDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KQEAgLTYw
OSw2ICs2MDksMTQgQEAgdm9pZCBDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY1JlcGx5KHVuc2ln
bmVkIGZsYWdzKQogICAgIGlmICgoZmxhZ3MgJiBJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3Vz
cGVuZCkgJiYgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
ICAgICAgICAgX0FYVUlFbGVtZW50Tm90aWZ5UHJvY2Vzc1N1c3BlbmRTdGF0dXMoQVhTdXNwZW5k
U3RhdHVzUnVubmluZyk7CiAjZW5kaWYKLX0gICAgCit9CisKK3BpZF90IENvbm5lY3Rpb246OnJl
bW90ZVByb2Nlc3NJRCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3hwY0Nvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHhwY19jb25uZWN0aW9uX2dldF9waWQobV94cGND
b25uZWN0aW9uLmdldCgpKTsKK30KICAgICAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAppbmRleCAzZGYyZDgyNTM2OWQw
ZTg0ZjFhN2MwMTNjMGJhZDFhMmFiMTgwN2Q3Li4zNTY4ZDA5YWVmOGY5MTE0YzFmMWI3ZmIyZjY3
Mjc5NDdjMThmNmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpblByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuaApAQCAtOTEsNiArOTEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQ
cm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9j
ZXNzVHlwZTo6UGx1Z2luOyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVBy
b2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6VUk7IH0KIAog
ICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vz
c01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmlu
ZGV4IDg5ZGNlOGJhNmJkMDg5ZWE0ZGUzNzkxNGU3ZWExNGM5ZWE5OTJkNWQuLmQxMGVmNTVkZDQ1
MWUzOWJiNjI2ZjQzNjhmM2VmZDk4MzIxMmVhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTY5LDYgKzY5LDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNz
YWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpD
b25uZWN0aW9uJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSk7CisgICAgdmlydHVhbCBJUEM6OlBy
b2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nl
c3NUeXBlOjpQbHVnaW47IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJv
Y2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpXZWI7IH0KIAog
ICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJh
c2VQcm9jZXNzUHJveHkuaAppbmRleCBhN2I5ODEwMjQxNDBkYzhiNDNjYzg0YmY0ZjM5ZWJiZmY1
M2ZlNjEzLi5iZTY2YWRlZGVlMjc3ZGE0NTc5Y2M4ZWU3MmJiODJjZDlhOGI1NmViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVBy
b2Nlc3NQcm94eS5oCkBAIC01NCw2ICs1NCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJ
UEM6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6
OlByb2Nlc3NUeXBlOjpVSTsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQ
cm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNl
OyB9CiAKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
MzVmMjY0YWQ1NDJjNzEwYWFjOGJkMjc1NjliZDY2ZDhhYjYxMTE1My4uY2Q5OTZkMWI2ZGRjYWU3
N2QxNmZlOGU5OWIxMTlkNDM5ZmI3YjAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtODMsNiArODMsOCBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRl
IHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nl
c3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNz
VHlwZTo6TmV0d29yazsgfQogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgZGlk
UmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggMmEzNzVlMzBkNjJjMTZhMTkxOWIyNDc4
MmRmNDgzMzJkNjdiMzZhZC4uNjg3MzhmYjI2MjcwM2M2YmQ4NTJjZmI1ODVlZWVlYzFkNGZjOTZj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmgKQEAgLTEyMCw2ICsxMjAsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFBy
b2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6VUk7IH0KKyAg
ICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7
IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpQbHVnaW47IH0KIAogICAgIC8vIFByb2Nlc3NMYXVu
Y2hlcjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNz
TGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDFiNjViMjg3ZTlkZWE0M2Y4ZDM1YTQ5
OGJiY2IwYzVhZTAzZjEwZWIuLjU3NjBkZGQyY2ZiZTI4MmI4M2RkYjJkOGUyZTQ2OGFjZjE5MWI0
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTE4
NCw2ICsxODQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1l
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlw
ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9CisgICAgdmlydHVh
bCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4g
SVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAKICAgICAvLyBSZXNwb25zaXZlbmVzc1RpbWVyOjpD
bGllbnQKICAgICB2b2lkIGRpZEJlY29tZVVucmVzcG9uc2l2ZShSZXNwb25zaXZlbmVzc1RpbWVy
Kikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMmEzZTg2ZGE1MGQ5OWIyZTQwNjk5NmVhNDYxODQ1YmJhMGVhMjFj
NS4uMjMyYjhhNmM5ZDhjYjBiZDNjZmY0Mzg3NDI5OGE3MTFmYTBlNGY0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkyLDYg
KzU5Miw5IEBACiAJCTJENDI5QkZEMTcyMUUyQzcwMEVDNjgxRiAvKiBQREZQbHVnaW5QYXNzd29y
ZEZpZWxkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQ0MjlCRkIxNzIxRTJCQTAwRUM2ODFGIC8qIFBERlBsdWdpblBhc3N3b3JkRmllbGQubW0gKi87
IH07CiAJCTJENDdCNTZDMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENDdC
NTZBMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSAqLzsgfTsK
IAkJMkQ0N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDQ3QjU2QjE4
MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCAqLzsgfTsKKwkJMkQ1
QUI2MkUxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QUI2MkIxQTY5RDZGQjAwMTRBOUNC
IC8qIE1lc3NhZ2VSZWNvcmRlci5oICovOyB9OworCQkyRDVBQjYyRjFBNjlENkZCMDAxNEE5Q0Ig
LyogTWVzc2FnZVJlY29yZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJENUFCNjJDMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIu
Y3BwICovOyB9OworCQkyRDVBQjYzMDFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVy
UHJvYmVzLmQgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDVBQjYyRDFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyUHJvYmVzLmQgKi87IH07
CiAJCTJENUM5RDA1MTlDODFEOEYwMEIzQzVDMSAvKiBXZWJQYWdlT3ZlcmxheS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVDOUQwMzE5QzgxRDhG
MDBCM0M1QzEgLyogV2ViUGFnZU92ZXJsYXkuY3BwICovOyB9OwogCQkyRDVDOUQwNjE5QzgxRDhG
MDBCM0M1QzEgLyogV2ViUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJENUM5RDA0MTlDODFEOEYwMEIzQzVDMSAvKiBXZWJQYWdlT3Zl
cmxheS5oICovOyB9OwogCQkyRDZBQjU0MTE5MkIxQzRBMDAzQTlGRDEgLyogV0tQREZQYWdlTnVt
YmVySW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDZBQjUzRjE5MkIxQzRBMDAzQTlGRDEgLyogV0tQREZQYWdlTnVtYmVySW5kaWNhdG9y
LmggKi87IH07CkBAIC02MDIsNiArNjA1LDcgQEAKIAkJMkQ2Q0QxMUExODkwNThBNTAwRTVBNEEw
IC8qIFZpZXdTbmFwc2hvdFN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQ2Q0QxMTgxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0
b3JlLm1tICovOyB9OwogCQkyRDdBQUZEMzE4Qzg2NDA2MDBBN0FDRDQgLyogV0tXZWJWaWV3Q29u
dGVudFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDdBQUZEMjE4Qzg2NDA2MDBBN0FDRDQgLyogV0tXZWJWaWV3Q29udGVudFByb3ZpZGVy
LmggKi87IH07CiAJCTJEN0FBRkQ2MThDOTU2QUYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb25maWd1
cmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJEN0FBRkQ1MThDOTU2QUYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
SW50ZXJuYWwuaCAqLzsgfTsKKwkJMkQ3RjEzMTAxQTcwMkZCQTAwOUE2RkJEIC8qIFByb2Nlc3NU
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDdG
MTMwRjFBNzAyRkJBMDA5QTZGQkQgLyogUHJvY2Vzc1R5cGUuaCAqLzsgfTsKIAkJMkQ4MTlCOUUx
ODYyN0VFOTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4MTlCOTkxODYyNzVC
MzAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwICovOyB9OwogCQky
RDgxOUJBMTE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDgxOUI5RjE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNv
bGxlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTJEODE5QkEyMTg2MjgwMEUwMDFG
MDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODE5QkEwMTg2MjgwMEUwMDFG
MDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZXMuaCAqLzsgfTsKQEAg
LTI2NzAsNiArMjY3NCw5IEBACiAJCTJENDI5QkZCMTcyMUUyQkEwMEVDNjgxRiAvKiBQREZQbHVn
aW5QYXNzd29yZEZpZWxkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbTsgcGF0aCA9IFBERi9QREZQbHVnaW5QYXNzd29y
ZEZpZWxkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDQ3QjU2QTE4MTA3MTRF
MDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ0N0I1NkIxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
NUFCNjJCMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJENUFCNjJDMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZVJlY29yZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ1QUI2MkQxQTY5RDZGQjAwMTRB
OUNCIC8qIE1lc3NhZ2VSZWNvcmRlclByb2Jlcy5kICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5kdHJh
Y2U7IHBhdGggPSBNZXNzYWdlUmVjb3JkZXJQcm9iZXMuZDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQ1QzlEMDMxOUM4MUQ4RjAwQjNDNUMxIC8qIFdlYlBhZ2VPdmVybGF5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VPdmVybGF5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1QzlEMDQxOUM4MUQ4RjAwQjNDNUMxIC8q
IFdlYlBhZ2VPdmVybGF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBh
Z2VPdmVybGF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENkFCNTNGMTkyQjFD
NEEwMDNBOUZEMSAvKiBXS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLmg7IHBhdGggPSBpb3Mv
V0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNjgyLDYgKzI2ODksNyBAQAogCQkyRDcwQUIxNDE4QTFENTdDMDAwMjZENkUgLyogSW5mby1p
T1MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJJbmZvLWlPUy5wbGlzdCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEN0FBRkQyMThDODY0MDYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb250
ZW50UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3
Q29udGVudFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEN0FBRkQ1
MThDOTU2QUYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9uSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3Q29uZmlndXJhdGlvbkludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEN0YxMzBGMUE3MDJGQkEwMDlB
NkZCRCAvKiBQcm9jZXNzVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
cm9jZXNzVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDgxOUI5OTE4NjI3
NUIzMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4MTlCOUExODYyNzVCMzAwMUYw
M0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDgxOUI5QjE4NjI3NUIzMDAxRjAzRDEgLyogVmlld0dlc3R1
cmVHZW9tZXRyeUNvbGxlY3Rvci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBW
aWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDgxNyw4ICs0ODI1LDEyIEBACiAJCQkJMUEzRUVEMTExNjFBNTNENjAw
QUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlci5oICovLAogCQkJCTFBM0VFRDBDMTYxQTUzNTMwMEFF
QjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovLAogCQkJCTFBM0VFRDBEMTYxQTUzNTMw
MEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLywKKwkJCQkyRDVBQjYyQjFBNjlENkZC
MDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmggKi8sCisJCQkJMkQ1QUI2MkMxQTY5RDZGQjAw
MTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlci5jcHAgKi8sCisJCQkJMkQ1QUI2MkQxQTY5RDZGQjAw
MTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlclByb2Jlcy5kICovLAogCQkJCTFBQUIwMzc3MTg1QTdD
NkEwMEVERjUwMSAvKiBNZXNzYWdlU2VuZGVyLmNwcCAqLywKIAkJCQkxQUFCMDM3ODE4NUE3QzZB
MDBFREY1MDEgLyogTWVzc2FnZVNlbmRlci5oICovLAorCQkJCTJEN0YxMzBGMUE3MDJGQkEwMDlB
NkZCRCAvKiBQcm9jZXNzVHlwZS5oICovLAogCQkJCTFBRTAwRDY5MTgzMjdDMTIwMDA4N0RENyAv
KiBTdHJpbmdSZWZlcmVuY2UuY3BwICovLAogCQkJCTFBRTAwRDZBMTgzMjdDMTIwMDA4N0RENyAv
KiBTdHJpbmdSZWZlcmVuY2UuaCAqLywKIAkJCSk7CkBAIC03MzM4LDYgKzczNTAsNyBAQAogCQkJ
aXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMkQ3RjEzMTAxQTcwMkZCQTAwOUE2RkJEIC8qIFByb2Nl
c3NUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0E1RTAxNDE4QkJGOTNGMDAwQTA4MUUgLyog
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OUE4NzM2MThC
QkZBNDMwMDU4OEFGMiAvKiBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMUE0RkU1QTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQuaCBp
biBIZWFkZXJzICovLApAQCAtNzYwMCw2ICs3NjEzLDcgQEAKIAkJCQkxQUE1NkYyOTExRTkyQkM4
MDA2MUI4ODIgLyogUGx1Z2luQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RUY0
Q0IxMjUyNDAzNzAwRjcwNjdGIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RUY5NkYxMjUyQUY2QjAwRjcwNjdGIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDVBQjYyRTFBNjlENkZCMDAxNEE5Q0Ig
LyogTWVzc2FnZVJlY29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTE3OTc4MDEzN0VFODJD
MDBGOTdENDUgLyogUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QzNGOEM5MTE3M0FGNTJEMDA3QjdGMzkgLyogUGx1Z2luSW5mb3JtYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDODlEMkI0MUE2QjA2OEMwMDNBNUZERSAvKiBBUElVc2VyQ29udGVudEZp
bHRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC05Mzg5LDYgKzk0MDMsNyBAQAogCQkJCTFBRkRFNjU5
MTk1NEE0MkIwMEM0OEZGQSAvKiBTZXNzaW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUEwMDJENDgxOTZCMzQ1RDAwQjlBRDQ0IC8qIFNlc3Npb25TdGF0ZUNvZGluZy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNzI4NDQ4MTk1OUY4MDQwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJENUFCNjMwMUE2OUQ2RkIwMDE0QTlDQiAv
KiBNZXNzYWdlUmVjb3JkZXJQcm9iZXMuZCBpbiBTb3VyY2VzICovLAogCQkJCTc1M0UzRTBEMTg4
NzM5ODUwMDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTY0MjBFNDEyRENFMkZGMDBDQUFFMkMgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUMwMUEyNjAxMTI2NjJGMjEwMEM5RUQ1NSAvKiBTaGFyZWFibGVCaXRtYXBDRy5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTk0OTgsNiArOTUxMyw3IEBACiAJCQkJQkMxMTFCNUUxMTJG
NjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
M0REMUZEMTI1RTU5RjMwMDQ1MTVFNiAvKiBXZWJGaW5kQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRTQ2OTUzMTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTJENUFCNjJGMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3Jk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNDY5NTUxMjE0RTZDQjAwMEI5OEVCIC8qIFdl
YkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzEx
MUFERDExMkY1QjkzMDAzMzdCQUIgLyogV2ViRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNFNDY5NzkxMjE0RjJCNDAwMEI5OEVCIC8qIFdlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXgg
ZGYyMzE2NjlhM2E5OTAxMWY5Zjk0NDRhNTA4ZWQ4YWZmNmFiZThiMy4uZWY1YmZjOTMzMTViMzdj
ZjkyZjZjZjIxOGJiNzQwMzlhZGYxYmI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uLmgKQEAgLTU4LDYgKzU4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElQ
Qzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6
UHJvY2Vzc1R5cGU6OldlYjsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQ
cm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNl
OyB9CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICB2aXJ0dWFsIElQQzo6Q29ubmVj
dGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAxNjAyNzA1ZTE3NmVk
Zjc0ZDAxNWZmNmUzNDYyOWJjMzI2NDA5YmZhLi44MDNlODAxMGQ5NWM2NmVjZjEwNzE3OTVkN2E3
ZWQ5ZDkyNDU3OTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02OCw2ICs2OCw4IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVz
c2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUg
eyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nl
c3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNz
VHlwZTo6TmV0d29yazsgfQogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKICAgICAv
LyBNZXNzYWdlIGhhbmRsZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAzZTkzMDVjYTU0
MDE4YzI1OGNlZTEyMTZiMWJlYTkzMTkwNjI4OWNkLi42OWY5YzlkNDM2YjI2MDQyYjEwNzZkM2Rh
ZWMxMzJjNTJiOWZkNTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjgsNiArNjgsOCBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJu
IElQQzo6UHJvY2Vzc1R5cGU6OldlYjsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBy
ZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlBs
dWdpbjsgfQogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZFJlY2VpdmVQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5oCmluZGV4IDFmMzliMDFiMTZmN2M3MmJjNmMwYmM0MDY1ZDdlZTE5ZWQyYzRi
ZjUuLjRjYTFlZWIyZDM2ZGY5MjRmNGE0NDljYWE1YWI1MWI5NjBjZDNjMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTU1LDYg
KzU1LDggQEAgcHVibGljOgogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZSB7IGNsb3NlKCk7IH0KICAgICB2
b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UpIG92ZXJyaWRlIHsgY2xvc2UoKTsgfQor
ICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUg
eyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nl
c3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNz
VHlwZTo6VUk7IH0KIAogICAgIC8vIENhbGxlZCBieSBXZWJJbnNwZWN0b3IgbWVzc2FnZXMKICAg
ICB2b2lkIGNvbm5lY3Rpb25Fc3RhYmxpc2hlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaAppbmRleCAzNzhjODgyMWFlOGFiOTYx
NjE0NDRiZGY4YTJhOGU1MzNhMzY5MmM4Li5hZmU4YzFjNzViMGViZjEwZTNiODNmOTE2ZTJjZWNm
MTkzZTQ2YThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yVUkuaApAQCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgLy8gSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlIHsgY2xvc2VXaW5kb3coKTsgfQogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSkgb3ZlcnJpZGUgeyBjbG9zZVdpbmRvdygpOyB9CisgICAgdmlydHVhbCBJUEM6OlBy
b2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nl
c3NUeXBlOjpXZWI7IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vz
c1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpXZWI7IH0KIAogICAg
IC8vIENhbGxlZCBieSBXZWJJbnNwZWN0b3JVSSBtZXNzYWdlcwogICAgIHZvaWQgZXN0YWJsaXNo
Q29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IGluc3BlY3RlZFBhZ2VJZGVudGlmaWVyLCBib29sIHVuZGVyVGVzdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGYyZTcyMWY0NjhiMTVlYTFkNjRhYTFiZTM0MDQ0
NWI3MWMzNzc2MjMuLmRmOTRlZTc0ZDkzYTg2ZWI0NmMzZDA2MzcwYmZhZDQ0MTc3NzYzYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0yOTAsNiArMjkwLDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNz
YWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpD
b25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7
IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpXZWI7IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vz
c1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NU
eXBlOjpVSTsgfQogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlByb2Nlc3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBkMTZkY2NjOGViOWE1Yzk0NjQ0
ZmI3ZGNjNDNlZmE1ZmQwMGIxMWMuLjg4ZjcyYjk1MzZjMDM0YzI1NWMzZWNjZDI5MWMwY2FmOTFl
YzczYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxNS0wMS0yMSAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgV2ViS2l0TWVzc2FnZVJlY29yZGVyIERU
cmFjZSBwcm92aWRlciwgZXhwb3NpbmcgSVBDIGRldGFpbHMgdG8gRFRyYWNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA2NzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvZHRyYWNlL3Ry
YWNlLXdlYmtpdDItbWVzc2FnZXMuZDogQWRkZWQuCisgICAgICAgIEFkZCBhIERUcmFjZSBzY3Jp
cHQgdGhhdCBvdXRwdXRzIGEgc21hbGwgYmxvYiBvZiBKU09OIHBlciBtZXNzYWdlLgorCiAyMDE1
LTAxLTE5ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtX
aW5dIExheW91dCBUZXN0IGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtbm8tZmls
ZS1hY2Nlc3MuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2R0cmFj
ZS90cmFjZS13ZWJraXQyLW1lc3NhZ2VzLmQgYi9Ub29scy9TY3JpcHRzL2R0cmFjZS90cmFjZS13
ZWJraXQyLW1lc3NhZ2VzLmQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU4OTExZDIyZmNiOWQ4ZjBlZDVjNmMxY2U2
M2M5Zjk1N2Y3MGZiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvZHRyYWNlL3Ry
YWNlLXdlYmtpdDItbWVzc2FnZXMuZApAQCAtMCwwICsxLDk2IEBACisjIS91c3Ivc2Jpbi9kdHJh
Y2UgLXFacworCisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQgeworICAg
IHVpbnQ4X3Qgc291cmNlUHJvY2Vzc1R5cGU7CisgICAgcGlkX3Qgc291cmNlUHJvY2Vzc0lEOwor
CisgICAgdWludDhfdCBkZXN0aW5hdGlvblByb2Nlc3NUeXBlOworICAgIHBpZF90IGRlc3RpbmF0
aW9uUHJvY2Vzc0lEOworCisgICAgY2hhciogbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICBjaGFy
KiBtZXNzYWdlTmFtZTsKKyAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEOworCisgICAgY2hhciBV
VUlEWzE2XTsKKworICAgIGRvdWJsZSBzdGFydFRpbWU7CisgICAgZG91YmxlIGVuZFRpbWU7CisK
KyAgICBib29sIGlzU3luY01lc3NhZ2U7CisgICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseTsKKyAgICBib29sIGlzSW5jb21pbmc7Cit9OworCitXZWJL
aXRNZXNzYWdlUmVjb3JkZXIqOjo6bWVzc2FnZV8qCit7CisgICAgdGhpcy0+cmVjb3JkID0gKHN0
cnVjdCBXZWJLaXRNZXNzYWdlUmVjb3JkKiljb3B5aW4oYXJnMCwgc2l6ZW9mKHN0cnVjdCBXZWJL
aXRNZXNzYWdlUmVjb3JkKSk7CisgICAgcHJpbnRmKCJ7Iik7CisKKyAgICBwcmludGYoIlwic291
cmNlUHJvY2Vzc1R5cGVcIjogJWQsICIsIHRoaXMtPnJlY29yZC0+c291cmNlUHJvY2Vzc1R5cGUp
OworICAgIHByaW50ZigiXCJzb3VyY2VQcm9jZXNzSURcIjogJWQsICIsIHRoaXMtPnJlY29yZC0+
c291cmNlUHJvY2Vzc0lEKTsKKworICAgIHByaW50ZigiXCJkZXN0aW5hdGlvblByb2Nlc3NUeXBl
XCI6ICVkLCAiLCB0aGlzLT5yZWNvcmQtPmRlc3RpbmF0aW9uUHJvY2Vzc1R5cGUpOworICAgIHBy
aW50ZigiXCJkZXN0aW5hdGlvblByb2Nlc3NJRFwiOiAlZCwgIiwgdGhpcy0+cmVjb3JkLT5kZXN0
aW5hdGlvblByb2Nlc3NJRCk7CisKKyAgICBwcmludGYoIlwibWVzc2FnZVJlY2VpdmVyTmFtZVwi
OiBcIiVzXCIsICIsIGNvcHlpbnN0cigodXNlcl9hZGRyX3QpdGhpcy0+cmVjb3JkLT5tZXNzYWdl
UmVjZWl2ZXJOYW1lKSk7CisgICAgcHJpbnRmKCJcIm1lc3NhZ2VOYW1lXCI6IFwiJXNcIiwgIiwg
Y29weWluc3RyKCh1c2VyX2FkZHJfdCl0aGlzLT5yZWNvcmQtPm1lc3NhZ2VOYW1lKSk7CisKKyAg
ICBwcmludGYoIlwiZGVzdGluYXRpb25JRFwiOiAlZCwgIiwgdGhpcy0+cmVjb3JkLT5kZXN0aW5h
dGlvbklEKTsKKworICAgIHByaW50ZigiXCJVVUlEXCI6IFwiIik7CisgICAgcHJpbnRmKCIlMDJ4
IiwgdGhpcy0+cmVjb3JkLT5VVUlEWzBdKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNv
cmQtPlVVSURbMV0pOworICAgIHByaW50ZigiJTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFsyXSk7
CisgICAgcHJpbnRmKCIlMDJ4IiwgdGhpcy0+cmVjb3JkLT5VVUlEWzNdKTsKKyAgICBwcmludGYo
Ii0iKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbNF0pOworICAgIHBy
aW50ZigiJTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFs1XSk7CisgICAgcHJpbnRmKCItIik7Cisg
ICAgcHJpbnRmKCIlMDJ4IiwgdGhpcy0+cmVjb3JkLT5VVUlEWzZdKTsKKyAgICBwcmludGYoIiUw
MngiLCB0aGlzLT5yZWNvcmQtPlVVSURbN10pOworICAgIHByaW50ZigiLSIpOworICAgIHByaW50
ZigiJTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFs4XSk7CisgICAgcHJpbnRmKCIlMDJ4IiwgdGhp
cy0+cmVjb3JkLT5VVUlEWzldKTsKKyAgICBwcmludGYoIi0iKTsKKyAgICBwcmludGYoIiUwMngi
LCB0aGlzLT5yZWNvcmQtPlVVSURbMTBdKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNv
cmQtPlVVSURbMTFdKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbMTJd
KTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbMTNdKTsKKyAgICBwcmlu
dGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbMTRdKTsKKyAgICBwcmludGYoIiUwMngiLCB0
aGlzLT5yZWNvcmQtPlVVSURbMTVdKTsKKyAgICBwcmludGYoIlwiLCAiKTsKKworICAgIHByaW50
ZigiXCJzdGFydFRpbWVcIjogJWYsICIsIHRoaXMtPnJlY29yZC0+c3RhcnRUaW1lKTsKKyAgICBw
cmludGYoIlwiZW5kVGltZVwiOiAlZiwgIiwgdGhpcy0+cmVjb3JkLT5lbmRUaW1lKTsKKworICAg
IHByaW50ZigiXCJpc1N5bmNNZXNzYWdlXCI6ICVkLCAiLCB0aGlzLT5yZWNvcmQtPmlzU3luY01l
c3NhZ2UpOworICAgIHByaW50ZigiXCJzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseVwiOiAlZCwgIiwgdGhpcy0+cmVjb3JkLT5zaG91bGREaXNwYXRjaE1lc3NhZ2VX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgcHJpbnRmKCJcImlzSW5jb21pbmdcIjogJWQi
LCB0aGlzLT5yZWNvcmQtPmlzSW5jb21pbmcpOworCisgICAgcHJpbnRmKCJ9XG4iKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>245474</attachid>
            <date>2015-01-27 14:49:38 -0800</date>
            <delta_ts>2015-01-27 14:49:38 -0800</delta_ts>
            <desc>derived header</desc>
            <filename>MessageRecorderProbes.h</filename>
            <type>application/octet-stream</type>
            <size>2322</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">LyoKICogR2VuZXJhdGVkIGJ5IGR0cmFjZSgxTSkuCiAqLwoKI2lmbmRlZglfTUVTU0FHRVJFQ09S
REVSUFJPQkVTX0gKI2RlZmluZQlfTUVTU0FHRVJFQ09SREVSUFJPQkVTX0gKCiNpbmNsdWRlIDx1
bmlzdGQuaD4KCiNpZmRlZglfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgojZGVmaW5l
IFdFQktJVE1FU1NBR0VSRUNPUkRFUl9TVEFCSUxJVFkgIl9fX2R0cmFjZV9zdGFiaWxpdHkkV2Vi
S2l0TWVzc2FnZVJlY29yZGVyJHYxJDFfMV8wXzFfMV8wXzFfMV8wXzFfMV8wXzFfMV8wIgoKI2Rl
ZmluZSBXRUJLSVRNRVNTQUdFUkVDT1JERVJfVFlQRURFRlMgIl9fX2R0cmFjZV90eXBlZGVmcyRX
ZWJLaXRNZXNzYWdlUmVjb3JkZXIkdjIiCgojaWYgIWRlZmluZWQoRFRSQUNFX1BST0JFU19ESVNB
QkxFRCkgfHwgIURUUkFDRV9QUk9CRVNfRElTQUJMRUQKCiNkZWZpbmUJV0VCS0lUTUVTU0FHRVJF
Q09SREVSX01FU1NBR0VfUkVDRUlWRUQoYXJnMCkgXApkbyB7IFwKCV9fYXNtX18gdm9sYXRpbGUo
Ii5yZWZlcmVuY2UgIiBXRUJLSVRNRVNTQUdFUkVDT1JERVJfVFlQRURFRlMpOyBcCglfX2R0cmFj
ZV9wcm9iZSRXZWJLaXRNZXNzYWdlUmVjb3JkZXIkbWVzc2FnZV9yZWNlaXZlZCR2MSQ3Mzc0NzI3
NTYzNzQyMDU3NjU2MjRiNjk3NDRkNjU3MzczNjE2NzY1NTI2NTYzNmY3MjY0MjAyYShhcmcwKTsg
XAoJX19hc21fXyB2b2xhdGlsZSgiLnJlZmVyZW5jZSAiIFdFQktJVE1FU1NBR0VSRUNPUkRFUl9T
VEFCSUxJVFkpOyBcCn0gd2hpbGUgKDApCiNkZWZpbmUJV0VCS0lUTUVTU0FHRVJFQ09SREVSX01F
U1NBR0VfUkVDRUlWRURfRU5BQkxFRCgpIFwKCSh7IGludCBfciA9IF9fZHRyYWNlX2lzZW5hYmxl
ZCRXZWJLaXRNZXNzYWdlUmVjb3JkZXIkbWVzc2FnZV9yZWNlaXZlZCR2MSgpOyBcCgkJX19hc21f
XyB2b2xhdGlsZSgiIik7IFwKCQlfcjsgfSkKI2RlZmluZQlXRUJLSVRNRVNTQUdFUkVDT1JERVJf
TUVTU0FHRV9TRU5UKGFyZzApIFwKZG8geyBcCglfX2FzbV9fIHZvbGF0aWxlKCIucmVmZXJlbmNl
ICIgV0VCS0lUTUVTU0FHRVJFQ09SREVSX1RZUEVERUZTKTsgXAoJX19kdHJhY2VfcHJvYmUkV2Vi
S2l0TWVzc2FnZVJlY29yZGVyJG1lc3NhZ2Vfc2VudCR2MSQ3Mzc0NzI3NTYzNzQyMDU3NjU2MjRi
Njk3NDRkNjU3MzczNjE2NzY1NTI2NTYzNmY3MjY0MjAyYShhcmcwKTsgXAoJX19hc21fXyB2b2xh
dGlsZSgiLnJlZmVyZW5jZSAiIFdFQktJVE1FU1NBR0VSRUNPUkRFUl9TVEFCSUxJVFkpOyBcCn0g
d2hpbGUgKDApCiNkZWZpbmUJV0VCS0lUTUVTU0FHRVJFQ09SREVSX01FU1NBR0VfU0VOVF9FTkFC
TEVEKCkgXAoJKHsgaW50IF9yID0gX19kdHJhY2VfaXNlbmFibGVkJFdlYktpdE1lc3NhZ2VSZWNv
cmRlciRtZXNzYWdlX3NlbnQkdjEoKTsgXAoJCV9fYXNtX18gdm9sYXRpbGUoIiIpOyBcCgkJX3I7
IH0pCgoKZXh0ZXJuIHZvaWQgX19kdHJhY2VfcHJvYmUkV2ViS2l0TWVzc2FnZVJlY29yZGVyJG1l
c3NhZ2VfcmVjZWl2ZWQkdjEkNzM3NDcyNzU2Mzc0MjA1NzY1NjI0YjY5NzQ0ZDY1NzM3MzYxNjc2
NTUyNjU2MzZmNzI2NDIwMmEoY29uc3Qgc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQgKik7CmV4
dGVybiBpbnQgX19kdHJhY2VfaXNlbmFibGVkJFdlYktpdE1lc3NhZ2VSZWNvcmRlciRtZXNzYWdl
X3JlY2VpdmVkJHYxKHZvaWQpOwpleHRlcm4gdm9pZCBfX2R0cmFjZV9wcm9iZSRXZWJLaXRNZXNz
YWdlUmVjb3JkZXIkbWVzc2FnZV9zZW50JHYxJDczNzQ3Mjc1NjM3NDIwNTc2NTYyNGI2OTc0NGQ2
NTczNzM2MTY3NjU1MjY1NjM2ZjcyNjQyMDJhKGNvbnN0IHN0cnVjdCBXZWJLaXRNZXNzYWdlUmVj
b3JkICopOwpleHRlcm4gaW50IF9fZHRyYWNlX2lzZW5hYmxlZCRXZWJLaXRNZXNzYWdlUmVjb3Jk
ZXIkbWVzc2FnZV9zZW50JHYxKHZvaWQpOwoKI2Vsc2UKCiNkZWZpbmUJV0VCS0lUTUVTU0FHRVJF
Q09SREVSX01FU1NBR0VfUkVDRUlWRUQoYXJnMCkgXApkbyB7IFwKCX0gd2hpbGUgKDApCiNkZWZp
bmUJV0VCS0lUTUVTU0FHRVJFQ09SREVSX01FU1NBR0VfUkVDRUlWRURfRU5BQkxFRCgpICgwKQoj
ZGVmaW5lCVdFQktJVE1FU1NBR0VSRUNPUkRFUl9NRVNTQUdFX1NFTlQoYXJnMCkgXApkbyB7IFwK
CX0gd2hpbGUgKDApCiNkZWZpbmUJV0VCS0lUTUVTU0FHRVJFQ09SREVSX01FU1NBR0VfU0VOVF9F
TkFCTEVEKCkgKDApCgojZW5kaWYgLyogIWRlZmluZWQoRFRSQUNFX1BST0JFU19ESVNBQkxFRCkg
fHwgIURUUkFDRV9QUk9CRVNfRElTQUJMRUQgKi8KCgojaWZkZWYJX19jcGx1c3BsdXMKfQojZW5k
aWYKCiNlbmRpZgkvKiBfTUVTU0FHRVJFQ09SREVSUFJPQkVTX0ggKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245528</attachid>
            <date>2015-01-28 03:04:09 -0800</date>
            <delta_ts>2015-01-28 16:50:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140673-20150128030413.patch</filename>
            <type>text/plain</type>
            <size>61719</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2M1ODMxNTk0ZjU1Y2Yw
ZTRkZGJiOTcxNzIzMTQ0OGMyNjVlY2M1NS4uYmVkMzA1OTNjYjJhYzg1YmUyYjRiMTk2ZTYzNDk4
MjZmYWU3MzhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNS0wMS0yOCAgVGlt
b3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEg
V2ViS2l0TWVzc2FnZVJlY29yZGVyIERUcmFjZSBwcm92aWRlciwgZXhwb3NpbmcgSVBDIGRldGFp
bHMgdG8gRFRyYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDA2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8dXVpZF90Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjx1dWlkX3Q+OjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5oOgorICAgICAgICBBZGQgYSB1dWlkX3QgKHNpbXBsZSkgYXJndW1lbnQgY29kZXIuCisgICAg
ICAgIEZpeCBhIG1pcy1uYW1lZCBoZWFkZXItZ3VhcmQgI2lmZGVmLgorCisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNw
YXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgU3luYyBtZXNzYWdlIHJlcGxp
ZXMgaW5oZXJpdCB0aGUgbWVzc2FnZSBVVUlEIGZyb20gdGhlIGluY29taW5nIHN5bmMgbWVzc2Fn
ZS4KKworICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kTWVzc2FnZSk6CisgICAgICAgIChJ
UEM6OkNvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6c2VuZFN5bmNNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNN
ZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZCk6CisgICAgICAgIFJlY29yZCBvdXRnb2luZyBtZXNz
YWdlcy4gQmVjYXVzZSBzZW5kU3luY01lc3NhZ2UgY2FsbHMgc2VuZE1lc3NhZ2UsCisgICAgICAg
IHdlIGhhdmUgdG8gZXhwbGljaXRseSBhdm9pZCByZWNvcmRpbmcgdGhlIG1lc3NhZ2UgdHdpY2Uu
CisKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAg
UmVjb3JkIHRoZSBpbmNvbWluZyBtZXNzYWdlLgorCisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246
OnJlbW90ZVByb2Nlc3NJRCk6CisgICAgICAgIEFkZCByZW1vdGVQcm9jZXNzSUQoKSwgd2hpY2gg
dHJpZXMgdG8gZGV0ZXJtaW5lIHRoZSBwaWQgb2YgdGhlIHJlbW90ZSBwcm9jZXNzLgorCisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6eHBjQ29ubmVjdGlvbik6CisgICAgICAgIFRoaXMgY2FuIGJlIGNvbnN0LgorCisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OmlzVmFsaWQpOgorICAgICAgICBNYWtlIHRoaXMgcHVibGljLgor
CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKElQ
Qzo6TWVzc2FnZURlY29kZXI6Ok1lc3NhZ2VEZWNvZGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvTWVzc2FnZURlY29kZXIuaDoKKyAgICAgICAgKElQQzo6TWVzc2FnZURlY29kZXI6OnNldE1l
c3NhZ2VQcm9jZXNzaW5nVG9rZW4pOgorICAgICAgICAoSVBDOjpNZXNzYWdlRGVjb2Rlcjo6VVVJ
RCk6CisgICAgICAgIERlY29kZSBhbmQgc3RvcmUgdGhlIG1lc3NhZ2UgVVVJRC4KKyAgICAgICAg
U3RvcmUgYSBNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIE1l
c3NhZ2VEZWNvZGVyOworICAgICAgICB0aGlzIGVuc3VyZXMgdGhhdCBhbGwgdGltZSBzcGVudCBw
cm9jZXNzaW5nIHRoZSBpbmNvbWluZyBtZXNzYWdlIHdpbGwgYmUKKyAgICAgICAgY291bnRlZCBh
Z2FpbnN0IHRoYXQgbWVzc2FnZS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlRW5j
b2Rlci5jcHA6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpNZXNzYWdlRW5jb2Rlcik6
CisgICAgICAgIEJ5IGRlZmF1bHQsIGNyZWF0ZSBhIG5ldyBVVUlEIGZvciB0aGUgbWVzc2FnZS4g
QWx0ZXJuYXRpdmVseSwgYWxsb3cgY2xpZW50cworICAgICAgICB0byBwYXNzIHRoZSBtZXNzYWdl
IFVVSUQgaW4gKHVzZWQgZm9yIHN5bmMgbWVzc2FnZSByZXBsaWVzKS4KKyAgICAgICAgU3RvcmUg
dGhlIG1lc3NhZ2VSZWNlaXZlck5hbWUgYW5kIG1lc3NhZ2VOYW1lLgorCisgICAgICAgIChJUEM6
Ok1lc3NhZ2VFbmNvZGVyOjplbmNvZGVIZWFkZXIpOgorICAgICAgICBGYWN0b3IgZW5jb2RlSGVh
ZGVyKCkgb3V0IG9mIHRoZSBjb25zdHJ1Y3RvcnMgc28gbW9zdCBvZiB0aGVpciBjb2RlIGNhbiBi
ZSBzaGFyZWQuCisKKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6OmlzU3luY01lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5jb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICBBZGQgZ2V0dGVycyBmb3IgdGhlc2UgZmxh
Z3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuaDoKKyAgICAgICAg
KElQQzo6TWVzc2FnZUVuY29kZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUpOgorICAgICAgICAoSVBD
OjpNZXNzYWdlRW5jb2Rlcjo6bWVzc2FnZU5hbWUpOgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5j
b2Rlcjo6ZGVzdGluYXRpb25JRCk6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpVVUlE
KToKKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaDogQWRkZWQuCisg
ICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoTWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUmVjb3JkZXIpOgorICAgICAgICBBZGQgYSBjbGFz
cyB0aGF0IGludGVyZmFjZXMgd2l0aCBhIGN1c3RvbSBEVHJhY2UgcHJvdmlkZXIgdG8gbG9nIGlu
Y29taW5nIGFuZCBvdXRnb2luZyBtZXNzYWdlcy4KKworICAgICAgICAoTWVzc2FnZVJlY29yZGVy
OjpzaGFyZWQpOgorICAgICAgICAoTWVzc2FnZVJlY29yZGVyOjppc0VuYWJsZWQpOgorICAgICAg
ICBEZXRlcm1pbmUgaWYgZWl0aGVyIG9mIHRoZSBtZXNzYWdlIHByb2JlcyBhcmUgZW5hYmxlZC4g
SWYgbm90LCB3ZSdsbCBhdm9pZCBtb3N0IG9mIHRoZQorICAgICAgICB3b3JrIGFzc29jaWF0ZWQg
d2l0aCBNZXNzYWdlUmVjb3JkZXIuCisKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3Jk
T3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkSW5jb21p
bmdNZXNzYWdlKToKKyAgICAgICAgQnVpbGQgYSBXZWJLaXRNZXNzYWdlUmVjb3JkIGFuZCBNZXNz
YWdlUHJvY2Vzc2luZ1Rva2VuIGZyb20gdGhlIE1lc3NhZ2UoRGV8RW4pY29kZXIuCisgICAgICAg
IE9uY2UgdGhlIE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4gaXMgZGVhbGxvY2F0ZWQsIHRoZSBwcm9i
ZSB3aWxsIGJlIGludm9rZWQgd2l0aCB0aGUgV2ViS2l0TWVzc2FnZVJlY29yZC4KKworICAgICAg
ICAoTWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuOjpNZXNzYWdlUHJvY2Vz
c2luZ1Rva2VuKToKKyAgICAgICAgKE1lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdU
b2tlbjo6fk1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4pOgorICAgICAgICBLZWVwIHRyYWNrIG9mIHdo
ZW4gdGhlIHRva2VuIGlzIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZDsgdGhlc2UgYXJlIGNvbnNpZGVy
ZWQgdGhlIGJlZ2lubmluZworICAgICAgICBhbmQgZW5kaW5nICJwcm9jZXNzaW5nIiB0aW1lcyBv
ZiB0aGUgbWVzc2FnZSAoYW5kIGFzIHN1Y2ggdGhlIHRva2VuIHNob3VsZCBiZSBrZXB0IGFsaXZl
IGZvcgorICAgICAgICBleGFjdGx5IGFzIGxvbmcgYXMgdGhlIG1lc3NhZ2UgaXMgYmVpbmcgcHJv
Y2Vzc2VkKS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQcm9iZXMu
ZDogQWRkZWQuCisgICAgICAgIEFkZCBhIERUcmFjZSBwcm92aWRlciBzb3VyY2UgZmlsZSB3aXRo
IHR3byBwcm9iZXMsIG1lc3NhZ2Vfc2VudCBhbmQgbWVzc2FnZV9yZWNlaXZlZC4KKyAgICAgICAg
VGhlIHN0cnVjdCBtdXN0IG1hdGNoIHRoZSBzdHJ1Y3QgaW4gTWVzc2FnZVJlY29yZGVyLmguCisg
ICAgICAgIAorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Qcm9jZXNzVHlwZS5oOiBBZGRlZC4KKyAg
ICAgICAgQWRkIGFuIGVudW0gb2YgcHJvY2VzcyB0eXBlcy4KKworICAgICAgICAqIFdlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3MuaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmg6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICBBbm5vdGF0
ZSBDb25uZWN0aW9uOjpDbGllbnRzIHdpdGggcHJvY2VzcyB0eXBlcy4KKyAgICAgICAgCiAyMDE1
LTAxLTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1l
IHBhZ2VDYWNoZSgpIHRvIFBhZ2VDYWNoZTo6c2hhcmVkKCkgYW5kIHJldHVybiBhIHJlZmVyZW5j
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5o
CmluZGV4IGIzYWZmMjg1OTE1NGY5ZjlkY2IxYjJmYTFiNDA0ZGFkOTE3Mjc0OWUuLmIyYjI0ZWVh
MTNmZmI4MWYzY2Y3OTA0N2RmYzcwMTg0NDNmNWFhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKQEAgLTgyLDYgKzgyLDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOyB9CisgICAgdmly
dHVhbCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1
cm4gSVBDOjpQcm9jZXNzVHlwZTo6VUk7IH0KICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhYmFzZVBy
b2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKIAog
ICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRl
eCAwNmY4NWJmOGQwNzM1Y2M1YmUzOGFmNzgxOGYxMTAxNGU2OTFhYWI1Li41OWM0MGQzNzMyOWI4
YmM4MzcyMDMzZTM4MDVjOTI2ZWZhMTY0M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oCkBAIC01MSw2ICs1MSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFBy
b2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U7
IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVy
cmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpXZWI7IH0KICAgICB2b2lkIGRpZFJlY2Vp
dmVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMDZjYzg4ZTE0YjI3NzFlMjZhNTQ1ZjkwN2FmZDg1
OWNkMzk3M2ZlMS4uOTQ2ZDJlYWRlZWUzOGYxY2IzZmIzZjE5NDBjNmE5N2I2OWM0ZjhlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC02NSw2ICs2NSw4IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jik7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NU
eXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6TmV0d29yazsgfQorICAg
IHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsg
cmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OldlYjsgfQogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYjlkY2M2YmY4N2Rj
N2I1ODVlZmY2NDljOGEwOTg2NmM3Y2QyYWYwYi4uZDU3Zjc1MWFlYjYxODRjOWYxZmExMTBiMjhm
MzdmMjE2NTAzMTFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCkBAIC05OSw2ICs5OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlw
ZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6
TmV0d29yazsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlw
ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9CiAKICAgICAvLyBE
b3dubG9hZE1hbmFnZXI6OkNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVEb3dubG9h
ZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5jcHAKaW5kZXggMzlmM2UwNzk3ZTE2Nzg1NjBlYTEwYWZkNTRlZDY4ZDU1MGY3ZmY2My4u
ZjcyZWFjMjY3NjI3MzI0ODI2N2JiYmVkNzhlYjM2NjE3YjUwMTIyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xNjIsNCArMTYyLDE0
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBTdHJpbmcmIHJlc3VsdCkKICAgICByZXR1cm4gZGVjb2RlU3RyaW5nVGV4dDxVQ2hh
cj4oZGVjb2RlciwgbGVuZ3RoLCByZXN1bHQpOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8dXVp
ZF90Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgdXVpZF90JiB1dWlk
KQoreworICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8dXVpZF90Pjo6ZW5jb2RlKGVuY29kZXIsIHV1
aWQpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8dXVpZF90Pjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgdXVpZF90JiB1dWlkKQoreworICAgIHJldHVybiBTaW1wbGVBcmd1bWVu
dENvZGVyPHV1aWRfdD46OmRlY29kZShkZWNvZGVyLCB1dWlkKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmlu
ZGV4IDQ2MmNlMzc2ZGViZDZjZDIxNzBhMThiMTgzNDJiMGNjZjVhNWI2ODguLjYyZGEzNDQwMzQ1
M2RhODkwOGE3ODU0MDQ3YzY4MGU3MWIzYWFiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0yMywxMiArMjMsMTMgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFNpbXBsZUFyZ3VtZW50Q29k
ZXJfaAotI2RlZmluZSBTaW1wbGVBcmd1bWVudENvZGVyX2gKKyNpZm5kZWYgQXJndW1lbnRDb2Rl
cnNfaAorI2RlZmluZSBBcmd1bWVudENvZGVyc19oCiAKICNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKICNpbmNsdWRlIDx1dGlsaXR5Pgor
I2luY2x1ZGUgPHV1aWQvdXVpZC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtMjk4LDYgKzI5
OSwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFN0cmluZz4gewogICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBTdHJpbmcmKTsKIH07CiAKK3RlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8dXVpZF90PiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IHV1aWRfdCYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCB1dWlkX3QmKTsKK307CisKIH0gLy8gbmFtZXNwYWNlIElQ
QwogCiAjZW5kaWYgLy8gQXJndW1lbnRDb2RlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDdiOGFiMjA5NjY5YzYwMmY0M2RjOTEyYTQ1NzkxZjUz
NWE3MTg0MGMuLmVlMzBmOThlZjU4ZDdhZGJiZWFmNzcxY2Y3OTVkYjMwYjBiMjIyM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTMxNyw3ICszMTcs
NyBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVz
c2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgYXV0byByZXBseUVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigi
SVBDIiwgIlN5bmNNZXNzYWdlUmVwbHkiLCBzeW5jUmVxdWVzdElEKTsKKyAgICBhdXRvIHJlcGx5
RW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+KCJJUEMiLCAiU3luY01l
c3NhZ2VSZXBseSIsIHN5bmNSZXF1ZXN0SUQsIGluY29taW5nTWVzc2FnZURlY29kZXItPlVVSUQo
KSk7CiAKICAgICAvLyBIYW5kIG9mZiBib3RoIHRoZSBkZWNvZGVyIGFuZCBlbmNvZGVyIHRvIHRo
ZSB3b3JrIHF1ZXVlIG1lc3NhZ2UgcmVjZWl2ZXIuCiAgICAgd29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoKnRoaXMsICpkZWNvZGVyLCByZXBseUVuY29kZXIp
OwpAQCAtMzY5LDcgKzM2OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gQ29u
bmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyCiAgICAgcmV0dXJu
IGVuY29kZXI7CiB9CiAKLWJvb2wgQ29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKQor
Ym9vbCBDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29k
ZXI+IGVuY29kZXIsIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MsIGJvb2wgYWxyZWFkeVJlY29y
ZGVkTWVzc2FnZSkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzc5LDYgKzM3OSwxMCBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbQogICAgICAgICAg
ICAgfHwgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCkpCiAgICAgICAgIGVuY29kZXItPnNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KHRydWUpOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gdG9rZW47CisgICAgaWYgKCFhbHJl
YWR5UmVjb3JkZWRNZXNzYWdlKQorICAgICAgICB0b2tlbiA9IE1lc3NhZ2VSZWNvcmRlcjo6cmVj
b3JkT3V0Z29pbmdNZXNzYWdlKHRoaXMsIGVuY29kZXIuZ2V0KCkpOworCiAgICAgewogICAgICAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX291dGdvaW5nTWVzc2FnZXNNdXRl
eCk7CiAgICAgICAgIG1fb3V0Z29pbmdNZXNzYWdlcy5hcHBlbmQoV1RGOjptb3ZlKGVuY29kZXIp
KTsKQEAgLTQ3Myw4ICs0NzcsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBD
b25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3QKIAogICAgICsr
bV9pblNlbmRTeW5jQ291bnQ7CiAKKyAgICBhdXRvIHRva2VuID0gTWVzc2FnZVJlY29yZGVyOjpy
ZWNvcmRPdXRnb2luZ01lc3NhZ2UodGhpcywgZW5jb2Rlci5nZXQoKSk7CisKICAgICAvLyBGaXJz
dCBzZW5kIHRoZSBtZXNzYWdlLgotICAgIHNlbmRNZXNzYWdlKFdURjo6bW92ZShlbmNvZGVyKSwg
RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBzZW5kTWVz
c2FnZShXVEY6Om1vdmUoZW5jb2RlciksIERpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSwgdHJ1ZSk7CiAKICAgICAvLyBUaGVuIHdhaXQgZm9yIGEgcmVwbHkuIFdhaXRp
bmcgZm9yIGEgcmVwbHkgY291bGQgaW52b2x2ZSBkaXNwYXRjaGluZyBpbmNvbWluZyBzeW5jIG1l
c3NhZ2VzLCBzbwogICAgIC8vIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlIHRvIHRoZSBjb25uZWN0
aW9uIGhlcmUgaW4gY2FzZSBpdCdzIGludmFsaWRhdGVkLgpAQCAtNTE1LDcgKzUyMSw5IEBAIHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdl
RnJvbVNlY29uZGFyeVRocmVhZCh1CiAgICAgICAgIG1fc2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5
bmNSZXBseU1hcC5hZGQoc3luY1JlcXVlc3RJRCwgJnBlbmRpbmdSZXBseSk7CiAgICAgfQogCi0g
ICAgc2VuZE1lc3NhZ2UoV1RGOjptb3ZlKGVuY29kZXIpLCAwKTsKKyAgICBhdXRvIHRva2VuID0g
TWVzc2FnZVJlY29yZGVyOjpyZWNvcmRPdXRnb2luZ01lc3NhZ2UodGhpcywgZW5jb2Rlci5nZXQo
KSk7CisKKyAgICBzZW5kTWVzc2FnZShXVEY6Om1vdmUoZW5jb2RlciksIDAsIHRydWUpOwogCiAg
ICAgcGVuZGluZ1JlcGx5LnNlbWFwaG9yZS53YWl0KGN1cnJlbnRUaW1lKCkgKyAodGltZW91dC5j
b3VudCgpIC8gMTAwMC4wKSk7CiAKQEAgLTc2OCw3ICs3NzYsNyBAQCB2b2lkIENvbm5lY3Rpb246
OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29kZXIpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvIHJlcGx5RW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8
TWVzc2FnZUVuY29kZXI+KCJJUEMiLCAiU3luY01lc3NhZ2VSZXBseSIsIHN5bmNSZXF1ZXN0SUQp
OworICAgIGF1dG8gcmVwbHlFbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdlRW5jb2Rl
cj4oIklQQyIsICJTeW5jTWVzc2FnZVJlcGx5Iiwgc3luY1JlcXVlc3RJRCwgZGVjb2Rlci5VVUlE
KCkpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUgZGVjb2RlciBhbmQgZW5jb2RlciB0byB0
aGUgY2xpZW50LgogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoKnRoaXMsIGRl
Y29kZXIsIHJlcGx5RW5jb2Rlcik7CkBAIC04MTUsNiArODIzLDggQEAgdm9pZCBDb25uZWN0aW9u
OjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29kZXIpCiAKIHZvaWQgQ29ubmVj
dGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gbWVz
c2FnZSkKIHsKKyAgICBNZXNzYWdlUmVjb3JkZXI6OnJlY29yZEluY29taW5nTWVzc2FnZSh0aGlz
LCBtZXNzYWdlLmdldCgpKTsKKwogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXggMTU2ZmZmNmM3
NmIzN2EyZjU1YmYzNTRiOTM1ODNhNTdlNzZiNmI3MC4uMmI2ZmQwOTcyZjIyNjQyYjliNGE4NTBl
YTllOGNlN2M5YzZhM2IzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZURlY29kZXIuaCIKICNpbmNs
dWRlICJNZXNzYWdlRW5jb2Rlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIlByb2Nlc3NUeXBlLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCiAjaW5jbHVkZSA8
YXRvbWljPgogI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KQEAgLTkwLDYgKzkxLDggQEAg
cHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvbm5l
Y3Rpb24mKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoQ29ubmVjdGlvbiYsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpID0gMDsKKyAgICAgICAgdmlydHVhbCBJUEM6OlByb2Nl
c3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgSVBDOjpQcm9j
ZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpID0gMDsKIAogICAgIHByb3RlY3RlZDoKICAgICAg
ICAgdmlydHVhbCB+Q2xpZW50KCkgeyB9CkBAIC0xMjAsOCArMTIzLDkgQEAgcHVibGljOgogICAg
ICAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiB4cGNDb25uZWN0aW9uOwogICAgIH07
CiAgICAgc3RhdGljIGJvb2wgaWRlbnRpZmllcklzTnVsbChJZGVudGlmaWVyIGlkZW50aWZpZXIp
IHsgcmV0dXJuIGlkZW50aWZpZXIucG9ydCA9PSBNQUNIX1BPUlRfTlVMTDsgfQotICAgIHhwY19j
b25uZWN0aW9uX3QgeHBjQ29ubmVjdGlvbigpIHsgcmV0dXJuIG1feHBjQ29ubmVjdGlvbi5nZXQo
KTsgfQorICAgIHhwY19jb25uZWN0aW9uX3QgeHBjQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1feHBjQ29ubmVjdGlvbi5nZXQoKTsgfQogICAgIGJvb2wgZ2V0QXVkaXRUb2tlbihhdWRpdF90
b2tlbl90Jik7CisgICAgcGlkX3QgcmVtb3RlUHJvY2Vzc0lEKCkgY29uc3Q7CiAjZWxpZiBVU0Uo
VU5JWF9ET01BSU5fU09DS0VUUykKICAgICB0eXBlZGVmIGludCBJZGVudGlmaWVyOwogICAgIHN0
YXRpYyBib29sIGlkZW50aWZpZXJJc051bGwoSWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVy
biAhaWRlbnRpZmllcjsgfQpAQCAtMTc0LDcgKzE3OCw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBib29sIHdhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5KHVpbnQ2NF90
IGRlc3RpbmF0aW9uSUQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWdu
ZWQgd2FpdEZvck1lc3NhZ2VGbGFncyA9IDApOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVz
dGluYXRpb25JRCwgdWludDY0X3QmIHN5bmNSZXF1ZXN0SUQpOwotICAgIGJvb2wgc2VuZE1lc3Nh
Z2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNlbmRG
bGFncyA9IDApOworICAgIGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VF
bmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyA9IDAsIGJvb2wgYWxyZWFkeVJlY29y
ZGVkTWVzc2FnZSA9IGZhbHNlKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+
IHNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZUVuY29kZXI+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2ln
bmVkIHN5bmNTZW5kRmxhZ3MgPSAwKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IHNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQodWludDY0X3Qgc3luY1JlcXVl
c3RJRCwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiwgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcyB0aW1lb3V0KTsKICAgICBib29sIHNlbmRTeW5jUmVwbHkoc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VFbmNvZGVyPik7CkBAIC0xOTMsMTMgKzE5NywxMyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB0ZXJtaW5hdGVTb29uKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7CiAjZW5kaWYKIAorICAg
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisKIHByaXZhdGU6CiAg
ICAgQ29ubmVjdGlvbihJZGVudGlmaWVyLCBib29sIGlzU2VydmVyLCBDbGllbnQmLCBXVEY6OlJ1
bkxvb3AmIGNsaWVudFJ1bkxvb3ApOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKElkZW50
aWZpZXIpOwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAgICAgCi0gICAgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KLSAgICAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZURlY29kZXI+IHdhaXRGb3JNZXNzYWdlKFN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRl
c3RpbmF0aW9uSUQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWduZWQg
d2FpdEZvck1lc3NhZ2VGbGFncyk7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VE
ZWNvZGVyPiB3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWduZWQgc3luY1NlbmRGbGFncyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAppbmRleCAyOWEw
NTRlZjAwMjkxMjhkNDEzYjIyZTc5NzI3YmU4MDExMGRlYWNmLi5mZjUyMWMzMTM0YmNlZDQ1MTc2
YTEzODlhMzAzMzM5ZWUwMjI4MzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9NZXNzYWdlRGVjb2Rlci5jcHAKQEAgLTUzLDcgKzUzLDEwIEBAIE1lc3NhZ2VEZWNvZGVyOjpN
ZXNzYWdlRGVjb2Rlcihjb25zdCBEYXRhUmVmZXJlbmNlJiBidWZmZXIsIFZlY3RvcjxBdHRhY2ht
ZW50PiBhCiAgICAgaWYgKCFkZWNvZGUobV9tZXNzYWdlTmFtZSkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGRlY29kZShtX2Rlc3RpbmF0aW9uSUQpOworICAgIGlmICghZGVjb2RlKG1fZGVzdGlu
YXRpb25JRCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRlY29kZShtX1VVSUQpOwogfQogCiBi
b29sIE1lc3NhZ2VEZWNvZGVyOjppc1N5bmNNZXNzYWdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmgKaW5kZXggZWFhOWI1ZTEwMTdiZjMyZDBm
YTMzMzU3ZjY3NTMwZWE1NzM0YzI4ZS4uM2ZhZmFkMTQ3MmQ1YmIxOTc0NGUxOWEwYjcxODE3MDJl
NjM0Nzg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VE
ZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVy
LmgKQEAgLTI3LDcgKzI3LDkgQEAKICNkZWZpbmUgTWVzc2FnZURlY29kZXJfaAogCiAjaW5jbHVk
ZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY29yZGVyLmgiCiAjaW5j
bHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8dXVpZC91dWlkLmg+CiAKIG5hbWVz
cGFjZSBJUEMgewogCkBAIC01MCw2ICs1MiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbXBv
cnRhbmNlQXNzZXJ0aW9uKHN0ZDo6dW5pcXVlX3B0cjxJbXBvcnRhbmNlQXNzZXJ0aW9uPik7CiAj
ZW5kaWYKIAorICAgIHZvaWQgc2V0TWVzc2FnZVByb2Nlc3NpbmdUb2tlbihzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuPiB0b2tlbikgeyBtX3By
b2Nlc3NpbmdUb2tlbiA9IFdURjo6bW92ZSh0b2tlbik7IH0KKworICAgIGNvbnN0IHV1aWRfdCYg
VVVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fVVVJRDsgfQorCiBwcml2YXRlOgogICAgIHVpbnQ4X3Qg
bV9tZXNzYWdlRmxhZ3M7CiAgICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2FnZVJlY2VpdmVyTmFt
ZTsKQEAgLTU3LDkgKzYzLDEzIEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX2Rlc3RpbmF0
aW9uSUQ7CiAKKyAgICB1dWlkX3QgbV9VVUlEOworCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW1wb3J0YW5jZUFzc2VydGlvbj4gbV9pbXBvcnRhbmNlQXNzZXJ0aW9uOwogI2VuZGlmCisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2Vu
PiBtX3Byb2Nlc3NpbmdUb2tlbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAKaW5kZXggZDJlNGVmZTlh
OWJhYzRlYzU5NjVmYjQ3MTU2YzY5NGRiY2QwNGJmZC4uYmY3YzM2NzdiODlkNTMxYTJmYWNiYjZm
NzNjYjJiZGE2NjIzMGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L01lc3NhZ2VFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVz
c2FnZUVuY29kZXIuY3BwCkBAIC0yOCwyNCArMjgsNTQgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUZsYWdzLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJl
Y29yZGVyLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCiAKIG5hbWVzcGFjZSBJUEMg
ewogCiBzdGF0aWMgdWludDhfdCBkZWZhdWx0TWVzc2FnZUZsYWdzID0gMDsKIAorTWVzc2FnZUVu
Y29kZXI6Ok1lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGNv
bnN0IHV1aWRfdCYgVVVJRCkKKyAgICA6IG1fbWVzc2FnZVJlY2VpdmVyTmFtZShtZXNzYWdlUmVj
ZWl2ZXJOYW1lKQorICAgICwgbV9tZXNzYWdlTmFtZShtZXNzYWdlTmFtZSkKKyAgICAsIG1fZGVz
dGluYXRpb25JRChkZXN0aW5hdGlvbklEKQoreworICAgIHV1aWRfY29weShtX1VVSUQsIFVVSUQp
OworICAgIGVuY29kZUhlYWRlcigpOworfQorCiBNZXNzYWdlRW5jb2Rlcjo6TWVzc2FnZUVuY29k
ZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKKyAgICA6IG1fbWVzc2FnZVJlY2Vp
dmVyTmFtZShtZXNzYWdlUmVjZWl2ZXJOYW1lKQorICAgICwgbV9tZXNzYWdlTmFtZShtZXNzYWdl
TmFtZSkKKyAgICAsIG1fZGVzdGluYXRpb25JRChkZXN0aW5hdGlvbklEKQoreworICAgIHV1aWRf
Z2VuZXJhdGUobV9VVUlEKTsKKyAgICBlbmNvZGVIZWFkZXIoKTsKK30KKworTWVzc2FnZUVuY29k
ZXI6On5NZXNzYWdlRW5jb2RlcigpCiB7Ci0gICAgQVNTRVJUKCFtZXNzYWdlUmVjZWl2ZXJOYW1l
LmlzRW1wdHkoKSk7Cit9CisKK3ZvaWQgTWVzc2FnZUVuY29kZXI6OmVuY29kZUhlYWRlcigpCit7
CisgICAgQVNTRVJUKCFtX21lc3NhZ2VSZWNlaXZlck5hbWUuaXNFbXB0eSgpKTsKIAogICAgICp0
aGlzIDw8IGRlZmF1bHRNZXNzYWdlRmxhZ3M7Ci0gICAgKnRoaXMgPDwgbWVzc2FnZVJlY2VpdmVy
TmFtZTsKLSAgICAqdGhpcyA8PCBtZXNzYWdlTmFtZTsKLSAgICAqdGhpcyA8PCBkZXN0aW5hdGlv
bklEOworICAgICp0aGlzIDw8IG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICAqdGhpcyA8PCBt
X21lc3NhZ2VOYW1lOworICAgICp0aGlzIDw8IG1fZGVzdGluYXRpb25JRDsKKyAgICAqdGhpcyA8
PCBtX1VVSUQ7CiB9CiAKLU1lc3NhZ2VFbmNvZGVyOjp+TWVzc2FnZUVuY29kZXIoKQorYm9vbCBN
ZXNzYWdlRW5jb2Rlcjo6aXNTeW5jTWVzc2FnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICpidWZm
ZXIoKSAmIFN5bmNNZXNzYWdlOworfQorCitib29sIE1lc3NhZ2VFbmNvZGVyOjpzaG91bGREaXNw
YXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0CiB7CisgICAgcmV0dXJu
ICpidWZmZXIoKSAmIERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OwogfQog
CiB2b2lkIE1lc3NhZ2VFbmNvZGVyOjpzZXRJc1N5bmNNZXNzYWdlKGJvb2wgaXNTeW5jTWVzc2Fn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rl
ci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmgKaW5kZXgg
NTI0ZTVlMWQ0M2M3MDMwMTg3MTk5YzE2ZjRkOTYxZjEwYWQzODU0Yy4uODcyZjI2NGUyNzAyNGI1
MDM2NGYwZjVjZjUxNWRlNTQ0YjVjMTFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VFbmNvZGVyLmgKQEAgLTI3LDYgKzI3LDggQEAKICNkZWZpbmUgTWVzc2FnZUVu
Y29kZXJfaAogCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiU3RyaW5n
UmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8dXVpZC91dWlkLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC0zNiwxMCArMzgsMjggQEAgY2xhc3MgU3RyaW5n
UmVmZXJlbmNlOwogY2xhc3MgTWVzc2FnZUVuY29kZXIgOiBwdWJsaWMgQXJndW1lbnRFbmNvZGVy
IHsKIHB1YmxpYzoKICAgICBNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5h
dGlvbklEKTsKKyAgICBNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELCBjb25zdCB1dWlkX3QmKTsKICAgICB2aXJ0dWFsIH5NZXNzYWdlRW5jb2RlcigpOwogCisg
ICAgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKSBjb25zdCB7IHJldHVybiBt
X21lc3NhZ2VSZWNlaXZlck5hbWU7IH0KKyAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUo
KSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VOYW1lOyB9CisgICAgdWludDY0X3QgZGVzdGluYXRp
b25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25JRDsgfQorCiAgICAgdm9pZCBzZXRJ
c1N5bmNNZXNzYWdlKGJvb2wpOworICAgIGJvb2wgaXNTeW5jTWVzc2FnZSgpIGNvbnN0OworCiAg
ICAgdm9pZCBzZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShi
b29sKTsKKyAgICBib29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KCkgY29uc3Q7CisKKyAgICBjb25zdCB1dWlkX3QmIFVVSUQoKSBjb25zdCB7IHJldHVybiBt
X1VVSUQ7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGVuY29kZUhlYWRlcigpOworCisgICAgU3Ry
aW5nUmVmZXJlbmNlIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICBTdHJpbmdSZWZlcmVuY2Ug
bV9tZXNzYWdlTmFtZTsKKyAgICB1aW50NjRfdCBtX2Rlc3RpbmF0aW9uSUQ7CisgICAgdXVpZF90
IG1fVVVJRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvTWVzc2FnZVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWJmMTYyZTNhNmVk
OWM5MWM2NGZiODk0YTEwNDVmOTE3Nzk2NmZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHAKQEAgLTAsMCArMSwxMTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY29y
ZGVyLmgiCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZURlY29k
ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlRW5jb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNv
cmRlclByb2Jlcy5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3BhY2Ug
SVBDIHsKKworYm9vbCBNZXNzYWdlUmVjb3JkZXI6OmlzRW5hYmxlZCgpCit7CisgICAgcmV0dXJu
IFdFQktJVE1FU1NBR0VSRUNPUkRFUl9NRVNTQUdFX1JFQ0VJVkVEX0VOQUJMRUQoKSB8fCBXRUJL
SVRNRVNTQUdFUkVDT1JERVJfTUVTU0FHRV9TRU5UX0VOQUJMRUQoKTsKK30KKworc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gTWVzc2FnZVJl
Y29yZGVyOjpyZWNvcmRPdXRnb2luZ01lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVz
c2FnZUVuY29kZXIqIGVuY29kZXIpCit7CisgICAgaWYgKCFpc0VuYWJsZWQoKSB8fCAhY29ubmVj
dGlvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFdlYktpdE1l
c3NhZ2VSZWNvcmQgcmVjb3JkOworICAgIHJlY29yZC5zb3VyY2VQcm9jZXNzVHlwZSA9IHN0YXRp
Y19jYXN0PHVpbnQ2NF90Pihjb25uZWN0aW9uLT5jbGllbnQoKS0+bG9jYWxQcm9jZXNzVHlwZSgp
KTsKKyAgICByZWNvcmQuZGVzdGluYXRpb25Qcm9jZXNzVHlwZSA9IHN0YXRpY19jYXN0PHVpbnQ2
NF90Pihjb25uZWN0aW9uLT5jbGllbnQoKS0+cmVtb3RlUHJvY2Vzc1R5cGUoKSk7CisgICAgcmVj
b3JkLmRlc3RpbmF0aW9uSUQgPSBlbmNvZGVyLT5kZXN0aW5hdGlvbklEKCk7CisgICAgcmVjb3Jk
LmlzU3luY01lc3NhZ2UgPSBlbmNvZGVyLT5pc1N5bmNNZXNzYWdlKCk7CisgICAgcmVjb3JkLnNo
b3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5ID0gZW5jb2Rlci0+c2hv
dWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKTsKKyAgICByZWNvcmQu
c291cmNlUHJvY2Vzc0lEID0gZ2V0cGlkKCk7CisgICAgcmVjb3JkLmRlc3RpbmF0aW9uUHJvY2Vz
c0lEID0gY29ubmVjdGlvbi0+cmVtb3RlUHJvY2Vzc0lEKCk7CisgICAgcmVjb3JkLmlzSW5jb21p
bmcgPSBmYWxzZTsKKworICAgIHJlY29yZC5tZXNzYWdlUmVjZWl2ZXJOYW1lID0gTWFsbG9jUHRy
PGNoYXI+OjptYWxsb2Moc2l6ZW9mKGNoYXIpICogKGVuY29kZXItPm1lc3NhZ2VSZWNlaXZlck5h
bWUoKS5zaXplKCkgKyAxKSk7CisgICAgc3RybmNweShyZWNvcmQubWVzc2FnZVJlY2VpdmVyTmFt
ZS5nZXQoKSwgZW5jb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLmRhdGEoKSwgZW5jb2Rlci0+
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLnNpemUoKSk7CisgICAgcmVjb3JkLm1lc3NhZ2VSZWNlaXZl
ck5hbWUuZ2V0KClbZW5jb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLnNpemUoKV0gPSAwOwor
CisgICAgcmVjb3JkLm1lc3NhZ2VOYW1lID0gTWFsbG9jUHRyPGNoYXI+OjptYWxsb2Moc2l6ZW9m
KGNoYXIpICogKGVuY29kZXItPm1lc3NhZ2VOYW1lKCkuc2l6ZSgpICsgMSkpOworICAgIHN0cm5j
cHkocmVjb3JkLm1lc3NhZ2VOYW1lLmdldCgpLCBlbmNvZGVyLT5tZXNzYWdlTmFtZSgpLmRhdGEo
KSwgZW5jb2Rlci0+bWVzc2FnZU5hbWUoKS5zaXplKCkpOworICAgIHJlY29yZC5tZXNzYWdlTmFt
ZS5nZXQoKVtlbmNvZGVyLT5tZXNzYWdlTmFtZSgpLnNpemUoKV0gPSAwOworCisgICAgdXVpZF9j
b3B5KHJlY29yZC5VVUlELCBlbmNvZGVyLT5VVUlEKCkpOworCisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4oV1RGOjptb3ZlKHJlY29yZCkpOworfQor
Cit2b2lkIE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkSW5jb21pbmdNZXNzYWdlKENvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyKiBkZWNvZGVyKQoreworICAgIGlmICghaXNFbmFi
bGVkKCkgfHwgIWNvbm5lY3Rpb24tPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
V2ViS2l0TWVzc2FnZVJlY29yZCByZWNvcmQ7CisgICAgcmVjb3JkLnNvdXJjZVByb2Nlc3NUeXBl
ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGNvbm5lY3Rpb24tPmNsaWVudCgpLT5yZW1vdGVQcm9j
ZXNzVHlwZSgpKTsKKyAgICByZWNvcmQuZGVzdGluYXRpb25Qcm9jZXNzVHlwZSA9IHN0YXRpY19j
YXN0PHVpbnQ2NF90Pihjb25uZWN0aW9uLT5jbGllbnQoKS0+bG9jYWxQcm9jZXNzVHlwZSgpKTsK
KyAgICByZWNvcmQuZGVzdGluYXRpb25JRCA9IGRlY29kZXItPmRlc3RpbmF0aW9uSUQoKTsKKyAg
ICByZWNvcmQuaXNTeW5jTWVzc2FnZSA9IGRlY29kZXItPmlzU3luY01lc3NhZ2UoKTsKKyAgICBy
ZWNvcmQuc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgPSBkZWNv
ZGVyLT5zaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpOworICAg
IHJlY29yZC5zb3VyY2VQcm9jZXNzSUQgPSBjb25uZWN0aW9uLT5yZW1vdGVQcm9jZXNzSUQoKTsK
KyAgICByZWNvcmQuZGVzdGluYXRpb25Qcm9jZXNzSUQgPSBnZXRwaWQoKTsKKyAgICByZWNvcmQu
aXNJbmNvbWluZyA9IHRydWU7CisKKyAgICByZWNvcmQubWVzc2FnZVJlY2VpdmVyTmFtZSA9IE1h
bGxvY1B0cjxjaGFyPjo6bWFsbG9jKHNpemVvZihjaGFyKSAqIChkZWNvZGVyLT5tZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkuc2l6ZSgpICsgMSkpOworICAgIHN0cm5jcHkocmVjb3JkLm1lc3NhZ2VSZWNl
aXZlck5hbWUuZ2V0KCksIGRlY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5kYXRhKCksIGRl
Y29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5zaXplKCkpOworICAgIHJlY29yZC5tZXNzYWdl
UmVjZWl2ZXJOYW1lLmdldCgpW2RlY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKS5zaXplKCld
ID0gMDsKKworICAgIHJlY29yZC5tZXNzYWdlTmFtZSA9IE1hbGxvY1B0cjxjaGFyPjo6bWFsbG9j
KHNpemVvZihjaGFyKSAqIChkZWNvZGVyLT5tZXNzYWdlTmFtZSgpLnNpemUoKSArIDEpKTsKKyAg
ICBzdHJuY3B5KHJlY29yZC5tZXNzYWdlTmFtZS5nZXQoKSwgZGVjb2Rlci0+bWVzc2FnZU5hbWUo
KS5kYXRhKCksIGRlY29kZXItPm1lc3NhZ2VOYW1lKCkuc2l6ZSgpKTsKKyAgICByZWNvcmQubWVz
c2FnZU5hbWUuZ2V0KClbZGVjb2Rlci0+bWVzc2FnZU5hbWUoKS5zaXplKCldID0gMDsKKworICAg
IHV1aWRfY29weShyZWNvcmQuVVVJRCwgZGVjb2Rlci0+VVVJRCgpKTsKKworICAgIGRlY29kZXIt
PnNldE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4oc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdlUHJvY2Vz
c2luZ1Rva2VuPihXVEY6Om1vdmUocmVjb3JkKSkpOworfQorCisjcHJhZ21hIG1hcmsgTWVzc2Fn
ZVByb2Nlc3NpbmdUb2tlbgorCitNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9r
ZW46Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4oV2ViS2l0TWVzc2FnZVJlY29yZCByZWNvcmQpCisg
ICAgOiBtX3JlY29yZChXVEY6Om1vdmUocmVjb3JkKSkKK3sKKyAgICBtX3JlY29yZC5zdGFydFRp
bWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKK30KKworTWVzc2FnZVJlY29yZGVy
OjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuOjp+TWVzc2FnZVByb2Nlc3NpbmdUb2tlbigpCit7Cisg
ICAgbV9yZWNvcmQuZW5kVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworCisg
ICAgaWYgKG1fcmVjb3JkLmlzSW5jb21pbmcpCisgICAgICAgIFdFQktJVE1FU1NBR0VSRUNPUkRF
Ul9NRVNTQUdFX1JFQ0VJVkVEKCZtX3JlY29yZCk7CisgICAgZWxzZQorICAgICAgICBXRUJLSVRN
RVNTQUdFUkVDT1JERVJfTUVTU0FHRV9TRU5UKCZtX3JlY29yZCk7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDgw
ODBiNTM2M2MxM2ZhM2VjMDQ3ZDA5ODY2OGE3NTFmZGM1Y2RiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5oCkBAIC0wLDAgKzEs
ODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lc3NhZ2VSZWNvcmRlcl9oCisjZGVmaW5lIE1l
c3NhZ2VSZWNvcmRlcl9oCisKKyNpbmNsdWRlICJQcm9jZXNzVHlwZS5oIgorI2luY2x1ZGUgPHV1
aWQvdXVpZC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL01hbGxv
Y1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworc3RydWN0
IFdlYktpdE1lc3NhZ2VSZWNvcmQgeworICAgIHVpbnQ4X3Qgc291cmNlUHJvY2Vzc1R5cGU7IC8v
IElQQzo6UHJvY2Vzc1R5cGUKKyAgICBwaWRfdCBzb3VyY2VQcm9jZXNzSUQ7CisKKyAgICB1aW50
OF90IGRlc3RpbmF0aW9uUHJvY2Vzc1R5cGU7IC8vIElQQzo6UHJvY2Vzc1R5cGUKKyAgICBwaWRf
dCBkZXN0aW5hdGlvblByb2Nlc3NJRDsKKworICAgIE1hbGxvY1B0cjxjaGFyPiBtZXNzYWdlUmVj
ZWl2ZXJOYW1lOworICAgIE1hbGxvY1B0cjxjaGFyPiBtZXNzYWdlTmFtZTsKKyAgICB1aW50NjRf
dCBkZXN0aW5hdGlvbklEOworCisgICAgdXVpZF90IFVVSUQ7CisKKyAgICBkb3VibGUgc3RhcnRU
aW1lOworICAgIGRvdWJsZSBlbmRUaW1lOworCisgICAgYm9vbCBpc1N5bmNNZXNzYWdlOworICAg
IGJvb2wgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7CisgICAg
Ym9vbCBpc0luY29taW5nOworfTsKKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIENvbm5lY3Rp
b247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VFbmNvZGVyOworCitjbGFz
cyBNZXNzYWdlUmVjb3JkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBib29sIGlzRW5hYmxlZCgp
OworCisgICAgY2xhc3MgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbiB7CisgICAgICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4pOworICAgIHB1YmxpYzoKKyAgICAg
ICAgZXhwbGljaXQgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbihXZWJLaXRNZXNzYWdlUmVjb3JkKTsK
KyAgICAgICAgfk1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4oKTsKKworICAgIHByaXZhdGU6CisgICAg
ICAgIFdlYktpdE1lc3NhZ2VSZWNvcmQgbV9yZWNvcmQ7CisgICAgfTsKKworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuPiBy
ZWNvcmRPdXRnb2luZ01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRW5jb2Rl
ciopOworICAgIHN0YXRpYyB2b2lkIHJlY29yZEluY29taW5nTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVz
c2FnZVJlY29yZGVyKCkgeyB9Cit9OworCit9OworCisjZW5kaWYgLy8gTWVzc2FnZVJlY29yZGVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3Jk
ZXJQcm9iZXMuZCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQ
cm9iZXMuZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNTdlMjkzOWQ3YjA1MjViYmM3YTYwZWRmM2VhODIzOTc2ZTVh
NmNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3Nh
Z2VSZWNvcmRlclByb2Jlcy5kCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitzdHJ1Y3Qg
V2ViS2l0TWVzc2FnZVJlY29yZDsKKworcHJvdmlkZXIgV2ViS2l0TWVzc2FnZVJlY29yZGVyIHsK
KyAgICBwcm9iZSBtZXNzYWdlX3NlbnQoc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQqKTsKKyAg
ICBwcm9iZSBtZXNzYWdlX3JlY2VpdmVkKHN0cnVjdCBXZWJLaXRNZXNzYWdlUmVjb3JkKik7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL1Byb2Nlc3NUeXBlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvUHJvY2Vzc1R5cGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MzdjMjY3YjY4MGZmMGM4NjAzNTA1NTZhMTBiY2JkMjc2NDc3MDA4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL1Byb2Nlc3NUeXBlLmgKQEAgLTAsMCArMSw0
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJvY2Vzc1R5cGVfaAorI2RlZmluZSBQcm9jZXNz
VHlwZV9oCisKK25hbWVzcGFjZSBJUEMgeworCitlbnVtIGNsYXNzIFByb2Nlc3NUeXBlIDogdWlu
dDhfdCB7CisgICAgVUksCisgICAgV2ViLAorICAgIE5ldHdvcmssCisgICAgRGF0YWJhc2UsCisg
ICAgUGx1Z2luCit9OworCit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQppbmRleCA1N2M5ZjIwZDhiYzE1Mjc0Mzc5MTQw
NDlmOWU5MDE3ZDU3NmI5OWMyLi5iODMxNjhmOWE5MjEwYTkzZTgxOTYyNzJkZTViODY4ZDg4OGEy
NzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rp
b25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9u
TWFjLm1tCkBAIC02MDksNiArNjA5LDE0IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5
bmNSZXBseSh1bnNpZ25lZCBmbGFncykKICAgICBpZiAoKGZsYWdzICYgSW5mb3JtUGxhdGZvcm1Q
cm9jZXNzV2lsbFN1c3BlbmQpICYmIFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCiAgICAgICAgIF9BWFVJRWxlbWVudE5vdGlmeVByb2Nlc3NTdXNwZW5kU3Rh
dHVzKEFYU3VzcGVuZFN0YXR1c1J1bm5pbmcpOwogI2VuZGlmCi19ICAgIAorfQorCitwaWRfdCBD
b25uZWN0aW9uOjpyZW1vdGVQcm9jZXNzSUQoKSBjb25zdAoreworICAgIGlmICghbV94cGNDb25u
ZWN0aW9uKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiB4cGNfY29ubmVjdGlvbl9n
ZXRfcGlkKG1feHBjQ29ubmVjdGlvbi5nZXQoKSk7Cit9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBJ
UEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKaW5kZXgg
M2RmMmQ4MjUzNjlkMGU4NGYxYTdjMDEzYzBiYWQxYTJhYjE4MDdkNy4uMzU2OGQwOWFlZjhmOTEx
NGMxZjFiN2ZiMmY2NzI3OTQ3YzE4ZjZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Qcm9jZXNzLmgKQEAgLTkxLDYgKzkxLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdl
RGVjb2RlciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0
dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlBsdWdpbjsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNz
VHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5
cGU6OlVJOyB9CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkUmVjZWl2
ZVBsdWdpblByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaAppbmRleCA2ZDU1MGVlZmY3Mjc4ZWJjYWI5ZGUyZGExZDZhZmI4ODgwNDY3ZTYy
Li4xMjIxZjk1OWQyM2I3YWNiNTE1YmE0N2YwYzk0MmZlYTZiMTAyNWY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02
OSw2ICs2OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBl
KCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6UGx1Z2luOyB9CisgICAgdmly
dHVhbCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1
cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgog
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTdi
OTgxMDI0MTQwZGM4YjQzY2M4NGJmNGYzOWViYmZmNTNmZTYxMy4uYmU2NmFkZWRlZTI3N2RhNDU3
OWNjOGVlNzJiYjgyY2Q5YThiNTZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaApAQCAtNTQsNiArNTQs
OCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nl
c3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6VUk7IH0KKyAgICB2
aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJl
dHVybiBJUEM6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZTsgfQogCiAgICAgdm9pZCBkaWRSZWNlaXZl
RGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2Fn
ZURlY29kZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDM1ZjI2NGFkNTQyYzcxMGFhYzhiZDI3NTY5
YmQ2NmQ4YWI2MTExNTMuLmNkOTk2ZDFiNmRkY2FlNzdkMTZmZThlOTliMTE5ZDQzOWZiN2IwMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKQEAgLTgzLDYgKzgzLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NU
eXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBl
OjpVSTsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7IH0KIAogICAgIC8v
IE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5o
CmluZGV4IGQ2ZjcwMGE3M2U0ZWNhNjJmMzZkNGYxMWE4ODBiZmU4OWRlMzM4ZWEuLjQ1ZmVlZGQ4
MjcxNDIyYTY4MjI2MzkwOTZjOWExNjZkNjU2Zjc1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC0xMjAsNiAr
MTIwLDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0
dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBl
IHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6
UGx1Z2luOyB9CiAKICAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAogICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCAxYjY1YjI4N2U5ZGVhNDNmOGQzNWE0OThiYmNiMGM1YWUwM2YxMGVi
Li41NzYwZGRkMmNmYmUyODJiODNkZGIyZDhlMmU0NjhhY2YxOTFiNGNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xODQsNiArMTg0LDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJl
dHVybiBJUEM6OlByb2Nlc3NUeXBlOjpVSTsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlw
ZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6
OldlYjsgfQogCiAgICAgLy8gUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50CiAgICAgdm9pZCBk
aWRCZWNvbWVVbnJlc3BvbnNpdmUoUmVzcG9uc2l2ZW5lc3NUaW1lciopIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDAxMjM2Zjg0ZmExMTZhMTI5Y2VhOWI2NWM0NzIwNTM3YzAwNTZkZmUuLjZjNGNlZjYyYWViMjdh
ZjU4ODc3N2QwMzhlNWRjYTY2NWYwN2U3ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU5NSw2ICs1OTUsOSBAQAogCQkyRDQy
OUJGRDE3MjFFMkM3MDBFQzY4MUYgLyogUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENDI5QkZCMTcyMUUyQkEw
MEVDNjgxRiAvKiBQREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tICovOyB9OwogCQkyRDQ3QjU2QzE4
MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDQ3QjU2QTE4MTA3MTRFMDAzQTNB
RUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gKi87IH07CiAJCTJENDdCNTZEMTgxMDcx
NEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0N0I1NkIxODEwNzE0RTAwM0EzQUVFIC8q
IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggKi87IH07CisJCTJENUFCNjJFMUE2OUQ2RkIwMDE0
QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJENUFCNjJCMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3Jk
ZXIuaCAqLzsgfTsKKwkJMkQ1QUI2MkYxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVB
QjYyQzFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmNwcCAqLzsgfTsKKwkJMkQ1
QUI2MzAxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlclByb2Jlcy5kIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QUI2MkQxQTY5RDZGQjAw
MTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlclByb2Jlcy5kICovOyB9OwogCQkyRDVDOUQwNTE5Qzgx
RDhGMDBCM0M1QzEgLyogV2ViUGFnZU92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QzlEMDMxOUM4MUQ4RjAwQjNDNUMxIC8qIFdlYlBh
Z2VPdmVybGF5LmNwcCAqLzsgfTsKIAkJMkQ1QzlEMDYxOUM4MUQ4RjAwQjNDNUMxIC8qIFdlYlBh
Z2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDVDOUQwNDE5QzgxRDhGMDBCM0M1QzEgLyogV2ViUGFnZU92ZXJsYXkuaCAqLzsgfTsKIAkJ
MkQ2QUI1NDExOTJCMUM0QTAwM0E5RkQxIC8qIFdLUERGUGFnZU51bWJlckluZGljYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ2QUI1M0YxOTJC
MUM0QTAwM0E5RkQxIC8qIFdLUERGUGFnZU51bWJlckluZGljYXRvci5oICovOyB9OwpAQCAtNjA1
LDYgKzYwOCw3IEBACiAJCTJENkNEMTFBMTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RT
dG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
NkNEMTE4MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5tbSAqLzsgfTsKIAkJ
MkQ3QUFGRDMxOEM4NjQwNjAwQTdBQ0Q0IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92aWRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3QUFGRDIxOEM4
NjQwNjAwQTdBQ0Q0IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92aWRlci5oICovOyB9OwogCQkyRDdB
QUZENjE4Qzk1NkFGMDBBN0FDRDQgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDdBQUZENTE4
Qzk1NkFGMDBBN0FDRDQgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkludGVybmFsLmggKi87IH07
CisJCTJEN0YxMzEwMUE3MDJGQkEwMDlBNkZCRCAvKiBQcm9jZXNzVHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3RjEzMEYxQTcwMkZCQTAwOUE2
RkJEIC8qIFByb2Nlc3NUeXBlLmggKi87IH07CiAJCTJEODE5QjlFMTg2MjdFRTkwMDFGMDNEMSAv
KiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODE5Qjk5MTg2Mjc1QjMwMDFGMDNEMSAvKiBWaWV3
R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcCAqLzsgfTsKIAkJMkQ4MTlCQTExODYyODAwRTAw
MUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4MTlCOUYx
ODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQkyRDgxOUJBMjE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1
cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDgxOUJBMDE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1
cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VzLmggKi87IH07CkBAIC0yNjc1LDYgKzI2NzksOSBA
QAogCQkyRDQyOUJGQjE3MjFFMkJBMDBFQzY4MUYgLyogUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFBERlBsdWdpblBhc3N3
b3JkRmllbGQubW07IHBhdGggPSBQREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ0N0I1NkExODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJENDdCNTZCMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDVBQjYyQjFBNjlENkZCMDAx
NEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lc3NhZ2VSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDVB
QjYyQzFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lc3NhZ2VSZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJENUFCNjJEMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVj
b3JkZXJQcm9iZXMuZCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuZHRyYWNlOyBwYXRoID0gTWVzc2Fn
ZVJlY29yZGVyUHJvYmVzLmQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENUM5RDAz
MTlDODFEOEYwMEIzQzVDMSAvKiBXZWJQYWdlT3ZlcmxheS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQYWdlT3ZlcmxheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJENUM5RDA0MTlDODFEOEYwMEIzQzVDMSAvKiBXZWJQYWdlT3ZlcmxheS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlT3ZlcmxheS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDZBQjUzRjE5MkIxQzRBMDAzQTlGRDEgLyogV0tQ
REZQYWdlTnVtYmVySW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdLUERGUGFnZU51bWJlckluZGljYXRvci5oOyBwYXRoID0gaW9zL1dLUERGUGFnZU51bWJlcklu
ZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY4Nyw2ICsyNjk0LDcg
QEAKIAkJMkQ3MEFCMTQxOEExRDU3QzAwMDI2RDZFIC8qIEluZm8taU9TLnBsaXN0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7
IHBhdGggPSAiSW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RDdBQUZEMjE4Qzg2NDA2MDBBN0FDRDQgLyogV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViVmlld0NvbnRlbnRQcm92aWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDdBQUZENTE4Qzk1NkFGMDBBN0FDRDQg
LyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLV2ViVmlld0NvbmZpZ3VyYXRpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRDdGMTMwRjFBNzAyRkJBMDA5QTZGQkQgLyogUHJvY2Vzc1R5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc1R5cGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4MTlCOTkxODYyNzVCMzAwMUYwM0QxIC8qIFZp
ZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEODE5QjlBMTg2Mjc1QjMwMDFGMDNEMSAvKiBWaWV3R2VzdHVy
ZUdlb21ldHJ5Q29sbGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZp
ZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQ4MTlCOUIxODYyNzVCMzAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0
b3IubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlld0dlc3R1cmVHZW9tZXRy
eUNvbGxlY3Rvci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4
MjIsOCArNDgzMCwxMiBAQAogCQkJCTFBM0VFRDExMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdl
UmVjZWl2ZXIuaCAqLywKIAkJCQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJl
Y2VpdmVyTWFwLmNwcCAqLywKIAkJCQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2Fn
ZVJlY2VpdmVyTWFwLmggKi8sCisJCQkJMkQ1QUI2MkIxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3Nh
Z2VSZWNvcmRlci5oICovLAorCQkJCTJENUFCNjJDMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdl
UmVjb3JkZXIuY3BwICovLAorCQkJCTJENUFCNjJEMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdl
UmVjb3JkZXJQcm9iZXMuZCAqLywKIAkJCQkxQUFCMDM3NzE4NUE3QzZBMDBFREY1MDEgLyogTWVz
c2FnZVNlbmRlci5jcHAgKi8sCiAJCQkJMUFBQjAzNzgxODVBN0M2QTAwRURGNTAxIC8qIE1lc3Nh
Z2VTZW5kZXIuaCAqLywKKwkJCQkyRDdGMTMwRjFBNzAyRkJBMDA5QTZGQkQgLyogUHJvY2Vzc1R5
cGUuaCAqLywKIAkJCQkxQUUwMEQ2OTE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNl
LmNwcCAqLywKIAkJCQkxQUUwMEQ2QTE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNl
LmggKi8sCiAJCQkpOwpAQCAtNzM0Myw2ICs3MzU1LDcgQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNC
dWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0g
KAorCQkJCTJEN0YxMzEwMUE3MDJGQkEwMDlBNkZCRCAvKiBQcm9jZXNzVHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzdBNUUwMTQxOEJCRjkzRjAwMEEwODFFIC8qIF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzlBODczNjE4QkJGQTQzMDA1ODhBRjIgLyog
X1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFB
NEZFNUExOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLywKQEAg
LTc2MDUsNiArNzYxOCw3IEBACiAJCQkJMUFBNTZGMjkxMUU5MkJDODAwNjFCODgyIC8qIFBsdWdp
bkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEVGNENCMTI1MjQwMzcwMEY3MDY3
RiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEVGOTZG
MTI1MkFGNkIwMEY3MDY3RiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkQ1QUI2MkUxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUExNzk3ODAxMzdFRTgyQzAwRjk3RDQ1IC8qIFBsdWdp
bkNyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzRjhDOTExNzNBRjUy
RDAwN0I3RjM5IC8qIFBsdWdpbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5
RDJCNDFBNkIwNjhDMDAzQTVGREUgLyogQVBJVXNlckNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtOTM5Niw2ICs5NDEwLDcgQEAKIAkJCQkxQUZERTY1OTE5NTRBNDJCMDBDNDhGRkEg
LyogU2Vzc2lvblN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMDAyRDQ4MTk2QjM0NUQw
MEI5QUQ0NCAvKiBTZXNzaW9uU3RhdGVDb2RpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTcy
ODQ0ODE5NTlGODA0MDAwN0JDRTUgLyogU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkyRDVBQjYzMDFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVy
UHJvYmVzLmQgaW4gU291cmNlcyAqLywKIAkJCQk3NTNFM0UwRDE4ODczOTg1MDAxODg0OTYgLyog
U2Vzc2lvblRyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2NDIwRTQxMkRDRTJGRjAw
Q0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMDFBMjYw
MTEyNjYyRjIxMDBDOUVENTUgLyogU2hhcmVhYmxlQml0bWFwQ0cuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC05NTA1LDYgKzk1MjAsNyBAQAogCQkJCUJDMTExQjVFMTEyRjYyOTgwMDMzN0JBQiAvKiBX
ZWJFdmVudEZhY3RvcnkubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTNERDFGRDEyNUU1OUYzMDA0
NTE1RTYgLyogV2ViRmluZENsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0U0Njk1MzEy
MTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQky
RDVBQjYyRjFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDRTQ2OTU1MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxp
c3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFBREQxMTJGNUI5MzAwMzM3
QkFCIC8qIFdlYkZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTQ2OTc5MTIxNEYyQjQw
MDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IGRmMjMxNjY5YTNhOTkwMTFm
OWY5NDQ0YTUwOGVkOGFmZjZhYmU4YjMuLmVmNWJmYzkzMzE1YjM3Y2Y5MmY2Y2YyMThiYjc0MDM5
YWRmMWJiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01
OCw2ICs1OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIGxv
Y2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpXZWI7
IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVy
cmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZTsgfQogCiAgICAgLy8gSVBD
OjpNZXNzYWdlU2VuZGVyCiAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMTYwMjcwNWUxNzZlZGY3NGQwMTVmZjZlMzQ2Mjli
YzMyNjQwOWJmYS4uODAzZTgwMTBkOTVjNjZlY2YxMDcxNzk1ZDdhN2VkOWQ5MjQ1NzkxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjgsNiArNjgsOCBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElQQzo6
UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJv
Y2Vzc1R5cGU6OldlYjsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9j
ZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7IH0K
IAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMTVhY2VkNmE4MTM4OTllNzNkNDIxNDhiYzgw
ZjM0ZDU3ZjBmNjIwMi4uNDM2MTAzMDA2NTY4OWEyZjYzMDk2ZWNiNTRiNTkzMzg1NzI1NGZjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTY4LDYgKzY4LDggQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJUEM6
OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlBy
b2Nlc3NUeXBlOjpXZWI7IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJv
Y2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpQbHVnaW47IH0K
IAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IuaAppbmRleCA4ZGYyYjI3OTllNzU3MTM1ZDc4NjhmNjEwMDU2NGRmYzE1Yzc5ZjNkLi5jYWZk
MDBhM2ZiZDFiZDM5NjM2NGJlNmZhNmY3OTJmYzY5OTc4YTE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC01Myw2ICs1Myw4IEBA
IHB1YmxpYzoKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGUgeyBjbG9zZSgpOyB9CiAgICAgdm9pZCBkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UsIElQQzo6U3RyaW5nUmVmZXJlbmNlKSBvdmVycmlkZSB7IGNsb3NlKCk7IH0KKyAgICB2aXJ0
dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJu
IElQQzo6UHJvY2Vzc1R5cGU6OldlYjsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBy
ZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJ
OyB9CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViSW5zcGVjdG9yIG1lc3NhZ2VzCiAgICAgdm9pZCBj
b25uZWN0aW9uRXN0YWJsaXNoZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmgKaW5kZXggOGJlZjE3NzJmMzIyZjJiOTBkOTQwYjY3
M2ZiMmM5MTBhYzVlMmUzOC4uZjgzNWZjYWY4NzM5MTNjOGE5YzllOGRjYTFjNjhkZTMwNmVlY2Qx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3RvclVJLmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogICAgIC8vIElQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZSB7
IGNsb3NlV2luZG93KCk7IH0KICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Up
IG92ZXJyaWRlIHsgY2xvc2VXaW5kb3coKTsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlw
ZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6
V2ViOyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkg
b3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAKICAgICAvLyBDYWxs
ZWQgYnkgV2ViSW5zcGVjdG9yVUkgbWVzc2FnZXMKICAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rp
b24oSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBpbnNwZWN0
ZWRQYWdlSWRlbnRpZmllciwgYm9vbCB1bmRlclRlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAppbmRleCBmMmU3MjFmNDY4YjE1ZWExZDY0YWExYmUzNDA0NDViNzFjMzc3
NjIzLi5kZjk0ZWU3NGQ5M2E4NmViNDZjM2QwNjM3MGJmYWQ0NDE3Nzc2M2IzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMjkwLDYgKzI5MCw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29k
ZXI+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4g
SVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIHJl
bW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6VUk7
IH0KIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJQcm9jZXNzTWVzc2FnZVJl
Y2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzM2MxNWM0ODIyMGNlOWU0MTA1YWQzN2U2MzRl
Yzk1M2M5YmViNWNjLi4xMDgxMjE0ZDAyYjEyMzBjZTljNTk0NjQ0OWNmMzg3MjBiZjY0NTYyIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTUtMDEtMjggIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYktpdE1lc3NhZ2VSZWNvcmRlciBEVHJhY2UgcHJv
dmlkZXIsIGV4cG9zaW5nIElQQyBkZXRhaWxzIHRvIERUcmFjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNjczCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2R0cmFjZS90cmFjZS13ZWJr
aXQyLW1lc3NhZ2VzLmQ6IEFkZGVkLgorICAgICAgICBBZGQgYSBEVHJhY2Ugc2NyaXB0IHRoYXQg
b3V0cHV0cyBhIHNtYWxsIGJsb2Igb2YgSlNPTiBwZXIgbWVzc2FnZS4KKwogMjAxNS0wMS0yNyAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJ0aWFsbHkg
cmV2ZXJ0IHIxNzg4MDIuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2R0cmFjZS90cmFjZS13
ZWJraXQyLW1lc3NhZ2VzLmQgYi9Ub29scy9TY3JpcHRzL2R0cmFjZS90cmFjZS13ZWJraXQyLW1l
c3NhZ2VzLmQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU4OTExZDIyZmNiOWQ4ZjBlZDVjNmMxY2U2M2M5Zjk1N2Y3
MGZiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvZHRyYWNlL3RyYWNlLXdlYmtp
dDItbWVzc2FnZXMuZApAQCAtMCwwICsxLDk2IEBACisjIS91c3Ivc2Jpbi9kdHJhY2UgLXFacwor
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQgeworICAgIHVpbnQ4X3Qg
c291cmNlUHJvY2Vzc1R5cGU7CisgICAgcGlkX3Qgc291cmNlUHJvY2Vzc0lEOworCisgICAgdWlu
dDhfdCBkZXN0aW5hdGlvblByb2Nlc3NUeXBlOworICAgIHBpZF90IGRlc3RpbmF0aW9uUHJvY2Vz
c0lEOworCisgICAgY2hhciogbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICBjaGFyKiBtZXNzYWdl
TmFtZTsKKyAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEOworCisgICAgY2hhciBVVUlEWzE2XTsK
KworICAgIGRvdWJsZSBzdGFydFRpbWU7CisgICAgZG91YmxlIGVuZFRpbWU7CisKKyAgICBib29s
IGlzU3luY01lc3NhZ2U7CisgICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseTsKKyAgICBib29sIGlzSW5jb21pbmc7Cit9OworCitXZWJLaXRNZXNzYWdl
UmVjb3JkZXIqOjo6bWVzc2FnZV8qCit7CisgICAgdGhpcy0+cmVjb3JkID0gKHN0cnVjdCBXZWJL
aXRNZXNzYWdlUmVjb3JkKiljb3B5aW4oYXJnMCwgc2l6ZW9mKHN0cnVjdCBXZWJLaXRNZXNzYWdl
UmVjb3JkKSk7CisgICAgcHJpbnRmKCJ7Iik7CisKKyAgICBwcmludGYoIlwic291cmNlUHJvY2Vz
c1R5cGVcIjogJWQsICIsIHRoaXMtPnJlY29yZC0+c291cmNlUHJvY2Vzc1R5cGUpOworICAgIHBy
aW50ZigiXCJzb3VyY2VQcm9jZXNzSURcIjogJWQsICIsIHRoaXMtPnJlY29yZC0+c291cmNlUHJv
Y2Vzc0lEKTsKKworICAgIHByaW50ZigiXCJkZXN0aW5hdGlvblByb2Nlc3NUeXBlXCI6ICVkLCAi
LCB0aGlzLT5yZWNvcmQtPmRlc3RpbmF0aW9uUHJvY2Vzc1R5cGUpOworICAgIHByaW50ZigiXCJk
ZXN0aW5hdGlvblByb2Nlc3NJRFwiOiAlZCwgIiwgdGhpcy0+cmVjb3JkLT5kZXN0aW5hdGlvblBy
b2Nlc3NJRCk7CisKKyAgICBwcmludGYoIlwibWVzc2FnZVJlY2VpdmVyTmFtZVwiOiBcIiVzXCIs
ICIsIGNvcHlpbnN0cigodXNlcl9hZGRyX3QpdGhpcy0+cmVjb3JkLT5tZXNzYWdlUmVjZWl2ZXJO
YW1lKSk7CisgICAgcHJpbnRmKCJcIm1lc3NhZ2VOYW1lXCI6IFwiJXNcIiwgIiwgY29weWluc3Ry
KCh1c2VyX2FkZHJfdCl0aGlzLT5yZWNvcmQtPm1lc3NhZ2VOYW1lKSk7CisKKyAgICBwcmludGYo
IlwiZGVzdGluYXRpb25JRFwiOiAlZCwgIiwgdGhpcy0+cmVjb3JkLT5kZXN0aW5hdGlvbklEKTsK
KworICAgIHByaW50ZigiXCJVVUlEXCI6IFwiIik7CisgICAgcHJpbnRmKCIlMDJ4IiwgdGhpcy0+
cmVjb3JkLT5VVUlEWzBdKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURb
MV0pOworICAgIHByaW50ZigiJTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFsyXSk7CisgICAgcHJp
bnRmKCIlMDJ4IiwgdGhpcy0+cmVjb3JkLT5VVUlEWzNdKTsKKyAgICBwcmludGYoIi0iKTsKKyAg
ICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbNF0pOworICAgIHByaW50ZigiJTAy
eCIsIHRoaXMtPnJlY29yZC0+VVVJRFs1XSk7CisgICAgcHJpbnRmKCItIik7CisgICAgcHJpbnRm
KCIlMDJ4IiwgdGhpcy0+cmVjb3JkLT5VVUlEWzZdKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlz
LT5yZWNvcmQtPlVVSURbN10pOworICAgIHByaW50ZigiLSIpOworICAgIHByaW50ZigiJTAyeCIs
IHRoaXMtPnJlY29yZC0+VVVJRFs4XSk7CisgICAgcHJpbnRmKCIlMDJ4IiwgdGhpcy0+cmVjb3Jk
LT5VVUlEWzldKTsKKyAgICBwcmludGYoIi0iKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5y
ZWNvcmQtPlVVSURbMTBdKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURb
MTFdKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbMTJdKTsKKyAgICBw
cmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbMTNdKTsKKyAgICBwcmludGYoIiUwMngi
LCB0aGlzLT5yZWNvcmQtPlVVSURbMTRdKTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNv
cmQtPlVVSURbMTVdKTsKKyAgICBwcmludGYoIlwiLCAiKTsKKworICAgIHByaW50ZigiXCJzdGFy
dFRpbWVcIjogJWYsICIsIHRoaXMtPnJlY29yZC0+c3RhcnRUaW1lKTsKKyAgICBwcmludGYoIlwi
ZW5kVGltZVwiOiAlZiwgIiwgdGhpcy0+cmVjb3JkLT5lbmRUaW1lKTsKKworICAgIHByaW50Zigi
XCJpc1N5bmNNZXNzYWdlXCI6ICVkLCAiLCB0aGlzLT5yZWNvcmQtPmlzU3luY01lc3NhZ2UpOwor
ICAgIHByaW50ZigiXCJzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eVwiOiAlZCwgIiwgdGhpcy0+cmVjb3JkLT5zaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSk7CisgICAgcHJpbnRmKCJcImlzSW5jb21pbmdcIjogJWQiLCB0aGlzLT5y
ZWNvcmQtPmlzSW5jb21pbmcpOworCisgICAgcHJpbnRmKCJ9XG4iKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245583</attachid>
            <date>2015-01-28 16:50:34 -0800</date>
            <delta_ts>2015-01-28 18:10:15 -0800</delta_ts>
            <desc>fixing sam&apos;s comments</desc>
            <filename>bug-140673-20150128030413.patch</filename>
            <type>text/plain</type>
            <size>59507</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NzhmYmY4Li4yOTkyODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE5
IEBACisyMDE1LTAxLTI4ICBUaW1vdGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgYSBXZWJLaXRNZXNzYWdlUmVjb3JkZXIgRFRyYWNlIHByb3ZpZGVy
LCBleHBvc2luZyBJUEMgZGV0YWlscyB0byBEVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDY3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rlcjx1dWlkX3Q+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPHV1aWRfdD46OmRlY29kZSk6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgIEFkZCBhIHV1aWRfdCAoc2ltcGxlKSBh
cmd1bWVudCBjb2Rlci4KKyAgICAgICAgRml4IGEgbWlzLW5hbWVkIGhlYWRlci1ndWFyZCAjaWZk
ZWYuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJ
UEM6OkNvbm5lY3Rpb246OmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZSk6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAg
ICBTeW5jIG1lc3NhZ2UgcmVwbGllcyBpbmhlcml0IHRoZSBtZXNzYWdlIFVVSUQgZnJvbSB0aGUg
aW5jb21pbmcgc3luYyBtZXNzYWdlLgorCisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRN
ZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6d2FpdEZvck1lc3NhZ2UpOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpD
b25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKToKKyAgICAgICAg
UmVjb3JkIG91dGdvaW5nIG1lc3NhZ2VzLiBCZWNhdXNlIHNlbmRTeW5jTWVzc2FnZSBjYWxscyBz
ZW5kTWVzc2FnZSwKKyAgICAgICAgd2UgaGF2ZSB0byBleHBsaWNpdGx5IGF2b2lkIHJlY29yZGlu
ZyB0aGUgbWVzc2FnZSB0d2ljZS4KKworICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRj
aE1lc3NhZ2UpOgorICAgICAgICBSZWNvcmQgdGhlIGluY29taW5nIG1lc3NhZ2UuCisKKyAgICAg
ICAgKElQQzo6Q29ubmVjdGlvbjo6cmVtb3RlUHJvY2Vzc0lEKToKKyAgICAgICAgQWRkIHJlbW90
ZVByb2Nlc3NJRCgpLCB3aGljaCB0cmllcyB0byBkZXRlcm1pbmUgdGhlIHBpZCBvZiB0aGUgcmVt
b3RlIHByb2Nlc3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjp4cGNDb25uZWN0aW9uKToKKyAgICAgICAgVGhpcyBjYW4g
YmUgY29uc3QuCisKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6aXNWYWxpZCk6CisgICAgICAg
IE1ha2UgdGhpcyBwdWJsaWMuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29k
ZXIuY3BwOgorICAgICAgICAoSVBDOjpNZXNzYWdlRGVjb2Rlcjo6TWVzc2FnZURlY29kZXIpOgor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oOgorICAgICAgICAoSVBDOjpN
ZXNzYWdlRGVjb2Rlcjo6c2V0TWVzc2FnZVByb2Nlc3NpbmdUb2tlbik6CisgICAgICAgIChJUEM6
Ok1lc3NhZ2VEZWNvZGVyOjpVVUlEKToKKyAgICAgICAgRGVjb2RlIGFuZCBzdG9yZSB0aGUgbWVz
c2FnZSBVVUlELgorICAgICAgICBTdG9yZSBhIE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4gZm9yIHRo
ZSBsaWZldGltZSBvZiB0aGUgTWVzc2FnZURlY29kZXI7CisgICAgICAgIHRoaXMgZW5zdXJlcyB0
aGF0IGFsbCB0aW1lIHNwZW50IHByb2Nlc3NpbmcgdGhlIGluY29taW5nIG1lc3NhZ2Ugd2lsbCBi
ZQorICAgICAgICBjb3VudGVkIGFnYWluc3QgdGhhdCBtZXNzYWdlLgorCisgICAgICAgICogUGxh
dGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmNwcDoKKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29k
ZXI6Ok1lc3NhZ2VFbmNvZGVyKToKKyAgICAgICAgQnkgZGVmYXVsdCwgY3JlYXRlIGEgbmV3IFVV
SUQgZm9yIHRoZSBtZXNzYWdlLiBBbHRlcm5hdGl2ZWx5LCBhbGxvdyBjbGllbnRzCisgICAgICAg
IHRvIHBhc3MgdGhlIG1lc3NhZ2UgVVVJRCBpbiAodXNlZCBmb3Igc3luYyBtZXNzYWdlIHJlcGxp
ZXMpLgorICAgICAgICBTdG9yZSB0aGUgbWVzc2FnZVJlY2VpdmVyTmFtZSBhbmQgbWVzc2FnZU5h
bWUuCisKKyAgICAgICAgKElQQzo6TWVzc2FnZUVuY29kZXI6OmVuY29kZUhlYWRlcik6CisgICAg
ICAgIEZhY3RvciBlbmNvZGVIZWFkZXIoKSBvdXQgb2YgdGhlIGNvbnN0cnVjdG9ycyBzbyBtb3N0
IG9mIHRoZWlyIGNvZGUgY2FuIGJlIHNoYXJlZC4KKworICAgICAgICAoSVBDOjpNZXNzYWdlRW5j
b2Rlcjo6aXNTeW5jTWVzc2FnZSk6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpzaG91
bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgIEFkZCBn
ZXR0ZXJzIGZvciB0aGVzZSBmbGFncy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdl
RW5jb2Rlci5oOgorICAgICAgICAoSVBDOjpNZXNzYWdlRW5jb2Rlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSk6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjptZXNzYWdlTmFtZSk6CisgICAg
ICAgIChJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpkZXN0aW5hdGlvbklEKToKKyAgICAgICAgKElQQzo6
TWVzc2FnZUVuY29kZXI6OlVVSUQpOgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VS
ZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY29yZGVy
LmNwcDogQWRkZWQuCisgICAgICAgIChNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VSZWNvcmRlcik6
CisgICAgICAgIEFkZCBhIGNsYXNzIHRoYXQgaW50ZXJmYWNlcyB3aXRoIGEgY3VzdG9tIERUcmFj
ZSBwcm92aWRlciB0byBsb2cgaW5jb21pbmcgYW5kIG91dGdvaW5nIG1lc3NhZ2VzLgorCisgICAg
ICAgIChNZXNzYWdlUmVjb3JkZXI6OnNoYXJlZCk6CisgICAgICAgIChNZXNzYWdlUmVjb3JkZXI6
OmlzRW5hYmxlZCk6CisgICAgICAgIERldGVybWluZSBpZiBlaXRoZXIgb2YgdGhlIG1lc3NhZ2Ug
cHJvYmVzIGFyZSBlbmFibGVkLiBJZiBub3QsIHdlJ2xsIGF2b2lkIG1vc3Qgb2YgdGhlCisgICAg
ICAgIHdvcmsgYXNzb2NpYXRlZCB3aXRoIE1lc3NhZ2VSZWNvcmRlci4KKworICAgICAgICAoTWVz
c2FnZVJlY29yZGVyOjpyZWNvcmRPdXRnb2luZ01lc3NhZ2UpOgorICAgICAgICAoTWVzc2FnZVJl
Y29yZGVyOjpyZWNvcmRJbmNvbWluZ01lc3NhZ2UpOgorICAgICAgICBCdWlsZCBhIFdlYktpdE1l
c3NhZ2VSZWNvcmQgYW5kIE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4gZnJvbSB0aGUgTWVzc2FnZShE
ZXxFbiljb2Rlci4KKyAgICAgICAgT25jZSB0aGUgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbiBpcyBk
ZWFsbG9jYXRlZCwgdGhlIHByb2JlIHdpbGwgYmUgaW52b2tlZCB3aXRoIHRoZSBXZWJLaXRNZXNz
YWdlUmVjb3JkLgorCisgICAgICAgIChNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5n
VG9rZW46Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4pOgorICAgICAgICAoTWVzc2FnZVJlY29yZGVy
OjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuOjp+TWVzc2FnZVByb2Nlc3NpbmdUb2tlbik6CisgICAg
ICAgIEtlZXAgdHJhY2sgb2Ygd2hlbiB0aGUgdG9rZW4gaXMgY3JlYXRlZCBhbmQgZGVzdHJveWVk
OyB0aGVzZSBhcmUgY29uc2lkZXJlZCB0aGUgYmVnaW5uaW5nCisgICAgICAgIGFuZCBlbmRpbmcg
InByb2Nlc3NpbmciIHRpbWVzIG9mIHRoZSBtZXNzYWdlIChhbmQgYXMgc3VjaCB0aGUgdG9rZW4g
c2hvdWxkIGJlIGtlcHQgYWxpdmUgZm9yCisgICAgICAgIGV4YWN0bHkgYXMgbG9uZyBhcyB0aGUg
bWVzc2FnZSBpcyBiZWluZyBwcm9jZXNzZWQpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL01l
c3NhZ2VSZWNvcmRlclByb2Jlcy5kOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgRFRyYWNlIHByb3Zp
ZGVyIHNvdXJjZSBmaWxlIHdpdGggdHdvIHByb2JlcywgbWVzc2FnZV9zZW50IGFuZCBtZXNzYWdl
X3JlY2VpdmVkLgorICAgICAgICBUaGUgc3RydWN0IG11c3QgbWF0Y2ggdGhlIHN0cnVjdCBpbiBN
ZXNzYWdlUmVjb3JkZXIuaC4KKyAgICAgICAgCisgICAgICAgICogUGxhdGZvcm0vSVBDL1Byb2Nl
c3NUeXBlLmg6IEFkZGVkLgorICAgICAgICBBZGQgYW4gZW51bSBvZiBwcm9jZXNzIHR5cGVzLgor
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAg
ICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oOgorICAgICAgICAqIERhdGFiYXNl
UHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
Lmg6CisgICAgICAgIEFubm90YXRlIENvbm5lY3Rpb246OkNsaWVudHMgd2l0aCBwcm9jZXNzIHR5
cGVzLgorICAgICAgICAKIDIwMTUtMDEtMjggIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSBNb3VudGFpbiBMaW9uIGNvZGUgZnJvbSBXZWJLaXQgYW5kIFdl
YktpdDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFz
ZVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaAppbmRleCBiM2FmZjI4Li5iMmIyNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCkBAIC04Miw2ICs4Miw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2Uo
SVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVy
cmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZTsgfQorICAgIHZpcnR1YWwg
SVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQ
Qzo6UHJvY2Vzc1R5cGU6OlVJOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YWJhc2VQcm9jZXNz
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAv
LyBNZXNzYWdlIEhhbmRsZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMDZm
ODViZi4uNTljNDBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNTEsNiAr
NTEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92
ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOyB9CisgICAgdmlydHVh
bCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4g
SVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDA2Y2M4OGUuLjk0NmQyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtNjUsNiArNjUsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKTsKKyAgICB2aXJ0
dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJu
IElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5
cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBl
OjpXZWI7IH0KIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNlaXZl
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGI5ZGNjNmIuLmQ1N2Y3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtOTksNiArOTksOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNl
aXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsg
cmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJv
Y2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nl
c3NUeXBlOjpVSTsgfQogCiAgICAgLy8gRG93bmxvYWRNYW5hZ2VyOjpDbGllbnQKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ3JlYXRlRG93bmxvYWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDM5ZjNlMDcuLmY3MmVhYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcApA
QCAtMTYyLDQgKzE2MiwxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3RyaW5nJiByZXN1bHQpCiAgICAgcmV0dXJuIGRlY29k
ZVN0cmluZ1RleHQ8VUNoYXI+KGRlY29kZXIsIGxlbmd0aCwgcmVzdWx0KTsKIH0KIAordm9pZCBB
cmd1bWVudENvZGVyPHV1aWRfdD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IHV1aWRfdCYgdXVpZCkKK3sKKyAgICBTaW1wbGVBcmd1bWVudENvZGVyPHV1aWRfdD46OmVu
Y29kZShlbmNvZGVyLCB1dWlkKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPHV1aWRfdD46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIHV1aWRfdCYgdXVpZCkKK3sKKyAgICByZXR1
cm4gU2ltcGxlQXJndW1lbnRDb2Rlcjx1dWlkX3Q+OjpkZWNvZGUoZGVjb2RlciwgdXVpZCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJn
dW1lbnRDb2RlcnMuaAppbmRleCA0NjJjZTM3Li42MmRhMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMjMsMTIgKzIzLDEzIEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTaW1wbGVBcmd1
bWVudENvZGVyX2gKLSNkZWZpbmUgU2ltcGxlQXJndW1lbnRDb2Rlcl9oCisjaWZuZGVmIEFyZ3Vt
ZW50Q29kZXJzX2gKKyNkZWZpbmUgQXJndW1lbnRDb2RlcnNfaAogCiAjaW5jbHVkZSAiQXJndW1l
bnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSA8dXRp
bGl0eT4KKyNpbmNsdWRlIDx1dWlkL3V1aWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTI5
OCw2ICsyOTksMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgU3RyaW5nJik7CiB9Owog
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPHV1aWRfdD4geworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCB1dWlkX3QmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgdXVpZF90Jik7Cit9OworCiB9IC8vIG5hbWVz
cGFjZSBJUEMKIAogI2VuZGlmIC8vIEFyZ3VtZW50Q29kZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA3YjhhYjIwLi5hY2E3N2JkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0zMTcsNyArMzE3LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3Nh
Z2UoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGF1dG8gcmVwbHlFbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdlRW5jb2Rlcj4oIklQ
QyIsICJTeW5jTWVzc2FnZVJlcGx5Iiwgc3luY1JlcXVlc3RJRCk7CisgICAgYXV0byByZXBseUVu
Y29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPigiSVBDIiwgIlN5bmNNZXNz
YWdlUmVwbHkiLCBzeW5jUmVxdWVzdElELCBpbmNvbWluZ01lc3NhZ2VEZWNvZGVyLT5VVUlEKCkp
OwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUgZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUg
d29yayBxdWV1ZSBtZXNzYWdlIHJlY2VpdmVyLgogICAgIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
ci0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKCp0aGlzLCAqZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsK
QEAgLTM2OSw3ICszNjksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IENvbm5l
Y3Rpb246OmNyZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcgogICAgIHJldHVybiBl
bmNvZGVyOwogfQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncykKK2Jv
b2wgQ29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVy
PiBlbmNvZGVyLCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzLCBib29sIGFscmVhZHlSZWNvcmRl
ZE1lc3NhZ2UpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTM3OSw2ICszNzksMTAgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIHVuc2lnbmVkIG0KICAgICAgICAgICAg
IHx8IG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5Q291bnQpKQogICAgICAgICBlbmNvZGVyLT5zZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSh0cnVlKTsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
UmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+IHRva2VuOworICAgIGlmICghYWxyZWFk
eVJlY29yZGVkTWVzc2FnZSkKKyAgICAgICAgdG9rZW4gPSBNZXNzYWdlUmVjb3JkZXI6OnJlY29y
ZE91dGdvaW5nTWVzc2FnZSgqdGhpcywgKmVuY29kZXIpOworCiAgICAgewogICAgICAgICBzdGQ6
OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX291dGdvaW5nTWVzc2FnZXNNdXRleCk7CiAg
ICAgICAgIG1fb3V0Z29pbmdNZXNzYWdlcy5hcHBlbmQoV1RGOjptb3ZlKGVuY29kZXIpKTsKQEAg
LTQ3Myw4ICs0NzcsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0
aW9uOjpzZW5kU3luY01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3QKIAogICAgICsrbV9pblNl
bmRTeW5jQ291bnQ7CiAKKyAgICBhdXRvIHRva2VuID0gTWVzc2FnZVJlY29yZGVyOjpyZWNvcmRP
dXRnb2luZ01lc3NhZ2UoKnRoaXMsICplbmNvZGVyKTsKKwogICAgIC8vIEZpcnN0IHNlbmQgdGhl
IG1lc3NhZ2UuCi0gICAgc2VuZE1lc3NhZ2UoV1RGOjptb3ZlKGVuY29kZXIpLCBEaXNwYXRjaE1l
c3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIHNlbmRNZXNzYWdlKFdURjo6
bW92ZShlbmNvZGVyKSwgRGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
LCB0cnVlKTsKIAogICAgIC8vIFRoZW4gd2FpdCBmb3IgYSByZXBseS4gV2FpdGluZyBmb3IgYSBy
ZXBseSBjb3VsZCBpbnZvbHZlIGRpc3BhdGNoaW5nIGluY29taW5nIHN5bmMgbWVzc2FnZXMsIHNv
CiAgICAgLy8ga2VlcCBhbiBleHRyYSByZWZlcmVuY2UgdG8gdGhlIGNvbm5lY3Rpb24gaGVyZSBp
biBjYXNlIGl0J3MgaW52YWxpZGF0ZWQuCkBAIC01MTUsNyArNTIxLDkgQEAgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25k
YXJ5VGhyZWFkKHUKICAgICAgICAgbV9zZWNvbmRhcnlUaHJlYWRQZW5kaW5nU3luY1JlcGx5TWFw
LmFkZChzeW5jUmVxdWVzdElELCAmcGVuZGluZ1JlcGx5KTsKICAgICB9CiAKLSAgICBzZW5kTWVz
c2FnZShXVEY6Om1vdmUoZW5jb2RlciksIDApOworICAgIGF1dG8gdG9rZW4gPSBNZXNzYWdlUmVj
b3JkZXI6OnJlY29yZE91dGdvaW5nTWVzc2FnZSgqdGhpcywgKmVuY29kZXIpOworCisgICAgc2Vu
ZE1lc3NhZ2UoV1RGOjptb3ZlKGVuY29kZXIpLCAwLCB0cnVlKTsKIAogICAgIHBlbmRpbmdSZXBs
eS5zZW1hcGhvcmUud2FpdChjdXJyZW50VGltZSgpICsgKHRpbWVvdXQuY291bnQoKSAvIDEwMDAu
MCkpOwogCkBAIC03NjgsNyArNzc2LDcgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFN5bmNN
ZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgYXV0byByZXBseUVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVy
PigiSVBDIiwgIlN5bmNNZXNzYWdlUmVwbHkiLCBzeW5jUmVxdWVzdElEKTsKKyAgICBhdXRvIHJl
cGx5RW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZUVuY29kZXI+KCJJUEMiLCAiU3lu
Y01lc3NhZ2VSZXBseSIsIHN5bmNSZXF1ZXN0SUQsIGRlY29kZXIuVVVJRCgpKTsKIAogICAgIC8v
IEhhbmQgb2ZmIGJvdGggdGhlIGRlY29kZXIgYW5kIGVuY29kZXIgdG8gdGhlIGNsaWVudC4KICAg
ICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKCp0aGlzLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOwpAQCAtODE1LDYgKzgyMyw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNz
YWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogCiB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNo
TWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IG1lc3NhZ2UpCiB7CisgICAg
TWVzc2FnZVJlY29yZGVyOjpyZWNvcmRJbmNvbWluZ01lc3NhZ2UoKnRoaXMsICptZXNzYWdlKTsK
KwogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXggMTU2ZmZmNi4uMmI2ZmQwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiTWVzc2FnZURlY29kZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRW5jb2Rlci5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlByb2Nlc3NUeXBlLmgiCiAjaW5j
bHVkZSAiV29ya1F1ZXVlLmgiCiAjaW5jbHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGNvbmRpdGlv
bl92YXJpYWJsZT4KQEAgLTkwLDYgKzkxLDggQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb24mKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29ubmVjdGlvbiYsIFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpID0g
MDsKKyAgICAgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSA9
IDA7CisgICAgICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgp
ID0gMDsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgeyB9CkBA
IC0xMjAsOCArMTIzLDkgQEAgcHVibGljOgogICAgICAgICBPU09iamVjdFB0cjx4cGNfY29ubmVj
dGlvbl90PiB4cGNDb25uZWN0aW9uOwogICAgIH07CiAgICAgc3RhdGljIGJvb2wgaWRlbnRpZmll
cklzTnVsbChJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIGlkZW50aWZpZXIucG9ydCA9
PSBNQUNIX1BPUlRfTlVMTDsgfQotICAgIHhwY19jb25uZWN0aW9uX3QgeHBjQ29ubmVjdGlvbigp
IHsgcmV0dXJuIG1feHBjQ29ubmVjdGlvbi5nZXQoKTsgfQorICAgIHhwY19jb25uZWN0aW9uX3Qg
eHBjQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1feHBjQ29ubmVjdGlvbi5nZXQoKTsgfQog
ICAgIGJvb2wgZ2V0QXVkaXRUb2tlbihhdWRpdF90b2tlbl90Jik7CisgICAgcGlkX3QgcmVtb3Rl
UHJvY2Vzc0lEKCkgY29uc3Q7CiAjZWxpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICB0
eXBlZGVmIGludCBJZGVudGlmaWVyOwogICAgIHN0YXRpYyBib29sIGlkZW50aWZpZXJJc051bGwo
SWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiAhaWRlbnRpZmllcjsgfQpAQCAtMTc0LDcg
KzE3OCw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIHdhaXRGb3JB
bmREaXNwYXRjaEltbWVkaWF0ZWx5KHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWduZWQgd2FpdEZvck1lc3NhZ2VGbGFncyA9IDAp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2Fn
ZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgdWludDY0X3QmIHN5bmNS
ZXF1ZXN0SUQpOwotICAgIGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VF
bmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyA9IDApOworICAgIGJvb2wgc2VuZE1l
c3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNl
bmRGbGFncyA9IDAsIGJvb2wgYWxyZWFkeVJlY29yZGVkTWVzc2FnZSA9IGZhbHNlKTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IHNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBz
eW5jUmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+LCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MgPSAwKTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IHNlbmRTeW5jTWVzc2FnZUZyb21TZWNv
bmRhcnlUaHJlYWQodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VFbmNvZGVyPiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0KTsKICAgICBib29s
IHNlbmRTeW5jUmVwbHkoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPik7CkBAIC0xOTMs
MTMgKzE5NywxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXJtaW5hdGVTb29uKGRvdWJsZSBpbnRl
cnZhbEluU2Vjb25kcyk7CiAjZW5kaWYKIAorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50OyB9CisKIHByaXZhdGU6CiAgICAgQ29ubmVjdGlvbihJZGVudGlmaWVyLCBi
b29sIGlzU2VydmVyLCBDbGllbnQmLCBXVEY6OlJ1bkxvb3AmIGNsaWVudFJ1bkxvb3ApOwogICAg
IHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIpOwogICAgIHZvaWQgcGxhdGZvcm1J
bnZhbGlkYXRlKCk7CiAgICAgCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9j
bGllbnQ7IH0KLSAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IHdhaXRG
b3JNZXNzYWdlKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWduZWQgd2FpdEZvck1lc3NhZ2VGbGFncyk7CiAgICAg
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiB3YWl0Rm9yU3luY1JlcGx5KHVp
bnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwg
dW5zaWduZWQgc3luY1NlbmRGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L01lc3NhZ2VEZWNvZGVyLmNwcAppbmRleCAyOWEwNTRlLi5mZjUyMWMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHAKQEAgLTUzLDcgKzUzLDEw
IEBAIE1lc3NhZ2VEZWNvZGVyOjpNZXNzYWdlRGVjb2Rlcihjb25zdCBEYXRhUmVmZXJlbmNlJiBi
dWZmZXIsIFZlY3RvcjxBdHRhY2htZW50PiBhCiAgICAgaWYgKCFkZWNvZGUobV9tZXNzYWdlTmFt
ZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRlY29kZShtX2Rlc3RpbmF0aW9uSUQpOworICAg
IGlmICghZGVjb2RlKG1fZGVzdGluYXRpb25JRCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRl
Y29kZShtX1VVSUQpOwogfQogCiBib29sIE1lc3NhZ2VEZWNvZGVyOjppc1N5bmNNZXNzYWdlKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRGVj
b2Rlci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmgKaW5k
ZXggZWFhOWI1ZS4uM2ZhZmFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01l
c3NhZ2VEZWNvZGVyLmgKQEAgLTI3LDcgKzI3LDkgQEAKICNkZWZpbmUgTWVzc2FnZURlY29kZXJf
aAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY29y
ZGVyLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8dXVpZC91dWlk
Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewogCkBAIC01MCw2ICs1MiwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRJbXBvcnRhbmNlQXNzZXJ0aW9uKHN0ZDo6dW5pcXVlX3B0cjxJbXBvcnRhbmNlQXNz
ZXJ0aW9uPik7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0TWVzc2FnZVByb2Nlc3NpbmdUb2tlbihz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuPiB0
b2tlbikgeyBtX3Byb2Nlc3NpbmdUb2tlbiA9IFdURjo6bW92ZSh0b2tlbik7IH0KKworICAgIGNv
bnN0IHV1aWRfdCYgVVVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fVVVJRDsgfQorCiBwcml2YXRlOgog
ICAgIHVpbnQ4X3QgbV9tZXNzYWdlRmxhZ3M7CiAgICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2Fn
ZVJlY2VpdmVyTmFtZTsKQEAgLTU3LDkgKzYzLDEzIEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRf
dCBtX2Rlc3RpbmF0aW9uSUQ7CiAKKyAgICB1dWlkX3QgbV9VVUlEOworCiAjaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SW1wb3J0YW5jZUFzc2VydGlvbj4gbV9pbXBvcnRhbmNlQXNzZXJ0aW9uOwog
I2VuZGlmCisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJv
Y2Vzc2luZ1Rva2VuPiBtX3Byb2Nlc3NpbmdUb2tlbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElQ
QwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAKaW5k
ZXggZDJlNGVmZS4uYmY3YzM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VFbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
TWVzc2FnZUVuY29kZXIuY3BwCkBAIC0yOCwyNCArMjgsNTQgQEAKIAogI2luY2x1ZGUgIkFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUZsYWdzLmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY29yZGVyLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCiAKIG5hbWVzcGFjZSBJ
UEMgewogCiBzdGF0aWMgdWludDhfdCBkZWZhdWx0TWVzc2FnZUZsYWdzID0gMDsKIAorTWVzc2Fn
ZUVuY29kZXI6Ok1lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQs
IGNvbnN0IHV1aWRfdCYgVVVJRCkKKyAgICA6IG1fbWVzc2FnZVJlY2VpdmVyTmFtZShtZXNzYWdl
UmVjZWl2ZXJOYW1lKQorICAgICwgbV9tZXNzYWdlTmFtZShtZXNzYWdlTmFtZSkKKyAgICAsIG1f
ZGVzdGluYXRpb25JRChkZXN0aW5hdGlvbklEKQoreworICAgIHV1aWRfY29weShtX1VVSUQsIFVV
SUQpOworICAgIGVuY29kZUhlYWRlcigpOworfQorCiBNZXNzYWdlRW5jb2Rlcjo6TWVzc2FnZUVu
Y29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKKyAgICA6IG1fbWVzc2FnZVJl
Y2VpdmVyTmFtZShtZXNzYWdlUmVjZWl2ZXJOYW1lKQorICAgICwgbV9tZXNzYWdlTmFtZShtZXNz
YWdlTmFtZSkKKyAgICAsIG1fZGVzdGluYXRpb25JRChkZXN0aW5hdGlvbklEKQoreworICAgIHV1
aWRfZ2VuZXJhdGUobV9VVUlEKTsKKyAgICBlbmNvZGVIZWFkZXIoKTsKK30KKworTWVzc2FnZUVu
Y29kZXI6On5NZXNzYWdlRW5jb2RlcigpCiB7Ci0gICAgQVNTRVJUKCFtZXNzYWdlUmVjZWl2ZXJO
YW1lLmlzRW1wdHkoKSk7Cit9CisKK3ZvaWQgTWVzc2FnZUVuY29kZXI6OmVuY29kZUhlYWRlcigp
Cit7CisgICAgQVNTRVJUKCFtX21lc3NhZ2VSZWNlaXZlck5hbWUuaXNFbXB0eSgpKTsKIAogICAg
ICp0aGlzIDw8IGRlZmF1bHRNZXNzYWdlRmxhZ3M7Ci0gICAgKnRoaXMgPDwgbWVzc2FnZVJlY2Vp
dmVyTmFtZTsKLSAgICAqdGhpcyA8PCBtZXNzYWdlTmFtZTsKLSAgICAqdGhpcyA8PCBkZXN0aW5h
dGlvbklEOworICAgICp0aGlzIDw8IG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICAqdGhpcyA8
PCBtX21lc3NhZ2VOYW1lOworICAgICp0aGlzIDw8IG1fZGVzdGluYXRpb25JRDsKKyAgICAqdGhp
cyA8PCBtX1VVSUQ7CiB9CiAKLU1lc3NhZ2VFbmNvZGVyOjp+TWVzc2FnZUVuY29kZXIoKQorYm9v
bCBNZXNzYWdlRW5jb2Rlcjo6aXNTeW5jTWVzc2FnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICpi
dWZmZXIoKSAmIFN5bmNNZXNzYWdlOworfQorCitib29sIE1lc3NhZ2VFbmNvZGVyOjpzaG91bGRE
aXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0CiB7CisgICAgcmV0
dXJuICpidWZmZXIoKSAmIERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Owog
fQogCiB2b2lkIE1lc3NhZ2VFbmNvZGVyOjpzZXRJc1N5bmNNZXNzYWdlKGJvb2wgaXNTeW5jTWVz
c2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlRW5j
b2Rlci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmgKaW5k
ZXggNTI0ZTVlMS4uODcyZjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01l
c3NhZ2VFbmNvZGVyLmgKQEAgLTI3LDYgKzI3LDggQEAKICNkZWZpbmUgTWVzc2FnZUVuY29kZXJf
aAogCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiU3RyaW5nUmVmZXJl
bmNlLmgiCisjaW5jbHVkZSA8dXVpZC91dWlkLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
IAogbmFtZXNwYWNlIElQQyB7CkBAIC0zNiwxMCArMzgsMjggQEAgY2xhc3MgU3RyaW5nUmVmZXJl
bmNlOwogY2xhc3MgTWVzc2FnZUVuY29kZXIgOiBwdWJsaWMgQXJndW1lbnRFbmNvZGVyIHsKIHB1
YmxpYzoKICAgICBNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
KTsKKyAgICBNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBj
b25zdCB1dWlkX3QmKTsKICAgICB2aXJ0dWFsIH5NZXNzYWdlRW5jb2RlcigpOwogCisgICAgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKSBjb25zdCB7IHJldHVybiBtX21lc3Nh
Z2VSZWNlaXZlck5hbWU7IH0KKyAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUoKSBjb25z
dCB7IHJldHVybiBtX21lc3NhZ2VOYW1lOyB9CisgICAgdWludDY0X3QgZGVzdGluYXRpb25JRCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25JRDsgfQorCiAgICAgdm9pZCBzZXRJc1N5bmNN
ZXNzYWdlKGJvb2wpOworICAgIGJvb2wgaXNTeW5jTWVzc2FnZSgpIGNvbnN0OworCiAgICAgdm9p
ZCBzZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShib29sKTsK
KyAgICBib29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkg
Y29uc3Q7CisKKyAgICBjb25zdCB1dWlkX3QmIFVVSUQoKSBjb25zdCB7IHJldHVybiBtX1VVSUQ7
IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGVuY29kZUhlYWRlcigpOworCisgICAgU3RyaW5nUmVm
ZXJlbmNlIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICBTdHJpbmdSZWZlcmVuY2UgbV9tZXNz
YWdlTmFtZTsKKyAgICB1aW50NjRfdCBtX2Rlc3RpbmF0aW9uSUQ7CisgICAgdXVpZF90IG1fVVVJ
RDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvTWVzc2FnZVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xYjJlOWMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VSZWNvcmRlci5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY29yZGVyLmgiCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZURlY29kZXIuaCIKKyNpbmNsdWRl
ICJNZXNzYWdlRW5jb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNvcmRlclByb2Jlcy5oIgor
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3BhY2UgSVBDIHsKKworYm9vbCBN
ZXNzYWdlUmVjb3JkZXI6OmlzRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIFdFQktJVE1FU1NBR0VS
RUNPUkRFUl9NRVNTQUdFX1JFQ0VJVkVEX0VOQUJMRUQoKSB8fCBXRUJLSVRNRVNTQUdFUkVDT1JE
RVJfTUVTU0FHRV9TRU5UX0VOQUJMRUQoKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VS
ZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gTWVzc2FnZVJlY29yZGVyOjpyZWNvcmRP
dXRnb2luZ01lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgTWVzc2FnZUVuY29kZXImIGVu
Y29kZXIpCit7CisgICAgaWYgKCFpc0VuYWJsZWQoKSB8fCAhY29ubmVjdGlvbi5pc1ZhbGlkKCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgV2ViS2l0TWVzc2FnZVJlY29yZCByZWNv
cmQ7CisgICAgcmVjb3JkLnNvdXJjZVByb2Nlc3NUeXBlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGNvbm5lY3Rpb24uY2xpZW50KCktPmxvY2FsUHJvY2Vzc1R5cGUoKSk7CisgICAgcmVjb3JkLmRl
c3RpbmF0aW9uUHJvY2Vzc1R5cGUgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY29ubmVjdGlvbi5j
bGllbnQoKS0+cmVtb3RlUHJvY2Vzc1R5cGUoKSk7CisgICAgcmVjb3JkLmRlc3RpbmF0aW9uSUQg
PSBlbmNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKKyAgICByZWNvcmQuaXNTeW5jTWVzc2FnZSA9IGVu
Y29kZXIuaXNTeW5jTWVzc2FnZSgpOworICAgIHJlY29yZC5zaG91bGREaXNwYXRjaE1lc3NhZ2VX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IGVuY29kZXIuc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKTsKKyAgICByZWNvcmQuc291cmNlUHJvY2Vzc0lEID0gZ2V0
cGlkKCk7CisgICAgcmVjb3JkLmRlc3RpbmF0aW9uUHJvY2Vzc0lEID0gY29ubmVjdGlvbi5yZW1v
dGVQcm9jZXNzSUQoKTsKKyAgICByZWNvcmQuaXNJbmNvbWluZyA9IGZhbHNlOworCisgICAgcmVj
b3JkLm1lc3NhZ2VSZWNlaXZlck5hbWUgPSBNYWxsb2NQdHI8Y2hhcj46Om1hbGxvYyhzaXplb2Yo
Y2hhcikgKiAoZW5jb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkuc2l6ZSgpICsgMSkpOworICAg
IHN0cm5jcHkocmVjb3JkLm1lc3NhZ2VSZWNlaXZlck5hbWUuZ2V0KCksIGVuY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLmRhdGEoKSwgZW5jb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkuc2l6
ZSgpKTsKKyAgICByZWNvcmQubWVzc2FnZVJlY2VpdmVyTmFtZS5nZXQoKVtlbmNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKS5zaXplKCldID0gMDsKKworICAgIHJlY29yZC5tZXNzYWdlTmFtZSA9
IE1hbGxvY1B0cjxjaGFyPjo6bWFsbG9jKHNpemVvZihjaGFyKSAqIChlbmNvZGVyLm1lc3NhZ2VO
YW1lKCkuc2l6ZSgpICsgMSkpOworICAgIHN0cm5jcHkocmVjb3JkLm1lc3NhZ2VOYW1lLmdldCgp
LCBlbmNvZGVyLm1lc3NhZ2VOYW1lKCkuZGF0YSgpLCBlbmNvZGVyLm1lc3NhZ2VOYW1lKCkuc2l6
ZSgpKTsKKyAgICByZWNvcmQubWVzc2FnZU5hbWUuZ2V0KClbZW5jb2Rlci5tZXNzYWdlTmFtZSgp
LnNpemUoKV0gPSAwOworCisgICAgdXVpZF9jb3B5KHJlY29yZC5VVUlELCBlbmNvZGVyLlVVSUQo
KSk7CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZXNzYWdlUHJvY2Vzc2luZ1Rva2Vu
PihXVEY6Om1vdmUocmVjb3JkKSk7Cit9CisKK3ZvaWQgTWVzc2FnZVJlY29yZGVyOjpyZWNvcmRJ
bmNvbWluZ01lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgTWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCit7CisgICAgaWYgKCFpc0VuYWJsZWQoKSB8fCAhY29ubmVjdGlvbi5pc1ZhbGlkKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdE1lc3NhZ2VSZWNvcmQgcmVjb3JkOworICAg
IHJlY29yZC5zb3VyY2VQcm9jZXNzVHlwZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihjb25uZWN0
aW9uLmNsaWVudCgpLT5yZW1vdGVQcm9jZXNzVHlwZSgpKTsKKyAgICByZWNvcmQuZGVzdGluYXRp
b25Qcm9jZXNzVHlwZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihjb25uZWN0aW9uLmNsaWVudCgp
LT5sb2NhbFByb2Nlc3NUeXBlKCkpOworICAgIHJlY29yZC5kZXN0aW5hdGlvbklEID0gZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCk7CisgICAgcmVjb3JkLmlzU3luY01lc3NhZ2UgPSBkZWNvZGVyLmlz
U3luY01lc3NhZ2UoKTsKKyAgICByZWNvcmQuc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkgPSBkZWNvZGVyLnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KCk7CisgICAgcmVjb3JkLnNvdXJjZVByb2Nlc3NJRCA9IGNvbm5lY3Rpb24u
cmVtb3RlUHJvY2Vzc0lEKCk7CisgICAgcmVjb3JkLmRlc3RpbmF0aW9uUHJvY2Vzc0lEID0gZ2V0
cGlkKCk7CisgICAgcmVjb3JkLmlzSW5jb21pbmcgPSB0cnVlOworCisgICAgcmVjb3JkLm1lc3Nh
Z2VSZWNlaXZlck5hbWUgPSBNYWxsb2NQdHI8Y2hhcj46Om1hbGxvYyhzaXplb2YoY2hhcikgKiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkuc2l6ZSgpICsgMSkpOworICAgIHN0cm5jcHko
cmVjb3JkLm1lc3NhZ2VSZWNlaXZlck5hbWUuZ2V0KCksIGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpLmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkuc2l6ZSgpKTsKKyAg
ICByZWNvcmQubWVzc2FnZVJlY2VpdmVyTmFtZS5nZXQoKVtkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKS5zaXplKCldID0gMDsKKworICAgIHJlY29yZC5tZXNzYWdlTmFtZSA9IE1hbGxvY1B0
cjxjaGFyPjo6bWFsbG9jKHNpemVvZihjaGFyKSAqIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkuc2l6
ZSgpICsgMSkpOworICAgIHN0cm5jcHkocmVjb3JkLm1lc3NhZ2VOYW1lLmdldCgpLCBkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkuc2l6ZSgpKTsKKyAg
ICByZWNvcmQubWVzc2FnZU5hbWUuZ2V0KClbZGVjb2Rlci5tZXNzYWdlTmFtZSgpLnNpemUoKV0g
PSAwOworCisgICAgdXVpZF9jb3B5KHJlY29yZC5VVUlELCBkZWNvZGVyLlVVSUQoKSk7CisKKyAg
ICBkZWNvZGVyLnNldE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4oc3RkOjptYWtlX3VuaXF1ZTxNZXNz
YWdlUHJvY2Vzc2luZ1Rva2VuPihXVEY6Om1vdmUocmVjb3JkKSkpOworfQorCisjcHJhZ21hIG1h
cmsgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbgorCitNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9j
ZXNzaW5nVG9rZW46Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4oV2ViS2l0TWVzc2FnZVJlY29yZCBy
ZWNvcmQpCisgICAgOiBtX3JlY29yZChXVEY6Om1vdmUocmVjb3JkKSkKK3sKKyAgICBtX3JlY29y
ZC5zdGFydFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKK30KKworTWVzc2Fn
ZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuOjp+TWVzc2FnZVByb2Nlc3NpbmdUb2tl
bigpCit7CisgICAgbV9yZWNvcmQuZW5kVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpOworCisgICAgaWYgKG1fcmVjb3JkLmlzSW5jb21pbmcpCisgICAgICAgIFdFQktJVE1FU1NB
R0VSRUNPUkRFUl9NRVNTQUdFX1JFQ0VJVkVEKCZtX3JlY29yZCk7CisgICAgZWxzZQorICAgICAg
ICBXRUJLSVRNRVNTQUdFUkVDT1JERVJfTUVTU0FHRV9TRU5UKCZtX3JlY29yZCk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjViMzljCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5oCkBAIC0wLDAgKzEs
ODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lc3NhZ2VSZWNvcmRlcl9oCisjZGVmaW5lIE1l
c3NhZ2VSZWNvcmRlcl9oCisKKyNpbmNsdWRlICJQcm9jZXNzVHlwZS5oIgorI2luY2x1ZGUgPHV1
aWQvdXVpZC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL01hbGxv
Y1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworc3RydWN0
IFdlYktpdE1lc3NhZ2VSZWNvcmQgeworICAgIHVpbnQ4X3Qgc291cmNlUHJvY2Vzc1R5cGU7IC8v
IElQQzo6UHJvY2Vzc1R5cGUKKyAgICBwaWRfdCBzb3VyY2VQcm9jZXNzSUQ7CisKKyAgICB1aW50
OF90IGRlc3RpbmF0aW9uUHJvY2Vzc1R5cGU7IC8vIElQQzo6UHJvY2Vzc1R5cGUKKyAgICBwaWRf
dCBkZXN0aW5hdGlvblByb2Nlc3NJRDsKKworICAgIE1hbGxvY1B0cjxjaGFyPiBtZXNzYWdlUmVj
ZWl2ZXJOYW1lOworICAgIE1hbGxvY1B0cjxjaGFyPiBtZXNzYWdlTmFtZTsKKyAgICB1aW50NjRf
dCBkZXN0aW5hdGlvbklEOworCisgICAgdXVpZF90IFVVSUQ7CisKKyAgICBkb3VibGUgc3RhcnRU
aW1lOworICAgIGRvdWJsZSBlbmRUaW1lOworCisgICAgYm9vbCBpc1N5bmNNZXNzYWdlOworICAg
IGJvb2wgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7CisgICAg
Ym9vbCBpc0luY29taW5nOworfTsKKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIENvbm5lY3Rp
b247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VFbmNvZGVyOworCitjbGFz
cyBNZXNzYWdlUmVjb3JkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBib29sIGlzRW5hYmxlZCgp
OworCisgICAgY2xhc3MgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbiB7CisgICAgICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4pOworICAgIHB1YmxpYzoKKyAgICAg
ICAgZXhwbGljaXQgTWVzc2FnZVByb2Nlc3NpbmdUb2tlbihXZWJLaXRNZXNzYWdlUmVjb3JkKTsK
KyAgICAgICAgfk1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4oKTsKKworICAgIHByaXZhdGU6CisgICAg
ICAgIFdlYktpdE1lc3NhZ2VSZWNvcmQgbV9yZWNvcmQ7CisgICAgfTsKKworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuPiBy
ZWNvcmRPdXRnb2luZ01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRW5jb2Rl
ciYpOworICAgIHN0YXRpYyB2b2lkIHJlY29yZEluY29taW5nTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVz
c2FnZVJlY29yZGVyKCkgeyB9Cit9OworCit9OworCisjZW5kaWYgLy8gTWVzc2FnZVJlY29yZGVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3Jk
ZXJQcm9iZXMuZCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXJQ
cm9iZXMuZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTdlMjkzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRl
clByb2Jlcy5kCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitzdHJ1Y3QgV2ViS2l0TWVz
c2FnZVJlY29yZDsKKworcHJvdmlkZXIgV2ViS2l0TWVzc2FnZVJlY29yZGVyIHsKKyAgICBwcm9i
ZSBtZXNzYWdlX3NlbnQoc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQqKTsKKyAgICBwcm9iZSBt
ZXNzYWdlX3JlY2VpdmVkKHN0cnVjdCBXZWJLaXRNZXNzYWdlUmVjb3JkKik7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL1Byb2Nlc3NUeXBlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvUHJvY2Vzc1R5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yMzdjMjY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL1Byb2Nlc3NUeXBlLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUHJvY2Vzc1R5cGVfaAorI2RlZmluZSBQcm9jZXNzVHlwZV9oCisKK25hbWVzcGFj
ZSBJUEMgeworCitlbnVtIGNsYXNzIFByb2Nlc3NUeXBlIDogdWludDhfdCB7CisgICAgVUksCisg
ICAgV2ViLAorICAgIE5ldHdvcmssCisgICAgRGF0YWJhc2UsCisgICAgUGx1Z2luCit9OworCit9
OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMv
Q29ubmVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVj
dGlvbk1hYy5tbQppbmRleCA1N2M5ZjIwLi5iODMxNjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCkBAIC02MDksNiArNjA5LDE0IEBA
IHZvaWQgQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNSZXBseSh1bnNpZ25lZCBmbGFncykKICAg
ICBpZiAoKGZsYWdzICYgSW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpICYmIFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIF9BWFVJ
RWxlbWVudE5vdGlmeVByb2Nlc3NTdXNwZW5kU3RhdHVzKEFYU3VzcGVuZFN0YXR1c1J1bm5pbmcp
OwogI2VuZGlmCi19ICAgIAorfQorCitwaWRfdCBDb25uZWN0aW9uOjpyZW1vdGVQcm9jZXNzSUQo
KSBjb25zdAoreworICAgIGlmICghbV94cGNDb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIHJldHVybiB4cGNfY29ubmVjdGlvbl9nZXRfcGlkKG1feHBjQ29ubmVjdGlvbi5nZXQo
KSk7Cit9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKaW5kZXggM2RmMmQ4Mi4uMzU2OGQwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKQEAgLTkxLDYgKzkxLDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VO
YW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNz
VHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlBsdWdpbjsgfQorICAg
IHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsg
cmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJz
LgogICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA2ZDU1MGVlLi4xMjIxZjk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oCkBAIC02OSw2ICs2OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2Nh
bFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6UGx1Z2lu
OyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3Zl
cnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAKICAgICAvLyBNZXNzYWdl
IGhhbmRsZXJzLgogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5
LmgKaW5kZXggYTdiOTgxMC4uYmU2NmFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaApAQCAtNTQsNiAr
NTQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFBy
b2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6VUk7IH0KKyAg
ICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7
IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZTsgfQogCiAgICAgdm9pZCBkaWRSZWNl
aXZlRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZURlY29kZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDM1ZjI2NGEuLmNkOTk2ZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKQEAgLTgzLDYgKzgzLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIGxv
Y2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpVSTsg
fQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJy
aWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7IH0KIAogICAgIC8vIE1lc3Nh
Z2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCmluZGV4
IGQ2ZjcwMGEuLjQ1ZmVlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC0xMjAsNiArMTIwLDggQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElQQzo6UHJv
Y2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vz
c1R5cGU6OlVJOyB9CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NU
eXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6UGx1Z2luOyB9CiAKICAg
ICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
YXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRl
eCAxYjY1YjI4Li41NzYwZGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0xODQsNiArMTg0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJUEM6OlByb2Nlc3NUeXBl
IGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpV
STsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92
ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OldlYjsgfQogCiAgICAgLy8gUmVzcG9u
c2l2ZW5lc3NUaW1lcjo6Q2xpZW50CiAgICAgdm9pZCBkaWRCZWNvbWVVbnJlc3BvbnNpdmUoUmVz
cG9uc2l2ZW5lc3NUaW1lciopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAxMjM2ZjguLjZjNGNlZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTU5NSw2ICs1OTUsOSBAQAogCQkyRDQyOUJGRDE3MjFFMkM3MDBFQzY4MUYgLyogUERGUGx1Z2lu
UGFzc3dvcmRGaWVsZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJENDI5QkZCMTcyMUUyQkEwMEVDNjgxRiAvKiBQREZQbHVnaW5QYXNzd29yZEZpZWxk
Lm1tICovOyB9OwogCQkyRDQ3QjU2QzE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDQ3QjU2QTE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0g
Ki87IH07CiAJCTJENDdCNTZEMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0
N0I1NkIxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggKi87IH07
CisJCTJENUFCNjJFMUE2OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENUFCNjJCMUE2OUQ2RkIw
MDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIuaCAqLzsgfTsKKwkJMkQ1QUI2MkYxQTY5RDZGQjAw
MTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVBQjYyQzFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJl
Y29yZGVyLmNwcCAqLzsgfTsKKwkJMkQ1QUI2MzAxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VS
ZWNvcmRlclByb2Jlcy5kIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQ1QUI2MkQxQTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlclByb2Jlcy5k
ICovOyB9OwogCQkyRDVDOUQwNTE5QzgxRDhGMDBCM0M1QzEgLyogV2ViUGFnZU92ZXJsYXkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QzlEMDMx
OUM4MUQ4RjAwQjNDNUMxIC8qIFdlYlBhZ2VPdmVybGF5LmNwcCAqLzsgfTsKIAkJMkQ1QzlEMDYx
OUM4MUQ4RjAwQjNDNUMxIC8qIFdlYlBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVDOUQwNDE5QzgxRDhGMDBCM0M1QzEgLyogV2Vi
UGFnZU92ZXJsYXkuaCAqLzsgfTsKIAkJMkQ2QUI1NDExOTJCMUM0QTAwM0E5RkQxIC8qIFdLUERG
UGFnZU51bWJlckluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQ2QUI1M0YxOTJCMUM0QTAwM0E5RkQxIC8qIFdLUERGUGFnZU51bWJlcklu
ZGljYXRvci5oICovOyB9OwpAQCAtNjA1LDYgKzYwOCw3IEBACiAJCTJENkNEMTFBMTg5MDU4QTUw
MEU1QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENkNEMTE4MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25h
cHNob3RTdG9yZS5tbSAqLzsgfTsKIAkJMkQ3QUFGRDMxOEM4NjQwNjAwQTdBQ0Q0IC8qIFdLV2Vi
Vmlld0NvbnRlbnRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQ3QUFGRDIxOEM4NjQwNjAwQTdBQ0Q0IC8qIFdLV2ViVmlld0NvbnRlbnRQ
cm92aWRlci5oICovOyB9OwogCQkyRDdBQUZENjE4Qzk1NkFGMDBBN0FDRDQgLyogV0tXZWJWaWV3
Q29uZmlndXJhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRDdBQUZENTE4Qzk1NkFGMDBBN0FDRDQgLyogV0tXZWJWaWV3Q29uZmln
dXJhdGlvbkludGVybmFsLmggKi87IH07CisJCTJEN0YxMzEwMUE3MDJGQkEwMDlBNkZCRCAvKiBQ
cm9jZXNzVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQ3RjEzMEYxQTcwMkZCQTAwOUE2RkJEIC8qIFByb2Nlc3NUeXBlLmggKi87IH07CiAJCTJE
ODE5QjlFMTg2MjdFRTkwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODE5Qjk5
MTg2Mjc1QjMwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmNwcCAqLzsg
fTsKIAkJMkQ4MTlCQTExODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQ4MTlCOUYxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2Vv
bWV0cnlDb2xsZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkyRDgxOUJBMjE4NjI4
MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDgxOUJBMDE4NjI4
MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VzLmggKi87
IH07CkBAIC0yNjc1LDYgKzI2NzksOSBAQAogCQkyRDQyOUJGQjE3MjFFMkJBMDBFQzY4MUYgLyog
UERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFBERlBsdWdpblBhc3N3b3JkRmllbGQubW07IHBhdGggPSBQREYvUERGUGx1Z2lu
UGFzc3dvcmRGaWVsZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ0N0I1NkEx
ODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENDdCNTZCMTgxMDcxNEUwMDNBM0FFRSAv
KiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyRDVBQjYyQjFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNvcmRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRDVBQjYyQzFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2FnZVJl
Y29yZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lc3NhZ2VS
ZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENUFCNjJEMUE2OUQ2
RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXJQcm9iZXMuZCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuZHRyYWNlOyBwYXRoID0gTWVzc2FnZVJlY29yZGVyUHJvYmVzLmQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJENUM5RDAzMTlDODFEOEYwMEIzQzVDMSAvKiBXZWJQYWdlT3Zlcmxh
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQYWdlT3Zlcmxh
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENUM5RDA0MTlDODFEOEYwMEIz
QzVDMSAvKiBXZWJQYWdlT3ZlcmxheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQYWdlT3ZlcmxheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDZBQjUz
RjE5MkIxQzRBMDAzQTlGRDEgLyogV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLUERGUGFnZU51bWJlckluZGljYXRvci5oOyBwYXRo
ID0gaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjY4Nyw2ICsyNjk0LDcgQEAKIAkJMkQ3MEFCMTQxOEExRDU3QzAwMDI2RDZFIC8q
IEluZm8taU9TLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSAiSW5mby1pT1MucGxpc3QiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRDdBQUZEMjE4Qzg2NDA2MDBBN0FDRDQgLyogV0tXZWJW
aWV3Q29udGVudFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
V2ViVmlld0NvbnRlbnRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RDdBQUZENTE4Qzk1NkFGMDBBN0FDRDQgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViVmlld0NvbmZpZ3VyYXRp
b25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDdGMTMwRjFBNzAy
RkJBMDA5QTZGQkQgLyogUHJvY2Vzc1R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUHJvY2Vzc1R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4MTlC
OTkxODYyNzVCMzAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlld0dlc3R1cmVHZW9tZXRyeUNv
bGxlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODE5QjlBMTg2Mjc1
QjMwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4MTlCOUIxODYyNzVCMzAwMUYwM0QxIC8qIFZp
ZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4MjIsOCArNDgzMCwxMiBAQAogCQkJCTFBM0VFRDExMTYx
QTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCAqLywKIAkJCQkxQTNFRUQwQzE2MUE1
MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCAqLywKIAkJCQkxQTNFRUQwRDE2
MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi8sCisJCQkJMkQ1QUI2MkIx
QTY5RDZGQjAwMTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlci5oICovLAorCQkJCTJENUFCNjJDMUE2
OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXIuY3BwICovLAorCQkJCTJENUFCNjJEMUE2
OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXJQcm9iZXMuZCAqLywKIAkJCQkxQUFCMDM3
NzE4NUE3QzZBMDBFREY1MDEgLyogTWVzc2FnZVNlbmRlci5jcHAgKi8sCiAJCQkJMUFBQjAzNzgx
ODVBN0M2QTAwRURGNTAxIC8qIE1lc3NhZ2VTZW5kZXIuaCAqLywKKwkJCQkyRDdGMTMwRjFBNzAy
RkJBMDA5QTZGQkQgLyogUHJvY2Vzc1R5cGUuaCAqLywKIAkJCQkxQUUwMEQ2OTE4MzI3QzEyMDAw
ODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmNwcCAqLywKIAkJCQkxQUUwMEQ2QTE4MzI3QzEyMDAw
ODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmggKi8sCiAJCQkpOwpAQCAtNzM0Myw2ICs3MzU1LDcg
QEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTJEN0YxMzEwMUE3MDJGQkEwMDlBNkZCRCAv
KiBQcm9jZXNzVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdBNUUwMTQxOEJCRjkzRjAwMEEw
ODFFIC8qIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzlB
ODczNjE4QkJGQTQzMDA1ODhBRjIgLyogX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTFBNEZFNUExOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25s
b2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTc2MDUsNiArNzYxOCw3IEBACiAJCQkJMUFBNTZGMjkx
MUU5MkJDODAwNjFCODgyIC8qIFBsdWdpbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEVGNENCMTI1MjQwMzcwMEY3MDY3RiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBOEVGOTZGMTI1MkFGNkIwMEY3MDY3RiAvKiBQbHVnaW5Db250cm9s
bGVyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkQ1QUI2MkUxQTY5RDZGQjAw
MTRBOUNCIC8qIE1lc3NhZ2VSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUExNzk3ODAx
MzdFRTgyQzAwRjk3RDQ1IC8qIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0MzRjhDOTExNzNBRjUyRDAwN0I3RjM5IC8qIFBsdWdpbkluZm9ybWF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJCNDFBNkIwNjhDMDAzQTVGREUgLyogQVBJVXNlckNv
bnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtOTM5Niw2ICs5NDEwLDcgQEAKIAkJCQkx
QUZERTY1OTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMDAyRDQ4MTk2QjM0NUQwMEI5QUQ0NCAvKiBTZXNzaW9uU3RhdGVDb2RpbmcubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQTcyODQ0ODE5NTlGODA0MDAwN0JDRTUgLyogU2Vzc2lvblN0
YXRlQ29udmVyc2lvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDVBQjYzMDFBNjlENkZCMDAx
NEE5Q0IgLyogTWVzc2FnZVJlY29yZGVyUHJvYmVzLmQgaW4gU291cmNlcyAqLywKIAkJCQk3NTNF
M0UwRDE4ODczOTg1MDAxODg0OTYgLyogU2Vzc2lvblRyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE2NDIwRTQxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDMDFBMjYwMTEyNjYyRjIxMDBDOUVENTUgLyogU2hhcmVhYmxlQml0
bWFwQ0cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NTA1LDYgKzk1MjAsNyBAQAogCQkJCUJDMTEx
QjVFMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQTNERDFGRDEyNUU1OUYzMDA0NTE1RTYgLyogV2ViRmluZENsaWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0U0Njk1MzEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDVBQjYyRjFBNjlENkZCMDAxNEE5Q0IgLyogTWVzc2Fn
ZVJlY29yZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTQ2OTU1MTIxNEU2Q0IwMDBCOThF
QiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkMxMTFBREQxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRTQ2OTc5MTIxNEYyQjQwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5o
CmluZGV4IGRmMjMxNjYuLmVmNWJmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5oCkBAIC01OCw2ICs1OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJUEM6
OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlBy
b2Nlc3NUeXBlOjpXZWI7IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJv
Y2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZTsg
fQogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rp
b24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb25uZWN0
aW9uLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMTYwMjcwNS4uODAzZTgw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjgsNiArNjgsOCBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24m
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQ
Qzo6UHJvY2Vzc1R5cGU6OldlYjsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1v
dGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5ldHdv
cms7IH0KIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMTVhY2VkNi4uNDM2MTAzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTY4LDYgKzY4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJUEM6OlBy
b2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nl
c3NUeXBlOjpXZWI7IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vz
c1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpQbHVnaW47IH0KIAog
ICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
aAppbmRleCA4ZGYyYjI3Li5jYWZkMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAg
ICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJikgb3ZlcnJpZGUgeyBjbG9zZSgpOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UsIElQQzo6U3Ry
aW5nUmVmZXJlbmNlKSBvdmVycmlkZSB7IGNsb3NlKCk7IH0KKyAgICB2aXJ0dWFsIElQQzo6UHJv
Y2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vz
c1R5cGU6OldlYjsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNz
VHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9CiAKICAgICAv
LyBDYWxsZWQgYnkgV2ViSW5zcGVjdG9yIG1lc3NhZ2VzCiAgICAgdm9pZCBjb25uZWN0aW9uRXN0
YWJsaXNoZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3RvclVJLmgKaW5kZXggOGJlZjE3Ny4uZjgzNWZjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmgKQEAgLTQ4LDYgKzQ4
LDggQEAgcHVibGljOgogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZSB7IGNsb3NlV2luZG93KCk7IH0KICAg
ICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UpIG92ZXJyaWRlIHsgY2xvc2VXaW5k
b3coKTsgfQorICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkg
b3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CisgICAgdmlydHVhbCBJ
UEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBD
OjpQcm9jZXNzVHlwZTo6V2ViOyB9CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViSW5zcGVjdG9yVUkg
bWVzc2FnZXMKICAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBpbnNwZWN0ZWRQYWdlSWRlbnRpZmllciwgYm9v
bCB1bmRlclRlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBm
MmU3MjFmLi5kZjk0ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApA
QCAtMjkwLDYgKzI5MCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nl
c3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2ViOyB9CisgICAg
dmlydHVhbCBJUEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6VUk7IH0KIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdl
bmVyYXRlZCBXZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAw
MTE1MWZmLi5iOWZlNmQ3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDEtMjggIFRpbW90aHkgSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYktpdE1lc3NhZ2VS
ZWNvcmRlciBEVHJhY2UgcHJvdmlkZXIsIGV4cG9zaW5nIElQQyBkZXRhaWxzIHRvIERUcmFjZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNjczCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L2R0cmFjZS90cmFjZS13ZWJraXQyLW1lc3NhZ2VzLmQ6IEFkZGVkLgorICAgICAgICBBZGQgYSBE
VHJhY2Ugc2NyaXB0IHRoYXQgb3V0cHV0cyBhIHNtYWxsIGJsb2Igb2YgSlNPTiBwZXIgbWVzc2Fn
ZS4KKwogMjAxNS0wMS0yOCAgTHVjYXMgRm9yc2NobGVyICA8bGZvcnNjaGxlckBhcHBsZS5jb20+
CiAKICAgICAgICAgSW5jcmVhc2UgdGhlIEZpbGVVcGxvYWQgYmxvY2sgc2l6ZSBpbiBhbiBhdHRl
bXB0IHRvIGltcHJvdmUgbmV0d29yayBwZXJmb3JtYW5jZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvZHRyYWNlL3RyYWNlLXdlYmtpdDItbWVzc2FnZXMuZCBiL1Rvb2xzL1NjcmlwdHMvZHRy
YWNlL3RyYWNlLXdlYmtpdDItbWVzc2FnZXMuZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwLi40ZTg5MTFkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy9kdHJhY2Uv
dHJhY2Utd2Via2l0Mi1tZXNzYWdlcy5kCkBAIC0wLDAgKzEsOTYgQEAKKyMhL3Vzci9zYmluL2R0
cmFjZSAtcVpzCisKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitzdHJ1Y3QgV2ViS2l0TWVzc2FnZVJlY29yZCB7Cisg
ICAgdWludDhfdCBzb3VyY2VQcm9jZXNzVHlwZTsKKyAgICBwaWRfdCBzb3VyY2VQcm9jZXNzSUQ7
CisKKyAgICB1aW50OF90IGRlc3RpbmF0aW9uUHJvY2Vzc1R5cGU7CisgICAgcGlkX3QgZGVzdGlu
YXRpb25Qcm9jZXNzSUQ7CisKKyAgICBjaGFyKiBtZXNzYWdlUmVjZWl2ZXJOYW1lOworICAgIGNo
YXIqIG1lc3NhZ2VOYW1lOworICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQ7CisKKyAgICBjaGFy
IFVVSURbMTZdOworCisgICAgZG91YmxlIHN0YXJ0VGltZTsKKyAgICBkb3VibGUgZW5kVGltZTsK
KworICAgIGJvb2wgaXNTeW5jTWVzc2FnZTsKKyAgICBib29sIHNob3VsZERpc3BhdGNoTWVzc2Fn
ZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OworICAgIGJvb2wgaXNJbmNvbWluZzsKK307CisKK1dl
YktpdE1lc3NhZ2VSZWNvcmRlcio6OjptZXNzYWdlXyoKK3sKKyAgICB0aGlzLT5yZWNvcmQgPSAo
c3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQqKWNvcHlpbihhcmcwLCBzaXplb2Yoc3RydWN0IFdl
YktpdE1lc3NhZ2VSZWNvcmQpKTsKKyAgICBwcmludGYoInsiKTsKKworICAgIHByaW50ZigiXCJz
b3VyY2VQcm9jZXNzVHlwZVwiOiAlZCwgIiwgdGhpcy0+cmVjb3JkLT5zb3VyY2VQcm9jZXNzVHlw
ZSk7CisgICAgcHJpbnRmKCJcInNvdXJjZVByb2Nlc3NJRFwiOiAlZCwgIiwgdGhpcy0+cmVjb3Jk
LT5zb3VyY2VQcm9jZXNzSUQpOworCisgICAgcHJpbnRmKCJcImRlc3RpbmF0aW9uUHJvY2Vzc1R5
cGVcIjogJWQsICIsIHRoaXMtPnJlY29yZC0+ZGVzdGluYXRpb25Qcm9jZXNzVHlwZSk7CisgICAg
cHJpbnRmKCJcImRlc3RpbmF0aW9uUHJvY2Vzc0lEXCI6ICVkLCAiLCB0aGlzLT5yZWNvcmQtPmRl
c3RpbmF0aW9uUHJvY2Vzc0lEKTsKKworICAgIHByaW50ZigiXCJtZXNzYWdlUmVjZWl2ZXJOYW1l
XCI6IFwiJXNcIiwgIiwgY29weWluc3RyKCh1c2VyX2FkZHJfdCl0aGlzLT5yZWNvcmQtPm1lc3Nh
Z2VSZWNlaXZlck5hbWUpKTsKKyAgICBwcmludGYoIlwibWVzc2FnZU5hbWVcIjogXCIlc1wiLCAi
LCBjb3B5aW5zdHIoKHVzZXJfYWRkcl90KXRoaXMtPnJlY29yZC0+bWVzc2FnZU5hbWUpKTsKKwor
ICAgIHByaW50ZigiXCJkZXN0aW5hdGlvbklEXCI6ICVkLCAiLCB0aGlzLT5yZWNvcmQtPmRlc3Rp
bmF0aW9uSUQpOworCisgICAgcHJpbnRmKCJcIlVVSURcIjogXCIiKTsKKyAgICBwcmludGYoIiUw
MngiLCB0aGlzLT5yZWNvcmQtPlVVSURbMF0pOworICAgIHByaW50ZigiJTAyeCIsIHRoaXMtPnJl
Y29yZC0+VVVJRFsxXSk7CisgICAgcHJpbnRmKCIlMDJ4IiwgdGhpcy0+cmVjb3JkLT5VVUlEWzJd
KTsKKyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbM10pOworICAgIHByaW50
ZigiLSIpOworICAgIHByaW50ZigiJTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFs0XSk7CisgICAg
cHJpbnRmKCIlMDJ4IiwgdGhpcy0+cmVjb3JkLT5VVUlEWzVdKTsKKyAgICBwcmludGYoIi0iKTsK
KyAgICBwcmludGYoIiUwMngiLCB0aGlzLT5yZWNvcmQtPlVVSURbNl0pOworICAgIHByaW50Zigi
JTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFs3XSk7CisgICAgcHJpbnRmKCItIik7CisgICAgcHJp
bnRmKCIlMDJ4IiwgdGhpcy0+cmVjb3JkLT5VVUlEWzhdKTsKKyAgICBwcmludGYoIiUwMngiLCB0
aGlzLT5yZWNvcmQtPlVVSURbOV0pOworICAgIHByaW50ZigiLSIpOworICAgIHByaW50ZigiJTAy
eCIsIHRoaXMtPnJlY29yZC0+VVVJRFsxMF0pOworICAgIHByaW50ZigiJTAyeCIsIHRoaXMtPnJl
Y29yZC0+VVVJRFsxMV0pOworICAgIHByaW50ZigiJTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFsx
Ml0pOworICAgIHByaW50ZigiJTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFsxM10pOworICAgIHBy
aW50ZigiJTAyeCIsIHRoaXMtPnJlY29yZC0+VVVJRFsxNF0pOworICAgIHByaW50ZigiJTAyeCIs
IHRoaXMtPnJlY29yZC0+VVVJRFsxNV0pOworICAgIHByaW50ZigiXCIsICIpOworCisgICAgcHJp
bnRmKCJcInN0YXJ0VGltZVwiOiAlZiwgIiwgdGhpcy0+cmVjb3JkLT5zdGFydFRpbWUpOworICAg
IHByaW50ZigiXCJlbmRUaW1lXCI6ICVmLCAiLCB0aGlzLT5yZWNvcmQtPmVuZFRpbWUpOworCisg
ICAgcHJpbnRmKCJcImlzU3luY01lc3NhZ2VcIjogJWQsICIsIHRoaXMtPnJlY29yZC0+aXNTeW5j
TWVzc2FnZSk7CisgICAgcHJpbnRmKCJcInNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5XCI6ICVkLCAiLCB0aGlzLT5yZWNvcmQtPnNob3VsZERpc3BhdGNoTWVzc2Fn
ZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBwcmludGYoIlwiaXNJbmNvbWluZ1wiOiAl
ZCIsIHRoaXMtPnJlY29yZC0+aXNJbmNvbWluZyk7CisKKyAgICBwcmludGYoIn1cbiIpOworfQo=
</data>
<flag name="review"
          id="270534"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>